写在前面
注意版本问题https://mp.weixin.qq.com/s/fsclHUVPOf6uhJl_QdyYTw
介绍
Samtools是一个用于操作SAM和BAM文件的工具集合。新版本主要包含Samtools、BCFtools和HTSlib三个部分。
- Samtools: 对SAM/BAM/CRAM格式文件进行读、写、索引和查看操作。
- BCFtools: 对SNP和short InDel进行calling/filtering/summarising,对BCF2/VCF/gVCF格式文件进行读写操作。
- HTSlib: 用于高通量数据读写操作的C库。
下载
conda install samtools=1.21 -c bioconda
samtools --version-only
## 1.21+htslib-1.21
Indexing
## -- Indexing
## dict create a sequence dictionary file
## faidx index/extract FASTA
## fqidx index/extract FASTQ
## index index alignment
dict
faidx
对 FASTA 文件建立索引,生成的索引文件以 .fai
后缀结尾。该命令也能依据索引文件快速提取 FASTA 文件的某一条(子)序列。
实例:
fqidx
index
功能:必须对BAM文件按坐标进行排序后,才能使用index命令进行索引。建立索引后将产生一个后缀为.bai
的索引文件,能用于快速检索reads。很多情况下需要有索引文件存在,才能进行后续分析。比如:使用cufflinks对BAM文件进行基因表达量计算时;使用samtool文件tview命令对BAM文件进行可视化时;使用Picard对BAM文件进行重复标记时。
实例
Editing
## -- Editing
## calmd recalculate MD/NM tags and '=' bases
## fixmate fix mate information
## reheader replace BAM header
## targetcut cut fosmid regions (for fosmid pool only)
## addreplacerg adds or replaces RG tags
## markdup mark duplicates
## ampliconclip clip oligos from the end of reads
calmd
recalculate MD/NM tags and ‘=’ bases
fixmate
fix mate information
reheader
replace BAM header
targetcut
cut fosmid regions (for fosmid pool only)
addreplacerg
adds or replaces RG tags
markdup
mark duplicates
File operatations
## -- File operations
## collate shuffle and group alignments by name
## cat concatenate BAMs
## consensus produce a consensus Pileup/FASTA/FASTQ
## merge merge sorted alignments
## mpileup multi-way pileup
## sort sort alignment file
## split splits a file by read group
## quickcheck quickly check if SAM/BAM/CRAM file appears intact
## fastq converts a BAM to a FASTQ
## fasta converts a BAM to a FASTA
## import Converts FASTA or FASTQ files to SAM/BAM/CRAM
## reference Generates a reference from aligned data
## reset Reverts aligner changes in reads
collate
cat
consensus
merge
mpileup
sort
功能:对BAM文件进行排序。
参数:
- -m: 默认是500,000,000,即500M(不支持K,M,G等缩写)。
- -n: 设定排序方式按短reads的ID排序。
实例
split
参数:
实例:
Statistics
bedcov
功能:每一个bed区域的read深度
coverage
depth
功能:得到每个碱基位点的测序深度,并输出到标准输出。
实例:
flagstat
功能:给出BAM文件的比对结果概要。
实例:
samtools flagstat example.bam
idxstats
功能:BAM index统计
Viewing
view
功能:查看BAM和SAM文件的内容。
参数:
-b
: 设置输出格式为 BAM 格式,默认为 SAM 格式-h
: 设置输出 SAM 文件时带头部信息,默认输出不带头部信息-H
: 只输出头部信息-S
: 若输入是SAM文件,需设置该参数,默认输入是 BAM 文件-u
:-c
:-t
:-T
:-o
:-f
:-F
:-q
:
实例:
tview
功能:直观显示出reads比对基因组的情况,和基因组浏览器有点类似。
实例:
参考
https://github.com/samtools/samtools
https://samtools.sourceforge.net/
https://sourceforge.net/projects/samtools/files/samtools/
《NGS生物信息分析》陈连福