#################################################################################### # SUPPLEMENTARY R CODE # The evolution of host-symbiont dependence # Fisher RM, Henry LM, Cornwallis CK, Kiers ET & West SA #################################################################################### # PHYLOGENIES # read in symbiont phylogeny symbiont <- read.nexus("symbiont.nex") # read in host phylogeny host <- read.nexus("host.nex") # DATA symbiontdata <-read.csv("/Users/robertafisher/Desktop/Symbiosis/symbiontdataset.csv") hostdata <- read.csv("/Users/robertafisher/Desktop/Symbiosis/hostdataset.csv") #################################################################################### # ANALYSIS 1 #################################################################################### # subset the data symbiontdata <- subset(symbiontdata, transmissioncat!='NA' & animal!='NA' & repromanipulate=='no' & type!='NA' & route!='NA') hostdata <- subset(hostdata, transmissioncat!='NA' & animal!='NA' & repromanipulate=='no' & type!='NA' & route!='NA') # Multiresponse model with symbiont phylogeny prior1a <- list(R = list(R1=list(V=diag(2), nu=1.002)), G = list(G1=list(V=diag(2), nu=1.002), G2=list(V=diag(2), nu=1.002), G3=list(V=diag(2), nu=1.002))) model1a <- MCMCglmm(cbind(genomespecific, fitnessdrop) ~ trait:transmissioncat-1 + trait:type + trait:route, family = c("gaussian", "gaussian"), pedigree=symbiont, random = ~us(trait):animal + idh(trait):study + idh(trait):symbiont, rcov = ~us(trait):units, mev = 1/symbiontdata$N2, nitt=5500000, burnin=500000, thin=5000, prior = prior1a, data = symbiontdata, verbose=FALSE) summary(model1a) #estimating difference in response variables (can do the same for fitness drop) posterior.mode(model1a$Sol[,'traitgenomespecific:transmissioncatHT']-model1a$Sol[,'traitgenomespecific:transmissioncatVT']) HPDinterval(model1a$Sol[,'traitgenomespecific:transmissioncatHT']-model1a$Sol[,'traitgenomespecific:transmissioncatVT']) #Equivalent of p value table(model1a$Sol[,'traitgenomespecific:transmissioncatHT']model2a$VCV[,'at.level(transmissioncat, "VT"):traitfitnessdrop:at.level(transmissioncat, "VT"):traitgenomespecific.animal'])/1000 posterior.mode(model2a$VCV[,'at.level(transmissioncat, "HT"):traitfitnessdrop:at.level(transmissioncat, "HT"):traitgenomespecific.animal']) HPDinterval(model2a$VCV[,'at.level(transmissioncat, "HT"):traitfitnessdrop:at.level(transmissioncat, "HT"):traitgenomespecific.animal']) # Multiresponse model with transmission specific correlations between genome size and fitness drop with host phylogeny prior2b <- list(R = list(R =list(V=diag(2), nu=1.002)), G = list(G1=list(V=diag(2), nu=1.002), G2=list(V=diag(2), nu=1.002), G3=list(V=diag(2), nu=1.002), G4=list(V=diag(2), nu=1.002))) # model model2b <- MCMCglmm(cbind(genomespecific, fitnessdrop) ~ trait:transmissioncat-1 + trait:route + trait:type, family = c("gaussian", "gaussian"), pedigree=host, random = ~us(at.level(transmissioncat,'HT'):trait):animal + us(at.level(transmissioncat,'VT'):trait):animal + idh(trait):study +idh(trait):host, mev = 1/hostdata$N2 rcov = ~us(trait):units, nitt=5500000, burnin=500000, thin=5000, prior = prior2b, data = hostdata, verbose=FALSE) summary(model2b)