转录组测序可能是大家在科研里接触最多的高通量技术之一但也是问题最多、最零碎的一个方向。无论是刚进实验室的学生还是已经做了几年测序的老手几乎每个人都会在某个环节卡住——可能是实验设计时该设几个重复说不准可能是数据比对率只有百分之六七十找不到原因也可能是在写文章时被审稿人问一句“你用的什么定量方法”就有点心虚。我这些年看过的转录组项目少说也有几十个很多问题反复出现而且大多数是实验室里没人专门教你、但做一次就能耽误几周时间的类型。这篇内容我把高频问题按实验流程梳理了一遍从设计、建库、下机分析到差异筛选尽量用直接可执行的结论来解释适合正在准备做转录组、或者已经在分析阶段被卡住的同学对照排查。1. 实验设计阶段的坑最值得提前想清楚1.1 生物学重复到底设几个才不会被审稿人挑毛病这个问题几乎每次开题都会被问我的标准答案很简单常规实验组别最少3个生物学重复这是底线如果条件允许做到5到6个会让你省掉大量后期麻烦。原因是转录组的生物学变异往往比技术变异大得多尤其在动物组织、临床样本这类异质性高的材料里3个重复经常会碰到某一个样本离群、差异基因筛选时p值不显著或PCA图上一组样本分布散乱的情况。从统计角度估算每个组3个重复时要检测到2倍表达差异、统计功效达到80%通常需要较高的表达丰度而5到6个重复能明显降低假阴性率尤其对中低表达量基因更友好。经费确实紧张时我会优先保证每个组不少于4个而不是多加一个处理条件。另外注意“重复”要真正独立——同一只老鼠取两块组织不算两个生物学重复那是技术重复不同个体、不同批次培养的细胞才算数。如果情况特殊只能做2个重复那后续分析就要做好只做探索性结论的心理准备投稿时也容易成为短板。1.2 测序深度怎么定不同目标差别很大很多人在下机后才发现数据量不够或严重过剩其实是设计阶段没有把测序深度和实验目的对应起来。常规转录组差异表达分析人和小鼠这种有成熟注释基因组的物种每个样本建议10到15M百万条reads测到15到20M基本能覆盖绝大多数表达基因再往上增加的同时新检测到的基因数量会明显变平缓性价比不高。如果做的是低表达转录本挖掘、可变剪接分析或融合基因检测这个深度远不够建议每个样本至少40到60M reads甚至更高。而单细胞转录组和全长转录组如iso-seq又另当别论。另外我还要补一句同样深度下双端PE测序比单端SE更能提高比对准确率和异构体识别能力常规差异表达用PE150已经非常稳妥除非你的样品RNA质量极差否则没必要用单端来牺牲信息量。1.3 链特异性文库要不要做一句话讲清楚链特异性文库strand-specific library在现在的常规RNA-seq中已经属于默认选择不只是为了高大上而是它能保留转录本来自正义链还是反义链的信息。这一信息对基因注释准确度和反义转录本检测很关键而且有参物种做表达定量时能明显减少因基因组上基因重叠区域导致的计数混淆。建库时通过dUTP法标记第二链并在后续消化掉是主流方案。除非你做的是极早期、材料极少的特殊样品必须用传统非链特异性试剂盒来保产量否则我建议一律上链特异性。这件事对下游分析的影响很大如果一开始没做链特异性后面分析时自己心里要清楚跨基因重叠区的计数可能不准反义转录本信息也没有意义。2. RNA提取与建库质量问题和建库方案的取舍2.1 RIN值不是越高越好但太低一定不行RNA完整性常用RINRNA Integrity Number来衡量很多平台在质检报告上标着RIN ≥ 7才建议建库。RIN值反映的是28S与18S核糖体RNA峰的比例和降解程度但对于不同来源样品RIN的意义不完全一样。比如FFPE组织来源的RNA往往严重降解RIN可能只有2到4但片段化程度高的样品仍然能通过专门设计的建库方案获得可用数据。我在实践中的判断标准是新鲜或深低温冻存样品尤其是细胞、动物组织如果RIN低于7优先考虑样品出了问题反复冻融、灭活不完全或保存不当建议重新取材如果材料本身就很难拿到如激光显微切割或临床石蜡样本那么RIN低并不代表完全不能用但要调整后续分析策略比如选择更适合降解样本的比对和定量方式并做好基因检出率偏低的准备。值得强调的一点是电泳图里28S峰明显高于18S且基线干净这个形态有时候比绝对RIN数字更可信。2.2 polyA富集还是rRNA去除别选错了方向mRNA捕获有两种主流方案一种用oligo(dT)磁珠富集带poly(A)尾巴的mRNA另一种通过探针去除核糖体RNArRNA保留全部RNA后再建库。选择时第一看样品质量第二看物种是否被探针覆盖第三看你是否需要保留非编码RNA信息。材料完整度好、物种有商品化探针且主要想看mRNA差异用polyA富集就够操作简单、背景干净。降解样品、FFPE样品或需要同时分析lncRNA等非编码RNA的场景rRNA去除会稳妥一些但它也有代价核糖体RNA占比高时定量的测序reads里会有相当比例来自rRNA残留导致有效数据比例下降。另外对于非模式物种要提前确认所选rRNA去除探针是否覆盖该物种。如果物种太冷门探针覆盖不到建出来rRNA污染会非常严重。2.3 降解样品的补救思路和建库注意事项很多实验室拿到降解RNA后第一反应是重新提但如果样品不可替代我建议换个思路降低建库起始量要求、使用更适合降解RNA的建库体系并在分析时注意基因长度和3端偏向带来的偏差。比如降解RNA放大了3端偏好性基因定量的绝对值会受影响不同基因之间长度差异也会引入比较误差。这种情况下分析阶段尽量做长度校正或使用专门的定量方法对比样本和对照要采用完全相同的处理方式否则在后续比较时会出现系统偏差。另外我提醒一下降解样品建库时容易出现接头二聚体偏高或PCR重复率高的问题文库质检时要格外注意接头峰必要时适当增加反应循环数但循环数加太多又会增加重复率这中间需要平衡。3. 数据下机后的标准分析流程以及常见异常信号3.1 质控阶段看什么别只盯Q30拿到下机数据后大部分同学会先看一眼Q30觉得大于85%就万事大吉。从实际经验来看Q30确实重要但以下几个指标同样值得关注reads长度分布是否正常、接头含量多少、duplication rate重复率高低、测序质量在read末端的下降趋势是否异常。FastQC仍然是过QC的首选工具拿到报告后先看per base sequence quality和adapter content两个模块。接头残留是建库中常见的坑尤其是插入片段短的文库接头序列会出现在reads末端直接影响比对率。处理上可以用Trim Galore或cutadapt做一次轻柔的剪接很多人喜欢上来就cut很长的碱基这没必要接头序列通常只出现在末端几十个碱基内按质量分布和接头检测结果动态决定裁剪长度就好。特别注意处理Ing后要重新跑一次FastQC确认效果而不是直接进入比对。3.2 比对率低从这几个方向排查有参转录组比对率正常应该在80%到90%以上不同物种和样品类型略有浮动。如果比对率明显偏低我从排查顺序上建议大家先做以下几件事。第一检查参考基因组版本和基因注释版本是否与物种匹配这个问题发生概率很高有些同学下载了参考基因组却配了另一个版本的GTF比对到基因组后注释信息对不上。第二看是否有rRNA污染可以在比对前用bowtie2把reads比对到rRNA序列库去除这些污染后再比对往往比对率会有明显提升。第三确认reads长度和比对参数是否匹配比如Hisat2在高灵敏度参数下和默认参数下的比对结果差异也是肉眼可见的。另一个常见原因是样品间的交叉污染或建库标签污染这种情况通常表现为所有样本的比对率整体偏低且基因表达谱相似度异常高。如果这些排查都没解决问题可以用fastq_screen快速检测一下reads是否会比对到其他物种排除试剂或环境带来的外源核酸污染这一点在微生物相关实验室附近尤其需要警惕。3.3 表达定量传统的featureCounts还是kallisto/salmon表达定量现在主要有两条路线一是用STAR或Hisat2比对到参考基因组后再用featureCounts或htseq-count对这gene或转录本计数二是以Salmon、kallisto为代表的alignment-free工具直接基于k-mer比对到转录组序列做定量输出为count或TPM。我个人的建议是常规项目两条路线都可以但最终差异分析前一定要检查定量结果的分辨率和对注释版本的依赖。featureCounts方式稳健、直观对GTF依赖强适合有成熟注释的物种Salmon和kallisto运行快、不要求完整基因组对低质量或降解数据有时反而表现更稳但它们在处理基因家族高相似序列时要特别注意转录本分配问题。还有一个经常被忽略的问题定量的时候到底是gene-level还是transcript-level。大多数差异表达分析用gene-level就足够了但如果你的科学问题是可变剪接或isoform switching就必须在transcript-level上定量而且后续要使用对应层面的统计模型不能混为一谈。4. 差异表达分析和功能富集的高频疑问4.1 差异基因筛选阈值log2FC到底取几“差异基因定义为|log2FC| ≥ 1且padj 0.05”几乎是标准写法但实际操作中有些情况这个阈值并不合适。如果样品组间差异大比如药物处理浓度很高你会得到成千上万个差异基因这个阈值就显得太松如果处理效应弱或生物学重复变异大又会筛选出很少的差异基因甚至科学上重要的基因因为padj没达标被漏掉。我在实际分析中很少死拼阈值而是先看整体表达分布和PCA趋势再按阈值筛选然后用层次聚类和热图判断筛选结果能不能把两组样本清晰分开。如果聚类图里上下组混在一起先别急着调低阈值应该返回去检查批次效应、样本标签有没有放反等更基础的问题。对做时间序列或多组别的实验edgeR的glmQLFTest和DESeq2的LRT正逐步成为更严谨的选择单纯两两比较多次T检验会造成假阳性堆积。4.2 PCA分不开、批次效应明显怎么办PCA是转录组数据质控和多维效果查看的一大利器处理组与对照组分不开时不必焦虑因为差异小或生物学噪声大完全可能让主成分只解释很小比例方差。经验上的处理顺序是先确认样本标签、分组和建库批次没有交叉混淆再用相关性热图或多维尺度图看样本关系是否有其他模式然后检查是不是有个别离群样本在拉低整体结构。如果出了不同批次的建库数据最好在后续分析前用limma的removeBatchEffect或ComBat家族方法除去批次效应。这里有个容易踩的坑批次效应校正必须在差异分析前、且不能包含在做差异分析的模型里应该把批次作为协变量放进模型而不是简单把数据转一圈就完事。还要注意不要为了得到“漂亮的PCA图”而过度校正把真实生物学信号也剔掉最终要结合差异基因的已知功能来判断结果是否合理。4.3 GO/KEGG富集的常见误区富集分析是解释差异基因生物学意义最常用的手段但我见过太多样品量少、注释差却硬跑富集的案例。富集分析本质是一个超几何分布或费希尔精确检验所以输入基因列表越大、注释背景越完整结果就越稳定。如果你只筛出几十个差异基因富集出来的那些通路往往只有一两个基因P值再显著也没什么生物学解释力这种情况我建议放弃富集改为查找关键基因或利用已有文献锁定若干候选通路。另一个高频误区是背景基因选错。有些工具默认使用全基因组注释但你的差异基因本来就集中在一个小范围内此时用全体基因作背景会稀释掉信号更合理的做法是使用表达基因集即在本次测序中实际检测到表达的基因作为背景减少蛋白编码基因长度和检测能力差异带来的偏差。做非模式物种时GO注释和KEGG通路覆盖往往不全很多基因注释不上要提前用顶到数据库比对工具做功能注释否则出来的结果可能只是冰山一角。5. 高频问题速查与一个多年养成的实操习惯5.1 高频问题速查表把这些年学生和合作者问得最多的几个问题整理成一张速查表可以直接保存下来对照使用。表现常见原因首要排查措施比对率低rRNA污染、参考基因组不匹配、接头残留去除rRNA reads检查参考基因组版本重跑FastQC基因检出数明显低于预期测序深度不足、注释版本过于陈旧、文库复杂度低检查下机reads量和duplication更新GTF文件PCA显示处理组与对照组混在一起生物学变异大于处理效应、样本标签错误、批次效应核查标签用相关性热图看样本关系再决定是否矫正批次两个生物学重复相关性很低组织异质性高、RNA降解、操作污染检查取材部位一致性重新评估RNA质量考虑增加重复富集结果全是无关通路背景基因选错、输入基因数过少、注释不全换用表达基因集为背景增加样本或放宽阈值检查注释版本这里只是提供一个排查思路每一种表现背后的原因往往是复合的不要看到一个信号就急着定结论。比如比对率低可能同时跟rRNA残留和参考基因组版本有关一定按顺序逐项排除。5.2 一个多年养成的实操习惯把参数管理当成实验记录的一部分最后分享一个可能帮你少走很多弯路的习惯分析开始前先建一个两层的项目目录并写一份README文件把每一步用的软件版本、参考基因组和GTF下载日期、所有参数命令、产生中间文件的日期都记下来。这个习惯在复盘问题时价值极大尤其是过了两三个月再回看数据如果打开一个文件不知道怎么生成的、当时参数是多少几乎等于一切回到原点。版本之间差异最大的坑之一就是基因注释GTF文件更新频繁同一个小鼠基因在不同版本里的坐标可能完全不一样作为记录它比实验室笔记本还要重要。另外对于参考基因组我会在下载时保留官方release日期和网址整理为类似“ref/mouse/GRCm39/README.txt”这样的记录文件里面写清楚文件名、版本、下载日期。别小看这段信息很多审稿人问起数据处理的细节你如果能准确答出每个文件版本和来源会显得整个过程非常扎实可靠。这个习惯坚持下来后再遇到问题你基本都有据可查不会有半天时间浪费在“这个文件哪来的”上。以上这些从实验设计到分析流程上的经验有些是我自己交过的学费有些是和合作实验室讨论出来的共识做转录组测序最怕的不是出了奇奇怪怪的问题而是没有一套系统的方法去定位和拆解它们希望这篇汇总能帮你在问题出现时更快找到一个可靠的出发方向。