学做快餐的视频网站,心悦dnf免做卡网站,怎么做卡盟网站,网站建设中常见的问题题目背景#xff1a;
这个问题要求我们计算在一组随机生成的DNA字符串中#xff0c;至少有一个字符串与给定的基序#xff08;特定的DNA序列#xff09;相匹配的概率。这些DNA字符串的随机生成受到给定的GC含量的控制#xff0c;这是指DNA中要么是鸟嘌呤#xff08;G
这个问题要求我们计算在一组随机生成的DNA字符串中至少有一个字符串与给定的基序特定的DNA序列相匹配的概率。这些DNA字符串的随机生成受到给定的GC含量的控制这是指DNA中要么是鸟嘌呤G要么是胞嘧啶C的碱基所占的比例。
这个问题可以分解为以下几个部分
N要生成的随机DNA字符串的数量。xDNA字符串的GC含量。这个值在0和1之间表示任何单个碱基核苷酸是G或C的概率。因此碱基是腺嘌呤A或胸腺嘧啶T的概率是1 - x。s我们在随机字符串中寻找的特定DNA序列基序。其长度最多为10个碱基对bp。
我们需要计算在N个随机字符串中至少有一个字符串与给定的DNA序列s完全相同的概率。
要解决这个问题请考虑以下步骤 计算生成给定DNA序列s的概率我们首先需要找到在单次尝试中随机生成DNA序列s的概率。这个概率取决于GC含量x和s中的特定碱基。对于s中的每个碱基如果碱基是G或C概率是x如果碱基是A或T概率是1 - x。将这些概率乘在一起。 单次尝试中未生成给定DNA序列的概率这简单地是1减去第1步中计算的概率。 N次尝试中未生成给定DNA序列的概率由于尝试是独立的这个概率是第2步结果的N次方。 N次尝试中至少生成一次给定DNA序列的概率最后我们找到补事件的概率即1减去第3步中计算的概率。
https://rosalind.info/problems/rstr/
代码
N N
x x
s s
AT 0
GC 0
for nt in s:if nt A or nt T:AT 1elif nt G or nt C:GC 1s_prob (((1 - x) / 2)**AT) * (((x) / 2)**GC)
prob 1 - (1 - s_prob)**N
print(%0.3f % prob)