Samtools

来自医学百科

Samtools 是一套用于解析和处理高通量测序(HTS)数据的开源软件工具集,由著名生物信息学家 Li Heng(李恒)等人开发。它是生物信息学领域最基础、引用率最高的工具之一,被誉为处理 SAM / BAM / CRAM 格式文件的“瑞士军刀”。
与基于 JavaPicard 不同,Samtools 采用 C语言 编写,以速度快内存占用低著称,非常适合在服务器端处理海量数据。
它不仅支持格式转换(如 SAM 转 BAM)、排序、索引和去重,还包含了一个轻量级的变异检测模块(mpileup/bcftools),是构建各类基因组分析流程(Pipeline)的基石。

Samtools
Sequence Alignment/Map Tools (点击展开)
极速处理基因组数据的利器
软件档案
核心开发者 Li Heng (Sanger/Broad)
编写语言 C (基于 HTSlib)
操作对象 SAM, BAM, CRAM
最新版本 v1.x (长期维护)
开源协议 MIT / BSD
常用指令
查看/转换 view
排序 sort
建立索引 index
简单统计 flagstat

核心指令:不仅是格式转换

Samtools 的功能覆盖了测序数据处理的各个环节。对于生物信息分析师而言,熟练掌握以下命令是基本功。

指令 (Command) 典型用途 应用场景
samtools view SAM ↔ BAM 互转;
提取特定区域的 Reads。
view -bS input.sam > output.bam
这是最常用的命令,将比对器输出的大体积文本转为二进制。
samtools sort 按染色体坐标排序。 后续的索引(Index)、去重(MarkDup)和变异检测(Variant Calling)都要求 BAM 必须是排序过的。
samtools index 生成 .bai 索引文件。 使得 IGV 或 GATK 可以随机访问文件中的任意位置,而无需从头读取。
samtools tview 文本模式的基因组浏览器。 在没有图形界面的 Linux 服务器上,快速查看某个位点的比对情况(类似简易版 IGV)。

HTSlib 与 BCFtools:三驾马车

Samtools 并不是孤立存在的,它与底层的 HTSlib 以及兄弟软件 BCFtools 共同构成了处理测序数据的完整生态。

  • HTSlib: 一个独立的 C 语言库,提供了读取和写入 SAM/BAM/CRAM/VCF 文件的底层 API。Samtools 和 BCFtools 都是基于 HTSlib 构建的。
  • BCFtools: 专注于变异检测(Variant Calling)和 VCF 文件操作。早期的 samtools 包含一个 mpileup 命令用于生殖系变异检测,现在该功能通常配合 bcftools call 使用。
  • 生态位: Samtools 负责比对数据(BAM),BCFtools 负责变异数据(VCF),HTSlib 负责底层 I/O。
       关键相关概念 [Key Concepts]
       

1. Flagstat: Samtools 提供的一个快速质控命令。它能瞬间统计出 BAM 文件中有多少条 Reads,其中多少条比对上了(Mapped),多少条是成对的(Paired),多少条是 PCR 重复。是拿到 BAM 文件后的必做步骤。

2. Random Access (随机访问): Samtools 的核心优势。配合 .bai 索引,samtools view 可以直接提取染色体特定区域(如 chr1:1000-2000)的数据,耗时仅需毫秒级,而无需遍历几十 GB 的文件。

3. Pipe (管道操作): Samtools 支持 Linux 管道流(stdin/stdout)。这意味着你可以将 bwa mem 的输出直接通过 | 传递给 samtools view 再传递给 samtools sort,全程不生成中间文件,极大地节省了磁盘 I/O。

       学术参考文献 [Academic Review]
       

[1] Li H, Handsaker B, Wysoker A, et al. (2009). The Sequence Alignment/Map format and SAMtools. Bioinformatics.
[点评]:Samtools 的创世论文。不仅定义了软件,更定义了 BAM 文件格式标准,是生物信息学领域引用率最高的文献之一(引用数 > 30,000)。

[2] Danecek P, Bonfield JK, Liddle J, et al. (2021). Twelve years of SAMtools and BCFtools. GigaScience.
[点评]:综述性文章。回顾了 Samtools 十多年的发展历程,介绍了 CRAM 格式的支持以及算法性能的显著提升。

           生物信息学 · 知识图谱
上级分类 生物信息学 • 序列分析软件
核心开发者 Li HengSanger Institute
关联工具 BCFtoolsPicardGATKIGV