Rosalind第一题:DNA核甘酸计数(Counting DNA Nucleotides )

179 篇文章 19 订阅
74 篇文章 1 订阅
该博客介绍了如何利用Python处理Rosalind平台上关于DNA字符串的生物信息学问题。提供了三种不同的解决方案,包括使用字典、内置.count()方法以及循环条件测试,来分别计算DNA字符串中'A','C','G'和'T'的出现次数。示例代码展示了具体实现,并给出了测试数据及输出结果。
摘要由CSDN通过智能技术生成

Rosalind(http://rosalind.info/problems/locations/)平台旨在帮助生信从业者通过解决问题来学习生物信息学和程序设计(可以理解为生物信息专业的学习和刷题平台)
我将其 Bioinformatics Stronghold 板块中的习题译为中文,并给出经过测试的一种/多种可行的答案,供大家参考。

问题

是简单地从一些选择的符号的有序集合字母并形成一个字; 字符串的长度是它包含的符号数。

长度为21的DNA字符串(其字母包含符号“ A”,“ C”,“ G”和“ T”)的示例为“ ATGCTTCAGAAAGGTCTTACG”。

给定:长度不超过1000 nt的DNA字符串。

返回值:四个整数(用空格分隔)计算符号'A','C','G'和'T'在中出现的相应次数。

样本数据集

AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGGATTAAAAAAAGAGTGTCTGATAGCAGC

样本输出

20 12 17 21

python解决方案

#定义变量dnastr以接收核苷酸序列
dnastr='AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'
#求解方法一:借助字典
#定义核苷酸字典
dnadict={'A':0,'C':0,'G':0,'T':0}
#循环计数
for i in dnastr:
    dnadict[i]+=1
#循环输出
for i in dnadict:
    #end='',覆盖了print默认的输出后换行操作
    #即,print有默认参数end='\n'
    print(dnadict[i],' ',end='')
#求解方法二:调用内置.count方法
#建立核苷酸列表
dnalist=['A','C','G','T']
#循环调用计数函数count并输出结果
for i in range(len(dnalist)):
    print(dnastr.count(dnalist[i]),' ',end='')
#求解方法三:循环实现
num_a=num_c=num_g=num_t=0
#通过循环、条件测试进行统计
for i in range(len(dnastr)):
    if dnastr[i]=='A':
        num_a+=1
    elif dnastr[i]=='C':
        num_c+=1
    elif dnastr[i]=='G':
        num_g+=1
    elif dnastr[i]=='T':
        num_t+=1
#结果打印
print(num_a,' ',num_c,' ',num_g,' ',num_t)
257   251   246   245

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值