-
Notifications
You must be signed in to change notification settings - Fork 10
Installation
nf-LO is a nextflow workflow, and as such it relies on nextflow to be installed and accessible. If you need to install nextflow, follow the instructions here. You need to have Java 8 or newer installed, and then install nextflow as follow:
curl -s https://get.nextflow.io | bash
nf-LO uses a series of software to automatize and uniform the liftOver generation process. We provide four different ways to install and run all these dependencies:
- Anaconda: this is the recommended and easiest way.
-
Docker: you can create a docker image locally by using the
Dockerfile
andenvironment.yml
files in the folder -
Singularity: you can create a singularity sif image locally by using the
singularity.def
andenvironment.yml
files in the folder - Local installation: we provide an
install.sh
script that will take care of installing all the dependencies.
The following dependencies are needed to run every component of nf-LO:
- lastz
- blat
- minimap2
- GSAlign
- maf-convert from last
- CrossMap
- Graphviz
- Many .exe files from the kent toolkit:
- axtChain
- axtToMaf
- chainAntiRepeat
- chainMergeSort
- chainNet
- chainPreNet
- chainStitchId
- chainSplit
- chainToAxt
- faSplit
- faSize
- faToTwoBit
- lavToPsl
- liftOver
- liftUp
- netChainSubset
- netSyntenic
- twoBitInfo
Plus the optional dependencies:
All dependecies used by nf-LO are free for academic, nonprofit and personal use. For commercial use, check the licencing coditions for the different tools separately.
Almost all dependencies can be installed through anaconda. Follow the instruction here to install anaconda on your machine. This is the easiest route, since it can be run directly from the github repository:
nextflow run evotools/nf-LO -profile test,conda
The only dependencies that at this stage cannot be installed with anaconda is mafTools. This component is required to generate some of the final metrics of the alignments, and can be installed manually on your macOS or linux machine using the install_maftools.sh
script.
To speed up the process, you can install all the dependencies using mamba instead. First install mamba in your anaconda environment:
conda install -c conda-forge -y mamba
Then, create the environment using mamba:
mamba env create -f environment.yml
This will create a new environment in your anaconda installation folder, that you can then pass to nextflow using the -with-conda
option:
nextflow run evotools/nf-LO -profile test -with-conda `conda info --envs | 'awk $1=="nf-LO" {print $2}'`
The dependencies can be run using docker. Follow the instruction here to install docker on your system. The docker image needs to be build locally using the Dockerfile in the folder as follows:
curl -O https://raw.githubusercontent.com/evotools/nf-LO/main/Dockerfile
curl -O https://raw.githubusercontent.com/evotools/nf-LO/main/environment.yml
docker build -t nflo:latest .
Then, you can run nf-LO as follows:
nextflow run evotools/nf-LO -profile test,docker -with-docker nflo:latest
You can run the workflow using a singularity container. Follow the instructions here to install singularity Then, you need to build it first using the command:
curl -O https://raw.githubusercontent.com/evotools/nf-LO/main/singularity.def
curl -O https://raw.githubusercontent.com/evotools/nf-LO/main/environment.yml
singularity build nflo.sif singularity.def
Then, you can run the workflow as follows:
nextflow run evotools/nf-LO -profile test,docker -with-singularity ${PWD}/nflo.sif
This is the case if the system doesn't support docker, singularity or anaconda.
It is possible to download all the dependencies through the script install.sh
.
The script will download all the dependencies in a local bin folder:
wget https://raw.githubusercontent.com/evotools/nf-LO/main/install.sh
chmod a+x ./install.sh
./install.sh
export PATH=$PATH:${PWD}/bin
This code will install all the dependencies in the bin
folder, that will be automatically added to the path at run time.