首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于计算DNA序列中GC含量的初学者Python脚本

用于计算DNA序列中GC含量的初学者Python脚本
EN

Stack Overflow用户
提问于 2013-06-04 09:34:36
回答 7查看 20.2K关注 0票数 2

我正在尝试计算Rosalind问题的DNA序列的GC含量(以%为单位)。我有以下代码,但它返回0,或者只返回G或C的个数(没有百分比)。

代码语言:javascript
复制
x = raw_input("Sequence?:").upper()
total = len(x)
c = x.count("C")
g = x.count("G")

gc_total = g+c

gc_content = gc_total/total

print gc_content

我也尝试过这样做,只是为了得到G和C的计数,而不是百分比,但它只返回整个字符串的计数:

代码语言:javascript
复制
x = raw_input("Sequence?:").upper()
def gc(n):
    count = 0
    for i in n:
        if i == "C" or "G":
            count = count + 1
        else:
            count = count
    return count
gc(x)

编辑:我修复了第一个代码示例中print语句中的拼写错误。这不是问题所在,我只是粘贴了错误的代码片段(尝试了很多次……)

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-06-04 09:44:38

不应该:

打印cg_content

朗读

print gc_content?

至于另一段代码,您的循环说

if I == "C“or "G":

这就是每次计算"G“为true,从而将if语句作为true运行。

相反,它应该是

if I == "C“or i=="G":

而且,您也不需要那个else语句。

希望这能有所帮助。让我们知道它的进展如何。

阿卜杜勒·萨塔尔

票数 1
EN

Stack Overflow用户

发布于 2013-06-04 09:41:48

你的问题是你执行的是整数除法,而不是浮点除法。

试一试

代码语言:javascript
复制
gc_content = gc_total / float(total)
票数 4
EN

Stack Overflow用户

发布于 2013-10-12 15:02:11

您还需要将答案乘以100才能将其转换为百分比。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16908475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档