"""将多行文件转换为一行
例:
>001 AAGTCCGGTAA GGCTAGCTAAC TTCGAACGACA >002 GGCTAGCATGA CACATCGACAC CAGTAGCATCT 转换为: >001 AAGTCCGGTAAGGCTAGCTAACTTCGAACGACA >002 GGCTAGCATGACACATCGACACCAGTAGCATCT """ fr=open('test2.fasta', 'r') fw=open('out.fasta', 'w') seq={} for line in fr:
if line.startswith('>'): #判断字符串是否以‘>开始’ name=line.split()[0] #以空格为分隔符,并取序列为0的项。 seq[name]='' else: seq[name]+=line.replace('\n', '') fr.close() for i in seq.keys(): fw.write(i) fw.write('\n') fw.write(seq[i]) fw.write('\n') fr.close()
##上述步骤中顺便构建了序列名和序列的字典seq。
#假如要选择指定的ID序列,
for i in seq.keys():
if i.startswith('>chr1|hos107.1'): #该行命令的添加,可以输出指定ID的序列。
fw.write(i)
fw.write('\n')
fw.write(seq[i])
fw.write('\n')
fr.close()