# Integrative Network Fusion (INF) ![INF pipeline ](figs/INF_pipeline.jpeg) ## Setup ```bash git clone https://gitlab.fbk.eu/MPBA/INF cd INF conda env create -f env.yml -n inf conda activate inf ``` ### Additional dependencies #### R dependencies To install the R dependencies (not in conda channels), run the following command via the R prompt: ```bash install.packages("TunePareto") ``` #### MLPY To install `mlpy` follow this instructions: `mlpy` package is required for some operations included in the DAP procedure. The `mlpy` package available on PyPI is outdated and not working on OSX platforms. These are the steps to follow: Let `` be your anaconda path (e.g., `/home/user/anaconda3`). Adjust these environmental variables: ```bash export LD_LIBRARY_PATH=/envs//lib:${LD_LIBRARY_PATH} export CPATH=/envs//include:${CPATH} ``` and then install `mlpy` from GitLab: ```bash pip install git+https://gitlab.fbk.eu/MPBA/mlpy.git ``` #### Other Python dependencies To install `bootstrapped`: ```bash pip install bootstrapped ``` ## Usage **Input files** * omics layer 1 data: samples x features, tab-separated, with row & column names * omics layer 2 data: same as above (**samples must be in the same order as the first file**) * omics layers 1+2 data: the juxtaposition of the above two files * labels file: one column, just the labels, no header (**same order as the data files**) **Example run** The INF pipeline is implemented as a Snakefile. The following directory tree is required: * {datafolder}/{dataset}/{layer1}_{layer2}_{tr,ts}.txt * {datafolder}/{dataset}/labels_{target}_{tr,ts}.txt * {datafolder}/{dataset}/{layer1,layer2}_{tr,ts}.txt * {outfolder}/{dataset}/{target}/{juxt,rSNF,rSNFi,single}/ _(these will be created if not present)_ All the {variables} can be specified either in a config.yaml file or on the command line; for example: ```{python} snakemake --config datafolder="data" dataset="breast" target="ER" layer1="gene" layer2="cnv" ``` A maximum number of cores can also be set: ```{python} snakemake [--config etc.] --cores 12 ``` The pipeline can be "dry-run" using the `-n` flag: ```{python} snakemake --cores 12 -n ```