[[Category:Software]]
__TOC__
[https://microbiomejournal.biomedcentral.com/articles/10.1186/s40168-020-00990-y VirSorter2] is a tool to identify new viral sequences.
This page discusses how to install and use VirSorter2 v2.2.4.
Source code and documentation for VirSorter2 can be found on their [https://github.com/jiarong/VirSorter2 GitHub page].
Remember to [https://microbiomejournal.biomedcentral.com/articles/10.1186/s40168-020-00990-y#citeas cite] VirSorter2 if you use it for your analyses.
== Installing VirSorter2 in a Python virtual environment ==
These instructions install VirSorter2 in your $HOME directory using Alliance's prebuilt [http://pythonwheels.com/ Python wheels]. Custom Python wheels are stored in /cvmfs/soft.computecanada.ca/custom/python/wheelhouse/
. To install a VirSorter2 wheel, we will use the pip
command and install it into a [[Python#Creating_and_using_a_virtual_environment | Python virtual environment]].
1. Load the necessary modules.
{{Command
|module load StdEnv/2020 python/3.8 hmmer/3.3.2 prodigal/2.6.3
}}
2. Create and activate a Python virtual environment.
{{Commands
|virtualenv --no-download ~/ENV_virsorter
|source ~/ENV_virsorter/bin/activate
}}
3. Install VirSorter2 v2.2.4 in the virtual environment.
{{Commands
|prompt=(ENV_virsorter) [name@server ~]
|pip install --no-index --upgrade pip
|pip install --no-index virsorter{{=}}{{=}}2.2.4
}}
4. Validate the installation.
{{Command
|prompt=(ENV_virsorter) [name@server ~]
|virsorter -h
}}
5. Freeze the environment and requirements set.
{{Command
|prompt=(ENV_virsorter) [name@server ~]
|pip freeze > ~/virsorter-2.2.4-requirements.txt
}}
6. Download the database in $SCRATCH with the --skip-deps-install
option to bypass conda installation and also because dependencies are already installed.
{{Command
|prompt=(ENV_virsorter) [name@server ~]
|virsorter setup --db-dir $SCRATCH/db -j 4 --skip-deps-install
}}
== Testing VirSorter2 ==
1. Deactivate your virtual environment
{{Command
|deactivate
}}
2. Download the test dataset in $SCRATCH
.
{{Command
|wget -O $SCRATCH/test.fa https://raw.githubusercontent.com/jiarong/VirSorter2/master/test/8seq.fa
}}
3. Create a submission script
{{File
|name=test-virsorter.sh
|lang="bash"
|contents=
#!/bin/bash
#SBATCH --time=00:30:00
#SBATCH --mem-per-cpu=2G
#SBATCH --cpus-per-task=2
# Load modules dependencies
module load StdEnv/2020 python/3.8 hmmer/3.3.2 prodigal/2.6.3
# Generate your virtual environment in $SLURM_TMPDIR
virtualenv --no-download $SLURM_TMPDIR/ENV
source $SLURM_TMPDIR/ENV/bin/activate
pip install --no-index --upgrade pip
# Install VirSorter2 and its dependencies
pip install --no-index -r ~/virsorter-2.2.4-requirements.txt
# Run VirSorter2 with the test dataset, using at most $SLURM_CPUS_PER_TASK and ignore conda.
# The database must already exist and you must specify its location.
virsorter run -w $SCRATCH/test.out -i $SCRATCH/test.fa --min-length 1500 -j $SLURM_CPUS_PER_TASK --verbose --use-conda-off --db-dir $SCRATCH/db all
}}
3. Start an interactive job.
{{Command
|salloc --mem-per-cpu{{=}}2G --cpus-per-task{{=}}2 --account{{=}}
}}
salloc: Granted job allocation 1234567
$ bash test-virsorter.sh # Run the submission script
$ exit # Terminate the allocation
salloc: Relinquishing job allocation 1234567
Upon a successful test run, you can submit a non-interactive job with your own dataset using [https://docs.alliancecan.ca/wiki/Running_jobs#Use_sbatch_to_submit_jobs sbatch
].