Retos y problemas con el código

Ausencia de instrucciones

Reto 1

En el código no se mencionaba con que paquetes realizaban la importación de los datos de excel que te daban, solo daban instrucciones como la siguiente:

Cargar informacion de “Costs_of_Res.xlsx” como variable costs_of_res.

Solución: En este caso decidimos usar el paquete readxl para la importación de archivos.


Reto 2

Para graficar la figura 2, el código mencionaba la variable LOR_res_long, sin embargo esta variable no se encontraba declarada en el código. Solo daba el siguiente fragmento:

ggplot(LOR_res_long[!LOR_res_long$isolate %in% c("FMS6","SNK6"),], aes(passage*3,value*100,group=isolate,color=(isolate%in%c("SNK7","QAC5","VCM4")))) +
  geom_point(size=4.5,shape=18) +
  geom_line(size=0.8)+theme_classic() +
  guides(color=F)+scale_color_brewer(palette="Dark2") + 
  scale_x_continuous(breaks=c(0,12,24,36)) + 
  theme_classic(base_size=16) + 
  ylab("Proportion of phage sensitivity in population (%)") +
  xlab("Day of experimental evolution") + 
  theme(axis.title.y=element_text(size=14))

Solución: Agregamos todo el código de inicio a fin en Chatgpt y le solicitamos que nos dijera cómo generar la variable X a partir de los datos que le dimos. Logrando obtener la información faltante.


Reto 3

Variables erróneas colocadas en el código. Para la figura 3 menciona que se usa la variable Prop_R_P12, sin embargo sta variable no existe si no que se llama Prop_S_P12.

Solución: corregimos el código cambiando la variable.

Retos figuras 4 y 5

Reto 1

En el código no se especificaban los paquetes que se utilizarían, ni se mencionaban los paquetes necesarios para la importación de datos desde archivos de Excel. Solución: En este caso decidimos usar los paquetes readxl para la importación de archivos, ggplot2 para la generación de gráficas y vidiris para la paleta de colores.


Reto 2

En el código no se mencionaba cómo se generaba la variable Breseq. Solución: Esta variable se generaba a partir de las tablas presentes en la carpeta Mutation tables.


Reto 3

En el código para la figura 4A no había una línea para agregar el p value. Solución: Agregamos este fragmento al código:

# Prepare data
test_gene_df_day6 <- data.frame(
  sim_coef = c(test_same_P2_day6, test_diff_P2_day6),
  label = c(rep("Same\nresistance\ngene", length(test_same_P2_day6)), rep("Different\nresistance\ngene", length(test_diff_P2_day6)))
)
colnames(test_gene_df_day6) <- c("sim_coef", "label")
test_gene_df_day6$label <- factor(test_gene_df_day6$label, levels = c("Same\nresistance\ngene", "Different\nresistance\ngene"))

# Calculate day 6 p-value
p_value_P2_day6 <- length(perm_gene_P2_day6[perm_gene_P2_day6 >= test_gene_P2_day6]) / length(perm_gene_P2_day6)
print(p_value_P2_day6)

# Set up p-value annotation
if (p_value_P2_day6 < 0.001) {
  annotation_day6 <- "p < 0.001***"
} else {
  annotation_day6 <- paste0("p = ", format(p_value_P2_day6, digits = 3))
}


Reto 4

En el código de los Heatmaps, los nombres de las mutantes no correspondían, los colores del heatmap no correspondían y había algunos símbolos que fueron modificados. Solución: Acomodamos los nombres de las mutantes, utilizamos la librería vidiris y la familia tipografica Arial.


Reto 5

En el código no aparecía el análisis para la figura 5. Solución: El código tuvo que ser dividido en 2 partes para generar la aleatorizacion del día 6 y del día 36 por separado.