第2章:生物学背景:中心法则与生物数据表示

做可解释性度量,第一步不是看算法,是看懂数据从哪里来。

生物学数据不是凭空冒出来的。它遵循一套严格的“生产流程”——中心法则。我记得早年跟生物实验组合作时,他们总说我“你们做计算的看不懂数据背后的生物学意义”。后来我发现,问题不在于算法,而在于我根本不理解这些测序数据是怎么产生的。

2.1 中心法则:生命的信息流

中心法则描述了遗传信息在生物体内的流动方向。说白了,就是DNA怎么决定你长什么样。

中心法则与生物数据表示 DNA(基因组) RNA(转录组) 蛋白质(蛋白组) 转录 翻译 逆转录(实验) FASTA / BED / VCF FASTQ / GTF / GFF PSM / mzML / mgf 为什么这对可解释性度量重要? 不同数据类型的统计分布、噪声来源、表示粒度完全不同。 可解释性度量必须针对这些底层特征设计,不能一套方法打天下。

我建议你把这个图记在脑子里。每次处理生物学数据时,问自己一个问题:我现在在中心法则的哪个环节?这会直接影响你怎么选择度量指标。

2.2 生物数据表示:从碱基到信号

不同的生物学数据类型,它们的数学表示完全不同。这是可解释性度量必须跨过的第一道坎。

数据类型 原始表示 常见文件格式 关键特征
DNA序列 字符序列(A/C/G/T) FASTA, BED, VCF 离散、带注释、有方向性
RNA测序 字符+质量分数 FASTQ, GTF, SAM 可变剪接、丰度信息
蛋白质序列 字符序列(20种氨基酸) FASTA, PDB 结构依赖性、保守性评分
质谱数据 信号强度 vs m/z mzML, mgf, RAW 连续信号、噪声高、峰检测
图像数据 像素矩阵 TIFF, PNG, OME-TIFF 高维、空间相关性

核心观点:可解释性度量的“好”与“坏”,很大程度上取决于你的数据表示是否对齐了生物学真实。

2.3 实测数据格式:你一定会遇到的“坑”

我在项目中带过不少新人,发现最容易出问题的不是算法,而是数据格式。来,我给你说说最常见的几种。

2.3.1 FASTA:最基础的序列格式

FASTA格式很简单,一个头行一个序列行。但它的“可解释性”几乎为零——只有字符,没有质量。

>chr1_random
ACGTTCGATCGTAGCTAGCTAGCTAGCTGATCGATCGTACGT
>chr1_random_alt
GCTAGCTAGCTAGCTAGCATGCATGCTAGCTAGCTAGCTAGT

我的建议:别在FASTA上直接做数值计算,除非你做了one-hot编码或k-mer化。我见过有人直接拿字符算相似度,那结果完全没意义。

2.3.2 FASTQ:带质量的序列才是“活的”

测序仪出来的原始数据是FASTQ格式。它比FASTA多了一个质量行。

@SEQ_ID
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
+
!''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65

第四行的每一个符号都代表一个碱基的测序质量。质量分数用ASCII字符表示,范围是0-40。值越高,越可信。

我曾经踩过的坑:在一次RNA-Seq差异分析中,我忽略了低质量碱基过滤。结果下游的“可解释性”热图看起来很好看,但实际上有一半的信号来自测序错误。从那以后,我拿到任何FASTQ都先跑一遍FastQC,确保数据质量过关,再做可解释性分析。

2.3.3 SAM/BAM/CRAM:比对的“证据链”

当序列比对到参考基因组后,数据变成SAM格式。它是10个制表符分隔的列。

@HD	VN:1.6	SO:coordinate
@SQ	SN:chr1	LN:248956422
@PG	ID:bwa	PN:bwa	VN:0.7.17
read001	99	chr1	10001	60	101M	=	10200	200	ACGTACGT...	IIIIIIII...
read002	163	chr1	10050	60	101M	=	9980	-70	TGCATGCA...	IIIIIIII...

CIGAR字符串(比如101M)告诉我们是怎么对齐的。这个信息对可解释性度量非常宝贵——它告诉你读段是唯一比对还是多比对,有没有插入缺失。

实用指标:比对质量(MAPQ)、CIGAR复杂度、编辑距离。这些指标对于度量模型预测的可信度非常关键。

2.3.4 GTF/GFF:基因组“地图注释”

没有注释文件,你压根不知道基因组上的那些区域是干什么的。GTF就是这张“地图”。

chr1	HAVANA	gene	11869	14412	.	+	.	gene_id "ENSG00000223972"; gene_name "DDX11L1";
chr1	HAVANA	transcript	11869	14409	.	+	.	gene_id "ENSG00000223972"; transcript_id "ENST00000456328";
chr1	HAVANA	exon	11869	12227	.	+	.	gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; exon_number "1";

注意第九列是一个分号分隔的键值对。我建议在解析时使用专门的工具(比如pyensembl或gffutils),不要手写正则表达式——我试过,坑太多了。

2.4 生物数据的关键统计属性

做可解释性度量,你需要知道数据的统计分布长什么样。

属性 DNA数据 RNA数据 蛋白质数据
数据类型 离散字符 离散+连续质量 离散字符+连续强度
分布特征 偏向GC 零膨胀负二项 多峰、截断
噪声模型 测序错误(随机) 技术重复+生物学可变性 离子抑制、共洗脱
维度 1D序列 1D序列 2D信号或3D结构
可解释性难点 没有直接对应表型 多重映射、可变剪接 翻译后修饰复杂

2.5 一个真实的“避坑”故事

我曾经参与过一个项目,目标是开发一个模型预测基因表达量。数据预处理阶段,同学们直接用了原始FASTQ的read counts,没有做文库大小标准化和GC偏差校正。

你想想看,如果不做标准化,不同样本间的数据根本不可比。模型输出的“重要特征”很可能只是文库差异,而不是真正的生物学信号。

正确的做法是:先做质量控制、标准化、矫正批次效应,然后再建模型。可解释性度量必须在“干净”的数据上做,否则就是garbage in, garbage out。

我的经验:在开始任何可解释性分析之前,先做三件事:1)数据质量报告;2)标准化;3)批次效应检查。这三步做好,你后面的工作才有意义。

2.6 小结:记住这几条

  • 中心法则决定了数据的“家族”:DNA、RNA、蛋白质各有各的数学表示。
  • 每种生物数据格式都有它的设计意图——理解意图才能设计好的度量。
  • 质量值、比对信息、注释信息是可解释性度量的“黄金”来源。
  • 统计学特征(分布、噪声、维度)直接影响你用什么度量方法。