查看原文
其他

生物信息百Jia软件(25):samtools

基因学苑 基因学苑 2022-03-29

编者按
samtools也是生物信息从业人员必须掌握的一个工具,二代测序几乎每个分析流程等中都要用到samtools工具,因为比对得到的都是sam或bam格式文件,而samtools是处理这种格式文件的最佳工具,可以对该格式文件进行多种处理。

一、功能分类:

处理sam或bam格式文件

二、软件官网:

http://www.htslib.org/

三、软件介绍:

bam比对之后的结果不能直接用于下游的数据处理,需要进行很多处理。主要包括转换为bam,排序,合并不同lane的数据,对bam文件加头部信息等。

四、下载安装:

需要首先安装htslib

git clone https://github.com/samtools/samtools.git
./configure           # Needed for choosing optional functionality
make
make install

五、软件使用:

samtools主要包含以下几大功能:
Indexing 建立索引,
Editing 编辑文件,
File operations,
Statistics,统计相关功能;
Viewing,查看,

六、使用案例:

案例一:sam和bam格式转换

samtools view -Sb -o A1.bam A1.sam
samtools view -Sb -o B1.bam B1.sam

案例二:排序

samtools sort -@ 4 -m 12G -O bam -o A1.sort.bam A1.bam
samtools sort -@ 4 -m 12G -O bam -o B1.sort.bam B1.bam

案例三:建立索引

samtools faidx ref.fna
samtools index A1.sort.bam
samtools index B.sort.bam

案例四:提取序列

samtools faidx human_g1k_v37.fasta 1 2 >ch1_2.fa

案例五:merge

samtools merge merge.bam A1.sort.bam B1.sort.bam

案例六:输出比对fq或fa

samtools fastq A1.sort.bam -1 A.1.fq.gz -2 A.2.fq.gz -c 6

案例七:tview

samtools tview A1.sort.bam
samtools tview A1.sort.bam ref.fna

案例八:depth

samtools depth A1.sort.bam >A1.depth

案例九:flagstat

samtools flagstat A1.sort.bam

案例十:

samtools idxstats A1.sort.bam

案例十一:提取固定模式reads

samtools view -F 4 A1.sort.bam #提取比对到参考序列上的比对结果
samtools view -F 12 A1.sort.bam #提取paired reads中两条reads都比对到参考序列上的比对结果
samtools view -f 4 A1.sort.bam #提取没有比对到参考序列上的比对结果
samtools view all.bam 1 #提取bam文件中比对到1号染色体上的比对结果
samtools view all.bam 1:30000-100000 #提取1好染色体上能比对到30k到100k区域的比对结果,在SV检测中,因为需要利用非完美匹配的reads,也就是被称为discordant的比对,设置-F 等于1294就可以。
samtools view -b -F 1294 all.bam | samtools sort - > sample.discordants.sorted.bam

案例十二:mpileup

samtools mpileup -guSDf ref.fna A1.sort.bam | bcftools view -cvNg - > A1.vcf

其他案例:
reheader 替换bam文件的头

samtools reheader <in.header.sam> <in.bam>

rmdup

samtools input.sorted.bam output.bam

七、注意事项:

1、自行学习sam或bam文件格式
https://genome.ucsc.edu/FAQ/FAQformat.html#format5.1

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存