samtools命令大全

samtools是一个用于操作sam和bam文件(通常是序列比对工具如bwa,bowtie2,hisat2,tophat2等等产生的)的工具合集,包含有许多命令,以下是常用命令的介绍。

bam文件优点:bam文件为二进制文件,占用的磁盘空间比sam文本文件小;利用bam文件二进制文件的运算速度快。

  1. View
    view命令的主要功能是:将sam文件与bam文件互换;然后对bam文件进行各种操作,比如对数据的排序(sort)和提取(这些操作是对bam文件进行的,因而当输入为sam文件的时候,不能进行该操作);最后将排序或提取得到的数据输出为bam或者sam(默认的)格式。
    view命令中,对sam文件头部(序列ID)的输入(-t/-T)和输出(-h)是单独的一些参数来控制的。
    Usage: samtools view [ options ]
####eg
samtools view -bS abc.sam > abc.bam
samtools view -b -q 20 abc.bam > abc.q20.bam
  1. Sort
    sort对bam文件进行排序。一些软件需要sort的bam或者sam文件,如stringtie,所以必须要sort使用;求depth时,也必须要sort;
    Usage:samtools sort [ -n ] [ -m ] < in.bam > < out.prefix >
    -m 内存参数默认下是500,000,000 即500M(不支持K,M,G等缩写)。对于处理大数据时,如果内存够用,则设置大点的值,以节约时间。
    -n 设定排序方式按short reads 的ID排序。默认下是按序列在fasta文件中排序(即header)和序列从左往右的位点排序。
eg 
samtools sort in.bam in.sort

3.merge
将两个或者两个以上的已经sort了的bam文件融合为一个bam文件,融合后的文件已经sort过。
Usage:

samtools merge [ -nr ] [ -h inh.sam ] < out.bam > < in1.bam > < in2.bam >
 [ . . . ]

options:
-n 根据reads的名字排序
-r attach RG tag (inferred from file names)
-u uncompressed BAM output
-f overwrite the output BAM if exist
-l compress level I
-R STR merge file in the specified region STR [ all ]

samtools merge out.bam in1.bam in2.bam
  1. index
    对bam文件排序后通过进行index,生成后缀为.bai的文件,用于随机快速处理,特别是在显示序列比对情况下。比如 samtools的tview命令就需要,gbrowse2显示reads的比对图形的时候也需要,IGV对基因组进行可视化,显示比对情况也需要。
samtools index in.sort.bam
等同于
samtools index in.sort.bam in.sort.bam.bai
  1. faidx
    对基因组fasta文件建立索引,生成的索引文件以.fai后缀结尾,该命令也能依据索引文件快速提取fasta文件中的某一条(子)序列
samtools faidx genome.fasta 

6.tview
tview能直观的显示出reads比对基因组的情况,与IGV类似
* 需要事先利用sort和index命令

samtools tview .bam> [ref.fasta]

当给出参考基因组的时候,会在第一排显示参考基因组的序列,否则第一排全用N表示。
按下g ,则提示输入到达基因组某一个位点,例子: scaffold_10:10:1000表示10号scaffold的第十个碱基到第一千个碱基位点处。
使用H (左) J (上) K(下) L(右) 移动显示界面,大写字母移动快,小写字母移动慢
使用空格键向右快速移动(和L类似),使用Backspace键向左快速移动(和H类似)
Ctrl + H 表示向左移动1kb碱基距离;Ctrl + L 表示向右移动1kb碱基距离
可以使用颜色标注比对质量,碱基质量,核苷酸等。30~40的碱基质量或比对质量是用白色表示
20~30 黄色;10~20 绿色;0~10 蓝色
使用点号’.’ 切换显示碱基和点号,使用r切换显示 read name 等信息
7. flagstat
给出bam文件的比对结果

samtools flagstat exam.bam
  1. depth
    得到每个碱基位点的测序深度,并输出到标准输出,所以要> 重输出到一个文件
samtools depth [ -r ref_genome ] [ -q baseQthreads ] [ -Q mapQthreads ] [ -b in.bed ]  [ . . . ]
-r 后面跟染色体号(region)
-q 计算深度时要求测序测序碱基质量最低值
-Q 计算深度时要求比对的最低质量值
  • 做depth之前必须做samtools index
samtools depth in.bam > depth

你可能感兴趣的:(常用软件,基础应用)