Skip to content
This repository has been archived by the owner on May 24, 2023. It is now read-only.

Network inference performance complexity: a consequence of topological, experimental, and algorithmic determinants

Notifications You must be signed in to change notification settings

bagherilab/networkinference

Repository files navigation

Network inference performance complexity: a consequence of topological, experimental, and algorithmic determinants

LAST UPDATED: 2018-05-18

Content overview

  • _banjo : BANJO v2.2.0 (accessed February 28, 2017)
  • _genie3 : GENIE3 (accessed October 3, 2017)
  • _mider : MIDER v2_JAN2015 (accessed October 3, 2017)
  • _tigress : TIGRESS v2.1 (accessed October 3, 2017)
  • scripts : .pbs scripts for submitting jobs on QUEST
  • lib : library functions
  • pipeline : main code for simulation, inference, and analysis

Algorithm edits

Some minor edits were made to the downloaded algorithms. For all cases, extraneous files associated with each of the algorithms (e.g. sample data, documentation) were removed for clarity and simplicity. Note that any associated license files are included.

  • GENIE3
    • commented out fprintf calls in GENIE3.m
    • commented out tic and toc in GENIE3.m
  • MIDER
    • commented out fprintf calls in mider.m
    • output of mider.m changed from [Output] to con_array to fit pipeline
    • value of pb in mider.m changed from 5 to 2
  • TIGRESS
    • commented out fprintf/disp calls in score_edges.m
    • commented out tic and toc in tigress.m
    • added multiple variable selection check in lars.m
    • added empty add variable check in lars.m
    • added zero padding for early exit in stability_selection.m

Running on QUEST

Pipeline was written specifically for running on Northwestern's high performance computing core QUEST. QUEST currently has 20-28 cores per node so scripts are written requesting no more than 20 nodes at a time.

File structure

The working directory on QUEST contains the following:

~/Matlab/
    _genie3
    _mider
    _tigress
    _banjo
    logs/ -- standard out and error logs
    results/  -- results stored here)
    *.m (all Matlab files
    *.pbs (all submission scripts)

Pipeline

Simulate data

Simulation is very fast and can be run on the login node. Load Matlab using:

module load matlab/r2016a
matlab -nosplash -nodisplay -singleCompThread

Run the simulations using:

for i = 1:36
    LM_CONTROLLER(1, i); % generate in silico data
end

LM_CONTROLLER(2); % compiles results into single array
LM_CONTROLLER(3); % generates null models

Infer networks

Network inference using selection of network inference methods. There are 108 different motif/logic gate/stimulus combinations.

msub -t corr[1-108] run_corr.pbs
msub -t genie3[1-108] run_genie3.pbs
msub -t mider[1-108] run_mider.pbs
msub -t tigress[1-108] run_tigress.pbs
msub -t banjo[1-108] run_banjo.pbs

Run nulls

Run inference algorithms on the null networks. There are 255 different stimulus/noise/parameter A combinations:

msub -t genie3[1-255] run_genie3_nulls.pbs
msub -t corr[1-255] run_corr_nulls.pbs
msub -t mider[1-255] run_mider_nulls.pbs
msub -t tigress[1-255] run_tigress_nulls.pbs
msub -t banjo[1-255] run_banjo_nulls.pbs

Concatenate results from nulls into a single matrix.

for i = 1:15
    LM_CONTROLLER(6, i, ALGORITHM);
end

The script LM_summarize.py can be used to check which network inference runs are missing. Run using:

ls -LRh results/ > summary.txt
python3 LM_summarize.py

Calculate metrics

Calculation is relatively fast and can be run in using:

for i = 1:108
    LM_CONTROLLER(7, i, ALGORITHM);
end

where ALGORITHM is a string denoting which algorithm to process (GENIE3, CORR, TIGRESS, MIDER, or BANJO).

Compile results

Final results are compiled into .csv files for the data browser.

LM_CONTROLLER(8); % save simulation data
LM_CONTROLLER(9, 0, ALGORITHM); % save inference data
LM_CONTROLLER(10, 0, ALGORITHM); % save summary data

About

Network inference performance complexity: a consequence of topological, experimental, and algorithmic determinants

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published