BUSCO

Revision as of 18:59, 14 December 2023 by Diane27 (talk | contribs) (Created page with "Tous les fichiers doivent être décompressés avec <code>tar -xvf file.tar.gz</code>. {{Commands |mkdir -p busco_downloads/lineages |cd busco_downloads/lineages |wget https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2020-03-06.tar.gz |tar -xvf bacteria_odb10.2020-03-06.tar.gz }}")
Other languages:


BUSCO (pour Benchmarking Universal Single-Copy Orthologs) est une application qui permet d'évaluer la complétude de l'assemblage et de l'annotation de génomes.

Pour plus d'information, consultez le manuel de l'utilisateur.

Versions disponibles

Les versions récentes sont disponibles dans des wheels et les plus anciennes versions sont dans un module (voir la section Modules ci-dessous).

Pour connaître la dernière version disponible, lancez

Question.png
[name@server ~]$ avail_wheel busco

Wheel Python

Installation

1. Chargez les modules requis.

[name@server ~]$ module load StdEnv/2020 gcc python/3.10 augustus hmmer blast+ metaeuk prodigal r bbmap


2. Créez l'environnement virtuel.

[name@server ~]$ virtualenv ~/busco_env
[name@server ~]$ source ~/busco_env/bin/activate


3. Installez le wheel et ses dépendances.

Question.png
(busco_env) $ pip install biopython pandas busco --no-index

4. Validez l'installation.

Question.png
(busco_env) $ busco --help

5. Gelez l’environnement et le fichier requirements.txt pour utiliser ce fichier, voir le script bash montré au point 8.

Question.png
(busco_env) $ pip freeze > ~/busco-requirements.txt

Utilisation

Ensembles de données

6. Avant de soumettre une tâche, les ensembles de données doivent être téléchargés de BUSCO data.

Pour connaître les ensembles de données disponibles, entrez busco --list-datasets dans votre terminal.

Vous pouvez utiliser l'une des deux commandes suivantes :

  • busco
  • wget
6.1 Téléchargement avec la commande busco

Cette option est recommandée. Entrez la commande suivante dans votre répertoire de travail pour télécharger l’ensemble de données, par exemple

[name@server ~]$ busco --download bacteria_odb10


Il est aussi possible de télécharger plusieurs ensembles de données en une opération en ajoutant les arguments all, prokaryota, eukaryota ou virus, par exemple

[name@server ~]$ busco --download virus

Ceci permet de

1. créer une hiérarchie pour les ensembles de données,
2. télécharger les ensembles de données appropriés,
3. décompresser le ou les fichiers,,
4. si plusieurs fichiers sont téléchargés, ils seront automatiquement ajoutés au répertoire des lignées.

La hiérarchie sera esmblable à

  • busco_downloads/
  • information/
lineages_list.2021-12-14.txt
  • lineages/
bacteria_odb10
actinobacteria_class_odb10
actinobacteria_phylum_odb10
  • placement_files/
list_of_reference_markers.archaea_odb10.2019-12-16.txt

Tous les fichiers de lignées se trouveront alors dans busco_downloads/lineages/. La présence de --download_path busco_downloads/ dans la ligne de commande BUSCO indiquera où trouver l’argument --lineage_dataset bacteria_odb10 pour l'ensemble de données. Si busco_download n’est pas votre répertoire de travail, il faudra fournir le chemin complet.

6.2 Téléchargement avec la commande wget

Tous les fichiers doivent être décompressés avec tar -xvf file.tar.gz.

[name@server ~]$ mkdir -p busco_downloads/lineages
[name@server ~]$ cd busco_downloads/lineages
[name@server ~]$ wget https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2020-03-06.tar.gz
[name@server ~]$ tar -xvf bacteria_odb10.2020-03-06.tar.gz


4. Copiez le répertoire de configuration d’Augustus à un endroit accessible en écriture.

Question.png
[name@server ~]$ cp -r $EBROOTAUGUSTUS/config $HOME/augustus_config
[name@server ~]$ wget https://gitlab.com/ezlab/busco/-/raw/master/test_data/bacteria/genome.fna


Dépannage

Message Cannot write to Augustus config path

Vérifiez que le fichier de configuration se trouve à un endroit accessible en écriture et que la variable AUGUSTUS_CONFIG_PATH a bien été définie.

Command to run a single genome:

Question.png
[name@server ~]$ busco --offline --in genome.fna --out TEST --lineage_dataset bacteria_odb10 --mode genome --cpu ${SLURM_CPUS_PER_TASK:-1} --download_path busco_download/

Command to run multiple genomes that would be saved in the genome directory (in this example, the genome/ folder would need to be in the current directory; otherwise, you need to provide the full path):

Question.png
[name@server ~]$ busco --offline --in genome/ --out TEST --lineage_dataset bacteria_odb10 --mode genome --cpu ${SLURM_CPUS_PER_TASK:-1} --download_path busco_download/

Cette commande devrait prendre moins de 60 secondes. Les tâches dont la production est plus longue doivent être soumises à l'ordonnanceur.

Versions disponibles

Les versions récentes sont disponibles dans des wheels et la plus ancienne version dans un module (voir la section Modules ci-dessous).

Specify --in genome.fna for single file analysis.

Specify --in genome/ for multiple files analysis.

La version 3.0.2 est un module sur cvmfs et accessible sur toutes les grappes; les renseignements sur comment l'utiliser sont montrés ci-dessous. Il est possible d'installer localement les versions plus récentes en utilisant un environnement virtuel comme suit :

