You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

入门Python借助并行列表计算群体功能失调等位基因频率

问题分析与修改方案

原有代码的错误点如下:

  • 变量拼写错误:dys_nuq 应为你定义的 dys_nuc
  • 计数列表初始化错误:空列表无法直接通过索引赋值/累加,需要先按slim_pos的长度初始化每个位置的初始计数为0
  • 不需要单独存储正常计数和按variant的计数,仅需要统计每个slim_pos位点的功能失调突变总数即可,频率计算逻辑为 该位点突变数 / 总序列数(90)
可直接运行的实现代码
# 初始化计数列表,长度和slim_pos一致,每个位置初始值为0
dys_count = [0] * len(slim_pos)
total_samples = len(seqList)  # 总样本数为90

for variant in seqList:
    for ind, pos in enumerate(slim_pos):
        # 比对当前序列对应位置的核苷酸是否为功能失调核苷酸
        if variant[pos] == dys_nuc[ind]:
            dys_count[ind] += 1

# 按要求格式输出结果
print("| 功能失调序列位点(对应slim_pos) | 功能失调核苷酸 | 该位点携带功能失调核苷酸的人群频率 |")
print("| :--- | :---: | ---: |")
for ind, pos in enumerate(slim_pos):
    freq = dys_count[ind] / total_samples
    print(f"| {pos} | {dys_nuc[ind]} | {freq} |")

如果运行仍出现索引错误,请检查所有序列的长度是否大于slim_pos中的最大索引值,避免出现序列越界访问。

内容的提问来源于stack exchange,提问作者user8903149

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:18:02