seq=protfasta.read_fasta("cds.fa", ) dic = {} gene_names = [] for i in seq: k = i.split('\t')[-1] gene_names.append(k) try: if dic[k]: dic[k] = dic[k] iflen(dic[k])>len(seq[i]) else seq[i] continue except: dic[k] = seq[i] continue
这样子便是一个得到一个字典,字典的 key 是 geneid,value 是其相对应的
fasta
序列,当我们想要再将其转为fasta文件时的时候,可以采取如下的代码:
1 2 3 4 5 6
f = open('gene_id.fasta','w') for idx inzip(dic): i = idx[0] fa = dic[idx[0]] f.write('>'+i+'\n'+fa+'\n') f.close()
查看文件可以看到
1 2 3
head gene_id.fasta >gene0 ATGTCCCACCAACCGTCTATTATTCGAAAAACTCACCCTCTCCTATCATTAGGTAACAGTATATTAGTAGACCTCCCTTCTCCTGCTAACATCTCGGCCTGATGAAATTTTGGCTCATTATTAAGTTTATGCTTAATTCTACAAATTATTACTGGACTTATTCTTGCTATACACTACACCGCTAATACTGAACTAGCCTTCTCTTCAGTTATACACATTTGTCGTGACGTTAATAACGGATGACTTATACGAAACCTCCATGCTAATGGCGCCTCTATATTTTTTATCTGCATCTACGCTCATATCGGACGAGGAATTTATTATGGCTCCTATTTATATAAAGAAACATGAAACGTCGGAGTTATTTTATTTGCACTAACTGCAGCTACTGCCTTCGTAGGTTATGTTCTCCCATGGGGACAAATATCCTTTTGGGGGGCAACCGTTATCACAAATTTAATTTCAGCCATACCATATGTAGGAAATGATATTGTAGTATGATTATGGGGAGGCTTCTCAGTATCAAACGCCACTTTAACCCGATTCTTTACCTTCCATTTTATCTTACCATTCATTTTAGCAGCAATAACAATAATTCACATTATATTTCTTCACCAAACAGGATCTAGTAACCCTATAGGAATTAATTCTAATTTGGATAAGATTCAATTTCACCCGTATTTTTCTTTCAAAGATATTTTAGGTTTTGTTATTCTACTGGGCATTCTTTTCATAATTTCCCTTTTAGCCCCTAATGCACTAGGTGAACCAGACAACTTTATTTATGCTAATCCTCTTAGTACCCCTCCCCATATTAAACCAGAATGATACTTTCTATTTGCCTATGCCATTCTACGCTCTGTTCCTAATAAACTTGGAGGTGTTGTAGCTTTAGCAGCAGCTATCATAATCCTCCTAATTATCCCATTTACTCACACCTCCAAACAACGCGGAATACAATTTCGCCCACTCGCCCAAATTACATTTTGAATTTTAATTGCCGATCTAGCACTACTTACATGACTAGGGGGAGAGCCCGCTGAATATCCATTTATCTTAATAACACAAATTGCATCAACAGTCTACTTCATAATTTTTATTCTAGTTTTCCCAATTTTAGGATATTTAGAAAATAAAATACTATTAATATCAAAAAATACTGGTAAATTTAATTGAAAATTAGTTTACAGA