Bio-Info每日一题:Rosalind-07-Mendel‘s First Law(孟德尔第一定律 python实现)

news2024/11/23 10:27:39

🎉 进入生物信息学的世界,与Rosalind一起探索吧!🧬
Rosalind是一个在线平台,专为学习和实践生物信息学而设计。该平台提供了一系列循序渐进的编程挑战,帮助用户从基础到高级掌握生物信息学知识。无论你是初学者还是专业人士,Rosalind都能为你提供适合的学习资源和实践机会。网址:https://rosalind.info
你是否想像专业人士一样分析DNA序列?这里有一个简单的任务来帮助你入门。
📝 任务说明:
请添加图片描述

这个题目是要你计算在一群具有不同基因型的个体中,两两随机交配后,后代中表现显性性状的概率。题目给出了三种基因型的个体数量:

  • k: 纯合显性个体的数量(homozygous dominant, AA)
  • m: 杂合个体的数量(heterozygous, Aa)
  • n: 纯合隐性个体的数量(homozygous recessive, aa)
    需要计算两两随机选取个体交配后,后代表现显性性状(具有显性等位基因)的概率。

解答

可能的配对及其概率

  • AA×AA:总是产生 AA(100% 显性)

  • AA×Aa(或 Aa×AA):产生 50% AA 和 50% Aa(100% 显性)

  • AA×aa(或 aa×AA):总是产生 Aa(100% 显性)

  • Aa×Aa:产生 25% AA、50% Aa 和 25% aa(75% 显性)

  • Aa×aa(或 aa×Aa):产生 50% Aa 和 50% aa(50% 显性)

  • aa×aa:总是产生 aa(0% 显性)
    每种配对的概率计算
    请添加图片描述

  • 计算最终的概率:

    • 最终的概率是上述每种配对概率与其产生显性表型概率的乘积之和。
def dominant_phenotype_probability(k, m, n):
    # 总个体数
    total = k + m + n
    # 各种配对产生显性表型的概率
    prob_AA_AA = (k / total) * ((k - 1) / (total - 1))
    prob_AA_Aa = 2 * (k / total) * (m / (total - 1))
    prob_AA_aa = 2 * (k / total) * (n / (total - 1))
    prob_Aa_Aa = (m / total) * ((m - 1) / (total - 1))
    prob_Aa_aa = 2 * (m / total) * (n / (total - 1))
    prob_aa_aa = (n / total) * ((n - 1) / (total - 1))
    
    # 显性表型的总概率
    probability = (
        prob_AA_AA * 1 +
        prob_AA_Aa * 1 +
        prob_AA_aa * 1 +
        prob_Aa_Aa * 0.75 +
        prob_Aa_aa * 0.5 +
        prob_aa_aa * 0
    )
    return probability

def main():
    # 从输入读取数据
    k = int(input("请输入显性纯合体(AA)的个体数: "))
    m = int(input("请输入杂合体(Aa)的个体数: "))
    n = int(input("请输入隐性纯合体(aa)的个体数: "))
    
    # 计算并打印概率
    result = dominant_phenotype_probability(k, m, n)
    print(f"产生显性表型后代的概率: {result:.5f}")

if __name__ == "__main__":
    main()

补充

孟德尔第一定律,也称为分离律(Law of Segregation),是孟德尔在研究豌豆遗传实验时发现的基本遗传定律之一。该定律描述了在生殖细胞形成过程中,等位基因如何分离并在后代中重新组合的现象。具体内容如下:

  1. 等位基因分离:每个个体有一对等位基因控制某一特定性状(例如豌豆的颜色),这些等位基因在生殖细胞(配子)形成时会分离。每个配子只会携带其中一个等位基因。

  2. 随机组合:受精时,来自父本和母本的配子随机结合,从而形成新的基因型。这意味着后代的基因型是随机组合的,具有不同的等位基因组合。
    孟德尔通过研究豌豆的性状,如花的颜色和种子的形状,发现了这种分离现象。具体来说,他注意到当他交配纯合显性个体和纯合隐性个体时,第一代子代(F1代)全部表现出显性性状,而第二代子代(F2代)则按3:1的比例分离出显性和隐性性状。
    以下是对孟德尔第一定律的简要总结:

  • 每个性状由一对等位基因控制。
  • 在形成配子时,等位基因分离,每个配子只包含一个等位基因。
  • 受精时,来自父母双方的等位基因随机结合,决定后代的基因型和表现型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1828399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5000天后的世界

为何可以预见未来 1993年,在互联网的黎明时代,凯文凯利创办了《连线》杂志。他曾经采访过以比尔盖茨、史蒂夫乔布斯、杰夫贝佐斯为代表的一众风云创业家。《连线》杂志是全球发行的世界著名杂志,一直致力于报道科学技术带来的经济、社会变革…

特种设备观光车司机N2精选模拟试题

11、过电压继电器的返回电压与动作电压之比称为过电压继电器的返回系数。(√) 12、部门规章和地方政府规章都属于行政规章。(√) 13、在没有障碍时,倒车的车速应快一些,以免防碍交通。()(x) 14、场(厂)内专用机动车辆的安全运行,由使用单位…

LabVIEW开发中的常见通讯协议详解

介绍LabVIEW开发中常见的通讯协议,包括RS-232、RS-485、I2C、SPI、CAN、Ethernet、Modbus和GPIB等。通过对各协议的具体内容、特点、使用范围及注意事项进行全面解析,帮助开发者选择合适的通讯协议,提高系统性能和可靠性。 1. RS-232 内容&a…

