🎉 进入生物信息学的世界,与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,之后会坚持同步更新生信方面内容
与君共勉💪