Source code for the paper "Fast and Accurate Inference of Gene Regulatory Networks through Robust Precision Matrix Estimation", by Passemiers et al. PORTIA builds on power transforms and covariance matrix inversion to approximate gene regulatory networks (GRNs), and is orders of magnitude faster than other existing tools (as of August 2021).
In this repository, you will learn how to reproduce the results presented in our manuscript. All inferred GRNs and intermadiate computations are present on the repository as well.
Our GRN inference tool is available at: https://github.com/AntoinePassemiers/PORTIA
For accessing the datasets from the DREAM challenges, you will have to create an account on Synapse: https://python-docs.synapse.org/build/html/index.html#accessing-data
Optionally, you can create a SYNAPSE_USERNAME environment variable:
SYNAPSE_USERNAME=my_username_or_email
export SYNAPSE_USERNAMEFor your information only, these are the competitions links: https://www.synapse.org/#!Synapse:syn2853594/wiki/71567 (DREAM3) https://www.synapse.org/#!Synapse:syn3049712/wiki/74628 (DREAM4) https://www.synapse.org/#!Synapse:syn2787209/wiki/70351 (DREAM5)
Download the MERLIN-P data repository located at: https://github.com/Roy-lab/merlin-p_inferred_networks
Uncompress and place the repository folder in PORTIA-MANUSCRIPT/data under the name merlin-p_inferred_networks-master.
- All figures, including some present in the paper, are available in
/figures. - Generated tables are available in
/tables. - Inferred networks of all methods are provided for each dataset in
/inferred-networks. - The source code for performing the evaluations is present in
/evalportia. - Intermediate data (in binary format) for computing p-values (MERLIN-P datasets only) is located in
/evalportia.
pip3 install -r requirements.txt# R dependencies
install.packages(c("devtools", "foreach", "plyr", "doRNG", "glmnet", "randomForest"))
# GENIE3
# http://bioconductor.org/packages/release/bioc/html/GENIE3.html
if (!requireNamespace("BiocManager", quietly=TRUE))
install.packages("BiocManager")
BiocManager::install("GENIE3")
# TIGRESS
# https://github.com/jpvert/tigress
library(devtools)
install_github("jpvert/tigress")Download and uncompress the ENNET repository from https://github.com/slawekj/ennet and build it from the source:
R CMD build ennet && R CMD INSTALL ennetDownload NIMEFI at: http://bioinformatics.intec.ugent.be/nimefi/nimefi/index.html
Uncompress and save the location of the "NIMEFI" folder as an environment variable:
NIMEFI_LOCATION=/path/to/NIMEFI
export NIMEFI_LOCATIONFollow the installation instructions at: https://github.com/califano-lab/ARACNe-AP
Save the path to the generated .jar file as an environment variable:
ARACNE_AP_LOCATION=/path/to/ARACNe-AP/dist/aracne.jar
export ARACNE_AP_LOCATIONDownload the Matlab source code on the publication page: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-016-1398-6#Sec17
Uncompress and save the location of the "PLSNET" folder as an environment variable:
PLSNET_LOCATION=/path/to/PLSNET
export PLSNET_LOCATIONAll the necessary scripts are located at the root of this repository.
To infer GRNs from the DREAM3 datasets with PORTIA for example, please use the following command:
python3 infer-dream3.py portiaTo remove knock-out data from the datasets, you can add the -noko optional argument (valid for dream3, dream4 and dream5 only).
To evaluate generated GRNs for the merlin-p datasets for example, please use the following command:
python3 evaluate-merlin-p.pyThis will automatically save figures and tables.