python文件处理fasta文件,多行转换为一行


"""将多行文件转换为一行
例:
>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()
 
 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM