数据清理:公共数据库数据下载与整理详细笔记
核心结论:数据清理的关键路径是先明确 TCGA 与 GEO 的适用场景,再下载表达矩阵、注释、分组、生存和临床信息,并在 R 中完成 ID 转换、去重、缩放还原、标准化与分组排序,最终得到可用于差异分析、预后分析和长期保存的表格。
一、总体框架
数据清理部分从一个完整流程开始:
- 从公共数据库下载数据。
- 处理不同数据类型的数据。
- 对下载后的原始文件进行整理,形成后续分析可直接使用的表格。
大部分肿瘤转录组研究会从 TCGA 数据库出发;如果研究的是非肿瘤疾病、普通疾病、小众疾病,或者需要更丰富的测序类型,则通常会使用 GEO 数据库。两个数据库中的数据一般都可以公开、免费下载。
原文多处口播为 TCG、TCZ、TCC、TCZA 等,按上下文应指 TCGA;UCSC 相关整合库原文口播为 ucsc china,以下按原文表述保留。
二、公共数据库背景
2.1 TCGA 数据库
- TCGA 由 NCI 和 NHGRI 两个研究所合作开展。
- 主要针对癌症相关研究。
- 测序方法为二代测序、高通量测序。
- 数据库包含肿瘤患者的临床信息、转录组信息、甲基化测序数据等。
- 因此,研究癌症时一般首选 TCGA。
2.2 GEO 数据库
- GEO 由 NCBI 创建并维护。
- 主要包含转录组相关信息。
- 囊括范围较广:既包含前面 TCGA 中的肿瘤数据,也包含非肿瘤数据,例如普通疾病、小众疾病。
- 测序类型较丰富:包括芯片测序、高通量测序等。
- GEO 是肿瘤和非肿瘤研究中非常重要的公共数据来源。
2.3 选择原则
- 肿瘤转录组研究:优先考虑 TCGA。
- 非肿瘤、普通疾病、小众疾病、多种测序平台数据:考虑 GEO。
- 两者均可公开免费下载,但下载和整理方式不同。
三、TCGA 数据下载:官网与 ucsc china
3.1 为什么初学者推荐 ucsc china
TCGA 有自己官网,但整体样本量多。例如想下载约 200 个样本的转录组数据时,官网通常不太容易整体下载;一个个下载又费劲。
因此可以使用 ucsc china 这类整合数据库。它把 TCGA 数据整体整合在一起,并把单个样本合并处理。对初学者来说,更推荐用 ucsc china 探索 TCGA 来源的数据集。
ucsc china 也是公开访问数据库。它把 TCGA 中单个样本整理成矩阵形式:
- 在 ucsc china 中,获取表达矩阵时就是一个矩阵。
- 在 TCGA 官网中,样本是一个一个的数据,临床信息、生存信息、表达矩阵是分开的,初学者整理起来比较费劲。
3.2 ucsc china 与 TCGA 官网的区别
- TCGA 官网下载的数据整体更全面。
- ucsc china 是定时整理,更新速度没有 TCGA 快。
- 对处理数据和发表文章来说,ucsc china 通常也够用。
- 原文提到其最近数据大概是 24 年的数据,样本变化没有那么多。
3.3 TCGA 数据需要下载的文件
在 ucsc china 下载 TCGA 数据时,主要需要以下文件:
- 表达矩阵:
- 即转录组表达原始数据。
- 包含样本和基因表达量。
- 第一列是 Ensembl ID(原文口播为 ESG id 号),说明目前还不是基因名,需要转换。
- 第一行是 TCGA 样本 ID。
- 矩阵中的数值是对应样本中测到的表达量值。
- 分组文件:
- 需要整理哪个样本是肿瘤,哪个样本是正常对照。
- TCGA 样本编号比较特别,可通过样本名末尾第 14~16 位判断肿瘤和对照分类。
- 注释文件:
- 因为表达矩阵第一列是 Ensembl ID,需要把 Ensembl ID 转换成基因名。
- 注释文件用于完成 ID 转换。
- 生存信息:
- 如果做预后分析或临床信息分析,需要生存信息。
- TCGA 都有 OS 生存数据,即总生存。
- 其他生存信息不一定在 ucsc china 的该表格中,可能在 ucsc china 的另一个表型表格里,原文标注“仅供参考”。
3.4 TCGA 样本编号规则
TCGA 样本编号中最重要的部分是第 14~16 位,用于获得分组。
样本编号中:
- 01~09:表示肿瘤样本,针对常见组织癌症。
- 血液癌症有所不同。
- 10~19:表示正常对照。
- 最多的样本是 01,代表原发肿瘤样本。
- 对照组比较多的是 11。
- 01C 后面的字母:
- 组织测序常用 A,代表原发实体肿瘤。
- B、C 是其他备份,处理方法可能与 01 不一样,可能做了重复。
- B 可能表示福尔马林浸泡。
- 一般选取 01A 和 11A 进行后续分析。
因此,TCGA 分组主要看样本编号第 14~16 位,常见选择是 01A 原发肿瘤与 11A 癌旁正常对照。
四、GEO 数据下载:芯片与高通量
GEO 数据库中肿瘤和普通疾病大部分数据都有。下载方式与 TCGA 下载文件不同,需要关注测序平台、样本界面、表达矩阵下载位置和补充信息。
4.1 GEO 页面需要关注的内容
- 测序平台:
- 这是 GEO 数据库中的重要信息。
- 如果第一列不是基因名,芯片测序数据的第一列会是芯片测序 ID。
- 因此需要下载注释平台文件。
- samples 界面:
- 显示总体数据集中有多少个样本。
- 原文图中示例为 462 个样本。
- 表达矩阵下载位置:
- 在 download family 下面有一个 TXT 文档。
- 点击进去可下载数据。
- 补充信息:
- 例如单细胞数据不能以 TXT 文件上传,因为整体很大。
- 单细胞数据一般保存在补充文件里,可能是某种组合文件或 RDS 等文件类型。
4.2 芯片测序数据下载
芯片测序数据需要下载两个文件:
- 测序平台文件。
- 表达矩阵文件。
表达矩阵文件常见为 TXT.7Z 文件,里面包含表达矩阵和一些注释信息,例如:
- 某些样本是肿瘤组、疾病组或对照组。
- 测序类型可能是外周血单核细胞或某某组织。
测序平台文件:
- 第一列带有下划线和 at 的格式,是芯片测序 ID。
- 还有一列叫基因,可能是 Ensembl 或 gene symbol 等信息,包含基因名。
- 下方有两个按钮,可下载文件。
4.3 高通量测序数据下载
高通量测序数据的下载方式区别于芯片测序。其首页会直接有一个按钮。
高通量测序数据一般需要下载三个文件:
- raw counts 原始计数矩阵。
- 标准化后的 TPM 表达矩阵。
- 注释文件。
对比总结:
- 芯片测序数据:两个文件,测序平台文件 + 表达矩阵文件。
- 高通量测序数据:三个文件,raw counts + TPM + 注释文件。
五、需要整理的核心表格
无论是 TCGA、GEO 高通量,还是其他转录组数据,整理目标通常包括以下五个表格:
- 原始表达矩阵:
- 高通量数据如 GEO 或 TCGA,需要整理成原始表达矩阵。
- 因为原始文件常为 Ensembl ID,需要转换成基因名并保存。
- 标准化表达矩阵:
- 差异分析时,一般用 DESeq2 包对 count 数据进行组间差异分析。
- 后续分析使用标准化表达矩阵。
- 标准化矩阵一般使用 TPM 表达矩阵。
- 原文口播为 GPM,按上下文应为 TPM。
- 分组信息表:
- TCGA 数据从样本编号区分。
- GEO 数据从注释信息、临床信息区分。
- 生存状态和生存时间表:
- 如果研究预后、生存,需要整理生存状态和生存时间。
- 临床信息表:
- 与预后相关的数据,如年龄、性别、病理分期、TNM 分期等。
六、ucsc china 下载 TCGA 数据实操
进入 ucsc china 数据库:
- 点击 launch china 进入数据库首页。
- 点击 this size 数据集,里面包含许多癌症数据。
- 基本上 TCGA 里的癌症已经整理好。
- 一般推荐下载 GDC TCGA 后续的这些癌症数据。
- 点击其中一个示例数据,例如肺腺癌。
- 进入后包含不同种类的数据。
转录组分析需要下载:
- count 表达矩阵:
- 即原始基数矩阵。
- 点击 download 后面的链接。
- 保存为 TSV.GZ 结尾的文件。
- 可直接读取到 R 里,不需要解压。
- 注释文件:
- 用于转换 ID 号和基因名。
- 点击 ID mapping,即匹配基因名的地方。
- 保存到对应文件夹。
- TPM 表达矩阵:
- 即标准化后的表达矩阵。
- 点击 download。
- 注释文件一样,不用再点击。
- 表型数据:
- 代表临床数据,包含年龄、性别等信息。
- 生存数据在表格里面,点击下载。
- 原文提示网络有要求,界面可能卡顿。
七、TCGA 数据整理实操
7.1 读取文件
在 RStudio 中:
- 设置工作目录:
- 创建名为 lianshen2 的工作目录,原文口播如此。
- 设置其为工作目录。
- TCGA 数据放在对应位置,再转换工作路径。
- 加载数据处理 R 包。
- 读取五个文件:
- count1:原始 count 表达矩阵。
- ESP1:TPM 表达矩阵。
- PHE1:临床数据。
- SUR1:生存数据。
- AN1:注释文件。
使用 read.table 读取 TSV 文件,分隔符为制表符。表达矩阵样本多,读取速度慢。
7.2 查看文件结构
count1:
- 6 万多行,589 列。
- 行代表基因,基因名很多。
- 列代表样本。
- 行名是 Ensembl ID。
- 列名是 TCGA 样本编号,共 16 位。
- 末尾三个字符如 01A 代表原发肿瘤,11A 代表癌旁组织,即对照组。
截取列名第 14~16 个字符,用 table 查看分类:
- 01A 最多,有 513 个样本。
- 11A 有 58 个样本。
- 还有 01B、01C 等信息。
- 如果不做复发等其他分析,可直接提取 01A 和 11A,比较原发肿瘤和癌旁对照。
ESP1:
- 行列数与 count1 一模一样。
- 数值不同,整体数据进行了标准化。
PHE1 临床信息:
- 行名代表样本 ID。
- 有 88 列。
- 需要从中找到有用信息。
- 第 11 列是性别。
- 第 14 列是年龄。
- 预后分析常用 stage 分析、TNM 分期等。
- 病理分期 stage 分期在第 44 列。
- 某些癌症有特殊指标,例如前列腺癌可能有 PSA 指标,也可保留。
SUR1 生存信息:
- 第一列是生存时间。
- TCGA 数据单位以天计数。
- 数值范围 0~7500 天,预后时间较长。
- OS 用 0 和 1 表示:0 代表患者活着,1 代表死亡,有死亡事件发生。
- 最后一列是病人编号。
AN1 注释文件:
- 行名是 Ensembl 基因号。
- 需要的列是基因这一列。
- 提取出来即可。
7.3 整理分组信息
- 从 AN1 中用
select只提取基因列。 - 从表达矩阵样本编号列名中提取分组:
- 提取第 14~16 位。
- 只提取第 15~16 位是 1A 的样本。
- ESP1 样本减少,原文提到只剩 570 个样本左右。
- 根据第 14~15 位分类:
- 小于十,即 01,标为肿瘤。
- 大于十,即 11,标为对照。
- 转成数据框形式,制造一列叫
group。 - 给样本信息匹配行名:
- 行名设置为 ESP1 的列名。
- 即 TCGA 样本编号。
- 修改列名为
group。 table查看分类:
- 对照组 58 个样本。
- 肿瘤组 513 个样本。
- 调整顺序:
- 差异分析时通常需要对照组在前,肿瘤组在后。
- 用
order函数按group排序。 - 字符型数据按字母表顺序,N 在 T 前面,所以升序排列可使 normal 在前、tumor 在后。
decreasing=T为降序。- 保留数据框形式,避免行名和样本编号丢失。
- 保存分组文件,供后续差异分析等使用。
7.4 整理生存信息
- 不需要最后一列,因为行名已经是 TCGA 样本编号。
- 提取第一列和第二列,形成新变量 SUR:
- 第一列是 OS。
- 第二列是 OS.time。
- 可重命名,原文提到命名为 first date 等,命名不唯一,后续有对应列名即可。
- 检查缺失值:
- 升序排列,NA 会排到最后。
- 本数据没有 NA,因此不需要删除。
- 如有 NA,可用
na.omit去除带有 NA 的行。
- 检查生存时间为 0 的情况:
- 如果患者随访第一天就死亡,生存时间为 0,后续用不了。
- 可用逻辑筛选提取生存时间大于 0 的行。
- 本数据没有该情况,未操作。
- 生存分析一般只关联肿瘤样本:
- 从 group 变量中提取 group 列为 TUMOUR 的行,得到 group1。
- group1 有 513 个肿瘤样本。
- 用
intersect与生存数据行名取交集,得到 Z1。 - 交集有 500 个样本,即既有肿瘤分组又有生存信息。
- 提取这些样本,生存文件基本整理好。
- 可按 0/1 排序,使顺序整齐。
- 保存生存数据。
- 保存肿瘤样本编号和 group1 肿瘤分组文件,方便后续操作。
7.5 整理临床信息
- 从 PHE1 中提取需要的列:
- 年龄、性别、M 分期、N 分期、T 分期、stage 分期等。
- 这些可能与患者预后相关。
- 重命名为新变量 PHE。
- 简单命名后先保存。
- 后续可能需要整理细节:
- M 分期有 M0 和 M1,MX 其实是缺失值,需要去除。
- T 分期有 T1B、T1A 等亚型,如有需要可合并为 T1。
- 先整理需要的内容,后续再细化。
7.6 整理 count 表达矩阵
- 按 group 文件样本顺序排列表达矩阵列。
- 用
merge按共同行名合并 AN1 基因列:
- count1 行名是 Ensembl ID。
- AN1 行名也是 Ensembl ID。
- 合并后 count1 匹配上基因名。
- 第一列是 Ensembl ID,第二列是基因名,去除第一列。
- 查看数值范围:
- 0~20。
- 说明没有缺失值。
- 如有空值,先标为 NA,再用
na.omit删除。
- 第一列重命名为
sample。 - 尝试把第一列转换为行名:
- 可能报错,提示行名不允许有重复名称。
- 需要处理 Ensembl 列重复值。
- 重复基因名取平均:
- 例如 7SK 有重复。
- 某些行有表达,某些没有表达。
- 对有重复的多行取平均。
- 运算速度慢,因为 6 万多行、500 多列。
- 原文提前准备了 RData,运行时间大概 6 分钟。
- 加载提前计算好的平均结果。
- 去重后,7SK 只有一行。
- 再把基因名列转换到行名,成功。
- 注意 ucsc china 对数据进行了缩放:
- 在肺腺癌表达矩阵首页的 unit 栏提示,对原始 count 矩阵加一,然后取以 2 为底的对数进行缩放。
- 差异分析需要原始计数矩阵,因此需要反转换:平方再减一。
- count 矩阵是计数矩阵,理论上应为整数。
- 由于取平均和反缩放,会有小数。
- 用
round函数取整,小数位数设为零。
- 保存 count 表达矩阵。
7.7 整理 TPM 表达矩阵
TPM 表达矩阵整理方式与 count 矩阵相同,但有两个区别:
- 不需要它是整数。
- 不需要再把缩放转回去。
步骤同样是:
- 按 group 样本排列。
- 匹配注释文件中的基因列。
- 删除多余的 Ensembl ID 列。
- 处理缺失值。
- 把第一列设为 Ensembl 列。
- 对有重复的行取平均。
- 转换到基因名作为行名。
- 查看数值范围,原文为 0~18。
- TPM 也进行了加一、取 log2 的缩放。
- 保存 TPM 表达矩阵。
7.8 TCGA 最终得到的文件
整理完成后,TCGA 数据得到六个文件:
- 分组文件:有肿瘤有对照。
- count 表达矩阵。
- 临床数据。
- 生存信息文件。
- TPM 表达矩阵。
- 只有肿瘤样本的分组文件。
八、GEO 芯片测序数据下载与整理
8.1 芯片数据识别与下载
GEO 数据中,芯片测序数据页面会有 Array 字样。如果某处写的是高通量测序,则是另一种数据。
芯片数据下载:
- 下拉到最后,第一个点击 TXT 文件。
- 点击后会跳转,然后点击下载。
- 注意文件大小:
- 一般是多少兆。
- 如果只有几 K,可能是空文件。
- 如果为空,去下方补充文件,可能上传了整理好的表达矩阵。
- 如果补充文件也没有,就换数据集。
- 第二个文件是测序平台文件:
- GPL570 是最常见的芯片测序平台。
- 点击跳转到测试平台界面。
- 下拉到最后有两个按钮:
- 第一个下载 TXT 文档。
- 第二个下载 soft.GZ 文档。
- 优先下载 soft.GZ,因为 R 包可直接把 soft.GZ 整理成方便框架。
- 下载时需要改名为 soft.GZ,原文说该包只能读取名字为 soft.GZ 的文件。
8.2 芯片数据代码实操
- 删除前面对象,释放内存。
- 切换工作目录到 GSE31210 数据下,原文口播为 JSE31210。
- 已下载文件:
- GPL570 soft.GZ。
- 表达矩阵文件。
- 加载 R 包:
- GEO 处理包,原文提到用
getGEO函数。 - tidyverse 数据处理集大成 R 包。
- limma 包:常用于芯片测序数据或 TPM 表达矩阵的组间差异分析,也可对样本进行标准化。
- 用
getGEO读取两个数据集:
- 设置
getGPL=T,会默认下载 soft.GZ 文件。 - 下方提示发现本地文件,包括 T1.GZ 和 soft.GZ 平台文件。
- 说明也可以在线下载,但在线下载能力有限。
- 表达矩阵有 57 兆,很大,在线下载可能只有几 KB。
- 因此一般提前下载到本地,并改名为 soft.GZ。
8.3 提取表达矩阵与分组信息
- 读取后得到较大 list。
- 用函数提取表达矩阵,并转为数据框:
- 行名是芯片探针 ID。
- 列名是 GEO 编号,以 GSM 开头。
- 数值是每个样本中测到的表达量值。
- 查看表达矩阵数值范围:
- 0.05 到 5 万,范围较大。
- 说明还没有进行缩放。
- 数据缩放:
- 加一。
- 取 log2。
- 缩放后一般 0~20 左右。
- 提取注释信息:
- 主要提取样本分类信息。
- 用匹配函数提取。
- 原文称矩阵有 246 行 66 列,但后续分组为 normal 20 + tumor 226,共 246 个样本,实际行列需以数据为准。
- 查找分组信息:
- 在 phenotype 第 10 列。
- 写有组织:正常肺部、原发肺肿瘤。
- 前面有“基数:”前缀。
- 简化列一般在最后一列,第 66 列,分为原发肺肿瘤和正常肺。
- 提取平台注释:
- 用
featureData函数提取注释平台文件,指定为数据框。 - 行名是芯片测序 ID。
- 有一列 id,与行名一模一样。
- 需要的列是基因列。
- GPL570 中该列叫 gene symbol,原文口播为基 SAML。
- 其他平台可能叫 sample 或 gene name,看列内容是否为基因。
- 打印列名,复制 gene symbol 名称,提取该列。
- 创建分组信息表:
table第 10 列。- 一般提取样本列和分组列。
- 样本列固定是第二列。
- 分组列需要自己找,例中在第 10 列。
- 重命名并整理文字:
- 用
mutate创建新列group。 - 如果字样为正常肺部,标为对照。
- 否则原发肺肿瘤标为肿瘤。
- 用
select提取 group 列。 - 用管道操作符简化两步操作。
table查看:
- normal 组 20 个样本。
- tumor 组 226 个样本,原文显示为 TUA。
- 用
order升序排列,normal 在前,tumor 在后。 - 保存分组文件。
8.4 整理芯片生存数据
- 生存时间也在 PHE 变量中。
- 打印所有列名。
- 第 54 列是 death,死亡事件。
- 第 52 列是随访时间。
- 字样为 alive 和 death:
- alive 表示患者活着。
- death 表示死亡。
- 生存时间单位:
- 原文标注单位为 DISS,即天。
- 有的数据会标注月或年,选择对应列。
- 提取第 54 和第 52 列,重命名:
- 第一列生存状态。
- 第二列生存时间。
- 生存状态转换:
- alive 改为 0。
- death 改为 1。
- 用
ifelse实现。 - 先
table原分类。
- 生存时间列原为 character,需要转换为数值型,方便筛选和运算。
- 删除 NA:
- 带 NA 的行可能是对照样本,对照一般不对其随访。
- 删除 NA 行。
- 统一生存时间单位:
- 月 × 30。
- 年 × 365。
- 统一修改为天,方便后续整理。
- 生存时间为 0 的也需剔除:
- 用逻辑筛选大于 0 的天数。
- 从 group 分组文件中提取 tumor 组样本。
- 与生存数据取交集:
- 有生存信息且为肿瘤组的样本。
- 交集有 226 个样本。
- 匹配这 226 个样本。
- 对生存状态 0/1 排序。
- 保存生存数据。
- 按 SUR 变量样本排列顺序匹配肿瘤样本。
- group1 有 226 个肿瘤样本,保存肿瘤分组文件。
8.5 整理芯片表达矩阵
- 按分组文件样本顺序排列表达矩阵样本顺序。
- 与 TCGA 整理方式类似:
- AN 变量行名是芯片 ID,有一列 gene symbol。
- EXP 或 ESP1 变量行名也是芯片 ID。
- 用共同行名匹配,新增一列 gene symbol。
- 删除第一列。
- 空值标 NA,删除带 NA 的行。
- 数据较大:
- 5 万多行。
- 200 多例。
- 需要等待。
- 芯片特殊问题:
- 一个芯片可能测到两个基因。
- gene symbol 列中有三个斜杠,左右各有两个基因名称。
- 需要按分隔符三个斜杠拆分为两行。
- 后面的数据都复制过去。
- 原文使用按固定分隔符对对应列进行分隔的函数。
- 拆分后,两行数据后面的值一模一样。
- 第一列重新命名。
- 有重复值时,对重复行取平均:
- 例如 ACF 和 ACF 一模一样。
- 需要对后面的数据取平均。
- 原文提前保存了计算结果,运算速度大概 35 分钟。
- 去重后,把该列设为行名,成功说明没有重复值。
- 查看数值范围:
- 0.06 到 4 万,范围较大。
- 数据缩放:
- 加一。
- 取 log2。
- 缩放后范围 0~15。
- 绘制箱线图:
- 先简单绘制 1~100 的箱线图。
- 发现不太整齐。
- 用 limma 包标准化:
- 对整体 date 变量进行标准化。
- 再绘制图片,表达整体比较整齐,效果明显。
- 查看数值范围,保存表达矩阵。
8.6 芯片最终文件
芯片测序数据最终得到四个文件:
- 表达矩阵,保存格式为 TXT。
- 生存信息文件。
- 有所有对照组的分组文件。
- 所有肿瘤样本的分组文件。
九、GEO 高通量测序数据整理
高通量测序数据下载到三个文件:
- 原始 count 矩阵。
- TPM 表达矩阵。
- 注释文件。
9.1 读取与查看
- 加载数据处理 R 包。
- 用
getGEO读取:
- 不需要测序平台文件,因为已自己下载人类基因组注释文件。
- 设置
getGPL=F。
- 主要提取用井号注释掉的信息:
- 判断哪些样本是肿瘤组、对照组。
- 或哪些是疾病组、对照组。
- 如果做疾病和对照分析,而不是肿瘤分析:
- 不需要考虑预后信息,如生存信息 OS。
- 不需要临床数据年龄、性别。
- 只需整理疾病和对照分组。
- 查看文件:
- count 矩阵:行名是基因 ID,不是基因名;列名是样本编号;数值是计数,测到一次记为 1。
- ESP:标准化后的 TPM 表达矩阵。
- GPL:人类基因组注释文件;第一列是基因 ID 列,即 count 和 ESP 的行名;需要列 sample,即基因名。
9.2 示例:雄激素脱发数据
用 pData 提取注释信息:
- 共 20 行。
- 49 个分类信息。
- 分组信息在第 8 列。
- 根据取样位置确定测序类型:
- 组织是毛囊。
- 对照样本在后脑勺取。
- 脱发组在头顶取,即秃头位置,为疾病组。
- 提取第 2 列和第 48 列,第 8 列和第 48 列应该一样。
- 重命名这两列信息。
- 修改分类变量名:
- 疾病组用缩写 AGA。
- 对照组用 control 或 normal。
- 打印分类:
- 疾病和对照各有 10 个样本。
- 排序:
- AGA 以 A 开头,升序时 A 在 C 前。
- 如果需要降序,可用
arrange函数,并设置desc。 - 原文示例对 group 列降序排列。
- 重新
table分类信息。 - 保存分组文件。
9.3 整理表达矩阵
- 按分组文件样本排列顺序,排列两个表达矩阵。
- 提取注释文件需要的列:
- GPL 前两列。
- 用
select可直接写列名。 - 可修改列名,例如提取 sample 列,改大小写。
- AN 变量:
- 一列基因 ID。
- 一列 sample。
- 将第一列设为行名。
- 如果有重复,用感叹号或选择重复的函数剔除重复行。
- 用共同行名匹配表达矩阵。
- 删除前两列。
- 对重复值行取平均:
- 原文提前处理,去除重复后把第一列设为行名。
- 成功则说明无重复。
- 删除多余列。
- 查看数值范围。
- TPM 表达矩阵:
- 可进行数据缩放。
- 再按样本排列顺序排列。
- 保存。
- count 矩阵:
- 同样整理。
- 后续差异分析用 DESeq2。
- DESeq2 针对原始计数矩阵,不能进行任何数据缩放。
- 值必须都是整数。
- 保存。
- 如果 GEO 高通量是癌症数据:
- 还需要保存生存信息和临床数据。
- 它们都在
pData提取出的 PHE 变量中。
十、限制与待确认问题
- 原文口播中存在大量术语识别问题:TCG、TCZ、TCC、TCZA 按语境均指 TCGA;ucsc china 原文如此;ESG/ESG ID 按语境应为 Ensembl ID;GPM 按语境应为 TPM;disc two 应为 DESeq2;JSE31210 应为 GSE31210。整理笔记时保留原文表述并标注可能的对应术语。
- 具体列号、样本数、文件名会随数据集、数据库版本和癌症类型变化。例如性别第 11 列、年龄第 14 列、stage 第 44 列,只适用于原文示例;实际分析必须查看真实数据列名。
- ucsc china 的更新速度不如 TCGA 官网快;原文提到最近约 24 年数据,样本变化不多。
- 在线下载能力有限:GEO 表达矩阵可能 57 MB,在线下载可能只有几 KB,因此应提前下载到本地。
- GPL 平台文件需改名为 soft.GZ,R 包才能识别。
- 生存数据常见问题:
- 有 NA,尤其是对照样本。
- 生存时间为 0 需剔除。
- 时间单位可能为天、月、年,需要统一为天。
- OS 常用 0/1 表示,alive=0,death=1。
- 表达矩阵常见问题:
- Ensembl ID 或芯片 ID 需要转基因名。
- 行名重复需要处理。
- 重复基因通常取平均。
- 芯片探针可能对应多个基因,需按
///拆分。 - count 矩阵需原始整数,不能缩放;TPM 可标准化。
- 芯片或 TPM 数值范围大时需加一取 log2。
- 箱线图不整齐时可用 limma 标准化。
- 单细胞数据通常不在 TXT 表达矩阵中,可能上传到补充文件,格式可能是组合文件或 RDS,原文口播“时成的一个集脑 PC”不清晰,需以实际数据集为准。
- 重复基因取平均运算很慢:TCGA count 约 6 分钟,GEO 芯片约 35 分钟,建议提前保存中间结果。
十一、行动清单
- 明确研究类型:
- 肿瘤转录组优先 TCGA。
- 非肿瘤、普通疾病、小众疾病、多样本类型优先 GEO。
- TCGA 数据:
- 从 ucsc china 下载 count、TPM、注释、表型/临床、生存数据。
- 读取 count1、ESP1、PHE1、SUR1、AN1。
- 整理分组、生存、临床、count、TPM。
- 保存六个文件:分组、count、临床、生存、TPM、仅肿瘤分组。
- GEO 芯片数据:
- 下载表达矩阵 TXT 和 GPL soft.GZ。
- 将 GPL 文件改名为 soft.GZ。
- 用
getGEO读取,提取表达矩阵、平台注释、分组、生存。 - 处理缺失、重复、多基因探针、缩放、标准化。
- 保存表达矩阵、生存信息、总分组、肿瘤分组。
- GEO 高通量数据:
- 下载 raw counts、TPM、注释文件。
- 用
getGEO读取,设置getGPL=F。 - 提取分组信息。
- 整理 count 和 TPM 表达矩阵。
- count 不缩放,保持整数,供 DESeq2 使用。
- TPM 可缩放和标准化。
- 癌症数据另存生存和临床信息。
- 通用检查:
- ID 是否转成基因名。
- 行名是否有重复,重复是否已取平均。
- 是否有 NA,是否已删除。
- 生存时间是否为 0,单位是否统一。
- 分组是否按 normal/control 在前、tumor/disease 在后排列。
- 缩放是否需要还原或标准化。
十二、总结
这次数据清理内容的核心是建立一条可重复的公共数据整理流程:
- TCGA 适合癌症研究,常通过 ucsc china 获取整合后的表达矩阵、注释、分组、临床和 OS 生存数据。
- GEO 适合更广范围的疾病和测序类型,芯片数据与高通量数据的下载文件数、读取方式、注释平台和整理重点不同。
- 无论哪种数据,最终都要得到可用于差异分析、预后分析和长期保存的表格:表达矩阵、分组信息、注释信息、生存信息和临床信息。
- 整理过程中最关键的操作包括:样本编号分组、Ensembl/芯片 ID 转基因名、重复基因取平均、缺失值处理、生存时间单位统一、count 与 TPM 区分、缩放与反缩放、芯片多基因拆分和标准化。
- 所有列号、样本数和文件名都应以实际数据集为准,原文示例只提供操作思路和典型流程。