美文网首页
愚公三步——修改list文件完成目标序列抽取

愚公三步——修改list文件完成目标序列抽取

作者: 青鳉君 | 来源:发表于2018-09-30 16:24 被阅读16次

→_→用到的命令&脚本

grep、awk、sed,faSomeRecords(此脚本可以网上下载)


> 任务

:从拟南芥总蛋白质序列中抽取指定ID的蛋白序列

> 问题

目标ID与蛋白序列fa文件中的ID不完全相符。

目标ID的list文件如下:

拟南芥总蛋白序列的格式如下:

click image

#观察两个文件可以发现,list文件ID不含.1、.2等后缀,且list文件中ID存在小写格式。直接调用faSomeRecords脚本抽取蛋白序列将无法正确匹配。


> 解决

第一步

用grep模糊匹配,从拟南芥总蛋白序列fa文件中抓取含相应ID的行。

$cat 1.txt |xargs -i grep -i "{}" xx.fa > 1.names

#grep -i 表示忽略大小写

#cat显示list文件内容,xargs -i 则表示将上一个命令的内容逐行输入,{ }用以指代输入的内容。

执行第一步得到如下结果:

第二步:

观察文件,发现pep在每行均存在,可将pep定义为列分隔符,输出第一列。

$awk -F 'pep' '{print $1}'  1.names > 1.hits

#awk -F ' '  定义分列符

执行第二步得到如下结果:

第三步:

去掉>符号

$sed -i 's/>//g' 1.hits

#将1.hits文件中的>替换为空。

@至此,list文件修改完毕,下面直接正常使用 faSomeRecords脚本。

第四步:

抽取出目标序列

$./faSomeRecords xx.fa  1.hits hits.fa

#faSomeRecords要赋予可执行权限(chmod u+x faSomeRecords)

#hits.fa为抽取得到的目标序列。

###

后记

不甚智能(foolish)的方法,但解了我一时之急,权且记下。供琢磨改进~

<<<新手录

相关文章

网友评论

      本文标题:愚公三步——修改list文件完成目标序列抽取

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