Bio-Info每日一题:Rosalind-05-Computing GC Content

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

解答

此处借助Biopython来进行解答,Biopython除了能够对fasta文件进行解析之外,也有现成计算GC含量的方法Bio.SeqUtils.gc_fraction(),我们只需进行比较得到GC含量最高的序列ID即可。
我的想法是通过字典将序列ID和GC含量存储起来,之后再通过max()进行比较。

from Bio import SeqIO
from Bio.SeqUtils import gc_fraction

def parse_seq(file_path):
    seq_dic = {}
    for seq_record in SeqIO.parse((file_path), "fasta"):
        print(f"{seq_record.id} done!!!")
        seq_dic[seq_record.id] = gc_fraction(seq_record) * 100
    # print(seq_dic)
    return seq_dic

def get_max_GC(seq_dic):
    max_gc_id = max(seq_dic, key=seq_dic.get)
    return max_gc_id, seq_dic[max_gc_id]
def main():
    file_path = r"D:\000zyf\Learning\python_learn\Rosalind\rosalind_gc.txt"
    id, gc = get_max_GC(parse_seq(file_path))
    print(id, gc)
if __name__ == "__main__":

    main()

纸上得来终觉浅,绝知此事要躬行。
公众号:BIoYfan,之后会坚持同步更新生信方面内容
与君共勉💪

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发誓要做读书人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值