1

したがって、python を使用してパネット スクエアを作成する必要があります。パネット スクエアは基本的に、目に見える特性と、場合によっては目に見えない特性を決定する単純な方法です。これまでのところ、私のコードは 2 つの親の遺伝子構成を取得し、A と G のさまざまな組み合わせをすべて見つけています。この時点で私が抱えている唯一の問題は、印刷するときに文字が正しい順序になっていないことです。たとえば、各「子供」の可能な遺伝子構造には、2 つの A (大文字または小文字) と 2 つの G (大文字または小文字) があります。私はかなりの量の調査を行いましたが、SOF に関する唯一の他の質問/回答のうち、私のものに多少関連しているものは明確ではなく、機能しませんでした。私のコードは次のとおりです。

import itertools
import string

#genepool_1 refers to parent 1's alleles
#genepool_2 refers to parent 2's alleles
#outerlayerf1 refers to both parent genetic contributions to the first generation of offspring
#f1 refers to the punnett square of the first generation of offspring

#parent 1
genepool_1 = ['Aa','Gg']
parent_1 = sorted(list(itertools.product(*genepool_1)))

#parent 2
genepool_2 = ['aa','GG']
parent_2 = sorted(list(itertools.product(*genepool_2)))


#F1 or Parent 1/2 Offspring
outerlayerf1 = [parent_1,parent_2]
f1___________ = list(itertools.product(*outerlayerf1))
f1__________ = str(f1___________)
f1_________ = f1__________.replace('[','')
f1________ = f1_________.replace(']','')
f1_______ = f1________.replace("'",'')
f1______ = f1_______.replace(' ','')
f1_____ = f1______.replace(')),((', ') (')
f1____ = f1_____.replace('((', '(')
f1___ = f1____.replace('))',')')
f1__ = f1___.replace('),(','')
f1_ = f1__.replace(',','')
print f1_

そして、それは印刷されます

(AGaG) (AGaG) (AGaG) (AGaG) (AgaG) (AgaG) (AgaG) (AgaG) (aGaG) (aGaG) (aGaG) (aGaG) (agaG) (agaG) (agaG) (agaG)

いつ印刷する

(AaGG) (AaGG) (AaGG) (AaGG) (AagG) (AagG) (AagG) (AagG) (aaGG) (aaGG) (aaGG) (aaGG) (aagG) (aagG) (aagG) (aagG)

各オプションが4回出力されることは承知しています。最も正確な確率を得るには、このようにする必要があります

どうもありがとう

エリ

4

2 に答える 2

1

この質問に関連するすべてにひどく混乱していますが、これでうまくいくと思うので、少なくともそれが役立つことを願っています:

f1 = [
     thingies[0][0] + thingies[1][0] + thingies[0][1] + thingies[1][1]
     for thingies in zip(parent_1, parent_2)
] * 4
print(f1)
于 2015-07-20T15:03:07.420 に答える