将fasta文件多行转为单行并添加长度信息

>001AAGTCCGGTAA

GGCTAGCTAAC

TTCGAACGACA

>002

GGCTAGCATGA

CACATCGACAC

CAGTAGCATCT

转换为:

>001 33

AAGTCCGGTAAGGCTAGCTAACTTCGAACGACA

>002 33

GGCTAGCATGACACATCGACACCAGTAGCATCT

使用pyfaidx

from pyfaidx import Fasta

f1 = Fasta('cds_len.fasta')

print(f1.keys()

file1 = open('nitrate_cds.fa', 'r')  

file2 = open('result.fa', 'w')

seq = {}  #创建字典

for line in file1.readlines():  #代表输出字典里的所有值  

    #print(line) 

    if line.startswith('>'):

        name = line.replace('\n', '')

        seq[name] = ' '

    else:

        seq[name] += line.replace('\n', ' ')

file1.close()

for i in seq.keys():

    print >>file2, i + " " + str(len(seq[i])) + '\n' + seq[i]

你可能感兴趣的:(将fasta文件多行转为单行并添加长度信息)