写在前面

注意版本问题https://mp.weixin.qq.com/s/fsclHUVPOf6uhJl_QdyYTw

介绍

Samtools是一个用于操作SAM和BAM文件的工具集合。新版本主要包含SamtoolsBCFtoolsHTSlib三个部分。

  • Samtools: 对SAM/BAM/CRAM格式文件进行读、写、索引和查看操作。
  • BCFtools: 对SNP和short InDel进行calling/filtering/summarising,对BCF2/VCF/gVCF格式文件进行读写操作。
  • HTSlib: 用于高通量数据读写操作的C库。

下载

  1. conda install samtools=1.21 -c bioconda
  2. samtools --version-only
  3. ## 1.21+htslib-1.21

Indexing

  1. ## -- Indexing
  2. ## dict create a sequence dictionary file
  3. ## faidx index/extract FASTA
  4. ## fqidx index/extract FASTQ
  5. ## index index alignment

dict

faidx

对 FASTA 文件建立索引,生成的索引文件以 .fai 后缀结尾。该命令也能依据索引文件快速提取 FASTA 文件的某一条(子)序列。

实例:

fqidx

index

功能:必须对BAM文件按坐标进行排序后,才能使用index命令进行索引。建立索引后将产生一个后缀为.bai的索引文件,能用于快速检索reads。很多情况下需要有索引文件存在,才能进行后续分析。比如:使用cufflinks对BAM文件进行基因表达量计算时;使用samtool文件tview命令对BAM文件进行可视化时;使用Picard对BAM文件进行重复标记时。

实例

Editing

  1. ## -- Editing
  2. ## calmd recalculate MD/NM tags and '=' bases
  3. ## fixmate fix mate information
  4. ## reheader replace BAM header
  5. ## targetcut cut fosmid regions (for fosmid pool only)
  6. ## addreplacerg adds or replaces RG tags
  7. ## markdup mark duplicates
  8. ## 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

  1. ## -- File operations
  2. ## collate shuffle and group alignments by name
  3. ## cat concatenate BAMs
  4. ## consensus produce a consensus Pileup/FASTA/FASTQ
  5. ## merge merge sorted alignments
  6. ## mpileup multi-way pileup
  7. ## sort sort alignment file
  8. ## split splits a file by read group
  9. ## quickcheck quickly check if SAM/BAM/CRAM file appears intact
  10. ## fastq converts a BAM to a FASTQ
  11. ## fasta converts a BAM to a FASTA
  12. ## import Converts FASTA or FASTQ files to SAM/BAM/CRAM
  13. ## reference Generates a reference from aligned data
  14. ## 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文件的比对结果概要。

实例:

  1. 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生物信息分析》陈连福