Samtools¶
简介¶
Samtools是一个用于操作SAM(Sequence Alignment/Map)和BAM文件的工具合集,包含许多命令。
可用的版本¶
版本 |
平台 |
构建方式 |
模块名 |
---|---|---|---|
1.13 |
Spack |
||
1.16.1 |
Spack |
samtools/1.16.1-gcc-8.5.0 Pi 2.0 |
|
1.10 |
Spack |
||
1.9 |
Spack |
samtools/1.9-intel-19.0.4 |
|
1.9 |
Spack |
samtools/1.9-gcc-8.3.0 |
|
1.9 |
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浏览器