python – 获取一组SNP的所有可能的基因型组合的方法
发布时间:2020-12-20 11:07:34 所属栏目:Python 来源:网络整理
导读:我现在有了一组约20个SNP,我想获得所有可能的基因型组合.举个例子,让我们从三个SNP及其等位基因开始. SNP A1 A2SNP1 A TSNP2 C GSNP3 T A 我想首先生成这三个SNP的所有可能的基因型排列/组合的列表,例如: SNP1 SNP2 SNP3 AA CC TT AA CC TA AA CC AA AA CG
我现在有了一组约20个SNP,我想获得所有可能的基因型组合.举个例子,让我们从三个SNP及其等位基因开始.
SNP A1 A2 SNP1 A T SNP2 C G SNP3 T A 我想首先生成这三个SNP的所有可能的基因型排列/组合的列表,例如: SNP1 SNP2 SNP3 AA CC TT AA CC TA AA CC AA AA CG TT AA CG TA AA CG AA AA GG TT AA GG TA AA GG AA ... 依此类推,对于我期望的3 ^ 3 = 27种可能的组合. 从这里开始,我希望将其扩展到我的全部~20个SNP组.在Python中甚至在R中执行此操作的好方法是什么? 解决方法
我们可以使用标准itertools模块中的两个函数来生成组合.我们使用
combinations_with_replacement 从SNP构建3对.
from itertools import combinations_with_replacement def pairs(alleles): return [u + v for u,v in combinations_with_replacement(alleles,2)] print(pairs('TA')) 产量 ['TT','TA','AA'] 然后我们使用 from itertools import combinations_with_replacement,product def pairs(alleles): return [u + v for u,2)] all_snps = ('AT','CG','TA') for t in product(*[pairs(snp) for snp in all_snps]): print(t) 产量 ('AA','CC','TT') ('AA','TA') ('AA','AA') ('AA','GG','AA') ('AT','TT') ('AT','TA') ('AT','AA') ('TT','TT') ('TT','TA') ('TT','AA') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |