You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 23:07:41