基因家族分析进化树

构建某一基因家族的进化树

2020-04-07  本文已影响0人  巩翔宇Ibrahimovic

写在前面
绘制某一基因家族的进化树,这是基因组学研究过程中不可缺少的一部分。划分成不同的基因家族的依据一般是其具有某一相同的结构域,下面我将以水稻中GUB_WAK_bind类家族绘制一下进化树。参考中国农大徐明良老师于2015年发表于NG上的Zm-WAK文章。

软件安装

HMMER3.3

MEGA-X(windows)

HMMER3.3 官方地址:http://hmmer.org/download.html

#HMMER3.3支持conda安装
conda install -c bioconda hmmer

1.准备文件

这里我刚开始选用的是RAP-DB上的文件,但是后来发现它上面的注释文件对基因的简称并不友好,搜索各大数据库网站后,发现ENSEMBL PLANT网站上的注释文件符合我的要求。


#下载基因组文件
wget -c https://rapdb.dna.affrc.go.jp/download/archive/irgsp1/IRGSP-1.0_genome.fasta.gz
#下载CDS文件
https://rapdb.dna.affrc.go.jp/download/archive/irgsp1/IRGSP-1.0_cds_2020-03-24.fasta.gz
#下载GFF文件
wget -c https://rapdb.dna.affrc.go.jp/download/archive/irgsp1/IRGSP-1.0_representative_transcript_exon_2020-03-24.gtf.gz
#下载全基因组蛋白质文件,ensemble plant里面的注释能看到CGSNL Gene Name(也就是我们平时说的简称)
wget ftp://ftp.ensemblgenomes.org/pub/plants/release-46/fasta/oryza_sativa/pep/Oryza_sativa.IRGSP-1.0.pep.all.fa.gz
#解压缩及重命名
gunzip -f
mv oldname newname

2.准备hmm文件

1.登录网站:[http://pfam.xfam.org/](http://pfam.xfam.org/)

2.关键字搜索"WAK",选择**GUB_WAK_bind**

3.点击 **curation & model**,拉到最下面,选择**download**。

3.进行HMM搜索

hmmsearch GUB_WAK_bind.hmm protein.fasta > GUB_WAK_bind_out

4.寻找基因ID对应的蛋白质序列

# 截取id号
vim GUB_WAK_bind_out
# 获取id号所在的行号,然后再用sed命令截取行,再用grep命令将id号匹配并重定向。
在vim命令模式下,输入“:set nu”
# sed命令截取,并用管道符直接输入给grep,匹配重定向到id文件
sed -n '17,149p'  GUB_WAK_bind_out | grep -o "Os.*" | cut -d ' ' -f 1 > id_all_gub_wak
#寻找id对应的简称,从而人为去除不必要的基因,并提取需要的列
grep -f id_all_gub_wak protein.fasta | grep '>.*' | cut -d ' ' -f 1,4,8,9,10,11,12 > res.txt
#根据res,人工选择只有wak注释的基因,共60个
得到id_wak_only.txt
# 利用samtools工具来进行序列提取
# 首先建立索引文件
samtools faidx protein.fasta
# 再将id好作为输入,之后在重定向
# 参考链接:https://www.biostars.org/p/49820/
xargs samtools faidx protein.fa < id_wak_only.txt> GUB_WAK_protein
# 得到的序列文件是含有回车符的,我利用一个perl单行命令将fasta格式的多行序列变成单行的fasta格式序列,链接:http://www.biotrainee.com/thread-291-1-1.html
perl -pe '/^>/ ? print "\n" : chomp' GUB_WAK_protein | tail -n +2 > GUB_WAK_protein_out

5.寻找基因组DNA序列(可选)

>#根据基因id来抓取注释文件里面的位置信息
grep -f response2_id.txt transcript.gtf | cut -f 1,4,5,9| sed 's/gene.*\s"//'| sed 's/";//' > gene.bed
#建立基因组文件的索引
samtools faidx rice_genome.fasta
#根据名称和位置定位到基因组序列上
bedtools getfasta -fi rice_genome.fasta -bed gene.bed -name > gene_seq

最终得到的这个GUB_WAK_protein_out文件,拿到MEGA里面去绘制进化树,记得要修改后缀名为.fasta
首先是导入文件进行序列的比较,然后再选edit里面绘制进化树,最后是退出来,进行界面的极大似然进化树的绘制,记得要选择bootstrap值(我选择的是1000),在test里面。
下一篇我们来谈谈进化树的分类及美化问题。

参考链接

HMMER使用:

https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247489692&idx=1&sn=37f68ff5de55d788aa14f370df5f3d7e&chksm=9b485827ac3fd1310c7cddf7a8c141e040a99d6f9df78d9f4ec380987cb6718da5b67453e421&scene=21#wechat_redirect

数据处理三步走

如果只用蛋白质序列绘制树的话,第三步可以省略,但是第三步能学到不少数据处理里面的小技巧。

(一)https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247489705&idx=1&sn=91a420c792985d5bed709b2f9974abc5&chksm=9b485812ac3fd1048636101c14e10e334ea2b92a7f848321c1633a4a4b5e884d777d0d4b37e9&scene=21#wechat_redirect

(二)https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247489707&idx=1&sn=7d30a25e3f2c29b2fd1dcab05a95915a&chksm=9b485810ac3fd1065ce92a40d0a71d55470da20ce7f9c3261b5db72f4271a41efb4d5c9d880f&scene=21#wechat_redirect

(三)https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247489711&idx=2&sn=a3dd1e6fcf8543d67dd4e03beb00a028&chksm=9b485814ac3fd102ac82aca94e199cf3652d5ed8b0076dd4b1e897d1bb0a33dd40f2a7e56102&scene=21#wechat_redirect

绘树及美化

https://mp.weixin.qq.com/s/ZNd5sOH1VQmE5gH0SlV76g

上一篇 下一篇

猜你喜欢

热点阅读