生物组学数据一般都是先质控剔除后再比对到参考基因组,来保证分析结果的可靠性。序列比对前的质控仅仅保证了每一条序列的质量符合我们的要求,比对到基因组之后,对于一些未比对上的序列,重复序列,比对到基因组多个位置的序列,我们仍然需要进一步过滤。sambamba可以快速有效的实现比对后sam/bam文件的过滤。 软件安装 推荐使用conda安装 conda install -c bioconda sambamba 或者从码源https://github.com/biod/sambamba/releases下载安装 SAM文件说明 比对得到的sam文件格式如下 前两行是头文件,从第三行开始是比对结果,除了第12列可选域之外,每一列说明如下 反应比对质量的信息在第二列FLAG和第六列CIGAR,FLAG用数字表示比对的情况,说明如下 一般我们会剔除4-unmapped序列和1024-duplicated序列 使用sambamba去除多重比对/重复/未比对序列 sambamba是高效处理sam/bam文件的工具,sambamba view可以设置一系列条件对我们的比对结果进行过滤,参数如下 其中-F参数可以实现比对结果过滤,使用例子如下 sambamba view -F 'filter expression' example.bam > example.filter.bam filter expression接受 以及指定sam文件的不同列 比如 not (unmapped or mate_is_unmapped) and mapping_quality >= 50 and sequence_length >= 80 就是过滤了比对上的,质量>50和长度>80的结果 因此,我们要剔除多重比对,未比对上和重复序列,只需要执行 sambamba view -h -t 2 -f bam \-F '[XS] == null and not unmapped and not duplicate' \example.bam > example_aln.bam 这句话-h指定打印头文件信息,-t指定线程,-f指定bam文件格式,-F指定过滤条件,[XS]是sam的可选域,描述序列多重比对上时第二个最有比对的得分,只有当序列比对到多个位置时才会出现,因此[XS] == null除去了多重比对的序列,not unmapped 和not duplicate分别除去了未比对上序列和重复序列。只需要一句话,就可以对我们的比对结果进行再次过滤,保证后续分析结果的准确性。 本文经授权转载自 生物信息学习公众号 |
|
来自: 祥强6csdm0n3vs > 《生信类》