Available Building Blocks

This section provides general descriptions of existing PerMedCoE Building Blocks, as well as links to building block GitHub repositories. For detailed documentation, see the individual building block folders in the PerMedCoE Building Blocks repository. The repository also contains Singularity (Apptainer) definition files.

High-throughput Mutant Analysis

This building block uses MaBoSS to screen all the possible knockouts of a given Boolean model. It produces a candidate gene list formatted as a text file (single gene per row). More information on MaBoSS can be found in [Stoll G. et al. (2017)](https://academic.oup.com/bioinformatics/article-lookup/doi/10.1093/bioinformatics/btx123) and in the [MaBoSS GitHub repository](https://github.com/maboss-bkmc/MaBoSS-env-2.0).

Building block GitHub repository

Meta-analysis of PhysiBoSS Output

This building block is designed to analyse the set of simulations generated for each individual in order to assess whether any of the parameters of interest show a differential distribution between the phenotypic subgroups included in a sample. To do so, the building block processes the output generated by the patient-personalized PhysiBoSS runs, including for each individual a given number of replicates of both wild-type and mutant experiments.

With this information, the building block can be used to assess the degree of uncertainty for each parameter and determine whether there are significant differences between the different subgroups, described both graphically and numerically.

Building block GitHub repository

Personalise Patient

This building block tailors a given MaBoSS Boolean model to a given RNAseq dataset of interest. This RNAseq dataset can come from the Single cell processing building block and needs to be normalised as described in [Béal et al. (2019)](https://www.frontiersin.org/articles/10.3389/fphys.2018.01965/full?field=&journalName=Frontiers_in_Physiology&id=369984) and in the [PROFILE GitHub repository](https://github.com/sysbio-curie/PROFILE). The Single-cell Processing building block performs this normalisation step.

Another option of this building block is to personalise a given MaBoSS model using cell line information such as mutations, copy number alterations and expression counts.

Building block GitHub repository

PhysiBoSS

This building block is used to perform a multiscale simulation of a population of cells using PhysiBoSS. The tool uses the different Boolean models personalised by the Personalise patient building block and with the mutants selected by the High-throughput mutant analysis building block. More information on this tool can be found in [Ponce-de-Leon et al. (2022)](https://www.biorxiv.org/content/10.1101/2022.01.06.468363v1) and the [PhysiBoSS GitHub repository](https://github.com/PhysiBoSS/PhysiBoSS).

Building block GitHub repository

Single-cell Processing

This building block enables the processing and analysis of single-cell RNA-Seq data from each patient in a sample. The first step of the protocol includes quality control, filtering and normalisation of the count matrices at the cellular level. Next, the number of variable genes in each individual is determined and the corresponding scaled matrices are obtained, allowing in the next step the application of dimensionality reduction techniques such as PCA, T-SNE and UMAP.

Finally, cells are clustered using graph-based techniques and annotated to their corresponding cell type, enabling subsequent building blocks to select and work with the set of cells that are relevant to the disease under study (e.g. epithelial cells in COVID19 disease).

Building block GitHub repository

Build Model from Genes

This building block performs automatic network construction using OmniPath and pypath. This enables the generation of a Boolean model in MaBoSS format. It takes a list of genes of interest and returns either a simple network as a SIF file or a MaBoSS network as a BND and CFG files.

Building block GitHub repository

CARNIVAL

The CARNIVAL building block contains the refactored CARNIVAL C++ with the new Ant Colony Optimisation (ACO) in C++ with support for OpenMP and MPI. The hdf5 file required as an input can be generated with the Export Solver HDF5 building block. For a general overview of what CARNIVAL does, see the [CARNIVAL website](https://saezlab.github.io/CARNIVAL/). This building block uses the new developed ACO algorithm to find solutions without the need of using ILP solvers.

Building block GitHub repository

CARNIVALPy

The CARNIVALPy building block is a refactored vanilla CARNIVAL R version for Python with support for many commercial and non-commercial open source MILP solvers. This extends the capabilities of the old CARNIVAL software to support also open-source solvers such as GLPK or CBC, and better integration with the building block ecosystem.

Building block GitHub repository

CARNIVAL Feature Merger

This building block is used in Use Case 2 (Drug Synergies Screening) to merge the features extracted by CARNIVAL for each cell line with the original cell line features, in order to produce a final csv file that can be used for prediction with the JAX Drug Prediction building block.

Building block GitHub repository

CARNIVAL Gex Preprocess

This building block processes (reshapes and scales) gene expression data from the [Genomics of Drug Sensitivity in Cancer (GDSC) database](https://www.cancerrxgene.org/) for use by other building blocks.

Building block GitHub repository

Export Solver HDF5

Exports input data required by [the vanilla version of CARNIVAL](https://saezlab.github.io/CARNIVAL/) (sif file, measurements and perturbations) into a HDF5 file required by the optimised version of CARNIVAL with the parallel ACO C++ solver.

Building block GitHub repository

JAX drug prediction

The JAX Drug Prediction building block implements a matrix factorisation approach to predict IC50 response values of cells with different drugs, with or without side features using JAX. This is a wrapper for [a script hosted on the Saez Laboratory GitHub repository](https://github.com/saezlab/permedcoe/blob/master/containers/ml-jax/ml.py). This can be used to predict e.g drug responses on cell lines from partial observations of drug/cell responses.

There are two ways of using the building block: for training and for inference (prediction).

Building block GitHub repository

OmniPath

Downloads the [latest OmniPath database](https://omnipathdb.org/) to build an initial PKN network for CARNIVAL.

Building block GitHub repository

PROGENy

The PROGENy building block uses PROGENy to extract pathway activities from gene expression data. Further information on PROGENy can be found on the [Saez Laboratory website](https://saezlab.github.io/progeny/).

Building block GitHub repository

TF Enrichment

The TF Enrichment building block uses [DecoupleR](https://saezlab.github.io/decoupleR/) and [Dorothea](https://saezlab.github.io/dorothea/) to estimate transcription factor activities from perturbational data.

Building block GitHub repository

CellNOpt

This is the refactored CellNopt in C++ with the ACO solver with OpenMP/MPI support. A description of what CellNopt is and how to use it is available on the [Saez Laboratory website](https://saezlab.github.io/CellNOptR/).

Building block GitHub repository