Dylan Padilla
Mestrando em Ecologia e Evolução pela Universidade Federal de São Paulo (UNIFESP). Tenho interesse na área de ecologia evolutiva, atuando em pesquisas que visam entender o comportamento animal e modelar a evolução da coloração em répteis.
https://www.facebook.com/labanimal15/
Exercicios resolvidos durante a disciplina
Trabalho final
- Plano A: função
diver()
Introdução
Ao entrarmos no Antropoceno, a humanidade está reorganizando a biosfera. Processos que vão desde a caça excessiva de grandes vertebrados e a deslocação de espécies exóticas através das barreiras biogeográficas até à eliminação indiscriminada de habitats naturais para a agricultura continuam a corroer a biodiversidade. A sociedade valoriza a biodiversidade em múltiplas escalas espaciais, com preocupações que variam desde a provisão local de serviços ecossistêmicos até a preservação global do valor intrínseco e instrumental das espécies. Por exemplo, a Convenção das Nações Unidas sobre Diversidade Biológica procura deter a perda de biodiversidade a nível regional, nacional e global. Para avaliar a melhor forma de conservar a biodiversidade em escalas espaciais, precisamos entender a relação entre dados de monitoramento coletados localmente e dinâmicas de diversidade regional e como os mecanismos que mantêm a diversidade variam de escalas espaciais locais a regionais. Os conservacionistas, portanto, enfrentam uma questão fundamental: como as mudanças medidas localmente aumentam até os impactos regionais?
A solução está na nossa compreensão da diversidade alfa, beta e gama. Portanto, o desenvolvimento de uma ferramenta que possa quantificar essas propriedades das comunidades e ecossistemas se torna muito importante.
A importancia central desta funcao reside no calculo dos “numeros efeitivos” ou “numeros equivalentes” dos indices de diversidade convencionalmente usados (shannon entropy ou simpson concentration) para estimar riqueza de especies. Os números equivalentes de um índice de diversidade correspondem ao número de elementos igualmente prováveis necessarios para produzir o valor dado do índice de diversidade. Os números equivalentes do índice de Shannon e o Índice de Simpson são calculados da seguinte forma:
- Shannon = exp(−∑pi×ln(pi))
- Simpson = 1/(∑ln(pi)²)
onde:
- pi = proporção da espécie i relativa ao numero total de indivíduos da amostra.
Para cada medida dos anteriores indices se estimará a incerteza por meio de reamostragem com reposição (BOOSTRAP). Assim, os intervalos de confiança ao 95% serão calculados por cada valor observado do índice.
A diversidade beta será calculada usando o índice de similaridade de Bray-Curtis:
- (A+B-2*J)/(A+B)
onde:
- A = numero de especies in j
- B = numero de especies in k
- J = espécies compartilhadas
Porfim, a diversidade gama será calculada como o numero total de especies da paisagem em estudo.
Planejamento da função
pi =matriz contendo as amostras nas colunas e as espécies nas linhas (classematrix()).alfa =índice de diversidade a ser usado, fica a escolha do usuário. Pode ser o exponencial do shannon ou o inverso do simpson.beta.gam =diversidade beta calculada por meio da equação definida na introdução (o default é TRUE) e calcula também o valor da diversidade gama.perm =número de permutações usado na reamostragem para estimar os intervalos de confiança de cada valor do índice calculado no argumentoalfa.
Verificando os parâmetros
pidever ser um objeto da classematrix, pode conter 0 ou NA's.alfapode ser “shannon” ou “simpson”, para calculá-los deve-se especificar alguns deles. Pode-se usar letras iniciais de cada índice.beta.gamse TRUE, será calculado. Se FALSE, não será calculado.permdeve ser um numero inteiro (classeinteger).
Pseudo-código
- Indica que os indices dentro do parametro
alfapoderão ser especificados por meio das letras inicias. - Cria o objeto
game calcula o valor da diversidade gama if(alfa==“shannon” | alfa==“simpson”), cria objetoshannonousimpsone calcula o exponencial do shannon ou o inverso do simpson para cada coluna depi.- Cria um objeto
rese constrói uma matriz preenchida de NA's cujas colunas correspondem as amostras e as linhas correspondem ao numero de permutações usado para calcular os intervalos de confiança. - Entra em um ciclo
for (i in 1:perm). - Aleatoriza-se as linhas da matriz
picom reposição. - Aplica-se o índice definido pelo usuario toda vez que a matriz seja aleatorizada.
- Guarda-se os valores do índice nas linhas da matriz
res. - Fecha o ciclo
if(beta.gam==TRUE):- Entra em um ciclo
for (i in 1:(dim(pi)[2]-1)) - Entra em un novo ciclo
for (j in (i+1):dim(pi)[2]) - Calcula diversidade beta por cada par de amostras.
- Imprime os cálculos em um objeto de classe
matrixcriado antes do ciclo, onde oupper.tricorresponde aos cálculos da diversidade beta. - Fecha o ciclo.
- Cria varios loops usando o
ifpara maior flexibilidade da função.
Saída
A função retorna uma lista contendo os seguintes objetos:
shanousimp: Valores do exponencial do indice shannon ou o inverso do simpson por cada amostra (colunas) depi.confidence.inter: Os valores dos intervalos de confiança ao 95%.beta: Um objeto da classematrixcontendo os valores de diversidade beta por pares de amostras.gam: O valor da diversidade gama.- Grafico de diversidade alfa ~ amostras
Bibliografia
- Hill, M. 1973. Diversity and evenness: a unifying notation and its consequences. Ecology 54:427–432.
- Jost, L. (2007) Partitioning diversity into independent alpha and beta components. Ecology, 88, 2427–2439.
- Socolar, J. B., Gilroy, J. J., Kunin, W. E., & Edwards, D. P. (2016). How should beta-diversity inform biodiversity conservation?. Trends in Ecology & Evolution, 31(1), 67-80.
Oi Dylan,
A proposta A parece interessante, mas não consigo entender o que há de original além de chamar o pacote vegan pra fazer as partes interesantes. Do jeito que está, parece que a função só facilita que o usuário escolha o tipo de análise, mas o trabalho é feito pelas funções do vegan. Isso não é o objetivo da função a programar.
De maneira alternativa, eu sugiro manter o tópico sobre estimadores de diversidade mas tentando propor uma implementação de algum estimador para alguma escala de diversidade, e talvez se desafiar tentando implementar estimação de incerteza sobre a mesma por meio de alguma ferramenta (e.g., reamostragem).
Dito isto, você deve propor uma modificação radical da proposta A para poder continuar com ela como trabalho final. Por favor lembre-se que o aceite da proposta B é obrigatorio, então, veja meus comentários sobre a mesma na seção a seguir. Próximas conversas terão lugar pelo email e uma vez a gente consiga um consenso você deverá fazer as mudanças que tenham lugar no seu wiki.
- Plano B: função
darwin()
Introdução
A idéia básica da evolução biológica é que populações de espécies de organismos mudam com o tempo. Hoje, quando pensamos em evolução, é provável que vinculemos essa ideia a uma pessoa específica: o naturalista britânico Charles Darwin.
Na década de 1850, Darwin escreveu um livro influente e controverso chamado A origem das Espécies. Nele, sugeriu um mecanismo para a evolução: a seleção natural, na qual traços hereditários que ajudam os organismos a sobreviver e se reproduzir se tornam mais comuns em uma população ao longo do tempo.
Existem vários tipos de seleção como a seleção direcional, seleção disruptiva, seleção estabilizadora, entre outros. Por meio do uso da função darwin será possível simular só o primeiro tipo de seleção. Este é um dos tipos mais frequente de seleção no qual o ótimo do traço é deslocado por uma pressão de seleção (p.e., predação).
Planejamento da função
Ntamanho populacional (classeinteger≥ 0)optimalótimo do traço (classeinteger≥ 0)pressureintensidade de seleção (classeinteger≥ 0)gtempo em gerações (classeinteger≥ 0)
Verificando os parâmetros
N, optimal, pressure, g >= 0caso contrario (< 0), escreve: “O valor do parametro deve ser positivo”
Pseudo-código
- Cria uma matriz de NA's com
nrow = Nencol = g - Cria a condição inicial da população usando
rnorm() - Põe a condição inicial da população na primeira coluna da matriz
- Gera um ciclo usando
for (i in 2:g)- Calcula a probabilidade de sobrevivência dos indivíduos da condição inicial
- Simula eventos de reprodução aleatórios dos indivíduos que sobreviveram
- calcula o valor do traço dos filhotes (ótimo)
- Põe o valor do traço de cada individuo na posição
ida matriz - Fecha o ciclo
- Retorna a matriz preenchida contendo as gerações em colunas e os indivíduos nas linhas.
- Faz um
boxplotno qual y = mediana do traço (ótimo) da população e x = temposeq(1,g).
Saída
A função retorna:
- Uma matriz com o resultado da seleção natural ao longo de gerações
- Um grafico mostrando o deslocamento do ótimo ao longo do tempo
Observações
Parte da ideia desta função se originou como resultado de um curso de simulações empregado pelo Danilo Muniz na UNIFESP.
Bibliografia
- Losos, J. B., Schoener, T. W., & Spiller, D. A. (2004). Predator-induced behaviour shifts and natural selection in field-experimental lizard populations. Nature, 432(7016), 505.
Oi Dylan,
A proposta A parece interessante, mas não consigo entender exatamente qual modelo quantitativo estaria sendo implementado aqui. Por favor desenvolva em maior detalhe sua idéia e talvez possa continuar com ela como plano B. Neste ponto, as duas propostas parecem interessantes mas precisam de um pouco de trabalho.
Próximas conversas terão lugar pelo email e uma vez a gente consiga um consenso você deverá fazer as mudanças que tenham lugar no seu wiki.

