08 06 2016

Ecologia de comunidades

  • 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

Ecologia filogenética de comunidades (EFC)

Ecología de comunidades + filogenética:

  • Utiliza las relaciones históricas (filogenéticas) de las especies para entender como se han estructurado y organizado las comunidades

Diversidad filogenética

  • Ecología de comunidades y conservación necesitan medir la diversidad
  • Número de especies ha sido la medida mas común
  • Otras dimensiónes de la diversidad pueden proveer una idea mas completa del ensamblaje de las comunidades:
    • Diversidad filogenética
    • Diversidad funcional

Datos de EFC en R

# 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

Datos de EFC en R

Árbol filogenético

prunedphy <- prune.sample(comm, phy)

plot(prunedphy)

Datos de EFC en R

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

Datos de EFC en R

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)}

Datos de EFC en R

Matriz de especies x sitio

Datos de EFC en R

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

Datos de EFC en R

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)}

Datos de EFC en R

Diversidad filogenética

Diversidad filogenética de Faith

  • Suma de los largos de rama de las especies en la comunidad
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

Diversidad filogenética

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

Diversidad filogenética

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

Diversidad filogenética

Distancia promedio al taxón mas cercano (MNTD)

Diversidad filogenética

Riqueza, homogeneidad, y variabilidad (MNTD)

  • En base a modelo de evolución por movimiento Browniano
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

Diversidad filogenética

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 filogenética

Diversidad beta

  • Cuantifica la diversidad local en relación a la regional o en relación a otras comunidades
  • Define que tan única es una comunidad con respecto a otras
#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 filogenética

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 filogenética

Diversidad beta

Diversidad filogenética

Diversidad beta

Diversidad filogenética

Diversidad beta

UniFrac:

  • Mide la fracción de especies compartidas con respecto al total de especies
##            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

Dimensión filogenética de rasgos funcionales

Rasgos funcionales:

  • Rasgos que reflejan aspectos relevantes de la ecofisiología de las especies (e.g. área foliar, altura, densidad de la madera)
  • Intentan definir a las especies en base al "rol" que juegan en la comunidad (sus requerimientos e interacciones)

Dimensión filogenética de 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

Dimensión filogenética de rasgos funcionales

Señal filogenética para inferir el efecto filogenético en la distribución del rasgo en las comunidades:

Dimensión filogenética de rasgos funcionales

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)

Dimensión filogenética de rasgos funcionales

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

Dimensión filogenética de rasgos funcionales

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))

Dimensión filogenética de rasgos funcionales

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

Práctica:

  1. 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").

  2. Estime la relación entre diversidad beta y diversidad funcional para los dos juegos de rasgos simulados en 1.