FuNeL User Guide


FuNeL is a machine learning approach to generate functional networks using the co-prediction paradigm. Gene-gene functional interactions are defined by using a machine learning rule-based classification algorithm (BioHEL). This approach is based on the assumption that genes within the same classification rules have an increase likelihood to be functionally related. A general FuNeL protocol is shown below:

co-prediction protocol

The rule-based machine learning build the model of the dataset that is later used to infer a network. It is statistically refined using permutation tests to filter out the non-significant nodes. The protocol has two optional settings: feature selection and 2nd stage of rule learning. It can be run with one of the following configurations:

  1. C1 (reduced dataset + 1 machine learning phase)
  2. C2 (original dataset + 1 machine learning phase)
  3. C3 (reduced dataset + 2 machine learning phases)
  4. C4 (original dataset + 2 machine learning phases)


System requirements

To run FuNeL a GNU/Linux or a Mac OS system is required with the following software installed:


Before you start, you need to download FuNeL scripts.


To run FuNeL, you need to compile BioHEL first. Its source code is distributed along with FuNeL scripts. Use the Makefile provided in BioHEL folder:

tar axvf funel.tar.xz
cd funel/biohel


FuNeL execution depends on three variables set in the script.

Running FuNeL

To generate a co-prediction functional network run the following script from the main FuNeL directory:

./ <project_name> <dataset> <configuration> [<attributes>]

The script requires three parameters:


The data directory contains a diffuse large B-cell lymphoma dataset in ARFF format (from Shipp2002). To generate a co-prediction network from this dataset with configuration C1 retaining 500 attributes, run:

./ lymphoma data/lymphoma_dataset.arff 1 500

The result file co-prediction_network.txt and other intermediate files will be created in the results/lymphoma directory.


If the dataset attributes are probes (instead of genes), you can still obtain a gene functional network using the script. It substitutes probe names with the correspondent gene names based on the provided mapping file (see data/mapping.txt).

./ <project_name> <mapping_file>

The mapping file is a two column tab separated file: probe_id gene_id. If two probes are mapped to the same gene the corresponding nodes are merged. If a probe name is not mapped to any gene name, the node is removed from the network.


The network generation process could be speeded up by parellisation of the machine learning runs in

for run in `seq 1 $NUM_PERMUTATIONS`
    scripts/ $projectname 0 $NUM_BIOHEL_RUNS $run

The script creates the co-prediction network using a single permuted data set. Due to datasets independence the machine learning phase could be performed in parallel.


If you have any questions or comments about the FuNeL or this tutorial in particular, please contact us at jaume.bacardit.