我有一个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
3条答案
按热度按时间wydwbb8l1#
您可以使用
grep
和sed
的组合:在这里,
grep -o
只查找并输出方括号以及输入文件中的内容。sed
删除方括号并将第一个单词替换为它的第一个字母和一个点。两个命令中的开关
-E
启用ERE而不是BRE。**编辑:**如果你想用
[R.clarus]
替换[Rhizophagus clarus]
并保留所有其他内容,这甚至更简单:6vl6ewon2#
这可能对你有用(GNU sed):
关闭隐式打印
-n
并启用扩展regexp-E
。匹配方括号内的第一个字符和第二个单词,并根据需要打印结果。
kulphzqa3#
怎么样: