####################################
#################################### Phixer is an algorithm to generate Gene Interaction Network from gene-expression data. The resulting GIN graph is directed and may contain cycles.
The core of the Phixer is implemented in C which depends on OpenMP library for carrying out computations in parallel.
A high level description of the algorithm is given below.
-
Read input gene-expression CSV files. Rows are genes and columns are number of samples. The input file should be preprocessed, and should not contain NA or missing values. In other words, the input CSV file should be a m-by-n data matrix (m genes, n samples). There should not be any header row or gene-id column.
-
For each resampled bootstrap runs, compute phi-mixing coefficient in parallel.
-
Prune the resulting GIN graph in parallel.
-
Write the pruned GIN in Matlab sparse format for downstream processing.
-
Perform thresholding in Matlab.
####################################
#################################### The following instructions are meant for Linux operating system with GCC and OpenMP installed.
Edit pphi_bs.c Set NROW, TSAMPLE_COUNT, BOOTSTRAPS, NUM_THREADS
gcc -Wall pphi_bs.c -fopenmp -o phixer.out
Increase memory and stack size. Depending on machine hardwars/OS settings, this step may be needed for practical sized problems i.e number of genes greater than 15,000. The actual values will vary from machine to machine.
ulimit -s 1300000000
export GOMP_STACKSIZE=2000000
Compute phi-mixing coefficients, do prunning and write prunned graph. Note that output file shall be created in the directory where executable phixer.out resides.
time ./phixer.out input_data_csv_file
run phixer_threshold.m that takes the output of step 3 as an input.
####################################
####################################
The current pphi_bs.c has been edited for the demo.
gcc -Wall pphi_bs.c -fopenmp -o phixer_demo.out
./phixer_demo.out test_100_585.txt
nw = phixer_threshold(step3_output_file);