使用r语言 (使用r语言绘图)

尔云间 一个专门做科研的团队

原创 小果 生信果

用r语言生成矩阵,使用r语言绘图

用r语言生成矩阵,使用r语言绘图

系统发育树可以描述一组生物之间的系谱关系,如人和黑猩猩的亲缘关系最为接近,而与大猩猩则次之。

用r语言生成矩阵,使用r语言绘图

拿血红蛋白举例,人和黑猩猩是从大约700w年由同一祖先进化而来,它们的血红蛋白只有一个氨基酸的差异,和大猩猩的血红蛋白差异则较大。

香蕉。一种连动物都不是的生物,居然跟人类的基因有50%的相似性。

我们可以根据生物的基因序列构建,也可以根据蛋白质序列构建。如下图所示,一个有根的系统发育树代表了一种进化历史模型,该模型由树节点之间的祖先-后代关系以及“sister”或“cousin”有机体在不同相关性水平上的聚类所描述。在传染病研究中,系统发育树通常是根据病原体的基因或基因组序列构建的,以显示哪个病原体样本在遗传上更接近另一个样本,从而深入了解潜在的未观察到的流行病*联学**系和爆发的潜在来源。

用r语言生成矩阵,使用r语言绘图

下面小果带大家使用R语言完成序列比对和进化树的绘制:

序列*载下**:

打开NCBI ,选择Nucleotide数据库,输入Coronavirus ,回车,选择你需要的序列,选择send to进行*载下**,

保存成fasta格式 ,即以>开头的文件,

用r语言生成矩阵,使用r语言绘图

用r语言生成矩阵,使用r语言绘图

下面是R语言实操部分 ,小果只推荐跑10条左右的短序列,如果太多还是使用mega等软件比较好:

###BiocManager::install("msa")
require(msa)
mySequenceFile <- readAAStringSet(“sequence.txt”)


#多序列比对
myFirstAlignment <- msa(mySequenceFile)


head(mySequenceFile)


library(ggplot2)


require(seqinr)
myAlignment <- msaConvert(myFirstAlignment, type="seqinr::alignment")
d <- dist.alignment(myAlignment, "identity")


#构建NJ树
require(ape)
tree <- nj(d)


#画树并输出到PDF文件ggtree.pdf
require(ggtree)

用r语言生成矩阵,使用r语言绘图

环形进化树

##环状图
p1<-ggtree(tree, layout='circular', ladderize=FALSE, size=0.8, branch.length="none",col="red")+
  geom_tiplab2(hjust=-0.3)+
  geom_tippoint(size=1.5,col="blue")+ 
  geom_nodepoint(color="black", alpha=1/4, size=2) +
  theme(legend.title=element_text(face="bold"), legend.position="bottom", legend.box="horizontal", legend.text=element_text(size=rel(0.5)))
# 图例位置、文字大小

用r语言生成矩阵,使用r语言绘图

长方形进化树

###长方形图
p2<- ggtree(tree, layout='rectangular', size=0.8, col="deepskyblue3") +
  
  geom_tiplab(size=3, color="purple4", hjust=-0.05)+
  geom_tippoint(size=1.5, color="deepskyblue3")+
  geom_nodepoint(color="pink", alpha=1/4, size=5)+
  theme_tree2() 
ggsave(p1, file="tree_circular.pdf", width=9, height=9)
ggsave(p2, file="tree_rectangular.pdf", width=9, height=9)

进化树的美化大家可以使用itol或者自己阅读ggtree包的参数了,好了今天小果的分享就到这里了,关注小果,下期会给大家带来给多生信入门实操知识。

推荐阅读

  • GEO数据库之GPL文件学习
  • 风险比看不懂?小果带你弄明白单因素COX回归结果
  • 你不知道的PCA及在R中的实现
  • LAASO的非癌症形态,LASSO的诊断分析
  • 一步到位?R代码构建列线图