打造成功的人力RPO项目:赢得市场赚取利润

人力资源外包(RPO)项目是当今企业在招聘和人才管理方面越来越倾向的选择。想要通过人力RPO项目赚钱,以下是一些关键的策略和步骤,帮助您进入这个市场并取得成功。 1. 建立专业的人力RPO服务 首先,要想在人力RPO项目中赚钱,必须建立…

【私有云】cdn无法回源到私有云怎么办?快速落地

私有云如何使用cdn加速 文章后,产生的后续问题解决: 背景: 由于公司上新系统,使用人数数量大,在查看课件资源时,出现卡段现象,减少公司带宽占用,故使用cdn加速。但领导又要求资源…

【云原生】Kubernetes----Kubernetes集群部署Prometheus 和Grafana

目录 引言 一、环境准备 二、部署node-exporter (一)创建命名空间 (二)部署node-exporter 1.获取镜像 2.定义yaml文件 3.创建服务 4.查看监控数据 三、部署Prometheus (一)创建账号并授权 &…

赶紧转行大模型,预计风口就今年一年,明年市场就饱和了!不是开玩笑

恕我直言,就这几天,各大厂都在裁员,什么开发测试运维都裁,只有大模型是急招人。 你说你不知道大模型是什么?那可太对了,你不知道说明别人也不知道,就是要趁只有业内部分人知道的时候入局&#…

Studio One 6.6.2 for Mac怎么激活,有Studio One 6激活码吗?

如果您是一名音乐制作人,您是否曾经为了寻找一个合适的音频工作站而苦恼过?Studio One 6 for Mac是一款非常适合您的MacBook的音频工作站。它可以帮助您轻松地录制、编辑、混音和发布您的音乐作品。 Studio One 6.6.2 for Mac具有直观的界面和强大的功能…

使用源代码编译方式升级内核【笔记】

为什么要升级内核 升级内核有多个重要的原因,主要包括以下几点: 安全性:随着技术的发展,旧版本的内核可能会存在安全漏洞。黑客或恶意用户可能会利用这些漏洞进行攻击。升级内核可以修复这些已知的安全漏洞,从而提高系统的安全性。性能优化:新版本的内核通常会包含对性能…

Waf 绕过手法测试

设备类型 由上到下,waf的检测细腻度依次降低 网络层WAF:先拦截流量,进行检测后再转发给 应用层WAF:先经过apache/nginx解析后再交给php处理 云 WAF(CDNWAF):简单的看成CDN加上软件WAF的结合体&#xff0c…

python基础 002 - 2 常用数据类型

python的常用数据类型 int , 整型 1,2,3float ,小数,浮点类型1.2bool , boolean 布尔,真假。判断命题。True Flasestr ,字符串 list , 列表 a []tuple, 元组 a ()dict , dictionary, 字典 a {}set , 集合 a {} 1 查看数据类型 typ…

Base64编码的工作原理与实际应用

目录 前言 一、什么是Base64编码? 二、Base64编码的原理 三、Base64编码的应用场景 四、为什么要使用Base 64 五、Base64加密解密的实现 前言 当你需要将二进制数据转换为可传输和存储的文本格式时,Base64编码是一个常用的选择。在这篇博客中&#…

浅谈Sql注入总结笔记整理(超详细)

一、sql注入概述 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权…

python-求分数序列和

[题目描述]: 输入: 输入一行一个正整数n(n≤30)。输出: 输出一行一个浮点数,表示分数序列前n 项的和,精确到小数点后4位。样例输入1 2 样例输出1 3.5000 来源/分类(难度系数:一星)…

内存分配器性能优化

背景 在之前我们提到采用自定义的内存分配器来解决防止频繁 make 导致的 gc 问题。gc 问题本质上是 CPU 消耗,而内存分配器本身如果产生了大量的 CPU 消耗那就得不偿失。经过测试初代内存分配器实现过于简单,产生了很多 CPU 消耗,因此必须优…

【推荐算法】召回模型总结

文章目录 1、传统召回算法2、向量化召回统一建模架构2.1、如何定义正样本2.2、重点关注负样本2.3、召回生成Embedding:要求用户、物料解耦2.4、如何定义优化目标2.4.1、Softmax Loss、NCE Loss、NEG Loss2.4.2、Sampled Softmax Loss2.4.3、Pairwise Loss 3、Word2V…

python flask配置邮箱发送功能,使用flask_mail模块

🌈所属专栏:【Flask】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点…

机器真的能思考、学习和智能地行动吗?

In this post, were going to define what machine learning is and how computers think and learn. Were also going to look at some history relevant to the development of the intelligent machine. 在这篇文章中,我们将定义机器学习是什么,以及…

day10--232.用栈实现队列+ 225. 用队列实现栈+20. 有效的括号+ 1047. 删除字符串中的所有相邻重复项

一、232.用栈实现队列 题目链接:https://leetcode.cn/problems/implement-queue-using-stacks/description/ 文章讲解:https://programmercarl.com/0232.%E7%94%A8%E6%A0%88%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%…

IT人的拖延——这个任务太复杂,太难了怎么办?

随着科技的发展,IT人需要不断地运用新技术来解决更多传统方式难以解决的问题,有些问题真的不是不想解决,而是真的太复杂,太难了,根本不知道从何开始,也没有什么前辈的经验可以借鉴。我们这些对事情难度的认…