Bam文件位点深度统计
Bam文件位点深度统计
本文作者:Sunny-King
发布时间:2022-08-08 18:49:50 星期一
本文链接:https://www.cnblogs.com/Sunny-King/p/Bioinformatics-Bam_depth.html
从NGS的数据中获取信息进行变异检测。对于常见的CNV算法一般是基于read depth的方法,下面介绍了几个常见的depth统计工具的基本使用方法。后期会对不同方法进行评价。
一、samtools depth
samtools depth可以计算每个位置或区域的depth。
samtools depth -aa -b test.bed test.bam [--reference reference.fa]
# 也可以用-r chr:start-end指定区域
- -s选项可以控制read-pair的overlap区域是否重复计算,\(samtools\ depth\)中该参数默认是off,而\(samtools\ mpileup\)中默认是on。
二、samtools mpileup
该方法主要是基于\(samtools\ mpileup\)从bam文件产生pileup格式的数据中获取位点的depth。用法如下:
samtools mpileup [-C capQcoef] [-r reg] [-f in.fa] [-l list] [-Q minBaseQ] [-q minMapQ] test.bam
# 使用-r参数指定区域或者-l参数指定bed文件
从结果来看\(samtools\ mpileup\)的前几列和\(samtools\ depth\)的结果一致,但是需注意对于read-pair的overlap区域,该模块只计算一次。
三、bamdst
Bamdst是一个轻量级工具,用于统计bam文件的目标区域的深度覆盖情况。Bam文件先经过排序,并且需指定一个bed文件。
1、下载安装
# 下载源文件
git clone https://github.com/shiquan/bamdst.git
cd bamdst/
# 编译安装
make
2、使用示例
bamdst -p test.bed -o ./ test.bam
3、结果介绍
├── chromosomes.report # 各染色体深度和覆盖度信息
├── coverage.report # 该文件包含target区域和flank区域的所有覆盖度信息。
├── depth_distribution.plot # 深度分布
├── depth.tsv.gz # bed文件中的每个位置的三种深度值,包括raw depth、rmdup depth和coverage depth
├── insertsize.plot # insert size大小分布
├── region.tsv.gz # bed文件中每个区域的平均深度、中值深度和覆盖率
└── uncover.bed # 包含对输入的bed文件,输入bam文件中未覆盖区域或覆盖较差的区域。通过参数"--uncover"设置阈值
四、DepthOfCoverage (GATK)
DepthOfCoverage是GATK中的一个模块,用来统计一组bam文件的覆盖率。
- 可以分析每个位点,每个区间,每个基因,或总体;
- 可按样本、按读组、按技术、按中心或按文库进行分区;
- 可以通过平均值、中位数、四分位数和/或覆盖到或超过阈值的碱基百分比进行总结。
- 可以通过mapping quality或base quality进行过滤。
java -jar GenomeAnalysisTK.jar \
-T DepthOfCoverage \
-L test.bed\
-o test\
-I test.bam \
-R reference.fa
结果
├── test # 每个位置的coverage
├── test.sample_cumulative_coverage_counts #
├── test.sample_cumulative_coverage_proportions #
├── test.sample_interval_statistics #
├── test.sample_interval_summary #
├── test.sample_statistics #
└── test.sample_summary # 总数、平均值、中位数、四分位数和阈值比例
- DepthOfCoverage目前只支持经典的的核苷酸和N碱基,不能识别其他非ATCGN碱基。
- 计算覆盖率信息之前会先对数据进行过滤。默认情况下,Duplicate Marked和non-primary不计算在内。这可以通过\(--disable-tool-default-read-filters\)来禁用。
五、bedtools multicov
\(bedtools\ multicov\)依赖于索引BAM文件来计算每个BAM文件的计数。每个BAM文件都应该根据位置排序并构建索引。该方法对于bed文件的每一行计算一个数值,只能计算区域的depth。
bedtools multicov -bed test.bed -bams test.bam
输出结果中记录了bed文件中每个区域的计数。
每一行包括来自bed文件的原始行和每个输入bam文件的计数。
本文作者:Sunny-King
本文链接:文章来源于博客园 https://www.cnblogs.com/Sunny-King/p/Bioinformatics-Bam_depth.html
转载要求:欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者
错误修复:如有错误或疑问请联系博主
版权声明:本作品采用署名-非商业使用-禁止演绎 (by-nc-nd)许可协议进行许可
如果本文对您有帮助,请点个赞吧!志同道合的朋友可以点个关注。