怎样优化下面处理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
不是每个人都懂这方面的知识,你至少要说有什么要求啊规则啊要什么结果啊之类的吧
这是个练习题,就是要求把>开头的行第一个空格前的部分作为一个序列的名称,它和下一个>开头的行之间的内容就是这个名称下面的内容,然后把内容连成一行,代码的目的是处理字符串和换行符,没有用到专业知识。 要求没有看的太懂
我觉得是不是用 split 比较好点
页:
[1]