====== Carol Mendonça ====== {{:01_curso_atual:alunos:trabalho_final:carol.mendonca.bio:img_4746.jpg?200|}} Sou bióloga, graduada como bacharela pelo Instituto de Biociências (USP) e licenciada pela Faculdade de Educação (USP). Possuo grande interesse na área de Genética, especialmente em Biologia Molecular. Trabalho desde 2013 no Laboratório Nacional de Células-Tronco Embrionárias, a cargo da Profa. Dra. Lygia da Veiga Pereira, no grupo que pesquisa Síndrome de Marfan. Atualmente, tenho intenção de fazer pós-graduação no Laboratório de Drosofilídeos sob orientação da Profa. Maria Vibranovski, cuja principal linha de pesquisa é a evolução genômica. Além disso, tenho grande apreço pela educação em Ciências, tendo participado de diversos projetos de extensão universitária e atuado como professora em cursinhos populares. ---- ---- ===== I. Meus exercícios ===== Link para a página com os meus exercícios resolvidos: [[.:Meus exercícios]]. ---- ---- ===== II. Trabalho final ===== ---- ==== II.I Plano A: Uma simulação da deriva genética ==== === Contextualização === A deriva genética é uma das quatro forças evolutivas e pode ser definida como: mudanças aleatórias nas frequências alélicas de uma população (RIDLEY, 2006). Considerando apenas a ação da deriva genética, para um gene bialélico, as probabilidades das frequências alélicas na geração seguinte podem ser calculadas pelo uso da distribuição binomial. Este é o Modelo Wright-Fischer que tem as seguintes premissas: (1) uma população de //N// indivíduos tem //2N// alelos; (2) a próxima geração terá //2N// alelos, sorteados ao acaso dentre os milhões de gametas produzidos na geração anterior; (3) todos os gametas têm chance idêntica de serem sorteados (não há seleção); (4) não há mutação ou migração e os cruzamentos se dão ao acaso (MEYER, 2016). {{ :01_curso_atual:alunos:trabalho_final:carol.mendonca.bio:modelo_wf.jpg?300 |}} Alternativamente à solução analítica, a probabilidade de um alelo se manter na população com determinada frequência pode ser estimada por meio de simulações. Para esta estimativa, é necessário levar em consideração: o número de indivíduos na população, o número de gerações, a frequência inicial do alelo e o número de populações a serem simuladas. Com estes parâmetros, a função proposta realizaria as simulações, apresentando no final: um gráfico com as trajetórias individuais de cada população, um histograma com as frequências finais nas populações e o p-valor. Em outras palavras, ela responderia a pergunta: "Qual é a probabilidade que após //n// gerações em //X// populações de tamanho //N//, a frequência do alelo A (gene bialélico) seja //Y//?". === Planejamento da função === **Entrada:** deriva (''N'', ''gen'', ''f'', ''pop'', ''teste'') * ''N'' = tamanho de cada população (classe: integer, ''N'' > 0). * ''gen'' = número de gerações a ser simulado (classe: integer, ''gen'' > 0). * ''f'' = frequência do alelo A (classe: numeric com 2 casas decimais, 0 ≤ ''f'' ≤ 1). * ''pop'' = número de populações (classe: integer, ''pop'' > 0). * ''teste'' = frequência final de alelos a ser testada (classe: numeric com 2 casas decimais, 0 ≤ ''teste'' ≤ 1). **Verificando os parâmetros:** * ''N'' é um número inteiro e maior que 0? Se não, escreve: "N precisa ser um numero inteiro e > 0." * ''gen'' é um número inteiro e maior que 0? Se não, escreve: "gen precisa ser um numero inteiro e > 0." * ''f'' é ≥ 0 e ≤ 1? Se não, escreve: "f deve estar no intervalo 0 ≤ f ≤ 1." * ''pop'' é um número inteiro e maior que 0? Se não, escreve: "pop precisa ser um numero inteiro e > 0." * ''teste'' é ≥ 0 e ≤ 1? Se não, escreve: "teste deve estar no intervalo 0 ≤ f ≤ 1." **Pseudo-código:** - Cria objeto ''simulacao'' com ''N'' NAs. - Cria objeto ''f.final'' com ''pop'' NAs. - Cria objeto ''populacao'' com ''f'' × ''N'' caracteres "A" e 1 - (''f'' × ''N'') caracteres "a". - Plota área para gráfico com eixo-X entre 0 - ''gen'' e eixo-Y entre 0 - 1. - Entra em um ciclo ''for'' com contador ''j'' de 1 até ''pop''. - Entra em um ciclo ''for'' com contador ''i'' de 1 até ''gen''. - Amostra com reposição ''N'' alelos de ''populacao'' e guarda em ''simulacao''. - Conta numero de "A", divide por ''N'' e guarda em ''fA''. - Plota coordenada ''i'', ''fA'' no grafico. - Copia ''simulacao'' em ''populacao''. - Zera ''simulacao'' preenchendo-no com ''N'' NAs. - Une os pontos no grafico. - Preenche posição ''j'' de ''f.final'' com ''f.A''. - Redefini ''populacao'' com ''f'' × ''N'' caracteres "A" e 1 - ''f'' × ''N'' caracteres "a". - Zera ''simulacao'' preenchendo-no com ''N'' NAs. - Cria histograma de ''f.final'' com linha vertical em ''teste''. - Calcula o p-valor dividindo o número de vezes em que ''f.final'' == ''teste'' e dividindo por ''pop''. **Saída:** * Histograma com a distribuição das frequências alélicas finais das populações. * Gráfico de dispersão com as trajetórias individuais de cada uma das populações. * O p-valor: probabilidade de uma determinada frequência (''teste'') ao final das simulações. A função parece bem clara. Na verdade o próprio pseudo-código dela já é quase que a função terminada. Se quiser, pode seguir essa proposta. OBS: cuidado com códigos desnecessários ou redundantes: será que é memso necessário unir os pontos do gráfico? É necessário "zerar" os vetores antes do próximo ciclo? ---- ==== II.II Plano B: Jogo dos Micos ==== === Contextualização === A Estação Biologia (http://www.ib.usp.br/estacaobiologia/) é um projeto de extensão universitária do Instituto de Biociências da USP que tem como principal objetivo a recepção de visitas escolares. Uma das atividades que é oferecida para os visitantes é o Jogo dos Micos, que foi desenvolvido com base em uma atividade de {{:01_curso_atual:alunos:trabalho_final:carol.mendonca.bio:pega-pega_ecolo_gico.pdf|dramatização de presa e predador}}. Os alunos são divididos em três grupos (plantas, micos e jaguatiricas) e o jogo consiste em várias rodadas de pega-pega. Em cada uma delas, os micos tentam comer as plantas e as jaguatiricas os micos. Ao término da rodada, os papéis são redistribuídos como é ilustrado na figura abaixo. {{ :01_curso_atual:alunos:trabalho_final:carol.mendonca.bio:jogo_dos_micos.jpg |}} O principal objetivo da atividade é mostrar a robustez da comunidade, isto é: mesmo que as crianças tenham trocado de papel ao longo do jogo, as três classes de espécie ainda permanecem. Para enfatizar a importância de cada uma das espécies, pode ser feita uma rodada extra em que uma das classes não está presente. Por exemplo: se as plantas não participarem, os micos serão todos predados e virarão jaguatiricas. Na próxima rodada, faltará alimento para as jaguatiricas e todas acabarão virando planta. A dúvida em relação à atividade é a proporção das classes que maximize a permanência de todas elas no jogo. Em outras palavras: "Dado um número //X// de crianças, quantas devem estar em cada classe de forma que todas as classes permaneçam no jogo por mais tempo?". Para responder essa pergunta, é necessário levar em consideração a probabilidade de transição ou de permanência em cada uma das classes. Para estimá-las, seriam feitas medidas empíricas durante o jogo, levando em consideração as possíveis diferenças entre meninas e meninos. Assim, na matriz de transição mostrada abaixo, cada uma das probabilidade é na verdade uma somatória de 4 probabilidades: p(menina pegar menina), p(menina pegar menino), p(menino pegar menino) e p(menino pegar menina). A função proposta receberia o número de crianças presentes e faria simulações para determinar quantas devem ser alocadas em cada classe para que o jogo dure mais tempo. Para isso, seriam feitas multiplicações sucessivas de matrizes até que uma das classes não esteja mais presente. {{ :01_curso_atual:alunos:trabalho_final:carol.mendonca.bio:matriz_de_transicao.jpg?300 |}} === Planejamento da função === **Entrada:** micos (''N'', ''meninas'') * ''N'' = número de crianças (classe: integer, ''N'' > 0). * ''meninas'' = número de meninas (classe: integer, ''meninas'' ≥ 0). **Verificando os parâmetros:** * ''N'' é um número inteiro e maior que 0? Se não, escreve: "N precisa ser um numero inteiro e > 0." * ''meninas'' é um número inteiro e ≥ 0? Se não, escreve: "meninas precisa ser um numero inteiro e ≥ 0." **Pseudo-código:** - Distribui ''meninas'' no data frame ''prop.meninas'' com todas as permutações possíveis. - Faz uma cópia de ''prop.meninas'' em ''girls''. - Cria data.frame ''girls.copia'' com as mesmas dimensões de ''girls'' preenchido com NAs. - Distribui ''N'' - ''meninas'' no data frame ''prop.meninos'' com todas as permutações possíveis. - Faz uma cópia de ''prop.meninos'' em ''boys'' - Cria data.frame ''boys.copia'' com as mesmas dimensões de ''boys'' preenchido com NAs. - Entra em um ciclo ''while'' até que, em todas os casos, pelo menos uma das três classes não esteja mais presente. - Multiplica cada uma das linhas de ''girls'' por ''mt.girls'' (matriz de transição das meninas). - Guarda o resultado da multiplicação de matrizes em ''girls.copia''. - Copia ''girls.copia'' em ''girls'' e zera ''girls.copia'' preenchendo-no com NAs. - Multiplica cada uma das linhas de ''boys'' por ''mt.boys'' (matriz de transição dos meninos). - Guarda o resultado da multiplicação de matrizes em ''boys.copia''. - Copia ''boys.copia'' em ''boys'' e zera ''boys.copia'' preenchendo-no com NAs. - Seleciona o caso dentre ''girls.copia'' e ''boys.copia'' que manteve as 3 classes por mais tempo no jogo. - Recupera em ''prop.meninas'' ou ''prop.meninos'' a permutação inicial associada ao caso selecionado. - Calcula as proporções do segundo gênero com base no caso selecionado. **Saída:** * Data frame com o número de meninas e meninos em cada uma das classes (plantas, micos e jaguatiricas). Essa função parece desafiadora, mas você tbm parece preparada. Se você esta confortável com o método acho que é ok você seguir em frente nesta proposta tbm, caso queira. Se quiser conversar mais sobre as funções (ou pedir conselhos, dicas etc) é só escrever aqui que pretendo revisar esta página dia 09/06 antes das 12hrs. Ou me mandar uma mensagem por whatsapp (11) 9-9199-3842. Twister (ou Matheus Januario) ---- ==== II.III Referências ==== MEYER, D. Deriva genética, 2017. RIDLEY, M. Evolution. Oxford: Blackwell Science Ltd, 2006. 752 p. ---- ==== II.IV Links para o trabalho final ==== Para o trabalho final, resolvi seguir com o plano A. Como já explicado, a função tem como finalidade simular a deriva genética. Adicionalmente, fiz também uma função que simula as mudanças nas frequências alélicas por ação da seleção natural. Assim, como produto final, criei a função ''evol'' com a qual o usuário pode simular um modelo de deriva genética ou determinístico. * Link para a página da minha função: [[.:Evolution]]. * Link para a página de ajuda da minha função: [[.:Help]].