SAMtools 是一套面向 SAM(Sequence Alignment/Map)格式的序列比对处理工具,官网将 SAM 描述为用于存储大规模核苷酸序列比对结果的通用格式。它围绕比对数据的整理、索引、读取和分析提供命令行工具及相关文档,项目代码托管在 GitHub,历史版本的源代码也可从 SourceForge 下载。与只负责生成比对结果的程序不同,SAMtools 更关注对已有 SAM 比对数据进行后续处理,并支持在不把整个文件载入内存的情况下执行部分操作。
核心功能
SAM 比对数据处理
SAM Tools 提供用于操作 SAM 格式比对数据的多种工具,覆盖排序、合并、索引以及生成按位置组织的比对结果。SAM 格式本身用于保存不同比对程序产生的比对信息,因此 SAMtools 可用于处理由不同程序生成或从其他比对格式转换而来的数据。
排序与合并
官网明确列出对比对数据进行排序和合并的能力。排序和合并属于 SAMtools 的基础处理操作,可用于整理多个比对结果,形成后续索引、查看或分析所需的数据。
按基因组位置索引与读取
SAM 格式允许按基因组位置建立索引,从而高效检索与某个基因组位点比对的全部 reads。SAMtools 提供索引工具,并支持围绕基因组位置访问比对数据;官网同时说明,索引能够让按位点检索变得高效。
Pileup 与 Variant Calling
SAMtools 提供生成按位置排列的比对结果的功能,并设有 Pileup 和 Variant Calling 相关页面。官网将 mpileup 标为 Variant Calling 页面,同时列出旧版的 Var Calling 与 Pileup 页面,并明确标注后两者为 deprecated。
文本比对查看与 API 文档
项目页面提供 Text Alignment Viewer,用于查看比对内容;同时提供 API Documentation、Manual Pages 和 C 示例程序。对于需要在 C 环境中使用 SAMtools 功能、阅读接口说明或参考示例代码的用户,官网还提供了 Working on a Stream 等开发资料。
使用方式
SAMtools 的官网资料主要围绕 C 版本展开,页面提供 C 版介绍、手册页、API 文档、示例 C 程序和流式处理说明。源代码托管在 GitHub,官网给出了通过 git clone git://github.com/samtools/samtools.git 获取最新源代码的方式,也提供 SourceForge 下载页面。官网还列出了 BamTools、Picard、Bio-SamTools、Pysam、Samtools-Ruby、cl-sam 和 Samtools-iteratee 等其他语言绑定或相关实现。正文没有说明是否需要注册、是否提供网页端操作,也没有给出价格或免费额度信息。
适用人群与场景
需要处理大规模核苷酸序列比对数据的研究人员,可使用 SAMtools 对 SAM 文件进行排序、合并、索引和按基因组位置检索。开发比对程序或处理测序数据的程序员,可以参考 SAM 格式规范、C API 文档、手册页和示例程序。进行变异检测、突变发现、关联分析或群体遗传参数估计的研究者,可参考官网列出的 Variant Calling、mpileup 资料及相关论文。使用 Perl、Python、Java、C++、Ruby、Common Lisp 或 Haskell 的用户,也可以查看官网列出的相关语言绑定与软件项目。
注意事项
当前页面明确说明,其中的信息对应旧版 0.1.19 release,内容“somewhat out of date”。官网建议前往 HTSlib 网站查看 SAMtools、BCFtools 和 HTSlib 的新 1.x releases,并表示后续会将相关信息迁移到新网站。页面还将旧版 Var Calling 和 Pileup 页面标记为 deprecated,因此使用这些页面时需要注意其过时状态。