samtools 的使用

1,对fasta文件建立index
samtools faidx ref.fasta
注意,  如果你执行命令的地方和参考序列不在同一个目录,参考序列用全路径过相对路径,最后的index结果和参考序列在同一个目录里面,而不是执行命令的目录
在fasta文件中,对于某一个序列,除了最后一行,其他行所含碱基数应该一样。
不同序列每行所含base数可以不一样。但是对于同一个序列,必须遵循上面的规则。

否则会报错


2, 将sam文件转化为bam文件
samtools view -bS in.sam > in.bam
是view的一个应用-b指定输出文件为bam, -S 指定输入文件为sam


3, 查看bam文件的header信息
samtools view -H in.bam

samtools view -h in.bam|les

查看头文件:samtools view -H xx.bam > header

samtools view查看bwa比对结果中比对上基因组的unique mapped reads

samtools view xx.bam |grep "XT:A:U" | wc -l

view功能扩展:

a.提取没有比对到参考序列上的比对结果 $ samtools view -bf 4 abc.bam > abc.f.bam

b.提取比对到参考序列上的比对结果 $ samtools view -bF 4 abc.bam > abc.F.bam 

c.提取paired reads中两条reads都比对到参考序列上的比对结果,只需要把两个4+8的值12作为过滤参数即可 $ samtools view -bF 12 abc.bam > abc.F12.bam

d.提取bam文件中比对到caffold1上的比对结果,并保存到sam文件格式 $ samtools view abc.bam scaffold1 > scaffold1.sam

e.提取scaffold1上能比对到30k到100k区域的比对结果 $ samtools view abc.bam scaffold1:30000-100000 $gt; scaffold1_30k-100k.sam

f.根据fasta文件,将 header 加入到 sam 或 bam 文件中 $ samtools view -T genome.fasta -h scaffold1.sam > scaffold1.h.sam


4, 将bam文件进行sort
只能对bam文件进行sort, 不能对sam文件。
samtools sort aln.bam anl.sorted   #默认是根据coordinate进行sort, 如果输入bam文件为in.bam , 则输出文件名为in.sorted.bam
如果要按照read name进行sort,  需要加-n, 如heseq-count 就要求文件时按照read name  而不是coordinate。
samtools sort -n aln.bam anl.sorted


5, 去除bam文件中pcr导致的重复reads信息
samtools rmdup in.bam in.rmp.bam


6,  合并bam文件
samtools merge out.bam in1.bam in2.bam in3.bam # 假如in1.bam, in2.bam, in3.bam是某个某样本的三个重复,我们可以将他们合并为一个bam文件。
samtools merge -R chr1 out.bam in1.bam in2.bam in3.bam   #  如果想对部分合并,如至合并一号染色的上的bam文件合并,chr1必须为序列的名字,一号染色体序列的名字为Chr1,那么就应为-R Chr1

samtools merge -h in.sam out.bam in1.bam in2.bam ...
注意: 要合并的bam文件,必须有对应的index文件。否则会出现:
[bam_index_load] fail to load BAM index.
Segmentation fault (core dumped)的错误


7, 对bam文件建立index
samtools index in.bam  #结果文件名为in.bam.bai


8.取出bam文件的一部分

samtools view -b your.bam Chr1 > Chr1.bam 
-b 指定是输出文件为bam, Chr1指定你要看的是那一部分, 这里指看Chr1那一部分,然后重定向到一个新的bam文件,注意,这个bam文件是没有header的,如果想要包括header 可以使用-h参数。

9.flagstat

samtools flagstat > in.stat

输出in.bam文件的比对信息表

你可能感兴趣的:(samtools 的使用)