SIGMA is a framework that converts curated prior knowledge into causally interpretable, elementally balanced signal-transduction cascades that connect source species to target species.
This repository contains the MATLAB implementation of SIGMA together with the data, models, and study-specific scripts used in the manuscript "Mechanistic reconstruction of receptor-to-transcription factor signaling integrating prior knowledge and omics".
With this repository you can:
- Reproduce the analyses and outputs reported in the manuscript.
- Use the provided Reactome or curated SIGMA model to connect your own species of interest.
- Rebuild the workflow from scratch to generate your own curated SIGMA model and run your own case studies.
Mechanistic reconstruction of receptor-to-transcription factor signaling integrating prior knowledge and omics. David Liaskos, Omid Oftadeh, Margherita Tonini, Maria Masid, Vassily Hatzimanikatis.
Repository download
Large binary files are tracked with Git LFS:
git clone https://github.com/EPFL-LCSB/sigma.git
cd sigma
git lfs install
git lfs pullSoftware
MATLAB
SIGMA was developed and tested with MATLAB R2024b. Other MATLAB versions may also work, but were not systematically tested. The MATLAB installation must include the Statistics and Machine Learning Toolbox add-on.
IBM ILOG CPLEX
SIGMA uses IBM ILOG CPLEX as the optimization solver. The version used in this work was obtained via the IBM Academic Initiative. We recommend CPLEX 12.10, which has been extensively tested in this workflow. Please ensure that MATLAB, CPLEX, and your operating system are mutually compatible according to IBM's official compatibility information.
Python (optional, only for re-parsing raw Reactome SBML files)
If you want to rebuild the parsed Reactome
species/andreactions/tables from raw SBML pathway files, the parserdata/REACTOME_homo_sapiens/SIGMA_parser.pyalso requires Python withlibsbml,pandas, andtqdm.
- Open MATLAB with the repository root as the current working directory.
All scripts use relative paths such as
./data/and./models/. - Duplicate
config_paths_template.mand save the copy asconfig_paths.m. - Edit
config_paths.mand replace the placeholder CPLEX path with your local installation path.
Important: config_paths.m is machine-specific, should stay local, and
should not be committed.
code/: internal MATLAB functions used by the main scripts.data/: input data, curated pathway selections, case-study templates, and omics files.models/: precomputed Reactome and curated SIGMA models.output/: generated network tables, cascade results, enrichment results, visualizations, and saved workspaces.
Choose the workflow that matches your goal.
Use this route if you want to rerun the study-specific analyses included in the manuscript.
Run the following scripts in this order:
create_reactome_model.midentify_receptors.midentify_TFs.mcreate_SIGMA_model.mconnect_all_receptors_to_all_TFs_balanced.mconnect_TGFB_to_SP1_core.mconnect_TGFB_to_SP1.menrich_SIGMA_pathways.m
The study-specific inputs used by these scripts are already included in the repository, in particular:
data/pathways_curation/data/case_studies/SIGMA_TGFB_to_SP1_nodes/data/omics_data/
The main output folders generated by this workflow are:
output/Reactome_model/output/SIGMA_model/output/SIGMA_all_receptors_to_all_TFs_balanced/output/SIGMA_TGFB_to_SP1_core/output/SIGMA_TGFB_to_SP1/output/PEA_Tcells/
If you only want to inspect the published models and results, they are already
provided in models/ and output/ and do not need to be regenerated.
Use this route if you want to extract cascades for your own source-target pairs while reusing one of the provided models:
models/reactome_model.matmodels/SIGMA_model.mat
The reusable cascade-extraction template is:
connect_species_template.m
Recommended workflow:
- Copy
connect_species_template.mto a new user script, for exampleconnect_my_case_study.m. - Set
model_nametoreactomeorSIGMA. - Set a unique
output_folder_nameso you do not overwrite the existing study outputs. - Create a folder under
data/case_studies/for your case study, for exampledata/case_studies/my_case/. - Add one or more
.xlsxfiles to that folder. Each file must contain the columnsStartandTargetand use valid species IDs.
The included case-study example has the following format:
Start Target
species_170842 species_2187302
For the included SIGMA model, valid species identifiers are directly available for receptor and transcription-factor species in:
output/SIGMA_model/SIGMA_receptors_list.xlsxoutput/SIGMA_model/SIGMA_tfs_list.xlsx
If you want to use other species from the Reactome or SIGMA models, retrieve
their IDs directly from the loaded MATLAB model structure, for example from
model.mets together with model.metNames.
Optional omics files can be added to data/omics_data/. The expected CSV
formats are:
Absolute data:
UniProtID,expression_value
Differential data:
UniProtID,log2FoldChange,padj
If you do not want to run balanced cascade enrichment analysis (BCEA), set
path_enrichment = 'No' in your copied script.
After editing the template parameters and input paths, run your copied script.
Results will be written to output/<output_folder_name>/.
Use this route if you want to create your own curated signaling model before running cascade extraction.
Step 1: prepare the Reactome input data
- If you want to work with the Reactome release already included in this
repository, you can reuse the existing parsed files in
data/REACTOME_homo_sapiens/species/anddata/REACTOME_homo_sapiens/reactions/. - If you want to update to a different Reactome release, place the raw Homo
sapiens SBML files in the input folder expected by the parser
(by default
data/REACTOME_homo_sapiens/homo_sapiens.3.1_06_12_2024/), update the paths indata/REACTOME_homo_sapiens/SIGMA_parser.pyif needed, and run the parser to regenerate thespecies/andreactions/CSV tables.
Step 2: regenerate the generic Reactome resources
- Run
create_reactome_model.m. - Run
identify_receptors.m. - Run
identify_TFs.m.
Step 3: define your curated SIGMA model
Edit data/pathways_curation/pathways_curation.xlsx to specify the pathways
and curated additions that should define your model. In particular, this file
contains the pathways, dashed_lines, and pathway_connections sheets
used during model construction.
The default create_SIGMA_model.m script builds the published SIGMA model.
If you want to keep the included model untouched, first duplicate that script
and give your custom version a new model_name and output_folder_name.
Otherwise, the default script will overwrite models/SIGMA_model.mat and
output/SIGMA_model/.
Step 4: build the model
Run your customized SIGMA model-construction script. This creates:
- the model files in
models/ - network tables in
output/<output_folder_name>/ - automatically generated receptor-TF pair files in
output/<output_folder_name>/<model_name>_receptors_TFs_nodes/
Step 5: run downstream analyses on your new model
After the model is built, you can continue in one of three ways:
- Use a copied version of
connect_species_template.mto analyze your own case-study pairs. - Adapt
connect_all_receptors_to_all_TFs_balanced.mif you want to scan many receptor-TF connections from the generated<model_name>_receptors_TFs_nodes/directory. - Adapt
enrich_SIGMA_pathways.mif you want pathway enrichment analysis on your custom model.
When you customize the model name or output folder, make sure the downstream
scripts point to the matching files in models/ and output/.
This repository is released under the Apache License 2.0.