用Pyhton批量改名FASTA文件

比如我们有个fasta格式的序列文件,里面的序列命名格式是点分隔的形式,MI.M03555.0272.001.FLD0001.WWMV01.20, 而我们真正想要的名字是WWMV01.20,那么在处理时我们只需要识别每一条序列中的第二个点就行,然后把第二个点前面,>符号后面的文字都删掉。

>MI.M03555.0272.001.FLD0001.WWMV01.20
AATACGTAGGGTGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGGGCTCGTAGGCGGTCTGTCACGTCGGGAGTGAAAAC
TCAGGGCTTAACCCTGAGCCTGCTTCCGATACGGGCAGACTAGAGGTATGCAGGGGAGAATGGAATTCCTGGTGTAGCGG
TGAAATGCGCAGATATCAGGAGGAACACCAGTGGCGAAGGCGGTTCTCTGGGCATTACCTGACGCTGAGGAGCGAAAGTG
TGGGGAGCGAACAGGAT
>MI.M03555.0272.001.FLD0001.WWMV01.3
AATACGTAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGTGCGTAGGCGGTTCTCCAAGTCCGTTGTGAAAGC
CCCGGGCTCAACCTGGGAATGGCAGTGGAAACTAGGGGACTGGAATCTGGCAGAGGGGGGTGGAATGCCGCGTGTAGCAG
TGAAATGCGTAGAGATGCGGCGGAACACCGATGGCGAAGGCAGCCCCCTGGGCTGAGATTGACGCTCAGGCACGAAAGCG
TGGGGAGCAAACAGGA
>MI.M03555.0272.001.FLD0002.WWMV01.11
TAATACGAAGGGGGCTAGCGTTGCTCGGAATCACTGGGCGTAAAGGGTGCGTAGGCGGGTCTTTAAGTCAGGGGTGAAAT
CCCGGAGCTCAACTCCAGAACTGCCTTTGATACTGAGGATCTTGAGTTCGGGAGAGGTGAGTGGAACTGCGAGTGTAGAG
GTGAAATTCGTAGATATTCGCAAGAACACCAGTGGCGAAGGCGGCTCACTGGCCCGATACTGACGCTGAGGCACGAAAGC
GTGGGGAGCAAACAG
>MI.M03555.0272.001.FLD0003.WWMV01.23
TACGTAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGTGCGTAGGCGGTTCTCCAAGTCCGTTGTGAAAGCCC
CGGGCTCAACCTGGGAATGGCAGTGGAAACTAGGGGACTGGAATCTGGCAGAGGGGGGTGGAATGCCGCGTGTAGCAGTG
AAATGCGTAGAGATGCGGCGGAACACCGATGGCGAAGGCAGCCCCCTGGGCTGAGATTGACGCTCAGGCACGAAAGCGTG
GGGAGCAAACAGGA

这个可以用python小脚本进行实现,命令如下:

#!/usr/bin/env python2.7
import sys
from Bio import SeqIO
f=sys.argv[1]
for record in SeqIO.parse(f,"fasta"):
        name=".".join(record.id.split(".")[-2:])
        print ">"+name
        print record.seq

运行命令:

./rename.py test.fa > test1.fa

将修改名字后的fasta文件重新定向保存到另一个fasta文件中。

输出结果:

>WWMV360.53342
TAATACGTAGGGGGCAAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGTTCCGTAAGTCGGATGTGAAAAATCTGGGCTCAACCCAGTGGAGCACCCGATACTGCGGTGACTCGAGTCCGGTAGGGGAGTGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAAC

这样我们就得到了修改好名字的fasta序列了。


猜你喜欢

转载自blog.csdn.net/zhouxin518/article/details/80649264
今日推荐