[name@server ~]$ ~ $ module load python/3.7.4
~ $ git clone https://gitlab.com/ezlab/busco.git
~ $ virtualenv /home/$USER/busco_env
~ $ source /home/$USER/busco_env/bin/activate
(busco_env) [~]$ pip install Biopython
(busco_env) [~]$ cd ~/busco
(busco_env) [~]$ python setup.py install
(busco_env) [~]$ cp -r scripts test_data /home/$USER/busco_env/

et ajoutez home/$USER/busco_env/scripts au chemin.

Sounmettre une tâche

Here you have an example of a submission script. You can submit as so: sbatch run_busco.sh.


File : run_busco.sh

#!/bin/bash

#SBATCH --job-name=busco9_run
#SBATCH --account=def-someprof    # adjust this to match the accounting group you are using to submit jobs
#SBATCH --time=01:00:00           # adjust this to match the walltime of your job
#SBATCH --cpus-per-task=8         # adjust depending on the size of the genome(s)/protein(s)/transcriptome(s)
#SBATCH --mem=20G                 # adjust this according to the memory you need

# Load modules dependencies.
module load StdEnv/2020 gcc python augustus hmmer blast+ metaeuk prodigal r bbmap

# Generate your virtual environment in $SLURM_TMPDIR.
virtualenv --no-download ${SLURM_TMPDIR}/env
source ${SLURM_TMPDIR}/env/bin/activate

# Install busco and its dependencies.
pip install --no-index --upgrade pip
pip install --no-index --requirement ~/busco-requirements.txt

# Edit with the proper arguments, run your commands.
busco --offline --in genome.fna --out TEST --lineage_dataset bacteria_odb10 --mode genome --cpu ${SLURM_CPUS_PER_TASK:-1} --download_path busco_download/


Augustus parameters

9. Advanced users may want to use Augustus parameters: --augustus_parameters="--yourAugustusParameter".

  • Copy the Augustus config directory to a writable location.
Question.png
[name@server ~]$ cp -r $EBROOTAUGUSTUS/config $HOME/augustus_config
  • Make sure to define the AUGUSTUS_CONFIG_PATH environment variable.
Question.png
[name@server ~]$ export AUGUSTUS_CONFIG_PATH=$HOME/augustus_config

SEPP parameters

10. To use SEPP parameters, you need to install SEPP locally in your virtual environment. This should be done in a login node.

10.1. Activate your BUSCO virtual environment.

[name@server ~]$ source busco_env/bin/activate


10.2. Install DendroPy.

[name@server ~]$ pip install 'dendropy<4.6'


10.3. Install SEPP.

[name@server ~]$ git clone https://github.com/smirarab/sepp.git
[name@server ~]$ cd sepp
[name@server ~]$ python setup.py config
[name@server ~]$ python setup.py install


10.4. Validate the installation.

[name@server ~]$ cd
[name@server ~]$ run_sepp.py -h


10.5. Because SEPP is installed locally, you cannot create the virtual environment as described in the previous submission script. To activate your local virtual environment, simply add the following command immediately under the line to load the module:

[name@server ~]$ source ~/busco_env/bin/activate


Modules


Deprecation

This section is outdated. We are currently working on an update.



1. Chargez les modules nécessaires.

Question.png
[name@server ~]$ module load StdEnv/2018.3 gcc/7.3.0 openmpi/3.1.4 busco/3.0.2 r/4.0.2

Ceci charge aussi les modules pour augustus, blast+, hmmer et d'autres paquets requis par BUSCO.

La commande run_BUSCO.py devrait prendre moins de 60 secondes. Les tâches dont la production est plus longue doivent être soumises à l'ordonnanceur.

Pour plus d’information, consultez le manuel d'utilisation.

File : partial_busco_config.ini

[tblastn]
# path to tblastn
path = /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx512/Compiler/gcc7.3/blast+/2.7.1/bin/

[makeblastdb]
# path to makeblastdb
path = /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx512/Compiler/gcc7.3/blast+/2.7.1/bin/

[augustus]
# path to augustus
path = /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx512/Compiler/gcc7.3/augustus/3.3/bin/

[etraining]
# path to augustus etraining
path = /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx512/Compiler/gcc7.3/augustus/3.3/bin/

# path to augustus perl scripts, redeclare it for each new script
[gff2gbSmallDNA.pl]
path = /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx512/Compiler/gcc7.3/augustus/3.3/scripts/
[new_species.pl]
path = /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx512/Compiler/gcc7.3/augustus/3.3/scripts/
[optimize_augustus.pl]
path = /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx512/Compiler/gcc7.3/augustus/3.3/scripts/

[hmmsearch]
# path to HMMsearch executable
path = /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx512/Compiler/gcc7.3/hmmer/3.1b2/bin/

[Rscript]
# path to Rscript, if you wish to use the plot tool
path = /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx512/Compiler/gcc7.3/r/4.0.2/bin/


Pour connaître la plus récente version, lancez

Question.png
[name@server ~]$ avail_wheel busco

Wheels Python

Installation

1. Chargez les modules nécessaires.

[name@server ~]$ module load StdEnv/2020 gcc python/3.10
[name@server ~]$ module load python augustus hmmer blast+ metaeuk prodigal r

2. Créez l'environnement virtuel.

[name@server ~]$ virtualenv busco_env
[name@server ~]$ source busco_env/bin/activate

3. Installez le wheel et ses dépendances.

Question.png
(busco_env) $ pip install biopython pandas busco --no-index

Utilisation

Ensembles de données

Avant de soumettre votre tâche, chargez les ensembles de données à partir de Index of /v5/data/.

Options pour votre script

Spécifiez --offline pour ne pas utiliser l'internet.