📅  最后修改于: 2023-12-03 15:29:34.333000             🧑  作者: Mango
BAM文件是存储测序数据的标准格式之一,其包含了DNA/RNA的序列信息及其映射到参考基因组上的位置信息。在BAM文件中,每个序列的信息被存储在一个Twitter的MessagePack格式(简称MsgPack文件)的数据块中。其中,一个非常重要的计数信息就是总基数。
总基数是指BAM文件中所有序列的碱基总数。它是一个十分重要的指标,对于对测序数据的清洗、比对和统计等分析过程都有着重要的作用。
我们可以使用SAMtools和bedtools这两个常用的生物信息学软件来获得BAM文件的总基数。
使用SAMtools:
samtools view -F 0x904 -c example.bam
此命令会输出BAM文件中所有reads的数量,即TotalReads,并根据每个read的长度(计算read上所有碱基的数量)算出所有碱基的数量。
使用bedtools:
bedtools genomecov -ibam example.bam -d | awk '{sum+=$3}END{print sum}'
bedtools genomecov能够统计参考基因组的覆盖度(Coverage),从而计算出所有碱基的数量。该命令需要先准备好参考基因组的染色体长度信息,一般会说明一个bed格式的文件。
总基数是测序数据换算为对应染色体长度的重要参数,能够评估样品中的总DNA/RNA含量和序列库的输出质量。
在数据清洗中,我们可以通过过滤掉质量不高的reads,从而获得更加精准的测序数据。例如,我们可以移除长度小于20bp、Q20值低于75%和N碱基的比例高于5%的reads。
在比对中,总基数能够评估不同aligner的比对效率。当总基数较小的时候,部分aligner的性能会下降,需要采用一些特别的算法优化,例如增加比对窗口大小、使用splice-aware的比对器等。
在数据统计中,我们可以通过计算总基数得到一个对样品QC的评估。例如,对于单细胞测序数据来说,如果总基数太小,数据的统计分析准确度就会受到较大的影响,需要考虑增加样本数量或者使用更加敏感的研究方法。