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

作者 : admin 本文共901个字,预计阅读时间需要3分钟 发布时间: 2024-06-10 共1人阅读

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

解答

此处借助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:
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()
0zyf\Learning\python_learn\Rosalind\rosalind_gc.txt"
id, gc = get_max_GC(parse_seq(file_path)) print(id, gc) if __name__ == "__main__": main()

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

本站无任何商业行为
个人在线分享 » Bio-Info每日一题:Rosalind-05-Computing GC Content
E-->