1. RNA-seq数据检查的必要性
RNA-seq实验产生的原始数据就像刚从菜市场买回来的食材——表面看起来新鲜水灵,但如果不仔细检查,很可能藏着烂叶或虫眼。我在实验室带过的每个项目中,都会遇到至少一例因为跳过数据检查步骤而导致后续分析全盘出错的情况。
数据检查环节之所以关键,是因为它决定了三个核心问题:第一,测序质量是否达到分析门槛;第二,样本间是否存在严重批次效应;第三,数据特征是否符合预期生物学背景。去年我们实验室有个博士生就曾因为忽略数据检查,把测序仪光学系统故障导致的异常信号当成了差异表达基因,白白浪费了两周时间做后续验证实验。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 原始数据质量评估实战
2.1 FastQC报告解读要点
拿到fastq文件后,我习惯先用FastQC做初步筛查。这个工具生成的HTML报告包含12个质量模块,但真正需要重点关注的只有以下几个:
-
Per base sequence quality:每个碱基位置的Phred质量值。理想情况下所有位置都应保持在30以上(绿色区域)。常见问题是3'端质量下降,这时需要确认是否超过总reads数的20%。去年处理小鼠肝脏样本时,我们就发现Illumina NovaSeq 6000平台在150bp双端测序时,后30个碱基质量值普遍低于28,这种情况需要做3'端修剪。
-
Per sequence quality scores:整条read的平均质量分布。健康数据应该呈现单峰分布且峰值在Q30右侧。如果出现双峰,可能提示样本中存在外源污染。上个月分析临床痰液样本时就发现明显的双峰分布,后续通过比对人类基因组确认是细菌RNA污染。
-
Sequence duplication levels:重复序列比例。通常期望在20%以下,但要注意真核生物中高表达基因(如actin)会天然产生一定比例的重复reads。有个实用技巧是用横坐标log10刻度查看——如果曲线在1-2之间突然上升,往往是PCR重复问题;而平缓上升的曲线更可能是生物学重复。
2.2 多样本质量对比技巧
当处理多个样本时,我推荐使用MultiQC工具整合所有FastQC报告。这个工具生成的对比表格可以快速发现异常样本。需要特别留意的几个参数:
-
%GC含量:同一物种样本间GC含量差异不应超过5%。去年处理20个肝癌样本时,发现其中3个样本GC含量异常高(55% vs 平均48%),后来发现是提取过程中基因组DNA污染。
-
总reads数:建议用箱线图查看分布。我遇到过因为移液枪误差导致某个样本的reads数只有其他样本的1/10,这种样本应该考虑剔除或重新测序。
-
接头污染比例:现代接头序列污染通常低于1%,但如果看到某个样本达到5%以上,可能需要检查建库环节。有个经验公式:如果(接头污染比例)/(重复率)>0.5,很可能存在建库问题。
3. 比对质量深度检查
3.1 比对率异常排查流程
使用HISAT2或STAR比对后,要重点检查以下几个指标:
-
总比对率:人类RNA-seq数据通常期望在70-90%之间。如果低于60%,可能是参考基因组版本不匹配。上个月就遇到使用GRCh38却误用GRCh37注释文件的情况。
-
多比对reads比例:正常样本应在10-30%之间。突然升高可能提示RNA降解。有个实用判断标准:如果(多比对率)/(唯一比对率)>0.5,建议检查RNA完整性。
-
链特异性检查:用RSeQC的infer_experiment.py验证。记得核对建库方法——dUTP法应该显示"1++,1--,2+-,2-+",而SMART法则是"1+-,1-+,2++,2--"。去年有个项目因为弄反链特异性,导致所有差异基因分析结果完全错误。
3.2 覆盖均匀性诊断
使用RSeQC的geneBody_coverage.py检查5'-3'覆盖均匀性:
-
健康样本应该呈现平稳曲线,降解样本会出现5'端明显下降。我常用曲线下面积(AUC)量化:AUC<0.85建议重新提取RNA。
-
注意某些基因(如长转录本)天然存在3'端偏好。解决方法是用--filtered-genes参数排除长度>10kb的基因后再评估。
4. 表达矩阵质量控制
4.1 表达量分布验证
生成count矩阵后,建议用edgeR的cpm()函数做标准化,然后:
-
检查所有样本的log2(CPM)分布是否一致。使用ggplot2绘制密度曲线时,健康数据各曲线应该基本重合。如果某个样本明显左移,可能是建库效率低下。
-
计算每个样本检测到的基因数(CPM>1)。人类样本通常在10,000-15,000之间。有个快速判断标准:如果某样本基因数<平均值的70%,应该调查原因。
4.2 批次效应检测方法
我常用的批次效应检测流程:
- 用limma的removeBatchEffect()暂时去除已知批次效应
- 执行PCA分析并绘制前两个主成分
- 用PERMANOVA检验批次解释的变异比例
关键判断标准:如果批次效应解释的变异>15%,或者批次与处理组在PCA图上重叠,就必须进行校正。去年一个糖尿病研究中,我们发现冻存时间竟然解释了22%的表达变异,后来用ComBat成功校正。
5. 常见问题应急方案
5.1 低质量数据挽救措施
当发现数据质量不理想时,可以尝试这些补救方法:
- 对于3'端质量下降:用Trimmomatic的SLIDINGWINDOW参数(我通常设4:20)
- 高接头污染:用Cutadapt多次迭代去除(建议--overlap参数设为5)
- 比对率低:尝试HISAT2的--sensitive预设参数,或改用STAR的--twopassMode
5.2 样本异常处理决策树
根据我的经验,样本异常处理应该分步决策:
- 技术重复可用?→优先用重复样本替换
- 是否关键生物学样本?→考虑增加测序深度补偿
- 异常是否系统性?→检查同一批次的全部样本
- 最后手段:在元数据中标记该样本,后续分析用robust方法
有个重要原则:任何剔除样本的决定都必须记录在项目文档中,并说明具体质量指标和阈值。
