利用minimap2和samtools简化目标基因组拼接
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用minimap2和samtools简化目标基因组拼接相关的知识,希望对你有一定的参考价值。
参考技术A 最近打算测一些干燥材料和标本材料的浅层基因组,有些材料降解严重,拼接的过程可能会比较困难。由于我们的目标主要是转录组的数据,所以试试看能不能在拼接之前将与转录组无关的序列直接在原始测序数据中删除。minimap2和samtools安装都比较简单,这里就不行详细介绍了。
首先我们选择一个转录组数据进行建库作为参考的比对序列
这样就建立了一个参考库
sam文件(上一步得到的那种文件)是一种列表格式,用来记录reads比对到参考基因组上的信息,包括哪一条reads,比对到哪条基因组上的哪个位置,是一对一比对还是一对多比对,有无错配,错配是怎样的。因此就需要包含很多列的信息,下面具体展示sam格式。
比对得到的sam或者bam不能直接用于下游的数据处理,需要进行很多处理。主要包括转换为bam,排序,合并不同lane的数据,对bam文件加头部信息等操作。而这些工作都可以使用samtools工具来进行操作。samtools顾名思义,是处理sam格式的工具合集。samtools主要包含以下几大功能:Indexing 建立索引,Editing 编辑文件,File operations,Statistics,统计相关功能;Viewing,查看,等
常用参数:
详细操作不讲了,直接提取需要的目标序列
最后得到一个fasta文件,使用这个fasta文件就可以进行下一步的序列拼接了。
之后使用Trinity进行拼接测试,但是总是运行一段时间就莫名其妙的断掉了,也没有任何报错信息,后来将输出的fasta文件改成fastq文件之后可以正常拼接,输出fastq的命令问
(基因分析黑科技)基于基数排序算法实现的samtools sort
samtools sort的默认内排序算法是来自klib中ksort.c里的ks_mergesort。其实有很大改进提速空间。本人的小伙伴xubl实现了一个基数排序算法,本人在此做了代码整理,既有独立的bamRadisSort,同时也实现了与samtools的无缝整合(可将本人github下的bam_sort.c替换原生samtools的bam_sort.c然后再编译samtools,这样编译出来的samtools sort就是基于基数排序),编译后相比samtools 至少提速30%以上,结果无差别。
代码已开源在github上,有兴趣的可下载编译后测试下,测试的同学注意下内存分配问题,原则上内存足够的话,内存排序速度是要远大于外排序的。
https://github.com/xiongxu/bamRadixSort
以上是关于利用minimap2和samtools简化目标基因组拼接的主要内容,如果未能解决你的问题,请参考以下文章
(基因分析黑科技)基于基数排序算法实现的samtools sort
结合GATK和samtools以及picardtools call snp