Skip to content

dieterich-lab/LINDA

Repository files navigation

LINDA

LINDA R-package - Enio GJERGA

This repository contains the scripts for the ILP (Integer Linear Programming) implementation of the LINDA (Linear Integer programming for Network reconstruction using Transcriptomics and Differential splicing data Analysis) R package and accompanying scripts that implement the method. ILP is a mathematical optimisation algorithm in which the objective function and constraints are linear and the variables are integers. This consensus version supports both hard and soft integration of alternative-splicing (AS) evidence through the constraints_mode argument of runLINDA().

License

Distributed under the GNU GPLv3 License.

Installation

1. Solver Prerequisites

Before installing LINDA, please keep in mind the following solver pre-requisites:

LINDA requires the interactive version of IBM Cplex as an ILP problem optimiser. The IBM ILOG Cplex is freely available through Academic Initiative here.

Once the solvers has been acquired by the user, they must save the executable files in any desired location in the machine they are using and then they can run the LINDA analysis after specifying the solver type (through the solver parameter of the functions, 'cplex' or 'cbc'/'lpSolve' in the future) and the path to the executable file (through the solverPath parameter).

Soon LINDA is also to run by using the open-source Coin-Cbc as well as the lpSolve R-package for smaller case studies.

NOTE: We strongly encourage using CPLEX to solve the LINDA problems since the tool has been mostly maintained by considering CPLEX in mind and also because it showed to be more efficient computationally.

2. Package Dependencies

Additionally before installation, the users must install the following R-package dependencies: igraph, aggregation, XML and aggregation.

3. Package installation

Once the required solvers have been obtained and the mentioned R-package dependencies have been installed, then the users can proceed with the installation of LINDA.

Currently users can install LINDA directly from the source after downloading the source (tar file) and typing in R command line the following:

# directly from GitHub
devtools::install_github("dieterich-lab/LINDA", build_vignettes = FALSE)
# or download the source file from GitHub and install from source
install.packages('path_to_extracted_LINDA_directory', repos = NULL, type="source")

NOTE: If you wish for the the Vignettes to be built and for the test example to run successfully, please put the cplex executable file under the /Downloads/ directory and only then you can set build_vignettes = TRUE.

Running LINDA

The LINDA library can be initialized by:

library(LINDA)

A documentation of the current version of the main runLINDA() function can be obtained by simply typing ?runLINDA in R once the package has been installed.

Hard and soft AS integration modes

LINDA can now be run in two AS-aware modes through the constraints_mode argument:

  • constraints_mode = "hard" is the default. AS evidence is converted into explicit ILP constraints. Reactions affected by significant AS events according to pValThresh and splice_effect_sign are forced to zero, using the same hard constraint formulation as before.
  • constraints_mode = "soft" keeps those reactions feasible but increases their objective-function penalty according to the AS-derived score. This discourages the solver from selecting AS-affected reactions without making them impossible.

The default splice_effect_sign is now "negative", which is appropriate for rMATS-like IncLevelDifference values when negative values indicate exon/transcript skipping in the first condition relative to the second condition. You can still set splice_effect_sign = "positive" or splice_effect_sign = "both".

Example hard-constrained run:

res_hard <- runLINDA(input.scores = input.scores,
                     as.input = as.input,
                     background.network = bg,
                     solverPath = "~/Downloads/cplex",
                     constraints_mode = "hard",
                     pValThresh = 0.05,
                     splice_effect_sign = "negative",
                     top = 2,
                     lambda1 = 10,
                     lambda2 = 0.001)

Example soft-penalty run:

res_soft <- runLINDA(input.scores = input.scores,
                     as.input = as.input,
                     background.network = bg,
                     solverPath = "~/Downloads/cplex",
                     constraints_mode = "soft",
                     splice_effect_sign = "negative",
                     top = 2,
                     lambda1 = 10,
                     lambda2 = 0.001)

In a real-case application, depending whether the users are using Transcript Abundance or Exons Skipping data to pinpoint for skipped domains in the analysis, please:

## Load the DIGGER resource with domains mapped to Transcripts:
load(file = system.file("extdata", "digger_human_transcripts.RData", package = "LINDA"))

, or:

## Load the DIGGER resource with domains mapped to Exons:
load(file = system.file("extdata", "digger_human_exons.RData", package = "LINDA"))

Examples

A current example of how to use LINDA over a small Toy test example is documented in the vignettes of the package. For this, please check on the LINDA package documentation. Another real case example can be found here

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors