信息速览
HCC-TACE-Seg 是托管在美国国家癌症研究所癌症影像档案馆(The Cancer Imaging Archive,TCIA)下的一个影像集合,全名「Multimodality annotated HCC cases with and without advanced imaging segmentation」。它的核心是一百零五名肝细胞癌(HCC)患者在接受经导管动脉化疗栓塞(TACE)前后的成对 CT,加上四类解剖结构的 DICOM-SEG 分割,以及一份记录了进展时间与总生存的结构化临床表。
它之所以在肝肿瘤影像里位置特殊,不在病例数,而在「配对」二字:TACE 是局部介入治疗,疗效判定要看术后影像里还有没有存活肿瘤,也就是 mRECIST 意义上的活性病灶;绝大多数公开肝癌数据集只有一次扫描、一个术前掩膜,而这一份同时保留了术前基线与术后随访,并把治疗结局以肿瘤学终点记录下来。一屏速览见下表。
INFOBOX
| 数据集名称 | HCC-TACE-Seg(HCC-TACE-SEG) |
| 英文全称 | Multimodality annotated HCC cases with and without advanced imaging segmentation |
| 别名/简称 | HCC-TACE-Seg、HCC TACE Seg、HCC-TACE-SEG 集合 |
| 疾病分类 | 肝细胞癌(ICD-11 2C12.0 Hepatocellular carcinoma),详见 §2.1 |
| SNOMED CT | 109841003 Liver cell carcinoma (disorder) / 443253003 Hepatocellular carcinoma (disorder),详见 §2.1 |
| 数据模态 | 多期增强 CT、DICOM-SEG 分割对象、结构化临床表(XLSX) |
| AI 任务类型 | 多器官分割、影像组学疗效预测、复发与生存预测、术前规划 |
| 样本总数 | 一〇五 名患者 / 二一一 次检查 / 六七七 个序列 / 五一,九六八 幅图像 |
| 数据大小 | 28.57 GB(影像)+ 约 125.5 KB(临床表) |
| 数据格式 | DICOM(CT、SEG)/ XLSX |
| 许可证 | CC BY 4.0 International |
| 访问级别 | 开放(TCIA 公开下载,无申请门槛,引用即可) |
| DUO 标签 | GRU |
| 语言 | 英文(序列描述与临床表字段) |
| 首发日期 | 2022-08-17(v1,与 TCIA 页面 Updated 字段一致) |
| 最后更新 | 2022-08-17(官方页面仅列 v1) |
| 发布机构 | 美国德克萨斯大学 MD 安德森癌症中心;TCIA 托管 |
| 官方主页 | https://www.cancerimagingarchive.net/collection/hcc-tace-seg/ |
| 下载地址 | https://www.cancerimagingarchive.net/wp-content/uploads/HCC-TACE-Seg_v1_202201.tcia |
| DOI | 10.7937/TCIA.5FNA-0924 |
| 引用次数 | 12(DataCite Commons 计数,取值日 2026-10;随检索时点变动) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 影像与分割开箱即用、临床表结构清晰;扣分项:无官方划分、术后像无掩膜、分割仅术前、队列年代久远 |
| 页面状态 | published |
§1 数据集概览
§1.1 三十秒速览
一句话:这是一个「术前 CT + 术后 CT + 四类分割 + 结局表」四合一的 HCC 介入治疗队列,一百零五个人,每人带一条从治疗到进展、到死亡或删失的时间线。
它解决的问题很具体。官方页面的开篇理由写得直白:TACE 失败率可达六成,一旦失败,患者要承受经济与情绪双重负担;影像组学的价值在于从术前那一次 CT 里提前判断「这个人做 TACE 大概能撑多久」。这段话本身不是数据集结构,但它解释了为什么这个集合要同时收集术前的像、术后的像和结局。
它最容易被高估的地方也在这里:术前术后配对是真的,但配对里只有术前那一半带分割。术后像要自己读、自己判活性、自己算 mRECIST 意义上的存活肿瘤。这一点在 §4 与 §7 会反复回到。
§1.2 摘要
HCC-TACE-Seg 由 MD 安德森癌症中心的影像物理、腹部影像、胃肠肿瘤、流行病学与介入放射五个科室联合整理,2021 年以数据集形式登记 DOI,2022 年 8 月在 TCIA 上线第一版。影像部分覆盖 2002 至 2012 年间在该中心接受 TACE 的一百零五名确诊 HCC 患者,每人都有一段治疗前的多期增强 CT,官方描述其「无手术夹等伪影」,采集时间在首次 TACE 前 1 至 12 周,平均 3 周。
分割由 Amira 软件半自动生成后经临床审校,原始格式为 NIfTI,后统一转为 DICOM-SEG,标注对象为肝脏、肿瘤与血管。TCIA 页面列出四个分割类别:肝、肿瘤、肝静脉、门静脉。每个术前检查都配了一套这样的分割,官方给出的用途是「算法训练,用于预测与自动肝肿瘤分割」。
临床侧是一份 Excel 工作簿,按七个主题拆成七个工作表:随访、分子检测、人口学、暴露、测量、治疗、分类。主键是 HCC_xxx 形式的患者编号。结局以两个肿瘤学终点写入随访表:进展时间(time-to-progression,TTP)与总生存(overall survival,OS)。
§1.3 决策卡:你的处境决定它能帮你什么
| 你的处境 | 它能帮你什么 |
|---|---|
| 要做「术前 CT 预测 TACE 后多久进展」的模型 | 术前像 + 掩膜 + TTP 三段齐全,可直接构造回归或二分类标签 |
| 要做肝脏与肿瘤的多结构分割 | 一百余套术前 DICOM-SEG,含肝、瘤、两条静脉,省掉从零标注 |
| 要做术前规划、虚拟切除或血管解剖研究 | 肝静脉与门静脉单独成类,肝段归属可由血管树推导 |
| 要比较「术前特征」与「术后变化」哪个更有预测力 | 同一患者的术前术后像都在包里,配对关系可复原 |
| 要做载药微球 TACE(DEB-TACE)研究 | 给不了你当代技术的数据,队列终止于 2012 年 |
| 要一张现成的训练/验证划分 | 官方没有划分,得自己按患者切 |
| 要术后活性肿瘤的参考掩膜 | 给不了,术后像无标注,mRECIST 判定需自行完成 |
§1.4 不适合谁
不适合把 TACE「当成一个统一的治疗变量」的研究者。二〇〇二到二〇一二这十年间,TACE 的操作细节——碘油乳剂配比、栓塞终点、是否用载药微球、单次还是多次——都在变化,而临床表里的「治疗」字段是结构化的分类记录,不是一个可以拆开到技术层面的操作日志。如果你的研究问题本身就落在技术差异上,这一份给不了答案。
也不适合只想拿一个「大肝肿瘤 CT 语料」去做预训练的人。一百零五例、两百余次检查在自监督预训练的尺度上偏小,真正值钱的是它的配对关系与结局,而不是体量。
§1.5 库内定位差异
| 资源 | 核心内容 | 与本集合的差异 |
|---|---|---|
| HCC-TACE-Seg | 术前术后配对 CT + 四类分割 + TTP/OS | 唯一同时具备治疗结局与配对影像 |
| LiTS | 多中心肝与肝肿瘤 CT 分割 | 单次扫描、无治疗信息、无随访 |
| ATLAS | HCC 的 CE-MRI 肝与肿瘤分割 | 模态为 MRI,无治疗结局 |
| SLIVER07 | 肝分割挑战基准 | 只有肝脏一结构、无肿瘤 |
| 结直肠癌肝转移术前 CT 与生存队列 | 结直肠癌转移灶的术前 CT 与生存 | 病种不同,无 TACE,无分割 |
| TCGA-LIHC 类组学资源 | 分子与表达谱为主 | 影像稀疏,无治疗反应标签 |
一句话的选法:要「治疗后的走向」→ 这一份;要「纯分割的大样本」→ LiTS;要「MRI 上的 HCC」→ ATLAS。
§2 医学背景与临床任务
§2.1 疾病编码映射
HCC 是原发性肝癌里最常见的一种,ICD-11 归入消化系统肿瘤下的肝细胞癌类目,SNOMED CT 的对应概念为肝细胞癌(Liver cell carcinoma)。下表给出本集合涉及的主要概念。
| 标签 | ICD-11 | SNOMED CT | 术语 |
|---|---|---|---|
| 肝细胞癌 | 2C12.0 | 109841003 / 443253003 | Hepatocellular carcinoma |
| 肝恶性肿瘤(上位) | 2C12 | 93870000 | Malignant tumor of liver |
| 经导管动脉化疗栓塞 | —(操作编码:介入放射学类目) | 427284005 | Transarterial chemoembolization |
| 肝内门静脉 | — | 32764006 | Portal vein structure |
| 肝静脉 | — | 8993003 | Hepatic vein structure |
编码冲突需要点出一处:ICD-11 的 2C12 是「肝恶性肿瘤」这一族的上位节点,2C12.0 才是肝细胞癌。有些二次整理把整个集合标成 2C12,等于把胆管细胞癌也算了进去,属于口径放宽,使用时以 2C12.0 为准。
§2.2 疾病背景与治疗语境
官方页面引用的两句背景值得记下来:HCC 是最常见的原发肝癌,二十年间发病率因危险因素增加而翻倍;尽管有筛查,多数病例确诊时已是进展期,只能做 TACE 或系统治疗。这两句话拼起来说明了 TACE 在 HCC 治疗谱里的位置——它不是首选根治手段,而是中期(巴塞罗那分期 B 期)患者的主力选项,也是等待移植期间的桥接手段。本集合的患者正是这条治疗路径上的人。
§2.3 TACE 是怎么做的,以及为什么结局要分两层看
TACE 的操作起点是肝动脉插管:导管经股动脉或桡动脉进入肝固有动脉,再超选择到供应肿瘤的动脉支,注入化疗药物与栓塞材料,把肿瘤的动脉血供堵住。HCC 有一个对介入治疗极重要的解剖特性——它的血供九成以上来自肝动脉,而正常肝实质主要由门静脉供血。这个「双重血供」的落差是 TACE 能成立的物理基础:堵住动脉,肿瘤被饿死,正常肝组织靠门静脉还能活。
栓塞材料的选择直接决定了治疗的可重复性与并发症谱。经典方案用碘油乳剂混合化疗药,碘油会滞留在肿瘤内形成沉积,术后 CT 上表现为高密度影,这既是疗效的间接标志,也是判读时的干扰源;后续演化出的载药微球把化疗药负载在微球上缓释,栓塞更彻底但缺少碘油那种「看得见的沉积」。本集合的队列止于 2012 年,正处在从碘油向微球过渡的时期,而临床表里的治疗字段是结构化记录,不会告诉你某一次用的是哪种材料。
结局分两层看,是因为 TACE 很少一次根治。第一层是「这一次治疗有没有把病灶压下去」,对应术后影像上的存活肿瘤比例,mRECIST 就是在这一层做判定:只看动脉期强化区域,不强化即视为坏死。第二层是「这个人整体还能撑多久」,对应 TTP 与 OS。两层之间可能背离——有的患者单次响应很好但很快在其他肝段出现新灶,TTP 很短;有的患者病灶始终没有完全坏死但进展缓慢,OS 反而长。这种背离正是二分类标签容易失真、而生存分析更贴切的原因。
§2.4 三个可建模的临床任务
这个集合能支撑的任务可以归成三类,与数据里的三条线索一一对应。
| 任务 | 输入 | 标签来源 | 对应数据线索 |
|---|---|---|---|
| 治疗响应预测 | 术前多期 CT + 掩膜 + BCLC 分期 | 随访表的 TTP,按阈值切易感/难治 | 配对中的「术前」半边 + 结局表 |
| 复发风险预测 | 术前像 + 术后像差异 | 随访表的进展记录 | 配对关系 |
| 术前规划与分割 | 术前像 | 四类分割掩膜 | DICOM-SEG |
这三类任务的共同前提是掩膜质量。肿瘤掩膜若偏大,形状特征与纹理特征都会被系统性拉偏,而原论文选的恰恰是形状类特征唱主角,这两件事在本集合里是耦合的。
§2.5 队列人群
| 维度 | 情况 |
|---|---|
| 来源 | 美国德克萨斯州休斯敦 MD 安德森癌症中心单中心 |
| 时间 | 2002–2012 年接受 TACE |
| 入组条件 | 确诊 HCC、接受 TACE、有可用的治疗结局记录 |
| 年龄/性别/种族 | 记录在临床表的人口学工作表,字段位置见 §4.5;本页不列分布统计 |
| 就医类型 | 三级肿瘤专科医院,转诊人群 |
这一栏里最该被记住的是「单中心 + 转诊」。转诊意味着患者池本身经过一轮筛选:能在 MD 安德森做 TACE 的人,在分期、肝功能、合并症上与社区医院看到的人群不同。任何把在这里训练出的阈值直接搬到基层医院的做法,都需要重新校准。
§2.6 临床价值所在
价值落在「决策时点」上。TACE 的失败往往在第一次术后随访才被发现,而重新评估、改用系统治疗或换方案的窗口很窄。若能在术前把「大概会失败」的人挑出来,临床上有两个动作可以提前:换治疗线,或缩短随访间隔。原论文的落点正是这句:治疗前取得的定量影像特征可以提高 TACE 响应预测的准确率,并可能帮助筛选适合 TACE 的患者。
§2.7 金标准构成
| 事项 | 定义方式 | 来源 |
|---|---|---|
| 肿瘤分割 | Amira 半自动生成后临床审校 | 官方页面 |
| 血管分割 | 肝静脉、门静脉分别成类 | 官方页面(TCIA 分类表) |
| TTP | 基于随访 CT 的 mRECIST 影像学标准判定进展 | 原论文摘要 |
| OS | 死亡事件,含删失 | 临床表随访工作表 |
| 易感/难治二分 | TTP ≥ 14 周为易感,< 14 周为难治 | 原论文摘要 |
这一张表里唯一需要警惕的是最后一行:14 周这个切点是论文作者设定的人为阈值,不是任何指南里的标准定义。它把连续的 TTP 压成二分类,方便训练分类器,但也把一个时间维度的问题变成了一个点估计。
§3 数据构成与规模
§3.1 官方规模口径
TCIA 页面在同一处列出四组计数,这是判断数据量级最可靠的一组数。
| 指标 | 数值 | 说明 |
|---|---|---|
| 受试者 Subjects | 一〇五 | 患者数 |
| 检查 Studies | 见下 | 平均每人约两次,与术前术后配对一致 |
| 序列 Series | 见左栏合计 | 多期 CT 每检查拆成多个序列 |
| 图像 Images | 51,968 | 单个 DICOM 实例计数 |
| 体积 Size | 28.57 GB | 影像包,不含临床表 |
此处有一个必须点明的口径落差:检查数两百一十一,除以患者数一百零五,恰好接近二,很容易读成「每人恰好术前一次、术后一次」。但官方并未说明这个除法的整除性,配对的严格结构需要下载后在 DICOM 头里按检查日期与序列描述自行核对。把「平均两次」当成「每人两次」,是使用这一份数据时最早会踩的坑。
§3.2 四级 DICOM 层级
TCIA 的集合一律沿用 DICOM 的天然层级,这一份也不例外:
HCC-TACE-Seg/
├── HCC_001/ # 患者级:患者编号即主键前缀
│ ├── <StudyInstanceUID>/ # 检查级:一次就诊的成像事件
│ │ ├── <SeriesInstanceUID>/ # 序列级:一个期相 / 一套分割
│ │ │ └── <SOPInstanceUID>.dcm # 实例级:单幅 CT 切片或单个 SEG 对象
四级之间的关系值得单独强调:序列级才是「一次扫描的一个期相」。多期增强 CT 在一次检查里会产生平扫、动脉期、门脉期、延迟期若干序列,因此检查数并不等于可用体数据数。要找「动脉期的那一叠」,得看序列描述而不是数文件夹。
§3.3 分割对象:四类而非两类
| 类别 | 有掩膜 | 用途 |
|---|---|---|
| 肝脏 | 是 | 体积、衰减统计、背景肝特征 |
| 肿瘤 | 是 | 形状、纹理、负荷计算 |
| 肝静脉 | 是 | 肝段归属、规划 |
| 门静脉 | 是 | 血供分析、规划 |
多数二手描述只写「肝和肿瘤两标签」,这是不完整的。TCIA 的元数据表把四个解剖类一次列全。肝静脉与门静脉分开标,让这一份在术前规划类题目上比纯肿瘤分割集更实用——肝段边界的确定依赖血管树,二者合一就失去了推导基础。
§3.4 临床表的结构
临床表是一个 125.5 KB 的工作簿,按七个主题分表。
| 工作表主题 | 内容性质 |
|---|---|
| 随访(Follow-Up) | 结局时间线,TTP 与 OS 的主要来源 |
| 分子检测(Molecular Test) | 实验室与标志物记录 |
| 人口学(Demographic) | 年龄、性别等 |
| 暴露(Exposure) | 病因相关暴露,如肝炎背景 |
| 测量(Measurement) | 肿瘤大小、数目等测量值 |
| 治疗(Treatment) | TACE 相关治疗记录 |
| 分类(Classification) | 分期与分型 |
七个表以患者编号横向拼接,构成一人一行宽的宽表视图。这种「宽表加主题列簇」的组织方式在临床数据集里很常见,好处是取数简单,代价是列名重复度高、空值按主题成片出现。
§3.5 命名与主键
主键形如 HCC_001、HCC_105,三位补零。TCIA 页面正文里点名的异常病例正是 HCC_001,这条记录后面会成为贯穿全文的案例(见 §4.9、§6.5、§7.4)。
§3.6 版本与更新节奏
官方页面只列出版本 1,更新时间记为 2022-08-17,与「Complete」状态并列。没有后续版本行,也没有更新日志。这意味着看到的数字就是初次发布时的数字,不存在「v2 补充了病例」这种情况。这一点对复现很关键:任何以「最新版本」为由的计数差异,都只能是抓取时间或统计口径造成的,不是官方更新。
§3.7 存储与传输
二十八点五七 GB 的包走 TCIA Data Retriever 拉取,需要清单文件(.tcia)加官方客户端。直接用浏览器拉单个序列是可以的,但对两百余次检查这种做法不现实。存储上需要按「解压后略大于压缩包」预估,并额外留出去标识副本与转换缓存的空间。
§3.8 规模数字该怎么用
四个计数各有各的用途,混用会出错。患者数决定了统计效力的上限,一百零五在影像组学里属于「能用但必须小心」的量级;检查数决定了一次完整配对的容量;序列数决定了体数据的个数,也是评估存储与内存需求时最该看的数;图像数是实例计数,对算法选型几乎没有信息量,它的价值在于估算 I/O 与预处理耗时。
一个具体例子:若按序列平均切分,六百余个序列分到两百余次检查,每检查约三个序列。这个量级与多期增强 CT 的常见序列构成(平扫、动脉期、门脉期、延迟期,部分含薄层重建带)大致相容,但也意味着并非每次检查都四个期相齐备。如果一个患者的检查里只出现一个或两个序列,很可能缺少期相或薄层带,建模时需要单独标记。
同样地,用图像总数除以序列总数,平均每序列不到八十幅。多数腹部 CT 单期层数在一百上下,说明存在薄层与厚层混合、或存在部分短序列(如单层定位像)。统计单序列层数分布,往往能反向识别出哪些序列是定位像,从而在预处理时剔除。
§3.9 时间跨度与检查分布
官方只给队列的起止年份,不给逐例治疗日期。这意味着检查在十年间的分布无法从页面推出。对建模而言这构成一个隐形变量:若绝大多数病例集中在后五年,那么「队列年代」的异质性实际上比起止年份暗示的更小;反之则可能横跨数代扫描仪。稳妥的做法是在拿到数据后画一张按年的病例数直方图,把它作为方法学的一部分报告出来,而不是假设均匀。
§4 数据结构与取数
§4.1 影像侧的字段要点
| DICOM 标签 | 在本题中的角色 | 注意点 |
|---|---|---|
PatientID |
主键,形如 HCC_xxx |
与临床表的主键严格对齐 |
StudyDate |
判定术前/术后的唯一依据 | 需与临床表 TACE 日期比对 |
SeriesDescription |
判定期相 | 自由文本,跨年代写法不一 |
Modality |
CT 或 SEG | SEG 记录的掩膜归属于哪个 CT 序列要读引用关系 |
SegmentSequence |
SEG 内的段定义 | 段标签即肝/瘤/静脉的分类 |
ImagePositionPatient |
层位置,重建体数据用 | 缺此值会导致排序错误 |
SliceThickness / PixelSpacing |
物理尺寸 | 计算体积与毫米级特征必用 |
§4.2 SEG 与源 CT 的绑定
DICOM-SEG 不是一张独立图片,而是一个引用源序列的派生对象。读取时必须同时拿到两件东西:掩膜的像素数据,以及它「指向哪一叠 CT」。若只解析 SEG 文件本身的像素矩阵,得到的是一堆不知对应哪一层、哪个期相的标签。这也是 §6 的代码要先把 SEG 与 CT 序列配对再解掩膜的缘由。
§4.3 临床表接入
按官方描述,工作簿的七个工作表以患者编号相连。实际取数时的第一条纪律是:不要假设七个表人数相同。随访表只包含有结局记录的患者,分子检测表只包含做过相应检测的患者,用内连接会把样本量削掉,用左连接则要在建模前显式处理缺失。
§4.4 单条记录解剖
一条完整记录由三部分组成:影像、掩膜、临床行。以 HCC_001 为例:
| 组成 | 内容 |
|---|---|
| 影像 | 术前多期增强 CT,多个序列;术后随访 CT,多个序列 |
| 掩膜 | 术前 CT 上的四类 SEG,对应肝、瘤、肝静脉、门静脉 |
| 临床行 | 该患者的人口学、暴露、测量、治疗、分类、随访、分子检测各一列簇 |
§4.5 缺失与信息性缺失
| 情形 | 含义 | 处理建议 |
|---|---|---|
| 某患者无术后像 | 未随访或影像未归档 | 排除出配对分析,不要伪造 |
| 某患者无分子检测 | 未做该检测 | 视为结构性缺失,不作零值 |
| 某序列期相不明 | 描述为空或写法异常 | 按层厚与对比判断,无法判断则弃用 |
| 某患者分割缺席 | 官方称仅术前分割 | 结构性缺失,属设计而非缺陷 |
最后一行是全篇最需要反复强调的一句:术后像没有掩膜不是漏标,是设计上就没标。
还有一种缺失不属于上述四类,但同样常见:序列级的部分缺失。同一次检查里,平扫有、动脉期有、门脉期没有,这种情形在回顾性数据里并不罕见。它不影响「这次检查存在」的判断,但会让「四期齐备」的假设失效。处理办法有两种:按可用期相建模并在特征上标注缺项,或只保留四期齐备的检查并报告保留比例。前者保留样本量、引入期相异构,后者样本干净、样本量下降。两条路都能走通,唯一不能做的是把缺项当成零值填进去。
§4.6 体数据重建
从 DICOM 到可训练的张量,中间的转换有三处容易出错:层排序要按 ImagePositionPatient 而不是文件名;重采样要按 PixelSpacing 与 SliceThickness 做各向异性处理;强度要按 RescaleSlope 与 RescaleIntercept 转成 HU。这三点写在 §6 的代码注释里。
除了这三处,还有一个常被跳过的问题:多期序列里哪一叠是「主」体数据。如果你要的是肿瘤强化,动脉期是主;要的是肝实质背景,门脉期是主;要的是血管树,门脉期与延迟期各有可用之处。同一患者可能有不止一个「主」序列,这不是重复数据,而是同一检查的不同观测面。
§4.7 重建一个体数据的最小流程
下面这段流程把上面几条按顺序串起来,实际动手时可以照这个骨架写。
#-- 步骤 1:收集同一序列的全部切片
#-- 步骤 2:按 ImagePositionPatient 的第三分量排序(不是文件名,不是 SOP 序号)
#-- 步骤 3:堆叠为 (层, 行, 列) 的三维数组
#-- 步骤 4:应用 RescaleSlope / RescaleIntercept 得 HU
#-- 步骤 5:记录 PixelSpacing 与 SliceThickness 供后续体积计算
import pydicom, numpy as np, glob
def load_series(series_dir):
slices = [pydicom.dcmread(f) for f in glob.glob(f"{series_dir}/*.dcm")]
slices.sort(key=lambda s: float(s.ImagePositionPatient[2]))
vol = np.stack([s.pixel_array for s in slices]).astype(np.float32)
vol = vol * float(slices[0].RescaleSlope) + float(slices[0].RescaleIntercept)
sp = slices[0].PixelSpacing
spacing = (float(sp[0]), float(sp[1]), float(slices[0].SliceThickness))
return vol, spacing
这段代码没有做任何容错,是刻意的:真实数据里遇到层厚缺失、重建带混杂、序列内混入定位像的情况,应当报错再由人来判,而不是静默拼出一个错位的体数据。
§4.8 把主键串起来
影像侧用 HCC_xxx 作目录名,临床表用同一编号作行键,二者一致是这一份数据能被顺利使用的关键前提。通常的经验是:不同批次的下载包在目录命名上偶有大小写或下划线差异,建议在写连接逻辑前先做一次左外连接,把匹配不上的编号列出来。匹配不上的数量如果超过个位数,多半是解析逻辑写错了,而不是数据有问题。
§4.9 贯穿案例:HCC_001 的掩膜尺寸不一致
TCIA 页面正文里留了一条官方公告,值得原样引用:
#-- 官方原文(TCIA 集合页 Note 段)
Note - the mask on Patient ID HCC_001 (SEG file Series UID
1.2.276.0.7230010.3.1.3.8323329.719.1600928570.399942) has a slightly
different dimension than the CT (Series UI
1.3.6.1.4.1.14519.5.2.1.1706.8374.302065206690360709343725942120).
This difference is far from the interesting features and the masks, so
clinical interpretation should be unaffected by this discrepancy.
拆开看,这句话包含四个信息点。
| 信息点 | 内容 |
|---|---|
| 判定 | HCC_001 的 SEG 尺寸与源 CT 尺寸不完全一致 |
| 证据 | 给出了 SEG 序列 UID 与 CT 序列 UID 两串标识 |
| 官方立场 | 差异位置远离病灶与掩膜主体,不影响临床解读 |
| 未说明 | 差异是哪个方向、差多少像素、是否只此一例 |
官方说得清楚:位置不重要。官方没说清楚的是另一件事——这类尺寸不一致在工程上会直接导致数组形状对不上,numpy 会报错,或者更糟,在广播容错的地方静默错位。所以这条公告的正确读法是:临床上不必担心,工程上必须显式处理。§6.5 的代码就是为这件事写的。
§5 怎么拿到与如何用
§5.1 获取路径
| 步骤 | 做法 | 说明 |
|---|---|---|
| 1 | 访问集合页 | 公开页面,无需登录 |
| 2 | 下载清单 | HCC-TACE-Seg_v1_202201.tcia |
| 3 | 装客户端 | TCIA Data Retriever |
| 4 | 拉取影像 | 约二十八点五七 GB |
| 5 | 单独下临床表 | XLSX,约 125.5 KB |
| 6 | 可选:走云镜 | 通过 IDC 的 idc-index 按集合筛选 |
§5.2 许可证与引用义务
CC BY 4.0,允许商用与再分发,条件是署名。TCIA 的页面把「Data Citation Required」单独标出,并给出完整的数据引用格式。署名的对象是数据集本身(Moawad 等,2021),不是托管方。若只引 TCIA 而不引数据集,等于没满足条件。
§5.3 三条典型使用路径
| 角色 | 主要取用部分 | 最先要做的事 |
|---|---|---|
| 分割研究者 | 术前 CT + 四类 SEG | 把 SEG 与源序列配对后解掩膜 |
| 影像组学研究者 | 术前像 + 肿瘤掩膜 + TTP | 定死「一次检查取哪个期相」 |
| 术前规划研究者 | 肝静脉与门静脉掩膜 | 完成各向同性重采样 |
三条路径的共同第一步都是「把序列的期相钉死」。多期增强 CT 在一次检查里有多个序列,选错期相的后果比选错分割算法严重得多。
§5.4 云端取用与本地下载的分工
TCIA 的自家门户以压缩包为单位提供服务,NCI 的成像数据云(Imaging Data Commons,IDC)则以集合为单位提供按序列的检索与云端读取。两者的分工很清晰:
| 维度 | TCIA 门户 | IDC 云检索 |
|---|---|---|
| 交付形态 | 压缩包加清单 | 按序列筛选的清单 |
| 检索粒度 | 集合级 | 序列级,可按模态、层厚、厂商筛 |
| 读取方式 | 下载到本地 | 云上对象存储,可直接流式读取 |
| 适用场景 | 一次拿全、离线研究 | 只想取某个期相、或算力在云上 |
如果研究只需要动脉期的体数据,走 IDC 可以避免把整个二十八点五七 GB 包拖到本地;如果要的是全集合的完整性核对,仍然应当以 TCIA 的官方包为准,因为云镜的清单是派生视图。
§5.5 取数后第一件事:做一张清单表
无论走哪条路径,落地后第一件事都是生成一张患者级的清单表。这张表至少要有五列:患者编号、检查 UID、检查日期、序列数、是否含 SEG。它的作用是把「目录里的文件」变成「可以被查询的记录」,后续所有配对、筛选、排错都基于这张表进行。
这一步的价值在于让错误暴露在前面。比如某患者的检查日期早于队列起始年份,说明去标识时日期做了偏移,需要按偏移量统一校正;某患者的序列数为零,说明该检查目录为空,需要重新下载。这些问题在目录层面是看不见的,只有在清单表里才会浮现。
§5.6 引用与致谢的落地方式
论文的方法学部分与致谢部分,位置不同、义务相同。方法学里应当写清用的是哪一版(本集合只有 v1)、纳入多少例、如何划分;致谢或数据可用性声明里给出完整的数据集引用与 DOI。若同时用了原论文的 14 周切点,还应当把论文一并列出,因为切点属于方法选择。
§6 AI 就绪指南
§6.1 目录结构预期
#-- 解压 TCIA 包后的结构(路径由 Data Retriever 生成,版本间可能不同)
#-- data_root/
#-- manifest-<timestamp>/
#-- HCC-TACE-Seg/
#-- HCC_001/<study>/<series>/*.dcm
#-- HCC_002 至 HCC_105(同一层级,各含术前与术后检查)
#-- HCC-TACE-Seg_clinical_data-V2.xlsx
#-- 最小可用子集:HCC_001 ~ HCC_010 的术前像 + SEG + 临床表,
#-- 足以跑通「读体数据 → 解掩膜 → 提形状特征 → 接 TTP」全链路
§6.2 依赖与环境
#-- 影像处理全套:pydicom 读 DICOM,highdicom 读 SEG,
#-- SimpleITK 处理几何,pandas 读临床表
pip install pydicom highdicom SimpleITK pandas numpy scikit-learn
§6.3 把术前与术后分开
配对的核心是把每次检查相对 TACE 日期排序。临床表的治疗字段给出治疗日期,DICOM 的 StudyDate 给出检查日期,两者相减即得时序。
#-- 依据:官方称基线像在首次 TACE 前 1-12 周(平均 3 周)
#-- 若某次检查差值 > 0 判定为术后,< 0 判定为术前
import pandas as pd
from datetime import timedelta
def split_studies(studies, tace_date, tol_days=7):
"""studies: [(study_uid, study_date)],返回 (术前, 术后)"""
pre, post = [], []
for uid, d in studies:
delta = (d - tace_date).days
if delta < -tol_days:
pre.append((uid, delta))
elif delta > tol_days:
post.append((uid, delta))
# 差值在 tol 窗口内的检查既非明确术前也非明确术后,单列待人工判断
return sorted(pre, key=lambda x: x[1]), sorted(post, key=lambda x: x[1])
这段代码里刻意留了一个「灰区」分支。理由在数据里:官方只承诺基线像在术前 1 至 12 周,未承诺术后像的时间窗,围手术期短期内的检查若按符号硬切,可能切反。
§6.4 读取四类掩膜
#-- 用 highdicom 解 SE seg;段编号与解剖的对应关系以 SegmentSequence 的
#-- SegmentLabel 为准,不要硬编码顺序
import highdicom as hd
import numpy as np
import pydicom
def read_seg(seg_path):
seg = pydicom.dcmread(seg_path)
#-- 段序号 -> 段标签(如 Liver / Tumor / HepaticVein / PortalVein)
labels = {s.SegmentNumber: s.SegmentLabel for s in seg.SegmentSequence}
frames = seg.pixel_array # 形状 (帧数, 行, 列)
masks = {}
for i, frame in enumerate(frames, start=1):
refs = hd.seg.get_segment_sequence(seg, i).ReferencedSegmentNumber
masks.setdefault(labels[refs], []).append(frame)
return {k: np.stack(v) for k, v in masks.items()}
§6.5 处理 HCC_001 那类尺寸不一致
#-- 官方公告 HCC_001 的 SEG 与 CT 尺寸略不同。
#-- 做法:不做任何广播,先断言形状,再按物理坐标重采样到 CT 网格
import SimpleITK as sitk
def align_mask_to_ct(mask_img, ct_img):
if mask_img.GetSize() != ct_img.GetSize():
mask_img = sitk.Resample(
mask_img, ct_img, sitk.Transform(), sitk.sitkNearestNeighbor,
0, mask_img.GetPixelID())
return mask_img
用最近邻重采样而非线性插值,是因为掩膜是类别图而不是强度图;插值会在边界造出 0.5 这种不存在的类别值。
§6.6 构造 TTP 标签
#-- 原论文口径:14 周切点,TTP >= 14 周为易感,< 14 周为难治
#-- 切点是作者设定的分析选择,不是指南标准;换切点必须重训并报告
import pandas as pd
def make_ttp_label(followup: pd.DataFrame, cutoff_weeks: int = 14) -> pd.Series:
weeks = followup["TTP_days"] / 7.0
return (weeks >= cutoff_weeks).astype(int)
§6.7 按患者划分
#-- 同一患者有多次检查,按检查划分必然泄漏;必须以 PatientID 为分组键
from sklearn.model_selection import GroupKFold
def patient_folds(patient_ids, n_splits=5):
gkf = GroupKFold(n_splits=n_splits)
dummy = [[0]] * len(patient_ids)
for train_idx, test_idx in gkf.split(dummy, groups=patient_ids):
yield train_idx, test_idx
§6.8 抽取形状特征
原论文用 Boruta 做特征筛选,结果是「肿瘤与背景肝的形状特征」主导。这条结论对实现有直接含义:先把形状特征算扎实,再谈纹理。
为什么形状会比纹理更重要,值得多想一步。纹理特征描述的是像素强度的空间分布,它对成像协议极其敏感——同一病灶在层厚三毫米与一毫米的重建下,灰度共生矩阵的数值可以差出一个量级;形状特征描述的是几何,只要掩膜准确、物理间距正确,它对重建参数的依赖小得多。在只有一百零五例的小样本里,稳健的特征比精细的特征更有用,这大概是原论文得到那个结论的底层原因。
这也反向说明掩膜质量为什么在这份数据里是命门。形状特征完全由掩膜决定,掩膜偏一个体素,体积与紧致度都会跟着动;而纹理特征可以靠更大的感兴趣区把掩膜误差摊薄。换句话说,选形状特征等于把全部误差预算押在分割上。
#-- 体素体积 = 行列间距乘积 × 层厚;形状类特征对分割误差最敏感
import numpy as np
def shape_features(mask, spacing):
voxel_vol = spacing[0] * spacing[1] * spacing[2]
v = mask.astype(bool)
n_vox = int(v.sum())
volume = n_vox * voxel_vol
surface = np.abs(np.diff(v.astype(np.int8), axis=0)).sum() \
+ np.abs(np.diff(v.astype(np.int8), axis=1)).sum() \
+ np.abs(np.diff(v.astype(np.int8), axis=2)).sum()
sphericity = (36 * np.pi * volume ** 2) ** (1 / 3) / (surface * spacing[0] * voxel_vol + 1e-9)
return {"voxel_count": n_vox, "volume_mm3": volume, "sphericity": float(sphericity)}
§6.9 快速基线
数据量小,理论上限不必用深度模型去撑。作为对照基线,逻辑回归或随机森林加形状特征就够。
#-- 原论文基线:BCLC 分期单用准确率 62.9%,加影像特征 74.2%
#-- 这里只搭同构的最小实现,不作为性能复现
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
def baseline(X_tr, y_tr, X_te, y_te):
clf = RandomForestClassifier(n_estimators=500, random_state=0)
clf.fit(X_tr, y_tr)
return accuracy_score(y_te, clf.predict(X_te))
§6.10 坑点
⚠️ 坑点 1:把检查数除以患者数当成「每人恰好术前术后各一次」(分类:标签理解)
问题:平均两次不等于每人两次。有的患者多次 TACE、多次随访,有的只有一次术前。
症状:写好的配对函数在一部分患者上返回空列表,或把两次术前像配成一对。
解决:1) 简单方法:先按患者输出检查时序表,人工看分布;2) 进阶方法:§6.3 的差值法加灰区;3) 严谨方法:把配对视为多对多关系,配不上的患者从配对分析中剔除并记录剔除数。
参考:TCIA 集合页规模字段
⚠️ 坑点 2:以为术后像也有掩膜(分类:标签理解)
问题:官方只在术前 CT 上做了四类分割,术后像完全没有标注。
症状:按「每人两份掩膜」写的数据集类跑出来只有一半样本。
解决:1) 把术后像当作无标注输入;2) 若需要术后活性肿瘤,自建标注流程并明确这是自建标签;3) 报告中区分官方标注与自建标注。
参考:官方 Detailed Description 段
⚠️ 坑点 3:期相选错(分类:预处理陷阱)
问题:多期增强 CT 一次检查多个序列,影像组学特征对期相极度敏感。
症状:同一患者的「肿瘤强化程度」在不同期相下相差数倍,模型学到的是扫描协议而不是生物学。
解决:1) 固定选动脉期或门脉期,全库一致;2) 在报告中写明选期规则;3) 若做多期建模,把期相作为显式通道而不是随机选一个。
参考:原论文以术前多期增强 CT 为输入
⚠️ 坑点 4:SEG 与源序列没对上(分类:工程陷阱)
问题:DICOM-SEG 只是引用源序列的派生对象,脱离引用关系就没有空间意义。
症状:掩膜层数与 CT 层数不一致,或层序错位。
解决:1) 先读 SEG 的引用序列 UID,找到对应 CT;2) 按ImagePositionPatient排序而非文件名;3) 形状不符时按 §6.5 重采样。
参考:官方对HCC_001的尺寸不一致公告
⚠️ 坑点 5:按切片划分(分类:数据泄漏)
问题:同一患者的多层切片高度相关,切片级随机划分会把验证集变成训练集的近邻。
症状:交叉验证分数很好看,换一批患者立刻掉一大截。
解决:1) 一律用GroupKFold以患者编号分组;2) 报告时注明划分层级;3) 若能按年代分层更好。
参考:§6.7 代码
⚠️ 坑点 6:把 14 周切点当成医学标准(分类:评估误用)
问题:14 周是论文作者设定的分析参数,不是 mRECIST 的响应定义。
症状:换数据集后无法解释为何阈值应该一样,审稿人会问出处。
解决:1) 明确写成「按原文 14 周切点」;2) 做敏感性分析,试 12、16、20 周;3) 有条件时用生存模型替代二分类。
参考:原论文摘要
⚠️ 坑点 7:忽略队列年代(分类:偏倚陷阱)
问题:2002–2012 年的 TACE 技术与当代不同,载药微球在后期才逐步进入常规。
症状:在外部当代队列上性能显著下降,且下降集中在技术相关特征上。
解决:1) 报告中明确年代边界;2) 外部验证优先选同年代队列做首轮;3) 不要把「TACE」当成单一干预变量解释。
参考:官方页面队列时间说明
⚠️ 坑点 8:把随访表当成全集(分类:数据泄漏)
问题:七个工作表人数不一定相同,随访表只含有结局记录者。
症状:用内连接后样本量突降,且降掉的人不是随机的。
解决:1) 先统计每表人数;2) 以内连接样本为主分析集,报告剔除人数;3) 做一次「全左连接 + 缺失指示变量」的敏感性分析。
参考:§4.3
§7 质量评估与局限性
§7.0 阅读本节前需要知道的一件事
不要用「数据集基准」的框架来评这一份。它没有官方划分、没有排行榜、没有统一的评测脚本,用「能不能刷榜」去衡量会得出错误结论。正确的框架是:它是一份带结局的临床影像队列,价值在于配对与终点,衡量它的尺子是「配对关系是否可复原」「结局定义是否可追溯」「掩膜是否覆盖了你需要的结构」。
§7.1 已知偏倚
| 类型 | 描述 | 严重程度 | 缓解 |
|---|---|---|---|
| 单中心 | 全部来自 MD 安德森一家 | 高 | 外部多中心验证 |
| 年代偏倚 | 2002–2012 年技术与当代不同 | 高 | 明确年代边界,分年敏感性分析 |
| 选择偏倚 | 仅收入有结局记录者 | 中 | 报告剔除口径 |
| 转诊偏倚 | 三级医院人群分期偏晚 | 中 | 与社区队列对照 |
| 标注偏倚 | 半自动分割后人工审校 | 中 | 抽样复核,估计掩膜误差 |
§7.2 标注质量
官方描述为「Amira 半自动分割,后经临床审校」。这句话的含义是:初始轮廓来自算法,人工负责修正。这种流程的效率高于纯手工,代价是人工介入的深度不可量化——官方未报告审校者人数、未报告重复标注、未报告一致性指标。因此掩膜的可信度只能通过下游任务的稳定性间接判断。
§7.3 泛化风险
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 迁移到当代 DEB-TACE 队列 | 技术差异导致特征分布漂移 | 队列终止于 2012 年 |
| 迁移到非美国人群 | 病因构成不同(乙肝/丙肝/酒精比例) | 单中心转诊人群 |
| 迁移到低层医院扫描仪 | 层厚与重建核不同 | 年代与设备未知 |
| 迁移到 MRI | 模态完全不同 | 本集合仅 CT |
| 迁移到术后即刻判定 | 无术后掩膜 | 结构性缺失 |
§7.4 DAIMS 评分表
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 描述层·身份与边界 | ✅ | DOI 唯一,TCIA 集合页明确患者数、年代、治疗方式 |
| 2 | 描述层·文档完备度 | ⚠️ | 有集合页与原论文,但无字段字典、无标注者信息 |
| 3 | 结构层·标识体系 | ✅ | HCC_xxx 主键贯穿影像与临床表 |
| 4 | 结构层·层级一致性 | ⚠️ | DICOM 四级标准,但 HCC_001 已知尺寸不一致 |
| 5 | 结构层·模态配对 | ✅ | 术前/术后成对,临床表与影像可按键连接 |
| 6 | 访问层·开放程度 | ✅ | 公开下载,无需注册或申请 |
| 7 | 访问层·可复现性 | ⚠️ | 无官方划分与评测脚本,复现依赖自定协议 |
| 8 | 访问层·许可清晰度 | ✅ | CC BY 4.0,引用格式官方给出 |
DAIMS 评分:6.5 / 8。扣分集中在两处:文档完备度缺字段字典,可复现性缺划分与评测协议。前者可以用社区经验弥补,后者只能靠作者自己声明协议。
评分解读:身份与访问两项满分,说明这一份在「能被找到、能被合法使用」这个层面是干净的;结构层与文档层的扣分说明它更像一份研究用的原始队列,而不是打磨过的基准集。
对你意味着什么:如果你准备写论文,划分协议要自己定并在方法里写清;如果你想做榜单比较,先确认对方用的是不是同一个切点与同一个期相,否则数字不可比。
§7.5 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| 本集合 5 折内部验证 | MD 安德森 | TACE 响应二分类 | 准确率 74.2% | — | 原论文报告值,BCLC 单用为 62.9% |
外部验证的公开结果目前只有这一条内部交叉验证口径。这不是疏漏,而是这一份数据的现状:它上市不到五年,且无官方划分,真正做过跨队列验证的公开论文尚未形成可引用的矩阵。诚实的写法是把它空着,而不是拿不相干的研究填进去。
§7.7 缺失了什么,以及缺的那部分有多重要
把缺口按「对结论的影响」排个序,比逐条罗列更有用。
| 缺口 | 影响面 | 能否补救 |
|---|---|---|
| 无术后掩膜 | 无法直接做 mRECIST 自动评估 | 可自建标注,但需声明 |
| 无官方划分 | 论文间数字不可直接比较 | 可自定协议,但需写明 |
| 无逐例治疗技术字段 | 无法拆分碘油与微球 | 不可补救 |
| 无标注者与一致性 | 掩膜误差不可量化 | 可抽样复核估计 |
| 无逐例扫描仪信息 | 无法做设备分层分析 | 可从 DICOM 头部分还原 |
| 无外部队列验证结果 | 泛化性只能推不能证 | 需另找队列 |
这张表里唯一「不可补救」的是第三项。它的严重性取决于研究问题:如果你只关心「术前影像能不能预测 TTP」,治疗技术是混杂变量,可以在局限性里交代;如果你关心「哪种 TACE 技术更适合这类患者」,这一份给不出任何答案。
§7.8 如果把这一份当作外部验证集
反过来的用法也值得说明:把在别的数据集上训练的模型拿到这里做外部验证。这种用法对数据的要求与训练相反——训练要求样本量与分布多样,验证要求标签定义与目标人群一致。
用这一份做外部验证时,有三处必须对齐:一是终点定义,若原模型用的是 mRECIST 的完全缓解或部分缓解二分,而这里是 14 周 TTP 二分,两者不可直接对照;二是期相,若原模型在门脉期上训练,这里也必须取门脉期;三是分割来源,若原模型依赖自动分割,这里应当先跑一遍自动分割再评估,而不是用官方掩膜,否则测的是「完美分割下的模型性能」而非真实部署性能。
这三点里,第三点最容易被忽略,也最容易让外部验证的结果虚高。用官方掩膜做外部验证,等于同时消除了分割误差与模型误差,报出的数字在实际临床部署中无法复现。
§7.9 伦理与去标识
TCIA 作为托管方完成去标识,患者编号改为 HCC_xxx。影像的 DICOM 头已清除姓名、病历号与精确出生日期。需要注意的边界是:去标识只处理了直接标识符,面部与体表信息在腹部 CT 上通常不构成风险,但若下游把整个体数据用于重建,仍需遵守各自机构的伦理要求。
§8 版本、生态与为何能持续
§8.1 版本时间轴
| 时间 | 事件 |
|---|---|
| 2019-09 | 原论文发表于 Radiology: Artificial Intelligence |
| 2021 | 数据集以 DOI 登记 |
| 2022-08-17 | TCIA v1 上线,状态 Complete |
| 之后 | 无新版本 |
§8.2 生态位
在肝肿瘤影像的生态里,这一份的位置是「带结局的配对队列」,与纯分割集是两类东西。分割集回答「肝和肿瘤在哪里」,它回答「这个人做 TACE 之后会怎样」。二者可以互补:用 LiTS 之类的大样本训练分割器,再用本集合的分割做小样本微调与疗效建模,是常见的组合思路。
§8.3 配套代码
官方外链指向一个 GitHub 仓库,README 写明代码用于肝脏分割模型的构建与训练,并注明了原始脚本来自一场影像深度学习课程的实操课,后经 MD 安德森与莱斯大学的研究者改写。仓库自 2021 年 4 月后没有新的提交,是一个「论文配套存档」而非活跃项目。使用它时应当把它当作方法参考,而不是可以直接跑通的工具链。
§8.4 为何能持续
这一份数据没有维护团队,也不需要维护。它的可持续性来自三层结构:
| 层 | 机制 |
|---|---|
| 托管层 | TCIA 作为 NCI 资助的长期档案,承担存储与访问 |
| 引用层 | DOI 独立于托管方,即使页面改版,引用仍可解析 |
| 共识层 | 肝癌介入疗效预测这个需求长期存在,而公开配对数据稀缺 |
第三层是关键。一个数据集能活下去,往往不是因为它被更新,而是因为它占的位置没人接。TACE 疗效预测的数据只此一份,需求方就绕不开它。
§8.5 为什么它是回顾性而非前瞻性
官方用词是「回顾性获取」(retrospectively acquired)。这句话的含义不只是「不是专门为机器学习收集的」,还意味着数据的形状由当年的临床流程决定,而不是由研究设计决定。回顾性数据有三个后果,在使用时会持续显现:
| 后果 | 具体表现 |
|---|---|
| 入组不由研究决定 | 只收有结局记录者,早期死亡与失访被排除 |
| 成像协议不统一 | 十年间设备与重建参数不同 |
| 标注只覆盖一部分 | 只对术前像做分割,因为原始课题就是分割训练 |
前瞻性队列的好处是可以预先规定扫描协议与随访间隔,代价是成本高、周期长、且需要在治疗决策前招募。这一份数据在 2012 年之后没有续建,也说明这条路径的组织成本。
§8.6 关键文献
| 文献 | 贡献 |
|---|---|
| Morshid 等,2019,Radiology: AI | 建立本队列与 14 周切点,报告 74.2% 对 62.9% |
| TCIA 数据引用,2021 | 数据集正式登记,给出 DOI 与引用格式 |
| 官方配套代码仓库 | 肝脏分割模型的训练流程存档 |
§9 资源与引用
§9.1 官方资源
§9.2 引用格式
@misc{moawad2021hcctaceseg,
title = {Multimodality annotated HCC cases with and without advanced imaging segmentation},
author = {Moawad, A. W. and Fuentes, D. and Morshid, A. and Khalaf, A. M. and
Elmohr, M. M. and Abusaif, A. and Hazle, J. D. and Kaseb, A. O. and
Hassan, M. and Mahvash, A. and Szklaruk, J. and Qayyom, A. and Elsayes, K.},
year = {2021},
publisher = {The Cancer Imaging Archive},
doi = {10.7937/TCIA.5FNA-0924}
}
§9.3 引用纪律
引用时必须同时出现数据集署名与 DOI。只写 TCIA 而不写数据集作者,不满足 CC BY 4.0 的署名条件。若研究中使用了原论文的 14 周切点,应同时引用论文,因为切点属于论文的方法选择而非数据本身。
§9.4 复现路径清单
把这一份数据做成可复现研究,需要在自己仓库里落地的文件并不多,但每一件都不能省。
| 文件 | 内容 | 为什么必须有 |
|---|---|---|
| 数据清单 | 患者、检查、序列三级表 | 让纳入数可核对 |
| 期相选择规则 | 每个序列的期相判定依据 | 让特征可解释 |
| 划分文件 | 患者级折号分配 | 让结果可复算 |
| 标签定义 | TTP 切点与易感/难治映射 | 让结论可比较 |
| 预处理版本 | 重采样目标间距与插值方式 | 让体数据可重建 |
这五件文件里,第四件最容易被忽略,也最容易引发争议。同一个数据集、不同的切点,报出的准确率可以差出两位数,而两个数字在表面上都叫「TACE 响应预测准确率」。写明切点,是这个领域里最基本的礼貌。
§9.5 与库内其他肝影像资源的取数组合建议
若研究同时需要分割规模与治疗结局,可以把两类资源按功能分工组合使用:用大样本分割基准训练并验证分割网络,再用本集合的术前分割做少量微调与一致性检查,最后把分割输出接入结局模型。这么做的理由是两条数据的时间与中心都不同,跨集合的一致性检查本身就是一个有价值的实验项——如果分割网络在本集合上明显退化,说明本集合的成像条件与主流训练集存在系统性差异,这个差异必须在结局模型的误差分析里交代。
§10 AI 使用声明卡
| 项 | 内容 |
|---|---|
| 性质 | 人工撰写的百科正文,事实来自官方页面与原论文 |
| 用途 | 数据集选型、接入参考、局限提示 |
| 不建议用途 | 替代原始论文的方法学阅读;替代 TCIA 使用政策 |
| 伦理 | 数据已去标识;使用者仍需遵守所在机构伦理审查 |
| 引用 | 见 §9.2 |
| 版本 | 对应 TCIA v1(2022-08-17) |
| 状态 | published |
常见误读
| 常见说法 | 实际情况 | 证据 |
|---|---|---|
| 「两百一十一除以一百零五等于二,所以每人术前术后各一次」 | 平均值不等于结构,多疗程与随访次数因人而异 | TCIA 规模字段只给总数 |
| 「分割包含术前和术后两套」 | 分割只在术前像上做过 | 官方 Detailed Description 段 |
| 「十四周是 mRECIST 的响应标准」 | 是原论文设定的分析切点 | 原论文摘要 |
| 「有肝和肿瘤两类标签」 | 官方列为四类,另有肝静脉与门静脉 | TCIA 元数据表 |
| 「TACE 就是一个干预变量」 | 十年间技术细节变化大 | 官方队列年代说明 |
| 「可以直接拿来做深度学习预训练」 | 体量偏小,价值在配对与终点 | 规模数字 |
| 「HCC_001 的尺寸问题可以不管」 | 临床上可忽略,工程上会报错 | 官方 Note 段 |
| 「有一份官方训练测试划分」 | 没有,需自建 | 集合页未列划分 |
| 「配套代码可以直接复现原论文」 | 仓库是流程存档,非完整流水线 | README 自述 |
| 「临床表七个表人数相同」 | 各表覆盖人群不同 | 字段主题划分 |
FAQ
Q1:这个集合到底是 CT 还是 MRI?
只有 CT。多期增强 CT 是唯一模态,SEG 是叠加在 CT 上的派生对象,XLSX 是临床表,三者合起来才构成「多模态标注」这个说法。
Q2:术后像有分割吗?
没有。官方只对术前 CT 做了四类分割。要评估术后存活肿瘤,需要自行标注或自行判读。
Q3:能直接做 mRECIST 评估吗?
mRECIST 依赖强化区域判定,术后像无标注也没有官方的活性结论,需要自己按规则判读,并在报告中声明这是自建标签。
Q4:一百零五例够不够训练模型?
做影像组学与传统机器学习够用,原论文即是这个量级;做端到端深度学习偏小,更适合小样本微调或外部验证。
Q5:为什么强调 2002–2012?
这十年间的 TACE 技术在变,队列的时间边界决定了模型能解释到哪一代技术为止。
Q6:可以商用吗?
可以,CC BY 4.0 允许商用,条件是署名并给出 DOI。
Q7:有没有官方排行榜?
没有。既没有划分也没有评测脚本,任何「榜单」都是第三方自建的。
Q8:怎么确定哪次检查是术前、哪次是术后?
用 DICOM 的检查日期与临床表的治疗日期相减。官方承诺基线像在术前 1 至 12 周。
Q9:肝静脉和门静脉的标注可靠吗?
官方未单独报告血管分割的准确性,只能通过下游任务表现间接判断。
Q10:和 LiTS 一起用该怎么分工?
LiTS 提供大样本肝与肿瘤分割,本集合提供带结局的术前术后配对,适合「先学分割、再学结局」。
Q11:临床表里的治疗字段能拆出 TACE 技术细节吗?
不能。治疗字段是结构化记录,能区分治疗类别与次数,但不会逐个记录栓塞材料。想把碘油与微球分开分析,这一份做不到。
Q12:被判为难治的患者,数据里还有什么值得看?
难治组的术后像与后续随访影像仍在包里。做「为什么失败」的回顾性分析时,这些图像本身就是材料,只是没有对应标注,需要自己判读。
术语表
| 术语 | 释义 |
|---|---|
| HCC | 肝细胞癌,最常见原发肝癌 |
| TACE | 经导管动脉化疗栓塞,局部介入治疗 |
| DEB-TACE | 载药微球 TACE,本集合时代之后普及的技术变体 |
| mRECIST | 改良实体瘤疗效评价标准,肝癌专用,看强化区域 |
| TTP | 进展时间,从治疗到影像学进展 |
| OS | 总生存 |
| BCLC | 巴塞罗那临床肝癌分期 |
| DICOM-SEG | DICOM 的分割对象,引用源序列的派生存储 |
| SOP Instance | DICOM 的实例级标识,一幅图或一个对象 |
| Study / Series | 检查 / 序列,DICOM 的中间两级 |
| HU | 亨氏单位,CT 强度的标准单位 |
| 各向异性 | 层厚与面内间距不一致 |
| 半自动分割 | 算法出初稿后人工修正 |
| 影像组学 | 从影像提取定量特征做建模 |
| Boruta | 基于随机森林的特征选择方法 |
| 易感/难治 | 按 TTP 阈值把患者二分 |
| 删失 | 随访结束尚未发生事件 |
| 桥接治疗 | 等待移植期间维持病灶控制的治疗 |
| 肝段 | 按血管分布划分的肝脏功能单位 |
| 碘油 | 经典 TACE 的栓塞载体,术后 CT 上呈高密度沉积 |
| 载药微球 | 把化疗药负载在微球上缓释的栓塞材料 |
| 超选择插管 | 把导管推进到供应病灶的动脉分支 |
| 双重血供 | 肝实质由门静脉供血、HCC 主要由肝动脉供血的解剖特征 |
| 删失指示 | 标明随访结束时事件是否已发生的变量 |
| 进展 | 影像学上出现新病灶或原有病灶增大 |
附录 A 速查卡
| 键 | 值 |
|---|---|
| 患者 | 见 §3.1 |
| 检查 | 见 §3.1 |
| 序列 | 见 §3.1 |
| 图像 | 见 §3.1 |
| 体积 | 28.57 GB |
| 分割类 | 4 |
| 切点 | 14 周 |
| 许可 | CC BY 4.0 |
附录 B 文件清单
| 文件 | 内容 |
|---|---|
HCC-TACE-Seg_v1_202201.tcia |
影像清单,供 Data Retriever 使用 |
HCC-TACE-Seg_clinical_data-V2.xlsx |
七个主题工作表的临床表 |
| 各患者目录 | 术前与术后 CT 及 SEG |
附录 C 外部资源对照
| 资源 | 类型 | 用途 |
|---|---|---|
| TCIA 集合页 | 官方 | 元数据与下载 |
| IDC 门户 | 云镜 | 按集合检索与云端读取 |
| livermask | 代码 | 肝脏分割训练流程参考 |
| 3D Slicer + 定量报告扩展 | 工具 | 可视化 DICOM-SEG |
附录 D 期相与序列识别对照
| 现象 | 可能的期相 | 处理 |
|---|---|---|
| 主动脉高亮、肝实质未强化 | 动脉期 | 肿瘤增强最明显 |
| 门静脉高亮、肝实质强化 | 门脉期 | 肝内病灶对比好 |
| 两者均衰减 | 延迟期或平扫 | 结合层厚判断 |
| 描述为空 | 未知 | 弃用或人工判读 |
附录 E 关键词索引
| 关键词 | 定位 |
|---|---|
| 配对 | §1.3、§6.3 |
| 四类分割 | §3.3、§6.4 |
| 时间边界 | §2.3、§7.1 |
| 尺寸不一致 | §4.9、§6.5 |
编辑说明
核验时间:2026-10-29。核验方式:以 TCIA 集合页正文为主源,原论文摘要与配套仓库 README 为辅源。未覆盖内容:临床表各字段的实际取值与分布;术后像与术前的严格配对比例;血管分割的准确性指标。上述三项需在下载数据后自行核对。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- pddca — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
- ct-org — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
- headneck-radiomics — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
- kipa22 — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
- lctsc — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
- spinal-multiple-myeloma-seg — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
- calgb50303 — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
- ca-cancer-verse — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
- colorectal-liver-metastases — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
- radcure — 共享标签:医学影像 / CT / 医学图像分割 / 肿瘤学
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

