====== Talitha Pires ======
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:dsc_0122.jpg?200|}}
Nome: Talitha da Cunha Pires
Doutoranda pelo Departamento de Zoologia, Instituto de Biociências, USP
Projeto: Efeito da fragmentação sobre a estrutura e dinâmica das redes de interação mutualísticas entre plantas e aves frugívoras na Floresta Amazônica e suas implicações para a conservação ambiental
email: talitha@usp.br
===== Meus Exercícios =====
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:exercicio1.r|exercicio1}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:exercicio2.r|exercicio2}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:exercicio3_final.r|exercicio3}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:exercicio4.r|exercicio4}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:exercicio5final.r|exercicio5}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:exercicio6.r|exercicio6}}{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:exercicio7.r|exercicio7}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:exercicio_9_final.r|exercicio9}}
===== Proposta de Trabalho Final =====
==== Principal ====
Gerar redes teóricas por meio de matrizes de probabilidade de interação a partir das abundancias relativas das espécies, da compatibilidade fenotípica (GAPE bico/ tamanho da semente) e da "acessibilidade" (comportamento de forrageio/ frutificação) e comparar com a rede de interação real.
==== Plano B ====
Fazer um teste logico para verificar a congruência entre a matriz de interação planta-animal e uma matriz de distancia filogenética (teria que gerar esta matriz a partir de grau de parentesco e inferir quanto a probabilidade de interação, uma vez que espécies de aves mais relacionadas tendem a se alimentar de plantas também mais relacionadas filogeneticamente). Poderia verificar se ha uma correlação entre as matrizes.
=== Comentários das propostas (Leo) ===
As propostas parecem interessantes e factíveis. Senti falta de uma formalização melhor de como a função pode se aplicar a uma gama maior de análises ecológicas (generalidade). Sugiro que você explique melhor quais são as tarefas necessárias dentro da função, por exemplo: como as matrizes serão comparadas? Algum teste ou índice específico? Defina claramente também os dados de entrada e saída da função, por exemplo: a função retornará algum índice de similaridade, ou o resultado de algum teste de hipótese? Isto facilitará o entendimento sobre a complexidade da função e te ajudará a organizar a construção da mesma.
===Proposta Final===
Conversando com o professor Leo, resolvi alterar um pouco minha proposta principal e focar em um dos meus objetivos da proposta A: o de gerar matrizes binárias de interação mutualísticas segundo a compatibilidade fenotípica, fornecendo um índice de similaridade entre a matriz esperada e observada.
Input:
-tabelas com medidas de dois conjuntos de espécies a serem comparados
-matriz de interação observada na natureza
Output:
-matriz de interações esperadas a partir de compatibilidade entre as características do conjunto de espécies
-Índice de similaridade entre matriz observada e esperada a partir da compatibilidade fenotípica
-Grafos bipartidos das matrizes para melhor visualização das interações
Atualmente, existe um conjunto de teorias
que visa compreender como os processos evolutivos influenciam e são influenciados pelas interações ecológicas. Para tal, é importante entender como características das espécies envolvidas se relacionam com a estrutura da rede de interação. Vários mecanismos foram propostos com esta finalidade, entre eles, as chamadas, interações proibidas, nas quais, restrições a interações por compatibilidade de características fenotípicas entre as espécies influenciariam no padrão de redes de interações encontrado.
O índice de similaridade entre as matrizes observadas e as esperadas por compatibilidade, nos fornece uma medida da contribuição de certas características fenotípicas das espécies no padrão de interação encontrado.
Quanto a generalidade desta proposta ela se aplica a qualquer tipo de interação desde que os dados de entrada tenham uma resposta biologicamente relevante quando comparados pela relação de < = e >= (como largura do bico de aves e comprimento da semente das plantas, tamanho da probóscide de abelhas e comprimento da corola das flores)
===== Página de Ajuda =====
makematrix package: bipartite R Documentation
Gera uma matriz binária de interações com base na compatibilidade fenotípica entre dois conjunto de
espécies e a compara com a matriz de interações proveniente de observação empírica
Description:
Gera uma matriz binária de interações esperadas a partir da compatibilidade entre medidas morfológicas
de dois grupos de espécies e compara com a matriz de interação observada na natureza por meio de um
índice de similaridade.
A função também retorna uma representação gráfica (grafos bipartidos) para visualização das
interações observadas, esperadas e as interações geradas pela combinação consensual de ambas.
Usage:
makematrix = function(dfx,dfy,z,FUN=">=")
Arguments:
dfx: tabela com valores de medidas morfológicas atribuídas a um grupo de espécies
(primeira coluna com o nome dasespécies e segunda coluna com medidas morfométricas)
dfy: arquivo csv com valores de medidas morfológicas atribuídas a outro grupo de
espécies (seguindo mesmo padrão de mesmo de dfx)
z: matriz de interação entre o primeiro grupo de espécies e o outro com base em observações na natureza
FUN: Relação entre os valores das medidas morfológicas de dfx e dfy.
Details:
FUN:
>=se a hipótese é de que há interação se os valores de dfx são maiores ou iguais aos de dfy
< =se a hipótese é de que há interação se os valores de dfx são menores ou iguais aos de dfy
As medidas morfométricas atribuídas a um grupo de espécies (dfx) serão
comparadas as do outro grupo de espécies (dfy) gerando uma matriz binária
de possíveis interações que será comparada a uma matriz de interação observada
para as mesmas espécies, gerando um índice de similaridade
Value:
A função retorna:
m: matriz binária de interações esperadas segundo compatibilidade de medidas
n: matriz lógica resultante da combinação consensual das interações encontradas
na natureza e nas interações esperadas
mm: matriz lógica da similaridade entre a matriz esperada e observada
IS: índice da similaridade entre m e z
Grafos da matriz observada, esperada e matriz de consenso
Warning:
A função não lê matrizes com NA devolvendo uma mensagem de erro.
Será necessário baixar o pacote bipartite:
library("bipartite")
Author:
Talitha Pires Middleton, IB-USP, São Paulo-SP
talithapires@gmail.com
Michel Bieleveld-
Agradeço também a Daniel Caetano pela conversa!
References:
Jordano, P., J. Bascompte and J.M. Olesen. 2003. Invariant properties in coevolutionary
networks of plant-animal interactions. Ecology Letters 6: 69-81.
See Also:
Para outras propriedades de redes de interação veja o pacote bipartite
Example:
Por favor carregue os arquivos x.csv e y.csv
obs=matrix(c(1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,0),4,4) #matriz observada empírica
bico = read.csv("x.csv", sep=";",header=TRUE) #medidas dos bicos de sp de aves
semente = read.csv("y.csv",sep=";",header=TRUE) #medidas de sementes de sp de plantas
makematrix(bico,semente,obs,FUN=">")
OU para um exemplo direto use:
bicocsv <- "
NAME;BICO (mm)
AVE1;13
AVE2;54
AVE3;22
AVE4;90"
sementecsv <- "
NAME;SEMENTE(mm)
PLANTA 1;2
PLANTA2;30
PLANTA3;50
PLANTA4;20"
con <- textConnection(bicocsv)
bico <- read.csv(con,sep=";", header=TRUE)
close(con)
con <- textConnection(sementecsv)
semente <- read.csv(con,sep=";", header=TRUE)
close(con)
obs=matrix(c(1,1,0,1,0,1,1,0,1,1,0,1,1,0,1,0),4,4)
makematrix(bico,semente,obs,FUN=">")
===== Código da Função =====
makematrix = function(dfx,dfy,z,FUN=">=")
{
x = dfx[,2]
y = dfy[,2]
mfrow.backup = par()$mfrow
par(mfrow=c(1,3))
f = match.fun(FUN)
if (sum(is.na(x))>0) {stop("Vector x contains NA, please check your data")}
if (sum(is.na(y))>0) {stop("Vector y contains NA, please check your data")}
m = matrix(rep(0,length(x) * length(y)),length(x),length(y))
for(r in 1:length(x))
{
for(c in 1:length(y))
{
if ( f(x[r],y[c]) )
{
m[r,c] <- 1
}
}
}
mm = !(xor(m, z))
is = sum(mm)/length(mm)
n = m & z
a = as.data.frame(z)
colnames(a) <- dfy[,1]
rownames(a) <- dfx[,1]
plotweb(a,method="cca",text.rot="90",labsize=1.5,col.low="green",col.high="yellow",col.interaction="blue")
title(main="Interações observadas")
b = as.data.frame(m)
colnames(b) <- dfy[,1]
rownames(b) <- dfx[,1]
plotweb(b,method="cca",text.rot="90",labsize=1.5,col.low="green",col.high="yellow",col.interaction="blue")
title(main="Interações esperadas")
c = as.data.frame(n)
colnames(c) <- dfy[,1]
rownames(c) <- dfx[,1]
plotweb(c,method="cca",text.rot="90",labsize=1.5,col.low="green",col.high="yellow",col.interaction="blue")
title(main="Interações em comum")
par(mfrow=mfrow.backup)
return(list(m,n,mm,is))
}
===== Arquivo da Função =====
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:makematrix.r|}}
===== Arquivos de dados =====
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:x.csv|}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:talitha:y.csv|}}