Sam相关参考信息
SAM Flag值说明
picard Flag值查询
soft clip and hard clip
需要知道clipping alignment 和split alignment代表什么
关于嵌合体(Chimeric alignment), top显示为soft-clipping,others为hard-clipping,hard-clipping的出现可以避免信息冗余
Hard Clip存在的本意,是减少BAM文件序列的冗余度,比如有一条read,它能比对到A,B两个地方,在A地方,是60M90S,在B地方是60H90M,此时一条read其实已经在A位置有了完整的序列信息,在B位置的信息其实是冗余的,所以在B位置可以引入Hard Clip这样一个标记形式,就能把B位置的序列标记为secondary。
重要的Flag判断:
0X4 (4) 序列未比对上
0X400 (1024) PCR or optical duplicate
0X100 (256) secondary alignment (除去这个则是唯一比对)
mismatch判断:
XM:i:(\d+) 即错配碱基数
或者看MD信息:MD:Z:7C22C5^ACCCT46
关于duplication
这篇文章写的非常的清楚duplication的原因碱基矿工:二代测序的四种Read重复是如何产生的?,图片也是从里面抠的,按我的理解,简单来说如下:
1、 PCR duplication: 文库构建完成后,经过加A尾,加接头之后,进行PCR扩增导致的;
2、 Cluster duplicates,长Cluster的时候长到旁边去了;
3、 Optical duplicates,捕获荧光出现衍射现象,一个点变成了两个点;
4、 Sister duplicates, 文库的两条互补链同时与flowcell上的引物结合,形成各自的cluster
bamStat_byReads_exome.pl
Total effective bases (Mb) :比对上参考基因组Genome 碱基数之和
Effective sequences on target (Mb): 比对上Bed区域 碱基数之和
Capture specificity by reads (%):捕获效率(比对上Expanding BED区域的reads数 / 比对上参考基因组的Reads数)
Mapping rate on genome (%):比对率(比对上参考基因组的Reads数/Bam文件总Reads数) *** 感觉这里不是很准,因为有的chimeric比对上两次,显示了两次***
Unique Hit Rate (%):唯一比对率,即比对上参考基因组的唯一比对reads数(-F 256)/ 比对上参考基因组的reads数
Duplicate rate on genome (%): dup 的reads数(0x400) /比对上参考基因组的Reads数
Mismatch rate in target region (%):比对上Expanding BED区域的Mismatch的碱基数 / 比对上Bed区域 碱基数之和(即之前的Effective sequences on target)
Average sequencing depth on target:平均测序深度,即比对上Bed区域 碱基数之和/BED 区域总碱基数
Fraction of target covered >= 1x (%):BED区域depth超过1的碱基数/ BED 区域总碱基数
Fraction of target covered >= 4x (%): 同上。。。
其他的统计方法:
1. samtools idxstat 统计每条染色体的比对情况:
用法:
samtools idxstat <bam> > chr_stat.xls
# 结果如下:
chr1 249250621 79032275 547887
chr2 243199373 76466426 703008
...
# 第一列为染色体号,第二列为染色体长度,第三列为比对上的reads数,第四列为未必对上的reads数
2. samtools flagstat
用法:
samtools flagstat <in.bam> > flagstat.alignment.txt
#output, eg. :
45050832 + 0 in total (QC-passed reads + QC-failed reads)
0 + 0 secondary
0 + 0 supplementary
0 + 0 duplicates
38274612 + 0 mapped (84.96% : N/A)
45050832 + 0 paired in sequencing
23005807 + 0 read1
22045025 + 0 read2
37369737 + 0 properly paired (82.95% : N/A)
37814433 + 0 with itself and mate mapped
460179 + 0 singletons (1.02% : N/A)
331894 + 0 with mate mapped to a different chr
331639 + 0 with mate mapped to a different chr (mapQ>=5)
3. samtools stats
samtools stats <bam> > stats.file
#作图:
plot-bamstats -p QC stats.file
使用plot-bamstats的时候遇到的报错:
Can't exec "gnuplot": No such file or directory at /home/hesy/anaconda3/envs/python-3.6/bin/plot-bamstats line 316.
The command exited with non-zero status -1:
gnuplot 201911_QC-quals.gp
at /home/hesy/anaconda3/envs/python-3.6/bin/plot-bamstats line 51.
main::error("The command exited with non-zero status -1:\x{a}\x{9}gnuplot 201911_Q"...) called at /home/hesy/anaconda3/envs/python-3.6/bin/plot-bamstats line 317
main::plot("201911_QC-quals.gp") called at /home/hesy/anaconda3/envs/python-3.6/bin/plot-bamstats line 653
main::plot_qualities(HASH(0x556c0808a198)) called at /home/hesy/anaconda3/envs/python-3.6/bin/plot-bamstats line 33
重新用conda 安装了一遍samtools和gnuplot,安装的gnuplot版本为gnuplot 5.2 patchlevel 7,结果遇到了下面这个报错:
end
^
"201911_QC-quals-hm.gp" line 127: invalid command
The command exited with non-zero status 256:
gnuplot 201911_QC-quals-hm.gp
at /home/hesy/anaconda3/envs/python-3.6/bin/plot-bamstats line 51.
main::error("The command exited with non-zero status 256:\x{a}\x{9}gnuplot 201911_"...) called at /home/hesy/anaconda3/envs/python-3.6/bin/plot-bamstats line 317
main::plot("201911_QC-quals-hm.gp") called at /home/hesy/anaconda3/envs/python-3.6/bin/plot-bamstats line 818
main::plot_qualities(HASH(0x55981bc9d540)) called at /home/hesy/anaconda3/envs/python-3.6/bin/plot-bamstats line 33
参考资料:肿瘤全外显子测序数据分析流程
4. qualimap
命令:
/mnt/fvg01vol8/software/biosoft/qualimap_v2.2.1/qualimap bamqc -bam <in.bam> -outdir <outpath> -gff <bed> --java-mem-size=8G
结果里面会有一个Report.pdf,包括所有mapping ratio,Insert size,mean coverage及chromsome stats统计结果,和一些展示图片。
5. bamdst
bamdst -p <bed> -o <outdir> <bam>
相关结果中包括Target区域和Flank区域的统计,还是很全的,没有作图但是有相关的表格出来,可以自己作图。具体说明推荐看这篇:简书:bamdst
但是bamdst官网有这么一段,感觉对WGS分析不是太友好:
其他:
IGV相关
一直没有把gtf文件导入,发现导入gtf也是要先sort再建index,有个参考资料:
IGV导入注释文件
建立index的时候出现java报错,可以去看看除了igvtools,有没有其他的方法建立index
还有生信100问的参考资料:
生物信息学100个基础问题 —— 第29题 如何使用IGVTools对mapping结果进行可视化?
做项目时候遇到一个需求,需要把某些区域的序列去掉, 写个记录:
之前的方案使用到awk,觉得太慢了;又搜索了一下发现samtools fastq 能将bam文件中的序列提取为fastq,但是后续分析有遇到因为pair不正确发生报错,原因可能是由于fq1和fq2没有按序列顺序配对导致,查询了一下解决方法,可以参考这个简书记录:
如何从BAM文件中提取fastq
但是觉得samtools的方法还是有点慢,继而发现了一款软件seqkit,最终解决方案如下:
# 1. 提取目标序列id号,每行一个id
samtools view bam chrM|awk '{print $1}'|sort|uniq > ./chrM.list
# 2. seqkit从原始fq中删除目标id序列
zcat sample_1_clean.fq.gz | ./seqkit grep -j 8 -v -f chrM.list -|gzip > ./sample_1_chrM.fq.gz
zcat sample_2_clean.fq.gz | ./seqkit grep -j 8 -v -f chrM.list -|gzip > ./sample_2_chrM.fq.gz
-j 线程
-v 反向选择
-f id文件
网友评论