2. 多组学数据概况:四种组学的数据特点与常见格式

大家好,我是这次课的主讲。这一章咱们聊聊多组学数据的“家底”。说白了,就是搞清楚每类组学产出的数据长什么样,有什么坑,以及最常见的文件格式是什么。

我个人习惯,在动手写GPU加速代码之前,一定要先摸清数据格式的边界。为什么?因为GPU最怕的就是不规则的数据布局。你想想看,一个FASTQ文件里每条read长度都不一样,直接塞进显存,warp就全部乱套了。所以,先把数据特点摸透,后面做预处理才能有的放矢。

2.1 基因组学数据

基因组学,研究的是生物体全套DNA序列。数据量最大,存储成本也最高。

数据特点

  • 海量短读段:二代测序一次产生几亿到几十亿条reads,每条长度150~300 bp。
  • 冗余度高:人类基因组约30亿碱基对,测序深度通常30×以上,意味着每个位置被覆盖30次。
  • 存在重复区域:比如ALU序列,在基因组里反复出现,比对时容易出错。
  • 需要参考基因组:绝大多数分析要先把reads比对到参考序列上。

常见格式

格式 说明 典型场景
FASTQ 原始测序read + 碱基质量分数 下机数据,质控前
FASTA 仅序列,无质量值 参考基因组存储
SAM/BAM 比对结果(文本/二进制) 比对、排序、去重
VCF 变异位点列表 SNP/INDEL检出
我曾经踩过的坑:BAM文件的索引(.bai)必须和BAM放在同目录且同名。有一次我移动了BAM文件没复制.bai,结果下游工具直接报“file not indexed”,排查了一下午才发现。

FASTQ格式示例

@EAS139:136:FC706VJ:2:2104:15343:197393 1:Y:18:ATCACG
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
+
!''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65

每4行为一条记录:ID行、序列、分隔符、质量行。质量值用ASCII码表示Phred分数。

2.2 转录组学数据

转录组学关注的是细胞中所有RNA分子。关键在于,RNA有剪接、有表达丰度差异。

数据特点

  • 表达定量:同一个基因可能表达几百到几万份copy,这是数字信号。
  • 可变剪接:同一基因产生多种转录本,长度差异大。
  • 链特异性:RNA有正义链反义链,测序protocol不同会影响方向。
  • 小RNA占比较少:但功能重要,miRNA、siRNA等。

常见格式

格式 说明 典型场景
FASTQ 与基因组相同,但测序深度通常更低 原始RNA-seq数据
Count Matrix 基因×样本的整数矩阵 差异表达分析输入
FPKM/TPM 归一化后的表达量 基因表达比较
GTF/GFF 基因注释文件 定量时指定基因模型
个人建议:保存中间结果时,尽量用HDF5或parquet格式替代CSV。CSV在加载大规模count矩阵时慢得让人抓狂。我曾在项目中因为用CSV读30×50K的矩阵,IO时间占整个流程的70%。换成parquet后,加载时间降到了十分之一。

2.3 蛋白质组学数据

蛋白质组学直接测量蛋白质。和核酸不同,蛋白质没有PCR扩增,灵敏度受质谱仪限制。

数据特点

  • 质谱原始谱图:由质荷比(m/z)和强度(intensity)组成。
  • 动态范围宽:丰度高的蛋白和低的相差6个数量级。
  • 翻译后修饰:磷酸化、乙酰化等,让问题更复杂。
  • 不连续:许多肽段在检测中丢失,数据缺失率高达30%以上。

常见格式

格式 说明 典型场景
MGF (Mascot Generic Format) 存储MS/MS谱图,每个谱图由m/z、intensity、电荷组成 数据库搜索输入
mzML 标准化的质谱数据格式(基于XML) 数据交换、存档
MaxQuant output proteinGroups.txt、peptides.txt等 定量后处理
Spectral Library (MSP) 实验谱图库,用于DIA分析 SWATH/DIA定量

MGF格式片段

