## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 5 ) ## ----load-data---------------------------------------------------------------- library(bsocialv2) # Read the consortia presence/absence matrix consortia <- read.csv( system.file("extdata", "consortia.csv", package = "bsocialv2") ) if (!"Consortia" %in% colnames(consortia)) colnames(consortia)[1] <- "Consortia" # Read the curated (pre-processed) growth parameters curated <- read.csv( system.file("extdata", "curated_MTBE.csv", package = "bsocialv2") ) if (!"Consortia" %in% colnames(curated)) colnames(curated)[1] <- "Consortia" head(consortia) head(curated) ## ----create-object------------------------------------------------------------ obj <- new("bsocial") obj@id_proyecto <- "MTBE_example" # Strain names are all columns in consortia except "Consortia" obj@cepas_seleccionadas <- setdiff(colnames(consortia), "Consortia") # Populate the raw-data list obj@datos_crudos <- list( consortia = consortia, curated = curated ) ## ----transform-curated-------------------------------------------------------- obj <- transform_curated_data(obj) head(obj@datos_procesados) ## ----analyze-growth----------------------------------------------------------- obj <- analyze_growth(obj) # View the scatter plot obj@graficos$growth_scatter # Top 10 consortia by number of generations obj@resultados_analisis$best_10_ngen ## ----analyze-social----------------------------------------------------------- obj <- analyze_social_behavior(obj) # Fitness boxplots (NGen and GR) obj@resultados_analisis$social_behavior$social_generations_plot obj@resultados_analisis$social_behavior$social_gr_plot ## ----summarize-social--------------------------------------------------------- obj <- summarize_social_behavior(obj) # Classification based on number of generations obj@resultados_analisis$summary_gen # Classification based on growth rate obj@resultados_analisis$summary_gr ## ----analyze-diversity-------------------------------------------------------- obj <- analyze_diversity(obj) # Diversity effect on fitness (NGen) obj@graficos$diversity_gen_plot # Diversity effect on fitness (GR) obj@graficos$diversity_gr_plot ## ----analyze-stability-------------------------------------------------------- obj <- analyze_stability(obj) # Stability violin plots obj@graficos$stability_ngen_plot obj@graficos$stability_gr_plot ## ----analyze-biofilm---------------------------------------------------------- obj <- analyze_biofilm_sequence(obj) # The paths are stored as named lists str(obj@resultados_analisis$biofilm_gen_paths, max.level = 2) # Plot the assembly graph (base R plot) obj@graficos$biofilm_gen_plot_func() ## ----raw-workflow, eval = FALSE----------------------------------------------- # library(bsocialv2) # library(readr) # # obj <- new("bsocial") # obj@id_proyecto <- "raw_example" # # # Read consortia matrix # consortia <- read.csv( # system.file("extdata", "consortia.csv", package = "bsocialv2") # ) # if (!"Consortia" %in% colnames(consortia)) colnames(consortia)[1] <- "Consortia" # # obj@cepas_seleccionadas <- setdiff(colnames(consortia), "Consortia") # # # Read plate CSVs # plate_files <- paste0("plate", 1:6, ".csv") # plates <- lapply(plate_files, function(f) { # read_csv(system.file("extdata", f, package = "bsocialv2"), show_col_types = FALSE) # }) # # obj@datos_crudos <- list( # consortia = consortia, # plates = plates, # type = "raw" # ) # # # Step 1: Preprocess raw data (background correction + replicate aggregation) # # groups - integer vector assigning plates to replicate groups # # bg_type - "blank" (subtract blank well) or "threshold" (subtract OD value) # # bg_param - blank well ID (for "blank") or numeric threshold (for "threshold") # obj <- transform_raw_data(obj, # groups = c(1, 1, 2, 2, 3, 3), # bg_type = "blank", # bg_param = "BLANK" # ) # # # Step 2: Calculate growth parameters # obj <- calculate_growth_params(obj, method = "growthcurver") # # # Optional: visualize processed curves # obj <- plot_processed_curves(obj) # obj@graficos$processed_curves_plot # # # Step 3 onwards: same pipeline as curated workflow # obj <- analyze_growth(obj) # obj <- analyze_social_behavior(obj) # obj <- summarize_social_behavior(obj) # obj <- analyze_diversity(obj) # obj <- analyze_stability(obj) # obj <- analyze_biofilm_sequence(obj)