R语言:共进化分析软件ParaFit和PACo

R语言:共进化分析软件ParaFit和PACo


今天介绍两个基于R语言的共进化分析软件ParaFit和PACo,其中,ParaFit来自于ape包,PACo本身就是一个软件包。所以在分析之前要先下载ape和PACo这两个软件包。另外,共进化分析所用到的cophenetic(用于计算谱系距离)和导入.tre数据的功能也在ape包里,所以不用额外下载。


共进化分析所需的三个文件为:宿主之间的谱系距离.csv、寄生物之间的谱系距离.csv和寄生物-宿主之间的关系.csv(0/1文件),我在这里以冠状病毒和蝙蝠宿主的共进化关系为例进行演示。


ParaFit


1.打开R软件,首先设置工作空间,然后下载软件,代码如下:)


setwd("/Users/barb/Desktop/")#设置工作空间,路径为我自己的桌面#
install.packages("ape")#下载ape包#
install.packages("paco")#下载PACo包#


2. 首先,获取宿主和寄生物的谱系距离,需要将先前使用RaxML获得的.tre文件导入R软件中,并使用ape中的cophenetic功能计算谱系距离,代码如下:


Library(ape).#加载ape软件包#
CoV=read.tree("CoV.tre")#导入病毒.tre文件并赋名为CoV#
Host=read.tree("Host.tre")#导入宿主.tre文件并赋名为Host#
pnCoV=cophenetic(CoV)#使用cophenetic计算病毒的谱系距离,赋名为pnCoV#
pnHost=cophenetic(Host)#使用cophenetic计算宿主的谱系距离,赋名为pnHost#
write.csv(pnCoV,"pnCoV.csv")#输出病毒的谱系距离并写入工作空间#
write.csv(pnHost,"pnHost.csv")#输出宿主的谱系距离并写入工作空间#


于是可以在工作空间获得两个以.csv结尾的文件,它们分别是冠状病毒和蝙蝠的谱系距离。


R语言:共进化分析软件ParaFit和PACo


文件的基本的内容的基本形式如下


R语言:共进化分析软件ParaFit和PACo


3.接下来要准备一个Host-parasite(HP)文件将宿主和寄生物(冠状病毒)关联起来,这要靠手动编辑。首行为蝙蝠物种名,首列为病毒名(按照说明书说的)


R语言:共进化分析软件ParaFit和PACo


当某物种携带某种病毒时,在相应的表格处填1,没有则为0。注意:这里的名称要跟谱系距离文件里的名称一一对应,不能有误,否则关联不上,编辑好后以.csv格式保存


R语言:共进化分析软件ParaFit和PACo


4. 接下来将这三个文件导入R软件中进行计算,代码如下:


p=read.csv("pnCoV.csv",sep=",",header = T, row.names=1) #将冠状病毒的谱系距离文件导入R中,sep=","为用逗号作为分隔符,row.names=1表示第一行为行名称#
h=read.csv("pnHost.csv",sep=",",header = T, row.names=1) #同理导入宿主的谱系距离#
hp=read.csv("HP-CoV.csv",sep=",",header = T, row.names=1) #同理导入关联文件#


5. 由于ParaFit要求导入的文件应为矩阵格式,因此我们 在执行分析命令前要把导入的文件用as.matrix() 进行转换,在用t()命令倒置HP矩阵,代码如下:


mp=as.matrix(p) #把冠状病毒的谱系距离转换成矩阵并赋名为mp#
mh=as.matrix(h) #把宿主的谱系距离转换成矩阵并赋名为mh#
mhp=as.matrix(hp)。#关联文件转换成矩阵并赋名为mhp#
tmhp=t(mhp) #对HP文件进行倒置#


6.接下来执行ParaFit的分析功能,在ape说明书的178页有ParaFit的说明和案例。分析代码如下:


res=parafit(mh,mp,tmhp,nperm =999, test.links = T,correction ="lingoes") #对宿主、病毒的谱系距离矩阵以及HP文件进行共进化分析,结果赋名为res#


如果不想倒置HP文件,代码可以改为如下:


res=parafit(mp,mh,mhp,nperm =999, test.links = T,correction ="lingoes")


# nperm 为指定置换次数,test.links=T表示计算寄生物-宿主共进化关系的p值,correction = "lingoes"表示数据矫正方法为"lingoes"#


7.等待片刻之后运行res可以显示结果,当p<0.05时,共进化关系显著


R语言:共进化分析软件ParaFit和PACo


8.用sink()命令保存结果,代码如下:


sink("res+nCoV.txt")#引号中为要保存的文件名#
res#要保存的分析结果#
sink()


PACo

PACo的共进化分析需要的同样是上面说的那三个文件(宿主的谱系距离.csv、冠状病毒谱系距离.csv、宿主-病毒关联文件.csv),导入文件后同样需要把文件转化为矩阵格式。


注意:如果宿主、寄生物名称太复杂,PACo运行时可能会无法与HP文件关联,我在这里把宿主名和冠状病毒的名字都改成了基因登陆号。


R语言:共进化分析软件ParaFit和PACo


1. 加载PACo并导入文件。导入的方法和上面一样。代码如下:


h=read.csv("pnHost.csv",sep=",",header=T,row.names =1). #导入宿主谱系距离#
p=read.csv("pnCoV.csv",sep=",",header=T,row.names =1) #导入冠状病毒谱系距离#
hp=read.csv("HP.csv",sep=",",header=T,row.names =1) #导入关联文件#


2. 用命令as.matrix()将导入的文件转位矩阵格式,再用命令t()倒置HP矩阵,代码如下:


mh=as.matrix(h) #将宿主谱系距离转化为矩阵格式#
mp=as.matrix(p) #将病毒谱系距离转化为矩阵格式#
mhp=as.matrix(hp) #将HP文件转化为矩阵格式#
tmhp=t(mhp) #倒置hp矩阵#


如果你不想倒置hp矩阵也可以在执行PACo分析时调换mh和mp位置


3. 执行PACo共进化分析,代码如下


D <- prepare_paco_data(mh, mp, tmhp)#将PACo所需的数据赋给D#


如果不倒置HP矩阵,可以直接调换mh和mp的位置,第一行代码可以改为:
D <- prepare_paco_data(mp, mh, mhp)


D <- add_pcoord(D)#将宿主、寄生物的谱系距离矩阵转化为主坐标赋给D#
D <- PACo(D, nperm=1000, seed=42, method="r0")#执行PACo共进化分析并将结果赋给D#


4. 执行“D”,可以查看PACo共进化分析结果,当p<0.05时,共进化关系显著


R语言:共进化分析软件ParaFit和PACo


5. 用sink()将结果保存为.txt文件即可,方法参考ParaFit教程中的步骤8。





end

注:本推文未经许可禁止转载。


更多精彩内容请进入“科研日精进”公众号查看


阅读推荐:
  • 工具篇丨用R绘制基因组共线性图是这么做的?

  • 工具篇丨利用Rseqcombo程序包绘制DNA序列变异信息

  • 工具篇丨Momocs:用R进行表型变化分析

  • 课程篇丨18天直播课:R语言统计编程与科研发表级绘图




展开阅读全文

页面更新:2024-05-18

标签:寄生物   谱系   宿主   软件包   矩阵   命令   距离   名称   病毒   语言   关系   代码   格式   冠状病毒   文件   工作   软件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top