[[Category:Software]]
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 [https://busco.ezlab.org/busco_userguide.html 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 [[BUSCO/fr#Modules|Modules]] ci-dessous).
Pour connaître la dernière version disponible, lancez
{{Command|avail_wheel busco}}
== Wheel Python ==
=== Installation ===
1. Chargez les modules requis.
{{Commands
|module load StdEnv/2020 gcc/9.3.0 python/3.10 augustus/3.5.0 hmmer/3.3.2 blast+/2.13.0 metaeuk/6 prodigal/2.6.3 r/4.3.1 bbmap/38.86}}
2. Créez l'environnement virtuel.
{{Commands
|virtualenv ~/busco_env
|source ~/busco_env/bin/activate
}}
3. Installez le wheel et ses dépendances.
{{Command
|prompt=(busco_env) $
|pip install --no-index biopython{{=}}{{=}}1.81 pandas{{=}}{{=}}2.1.0 busco{{=}}{{=}}5.5.0
}}
4. Validez l'installation.
{{Command
|prompt=(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.
{{Command
|prompt=(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
[https://busco-data.ezlab.org/v5/data/ 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
{{Command
|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
{{Commands
|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 semblable à
* 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
.
{{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
}}
==== Test ====
7. Téléchargement des fichiers de génome.
{{Commands
|wget https://gitlab.com/ezlab/busco/-/raw/master/test_data/bacteria/genome.fna
}}
8. Exécution.
Pour un seul génome :
{{Command|busco --offline --in genome.fna --out TEST --lineage_dataset bacteria_odb10 --mode genome --cpu ${SLURM_CPUS_PER_TASK:-1} --download_path busco_download/}}
Pour plusieurs génomes, le répertoire genome/ doit se trouver dans le répertoire courant, autrement il faut donner le chemin complet :
{{Command|busco --offline --in genome/ --out TEST --lineage_dataset bacteria_odb10 --mode genome --cpu ${SLURM_CPUS_PER_TASK:-1} --download_path busco_download/}}
La commande pour un seul génome devrait être exécutée sous les 60 secondes. Les tâches de production qui nécessitent plus de temps doivent être [[Running jobs/fr|soumises à l'ordonnanceur]].
===== Conseils pour BUSCO =====
Utilisez --in genome.fna
pour analyser un seul fichier.
Utilisez --in genome/
pour analyser plusieurs fichiers.
===== Conseils pour Slurm =====
Utilisez --offline
pour éviter l'utilisation de l’internet.
Utilisez --cpu
avec $SLURM_CPUS_PER_TASK
dans le script de la tâche pour utiliser le nombre alloué de CPU.
Utilisez --restart
pour reprendre une tâche interrompue.
====Soumettre une tâche====
Vous pouvez soumettre le script suivant avec sbatch run_busco.sh
.
{{File
|name=run_busco.sh
|lang="bash"
|contents=
#!/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/9.3.0 python/3.10 augustus/3.5.0 hmmer/3.3.2 blast+/2.13.0 metaeuk/6 prodigal/2.6.3 r/4.3.1 bbmap/38.86
# 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/
}}
====Paramètres Augustus ====
9. Si vous avez plus d'expérience, vous pouvez utiliser les paramètres Argutus : --augustus_parameters="--yourAugustusParameter"
.
*Copiez le répertoire config d'Augustus à un endroit où la lecture est possible.
{{Command|cp -r $EBROOTAUGUSTUS/config $HOME/augustus_config}}
*Assurez-vous de définir la variable d'environnement AUGUSTUS_CONFIG_PATH
.
{{Command|export AUGUSTUS_CONFIG_PATH{{=}}$HOME/augustus_config}}
====Paramètres SEPP ====
10. Pour utiliser ces paramètres, SEPP doit être installé localement dans votre environnement virtuel, ce que vous devez faire à partir du nœud de connexion.
10.1. Activez votre environnement virtuel BUSCO.
{{Commands
|source busco_env/bin/activate
}}
10.2. Installez DendroPy.
{{Commands
|pip install 'dendropy<4.6'
}}
10.3. Installez SEPP.
{{Commands
|git clone https://github.com/smirarab/sepp.git
|cd sepp
|python setup.py config
|python setup.py install
}}
10.4. Validez l'installation.
{{Commands
|cd
|run_sepp.py -h
}}
10.5. Puisque SEPP est installé localement, vous ne pouvez pas utiliser le script ci-dessus pour créer votre environnement virtuel. Pour activer votre environnement virtuel, ajoutez la commande suivante sur la ligne qui suit la commande de chargement du module.
{{Commands
|source ~/busco_env/bin/activate
}}
== Modules ==
{{Warning
|title=Cette section est obsolète.
|content=Veuillez utiliser les wheels qui sont disponibles.
}}
1. Chargez les modules nécessaires.
{{Command|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.
2. Copiez le fichier de configuration
{{Command|cp -v $EBROOTBUSCO/config/config.ini.default $HOME/busco_config.ini}}
ou
{{Command|wget -O $HOME/busco_config.ini https://gitlab.com/ezlab/busco/raw/master/config/config.ini.default}}
3. Modifiez le fichier de configuration. Les endroits où se trouvent les outils externes sont définis dans la dernière section.
{{File
|name=partial_busco_config.ini
|lang="text"
|contents=
[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/
}}
4. Copiez le répertoire config
d’Augustus à un endroit où la lecture est possible.
{{Command|cp -r $EBROOTAUGUSTUS/config $HOME/augustus_config}}
5. Vérifiez si tout fonctionne bien.
{{Commands
|export BUSCO_CONFIG_FILE{{=}}$HOME/busco_config.ini
|export AUGUSTUS_CONFIG_PATH{{=}}$HOME/augustus_config
|run_BUSCO.py --in $EBROOTBUSCO/sample_data/target.fa --out TEST --lineage_path $EBROOTBUSCO/sample_data/example --mode genome
}}
La commande run_BUSCO.py
devrait être exécutée sous les 60 secondes. Les tâches de production qui nécessitent plus de temps doivent être [[Running jobs/fr|soumises à l'ordonnanceur]].
= Dépannage =
== Erreur : Cannot write to Augustus config path ==
Assurez-vous d’avoir copié le répertoire config d’Augustus à un endroit où la lecture est possible et d’avoir exporté la variable AUGUSTUS_CONFIG_PATH
.