「BioNano系列」光学图谱混合组装应该怎么做? 中的第二步是非常关键的一步,因为这一步是要发现组装中的错误,提高组装的准确性。
比如说下面就是我运行某个项目的输出日志,提示出现了18个BNG冲突,47个NGS冲突。
基础篇
Hybrid Scaffold流程如何定义冲突? 冲突的本质就是光学图谱和物理图谱上的标记存在过多无法匹配的情况。具体来说,AssignAlignType.pl
统计每个联配中未联配的标记数,最大允许错配数可以在配置XML文件的assignAlignType.max_overhang
修改。之后冲突信息记录在assignAlignType/conflicts.txt
中。
leftRefBkpt = 505987.0, rightRefBkpt = -1 表示该冲突左起于505987.0,但是后面就匹配的很好
发现冲突的下一步就是解决冲突。这一步调用的是cut_conflicts.pl
, 他会检查conflicts.txt中记录的冲突位点,主要是分子的覆盖度(molecule coverage)和冲突标记附近的嵌合质量得分(chimeric quality scores).
嵌合质量得分用来评估组装的正确性。当该值低于设置的阈值,那么就会将光学图谱在该处进行切割,如果高于设置阈值,则切割对应的物理图谱。该阈值通过修改XML配置文件的cut_conflicts.min_quality_score_threshold
设置。最终输出"conflicts_cut_status.txt "
conflicts_cut_status.txt 文件和 conflicts.txt 相似,多处几列记录用于记录冲突处理的策略。
- ref_leftBkpt_toCut : 物理图谱左侧处理策略, cut 或 okay
- ref_rightBkpt_toCut: 物理图谱左侧处理策略, cut 或 okay
- ref_toDiscard: 是否保留该物理图谱, exclude 或 okay
- qry_leftBkpt_toCut: 光学图谱左侧处理策略, cut 或 okay
- qry_rightBkpt_toCut: 光学图谱右侧处理策略, cut 或 okay
- qry_toDiscard: 是否保留该光学图谱, exclude 或 okay
应用篇
冲突这一步的解决策略我们在一开始设置的运行参数有关,-B
设置光学图谱(genome map)处理策略,-N
设置物理图谱(sequences)的处理策略,各自都有1,2,3三级。1表示不作处理,2表示在此处切割,3表示过滤掉冲突的contig。此外还可以用-M
提供自定义的冲突解决文件。
举个例子,假如我们以-N 2 -B 2
第一次运行流程,得到的结果文件可以导入到Bionano Access上肉眼检查。以在https://bionanogenomics.com/library/datasets/下载的NA12878 DLE-1 (PACBIO)数据集为例
对每个冲突检查之后,就可以修改assignAlignType/cut_conflicts/conflict_cut_status.txt
, 有三种状态,okay表示不作处理,cut 表示切割, exclude表示删除该contig。如果你认为某处冲突是由于杂合度过高引起,那么就可以将其中一条contig用exclude
标记删除
最后编辑得到的文件,可以通过-M
参数传入,再次运行。(不得有-f
参数)
案例篇
运行后hybrid scaffold 流程之后,在Bionano Access对结果进行检查,通过选择逐个查看冲突,找到如下的冲突.
第一个记录中,左侧无法正确联配,右侧可以正确的配对
第二个记录中,左侧能够完好的配对,右侧无法正确的联配
我们可以查看对应的冲突信息, 当然由于-B 2 -N 2
参数的缘故,冲突都是切割。
如果我们仔细观察这个区域,你会发现标记的间隔大小相似,所以该区域很有可能是端粒区域,根据这个猜想,就是基因组不做切割,长的光学图谱contig右边进行切割,短的光学图谱contig左边进行切割。
为了修改方便,我将原来的conflict_cut_status.txt
内容复制到Excel进行修改
修改后
按照相同的策略手动检查所有的冲突后,保存为制表符分隔的文本再一次运行即可。
参考
BioNano官方文档: Bionano Solve Theory of Operation: Hybrid Scaffold