我有一个 MSA fasta 文件,标题采用这种格式 -
GAN08245.1/5-191 cyclin-L1 [Mucor ambiguus]
LNNPLASLEQLETTVSRR-DGISEELEADLRNLGAELIQSAGILLKLPQVAMATAQVLFQRFFYMSLKEFGI
V-EIGGLFLASTHLITVYDLIIRKMKGIVPLDAFSKAYNLKNAIAAEMQILRQLGFIVHVQLPYNMINYLRI
LGLISKRAWNYLNDEPATIACAAICREQGIKLPTLPGWWDVSAT-L----------------------
GES74777.1/6-191 cyclin-like protein [Rhizophagus clarus]
LQNAILTYGQLETTPSKK-DNIPEELEDELRRLGCDFVQSAGIVLRLPQVAMATAQVLFQRIIKESLLKGH-
----------------------RRYRNNESLEYLGVFYEMKDLVIAEMQILKKLGFNVHVQLPYGMVNYLKV
LELIPQKAWGYLNDQPATIACAVIARIAQVKLPTSPPWWEAEDE-ISRHIMRLY-NLPLDELEYLKKG
我希望输出只有
M.ambiguus
,R.clarus
等,并保持序列。sed
命令来实现?还是有其他命令可以做到这一点?
我尝试使用
awk
,它提取出没有任何序列的名称。
awk -F '[][]' '{print $2}' input.fa > output.fa
怎么样:
grep '[' 我的文件.txt | sed -E 's/.[//' | sed -E 's/].//'
您可以使用
grep
和sed
的组合:
grep -Eo '\[.*?\]' input.fa | sed -E 's:\[(\w)\w*\s*(.+)\]:\1.\2:g' >output.fa
Here
grep -o
仅从您的输入文件中查找并输出方括号及其内容。
sed
删除括号并用它的第一个字母和一个点替换第一个单词。
Switch
-E
在两个命令中启用 ERE 而不是 BRE。
编辑:如果你想用
[Rhizophagus clarus]
替换[R.clarus]
并保留所有其他内容它更简单:
sed -E 's:\[(\w)\w*\s*(.+?)\]:[\1.\2]:g' input.fa >output.fa