1.找到你所感兴趣的基因家族
番茄(Solanum lycopersicum),最喜爱的蔬菜水果之一。摘录维基百科最基本的介绍,详细了解番茄的起源,自行Google。小编还是喜欢Transporter gene family,就觉得特别有意思。植物对于各种营养元素的吸收,都需要其帮助,一旦缺少了,轻则营养不良,重则一命呜呼。本次流程,我选择了The natural resistance-associated macrophage protein (NRAMP)家族。
The tomato (see pronunciation) is the edible, often red, fruit of the plant Solanum lycopersicum, commonly known as a tomato plant. The plant belongs to the nightshade family, Solanaceae.
2.获取基因家族pfam number
-
进入官网https://pfam.xfam.org/,主页如下:
-
选择KEYWORD SEARCH,来直接搜索“NRAMP”。点Go,进入搜索结果页面。
-
选择第一个Accession number:PF01566,进入以下界面
-
左侧栏选择Curation&model,进入如下界面:
可以看到第二张表格,HMM information,点击表格最下面的download链接,就可以下载Stockholm格式的HMM文件。
3. 利用hmmsearch进行基因家族初步筛选
- 最基本的语法:
hmmsearch Nramp.hmm protein.fa > out
,一般我只用到这么简单的语法。
Nramp.hmm 是上一步下载到的文件
protein.fa是番茄全基因组蛋白序列文件
out是重定向的输出的文件
-
找到的成员信息,可以看出来,初步找到了共10个NRAMP成员。但是根据拟南芥和水稻的成员数目(各自是6个和7个),估计番茄不会有那么多的成员。此外,从score一栏发现,其中只有5个成员的分数在200以上,可靠性相对比较高。但是不管怎么样,还是先把所有成员的蛋白序列download下来,进行保守结构域分析。
批量获取家族成员信息
大致思路:首先从out输出文件的内容中,将其中的geneID截取下来,然后再根据ID号将蛋白序列从protein.fa文件中获取所有家族成员。
代码如下:
# 截取id号
vim out
# 获取id号所在的行号,然后再用sed命令截取行,再用grep命令将id号匹配并重定向。
在vim命令模式下,输入“:set nu”
# sed命令截取,并用管道符直接输入给grep,匹配重定向到id文件
sed -n '17,26p' out | grep -o "Sol.*\.1" > id
# 利用samtools工具来进行序列提取
# 首先建立索引文件
samtools faidx protein.fa
# 再将id好作为输入,之后在重定向
# 参考链接:https://www.biostars.org/p/49820/
xargs samtools faidx protein.fa < id > nramp_protein
less nramp_protein
# 得到的序列文件是含有回车符的,我利用一个perl单行命令将fasta格式的多行序列变成单行的fasta格式序列,链接:http://www.biotrainee.com/thread-291-1-1.html
perl -pe '/^>/ ? print "\n" : chomp' in.fasta | tail -n +2 > out.fasta
# 最后在samrt网站确认是否是该家族成员,进行最后的鉴定。链接:http://smart.embl.de/smart/set_mode.cgi?NORMAL=1
4.写在最后的感想
还是没有及时的更新,虽然一直想写,但作为实验gou,我只能将大部分的时间用来实验了,从而没有过多的时间来写。挺对不起一个读者,我之前回答说的是上个礼拜更新的,可是最后还是拖了一个礼拜。
今天实验室聚餐,各种情况都出现了,感觉大家都是不容易,外人看来都是很光鲜亮丽,很不错的工作,但是这背后的背后,有多少的辛酸能被人所理解,有时候还真是需要诉说。发现现在自己出去,真的会混得非常的惨,真是不敢想象。
最近在做基础序列的发掘分析,感觉主要就是对于各种文本文件的截取,需要用到很多shell命令,发现自己很欠缺这方面的,开始特别困难,之前从来没有实战过,只是看教程,对于真正的项目分析,还是非常欠缺。
到现在,还是学到了很多,在实践中去补充自己的不足,一边摸索一边学习还是收到了很多的收获。