2025-06-16 Samtools 工具最详细介绍

以下是对 samtools 各命令的详细中文解释及其拓展应用场景,结合功能分类和实际生物信息学分析需求整理:

一、索引命令(Indexing)

dict
功能:创建参考基因组的序列字典文件(.dict),记录染色体名称、长度等信息。
应用:为GATK等变异检测工具提供参考基因组元数据,确保染色体命名一致性。
示例

samtools dict ref.fa -o ref.dict

faidx
功能:为FASTA文件建立索引(.fai),支持快速提取特定序列区域。
应用:配合 samtools faidx 提取子序列,或为BWA等比对工具提供索引。
示例

samtools faidx ref.fa  # 生成ref.fa.fai
samtools faidx ref.fa chr1:1000-2000 > region.fa

index
功能:为排序后的BAM文件创建索引(.bai),实现快速区域查询。
应用:samtools view 或IGV查看特定基因组区域时必备。
示例

samtools index sorted.bam  # 生成sorted.bam.bai

二、编辑命令(Editing)

calmd
功能:重新计算MD(Mismatch)和NM(Number of Mismatches)标签,标记与参考基因组不一致的碱基。
应用:提高变异检测准确性(如GATK预处理)。
示例

samtools calmd -b -@ 4 aln.bam ref.fa > aln.calmd.bam

fixmate
功能:修复双端测序数据的配对信息(如插入片段长度、方向)。
应用:处理比对错误导致的配对信息丢失,为后续标记重复序列做准备。
示例

samtools fixmate -@ 4 in.bam out.bam

reheader
功能:替换BAM文件的头信息(Header)。
应用:合并样本时统一头信息,或修正错误的测序平台信息。
示例

samtools reheader new_header.sam in.bam > out.bam

markdup
功能:标记PCR重复序列(不删除),通过FLAG字段标注。
应用:变异检测前减少假阳性,保留原始数据。
示例

samtools markdup -@ 4 in.bam out.bam

addreplacerg
功能:添加或替换Read Group(RG)标签,包含样本、文库等信息。
应用:多样本分析时区分来源,为GATK等工具提供必要元数据。
示例

samtools addreplacerg -r "ID:Sample1" -r "SM:Normal" -o out.bam
 in.bam

三、文件操作命令(File Operations)

collate
功能:按Read名称打乱并分组排序,优化后续处理效率。
应用:在名称排序的BAM文件上运行 fixmate 或 markdup。
示例**:

samtools collate -o collated.bam in.bam

merge
功能:合并多个已排序的BAM文件(需同参考基因组)。
应用:合并不同批次或技术重复的样本数据。
示例

samtools merge merged.bam sample1.bam sample2.bam

sort
功能:按染色体坐标或Read名称排序(-n参数)。
应用:排序是索引、区域查询和变异检测的前提步骤。
示例

samtools sort -@ 4 -o sorted.bam unsorted.bam

mpileup
功能:生成基因组每个位点的碱基覆盖信息(Pileup)。
应用:变异检测(SNP/Indel)的基础,可输出BCF/VCF格式。
示例

samtools mpileup -f ref.fa -r chr1:1-1000 in.bam > out.pileup

fastq/fasta
功能:将BAM转换为FASTQ或FASTA格式。
应用:重新比对或序列提取(如提取未比对Reads)。
示例

samtools fastq -f 4 unmapped.bam > unmapped.fq  # 提取未比对Reads

四、统计命令(Statistics)
depth
功能:计算每个位点的测序深度。
应用:评估覆盖均匀性,识别低覆盖区域。
示例

samtools depth -r chr1:1000-2000 in.bam > depth.txt

flagstat
功能:统计BAM文件的比对状态(如比对率、配对率)。
应用:质控报告核心指标,快速评估数据质量。
示例

samtools flagstat in.bam > flagstat.txt

idxstats
功能:统计每条染色体的比对Reads数量。
应用:检测污染(如线粒体比例过高)或性染色体剂量异常

示例

samtools idxstats in.bam > idxstats.txt

bedcov
功能:计算BED文件中每个区域的覆盖深度总和。
应用:靶向测序中目标区域覆盖统计(如外显子捕获)。
示例

samtools bedcov targets.bed in.bam > cov_sum.txt

五、查看命令(Viewing)
view
功能:核心命令,支持SAM/BAM格式转换、区域提取、过滤。
应用:

格式转换:samtools view -bS in.sam > out.bam
区域提取:samtools view in.bam chr1:1000-2000
过滤:samtools view -b -q 30 -f 2 in.bam > high_qual.bam(高质量且正确配对的Reads)

tview
功能:终端可视化比对结果(交互式查看)。
应用:快速验证特定位点的比对情况(如疑似突变位点)。
示例

samtools tview -p chr1:1000 in.bam ref.fa

flags
功能:解释FLAG数值的含义(如0x4=未比对)。
应用:辅助设计过滤条件(如 -f 2 -F 3844 过滤出唯一比对且正确配对的Reads)。
示例

samtools flags 77  # 解释FLAG=77的含义

六、拓展使用场景总结

场景 推荐命令组合 说明
变异检测预处理 sort → markdup → index → calmd 标记重复、修复碱基标签
多样本合并 reheader → merge 统一头信息后合并文件
快速质控 flagstat + idxstats + depth 综合评估比对质量与覆盖度
靶向区域分析 view -L targets.bed → bedcov 提取目标区域并统计覆盖
数据转换与提取 view -b -f 4 → fastq 提取未比对Reads并转为FASTQ
交互式验证 tview + mpileup 可视化查看疑似突变位点

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容