MTL_JULIA is a pipeline for transcriptional regulatory network (TRN) inference using multitask learning (MTL) written in MATLAB and julia.
- Castro, Dayanne M., et al. "Multi-study inference of regulatory networks for more accurate models of gene regulation." bioRxiv (2018): 279224.
- Miraldi, Emily R., et al. "Leveraging chromatin accessibility for transcriptional regulatory network inference in T Helper 17 Cells." bioRxiv (2018): 292987.
- Written in Julia for speed. For reference, TRN inference on the Th17 dataset took 37 minutes on a macbook pro running on 6 core processors.
- Parallel implementation
- Parameter selection with EBIC or cross validation
- You need a licensed version of MATLAB
- Download JuliaPro Version 0.6.3 or greater (there are other download options too)
- Download this github repository
- From julia run "Add_packages.jl" to install julia packages
First we use MATLAB for Transcription factor estimation and prior matrix creation.
- Open "Th17example_setup.m"
- Set options in the script - if you would like to run MATLAB serially:
parallel = false;
- Run "Th17example_setup.m" Now we use the outputs from MATLAB for network inference in Julia. Note: Julia reads the filepaths for the MATLAB outputs from "setup.txt" in the setup folder, so no user specification is necessary
- Open "Th17example_inference.jl"
- Set options in the script - if you would like to run Julia serially:
parallel = false
or with a different number of processors:
Nprocs = 2
If you would like to check the number of processors on your machine, in Julia you can type
Sys.CPU_CORES
There are two main parameter selection strategies to choose from:
Fit = :ebic
getFitsParallel(DataMatPaths, Fit, Smin, Smax, Ssteps, nB, TaskNames, FitsOutputDir,
FitsOutputMat, tolerance = tolerance, useBlockPrior = useBlockPrior)
Fit = :cv
nfolds = 2
getFitsParallel(DataMatPaths, Fit, Smin, Smax, Ssteps, nB, TaskNames, FitsOutputDir,
FitsOutputMat, tolerance = tolerance, useBlockPrior = useBlockPrior, nfolds = nfolds)
- Run "Th17example_inference.jl"
- Check the outputs folder for outputs
The above steps are autonomized in the shell script "Th17example_MTLpipeline.sh." Before running, you will likely have to set the matlab and julia binary paths:
matlab="/Applications/path/to/bin/matlab"
julia="/Applications/path/to/bin/julia"