Antes de começar a responder as perguntas, vamos carregar os pacotes necessários para a análise de dados:
library(tidyverse)
library(readxl)
library(ggpmisc)
Discuta a seguinte afirmação: “Organismos são uma coleção de partes independentes que podem ser otimizadas pela seleção natural”. Você considera que esta afirmação corresponde à situação encontrada na maioria dos organismos? Por quê?
R: Essa afirmação está incorreta, uma vez que as partes de um organismo apresentam correlações fenotípicas entre si, que por muitas vezes são decorrentes de correlações genotípicas. Essa visão de mundo é conhecida como modularidade.
Calcule as correlações fenotípicas entre altura, peso e pé na geração filial e na geração parental (use os dados já como desvios as médias para os filhos/filhas e use a média do casal para as 3 variáveis). Para o peso lembre-se que para a geração parental temos peso1 e peso2, logo você pode calcular as correlações entre os 3 caracteres usando tanto peso1 e peso2 na geração parental. As correlações fenotípicas são parecidas entre as gerações?
# Lendo a tabela
alunos_tbl <-
read_xlsx("prova bio 208 2022 selevao.xlsx")
# 2)
## Correlações Fenotípicas na mesma geração
### Separando as variáveis de interesse
vars_tbl <-
alunos_tbl |>
select(Des_Altura_F1, Des_Peso_f1, Des_Pé_F1,
Alt_casal, Peso_Casal, Pe_Casal)
# Tabela apresentando as correlações
tibble(
geracao = c("Filial", "Parental"),
alt_peso = c(cor(vars_tbl$Des_Altura_F1, vars_tbl$Des_Peso_f1),
cor(vars_tbl$Alt_casal, vars_tbl$Peso_Casal)),
alt_pe = c(cor(vars_tbl$Des_Altura_F1, vars_tbl$Des_Pé_F1),
cor(vars_tbl$Alt_casal, vars_tbl$Pe_Casal)),
pe_peso = c(cor(vars_tbl$Des_Pé_F1, vars_tbl$Des_Peso_f1),
cor(vars_tbl$Pe_Casal, vars_tbl$Peso_Casal))
)
## # A tibble: 2 × 4
## geracao alt_peso alt_pe pe_peso
## <chr> <dbl> <dbl> <dbl>
## 1 Filial 0.490 0.808 0.670
## 2 Parental 0.464 0.739 0.478
Estas correlações apontam que os caracteres são independentes ou que eles compartilham variação?
R: Os valores das correlações apontam que os caracteres compartilham variação, alguns mais do que outros.
Agora faça os gráficos de dispersão (scatterplot) para as correlações entre pais e filhos (ou seja, altura dos filhos x peso2 dos pais, peso dos filhos x altura dos pais e assim sucessivamente para todos os pares de variáveis). Para essas análises utilize apenas o peso2 dos parentais já que sabemos que o peso1 atual é muito afetado pelo ambiente.
# Gráficos de Dispersão Variável Filhos x Variável Pais
df_to_plot <-
vars_tbl |>
mutate(row_n = row_number()) |>
pivot_longer(c(Alt_casal, Peso_Casal, Pe_Casal),
names_to = "key_p",
values_to = "values_p") |>
pivot_longer(c(Des_Altura_F1, Des_Peso_f1, Des_Pé_F1),
names_to = "key_f",
values_to = "values_f")
df_to_plot |>
ggplot(aes(values_p, values_f)) +
geom_point() +
facet_grid(key_f ~ key_p) +
geom_smooth(method = "lm", se = FALSE) +
stat_poly_line() +
stat_poly_eq(aes(label = after_stat(eq.label))) +
stat_poly_eq(label.y = 0.9) +
labs(x = "Valores dos Pais", y = "Valores dos Filhos") +
theme_bw()
## `geom_smooth()` using formula 'y ~ x'
Calcule as médias destas correlações para ter uma estimativa da correlação genética de cada par de caracteres (exemplo: a média das duas correlações entre altura parental (casal) x peso filial e peso2 parental (casal) x altura filial te dá a correlação genética entre altura e peso nesta amostra). Estas correlações devem ser próximas das correlações genéticas aditivas entre estes caracteres (um tema bastante debatido e complexo do ponto de vista estatístico e que, portanto, não iremos abordar em detalhes no curso, mas que para todos os efeitos aqui serve como uma aproximação boa dessas correlações). Considerem agora estas correlações genéticas (aproximadas) e os resultados dos QTLs da letra (d). Estes caracteres (altura, peso e pé) são geneticamente independentes?
# Correlações entre todos os pares de caracteres entre gerações
all_cors <- tibble(
corr_type = c("AltPaisxAltFilhos",
"AltPaisxPeFilhos",
"AltPaisxPesoFilhos",
"PePaisxAltFilhos",
"PePaisxPeFilhos",
"PePaisxPesoFilhos",
"PesoPaisxAltFilhos",
"PesoPaisxPeFilhos",
"PesoPaisxPesoFilhos"),
corr_value = c(
cor(vars_tbl$Alt_casal, vars_tbl$Des_Altura_F1),
cor(vars_tbl$Alt_casal, vars_tbl$Des_Pé_F1),
cor(vars_tbl$Alt_casal, vars_tbl$Des_Peso_f1),
cor(vars_tbl$Pe_Casal, vars_tbl$Des_Altura_F1),
cor(vars_tbl$Pe_Casal, vars_tbl$Des_Pé_F1),
cor(vars_tbl$Pe_Casal, vars_tbl$Des_Peso_f1),
cor(vars_tbl$Peso_Casal, vars_tbl$Des_Altura_F1),
cor(vars_tbl$Peso_Casal, vars_tbl$Des_Pé_F1),
cor(vars_tbl$Peso_Casal, vars_tbl$Des_Peso_f1)
)
)
all_cors
## # A tibble: 9 × 2
## corr_type corr_value
## <chr> <dbl>
## 1 AltPaisxAltFilhos 0.580
## 2 AltPaisxPeFilhos 0.391
## 3 AltPaisxPesoFilhos 0.238
## 4 PePaisxAltFilhos 0.541
## 5 PePaisxPeFilhos 0.529
## 6 PePaisxPesoFilhos 0.266
## 7 PesoPaisxAltFilhos 0.279
## 8 PesoPaisxPeFilhos 0.192
## 9 PesoPaisxPesoFilhos 0.196
# Altura x Pe
all_cors |>
filter(corr_type == "AltPaisxPeFilhos" | corr_type == "PePaisxAltFilhos") |>
summarise(mean_cor = mean(corr_value))
## # A tibble: 1 × 1
## mean_cor
## <dbl>
## 1 0.466
# Altura x Peso
all_cors |>
filter(corr_type == "AltPaisxPesoFilhos" | corr_type == "PesoPaisxAltFilhos") |>
summarise(mean_cor = mean(corr_value))
## # A tibble: 1 × 1
## mean_cor
## <dbl>
## 1 0.258
# Pe x Peso
all_cors |>
filter(corr_type == "PePaisxPesoFilhos" | corr_type == "PesoPaisxPeFilhos") |>
summarise(mean_cor = mean(corr_value))
## # A tibble: 1 × 1
## mean_cor
## <dbl>
## 1 0.229
R: Não. Os três caracteres compartilham em algum grau a variação genética, visto pela média das correlações entre os caracteres
Com os resultados da letra “e” em mente vamos agora finalmente olhar para a evolução destes caracteres. Imagine que São Paulo foi invadido por ETs que querem transformar uma parte da população em pilhas para gerar energia***. A outra parte da humanidade em São Paulo será mantida como matrizes/escravos para continuar produzindo pilhas para os ETs. Os ETs, apesar de tecnologicamente avançados não sabem nada de genética e discutem 4 cenários possíveis para a escolha de quem irá ser pilha e quem irá sobreviver: Os mais altos sobrevivem, os menos pesados sobrevivem, os com tamanho de pé maiores sobrevivem e finalmente uma combinação das 3 coisas (mais alto, menos pesado e com maior pé) sobrevivem. Estes cenários estão representados nas últimas colunas da planilha pelas variáveis Seleção_Altura, Seleção_peso, Seleção_Pé e Seleção_3_caracteres (0 vira pilha e 1 sobrevive). Lembrem-se que os ETs aplicam a seleção sobre a geração parental mas como a reprodução já aconteceu as famílias com zero de aptidão viram pilha e as com 1 permanecem vivas (pais e filhos). Logo, nas últimas colunas vocês têm o resultado de como os ETs classificaram quem sobrevive e quem morre (famílias inteiras) baseados nos fenótipos da geração parental. O que aconteceu com o peso, altura, e pé médio? (para responder a esta pergunta simplesmente olhe para as médias dos desvios de altura, peso e pé na geração filial dos indivíduos do grupo 1 para cada cenário. Estas já serão diretamente estimativas de desvios a média na geração filial já que a seleção ocorreu neste estágio de vida.).
## Exercício 3
ex3 <- alunos_tbl |>
mutate(alunoID = row_number())
### Cenário 1
ex3 |>
filter(Sel_Altura == 1) |>
select(alunoID, Des_Altura_F1, Des_Peso_f1, Des_Pé_F1) |>
pivot_longer(-alunoID, names_to = "type", values_to = "values") |>
group_by(type) |>
summarise(mean_var = mean(values))
## # A tibble: 3 × 2
## type mean_var
## <chr> <dbl>
## 1 Des_Altura_F1 2.87
## 2 Des_Pé_F1 0.474
## 3 Des_Peso_f1 0.543
### Cenário 2
ex3 |>
filter(Sel_peso1 == 1) |>
select(alunoID, Des_Altura_F1, Des_Peso_f1, Des_Pé_F1) |>
pivot_longer(-alunoID, names_to = "type", values_to = "values") |>
group_by(type) |>
summarise(mean_var = mean(values))
## # A tibble: 3 × 2
## type mean_var
## <chr> <dbl>
## 1 Des_Altura_F1 -2.36
## 2 Des_Pé_F1 -0.640
## 3 Des_Peso_f1 -4.83
### Cenário 3
ex3 |>
filter(Sel_Pe == 1) |>
select(alunoID, Des_Altura_F1, Des_Peso_f1, Des_Pé_F1) |>
pivot_longer(-alunoID, names_to = "type", values_to = "values") |>
group_by(type) |>
summarise(mean_var = mean(values))
## # A tibble: 3 × 2
## type mean_var
## <chr> <dbl>
## 1 Des_Altura_F1 2.97
## 2 Des_Pé_F1 0.687
## 3 Des_Peso_f1 2.29
### Cenário 4
ex3 |>
filter(Sel_3_caracteres == 1) |>
select(alunoID, Des_Altura_F1, Des_Peso_f1, Des_Pé_F1) |>
pivot_longer(-alunoID, names_to = "type", values_to = "values") |>
group_by(type) |>
summarise(mean_var = mean(values))
## # A tibble: 3 × 2
## type mean_var
## <chr> <dbl>
## 1 Des_Altura_F1 1.16
## 2 Des_Pé_F1 -0.436
## 3 Des_Peso_f1 -3.91
Só altura respondeu a seleção feita sobre altura ou os outros dois caracteres também responderam? E nos outros cenários só a característica sob seleção respondeu?
R: Em todos os cenários, todos os caracteres responderam a seleção. O que diferencia os cenários é a intensidade dessa mudança. Observando o apenas o caráter selecionado, o valor da sua mudança é maior que a mudança nos outros caracteres (menos no caso do Pé sendo exclusivamente selecionado, por que?).
E no caso mais complexo que era para aumentar a altura e diminuir o
peso e aumentar o comprimento do Pé, a seleção foi efetiva em alterar a
média da geração filial? Olhe para altura e pé, as diferenças são
pequenas ou grandes?
R: Nesse caso, a seleção conseguiu aumentar a altura e
diminuir o peso. Porém, devido às correlações fenotípicas existentes,
não foi possível aumentar o comprimento do pé. Na verdade, o que
aconteceu foi que o comprimento do pé diminuiu também!
Explique esses resultados e discuta em relação a modularidade e suas
causas e a implicação disso para evolução sob seleção. É possível um
caráter evoluir na direção oposta a que a seleção atua?
*** Qualquer semelhança com qualquer filme que você já tenha visto é
mera coincidência já que esta é uma obra de ficção :p
R: Sim! Um caráter pode evoluir para uma direção “não ótima”. Devido às correlações genotípicas e fenotípicas entre os caracteres, estes não evoluem independentemente nos organismos. Por conta da presença dos módulos, um caráter sendo selecionado terá efeitos em sua constituição genética. Por sua vez, essa base genética pode estar afetando outros caracteres, através de efeitos pleiotrópicos. Portanto, ao alterar essa base genética, o que será feito é a alteração de todo um módulo, pois os caracteres dentro deste módulo estão correlacionados. Caracteres podem evoluir mesmo não sendo selecionados, e a direção dessa mudança pode seguir caminhos diferentes da melhor aptidão para o caráter.