Samtools view -F/-f选项失效求助及按reads方向拆分BAM/SAM
解决Samtools按比对Flags拆分BAM/SAM的问题
你的所有操作错误根源都是命令参数顺序错误:-o选项必须紧跟输出文件名,你把flags参数放在了-o之后,导致Samtools误将flags值或长选项名当成了输出文件名,进而引发各种异常。
正确命令格式示例
基础格式
samtools view [flags参数] -o 输出文件名 输入BAM/SAM文件
按reads方向性拆分的常用命令
根据转录组测序的reads方向性需求,常用的flag组合如下:
- 提取正向链比对的配对reads(R1为反向互补、R2为正向,对应转录本正向):
samtools view -f 0x2 -f 0x10 -o forward_strand.bam aligned-input.bam - 提取反向链比对的配对reads(R1为正向、R2为反向互补,对应转录本反向):
samtools view -f 0x2 -f 0x20 -o reverse_strand.bam aligned-input.bam - 提取未比对的reads(对应flag 0x4):
samtools view -f 0x4 -o unmapped_reads.bam aligned-input.bam - 排除未比对的reads(仅保留已比对的):
samtools view -F 0x4 -o mapped_only.bam aligned-input.bam
长选项的正确用法
使用--require-flags/--excl-flags时,同样要把输出文件参数放在选项和输入文件之间:
# 提取配对且正向链的reads(flag 0x1+0x10=0x11) samtools view --require-flags 0x11 -o forward_paired.bam aligned-input.bam # 排除未比对的reads(等价于-F 0x4) samtools view --excl-flags 0x4 -o mapped_only.bam aligned-input.bam
验证方法
- 用
samtools flags命令查询flag对应的含义:samtools flags 0x10 # 输出:REVERSE 16 0x10 read is reverse complemented - 用
samtools flagstat验证拆分后的文件统计:samtools flagstat forward_strand.bam
内容的提问来源于stack exchange,提问作者Matthew Urbano
相关产品推荐
相关产品推荐

