编辑Uniref FASTA标头ID

时间:2015-07-07 04:04:08

标签: sed fasta

我试图将Uniref FASTA文件的FASTA标题设置为“> ref | myid | seq definition”形式。我知道他们正在使用sed命令来处理它。

Uniref FASTA的领导。

">UniRef100_Q6GZX4 Putative transcription factor 001R n=1 Tax=Frog virus 3 
(isolate Goorha) RepID=001R_FRG3G
MAFSAEDVLKEYDRRRRMEALLLSLYYPNDRKLLDYKEWSPPRVQVECPKAPVEWNNPPS
EKGLIVGHFSGIKYKGEKAQASEVDVNKMCCWVSKFKDAMRRYQGIQTCKIPGKVLSDLD"

成为:

">UniRef100|Q6GZX4|Putative transcription factor 001R n=1 Tax=Frog virus 3
 (isolate Goorha) RepID=001R_FRG3G
MAFSAEDVLKEYDRRRRMEALLLSLYYPNDRKLLDYKEWSPPRVQVECPKAPVEWNNPPS
EKGLIVGHFSGIKYKGEKAQASEVDVNKMCCWVSKFKDAMRRYQGIQTCKIPGKVLSDLD"

希望得到一些线索。感谢

2 个答案:

答案 0 :(得分:0)

以下是使用perl的内容:

cat your-fasta-file | perl -pe 's:^(.+?)_(.+?) :\1|\2|:'

's:之后的正则表达式是从行的开头到第一个下划线^(.+?)_找到最小匹配 然后在最后一个空格(.+?)找到最小的匹配,然后在第一个匹配的模式|和第二个匹配的模式\1之后放置\2。冒号是我用来分隔要搜索的模式和要替换的模式。

答案 1 :(得分:0)

尝试使用GNU sed将第_替换为|,将第一个空格替换为|

sed 's/_/|/;s/ /|/' file > new_file

或者这个来编辑文件:

sed -i 's/_/|/;s/ /|/' file