解析VCF文件中包含multiallelic sites记录的genotypes分布

在VCF文件中用genotypes来编码一个snv的等位情况,通过“|”来分隔等位基因值(allele values)。一般地,用0值来表示在REF字段的等位基因值,用1来表示在ALT字段的第一个等位基因值,用2来表示在ALT字段的第二个等位基因值(如果有的话),然后以此类推。

对于一个二倍体的物种,其ALT字段中包含2类变异的记录时,genotypes会有0|0、0|1、1|1、0|2、1|2、2|2这几种情况。

现在的问题是,如果是三倍体物种呢,如果ALT字段中包含3类、4类或更多类的变异呢?在这样的情况下,genotypes在INFO字段处的分布情况应该是怎么样的?

这里以二倍体为例

当REF为G,ALT为T,C时,genetypes的顺序分布应为:
0|0、0|1、1|1、0|2、1|2、2|2

当REF为G,ALT为T,C,A时,genetypes的顺序分布应为:
0|0、0|1、1|1、0|2、1|2、2|2、0|3、1|3、2|3、3|3

以ALT有3种类型做示例,计算方法为:

In [*]: genotypes = []
In [*]: n_alt = 3
In [*]: for i in range(n_alt+1):
   ...:     for j in range(i+1):
   ...:         genotypes.append('{}|{}'.format(j, i))
   ...:
In [*]: genotypes
Out[*]: ['0|0', '0|1', '1|1', '0|2', '1|2', '2|2', '0|3', '1|3', '2|3', '3|3']

参考文档链接

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容