编辑 Uniref FASTA header ID

Editing Uniref FASTA header ID

我正在尝试使 Uniref FASTA 文件的 FASTA header 成为“>ref|myid|seq 定义”形式。我知道他们正在使用 sed 命令来处理它。

Header 的 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"

希望得到一些线索。谢谢

这是使用 perl 的东西:

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

's: 之后的正则表达式所做的是找到从行首到第一个下划线 ^(.+?)_ 的最小匹配项 然后找到下一个 space (.+?) 之前的最小匹配,然后将 | 放在第一个匹配模式 </code> 和第二个匹配模式 <code> 之后.冒号是我用来分隔要搜索的模式和要替换的模式的内容。

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

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

或此编辑文件:

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