Skip to content

Condition-specific Antibiotic Regimen Assessment using Mechanistic Learning

License

Notifications You must be signed in to change notification settings

sriram-lab/CARAMeL

Repository files navigation

alt text

CARAMeL

Condition-specific Antibiotic Regimen Assessment using Mechanistic Learning

license badge DOI badge

License

Released via GPL GNU License
© 2022 The Regents of the University of Michigan
Chandrasekaran Research Group - https://systemsbiologylab.org/
Contact: [email protected]

Summary

This GitHub repository contains all code files used in data analysis and model development for the CARAMeL publication (citation below).

Chung, C. H., & Chandrasekaran, S. (2022). A flux-based machine learning model to simulate the impact of pathogen metabolic heterogeneity on drug interactions. PNAS Nexus, 1(3), 1–14. https://doi.org/10.1093/pnasnexus/pgac132

Dependencies

Successful implementation of the code files within this repository require the following external installations:

  • MATLAB: preferrably version 2019b or higher
  • Gurobi: optimization solver; preferrably latest version
  • COBRA Toolbox: preferrably clone directly from GitHub

Installation and execution

  1. Install a local version of this repository using the following command in a terminal:
git clone https://github.com/sriram-lab/CARAMeL.git
  1. Ensure to add the CARAMeL repository into your MATLAB path (see instructions here).
  2. You should now be able to run all MATLAB livescript files in the main repository folder.

Repository structure

The repository structure is outlined below. Of note, directories are prefaced by └─── while code/data files are preceded by .


CARAMeL
└───code: contains all relevant code files
│   └───CARAMeL_suite: contains all code files created to implement the CARAMeL approach
│   │   │   caramel.m:                      main script the constructs a CARAMeL model
│   │   │   caramel_anova.m:                conducts a one-way ANOVA to determine GEM reactions with differential flux activity 
│   │   │   caramel_assessPerf.m:           assesses the predictive performance of a CARAMeL model
│   │   │   caramel_auroc:                  calculates the area under the receiver operating curve (AUROC) for a CARAMeL model 
│   │   │   caramel_classify:               classifies drug interactions as synergistic, additive, or antagonistic
│   │   │   caramel_crossValidation.m:      conducts a k-fold cross-validation for a CARAMeL model
│   │   │   caramel_features2gem.m:         extracts GEM reactions associated with top CARAMeL model features
│   │   │   caramel_featurize.m:            implements featurization of raw input data into ML compatible format
│   │   │   caramel_leaveOut.m:             conducts a leave-out analysis for a CARAMeL model
│   │   │   caramel_plot.m:                 generates plots visualizing CARAMeL model performance
│   │   │   caramel_processInteractions.m:  processes drug interaction data into a standardized format
│   │   │   caramel_rankSubsystems.m:       determines metabolic pathways enriched by GEM reactions tied to top CARAMeL features
│   │   │   caramel_screen.m:               screens all possible drug combination outcomes given a list of drugs
│   │   │   caramel_topFeatures.m:          extracts the top CARAMeL model features 
│   └───GEM_functions: contains all code files relevant to simulating metabolism using GEMs
│   │   │   change_media.m:                 changes the simulated media condition for a given GEM
│   │   │   constrain_flux_regulation.m:    simulates reaction fluxes based on omics data constraints
│   │   │   derive_flux.m:                  derives flux simulations for a specified list of conditions
│   │   │   process_flux.m:                 processes simulated flux data into a format compatible with CARAMeL model construction
│   └───misc: folder containing miscellaneous code files
│       └────File_Exchange: code available through MATLAB File Exchange. Direct download links are provided for each method
│       |    └────confusion_matrix:            determines the confusion matrix for two or more classes
│       |    └────hline_vline:                 generates horizontal and vertical lines on MATLAB plots
│       |    └────multiple_boxplot:            generates multiple boxplots in a single MATLAB figure
│       |    └────permn.m:                     determines all possible permutations with repetition
│       |    └────progressbar:                 displays a progress bar to run a piece of code
│       |    └────raacampbell-sigstar-5aabaeb: plots statistical significance stars onto MATLAB plots
│       |    └────randomforest-matlab:         Random Forests implementation in MATLAB
│       └────custom: custom code files created for specific purposes. Refer to function file for details on input/output/usage
│       |    │   extract_from_confMatStats.m:    extracts information from a confusion matrix
│       |    │   extract_metadata.m:             extracts metadata from an Excel file
│       |    │   gscatter2.m:                    generates a 2D group scatter plot
│       |    │   meansgraph.m:                   customized modification to the built-in MATLAB function of the same name
│       |    │   process_chemgen_v2.m:           processes chemogenomic data for E. coli (source)
│       |    │   process_transcriptome_tb.m:     processes transcriptomic data for M. tb (source)
│       |    │   sig_boxplot.m:                  generates a multple boxplot figure with significance annotations
│       └────optGpSampler_1.1_Matlab: code for optGpSampler
│       └────populationFBA: code for population FBA
└───data: contains all data files used for CARAMeL model development and downstream analyses
│   └───supplementary: contains all supplementary data files
│   │   │   ecoli_proteomics.xlsx:          proteomics data for E. coli
│   │   │   ecoli_transcriptomics.xlsx:     transcriptomics data for E. coli
│   │   GEM_info.xlsx:                      data pertaining to flux states simulated using the E. coli and M. tb GEMs
│   │   biolog_PM01_conditions.xlsx:        list of all conditions in the Biolog phenotype microarray 1 (PM01) (source)
│   │   ecoli_chemogenomics.xlsx:           chemogenomic data for E. coli (source)
│   │   ecoli_interactions.xlsx:            drug interaction data for E. coli
│   │   ecoli_media.xlsx:                   details on different media conditions to simulate for the E. coli GEM
│   │   iEK1008.mat:                        M. tb GEM (source)
│   │   iJO1366.xml:                        E. coli GEM (source)
│   │   mtb_interactions.xlsx:              drug interaction data for M. tb
│   │   mtb_transcriptomics.xlsx:           transcriptomic data for M. tb (source)
└───results: contains all results from CARAMeL model analyses
│   │   CARAMeL_summary.xlsx:               summary data from the E. coli CARAMeL model
│   │   plot_data.xlsx:                     Excel file containing data pertinent for figure generation
│   │   CARAMeL_workspace.mat:              [REMOVED DUE TO SIZE LIMIT; ACCESS FILE HERE] MATLAB workspace file
│   CARAMeL_figures.mlx:        MATLAB livescript file that generates plots used in CARAMeL figures
│   CARAMeL_flux.mlx:           MATLAB livescript file that generates GEM flus simulation data for E. coli and M. tb CARAMeL models
│   CARAMeL_logo.png:           PNG file of the CARAMeL logo
│   CARAMeL_main.mlx:           MATLAB livescript file that conducts all main analyses for CARAMeL approach
│   CARAMeL_validations.mlx:    MATLAB livescript file that executes validations discussed in CARAMeL supplementary materials
│   CARAMeL_visualization.Rmd:  R markdown file generating additional plots used for CARAMeL figures
│   LICENSE:                    LICENSE file
│   README.md:                  README file
│   populationFBA.mlx:          MATLAB livescript file that executes code relating to cell-specific predictions

About

Condition-specific Antibiotic Regimen Assessment using Mechanistic Learning

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published