BEGIN IONS
TITLE=Scan 1000 [email sample]
PEPMASS=1024.56
CHARGE=2+
RTINSECONDS=2345.6
58.12 234.5
79.14 567.8
112.05 1234.2
END IONS

每段以BEGIN IONS开始,END IONS结束。中间的数值对是m/z 强度。嗯,这里要特别注意:电荷状态必须明确标注,否则搜索引擎会报错。

2.4 代谢组学数据

代谢组学看的是小分子(<1500 Da)代谢物。它的数据特点跟前面三个很不一样。

数据特点

  • 非靶向 vs 靶向:非靶向产生成百上千个未知特征(features),靶向则只有几十个已知代谢物。
  • 保留时间 + 精确质量:每个特征有保留时间、m/z和强度。
  • 批次效应严重:仪器漂移、试剂批次都会造成数据偏移。
  • 数据稀疏:很多代谢物只在少数样本中检测到。

常见格式

格式 说明 典型场景
mzXML/mzData XML格式,存储LC-MS原始数据 XCMS、MZmine输入
CDF (NetCDF) 老式格式,兼容性好 老旧仪器数据
Peak Table (CSV/TSV) 特征列表:m/z、RT、intensity、sample ID 统计分析
MSP 谱库格式,用于代谢物鉴定 MS/MS匹配
特别注意:代谢组学的批次效应校正最好在GPU预处理阶段就做。我在一个大规模队列项目中,样本分两批检测,第一批和第二批之间RT偏移了±0.3 min。如果不在对齐阶段做校正,后面特征匹配会全乱套。

2.5 四种组学的关键差异对比

为了方便你理解,这里做一个横向对比。

维度 基因组学 转录组学 蛋白质组学 代谢组学
数据粒度 离散碱基/变异 基因表达计数 肽段/蛋白丰度 代谢物峰面积
数据分布 二项/泊松 负二项 对数正态 半正态+零膨胀
缺失值 极少(覆盖不足) 中等(低表达) 多(30~50%) 非常多(>50%)
数据量级 TB级 GB~TB级 GB级 MB~GB级
典型输入格式 FASTQ, BAM FASTQ, Count Matrix MGF, mzML mzXML, Peak Table
GPU加速切入点 比对、去重 定量、归一化 数据库搜索 峰对齐、聚类

2.6 本章知识体系图

下面这张图帮你理清四种组学数据的特点、格式和GPU加速的切入点,一图搞定。

多组学数据体系总览 基因组学 FASTQ / BAM / VCF TB级 · 短读比对 转录组学 FASTQ / Count Matrix GB~TB级 · 表达定量 蛋白质组学 MGF / mzML GB级 · 谱图搜索 代谢组学 mzXML / Peak Table MB~GB级 · 峰对齐 多组学数据整合 GPU加速预处理通用流程:格式解析 → 质量控制 → 归一化 → 集成 核心要点 • 每种组学的数据分布和缺失模式不同,GPU算法需要针对性设计 • 格式解析是GPU预处理的第一道槛,建议统一使用HDF5/parquet作为中间存储

2.7 关于预处理的一些经验

讲完格式和特点,我分享几个实战中归纳出来的原则。

  1. 格式统一先行:不管原始数据是FASTQ、MGF还是mzXML,最好在第一步就解析成GPU友好的内存布局(比如struct of arrays)。我习惯写一个统一的RawReader接口,每种格式一个实现。
  2. 压缩要谨慎:gzip的FASTQ不能直接随机访问。如果要做GPU加速,建议先解压成未压缩文件或者用bgzip配索引。我在项目中吃过亏——试图用mmap读取gzip文件,结果内存被撑爆。
  3. 元数据至关重要:多组学整合时,样本ID、批次、条件等元数据必须与数据矩阵对齐。一个小建议:把元数据嵌入HDF5文件的attributes里,而不是单独一个CSV。这样永远不会错位。
一句话总结这一章:四种组学数据在格式、分布、缺失模式上差异很大,预处理前必须先识别这些特性,否则GPU加速的优势会被数据不规则性抵消掉。