Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
# HP Network Generator:
This project contains code for the high performance generation of networks from machine learning methods.
# GRN-LOOPy
GRN-LOOPy is an updated version of teh iRF_LOOPpy software package. It is a high-performance Python package for inferring Gene Regulatory Networks (GRNs) using Iterative Random Forest (iRF), and now offers the options for hot swapping additional models: Random Forest, Decision and Regression Trees, and Gradient Boosted Decision Trees via the LightGBM package. This tool leverages machine learning to predict regulatory interactions between genes, generating Predictive Expression Networks (PENs).

Features
- Efficient Network Inference: Uses iRF, an advanced tree-based model, to infer regulatory relationships from gene expression data.
- MPI-Based Task Farm: Implements a dynamic task allocation system for parallelized computation, reducing idle times compared to traditional batch queuing.
- Streamlined Workflow: Includes preprocessing, processing, and post-processing steps for ease of use.
- Consolidated Output: Unlike previous versions, all model results are stored in a single output file, improving data management.

## Installation
To run this code, an system with MPI installed is required. When running this code on a slurm system, it is recommended that users refer to the system documentation and proper usage of MPI within that environment (i.e. specific lmod modules required to properly run MPI).

Ex.
Running the package code on OLCF's Frontier system requires

```bash
module load rocm
module load boost
Expand Down Expand Up @@ -47,12 +54,10 @@ module load cray-mpich/8.1.23
source activate /ccs/home/lanemj/environments/frontier/lightgbm

export MPI4PY_RC_RECV_MPROBE=0
srun -n 16 --gpus-per-task=1 --gpu-bind=closest python /ccs/home/lanemj/hp_network_generator/src/process.py\
--infile /ccs/home/lanemj/DREAM5_SysGenA100_Network1_Expression_100.tsv \
srun -n 16 --gpus-per-task=1 --gpu-bind=closest python ./src/process.py\
--infile ../data/DREAM5_SysGenA100_Network1_Expression_100.tsv \
--device gpu \
--header_row_idx 0 \
2> err 1> out
```