- Estudia los factores que influencian la biodiversidad, la estructura de las comunidades y la distribución y abundancia de las especies a diferentes escalas temporales y espaciales
08 06 2016
Ecología de comunidades + filogenética:
# install.packages("picante") library(picante, quietly = T)
## This is vegan 2.3-5
#Preparar datos data(phylocom) phy <- phylocom$phylo comm <- phylocom$sample traits <- phylocom$traits
Árbol filogenético
prunedphy <- prune.sample(comm, phy) plot(prunedphy)
Matriz de especies x sitio
head(comm)
## sp1 sp10 sp11 sp12 sp13 sp14 sp15 sp17 sp18 sp19 sp2 sp20 sp21 ## clump1 1 0 0 0 0 0 0 0 0 0 1 0 0 ## clump2a 1 2 2 2 0 0 0 0 0 0 1 0 0 ## clump2b 1 0 0 0 0 0 0 2 2 2 1 2 0 ## clump4 1 1 0 0 0 0 0 2 2 0 1 0 0 ## even 1 0 0 0 1 0 0 1 0 0 0 0 1 ## random 0 0 0 1 0 4 2 3 0 0 1 0 0 ## sp22 sp24 sp25 sp26 sp29 sp3 sp4 sp5 sp6 sp7 sp8 sp9 ## clump1 0 0 0 0 0 1 1 1 1 1 1 0 ## clump2a 0 0 0 0 0 1 1 0 0 0 0 2 ## clump2b 0 0 0 0 0 1 1 0 0 0 0 0 ## clump4 0 0 2 2 0 0 0 0 0 0 0 1 ## even 0 0 1 0 1 0 0 1 0 0 0 1 ## random 1 2 0 0 0 0 0 2 0 0 0 0
Matriz de especies x sitio
par(mfrow = c(2, 3)) for (i in row.names(comm)) {plot(prunedphy, show.tip.label = FALSE, main = i) tiplabels(tip = which(prunedphy$tip.label %in% names(which(comm[i, ] >0))), pch = 19, cex = 2)}
Matriz de especies x sitio
Matriz de rasgos x especie
traits
## traitA traitB traitC traitD ## sp1 1 1 1 0 ## sp2 1 1 2 0 ## sp3 2 1 3 0 ## sp4 2 1 4 0 ## sp5 2 2 1 0 ## sp6 2 2 2 0 ## sp7 2 2 3 0 ## sp8 2 2 4 0 ## sp9 1 3 1 1 ## sp10 1 3 2 1 ## sp11 2 3 3 1 ## sp12 2 3 4 1 ## sp13 2 4 1 1 ## sp14 2 4 2 1 ## sp15 2 4 3 1 ## sp16 2 4 4 1 ## sp17 1 1 1 1 ## sp18 1 1 2 1 ## sp19 2 1 3 1 ## sp20 2 1 4 1 ## sp21 2 2 1 1 ## sp22 2 2 2 1 ## sp23 2 2 3 1 ## sp24 2 2 4 1 ## sp25 1 3 1 1 ## sp26 1 3 2 1 ## sp27 2 3 3 1 ## sp28 2 3 4 1 ## sp29 2 4 1 1 ## sp30 2 4 2 1 ## sp31 2 4 3 1 ## sp32 2 4 4 1
Matriz de rasgos x especie
par(mfrow = c(2, 2)) for (i in names(traits)) {plot(phy, show.tip.label = FALSE, main = i) tiplabels(pch = 22, col = traits[, i] + 1, bg = traits[, i] + 1, cex = 1.5)}
Diversidad filogenética de Faith
pd.result <- pd(comm, phy, include.root = TRUE) pd.result
## PD SR ## clump1 16 8 ## clump2a 17 8 ## clump2b 18 8 ## clump4 22 8 ## even 30 8 ## random 27 8
Distancia pareada promedio (MPD)
phydist <- cophenetic(prunedphy) ses.mpd(comm, phydist, null.model = "taxa.labels", runs = 99)
## ntaxa mpd.obs mpd.rand.mean mpd.rand.sd mpd.obs.rank mpd.obs.z ## clump1 8 4.857143 8.261183 0.4245636 1.0 -8.0177401 ## clump2a 8 6.000000 8.225830 0.3780619 1.0 -5.8874750 ## clump2b 8 7.142857 8.251082 0.3352415 1.0 -3.3057512 ## clump4 8 8.285714 8.233045 0.3592628 50.5 0.1466045 ## even 8 8.857143 8.251082 0.4047515 99.5 1.4973647 ## random 8 8.428571 8.234488 0.4312405 62.0 0.4500590 ## mpd.obs.p runs ## clump1 0.010 99 ## clump2a 0.010 99 ## clump2b 0.010 99 ## clump4 0.505 99 ## even 0.995 99 ## random 0.620 99
Distancia promedio al taxón mas cercano (MNTD)
ses.mntd(comm, phydist, null.model = "taxa.labels", runs = 99)
## ntaxa mntd.obs mntd.rand.mean mntd.rand.sd mntd.obs.rank ## clump1 8 2 4.666667 0.7071068 1.0 ## clump2a 8 2 4.588384 0.6158132 1.0 ## clump2b 8 2 4.520202 0.7615411 1.0 ## clump4 8 2 4.608586 0.6360369 1.0 ## even 8 6 4.648990 0.5953896 99.5 ## random 8 5 4.568182 0.5963518 73.5 ## mntd.obs.z mntd.obs.p runs ## clump1 -3.7712362 0.010 99 ## clump2a -4.2031962 0.010 99 ## clump2b -3.3093447 0.010 99 ## clump4 -4.1013124 0.010 99 ## even 2.2691194 0.995 99 ## random 0.7240998 0.735 99
Distancia promedio al taxón mas cercano (MNTD)
Riqueza, homogeneidad, y variabilidad (MNTD)
v <- psv(comm, phy, compute.var = F)[,1] e <- pse(comm, phy)[,1] r <- psr(comm, phy, compute.var = F) cbind(v,e,r)
## v e PSR SR ## clump1 0.4857143 0.4857143 3.885714 8 ## clump2a 0.6000000 0.5650794 4.800000 8 ## clump2b 0.7142857 0.6666667 5.714286 8 ## clump4 0.8285714 0.7936508 6.628571 8 ## even 0.8857143 0.8857143 7.085714 8 ## random 0.8428571 0.8125000 6.742857 8
Distancia promedio al taxón mas cercano (MNTD)
ses.mntd(comm, phydist, null.model = "taxa.labels", runs = 99)
## ntaxa mntd.obs mntd.rand.mean mntd.rand.sd mntd.obs.rank ## clump1 8 2 4.590909 0.6423158 1 ## clump2a 8 2 4.459596 0.6582551 1 ## clump2b 8 2 4.553030 0.6769461 1 ## clump4 8 2 4.608586 0.6577265 1 ## even 8 6 4.603535 0.6710201 100 ## random 8 5 4.648990 0.6841120 69 ## mntd.obs.z mntd.obs.p runs ## clump1 -4.0336998 0.01 99 ## clump2a -3.7365389 0.01 99 ## clump2b -3.7713937 0.01 99 ## clump4 -3.9660649 0.01 99 ## even 2.0811070 1.00 99 ## random 0.5130887 0.69 99
## clump1 clump2a clump2b clump4 even ## clump2a 6.12500 ## clump2b 7.12500 7.62500 ## clump4 8.06250 7.62500 7.62500 ## even 8.06250 8.06250 8.06250 7.87500 ## random 7.81250 7.68750 7.93750 8.12500 8.03125
Diversidad beta
#diversidad beta filogenética comdist.result <- comdist(comm, phydist) comdist.result
## clump1 clump2a clump2b clump4 even ## clump2a 6.12500 ## clump2b 7.12500 7.62500 ## clump4 8.06250 7.62500 7.62500 ## even 8.06250 8.06250 8.06250 7.87500 ## random 7.81250 7.68750 7.93750 8.12500 8.03125
Diversidad beta
#install.packages("cluster") library(cluster) #calcular conglomerados comdist.clusters <- hclust(comdist.result) # volver a valores graficos por defecto dev.off() #graficar plot(comdist.clusters)
Diversidad beta
Diversidad beta
Diversidad beta
UniFrac:
## clump1 clump2a clump2b clump4 even ## clump2a 0.6250000 ## clump2b 0.6400000 0.6538462 ## clump4 0.8125000 0.6071429 0.5714286 ## even 0.7894737 0.7631579 0.7368421 0.4705882 ## random 0.7714286 0.7428571 0.7142857 0.6756757 0.5384615
Rasgos funcionales:
Señal filogenética para inferir el efecto filogenético en la distribución del rasgo en las comunidades:
traits <- traits[phy$tip.label, ] multiPhylosignal(traits, phy)
## K PIC.variance.obs PIC.variance.rnd.mean PIC.variance.P ## traitA 0.8905609 0.05396825 0.1246277 0.002 ## traitB 2.9340184 0.10920635 0.8243328 0.001 ## traitC 0.5149502 0.62222222 0.8403226 0.037 ## traitD 4.3536696 0.01103943 0.1260077 0.001 ## PIC.variance.Z ## traitA -3.504455 ## traitB -5.270148 ## traitC -1.680457 ## traitD -5.996633
Señal filogenética para inferir el efecto filogenético en la distribución del rasgo en las comunidades:
Asociación entre rasgos funcionales y diversidad
#calcular diversidad beta betadiv.comm <- comdist(comm, phydist) #calcular similitud funcional entre comunidades traits <- traits[rownames(traits) %in% colnames(comm),] traitdist.comm <- comdist(comm, dist(traits)) #regression sobre matrices de distancia mod.trait <- lm(traitdist.comm ~ betadiv.comm)
summary(mod.trait)
## ## Call: ## lm(formula = traitdist.comm ~ betadiv.comm) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.48927 -0.08739 0.00996 0.13018 0.34080 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 0.4197 0.8473 0.495 0.6286 ## betadiv.comm 0.2333 0.1095 2.131 0.0528 . ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.2116 on 13 degrees of freedom ## Multiple R-squared: 0.2589, Adjusted R-squared: 0.2019 ## F-statistic: 4.541 on 1 and 13 DF, p-value: 0.05276
Asociación entre rasgos funcionales, diversidad y otras características de la comunidad
#simular datos ambientales env <- replicate(10, rnorm(nrow(comm),mean = 10, sd = 3)) #regression sobre matrices de distancia mod.env.trait <- lm(traitdist.comm ~ betadiv.comm + dist(env))
summary(mod.env.trait)
## ## Call: ## lm(formula = traitdist.comm ~ betadiv.comm + dist(env)) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.44363 -0.11740 0.03734 0.11827 0.36359 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 0.54539 0.88458 0.617 0.5490 ## betadiv.comm 0.26313 0.12003 2.192 0.0488 * ## dist(env) -0.02398 0.03511 -0.683 0.5075 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.2161 on 12 degrees of freedom ## Multiple R-squared: 0.2866, Adjusted R-squared: 0.1677 ## F-statistic: 2.411 on 2 and 12 DF, p-value: 0.1318
Estime la señal filogenética para 1) rasgos que han evolucionado por movimiento Browniano y 2) rasgos que han evolucionado bajo el modelo Ornstein-Uhlenbeck (OU) (Debe usar simulación de rasgos similares con la funcion fastBM de phytools, ver clase "Modelos evolutivos").
Estime la relación entre diversidad beta y diversidad funcional para los dos juegos de rasgos simulados en 1.