"""將多行文件轉換為一行
例:
>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()