Este é o código para geração dos IPMs, para as duas filogenias e para o teste de Mantel. Aqui também encontram-se os arquivos necessários para gerar o output do código, e a área de trabalho após rodar o código (um pouco demorado).
Os pacotes necessários são:
função para criação dos objetos de sobrevivencia modificada
Modelo nulo para Mantel - Harmon & Glor
Teste de Mantel com o modelo nulo acima incorporado
Área de trabalho gerada a partir do código abaixo - Parte 1
Área de trabalho gerada a partir do código abaixo - Parte 2 - retirar ".pdf"
Área de trabalho gerada a partir do código abaixo - Parte 3 - retirar ".pdf"
Área de trabalho gerada a partir do código abaixo - Parte 4 - retirar ".pdf"
setwd("C:/Users/Gabriel/Documents/Mestrado/Analises/Cortes")
peic=read.table("peicDez2012_modif.txt", header=T, sep="\t", as.is=TRUE)
#setwd("C:/Users/Gabriel/Documents/Mestrado/Analises/IPM")
#lista de espécies com recrutas, para poder ter estimativa de fecundidade
recrut.sp=sort(unique(peic[peic$status_05=="R", "specie"]))
adult.censo1=sort(unique(peic[peic$status_05=="A" & peic$dbh_04>50, "specie"]))
listasp=sort(recrut.sp[which(recrut.sp %in% adult.censo1)])#108 especies
#retirando as especies q nao estao nas filogenias
listasp=listasp[-which(listasp=="Annona neosericea")]
listasp=listasp[-which(listasp=="Malouetia cestroides")]
listasp=listasp[-which(listasp=="Bactris setosa")]
listasp=listasp[-which(listasp=="Croton sphaerogynus")]
listasp=listasp[-which(listasp=="Nectandra oppositifolia")]
listasp=listasp[-which(listasp=="Persea willdenovii")]
listasp=listasp[-which(listasp=="Tibouchina trichopoda")]
listasp=listasp[-which(listasp=="Cabralea canjerana")]
listasp=listasp[-which(listasp=="Ficus eximia")]
listasp=listasp[-which(listasp=="Myrcia glabra")]
listasp=listasp[-which(listasp=="Myrceugenia myrcioides")]
listasp=listasp[-which(listasp=="Ocotea dispersa")]
listasp=listasp[-which(listasp=="Psychotria mapourioides")]
listasp=listasp[-which(listasp=="Ecclinusa ramiflora")]
listasp=listasp[-which(listasp=="Symplocos laxiflora")]
#estimando a fecundidade
fecundity=data.frame(listasp)
for(i in 1:length(listasp))
{
fecundity[i,"N offspring50"]=length(peic[peic$status_05=="R" & peic$specie==listasp[i] & peic$dbh_09>50, "arv"])
fecundity[i,"A"]=length(peic[peic$status_05=="A" & peic$specie==listasp[i] & peic$dbh_04>50, "arv"])
fecundity[i,"AS"]=length(peic[peic$status_05=="AS" & peic$specie==listasp[i] & peic$dbh_09>50, "arv"])
}
fecundity[,"N adults"]=fecundity[,"A"]+fecundity[,"AS"]
fecundity[,"fec50"]=fecundity[,"N offspring50"]/fecundity[,"N adults"]
#selecionando colunas que interessam
peic.select=peic[peic$specie %in% listasp, c("specie","dbh_04", "dbh_09", "status_05", "status09")]
#criando a coluna survival
peic.select[,"surv"]=NA
peic.select[peic.select$status_05!="R" & peic.select$status09=="A","surv"]=1
peic.select[peic.select$status_05!="R" & peic.select$status09=="AS","surv"]=1
peic.select[peic.select$status09=="D","surv"]=0
peic.select=peic.select[peic.select$status09!="E" & peic.select$status09!="NE",]
###MODELO DE PROJECAO INTEGRAL
#criando as matrizes IPM
library(IPMpack)
IPMdata=peic.select[,c("specie","dbh_04","dbh_09","surv")]
names(IPMdata)=c("specie","size","sizeNext","surv")
IPMdata[is.na(IPMdata$size),"surv"]=NA
IPMdata[,"fec"]=NA
IPMdata[,"stage"]="continuous"
IPMdata[is.na(IPMdata$size),"stage"]=NA
IPMdata[,"stageNext"]="continuous"
IPMdata[is.na(IPMdata$sizeNext),"stageNext"]=NA
head(IPMdata)
IPMdata[,"size"]=as.numeric(IPMdata[,"size"])
IPMdata[,"stage"]=as.factor(IPMdata[,"stage"])
IPMdata[,"stageNext"]=as.factor(IPMdata[,"stageNext"])
#checando o numero de individuos para cada especie
numero=data.frame(specie=listasp)
for(i in 1:length(listasp))
{
numero[i,"n"]=nrow(IPMdata[IPMdata$specie==listasp[i] & !is.na(IPMdata$size) & !is.na(IPMdata$sizeNext),c("size","sizeNext")])
}
#espécies com n<5
excluir5=numero[numero$n<5,"specie"]#especies que vão sair de listasp
listasp5=listasp[-which(listasp %in% excluir5)]
#espécies com n<20
#excluir20=numero[numero$n<20,"specie"]#especies que vão sair de listasp
#listasp20=listasp[-which(listasp %in% excluir20)]
#espécies com n<50
#excluir50=numero[numero$n<50,"specie"]#especies que vão sair de listasp
#listasp50=listasp[-which(listasp %in% excluir50)]
#espécies com n<100
#excluir100=numero[numero$n<100,"specie"]#especies que vão sair de listasp
#listasp100=listasp[-which(listasp %in% excluir100)]
################################################################
################################################################
listasp=listasp5
#Crescimento
gr=list()
for(i in 1:length(listasp))
{
gr[[i]] = makeGrowthObj(IPMdata[IPMdata$specie==listasp[i],])
}
#Sobrevivencia
#precisa aumentar as iteracoes do glm para os modelos convergirem
#portanto, modifiquei a funçao makeSurvObj:
source("makeSurvObj1.r")
sv=list()
for(i in 1:length(listasp))
{
sv[[i]] = makeSurvObj1(IPMdata[IPMdata$specie==listasp[i],], explanatoryVariables = "size+size2")
}
##Create P Matrices
#definindo os tamanhos minimos e maximos das matrizes P
tamanho=data.frame(specie=listasp)
for(i in 1:length(listasp))
{
tamanho[i,"min"]=min(IPMdata[IPMdata$specie==listasp[i],"sizeNext"], na.rm=TRUE)
tamanho[i,"max"]=max(IPMdata[IPMdata$specie==listasp[i],"sizeNext"], na.rm=TRUE)
}
Pmatrix=list()#uma lista de matrizes com os mesmos parametros para todas as especies
for(i in 1:length(listasp))
{
Pmatrix[[i]] <- createIPMPmatrix(nBigMatrix = 100,minSize = tamanho[i,"min"]*0.9 , maxSize=tamanho[i,"max"]*1.1, growObj = gr[[i]], survObj = sv[[i]],correction = "constant")
}
#Fecundidade
IPMdata[, "fec"]=0
for(i in 1:length(listasp))
{
IPMdata[which(IPMdata$size>=50 & IPMdata$surv==1 & IPMdata$specie==listasp[i]), "fec"]=fecundity[i, "fec50"]
}
head(IPMdata)
fv50=list()
for(i in 1:length(listasp))
{
fv50[[i]] = makeFecObj(IPMdata[IPMdata$specie==listasp[i],])
}
Fmatrix50=list()
for(i in 1:length(listasp))
{
Fmatrix50[[i]] <- createIPMFmatrix(nBigMatrix = 100, tamanho[i,"min"]*0.9 ,maxSize = tamanho[i,"max"]*1.1 ,fecObj = fv50[[i]])
}
IPM50=list()
for(i in 1:length(listasp))
{
IPM50[[i]]=Pmatrix[[i]]+Fmatrix50[[i]]
}
lambdas=data.frame(specie=listasp)
for(i in 1:length(listasp))
{
lambdas[i,"lambda.fec50"]=eigen(IPM50[[i]])$value[1]
}
#sobrevivencia em cada classe s (sigma)
s=list()
for(p in 1:length(listasp))
{
s[[p]]=numeric(0)
for(j in 1:ncol(Pmatrix[[p]]))
{
s[[p]][j]=sum(Pmatrix[[p]][,j])
}
}
#crescimento positivo (da classe j para classe i) e crescimento negativo (classe i para classe j)
gr=list()
for(p in 1:length(listasp))
{
gr[[p]]=Pmatrix[[p]]/s[[p]]
}
#crescimento positivo apenas (gama ij)
gij=list()
for(p in 1:length(listasp))
{
gij[[p]]=gr[[p]]
gij[[p]][upper.tri(gij[[p]])]=0
diag(gij[[p]])=0
}
#crescimento negativo apenas (ro ij)
rij=list()
for(p in 1:length(listasp))
{
rij[[p]]=gr[[p]]
rij[[p]][lower.tri(rij[[p]])]=0
diag(rij[[p]])=0
}
#fecundidade individual de j para i (fi ij)
fij50=list()
for(p in 1:length(listasp))
{
fij50[[p]]=Fmatrix50[[p]]/s[[p]]
}
#Survival elasticity
Es50=list()
for(p in 1:length(listasp))
{
Es50[[p]]=(s[[p]]/lambdas[p,"lambda.fec50"])*(diag(sens(IPM50[[p]]))*(1-(apply((gij[[p]]), MARGIN=1, FUN=sum))-(apply((rij[[p]]), MARGIN=1, FUN=sum))))+apply(sens(IPM50[[p]])*gij[[p]], MARGIN=1, FUN=sum)+apply(sens(IPM50[[p]])*rij[[p]], MARGIN=1, FUN=sum)+apply(sens(IPM50[[p]])*fij50[[p]], MARGIN=1, FUN=sum)
}
#Positive growth elasticity
Eg50=list()
for(p in 1:length(listasp))
{
Eg50[[p]]=numeric(0)
Eg50[[p]]=(gij[[p]]/lambdas[p,"lambda.fec50"])*((diag(sens(IPM50[[p]]))*(-s[[p]]))+ ( sens(IPM50[[p]])* s[[p]] ))
}
#negative growth elasticities
Er50=list()
for(p in 1:length(listasp))
{
Er50[[p]]=numeric(0)
Er50[[p]]=(rij[[p]]/lambdas[p,"lambda.fec50"])*((diag(sens(IPM50[[p]]))*(-s[[p]]))+ ( sens(IPM50[[p]])* s[[p]] ))
}
#fecundity elasticities
Ef50=list()
for(p in 1:length(listasp))
{
Ef50[[p]]=numeric(0)
Ef50[[p]]=(fij50[[p]]/lambdas[p,"lambda.fec50"])*( sens(IPM50[[p]])* s[[p]] )
}
#Elasticidades das taxas vitais
E50=numeric(0)
S50=numeric(0)
G50=numeric(0)
F50=numeric(0)
for(p in 1:length(listasp))
{
E50[p]=sum(abs(Es50[[p]]))+sum(abs(Eg50[[p]]))+sum(abs(Er50[[p]]))+sum(abs(Ef50[[p]]))
S50[p]=sum(abs(Es50[[p]]))/E50[p]
G50[p]=(sum(abs(Eg50[[p]]))+sum(abs(Er50[[p]])))/E50[p]
F50[p]=sum(abs(Ef50[[p]]))/E50[p]
}
S50=as.numeric(S50)
G50=as.numeric(G50)
F50=as.numeric(F50)
#distancias ecologicas
dist.f50=as.matrix(dist(data.frame(F50,S50,G50)))
colnames(dist.f50)=listasp
rownames(dist.f50)=listasp
###############
## FILOGENIA ##
###############
library(ape)
##Arvore Wikstrom
WIK="((((((((Rubiaceae_Cordiera_myrciifolia:71,Rubiaceae_Amaioua_intermedia:71,Rubiaceae_Posoqueria_latifolia:71)Rubiaceae:36,((Bignoniaceae_Jacaranda_puberula:38,(Bignoniaceae_Tabebuia_alba:38,Bignoniaceae_Tabebuia_cassinoides:38)Tabebuia:0)Bignoniaceae:25,Oleaceae_Chionanthus_filiformis:63)Lamiales:44)EuasteridsI:5,(Araliaceae_Schefflera_angustissima:107,(Aquifoliaceae_Ilex_dumosa:49,Aquifoliaceae_Ilex_pseudobuxus:49,Aquifoliaceae_Ilex_theezans:49)Aquifoliaceae:58)EuasteridsII:5)25:5,((Primulaceae_Cybianthus_brasiliensis:15,(Primulaceae_Myrsine_guianensis:15,Primulaceae_Myrsine_umbellata:15,Primulaceae_Myrsine_venosa:15)Rapanea:0)Primulaceae:99,((Styracaceae_Styrax_glabratus:67,((Sapotaceae_Manilkara_subsericea:54,Sapotaceae_Pouteria_beaurepairei:54)Sapotaceae:0,(Theaceae_Laplacea_fructicosa:54,Pentaphylacaceae_Ternstroemia_brasiliensis:54)Theaceae:0)23:13)22:7,Clethraceae_Clethra_scabra:74)18:40)Ericales:3)Asterids:5,(Nyctaginaceae_Guapira_opposita:113,Olacaceae_Heisteria_silvianii:113)15:9)14:33,((Thymelaeaceae_Daphnopsis_racemosa:107,(Anacardiaceae_Tapirira_guianensis:61,(Sapindaceae_Matayba_guianensis:56,Meliaceae_Guarea_macrophylla:56)37:5)Sapindales:46)35:14,(((Melastomataceae_Miconia_chartacea:41,Melastomataceae_Miconia_cubatanensis:41,Melastomataceae_Miconia_saldanhaei:41)Melastomataceae:47,(Myrtaceae_Blepharocalyx_salicifolius:68,Myrtaceae_Calyptranthes_concinna:68,(Myrtaceae_Eugenia_neoglomerata:68,Myrtaceae_Eugenia_stigmatosa:68,Myrtaceae_Eugenia_sulcata:68,Myrtaceae_Eugenia_umbelliflora:68)Eugenia:0,(Myrtaceae_Myrcia_hebepetala:68,Myrtaceae_Myrcia_ilheosensis:68,Myrtaceae_Myrcia_brasiliensis:68)Gomidesia:0,Myrtaceae_Marlierea_racemosa:68,(Myrtaceae_Myrcia_pulchra:68,Myrtaceae_Myrcia_pubipetala:68,Myrtaceae_Myrcia_insularis:68,Myrtaceae_Myrcia_multiflora:68,Myrtaceae_Myrcia_racemosa:68,Myrtaceae_Myrcia_splendens:68,Myrtaceae_Myrcia_sp.1:68)Myrcia:0,Myrtaceae_Neomitranthes_glomerata:68,Myrtaceae_Pimenta_pseudocaryophyllus:68,Myrtaceae_Psidium_cattleyanum:68,Myrtaceae_Siphoneugena_guilfoyleiana:68)Myrtaceae:20)Myrtales:26,(((Urticaceae_Cecropia_pachystachya:76,Urticaceae_Coussapoa_microcarpa:76)Urticaceae:3,((Fabaceae_Abarema_brachystachya:56,Fabaceae_Abarema_langsdorffii:56)Abarema:0,Fabaceae_Andira_anthelmia:56,Fabaceae_Albizia_pedicellaris:56,Fabaceae_Hymenolobium_janeirense:56,Fabaceae_Ormosia_arborea:56)Fabaceae:23)Fabales:22,(Celastraceae_Maytenus_robusta:94,(((Euphorbiaceae_Alchornea_triplinervia:69,Euphorbiaceae_Aparisthmium_cordatum:69,Euphorbiaceae_Maprounea_guianensis:69,Peraceae_Pera_glabrata:69)Euphorbiaceae:12,(Chrysobalanaceae_Hirtella_hebeclada:78,(((Clusiaceae_Calophyllum_brasiliense:45,Clusiaceae_Clusia_criuva:45,Clusiaceae_Garcinia_gardneriana:45)Clusiaceae:23,Malpighiaceae_Byrsonima_ligustrifolia:68)52:9,(Humiriaceae_Humiriastrum_dentatum:76,(Ochnaceae_Ouratea_parviflora:74,Erythroxylaceae_Erythroxylum_amplifolium:74)55:2)53:1)51:1)50:3)Malpighiales:10,(Cunoniaceae_Weinmannia_paulliniifolia:77,Elaeocarpaceae_Sloanea_guianensis:77)Oxalidales:14)47:3)46:7)EurosidsI:13)17:7)Rosids:34)Eudicots:24,(((((Lauraceae_Aiouea_saligna:34,Lauraceae_Aniba_viridis:34,Lauraceae_Endlicheria_paniculata:34,Lauraceae_Nectandra_grandiflora:34,(Lauraceae_Ocotea_aciphylla:34,Lauraceae_Ocotea_dispersa:34,Lauraceae_Ocotea_pulchella:34,Lauraceae_Ocotea_pulchra:34,Lauraceae_Ocotea_venulosa:34)Ocotea:0)Lauraceae:51,(Monimiaceae_Mollinedia_boracensis:71,Monimiaceae_Mollinedia_schottiana:71)Monimiaceae:14)Laurales:57,(Annonaceae_Guatteria_australis:26,(Annonaceae_Xylopia_brasiliensis:26,Annonaceae_Xylopia_langsdorffiana:26)Xylopia:0)Annonaceae:116)5:12,(Arecaceae_Astrocaryum_aculeatissimum:73,Arecaceae_Euterpe_edulis:73,Arecaceae_Geonoma_schottiana:73,Arecaceae_Syagrus_romanzoffiana:73)Arecaceae:81)3:4,Chloranthaceae_Hedyosmum_brasiliense:158)Magnoliids:21)Angiosperms:189,Podocarpaceae_Podocarpus_sellowii:368)Seed Plants;"
wiktree= read.tree(text=WIK)
#retirando da arvore especies que nao possuem demografia
listasp1=character(0)
for(i in 1:length(listasp))
{
listasp1[i]=paste(sort(unique(peic[peic$specie==listasp[i], "Familia"])),"_",sort(unique(peic[peic$specie==listasp[i], "genero"]))[1],"_",sort(unique(peic[peic$specie==listasp[i], "epitsp"]))[1], sep="")
}
listaspA=listasp1
remvA=wiktree$tip.label[-which(wiktree$tip.label %in% listaspA)]
wiktree=drop.tip(wiktree,remvA)
##Arvore molecular
load("C:\\Users\\Gabriel\\Documents\\Mestrado\\Analises\\Filogenia\\Alexandre\\newtrees.Rdata")
#adequar os nomes
tree_chrono$tip.label[tree_chrono$tip.label=="Aquifoliaceae_Ilex_amara"]="Aquifoliaceae_Ilex_dumosa"
tree_chrono$tip.label[tree_chrono$tip.label=="Cecropiaceae_Cecropia_pachystachya"]="Urticaceae_Cecropia_pachystachya"
tree_chrono$tip.label[tree_chrono$tip.label=="Cecropiaceae_Coussapoa_microcarpa"]="Urticaceae_Coussapoa_microcarpa"
tree_chrono$tip.label[tree_chrono$tip.label=="Euphorbiaceae_Pera_glabrata_NB11"]="Peraceae_Pera_glabrata_NB11"
tree_chrono$tip.label[tree_chrono$tip.label=="Fabaceae_Balizia_pedicelaris"]="Fabaceae_Albizia_pedicellaris"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrsinaceae_Cybianthus_peruvianus"]="Primulaceae_Cybianthus_brasiliensis"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrsinaceae_Rapanea_ferruginea"]="Primulaceae_Myrsine_ferruginea"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrsinaceae_Rapanea_guianensis"]="Primulaceae_Myrsine_guianensis"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrsinaceae_Rapanea_umbellata"]="Primulaceae_Myrsine_umbellata"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrsinaceae_Rapanea_venosa"]="Primulaceae_Myrsine_venosa"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrtaceae_Gomidesia_affinis"]="Myrtaceae_Myrcia_hebepetala"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrtaceae_Gomidesia_fenzliana"]="Myrtaceae_Myrcia_ilheosensis"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrtaceae_Gomidesia_schaueriana"]="Myrtaceae_Myrcia_brasiliensis"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrtaceae_Myrcia_rostrata"]="Myrtaceae_Myrcia_splendens"
tree_chrono$tip.label[tree_chrono$tip.label=="Myrtaceae_Myrcia_sp"]="Myrtaceae_Myrcia_sp.1"
tree_chrono$tip.label[tree_chrono$tip.label=="Podocarpus_sellowii"]="Podocarpaceae_Podocarpus_sellowii"
tree_chrono$tip.label[tree_chrono$tip.label=="Rubiaceae_Alibertia_myrciifolia"]="Rubiaceae_Cordiera_myrciifolia"
tree_chrono$tip.label[tree_chrono$tip.label=="Tabebuia_cassinoides_rbcL"]="Bignoniaceae_Tabebuia_cassinoides"
tree_chrono$tip.label[tree_chrono$tip.label=="Theaceae_Gordonia_fruticosa"]="Theaceae_Laplacea_fructicosa"
tree_chrono$tip.label[tree_chrono$tip.label=="Theaceae_Ternstroemia_brasiliensis"]="Pentaphylacaceae_Ternstroemia_brasiliensis"
tree_chrono$tip.label[tree_chrono$tip.label=="Thymeleaceae_Daphnopsis_racemosa"]="Thymelaeaceae_Daphnopsis_racemosa"
listaspB=listasp1
listaspB[listaspB=="Arecaceae_Euterpe_edulis"]="Arecaceae_Euterpe_edulis_NB1"
listaspB[listaspB=="Chloranthaceae_Hedyosmum_brasiliense"]="Chloranthaceae_Hedyosmum_brasiliense_NB3"
listaspB[listaspB=="Clethraceae_Clethra_scabra"]="Clethraceae_Clethra_scabra_NB4"
listaspB[listaspB=="Clusiaceae_Calophyllum_brasiliense"]="Clusiaceae_Calophyllum_brasiliense_NB5"
listaspB[listaspB=="Clusiaceae_Clusia_criuva"]="Clusiaceae_Clusia_criuva_NB21"
listaspB[listaspB=="Clusiaceae_Garcinia_gardneriana"]="Clusiaceae_Garcinia_gardneriana_NB6"
listaspB[listaspB=="Erythroxylaceae_Erythroxylum_amplifolium"]="Erythroxylaceae_Erythroxylum_amplifolium_NB7"
listaspB[listaspB=="Euphorbiaceae_Alchornea_triplinervia"]="Euphorbiaceae_Alchornea_triplinervia_NB8"
listaspB[listaspB=="Euphorbiaceae_Maprounea_guianensis"]="Euphorbiaceae_Maprounea_guianensis_NB10"
listaspB[listaspB=="Peraceae_Pera_glabrata"]="Peraceae_Pera_glabrata_NB11"
listaspB[listaspB=="Fabaceae_Andira_anthelmia"]="Fabaceae_Andira_anthelmia_NB12"
listaspB[listaspB=="Meliaceae_Guarea_macrophylla"]="Meliaceae_Guarea_macrophylla_NB14"
listaspB[listaspB=="Ochnaceae_Ouratea_parviflora"]="Ochnaceae_Ouratea_parviflora_NB16"
listaspB[listaspB=="Sapindaceae_Matayba_guianensis"]="Sapindaceae_Matayba_guianensis_NB17"
listaspB[listaspB=="Sapotaceae_Pouteria_beaurepairei"]="Sapotaceae_Pouteria_beaurepairei_NB23"
#retirar da arvore especies que nao ha demografia
remvB=tree_chrono$tip.label[-which(tree_chrono$tip.label %in% listaspB)]
tree_chrono=drop.tip(tree_chrono, remvB)
##########################
## 3 SINAL FILOGENETICO ##
##########################
##Mantel
# árvore Wikstrom
dist.wik=cophenetic(wiktree)
#árvore molecular
dist.molec=cophenetic(chronoMPL(tree_chrono))
###distancia ecológica
#a)reordenando as especies na ordem da arvore wikstrom
elasticidades=data.frame(listasp1,F50,S50,G50)
elasWIK=elasticidades[match(wiktree$tip.label,elasticidades$listasp1),]
#b)reordenando as especies na ordem da arvore molecular
elas2=elasticidades
elas2$listasp1=listaspB
elasMOL=elas2[match(tree_chrono$tip.label,elas2$listasp1),]
#Distancia ecologica para arvore WIK
dist.ecolA=as.matrix(dist(elasWIK[,c(2,3,4)]))
colnames(dist.ecolA)=wiktree$tip.label
rownames(dist.ecolA)=wiktree$tip.label
#Distancia ecologica para arvore molecular
dist.ecolB=as.matrix(dist(elasMOL[,c(2,3,4)]))
colnames(dist.ecolB)=tree_chrono$tip.label
rownames(dist.ecolB)=tree_chrono$tip.label
#MANTEL Lapointe and Garland 2001
library(ade4)
source("harmon&glorPP.r")
source("mantelR.txt")
mantelWIK=phyloMantelr(phy=wiktree,m1=dist.ecolA,m2=dist.wik,nperm=10000,graph=TRUE)
mantelMOLEC=phyloMantelr(phy=tree_chrono,m1=dist.ecolB,m2=dist.molec,nperm=10000,graph=TRUE,rpt=F)
################
###resultados###
################
#elast
setwd("C:/Users/Gabriel/Documents/Mestrado/Dissertação/CORTE5")
elast=elasticidades
elast[,2]=round(elast[,2],4)
elast[,3]=round(elast[,3],4)
elast[,4]=round(elast[,4],4)
elast$listasp1=as.character(elast$listasp1)
#lambdas
lamb.round=lambdas
lamb.round[,2]=as.numeric(round(lamb.round[,2],3))
lamb.round$specie=as.character(lamb.round$specie)
for(i in 1:length(listasp))
{
lamb.round$specie[i]=paste(sort(unique(peic[peic$specie==listasp[i], "Familia"])),"_",sort(unique(peic[peic$specie==listasp[i], "genero"]))[1],"_",sort(unique(peic[peic$specie==listasp[i], "epitsp"]))[1], sep="")
}