Índice
- O Curso R
-
- Tutoriais
-
- Apostila
-
- 6. Testes de Hipótese (em preparação!)
- Exercícios
-
- Material de Apoio
-
- Área dos Alunos
-
- Cursos Anteriores
-
IBUSP
Outras Insitutições
Linques
Visitantes
Outras Insitutições
Sou Graduada em Ciências Biológicas pela UNICAMP e mestre pelo Programa de Pós Graduação em Ecologia da UNICAMP sob orientação do Prof. Paulo S. Oliveira. Atualmente sou doutoranda pelo mesmo Programa e orientador. Tenho minha formação voltada a ecologia molecular. Em minhas pesquisas tenho especial interesse em descrever os padrões locais de distribuição da diversidade genética intraespecífica, bem como entender os fatores que a determinam e a mantém em sistemas naturais. Atualmente, o sistema biológico com a qual trabalho inclui formigas do Cerrado, embora também tenha interesse em outros sistemas.
Tamanho amostral adequado é essencial em qualquer estudo empírico cujo objetivo seja fazer inferências sobre a população a partir de uma amostragem1). Em geral, avaliar a suficiência amostral é uma prática frequente em trabalhos de ecologia. No entanto, em outras áreas, como genética de populações, tal abordagem ainda é dificilmente incorporada às análises de dados. Alguns trabalhos tem buscado estabelecer generalizações a respeito do tamanho amostral adequado para estimativa de diversidade genética das populações (e.g. Hale et al. 2012). Apesar desse esforço, é sabido que essa suficiência amostral pode variar com o tipo de marcador molecular, nível de polimorfismo dos loci e história natural das espécies. Sendo assim, esta proposta tem como objetivo desenvolver uma função que permita aos pesquisadores interessados em genética de populações avaliar se, dado o conjunto de loci microssatélites genotipado, seu esforço amostral foi suficiente para inferir a diversidade genética das populações ou grupos de indivíduos diplóides sob estudo.
Entrada: sample.suff (dados, col.ID
, col.pop
, col.loci
, na.code
, IC.plot
, gen.div
, nsim
)
col.ID
= número da coluna com identificação dos indivíduos (classe: integer, col.ID
>0)col.pop
= número da coluna com identificação da população a qual o indivíduo pertence (classe: integer, col.pop
>0)col.loci
= intervalo que corresponde às colunas correspondentes aos loci (classe: integer, col.loci
>0)na.code
= código utilizado para dados faltantesIC.plot
= vetor lógico (TRUE/FALSE) indicando se intervalos de confiança devem ser plotadosgen.div
= estimativa de diversidade genética a ser calculada, podendo ser: Heterozigosidade esperada e observada (He e Ho, respectivamente), riqueza alélica (Ar) ou riqueza de alelos privados (pA) (classe: character)nsim
= número de simulações (classe: integer, nsim
>0)mol.marker
, o qual permitirá escolher entre marcadores microssatélites e marcadores SNPs Verificando os parâmetros
col.ID
, col.pop
e col.loci
são números inteiros e maiores que zero? Se não, pára e escreve: “col.ID, col.pop e col.loci devem ser números inteiros maiores que zero”IC.plot
é um vetor lógico? Se não, pára e escreve: “IC.plot deve ser um vetor lógico (TRUE/FALSE)”gen.div
é um objeto da classe character com uma das opções de estimativa de diversidade genética (He, Ho, Ar, pA)? Se não, pára e escreve: “gen.div deve ser uma das opções: “He”, “Ho”, “Ar”, “pA” ”nasim
é um número inteiro maior que zero? Se não, pára e escreve: “nasim deve ser um número inteiro maior que zero”nasim
for menor que 1000, continua, mas dá um warning: “Um número baixo de simulações pode afetar seus resultados!”Pseudo-código
dados
(data frame) em objeto genind (para isso, os argumentos col.ID
, col.pop
e col.loci
serão usadossimula.allpop
como sendo uma lista vazia (permite inserção de quantos objetos forem necessários dentro da lista)for
com contador i
de 1 até o número total de populações. Ou seja, para cada população irá fazer:simula.media
com NAs correspondente ao número de indivíduos da populaçãosimula.ICsup
com NAs correspondente ao número de indivíduos da populaçãosimula.ICinf
com NAs correspondente ao número de indivíduos da populaçãofor
com contador j
de 1 até número de indivíduos da populaçãosimula.nind
com NAs correspondente a nsim
k
de 1 até nsim
gen.div
para uma subamostragem de tamanho j
da população (usar função sample com size=j e replace=T). Cada simulação é armazenada no objetosimula.nind
na posição k
simula.nind
no objeto simula.media
na posição j
simula.nind
no objeto simula.ICsup
na posição j
simula.nind
no objeto simula.ICinf
na posição j
simula.allpop
na posição i
um data frame com 5 colunas sendo elas: numero de individuos amostrados (de 1 até número total de indivíduos na população), populacao (nome da população repetido em todas as linhas), media (médias armazenadas no objeto simula.media
), ICsup (intervalos de confiança superiores armazenados no objeto simula.ICsup
), ICinf (ntervalos de confiança inferiores armazenados no objeto simula.ICinf
)simula.allpop
em um único data frame gen.div.rarefaction
IC.plot
for igual a TRUE, plotar no gráfico as linhas correspondentes aos intervalos de confiança superiores e inferiores das simulações. Nesse caso, as linhas devem ser da cor da população correspondente, mas com um tipo diferente. Legenda deve conter as cores das populações e o que cada tipo de linha indica.gen.div.rarefaction
Saída
gen.div.rarefaction
), contendo, para cada população, a média e os intervalos de confiança superior e inferior da estimativa de diversidade genética em cenários simulados com diferentes números de indivíduos.Comentários Vitor Rios
Resposta aos Comentários
A população brasileira tem sido, com alta frequência, alvo de doenças como desnutrição, obesidade, diabetes e hipertensão, todas amplamente associadas a hábitos alimentares inadequados. Frente a isso, esforços governamentais tem sido aplicados a fim de de orientar os brasileiros a terem uma alimentação mais saudável e com escolhas alimentares adequadas. Para atingir esse objetivo, o Ministério da Saúde lançou o “Guia alimentar para uma alimentação saudável”4)5), o qual é atualizado periodicamente. Com o intuito de auxiliar a adequação alimentar de brasileiros adultos, essa proposta tem a finalidade de desenvolver uma função que avalie se uma pessoa:
Caso o peso e alimentação não estejam de acordo com as estimativas ideais, e se for do desejo da usuário, a função pode retornar um objeto com sugestões de consumo diário variado para uma alimentação saudável que esteja de acordo com as orientações do Ministério da Saúde.
Entrada: adeq.alimentar (recordatorio.semanal, peso
, altura
, idade
, sexo
, ativ.fisica
, cardapio
)
peso
= massa do usuário em quilogramas (classe: numeric, peso
>0)altura
= altura do usuário em metros (classe: numeric, altura
>0)idade
= idade do usuário em anos (classe: integer, 19<idade
<65)sexo
= sexo do usuário (classe: character, devendo ser “H” para homens ou “M” para mulheres)ativ.fisica
= intensidade da atividade física realizada pelo usuário (classe: character, podendo ser “sedentario”, “pouco ativo”, “ativo” ou “muito ativo”)cardapio
= vetor lógico (TRUE/FALSE) indicando se sugestões de consumo diário variado para adequação alimentar devem ser geradas Verificando parâmetros
peso
e altura
são números maiores que zero? Se não, pára e escreve: “peso e altura devem ser números maiores que zero”idade
é um némero inteiro maior que 19 e menor que 65? Se não, aparecer um warning: “Cálculos incluídos nesta função foram desenvolvidos para indivíduos adultos. Para crianças, adolescentes e idosos há cálculos específicos que não estão incluídos nessa função!”sexo
é igual a “H” ou “M”? Se não, pára e escreve: “sexo deve ser H (para homens) ou M (para mulheres”ativ.fisica
é um objeto da classe character com uma das opções de intensidade da atividade física (sedentario, pouco ativo, ativo ou muito ativo? Se não, pára e escreve: “ativ.fisica deve ser uma das opções: “sedentario”, “pouco ativo”, “ativo” ou “muito ativo” ”cardapio
é um vetor lógico? Se não, pára e escreve: “cardapio deve ser um vetor lógico (TRUE/FALSE)”Pseudo-código
pi
6) sexo
= “H”, IMC desejável = 22 Kg/m2sexo
= “M”, IMC desejável = 21 Kg/m2ap
⇒ ap
= (peso
/pi
)*100ap
≤ 70, colocar um texto no gráfico “Desnutrição grave”ap
≤ 80, colocar um texto no gráfico “Desnutrição moderada”ap
≤ 90, colocar um texto no gráfico “Desnutrição leve”ap
≤ 110, colocar um texto no gráfico “Eutrofia (dentro do peso ideal)”ap
≤ 120, colocar um texto no gráfico “Soprepeso”ap
> 120, colocar um texto no gráfico “Obesidade”ativ.fisica
por valor correspondentesexo
= “H”:ativ.fisica
= “sedentario” substitui pelo valor 1ativ.fisica
= “pouco ativo” substitui pelo valor 1.11ativ.fisica
= “ativo” substitui pelo valor 1.25ativ.fisica
= “muito ativo” substitui pelo valor 1.48sexo
= “M”:ativ.fisica
= “sedentario” substitui pelo valor 1ativ.fisica
= “pouco ativo” substitui pelo valor 1.12ativ.fisica
= “ativo” substitui pelo valor 1.27ativ.fisica
= “muito ativo” substitui pelo valor 1.45nee
para o peso
sexo
= “H” usar a fórmula: 662 - (9.53 * idade
) + ativ.fisica
* (15.9 * peso
) + (539.6 * altura
)sexo
= “M” usar a fórmula: 354 - (6.91 * idade
) + ativ.fisica
* (9.36 * peso
) + (726 * altura
)recordatorio.semanal$n.refeicoes
e armazenar no objeto mean.n.refeicoes
mean.n.refeicoes
é significativamente diferente de 58)recordatorio.semanal$P
em relação a nee
e armazenar nos objetos ICsup.p
e ICinf.p
, respectivamenteICsup.p
e ICinf.p
estiverem contidos no intervalo de 15% a 20%9), escrever “Seu consumo diário de proteínas está bom!”recordatorio.semanal$L
em relação a nee
e armazenar nos objetos ICsup.l
e ICinf.l
, respectivamenteICsup.l
e ICinf.l
estiverem contidos no intervalo de 20% a 30%10), escrever “Seu consumo diário de lipídios está bom!”recordatorio.semanal$C
em relação a nee
e armazenar nos objetos ICsup.c
e ICinf.c
, respectivamenteICsup.c
e ICinf.c
estiverem contidos no intervalo de 45% a 65%11), escrever “Seu consumo diário de carboidratos complexos está bom!”recordatorio.semanal$A
em relação a nee
e armazenar nos objetos ICsup.a
e ICinf.a
, respectivamenteICsup.a
e ICinf.a
estiverem contidos no intervalo de 0% a 10%12), escrever “Seu consumo diário de açucares simples está bom!”cardapio
= TRUEnee.ideal
para o pi
sexo
= “H” usar a fórmula: 662 - (9.53 * idade
) + ativ.fisica
* (15.9 * pi
) + (539.6 * altura
)sexo
= “M” usar a fórmula: 354 - (6.91 * idade
) + ativ.fisica
* (9.36 * pi
) + (726 * altura
)sugestoes.diarias
da classe lista vazioap
≤ 110, entrar em um ciclo for
com contador i
de 1 até 7i
amostrar alimentos (com reposição) tal que a soma total de kcal seja igual a nee
e cuja partição respeite as porcentagens de cada grupo de alimentos sugeridas pelo Ministério da saúde14). Armazenar cada ciclo em sugestoes.diarias[i]
ap
< 90, entrar em um ciclo for
com contador i
de 1 até 7i
amostrar alimentos (com reposição) tal que a soma total de kcal seja igual a nee.ideal
+ 500 cal e cuja partição respeite as porcentagens de cada grupo de alimentos sugeridas pelo Ministério da saúde. Armazenar cada ciclo em sugestoes.diarias[i]
ap
> 110, entrar em um ciclo for
com contador i
de 1 até 7i
amostrar alimentos (com reposição) tal que a soma total de kcal seja igual a nee.ideal
- 500 cal e cuja partição respeite as porcentagens de cada grupo de alimentos sugeridas pelo Ministério da saúde. Armazenar cada ciclo em sugestoes.diarias[i]
sugestoes.diarias
Saída
sugestoes.diarias
), contendo, para cada dia da semana, uma lista de sugestões de alimentos adequados para manutenção, ganho ou perda de peso do usuário e que respeita a proporção diária de cada grupo de alimento sugerida pelo Ministério da Saúde.
Observações adicionais: Dadas as condições que devem ser respeitadas em cada ciclo for
da proposta B e minhas limitações como usuária do R, para desenvolver tais ciclos provavelmente será necessário ajuda dos monitores. Por isso, os ciclos não estão bem desenvolvidos nesta proposta.
Link para a página com a proposta escolhida, incluindo alterações e respectivas justificativas: Proposta escolhida
Link para a página com o código e o arquivo da função: Função sample.suff
Link para a página com o help e o arquivo contendo o conjunto de dados de exemplo para executar a função: Página de ajuda (help) da função sample.suff
pi
= IMC desejável para adultos * altura
2pi
que ainda é considerada como peso ideal$tipo
correspondente ao grupo de alimentos