暗夜最终章 发表于 2020-5-4 23:34:39

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

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

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

keys=list(dict1.keys())

keys.sort()

for i in keys:
    print(i)
    for k in dict1:
      print(k.split('\n'),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




hrp 发表于 2020-5-4 23:44:32

不是每个人都懂这方面的知识,你至少要说有什么要求啊规则啊要什么结果啊之类的吧

暗夜最终章 发表于 2020-5-5 10:54:01

hrp 发表于 2020-5-4 23:44
不是每个人都懂这方面的知识,你至少要说有什么要求啊规则啊要什么结果啊之类的吧

这是个练习题,就是要求把>开头的行第一个空格前的部分作为一个序列的名称,它和下一个>开头的行之间的内容就是这个名称下面的内容,然后把内容连成一行,代码的目的是处理字符串和换行符,没有用到专业知识。

zhaoximeng 发表于 2020-5-5 11:46:11

要求没有看的太懂
我觉得是不是用 split 比较好点
页: [1]
查看完整版本: 怎样优化下面处理fasta文件格式的代码