Lucas Arantes Camacho
Bacharel em Biologia e Mestrando em Ecologia pelo Instituto de Biociências da USP
Meus interesses de pesquisa são:
- Coevolução
- Interações Ecológicas (Mutualismos e Antagonismos)
- Redes ecológicas
Em meu mestrado, vou usar modelos matemáticos e redes empíricas de interações ecológicas para investigar o papel das forças de interações em diferentes dinâmicas coevolutivas.
http://guimaraes.bio.br/people.html
Link para exercícios realizados Meus exercícios
Trabalho Final
Proposta I
Contextualização
A disciplina Ecologia de Comunidades e Ecossistemas é oferecida para o curso de graduação em Biologia pelo Inst. de Biociências da USP, abordando padrões em larga escala como surgimento e manutenção da biodiverdade e macroevolução [1]. Na primeira aula da disciplina, os alunos são expostos ao modelo logístico de crescimento de populações (Figura abaixo), para observar como uma equação não-linear pode gerar dinâmicas populacionais complexas e até caóticas.
A equação nos diz o tamanho de uma população N no tempo t+1 com uma certa taxa de crescimento intrínseca r e um tamanho populacional no tempo t[2]. Aqui nós usamos a densidade populacional sendo uma proporção, fazendo com que o valor de k , a capacidade suporte, seja 1. Pensando que este é um modelo matemático, ele pode gerar resultados que não tem nenhum sentido biológico como por exemplo, um valor alto de r (>3.95) gera tamanho populacionais negativos. Matematicamente correto, porém biológicamente irreal.
É interessante que os alunos comparem uma dinâmica da equação logística com a equação de crescimento exponencial, sendo esta a equação fundamental que deriva as outras.
A aula em questão é composta por metade teórica e metade prática, sendo que na aula prática os alunos recebem um arquivo em formato excell (.xlsx) onde há duas abas, uma delas com um gráfico do tamanho da(s) população(ões) estudadas e outra com as células dos valores de tempo de simulação, N inicial e r de duas populações de interesse. O objetivo desta prática é entender como diferentes valores de N e r afetam a dinâmica populacional de uma ou duas populações quaisquer.
Minha função tem como objetivo substituir o arquivo .xlsx usado na aula prática para uma função em R, realizando a mesma tarefa de simular dinâmica populacional de até duas populações e gerar um gráfico de população por tempo. Minha função vai permitir que a pessoa escolha qual dinâmica irá simular: logística ou exponencial, para que possa haver uma comparação entre as dinâmicas e gerar discussões.
Obs: A prática em questão foi elaborada pelos docentes da disciplina. Os arquivos podem ser baixados nos linques abaixo
Planejamento:
Entrada: simu_pop(eq, t, ni, nj, ri, rj)
eq= Modelo a ser simulado (character,exponencial;logistico)t= número de passos de tempo da simulação (integer)ni= densidade populacional inicial da espéciei(float, 0 <ni> 1)nj= densidade populacional inicial da espéciej(float, 0 <nj> 1)ri= taxa intrínseca de crescimento da espéciei(float, 1.1 <ri> 3.95)rj= taxa intrínseca de crescimento da espéciej(float, 1.1 <rj> 3.95)
Conferindo argumentos
eqsó possui duas entradas possíveis (exponencial;logistico), caso seja diferente, retorne erronienjdevem ser valores entre 0 e 1, caso contrário, retorne errorierjdevem ser valores entre 1.1 e 3.95, caso contrário, retorne erro
Saída
- Gráfico mostrando o caminho das densidades populacionais em função do tempo, separando as populações por cores diferentes.
Referências
1. Página da disciplina no sistema de graduação JúpiterWeb. Acessado em 02/05/2018.
2. Gotelli, N. (2008). A primer of ecology. Sinauer Associates is an imprint of Oxford University Press; 4th edition.
Comentários Andre Chalom
Excelente proposta! Vamos convencer os professores a virem todos para o lado livRe da foRça!
Alguns comentários sobre a proposta:
- Porque as taxas precisam ser entre 1.1 e 3.95? Isso tem um motivo teórico, ele pode estar na descrição da função
- Na escolha dos argumentos, você precisa dizer qual número corresponde a “exponencial” ou “logística”. Alternativamente, você pode usar a função match.arg…
Por fim, preciso ser chato e dizer que sua proposta tem uma certa confusão entre processos de tempo contínuo (equação logística) e tempo discreto (mapa logístico). Mas como isso não está no escopo dessa disciplina, sua avaliação não vai depender disso.
muito obrigado pelo feedback.
Vou fazer a função da Proposta I mesmo.
Já adicionei o motivo dos valores de r serem limitados e coloquei que o argumento para o eq agora são caracteres logistic e exponential. Também dei uma mudada no texto. Muito obrigado.
Lucas Camacho
—-
Proposta II
Contextualização
Os serviços de streaming de música tem se tornado cada vez mais comuns, disponibilizando uma “infinidade” de músicas dos mais diversos gêneros conhecidos. Com isso, surgiu o serviço de criação de playlists de música para determinados tipos de humor, que podem ser escolhidos pelo ouvinte. Porém, muitos destes serviços são pagos ou possuem playlists já prontas e com músicas, muitas vezes, desconhecidas pelo usuário. Dessa forma, seria interessante que houvesse um programa simples que receba suas listas de músicas classificadas de acordo com seu gosto e gere playlists de músicas que te direcionem para um determinado humor desejado. Considere o cenário hipotético:
Digamos que você está no primeiro semestre da pós-graduação e você acaba de perceber que não rendeu muito em seu projeto, gerando a possibilidade de uma bronca do seu orientador carioca. Isso ocorreu pois você estava ocupado com disciplinas relacionadas a estatística e programação em R. Essa situação te leva a um sentimento de tristeza e frustação e tudo o que você quer é se sentir mais feliz e compreendido. A música pode te ajudar, ainda mais quando sua playlist apenas contém as suas próprias músicas e é ordenada de uma forma que no início acompanha seu humor atual e, aos poucos, te leva ao humor desejado, caso você queira mudar de humor.
A função proposta vai ler uma lista de músicas do usuário com uma classificação numérica dada pelo próprio usuário. Com essa lista, a função retornará uma lista de músicas de tamanho escolhido pelo usuário, com músicas semelhantes ao humor de entrada e se o usuário desejar, músicas que passem do humor atual para um determinado humor desejado. Caso o usuário não queira mudar o seu humor, a função retorna uma playlist apenas com músicas que acompanham o humor de entrada.
Planejamento:
Entrada: get_playlist(list, n, he, hs)
list= lista de músicas já classificadas do usuário (list)n= número de músicas (integer)he= humor de entrada (string,alegre,triste,calmo,ansioso,focado,relaxado)hs= humor de saída (NULLpor default ou string,alegre,triste,calmo,ansioso,focado,relaxado)
Conferindo argumentos
listdeve ser de classeliste deve ser semelhante ao exemplo abaixo, caso contrário, retorne erro.
| Alegre | Triste | Calmo | Ansioso | Focado | Relaxado | |
|---|---|---|---|---|---|---|
| Música 1 | 1 | 0 | 0 | 0 | 0 | 1 |
| Música 2 | 1 | 0 | 0 | 0 | 0 | 1 |
| Música 3 | 0 | 1 | 1 | 0 | 1 | 0 |
nmáximo é igual ao número total de músicas emlist, caso contrário, retorne errohedeve pertencer a uma lista de humores disponíveis, caso contrário, retorne erro
Saída
- Lista de músicas de tamanho
ndeterminado pelo usuário
Comentários Andre Chalom
Essa proposta é muito bacana, mas está bastante crua. Ela tem a descrição de “o que” vai ser feito, mas se vc estiver pensando em fazer essa função, é importante detalhar mais o “como” vai ser feito. Sugiro fazer um pseudo-código pra estruturar as ideias.
Abs!
Versão Final - Função simu_pop()
Decidi seguir com a Proposta I do trabalho final, criando uma função que simula populações virtuais com base em dois modelos clássicos da ecologia: o modelo exponencial e o modelo logístico. Para essa função, basta escolher qual modelo você quer simular, o tempo da simulação e os parâmetros n e r das populações que você terá um gráfico com as simulações, atingindo enfim nosso objetivo de oferecer uma ferramenta alternativa para a primeira aula prática da disciplina.
- Link para o código da função: simu_pop.R
- Link para a página de ajuda da função: help.txt
Contatos
e-mail: lucas.camacho@usp.br
skype: lucas.arantes666


