本文主要是介绍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_fractiondef 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_dicdef 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,之后会坚持同步更新生信方面内容
与君共勉💪
这篇关于Bio-Info每日一题:Rosalind-05-Computing GC Content的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!