-
Notifications
You must be signed in to change notification settings - Fork 51
Dependencies and installation
Non-comprehensive list of the main dependencies for SQANTI3:
- Perl
- Minimap2
- Python (3.7)
- R (>= 3.4.0)
- kallisto
- samtools
- STAR
- uLTRA
- deSALT
- pip
- bx-python
- BioPython
- BCBioGFF
- cython
- NumPy
- pysam
- pybedtools
- psutil
- pandas
- scipy
- R packages for
sqanti3_qc.py
andsqanti3_filter.py
(installed when creating the conda environment):
- We have downloaded gtfToGenePred from UCSC utilities and gave execution permissions, so it is no longer necessary to do it after downloading SQANTI3.
We recommend using Anaconda to substantially facilitate installation of all Python dependencies. Probably you already have Anaconda installed because you use BioConda IsoSeq(3). Please, follow the steps here to ensure an error-free installation. All the dependencies will be installed automatically in a conda environment. The installation will be done just once and it usually takes less than 10 minutes to be installed. This approach has been tested successfully macOS and Linux-based operating systems. When the environment has been entirely built, you just need to activate the conda environment of SQANTI3 and run it!
Make sure you have installed Anaconda. If so, you may add it to your PATH variable and update it -if necessary- as follows:
export PATH=$HOME/anacondaPy37/bin:$PATH
conda -V
conda update conda
If you have not installed Anaconda, the generic installer for Linux OS can be found here. Note that only Linux and Mac machines are currently supported.
Next, download the latest stable SQANTI3 release. As of July 31st 2024, the current version is v5.2.2.
For general users, we recommend downloading the SQANTI3 repository as follows:
wget https://github.com/ConesaLab/SQANTI3/archive/refs/tags/v5.2.2.tar.gz
tar -xf v5.2.2.tar.gz
If you have intentions of contributing to the development of SQANTI3, please clone the developer version. This option will set up a git repository within your SQANTI folder and is NOT recommended for general users. Contributers outside the main development team are welcome submit a pull-request after performing the changes in their forked repositories.
git clone https://github.com/ConesaLab/SQANTI3.git
If you are interested in a previous version of SQANTI3, see the version history in our wiki site, which contains a detailed account of all changes introduced for versions >=5.0.
To use SQANTI3, you will need to move into the SQANTI3 folder that you just downloaded and create a virtual
environment including all required packages. All you need to do is run the SQANTI3.conda_env.yml
script that
you can find in the main SQANTI folder:
cd SQANTI3-5.2.2
conda env create -f SQANTI3.conda_env.yml
conda activate SQANTI3.env
This script contains all the information required to install the SQANTI3 dependencies.
As the environment creation progresses, you will need to type y
when prompted to proceed with the installation.
Note that you may change the name of the environment using the -n
argument to the conda env create
command.
By default, the name of the environment will be SQANTI3.env.
Once you have activated the virtual environment, you should see your prompt changing to something like this:
(SQANTI3.env)$
Environment management after SQANTI3 updates
If you had already installed SQANTI3 and have updated to a new version, creating a fresh environment may be required in major and minor releases (i.e. version bumps from 5.1.x to 5.2.x), but not in the case of patches (i.e. version bumps from 5.1.x to 5.1.y). However, if you experience errors running SQANTI3 after downloading a new version, we advise creating the conda environment again to discard dependency version issues.
For Linux users, the right version of gtfToGenePred is already in the utilities
folder. However, if you are running
SQANTI3 on MacOS, you must remove the utilities/gtfToGenePred
file and download the Mac version here.
If you are not working on a Linux system, SQANTI requires manual installation of gtfToGenePred.
This tool seems to have some issues with Python 3.7 (or openssl) when installed via conda.
At this point, the easiest solution is to download it from the UCSC website
and add it to the SQANTI3/utilities
folder you will need to make the file executable) or to your PATH
variable.
wget http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/gtfToGenePred -P <path_to>/SQANTI3/utilities/
chmod +x <path_to>/SQANTI3/utilities/gtfToGenePred
A docker container is available from version 5.2.2 onwards in dockerhub
docker pull anaconesalab/sqanti3
On the other hand, the dockerfile is available in the master branch of the git repository which you can use to create a Docker image of SQANTI3, not yet publicly available. The steps needed to use it are:
- Build the image
In the same folder as your dockerfile (preferably, but not necessarily, with only the dockerfile), run
docker build -t SQANTI3 -f Dockerfile .
- Execute the container: all three modules of SQANTI3 are hosted inside the container and can be executed:
docker run -it SQANTI3:5.2.2 sqanti3_qc.py -h
docker run -it SQANTI3:5.2.2 sqanti3_filter.py -h
docker run -it SQANTI3:5.2.2 sqanti3_rescue.py -h
In order to make docker be aware of your files, input files and output folder must be binded to a path in your filesystem, as otherwise, docker won't be able to read them. The path /data2 inside the container is free to be mapped to your project folder, and it's the default working directory inside the container.
docker run -it -v <my-project-path>:/data2 SQANTI3 sqanti3_qc.py <sqanti_qc_args>
- I'm having trouble to build the docker image on my Mac
Building the image on Mac systems may require adding the "--platform linux/amd64" parameter when building the image.
- Can I use a singularity image instead of docker?
Once the docker image is built, you can turn it into a singularity image either from dockerhub or from the installed local version:
singularity build sqanti3.sif docker://anaconesalab/sqanti3
singularity build sqanti3.sif docker-daemon://sqanti3
However you build the singularity image, you can use "singularity run sqanti3.sif " exactly as you would with the docker container. Note that using "singularity exec" will not load the conda environment by default
- How can I make Docker generated output to be owned by my user and not root?
This is the default behaviour of docker. The most straightforward way to solve it is by telling docker to execute the container with a especific user with -u parameter
docker run -it -u $(id -u):$(id -g) sqanti3 <sqanti3_qc.py/sqanti3_filter.py/sqanti3_rescue.py>
This command will execute the container with your current user, and thus, the resulting files will be owned by your user and group
Wiki index
- Introduction to SQANTI3
- Dependencies and installation
- Version history
- Isoform classification: categories and subcategories
- Running SQANTI3 quality control
- Understanding the output of SQANTI3 QC
- IsoAnnotLite
- Running SQANTI3 filter
- Running SQANTI3 rescue
- Tutorial: running SQANTI3 on an example dataset
- Running SQANTI-reads
- Memory requirements to use parallelization