GWAS走起~(4 samtools)

作者: roguish读书人 | 来源:发表于2019-11-27 22:35 被阅读0次

    Samtools的功能还是很强大的,samtools是一个用于操作sam和bam文件的工具合集。能够实现二进制查看、格式转换、排序及合并等功能,结合sam格式中的flag、tag等信息,还可以完成比对结果的统计汇总。

    现在先使用它的装换功能 :view

    [hai@localhost data]$ samtools view -bS aln-se.sam >aln-se.bam

    [samopen] SAM header is present: 1 sequences.

    -bS:输入sam文件,输出bam文件。Notice:是“S”不是小s,刚出错了,找了半天。好了,bam文件有了,咱们深入的了解一下samtools吧。

    这是一些参数(咱瞧瞧):

    -b outputBAM 

    # 该参数设置输出 BAM 格式,默认下输出是 SAM 格式文件

    -h printheader for the SAM output

    # 默认下输出的 sam 格式文件不带 header,该参数设定输出sam文件时带 header 信息

    -H printSAM header only (no alignments) 

    # 仅仅输出文件的头文件

    -S inputis SAM 

    # 默认下输入是 BAM 文件,若是输入是 SAM 文件,则最好加该参数,否则有时候会报错。

    -uuncompressed BAM output (force -b) 

    # 该参数的使用需要有-b参数,能节约时间,但是需要更多磁盘空间。

    -c printonly the count of matching records

    # 仅输出匹配的统计记录

    -LFILE  only include reads overlapping thisBED FILE [null]

    #  仅包括和bed文件存在overlap的reads

    -oFILE  output file name [stdout]

    # 输出文件的名称

    -FINT  only include reads with none of theFLAGS in INT present [0]

    # 过滤flag,仅输出指定FLAG值的序列

    -qINT   only include reads with mappingquality >= INT [0]   

    # 比对的最低质量值,一般认为20就为unique比对了,可以结合上述-bF参数使用使用提取特定的比对结果

    -@ Numberof additional threads to use [0]

    # 指使用的线程数

    # 将sam文件转换成bam文件

    samtools

    view -bS abc.sam >abc.bam

    # BAM转换为SAM

    samtools view -h -o out.sam out.bam

    # 提取比对到参考序列上的比对结果

    samtools view -bF 4 abc.bam >abc.F.bam

    # 提取paired reads中两条reads都比对到参考序列上的比对结果,只需要把两个4+8的值12作为过滤参数即可

    samtools view -bF 12 abc.bam >abc.F12.bam

    # 提取没有比对到参考序列上的比对结果

    samtools view -bf 4 abc.bam >abc.f.bam

    # 提取bam文件中比对到caffold1上的比对结果,并保存到sam文件格式

    samtools view abc.bam scaffold1 >scaffold1.sam

    # 提取scaffold1上能比对到30k到100k区域的比对结果

    samtools view abc.bam scaffold1:30000-100000 $gt;

    scaffold1_30k-100k.sam

    # 根据fasta文件,将 header 加入到 sam 或 bam 文件中

    samtools view -T genome.fasta -h scaffold1.sam >scaffold1.h.sam

    下面将比对结果进行排序,要用到Samtools sort,线看一下他的用法:

    Usage:

    samtools sort [option] <in.bam> -o <out.prefix> 

    至于下面的参数,自己了解一下吧,小白白知道他的基本格式怎么用就差不多了。

    -n Sortby readname

    #设定排序方式按short

    reads的ID排序。默认下是按序列在fasta文件中的顺序(即header)和序列从左往右的位点排序。

    -m INT     Set maximum

    memory per thread; suffix K/M/G recognized [768M]

    # 设置每个线程的最大内存,单位可以是K/M/G,默认是 768M。对于处理大数据时,如果内存够用,则设置大点的值,以节约时间。

    -t TAG     Sort by value of TAG. Uses position as secondary index (or read name if -n is set)

    # 按照TAG值排序

    -o FILE    Write final

    output to FILErather than standard output

    # 输出到文件中,加文件名

    Example:

    samtoolssort -n tmp.bam  -o tmp.sort.bam   

    samtools view tmp.sort.bam

    再往下走就是拼接了, merge和cat

    merge将多个已经sort了的bam文件融合成一个bam文件。融合后的文件不需要则是已经sort过了的。而cat命令不需要将bam文件进行sort。(试了一下感觉cat比较好用点,因为省了前面的sort)

    Samtools merge out.bam in1.sorted.bam in2.sorted.bam

    会生成一个整合了的bam文件。然后下一步建立索引:

    这个其实跟bwaindex也差不多,至少意思我觉着是一样的。

    Samtools index out.Bam

    R然后会生成一个bai文件

    再往下就是  去重:remove duplicutes

    samtools rmdup [-sS] <input.srt.bam> <output.bam>

    -s:se序列

    -S:pe序列

    Wakaka,这个数据的预处理,我感觉是完成了,开始做饭前的工作应该是做完了,下面就是开始炒菜了。

    相关文章

      网友评论

        本文标题:GWAS走起~(4 samtools)

        本文链接:https://www.haomeiwen.com/subject/vkbmwctx.html