GWAS走起~(4 samtools)

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] -o  

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

-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]

-s:se序列

-S:pe序列

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

你可能感兴趣的:(GWAS走起~(4 samtools))