BUSCO/fr: Difference between revisions
No edit summary |
No edit summary |
||
(65 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
BUSCO (pour <i>Benchmarking Universal Single-Copy Orthologs</i>) est une application qui permet d'évaluer la complétude de l'assemblage et de l'annotation de génomes. | BUSCO (pour <i>Benchmarking Universal Single-Copy Orthologs</i>) est une application qui permet d'évaluer la complétude de l'assemblage et de l'annotation de génomes. | ||
Pour plus | Pour plus d'information, consultez [https://busco.ezlab.org/busco_userguide.html le manuel de l'utilisateur]. | ||
== Versions disponibles == | == Versions disponibles == | ||
Les versions récentes sont disponibles dans des <i>wheels</i> et | Les versions récentes sont disponibles dans des <i>wheels</i> et les plus anciennes versions sont dans un module (voir la section [[BUSCO/fr#Modules|Modules]] ci-dessous). | ||
Pour connaître la | Pour connaître la dernière version disponible, lancez | ||
{{Command|avail_wheel busco}} | {{Command|avail_wheel busco}} | ||
== | |||
== Wheel Python == | |||
=== Installation === | === Installation === | ||
<b>1.</b> Chargez les modules | <b>1.</b> Chargez les modules requis. | ||
{{Commands | {{Commands | ||
|module load StdEnv/2020 gcc python/3.10 | |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}} | ||
<b>2.</b> Créez l'environnement virtuel. | <b>2.</b> Créez l'environnement virtuel. | ||
{{Commands | {{Commands | ||
|virtualenv busco_env | |virtualenv ~/busco_env | ||
|source busco_env/bin/activate | |source ~/busco_env/bin/activate | ||
}} | }} | ||
Line 28: | Line 28: | ||
{{Command | {{Command | ||
|prompt=(busco_env) $ | |prompt=(busco_env) $ | ||
|pip install biopython pandas busco -- | |pip install --no-index biopython{{=}}{{=}}1.81 pandas{{=}}{{=}}2.1.0 busco{{=}}{{=}}5.5.0 | ||
}} | |||
<b>4.</b> Validez l'installation. | |||
{{Command | |||
|prompt=(busco_env) $ | |||
|busco --help | |||
}} | |||
<b>5.</b> Gelez l’environnement et le fichier <i>requirements.txt</i> pour utiliser ce fichier, voir le script bash montré au point 8. | |||
{{Command | |||
|prompt=(busco_env) $ | |||
|pip freeze > ~/busco-requirements.txt | |||
}} | }} | ||
=== Utilisation === | === Utilisation === | ||
==== Ensembles de données ==== | ==== Ensembles de données ==== | ||
Avant de soumettre | <b>6.</b> 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 <code>busco --list-datasets</code> dans votre terminal. | |||
Vous pouvez utiliser l'une des deux commandes suivantes : | |||
*<code>busco</code> | |||
*<code>wget</code> | |||
===== <b>6.1</b> Téléchargement avec la commande <code>busco</code> ===== | |||
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 <code>all</code>, <code>prokaryota</code>, <code>eukaryota</code> ou <code>virus</code>, 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 à | |||
<blockquote> | |||
* 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 | |||
</blockquote> | |||
Tous les fichiers de lignées se trouveront alors dans <b>busco_downloads/lineages/</b>. La présence de <code>--download_path busco_downloads/</code> dans la ligne de commande BUSCO indiquera où trouver l’argument <code>--lineage_dataset bacteria_odb10</code> pour l'ensemble de données. Si <i>busco_download</i> n’est pas votre répertoire de travail, il faudra fournir le chemin complet. | |||
=====<b>6.2</b> Téléchargement avec la commande <code>wget</code> ===== | |||
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 | |||
}} | |||
==== Test ==== | ==== Test ==== | ||
<b> | <b>7.</b> Téléchargement des fichiers de génome. | ||
{{Commands | {{Commands | ||
|wget https://gitlab.com/ezlab/busco/-/raw/master/test_data/bacteria/genome.fna | |wget https://gitlab.com/ezlab/busco/-/raw/master/test_data/bacteria/genome.fna | ||
}} | }} | ||
<b> | <b>8.</b> 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 <code>--in genome.fna</code> pour analyser un seul fichier. | |||
Utilisez <code>--in genome/</code> pour analyser plusieurs fichiers. | |||
===== Conseils pour Slurm ===== | |||
Utilisez <code>--offline</code> pour éviter l'utilisation de l’internet. | |||
Utilisez <code>--cpu</code> avec <code>$SLURM_CPUS_PER_TASK</code> dans le script de la tâche pour utiliser le nombre alloué de CPU. | |||
Utilisez <code>--restart</code> pour reprendre une tâche interrompue. | |||
====Soumettre une tâche==== | |||
Vous pouvez soumettre le script suivant avec <code>sbatch run_busco.sh</code>. | |||
{{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 ==== | |||
<b>9.</b> Si vous avez plus d'expérience, vous pouvez utiliser les paramètres Argutus : <code>--augustus_parameters="--yourAugustusParameter"</code>. | |||
*Copiez le répertoire <i>config</i> 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 <code>AUGUSTUS_CONFIG_PATH</code>. | |||
{{Command|export AUGUSTUS_CONFIG_PATH{{=}}$HOME/augustus_config}} | |||
====Paramètres SEPP ==== | |||
<b>10.</b> 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. | |||
<b>10.1.</b> Activez votre environnement virtuel BUSCO. | |||
{{Commands | |||
|source busco_env/bin/activate | |||
}} | |||
<b>10.2.</b> Installez DendroPy. | |||
{{Commands | |||
|pip install 'dendropy<4.6' | |||
}} | |||
<b>10.3.</b> Installez SEPP. | |||
{{Commands | |||
|git clone https://github.com/smirarab/sepp.git | |||
|cd sepp | |||
|python setup.py config | |||
|python setup.py install | |||
}} | |||
<b>10.4.</b> Validez l'installation. | |||
{{Commands | |||
|cd | |||
|run_sepp.py -h | |||
}} | |||
<b>10.5.</b> 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. | |||
}} | |||
<b>1.</b> 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}} | {{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 | Ceci charge aussi les modules pour Augustus, BLAST+, HMMER et d'autres paquets requis par BUSCO. | ||
<b>2.</b> Copiez le fichier de configuration | |||
{{Command|cp -v $EBROOTBUSCO/config/config.ini.default $HOME/busco_config.ini}} | {{Command|cp -v $EBROOTBUSCO/config/config.ini.default $HOME/busco_config.ini}} | ||
ou | ou | ||
{{Command|wget -O $HOME/busco_config.ini https://gitlab.com/ezlab/busco/raw/master/config/config.ini.default}} | {{Command|wget -O $HOME/busco_config.ini https://gitlab.com/ezlab/busco/raw/master/config/config.ini.default}} | ||
<b>3.</b> Modifiez le fichier de configuration. Les endroits où se trouvent les outils externes sont définis dans la dernière section. | |||
{{File | {{File | ||
|name=partial_busco_config.ini | |name=partial_busco_config.ini | ||
Line 103: | Line 266: | ||
}} | }} | ||
<b>4.</b> Copiez le répertoire <code>config</code> d’Augustus à un endroit où la lecture est possible. | |||
{{Command|cp -r $EBROOTAUGUSTUS/config $HOME/augustus_config}} | {{Command|cp -r $EBROOTAUGUSTUS/config $HOME/augustus_config}} | ||
<b>5.</b> Vérifiez si tout fonctionne bien. | |||
{{Commands | {{Commands | ||
Line 114: | Line 277: | ||
}} | }} | ||
La commande <code>run_BUSCO.py</code> devrait | La commande <code>run_BUSCO.py</code> 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 = | = Dépannage = | ||
== | == Erreur : <i>Cannot write to Augustus config path</i> == | ||
Assurez-vous d’avoir copié le répertoire <i>config</i> d’Augustus à un endroit où la lecture est possible et d’avoir exporté la variable <code>AUGUSTUS_CONFIG_PATH</code>. | |||
Latest revision as of 15:37, 5 May 2024
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
[name@server ~]$ avail_wheel busco
Wheel Python
Installation
1. Chargez les modules requis.
[name@server ~]$ 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.
[name@server ~]$ virtualenv ~/busco_env
[name@server ~]$ source ~/busco_env/bin/activate
3. Installez le wheel et ses dépendances.
(busco_env) $ pip install --no-index biopython==1.81 pandas==2.1.0 busco==5.5.0
4. Validez l'installation.
(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.
(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 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
.
[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
Test
7. Téléchargement des fichiers de génome.
[name@server ~]$ wget https://gitlab.com/ezlab/busco/-/raw/master/test_data/bacteria/genome.fna
8. Exécution.
Pour un seul génome :
[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/
Pour plusieurs génomes, le répertoire genome/ doit se trouver dans le répertoire courant, autrement il faut donner le chemin complet :
[name@server ~]$ 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 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
.
#!/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.
[name@server ~]$ cp -r $EBROOTAUGUSTUS/config $HOME/augustus_config
- Assurez-vous de définir la variable d'environnement
AUGUSTUS_CONFIG_PATH
.
[name@server ~]$ 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.
[name@server ~]$ source busco_env/bin/activate
10.2. Installez DendroPy.
[name@server ~]$ pip install 'dendropy<4.6'
10.3. Installez 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. Validez l'installation.
[name@server ~]$ cd
[name@server ~]$ 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.
[name@server ~]$ source ~/busco_env/bin/activate
Modules
Veuillez utiliser les wheels qui sont disponibles.
1. Chargez les modules nécessaires.
[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.
2. Copiez le fichier de configuration
[name@server ~]$ cp -v $EBROOTBUSCO/config/config.ini.default $HOME/busco_config.ini
ou
[name@server ~]$ 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.
[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.
[name@server ~]$ cp -r $EBROOTAUGUSTUS/config $HOME/augustus_config
5. Vérifiez si tout fonctionne bien.
[name@server ~]$ export BUSCO_CONFIG_FILE=$HOME/busco_config.ini
[name@server ~]$ export AUGUSTUS_CONFIG_PATH=$HOME/augustus_config
[name@server ~]$ 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 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
.