我试图将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"
希望得到一些线索。感谢
答案 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