BBQ(生物信息基础22):samtools 操作 bam&sam

  SAM文件不但记录了reads详细的mapping信息,还记录了reads的原始信息,内容很是全面。这样很好,但也存在很多问题:

1:比如我的原始FASTQ文件是100G,那么我的SAM文件一定是大于100G的,也就是占用了更多空间;
2:mapping的结果是没有排序,无论是按reads 的 name排序还是按在基因组上的位置排序,都没有。所以默认的SAM输出文件是乱序的,处理很不方便;
mapping的结果不能进行随机访问,什么是随机访问呢?举个例子就是说对于一个SAM文件我不能快速地访问比如chr1 10000 - 200000 这个区域的所有reads 的mapping情况。
3:基于以上这3个问题,BAM文件就出现了,并且完美解决了上面3个问题。

  那么如何去操作sam文件和bam文件呢?samtools这个工具应运而生。今天我们来进行几个小栗子的实操。

SAM测试文件的baidu盘下载地址
链接:https://pan.baidu.com/s/15gVVYPRu3VbF_uKbJUUGrA 密码:2drn

操作要求:

  1. 使用samtools view 命令查看test.sam的header,请记录各条染色体的长度;同时告知这个test.sam文件是使用哪种mapping软件进行mapping的?
    贴上代码:
samtools view -H test.sam
samtools view 看header

2:使用samtools view命令将test.sam文件转换成test.bam文件,并保留header区域,写出命令并记录test.sam,test.bam的文件大小。

samtools view -Sb test.sam test.bam 
BBQ(生物信息基础22):samtools 操作 bam&sam_第1张图片
bam文件的head

3:使用less命令分别查看test.sam,test.bam文件,为什么bam文件会输出乱码?使用samtools view命令再试试看?

  less 可以看sam的头,但是看不了bam的头,因为bam是二进制的文件,不能用less命令看。


BBQ(生物信息基础22):samtools 操作 bam&sam_第2张图片
less看sam的head
  1. 使用samtools sort命令对test.bam文件进行排序,输出文件名为test_sort.bam,并记录文件大小
samtools sort -o test.sorted.bam test.bam
文件大小

5:使用samtools index 对test_sort.bam建立index,写出命令并记录其文件大小。

samtools index test.sorted.bam
bam建立index后大小

6:使用samtools tview使用下面的命令查看chr1:160000-160100区域的比对情况,并截图


BBQ(生物信息基础22):samtools 操作 bam&sam_第3张图片
samtools tview的结果
BBQ(生物信息基础22):samtools 操作 bam&sam_第4张图片
samtools view 帮助文档

Reference:
1:生物信息学100个基础问题 —— 第22题 都有了SAM文件,为什么还需要BAM文件?
2:samtools manual page

你可能感兴趣的:(BBQ(生物信息基础22):samtools 操作 bam&sam)