Samtools

简介

Samtools是一个用于操作SAM(Sequence Alignment/Map)和BAM文件的工具合集,包含许多命令。

可用的版本

版本

平台

构建方式

模块名

1.13

cpu

Spack

samtools/1.13-gcc-11.2.0 思源一号

1.16.1

cpu

Spack

samtools/1.16.1-gcc-8.5.0 Pi 2.0

1.10

arm

Spack

samtools/1.10-gcc-9.3.0

1.9

cpu

Spack

samtools/1.9-intel-19.0.4

1.9

cpu

Spack

samtools/1.9-gcc-8.3.0

1.9

cpu

Spack

samtools/1.9-gcc-4.8.5

使用 Conda 安装 SAMtools

推荐使用 Conda 在用户目录部署特定的 Samtools 软件,以思源一号为例:

srun -p 64c512g -n 4 --pty /bin/bash

module load miniconda3/4.10.3
conda create -n biotools                 # 创建新的环境
source activate biotools                 # 激活环境
conda install -c bioconda samtools=1.13  # 安装Samtools
samtools --help

示例文件

module load samtools
samtools view -h https://storage.googleapis.com/genomics-public-data/platinum-genomes/bam/NA12877_S1.bam chr20:100000-400000 > test.sam

运行示例

思源一号集群 SAMtools

在思源一号集群上使用如下命令:

srun -p 64c512g -n 4 --pty /bin/bash
module load samtools/1.13-gcc-11.2.0
samtools --help

ARM 集群 SAMtools

在 ARM 节点上使用如下命令:

srun -p arm128c256g -n 4 --pty /bin/bash
module load samtools/1.10-gcc-9.3.0
samtools --help

π 集群 SAMtools

在 π 集群上使用如下命令:

srun -p small -n 4 --pty /bin/bash
module load samtools/1.16.1-gcc-8.5.0
samtools --help

SAM 格式介绍

samtools view -h test.sam | less -S 可以查看 SAM 文件的内容,是记录比对信息的标准结构化文件。

SAM 文件头部

SAM 文件头部信息以 @ 作为开头,对比对结果的 meta 信息进行记录。主要包含了文件标准格式版本 VN、比对中使用的参考序列信息 SQ、测序数据分组信息 RG、比对或后期处理使用的程序信息 PG 等。关于 SAM 文件头部信息的细节可以参考 格式说明手册

SAM 文件比对信息

列编号

列名称

类型

说明

1

QNAME

String

query序列名称

2

FLAG

Int

FLAG标签,主要记录比对的基本情况

3

RNAME

String

比对至参考序列的名称,例如:chr1

4

POS

Int

比对至参考序列的位置

5

MAPQ

Int

比对质量

6

CIGAR

String

比对的CIGAR字符串

7

RNEXT

String

read2比对到的参考序列位置名称

8

PNEXT

Int

表示read2比对的参考序列位置

9

TLEN

Int

比对序列对应的模板长度

10

SEQ

String

query序列

11

QUAL

String

query序列的碱基质量Phred值

上述11列信息,是 SAM 文件必要的组成部分。除此之外,每行可以追加可选信息。该部分信息以 TAG:TYPE:VALUE 形式存储。详细介绍可参考 官方文档

Samtools 常用命令

samtools view -bS test.sam > test.bam           # 将sam文件转换成bam文件
samtools index test.bam                         # 建立文件索引
samtools view -bF 4 test.bam > test.mapped.bam  # 提取比对到参考序列上的比对结果
samtools view test.bam chr20:100000-200000 > chr20_100k-200k.sam # 提取chr20上100k到200k区域的比对结果
samtools sort test.bam -o test.sort.bam         # 对bam文件进行排序
samtools tview test.bam -p chr20:100000         # 可交互的IGV浏览器

参考资料


最后更新: 2024 年 10 月 14 日