美文网首页
「数据整理」批量修改fasta文件的headers name

「数据整理」批量修改fasta文件的headers name

作者: 你猜我菜不菜 | 来源:发表于2020-07-21 10:26 被阅读0次

在使用一些生信软件前,你需要将你自己的数据整理成软件要求的格式,软件以及流程跑完了产出的文件,也需要整理成你自己想要的格式,以便于你将结果投喂给下一个软件或者进行可视化。我这个批量修改近乎于手动修改(笨办法),有很大的改进空间,这次只是记录一下。

Shell和正则表达的熟练之路还很远。

1. 修改的需求

将如">BD177_00001 Beta-glucoside kinase"这样的headers name
改成>gi|NA|ref|BD177_00001|Beta-glucoside kinase

2. 批量修改
#在BD177前加>gi|NA|ref|
sed -i "s/>BD177/>gi|NA|ref|BD177/" BD177.faa

#将BD177_00001后面的空格改成|
sed -r -i 's/\s+/\|/' BD177.faa 

#上述代码成功,下面使用for循环批量修改fasta文件head name
#首先获得需要修改的fasta文件的名称列表并存在一个文件中
find . -type f -name "*.faa" > 00_rename_list

#打开rename_list发现,开头有./,末尾有.faa,将其删除掉
sed -i 's/\.\///' 00_rename_list
sed -i 's/\.faa//' 00_rename_list

#批量修改,head name中加入>gi|NA|ref|
for i in $(cat rename_list); do sed -i "s/>${i}/>gi|NA|ref|${i}/" ${i}.faa; done

#批量修改,head name中的_00001后面的空格改成|
for i in $(cat rename_list); do sed -r -i 's/\s+/\|/'  ${i}.faa; done

应该是可以一行sed命令解决问题,悲伤!

相关文章

网友评论

      本文标题:「数据整理」批量修改fasta文件的headers name

      本文链接:https://www.haomeiwen.com/subject/slobkktx.html