library(ggplot2) # Generar gráficos
library(viridis) # Generar paleta de colores
Figura 4
Contingencia histórica en la evolución del genoma
Figura 4 A y 4 B
Para generar las figuras 4A y 4B se tuvieron que seguir varios pasos para procesar los datos, por simplicidad, sólo presentaremos un esquema de los pasos que se siguieron y tomaremos las variables relevantes para generar las figuras.
Esquema
Dificultades
- Los paquetes no estabas especificados.
- La carpeta Breseq indicada, en realidad es la carpeta “Mutation tables” presente en el Github.
- El P value no aparecía en la gráfica de la Figura 4A.
En los heatmap:
- eran cuadrados y los valores del porcentaje iban de 0, 50, 100.
- Los colores no correspondían.
- Los nombres de las mutantes no correspondían.
- El código para las figuras 4 y 5 estaban juntos.
Paquetes
Los paquetes que vamos a cargar son necesarios para las gráficas:
Cargar objetos
Los objetos y variables que cargamos y ocuparemos para esta figura son:
test_gene_df_day6
: Data frame con 2 columnas:sim_coef
ylabel
annotation_day6
: Guarda el texto para el p valor.
breseq_gene_props_day6
: Data frame con 3 columnas:top_gene
,res_gene
ypercent_pops
load("data/ReproHack_data_figures4_5.RData")
Es importante notar que la figura 4 muestra datos para el pase 2, es decir para el día 6 del experimento. Para obetener la figurs 4A se generar boxplots usang ggplot2. Los datos graficados son los de nuestro df: test_gene_df_day6. En este df encontramos los coeficientes de similitud a pares de las 22 poblaciones, la etiquetas nos muestra si tienen la mutación que confiere resistencia en el mismo o en diferente gen. Para colocar el pvalue del test de alotearización se cargó el objeto annotation_day6
<- ggplot(test_gene_df_day6, aes(label, sim_coef)) +
p_day6 geom_boxplot(outlier.shape = NA, width = 0.4, size = 0.8) +
geom_jitter(width = 0.05, size = 2, alpha = 0.2) +
theme_classic(base_size = 18) +
xlab("") +
ylab("Overlap in acquired mutations\n(Pairwise Sørensen-Dice similarity)") +
theme(panel.spacing = unit(3, "lines"),
strip.text = element_text(size = 18, face = "bold")) +
ylim(0.1, 0.55) +
annotate("text", x = 1.5, y = 0.55, label = annotation_day6, size = 6, hjust = 0.5, vjust = 1.5, color = "black")
print(p_day6)
Para el heatmap de las figura 4B usamos ggplot. Nuestra información la tomamos del objeto: breseq_gene_props_day6. Este dataframe nos da información sobre el porcentaje de poblaciones (agrupads por gen de resistencia) que tienen mutación en el top20 de genes.
ggplot(breseq_gene_props_day6, aes(top_gene, res_gene, fill = percent_pops * 100)) +
geom_tile(color = "grey80") +
theme_classic(base_size = 14) +
theme(
axis.text.x = element_text(angle = 90, hjust = 1, size = 10, family = "Arial") # Define all adjustments in one call
+
) scale_fill_viridis(
name = "Populations\nwith mutation (%)",
limits = c(0, 100), # Define scale limits
breaks = c(0, 25, 50, 75, 100) # Define specific breaks to display
+
) ylab("") +
xlab("") +
ggtitle("Day 6 of experimental evolution")