- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
为了准备即将到来的生物信息学类(class),我正在做一些来自 rosalind.info 的作业。我目前被困在作业“Mendel's First Law”中。
我想我可以用蛮力强制自己解决这个问题,但我的想法一定是太复杂了。我的方法是这样的:
构建一棵具有三个级别的概率树。有两种生物交配,生物 A 和生物 B。第一级是,选择生物 A 为显性纯合子 (k)、杂合子 (m) 或隐性纯合子 (n) 的概率是多少。好像以纯合子显性为例,因为一共有(k+m+n)个生物,其中k个是纯合子显性,概率是k/(k+m+n)。
然后在这棵树中,假设我们知道 A 被选为什么生物,那么在这棵树中,每一个生物 B 是 k/m/n 的概率。例如,如果生物 A 被选为杂合子 (m),则生物 B 也为杂合子的概率为 (m-1)/(k+m+n-1),因为现在只剩下一个较少的杂合子生物。
这会给出两个级别的概率,并且会涉及大量代码才能做到这一点,因为我实际上是在构建一个树结构,并且为每个分支手动编写了该部分的代码。
现在选择了生物A和B之后,他们每个人都有两条染色体。可以随机挑选其中一条染色体。因此,对于 A 染色体,可以选择 1 条或 2 条染色体,对于 B 也一样。所以有 4 种不同的选择:选择 A 中的 1 条,B 中的 1 条。选择 A 中的 2 条,B 中的 1 条。选择 A 中的 1 条,B 中的 2 条。选择A 的 2 个,B 的 2 个。其中每一个的概率都是 1/4。所以最后这棵树会有这些叶子的概率。
然后我会以某种方式神奇地把所有这些概率加起来,看看两种生物产生具有显性等位基因的生物的概率是多少。
我怀疑这项作业是否设计为需要数小时才能完成。我在想什么?
更新:
以最荒谬的蛮力方式解决了这个问题。只是运行了数千次模拟交配并找出最终具有显性等位基因的部分,直到有足够的精度通过分配。
import random
k = 26
m = 18
n = 25
trials = 0
dominants = 0
while True:
s = ['AA'] * k + ['Aa'] * m + ['aa'] * n
first = random.choice(s)
s.remove(first)
second = random.choice(s)
has_dominant_allele = 'A' in [random.choice(first), random.choice(second)]
trials += 1
if has_dominant_allele:
dominants += 1
print "%.5f" % (dominants / float(trials))
最佳答案
具有显性等位基因的物种是 AA
或 Aa
。
您的总种群(k + n + m
由 k
(hom
) 具有AA
的纯合显性生物体组成>, m
(het
) 具有Aa
和n
(rec
) 带有 aa
的纯合隐性生物。其中每一个都可以与任何其他生物交配。
具有显性等位基因的生物的概率是:
P_dom = n_dominant/n_total or 1 - n_recessive/n_total
为这些组合中的每一个做 Punnett 平方是个不错的主意:
hom + het
| A | a
-----------
A | AA | Aa
a | Aa | aa
het + rec
| a | a
-----------
A | Aa | Aa
a | aa | aa
显然,两种生物的交配可能会产生四个 child 。 hom
+ het
产生 4 个具有隐性等位基因的生物体中的 1 个,het
+ rec
产生 4 个具有隐性等位基因的生物体中的 2 个隐性等位基因。
您可能还想对其他组合执行此操作。
由于我们不只是一对一地交配生物,而是将整个 k + m + n
群放在一起,因此后代总数和具有特定特征的“ child ”数量等位基因很高兴知道。
如果您不介意使用一点 Python,scipy.misc
中的 comb
在这里可能会有帮助。在计算中,不要忘记 (a) 您从每个组合中得到 4
个子代,并且 (b) 您需要一个因子(来自 Punnett 平方)来确定隐性(或显性)后代来自组合。
更新
# total population
pop_total = 4 * comb(hom + het + rec, 2)
# use PUNNETT squares!
# dominant organisms
dom_total = 4*comb(hom,2) + 4*hom*het + 4*hom*rec + 3*comb(het,2) + 2*het*rec
# probability for dominant organisms
phom = dom_total/pop_total
print phom
# probability for dominant organisms +
# probability for recessive organisms should be 1
# let's check that:
rec_total = 4 * comb(rec, 2) + 2*rec*het + comb(het, 2)
prec = totalrec/totalpop
print 1 - prec
关于python - 罗莎琳德 "Mendel' s 第一定律“IPRB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25119106/
为了准备即将到来的生物信息学类(class),我正在做一些来自 rosalind.info 的作业。我目前被困在作业“Mendel's First Law”中。 我想我可以用蛮力强制自己解决这个问题,
我已经闪现了我的 Google Coral 开发板,并按照此页面上的说明进行操作: https://coral.withgoogle.com/docs/dev-board/get-started/#r
我已经闪现了我的 Google Coral 开发板,并按照此页面上的说明进行操作: https://coral.withgoogle.com/docs/dev-board/get-started/#r
来自 this instruction看起来谷歌允许启动到 SD 卡。然而,他们提供的镜像(recovery.img)只是一个自动引导板到 U-boot 的镜像,之后你仍然需要用 USB 将 Mend
https://coral.withgoogle.com/news/updates-11-2019/ 根据上述谷歌珊瑚 11 月更新,新的 Mendel 4.0 支持 OpenCV,但是当我安装 Me
我是一名优秀的程序员,十分优秀!