擅长:python、mysql、java
<p>现在还不完全清楚你在问什么,但希望这能让你走上正轨。你知道吗</p>
<p>在<a href="https://stackoverflow.com/questions/50115755/how-can-i-pick-the-best-matching-patternhaplotype-to-my-data-python-2-7#comment87256929_50115755">the comment by e.s</a>上展开,但是使用帮助函数使代码更清晰,生成所有单倍型的方法是:</p>
<pre><code>from itertools import product
alleles = ['T-T', 'A-A', 'T-T', 'C-T', 'C-G', 'A-A', 'G-G','C-C']
def normalize(pair):
a, b = pair.split('-')
if a == b:
return a
else:
return a + b
normalized_alleles = [normalize(pair) for pair in alleles]
for haplotype in product(*normalized_alleles):
print(haplotype)
</code></pre>
<p>这张照片:</p>
<pre><code>('T', 'A', 'T', 'C', 'C', 'A', 'G', 'C')
('T', 'A', 'T', 'C', 'G', 'A', 'G', 'C')
('T', 'A', 'T', 'T', 'C', 'A', 'G', 'C')
('T', 'A', 'T', 'T', 'G', 'A', 'G', 'C')
</code></pre>
<p>不清楚你所说的“以最少的错配获得构成单倍型的所有等位基因组合”是什么意思,所以我不知道这是不是最有效的方法。你知道吗</p>