一、samtools安装
Samtools是一个用于处理SAM/BAM格式文件的工具包。要想使用samtools,首先需要安装它。在Linux环境下,可以使用以下命令安装:
wget https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2 tar xvfj samtools-1.9.tar.bz2 cd samtools-1.9 make make install
安装完成后,可以使用以下命令检查是否安装成功:
samtools --version
二、samtools sort
Samtools sort可以将BAM文件按照某种规则进行排序,并输出排序后的结果。
比如,可以使用以下命令按照读取的位置进行排序:
samtools sort input.bam -o output.bam
在排序时,为了加快速度,Samtools默认采用多线程模式。可以使用以下参数来指定线程数:
samtools sort -@ 4 input.bam -o output.bam
需要注意的是,默认情况下,Samtools sort会自动为输出文件添加“.sort”后缀,如果不想加后缀,可以使用以下命令:
samtools sort -n input.bam -o output.bam
三、samtools view
Samtools view可以根据用户的要求,从BAM文件中获取特定的reads,并输出对应的序列信息。
比如,可以使用以下命令获取chr1:100000-200000区域的reads信息:
samtools view input.bam chr1:100000-200000 > output.sam
需要注意的是,默认情况下,Samtools view会将BAM文件中的reads输出为SAM格式,如果想要输出为BAM格式,可以使用以下命令:
samtools view -b input.bam chr1:100000-200000 > output.bam
四、samtools depth
Samtools depth可以用来统计某个区域内每个碱基的测序深度,并输出结果。
比如,可以使用以下命令获取chr1:100000-200000区域的深度信息:
samtools depth -r chr1:100000-200000 input.bam > output.txt
需要注意的是,Samtools depth默认情况下只会统计覆盖度大于0的碱基,如果同时需要统计覆盖度为0的碱基,可以加上-S参数:
samtools depth -r chr1:100000-200000 -S input.bam > output.txt
五、samtools查看bam文件
Samtools提供了多种命令行工具,可以用来查看BAM文件的相关信息。
比如,可以使用以下命令查看BAM文件的头部信息:
samtools view -H input.bam
也可以使用以下命令查看BAM文件中的read数量:
samtools view -c input.bam
六、samtools view和awk
Samtools view和awk命令可以一起使用,方便用户对reads进行筛选和处理。
比如,可以使用以下命令获取chr1:100000-200000区域,且mapping quality大于30的reads信息:
samtools view input.bam chr1:100000-200000 | awk '$5>=30{print}'
也可以使用以下命令获取chr1:100000-200000区域,且read序列长度大于50的reads信息:
samtools view input.bam chr1:100000-200000 | awk 'length($10)>=50{print}'
七、samtools flagstat
Samtools flagstat可以统计BAM文件中reads的标记信息,并输出相关的统计结果。
比如,可以使用以下命令查看BAM文件中的reads数量、mapped reads数量、unique mapped reads数量等信息:
samtools flagstat input.bam
需要注意的是,Samtools flagstat默认情况下会将统计结果输出到标准错误流中,如果想要将结果输出到文件中,可以使用以下命令:
samtools flagstat input.bam > output.txt 2>&1以上是Samtools的一些常用命令和使用方法,对于更多命令以及使用说明,可以参考Samtools官方文档。