Introduction and installation

Enhlink is a novel computational approach that utilizes single-cell signals to infer linkages between regulatory sequences such as enhancers and promoters. To accomplish this, Enhlink employs an ensemble strategy that integrates cell covariates and produces robust p-values for any link and covariate-specific link.

  • Designed to leverage multi-omic datasets, Enhlink incorporates complementary omic measurements such as gene expression to infer enhancer-target links.

  • By modeling the surrounding enhancers and covariates as predictive features of the target accessibility (or gene expression), Enhlink utilizes a modified Information Gain score, a random forest framework, and a bootstrap procedure to estimate significant features associated with a given target.

  • Enhlink performs a second-order analysis, if desired, that identifies linkages specific to a given covariate.

  • Enhlink is not limited to proximal enhancers but rather can infer distal enhancer-gene linkages.

  • Enhlink incorporates a simulation workflow designed using experimentally validated enhancer-promoter signals, which improves prediction accuracy.

Installation

Using precompiled executables

we precompiled the three executables for enhlink, enhgrid, and enhtools and made them available in an associated figshare project. They are compatible with either Linux x86_64 or OSX arm64 platforms.

# Download executables for Enhlink's suite v0.21.4 and decompress them
wget wget https://figshare.com/ndownloader/articles/22807103/versions/5 -O enhlink_exec.zip
unzip enhlink_exec.zip
# For Linux x86_64
tar -xvf ./enhlink_linux_v0.21.4.tar.gz
# For OSX arm64
tar -xvf ./enhlink_osx_v0.21.4.tar.gz

# make the binaries executable
chmod +x ./enhlink_linux_v0.21.4/*

# Enhlink is now ready to be used
./enhlink_linux_v0.21.4/enhlink -h

# enhgrid is now ready to be used
./enhlink_linux_v0.21.4/enhgrid -h

# enhtools is now ready to be used
./enhlink_linux_v0.21.4/enhtools -h

# Link or copy the executables into an accessible local path:
ln -s `pwd`/enhlink_linux_v0.21.4/* /usr/local/bin/

# Enhlink is now accessible everywhere
enhlink -h
enhgrid -h
enhtools -h

Using go installation mechanisms

Install a a golang compiler (if not existing)

#In .bashrc or .zshrc
export GOROOT=$HOME/go # or wherever is you go folder
export GOBIN=$HOME/go/local/bin # or wherever is your local bin folder for go exectuable
export GOPATH=$HOME/go/code/:$HOME/code

PATH=$GOPATH:$GOROOT:$PATH
PATH=$HOME/go/bin/:$GOBIN:$PATH
  • source your init file source ~/.bashrc

Install the packages

# go version >= 1.18. This might work too with older go versions
## Install enhlink
go install gitlab.com/Grouumf/enhlinktools/enhlink@latest
## Install enhgrid
go install gitlab.com/Grouumf/enhlinktools/enhgrid@latest
## Install enhtools
go install gitlab.com/Grouumf/enhlinktools/enhtools@latest

Installation (from repository)

git clone https://gitlab.com/Grouumf/enhlinktools.git
cd ./enhlinktools/enhlink
go install .
cd ../enhgrid/
go install .
cd ../enhtools/
go install .

Alternatively, one can use go build to direcly build the executable into the same folder

git clone https://gitlab.com/Grouumf/enhlinktools.git
cd ./enhlinktools/enhlink
# this command compile the executable into the local directory
go build .
cd ../enhgrid/
go build .
cd ../enhtools/
go build .