Featured image of post 孟德尔の遗传学模拟程序

孟德尔の遗传学模拟程序

  • 遗传学模拟程序用户手册

    [TOC]

    项目下载链接:[github] [蓝奏云]

    🌱 程序简介

    这是一个用于模拟遗传规律的互动程序,可以帮助你:

    • 观察显性和隐性基因的遗传规律
    • 模拟不同基因组合的繁殖结果
    • 统计基因型和表型的分布比例
    • 理解孟德尔遗传定律的实际应用

    🧬 基本概念速查

    基因相关

    • 显性基因:用大写字母表示(如A),决定显性性状
    • 隐性基因:用小写字母表示(如a),只有两个隐性基因组合时才表现性状
    • 基因型:个体的基因组合(如AA/Aa/aa)
    • 表型:实际表现出的性状(如高茎/矮茎)

    组别功能

    • 实验容器:每个组都是一个独立的实验环境
    • 数据隔离:不同组的实验数据互不影响
    • 模式切换:支持随机交配和人工杂交两种模式
    • 历史记录:自动保存各代繁殖数据

    💻 快速入门

    启动程序

    1
    
    python main.py
    

    出现 >>> 提示符表示启动成功

    基础指令速查

    指令 功能 示例
    /help 查看帮助文档 /help
    /add 添加新基因 /add A a 高茎 矮茎
    /create 创建新组 /create 豌豆组
    /random 随机生成个体 /random 豌豆组 10 2
    /run 执行一代繁殖 /run 豌豆组
    /show 查看统计数据 /show 豌豆组 -details

    📚 详细使用指南

    第一步:定义基因

    1
    
    /add [显性符号] [隐性符号] [显性性状] [隐性性状]
    

    示例

    1
    2
    
    /add A a 高茎 矮茎
    /add B b 圆粒 皱粒
    

    💡 小贴士:基因符号必须为单个字母,显性用大写

    第二步:创建实验组

    1
    
    /create [组名]
    

    示例

    1
    2
    
    /create 实验一组
    /create 对照组
    

    第三步:添加实验个体

    方法1:手动添加

    1
    
    /change [组名] [基因型] add [数量]
    

    示例

    1
    
    /change 实验一组 AA add 5  # 添加5个AA型个体
    

    方法2:随机生成

    1
    
    /random [组名] [数量] [基因长度]
    

    示例

    1
    
    /random 实验一组 20 4  # 生成20个双基因个体(如AaBb)
    

    第四步:执行繁殖实验

    1
    2
    3
    
    /run [组名]      # 观察结果但不保存
    /write [组名]    # 执行并保存结果
    /runs [次数]     # 连续繁殖多代
    

    示例流程

    1
    2
    3
    4
    
    /create 豌豆实验
    /random 豌豆实验 10 2  # 生成10个单基因个体
    /show 豌豆实验        # 查看初始分布
    /run 豌豆实验         # 执行一代繁殖
    

    第五步:查看实验结果

    1
    2
    
    /show [组名]          # 基础统计
    /show [组名] -details # 详细数据
    

    输出示例

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    
    === 实验组 统计 ===
    总个体数:50
    
    基因型分布:
      Aa: 25 (50.00%)
      AA: 15 (30.00%)
      aa: 10 (20.00%)
    
    表型分布:
      (高茎,):
        数量:40 占比:80.00%
        基因型:Aa, AA
    

    🧪 实验模式说明

    🌐 随机交配模式

    • 自然随机配对
    • 适合模拟自然种群
    • 使用指令:/mode [组名] random

    ✂️ 人工杂交模式

    • 可控配对组合
    • 适合特定基因型杂交实验
    • 使用指令:/mode [组名] cross

    💡 学习案例:豌豆实验

    实验目标

    观察高茎(AA/Aa)与矮茎(aa)豌豆的杂交结果

    操作步骤

    1. 添加基因定义

      1
      
      /add A a 高茎 矮茎
      
    2. 创建实验组

      1
      
      /create 豌豆实验
      
    3. 添加亲本

      1
      2
      
      /change 豌豆实验 AA add 10  # 10株高茎纯合体
      /change 豌豆实验 aa add 10  # 10株矮茎
      
    4. 设置杂交模式

      1
      
      /mode 豌豆实验 cross
      
    5. 执行杂交

      1
      
      /run 豌豆实验
      
    6. 分析结果

      1
      
      /show 豌豆实验 -details
      

    📥 LOAD指令详解

    指令作用

    /load [文件路径] 可以批量执行预先编写好的实验指令文件,适合:

    • 保存常用实验方案
    • 快速重建复杂实验
    • 课堂演示重复实验

    文件格式要求

    1. 使用普通文本文件(建议.txt扩展名)
    2. 每行一条有效指令
    3. 支持#号注释
    4. 使用UTF-8编码

    使用步骤

    1. 用记事本创建指令文件
    2. 每行写一个有效命令
    3. 保存时选择UTF-8编码
    4. 在程序中执行/load 文件路径

    📋 实例代码库

    基础示例:单基因实验

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    BASH# 保存为 basic_exp.txt
    # 第一步:定义基因
    /add A a 高茎 矮茎
    
    # 第二步:创建实验组
    /create 单基因实验
    
    # 第三步:生成初始种群
    /random 单基因实验 20 2
    
    # 第四步:设置杂交模式
    /mode 单基因实验 cross
    
    # 第五步:执行三次繁殖
    /runs 3
    
    # 第六步:查看最终结果
    /show 单基因实验 -details
    

    进阶示例:双基因自由组合

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    BASH# 保存为 two_genes.txt
    # 定义两个性状基因
    /add A a 高茎 矮茎
    /add B b 圆粒 皱粒
    
    # 创建双基因实验组
    /create 双基因实验
    
    # 添加特定基因型亲本(AABB × aabb)
    /change 双基因实验 AABB add 5
    /change 双基因实验 aabb add 5
    
    # 设置杂交模式
    /mode 双基因实验 cross
    
    # 执行两代繁殖
    /runs 2
    
    # 保存最终结果
    /save 双基因结果
    

    课堂演示脚本

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    BASH# 保存为 class_demo.txt
    # 初始化设置
    /add M m 正常 白化
    /add C c 能尝味 不能尝味
    
    # 创建对照组
    /create 对照组
    /random 对照组 30 4
    
    # 创建实验组
    /create 实验组
    /change 实验组 MmCc add 10
    /change 实验组 mmcc add 10
    
    # 批量执行5代繁殖
    /mode 实验组 cross
    /runs 5
    
    # 对比两组结果
    /show 对照组
    /show 实验组 -details
    

    🛠️ LOAD使用技巧

    1. 渐进式实验:分阶段保存不同脚本

      1
      2
      3
      
      BASH/load 01_初始化基因.txt
      /load 02_创建对照组.txt
      /load 03_创建实验组.txt
      
    2. 参数化实验:修改数字快速生成不同规模实验

      1
      2
      
      BASH# 修改数量参数即可生成不同规模种群
      /random 实验组 ${数量} 4
      
    3. 错误处理:遇到错误时会显示行号

      1
      2
      
      TEXT[行5] 执行: /add A a 高茎
      !! 行5执行失败: 参数数量错误,需要4个参数
      
    4. 快速重建:保存成功实验配置

      1
      2
      3
      4
      
      BASH# 保存当前状态
      /save 成功案例
      # 下次使用时
      /read 成功案例
      

    💼 实战案例包

    案例1:三代显性追踪

    1
    2
    3
    4
    5
    6
    7
    
    BASH# 保存为 three_generations.txt
    /add H h 正常 亨廷顿症
    /create 家族追踪
    /random 家族追踪 10 2
    /show 家族追踪
    /runs 3
    /show 家族追踪 -details
    

    案例2:多性状组合实验

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    BASH# 保存为 multi_traits.txt
    /add T t 卷舌 平舌
    /add E e 双眼皮 单眼皮
    /add F f 有酒窝 无酒窝
    
    /create 三性状实验
    /random 三性状实验 50 6
    /mode 三性状实验 random
    /runs 5
    /write 三性状实验
    

    案例3:异常情况测试

    1
    2
    3
    4
    5
    6
    
    BASH# 保存为 error_test.txt
    # 测试各种错误情况
    /add X y 显性 隐性 # 应该报错(显隐基因相同)
    /create 
    /read 不存在的组
    /change 测试组 AAA add 10
    

    📌 使用注意事项

    1. 文件路径建议使用英文命名
    2. 复杂实验建议每10行添加注释
    3. 遇到编码问题可使用Notepad++保存为UTF-8格式
    4. 重要实验前先用小数据量测试脚本

💡 教学建议:可让学生先手动操作理解流程,再用LOAD指令进行大规模实验对比,加深对遗传规律的理解。

❓ 常见问题解答

Q1:为什么提示"基因长度不符"?

A:同一实验组的所有个体必须具有相同的基因组合长度,添加新个体时请保持与现有个体相同的基因位数

Q2:如何比较不同代的实验结果?

A:可以为每代创建不同组(如F1代、F2代),使用/list指令查看各组数据

Q3:为什么隐性性状没有出现?

A:检查:

  1. 是否正确定义隐性性状
  2. 实验个体是否包含隐性基因
  3. 繁殖代数是否足够

Q4:如何保存实验结果?

A:程序运行期间数据保存在内存中,关闭前可以使用/save指令保存组状态

🚀 进阶技巧

  1. 多基因实验:添加多个基因定义(如同时研究茎高和种子形状)
  2. 历史回溯:通过创建多个组保存不同阶段的实验数据
  3. 批量操作:使用/load指令从文件批量执行命令
  4. 性状组合:在详细统计模式查看多基因性状组合

📊 遗传规律验证

通过本程序可以验证:

  • 分离定律(子一代性状分离比)
  • 自由组合定律(多对性状组合)
  • 显隐性关系
  • 基因型与表型对应关系

📌 提示:开始实验前建议先用/help查看完整指令列表,遇到问题可尝试输入/help [指令名]查看具体帮助

步履不止,朝向远方
使用 Hugo 构建
主题 StackJimmy 设计