在MacVector里做序列拼接时,很多人前面把reads都导进项目了,后面一到组装和冲突确认阶段就开始发散,最常见的情况不是拼不起来,而是拼起来以后不知道哪一段该信、哪一段要回头看trace。MacVector官方把这条流程拆得比较清楚。做de novo拼接时,更适合走Assembler模块,用phred、cross_match和phrap这条链路去处理base call、去载体污染和contig组装;如果你手里本来就有已知参考序列,那更适合走Align to Reference,而不是强行用contig assembly去做重测序确认。
一、MacVector序列拼接怎么做
MacVector序列拼接怎么做,关键不是一上来就跑组装,而是先把项目、reads质量和预处理动作接顺。官方教程里,contig assembly的标准思路很明确,先新建assembly project,把trace files或plain sequences导进去,再视需要做phred和cross_match,最后用phrap组装成contig。这样做的好处,是拼接结果会同时利用base call和质量值,而不是只靠简单序列重叠。
1、先新建Assembly Project
先在MacVector里建立新的assembly project,再把Sanger trace files或普通序列文件加进去。官方说明里,Assembler支持ABI、SCF和ALF这类chromatogram文件,也支持一般序列格式,所以真正的拼接入口不是单独打开trace,而是先把所有reads收进同一个项目。
2、先做phred base calling
如果你导入的是trace files,更稳的顺序是先跑phred。官方教程说明,phred会给每个碱基分配质量值,MacVector会把这些值显示成质量柱状图,而且score 20以上通常可接受。后面phrap组装时会直接利用这些质量值,所以先做phred,比直接拿原始base call去拼更稳。
3、再做cross_match去掉载体干扰
官方文档明确建议,在reads两端可能带有vector sequence的场景下,先用cross_match做masking。虽然phrap本身也常能处理部分载体残留,但官方同时指出,先做cross_match可以降低anomalous assemblies的概率。所以真正想把拼接做稳,这一步通常不该省。
4、最后用phrap做contig assembly
预处理完成后,再在项目里运行phrap。官方说明里,phrap是MacVector Assembler集成的组装算法,能结合phred质量值和cross_match结果去生成更准确的contig,尤其在重复区和复杂区段更有帮助。正常组装完成后,项目窗口会把reads收进contig,并更新每条read在contig里的起止位置和方向。
5、已知参考序列场景改走Align to Reference
如果你的任务其实是做克隆确认、突变位点确认或SNP检查,而不是从零组装,官方更推荐用Align to Reference。Sequence Confirmation教程里说得很清楚,这个功能是拿参考序列做scaffold,把chromatogram sample files对到参考上,更适合重测序确认,不适合替代真正的de novo contig assembly。
二、MacVector拼接后冲突位点如何确认
拼接后看到冲突位点时,先不要急着改consensus。更稳的做法,是先看该位点的trace、质量值和覆盖情况,再决定要不要编辑reads。MacVector官方教程里对contig editor的逻辑写得很直接,冲突确认的核心不在于先改字母,而在于先把dubious consensus residue对应的overlapping traces调出来看。
1、先在Contig Editor里点consensus位点
官方教程说明,在contig editor里点击consensus上的任一碱基,所有覆盖该位点的traces会在下方multiple trace panel中对齐并居中显示。这个动作特别适合确认冲突,因为它会把你当前怀疑的consensus residue和所有重叠reads同时摆出来,不需要自己一条条拖动查找。
2、再看质量值,不只看字母
官方文档明确说明,phrap也会给consensus residue计算质量值,而且对assembly来说,40通常可视为可接受质量。也就是说,某个位点看起来有冲突时,不应只看哪个字母出现次数更多,还要看对应reads的phred质量值是不是足够支撑当前判断。尤其在低质量chromatogram或低覆盖区,这一步很关键。
3、覆盖低和trace差时要优先怀疑该位点
官方教程在编辑contig时专门提醒,真正需要人工干预的区域往往出现在poor quality chromatograms或low coverage的地方。这意味着冲突位点如果刚好处在覆盖少、峰形差或读段边缘区域,就不应把当前consensus直接当成最终结论,而应优先回头审trace。
4、必要时编辑具体read,而不是先硬改整个consensus
MacVector官方说明里,虽然你可以直接编辑consensus,但这种操作会把所有重叠reads一起改成同一个字符。更稳的做法通常是先选中具体read上的问题碱基做修正,因为contig editor会根据reads重新计算consensus。这样比直接硬改consensus更接近“先修证据,再得结论”的顺序。
5、不同reads都被人工改成不同字符时,consensus会给出ambiguity
这一点官方讲得非常清楚。如果你在同一位置编辑了不同reads,而且这些编辑后的字符彼此不一致,那么consensus会变成ambiguity character。也就是说,MacVector本身就允许你把“当前仍然存在冲突”的状态保留下来,而不是强迫你立刻在两个字符之间拍板。
三、MacVector拼接冲突怎么处理得更稳
真正把拼接冲突处理好,重点不是把所有冲突都改成一个统一字符,而是先分清哪些是base call问题,哪些是低质量问题,哪些可能是真实差异。MacVector官方文档和教程其实已经把这条判断链给出来了,也就是先看trace,再看quality,再决定编辑层级。
1、先把可疑位点当成质量问题看
如果某个位点的峰形本来就不干净,或者该read之前没有经过phred重新base call,那么第一反应不应是“这里一定有真实突变”,而更应先把它当成质量问题处理。MacVector 17.5的更新说明还提到,可以在Align to Reference编辑器中直接重新运行phred base calling,这也说明重新看base call本身就是官方认可的处理动作。
2、对插入缺失型冲突优先处理gap
官方更新说明里专门提到,如果某些gap来自reads中额外的错误插入,可以通过删除多余残基来close gaps;必要时也可以插入碱基或gap,再用nudge调整read位置。这说明插入缺失型冲突不应只靠改consensus,而要回到reads级别处理对齐关系。
3、真实差异场景保留歧义比强行统一更稳
如果你已经确认同一位置的不同reads都有各自较强的证据支持,而且并不能简单判定其中一方是错的,那么比起强行统一成单一字符,更稳的做法通常是保留ambiguity。因为官方明确说明,MacVector在这类编辑结果下本来就会生成ambiguity character,这也是它处理unresolved conflict的正式方式。
4、最后再导出或保存consensus
官方教程说明,contig的consensus可以随时保存,而且导出分析时会以ungapped consensus为基础。也就是说,只有在冲突位点已经按前面的顺序确认过之后,再去保存最终consensus才更稳;否则导出的序列只是把未核实的判断提前固定了下来。
总结
MacVector序列拼接怎么做,关键是先在Assembly Project里把reads收好,再按phred、cross_match、phrap这条顺序把质量值、去载体和组装接起来。MacVector拼接后冲突位点如何确认,关键则是先在contig editor里把consensus位点对应的overlapping traces调出来,看质量值和覆盖情况,再决定是改具体read、处理gap,还是保留ambiguity。等这两步都走顺以后,拼接结果通常就不会只停在“能拼起来”,而会更接近“这条consensus为什么值得相信”。