鱼C论坛

 找回密码
 立即注册
查看: 797|回复: 3

怎样优化下面处理fasta文件格式的代码

[复制链接]
发表于 2020-5-4 23:34:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
首先是在win10平台上写的,楼主正在学生信。楼主pc9代i7,跑这几行代码竟要2-3秒,在生信这行肯定是不行的,想请教各位大神怎样优化下面的代码,谢谢。
代码为:
f=open('total.fa')

dict1={}
for i in f:
    if i.startswith('>'):
        a=i.split(' ')[0]
        dict1[a]=[]
    else:
        dict1[a].append(i)

keys=list(dict1.keys())

keys.sort()

for i in keys:
    print(i)
    for k in dict1[i]:
        print(k.split('\n')[0],end='')
    print()
    print()
f.close()

原文件名为total.fa如下:
>X02662.1 E. coli gap gene for GAPDH (glyceraldehyde-3-phosphate dehydrogenase)
GATCAAACAGTGATATACGCCGTCACGCTTGTTATGCAGTAAACGACCCGTAAATGGCGGCTCTGTCCCA
TGATTCTGCGTCACGTAAAACTGCATCTCGGACAAATTTTTTTTCAGTTCTTCTGCCGAAGTTTATTAGC
CATTTGCTCACATCTCACTTTAATCGTGCTCACATTACGTGACTGATTCTAACAAAACATTAACACCAAC
TGGCAAAATTTTGTCCTAAACTTGATCTCGACGAAATGGCTGCACCTAAATCGTGATGAAAATCACATTT
TTATCGTAATTGCCCTTTAAAATTCGGGGCGCCGACCCCATGTGGTCTCAAGCCCAAAGGAAGAGTGAGG
CGAGTCAGTCGCGTAATGCTTAGGCACAGGATTGATTTGTCGCAATGATTGACACGATTCGCTTGACGCT
GCGTAAGGTTTTTGTAATTTTACAGGCAACCTTTTATTCACTAACAAATAGCTGGTGGAATATATGACTA
TCAAAGTAGGTATCAACGGTTTTGGCCGTATCGGTCGCATTGTTTTCCGTGCTGCTCAGAAACGTTCTGA
CATCGAGATCGTTGCAATCAACGACCTGTTAGACGCTGATTACATGGCATACATGCTGAAATATGACTCC
ACTCACGGCCGTTTCGACGGTACCGTTGAAGTGAAAGACGGTCATCTGATCGTTAACGGTAAAAAAATCC
GTGTTACCGCTGAACGTGATCCGGCTAACCTGAAATGGGACGAAGTTGGTGTTGACGTTGTCGCTGAAGC
AACTGGTCTGTTCCTGACTGACGAAACTGCTCGTAAACACATCACCGCTGGTGCGAAGAAAGTGGTTATG
ACTGGTCCGTCTAAAGACAACACTCCGATGTTCGTTAAAGGCGCTAACTTCGACAAATATGCTGGCCAGG
ACATCGTTTCCAACGCTTCCTGCACCACCAACTGCCTGGCTCCGCTGGCTAAAGTTATCAACGATAACTT
CGGCATCATCGAAGGTCTGATGACCACCGTTCACGCTACTACCGCTACTCAGAAAACCGTTGATGGCCCG
TCTCACAAAGACTGGCGCGGCGGCCGCGGCGCTTCCCAGAACATCATCCCGTCCTCTACCGGTGCTGCTA
AAGCTGTAGGTAAAGTACTGCCAGAACTGAATGGCAAACTGACTGGTATGGCGTTCCGCGTTCCGACCCC
GAACGTATCTGTAGTTGACCTGACCGTTCGTCTGGAAAAAGCTGCAACTTACGAGCAGATCAAAGCTGCC
GTTAAAGCTGCTGCTGAAGGCGAAATGAAAGGCGTTCTGGGCTACACCGAAGATGACGTAGTATCTACCG
ATTTCAACGGCGAAGTTTGCACTTCCGTGTTCGATGCTAAAGCTGGTATCGCTCTGAACGACAACTTCGT
GAAACTGGTATCCTGGTACGACAACGAAACCGGTTACTCCAACAAAGTTCTGGACCTGATCGCTCACATC
TCCAAATAAGTTGAGATGACACTGTGATCACACCATCGTCACAGCCTTCGATC
>gi|325296756|ref|NM_001204686.1|:1-968 Aplysia californica insulin precursor (PIN), mRNA
CCTGAATATAGCCAACTAAATTCTAGGAACTCTAAGAGGACTACGCTTGTCTCCAACATCTTATCGTCAA
CATCTTCTGCAAGCGATAACTATATTTCTGGTCCGCCAAAGTAGTATACGCTAAGAACAAGAGGAAGAGA
GTCGTAAGGTTTTTTATTCCCAGCCGGCGAGAGCAGAAACTGTTGTTCTAGCTGCCTTTCTGGTCTTAAC
AGGACCATTTTGCTGGCCAGTGAAAAACTAACTCGGGTGAAACAACATTGGTGCTACCAGCCTCTCCTGA
CTGTTCCAACGGTGCCTTCTCGTAGCCAGAATGAGCAAGTTCCTCCTCCAGAGCCACTCCGCCAACGCCT
GCCTGCTCACCCTTCTGCTCACGCTGGCCTCCAACCTCGACATATCCCTGGCCAACTTCGAGCACTCGTG
CAACGGCTACATGCGGCCCCACCCGCGGGGTCTGTGCGGCGAAGACCTGCACGTCATCATTTCCAACCTG
TGCAGCTCTCTGGGGGGCAACAGGAGGTTCCTGGCCAAGTACATGGTCAAAAGAGACACGGAAAATGTGA
ACGACAAGTTACGAGGGATCCTGCTCAATAAGAAAGAAGCTTTCTCCTACTTGACCAAGAGAGAGGCCTC
AGGCTCCATCACATGCGAATGTTGCTTCAACCAGTGTCGGATATTTGAGCTGGCTCAGTACTGCCGTCTG
CCAGACCATTTCTTCTCCAGAATATCCAGAACCGGAAGGAGCAACAGTGGACATGCGCAGTTGGAGGACA
ACTTTAGTTAGACATGTTGAGGGCGTAAATGCTTTTAAAATTTTTAATTTGGTGATTATTATTATAAAGG
AGGAGTCCACGTGGTGTCAGATTTAGCGGGTTTTTTCCACGTGTTTGACTAAAGTTTCCAGATTTATTTC
ATACCAGCGATACCCGCAGGAATAGAAGGTCCCCTAAGAAGCTGAAGGCATTATTGAT
>gi|568815582|ref|NC_000016.10|:176553-177647 Homo sapiens chromosome 16, GRCh38.p13 Primary Assembly
CAGGCCCCGCCCGGGACTCCCCTGCGGTCCAGGCCGCGCCCCGGGCTCCGCGCCAGCCAATGAGCGCCGC
CCGGCCGGGCGTGCCCCCGCGCCCCAAGCATAAACCCTGGCGCGCTCGCGGCCCGGCACTCTTCTGGTCC
CCACAGACTCAGAGAGAACCCACCATGGTGCTGTCTCCTGCCGACAAGACCAACGTCAAGGCCGCCTGGG
GTAAGGTCGGCGCGCACGCTGGCGAGTATGGTGCGGAGGCCCTGGAGAGGTGAGGCTCCCTCCCCTGCTC
CGACCCGGGCTCCTCGCCCGCCCGGACCCACAGGCCACCCTCAACCGTCCTGGCCCCGGACCCAAACCCC
ACCCCTCACTCTGCTTCTCCCCGCAGGATGTTCCTGTCCTTCCCCACCACCAAGACCTACTTCCCGCACT
TCGACCTGAGCCACGGCTCTGCCCAGGTTAAGGGCCACGGCAAGAAGGTGGCCGACGCGCTGACCAACGC
CGTGGCGCACGTGGACGACATGCCCAACGCGCTGTCCGCCCTGAGCGACCTGCACGCGCACAAGCTTCGG
GTGGACCCGGTCAACTTCAAGGTGAGCGGCGGGCCGGGAGCGATCTGGGTCGAGGGGCGAGATGGCGCCT
TCCTCGCAGGGCAGAGGATCACGCGGGTTGCGGGAGGTGTAGCGCAGGCGGCGGCTGCGGGCCTGGGCCC
TCGGCCCCACTGACCCTCTTCTCTGCACAGCTCCTAAGCCACTGCCTGCTGGTGACCCTGGCCGCCCACC
TCCCCGCCGAGTTCACCCCTGCGGTGCACGCCTCCCTGGACAAGTTCCTGGCTTCTGTGAGCACCGTGCT
GACCTCCAAATACCGTTAAGCTGGAGCCTCGGTGGCCATGCTTCTTGCCCCTTGGGCCTCCCCCCAGCCC
CTCCTCCCCTTCCTGCACCCGTACCCCCGTGGTCTTTGAATAAAGTCTGAGTGGGCGGCAGCCTGTGTGT
GCCTGAGTTTTTTCCCTCAGCAAACGTGCCAGGCATGGGCGTGGACAGCAGCTGGGACACACATGGCTAG
AACCTCTCTGCAGCTGGATAGGGTAGGAAAAGGCAGGGGCGGGAG
>gi|568815582|ref|NC_000016.10|:172750-173834 Homo sapiens chromosome 16, GRCh38.p13 Primary Assembly
AGGCCCCGCCCGGGACTCCCCTGCGGTCCAGGCCGCGCCCCGGGCTCCGCGCCAGCCAATGAGCGCCGCC
CGGCCGGGCGTGCCCCCGCGCCCCAAGCATAAACCCTGGCGCGCTCGCGGGCCGGCACTCTTCTGGTCCC
CACAGACTCAGAGAGAACCCACCATGGTGCTGTCTCCTGCCGACAAGACCAACGTCAAGGCCGCCTGGGG
TAAGGTCGGCGCGCACGCTGGCGAGTATGGTGCGGAGGCCCTGGAGAGGTGAGGCTCCCTCCCCTGCTCC
GACCCGGGCTCCTCGCCCGCCCGGACCCACAGGCCACCCTCAACCGTCCTGGCCCCGGACCCAAACCCCA
CCCCTCACTCTGCTTCTCCCCGCAGGATGTTCCTGTCCTTCCCCACCACCAAGACCTACTTCCCGCACTT
CGACCTGAGCCACGGCTCTGCCCAGGTTAAGGGCCACGGCAAGAAGGTGGCCGACGCGCTGACCAACGCC
GTGGCGCACGTGGACGACATGCCCAACGCGCTGTCCGCCCTGAGCGACCTGCACGCGCACAAGCTTCGGG
TGGACCCGGTCAACTTCAAGGTGAGCGGCGGGCCGGGAGCGATCTGGGTCGAGGGGCGAGATGGCGCCTT
CCTCTCAGGGCAGAGGATCACGCGGGTTGCGGGAGGTGTAGCGCAGGCGGCGGCTGCGGGCCTGGGCCGC
ACTGACCCTCTTCTCTGCACAGCTCCTAAGCCACTGCCTGCTGGTGACCCTGGCCGCCCACCTCCCCGCC
GAGTTCACCCCTGCGGTGCACGCCTCCCTGGACAAGTTCCTGGCTTCTGTGAGCACCGTGCTGACCTCCA
AATACCGTTAAGCTGGAGCCTCGGTAGCCGTTCCTCCTGCCCGCTGGGCCTCCCAACGGGCCCTCCTCCC
CTCCTTGCACCGGCCCTTCCTGGTCTTTGAATAAAGTCTGAGTGGGCAGCAGCCTGTGTGTGCCTGGGTT
CTCTCTATCCCGGAATGTGCCAACAATGGAGGTGTTTACCTGTCTCAGACCAAGGACCTCTCTGCAGCTG
CATGGGGCTGGGGAGGGAGAACTGCAGGGAGTATG




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 23:44:32 From FishC Mobile | 显示全部楼层
不是每个人都懂这方面的知识,你至少要说有什么要求啊规则啊要什么结果啊之类的吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-5 10:54:01 | 显示全部楼层
hrp 发表于 2020-5-4 23:44
不是每个人都懂这方面的知识,你至少要说有什么要求啊规则啊要什么结果啊之类的吧

这是个练习题,就是要求把>开头的行第一个空格前的部分作为一个序列的名称,它和下一个>开头的行之间的内容就是这个名称下面的内容,然后把内容连成一行,代码的目的是处理字符串和换行符,没有用到专业知识。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 11:46:11 | 显示全部楼层
要求没有看的太懂
我觉得是不是用 split 比较好点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 02:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表