BUSCO/en: Difference between revisions

Jump to navigation Jump to search
5,352 bytes added ,  11 months ago
Updating to match new version of source page
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 9: Line 9:


== Available versions ==
== Available versions ==
Recent versions are available as wheels. Older version is available as a module, please see the Modules section below.
Recent versions are available as wheels. Older versions are available as a module, please see the module section below.


To see the latest available version, run:
To see the latest available version, run:
{{Command|avail_wheel busco}}
{{Command|avail_wheel busco}}
== Python wheels ==
 
== Python Wheel ==
=== Installation ===
=== Installation ===
<b>1.</b> Load the necessary modules:
'''1.''' Load the necessary modules:
{{Commands
{{Commands
|module load StdEnv/2020 gcc python/3.10 augustus hmmer blast+ metaeuk prodigal r}}
|module load StdEnv/2020 gcc python/3.10 augustus hmmer blast+ metaeuk prodigal r bbmap}}


<b>2.</b> Create the virtual environment:
'''2.''' Create the virtual environment:
{{Commands
{{Commands
|virtualenv busco_env
|virtualenv ~/busco_env
|source busco_env/bin/activate
|source ~/busco_env/bin/activate
}}
}}


<b>3.</b> Install the wheel and its dependencies:
'''3.''' Install the wheel and its dependencies:
{{Command
{{Command
|prompt=(busco_env) $
|prompt=(busco_env) $
|pip install biopython pandas busco --no-index
|pip install biopython pandas busco --no-index
}}
'''4.''' Validate it:
{{Command
|prompt=(busco_env) $
|busco --help
}}
'''5.'''  Freeze the environment and requirements set. For requirements text file usage, have a look at the bash submission script described in point number 8.
{{Command
|prompt=(busco_env) $
|pip freeze > ~/busco-requirements.txt
}}
}}


=== Usage ===
=== Usage ===
==== Datasets ====
==== Datasets ====
You must pre-download any datasets from [https://busco-data.ezlab.org/v5/data/ busco data] before submitting your job.
'''6.''' You must pre-download any datasets from [https://busco-data.ezlab.org/v5/data/ busco data] before submitting your job.
 
You can access the available datasets in your terminal by typing <code>busco --list-datasets</code>.
 
You have '''two''' options for datasets download:
 
===== Busco download command =====
'''6.1''' Use busco download command (preferred method). Here is one example:
 
Type this command in your working directory to download one particular dataset:
 
{{Commands
|busco --download bacteria_odb10
}}
 
It is also possible to do a bulk download by using the following arguments in place of the dataset name: "all", "prokaryota", "eukaryota", or "virus".
 
{{Commands
|busco --download virus
}}
 
This will:
 
::1. Create Busco directory hierarchy for datasets.
::2. Download the appropriate datasets.
::3. Decompress the file(s).
::4. If you download multiple files, they will all be automatically added in the lineages directory.
 
Directories hierarchy will look as follows:
 
<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>
 
Doing so, all your lineage files should be in '''busco_downloads/lineages/'''. When referring <code>--download_path busco_downloads/</code> in your busco command line, it will know where to find the lineage dataset argument <code>--lineage_dataset bacteria_odb10</code>. If the busco_download directory is not in your working directory, you would need to provide full path.
 
=====Wget download command =====
'''6.2''' Use wget download command. Here is one example:
 
All files must be decompressed: <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>4.</b> Download test data:
'''7.''' Download a genome file.
 
{{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
|wget https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2020-03-06.tar.gz
}}
}}


<b>5.</b> Run:
'''8.''' Run:
{{Command|busco --offline --in genome.fna --out TEST --lineage_dataset bacteria_odb10 --mode genome --cpu ${SLURM_CPUS_PER_TASK-1} }}
 
Command to run a single genome:
 
{{Command|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: (As describe here, genome folder would need to be in the current directory or you would need to provide the full path).
 
{{Command|busco --offline --in genome/ --out TEST --lineage_dataset bacteria_odb10 --mode genome --cpu ${SLURM_CPUS_PER_TASK:-1} --download_path busco_download/}}
 
The single genome command should take less than 60 seconds to complete. Production runs which take longer must be submitted to the [[Running jobs|scheduler]].
 
===== Busco tips =====
 
Specify <tt>--in genome.fna</tt> for single file analysis,
 
Specify <tt>--in genome/</tt> for multiple files analysis.
 
===== Slurm tips =====
Specify <tt>--offline</tt> to avoid using the internet.
 
Specify <tt>--cpu</tt> to <tt>$SLURM_CPUS_PER_TASK</tt> in your job submission script to use the number of CPUs allocated.
 
Specify <tt>--restart</tt> to restart from a partial run.
 
====Job submission====
 
Here you have an example of a submission script. You can submit as so: <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 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.''' For advanced users who want to use Augustus parameters: <code>--augustus_parameters="--yourAugustusParameter".</code>
 
Copy the Augustus config directory to a writable location:
{{Command|cp -r $EBROOTAUGUSTUS/config $HOME/augustus_config}}
 
Make sure to define the <code>AUGUSTUS_CONFIG_PATH</code> environment variable:
{{Command|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:
{{Commands
|source busco_env/bin/activate
}}
 
'''10.2.''' Install dendropy:
{{Commands
|pip install 'dendropy<4.6'
}}
 
'''10.3.''' Install SEPP:
{{Commands
|git clone https://github.com/smirarab/sepp.git
|cd sepp
|python setup.py config
|python setup.py install
}}


The command should take less than 60 seconds to complete. Production runs which take longer must be submitted to the [[Running jobs|scheduler]].
'''10.4.''' Validate the installation:
{{Commands
|cd
|run_sepp.py -h
}}


=== Slurm tips ===
'''10.5.''' When using SEPP, because it is installed locally you cannot create the virtual environment as we have described in previous submission script demo. You simply need to add this command which activates your local virtual environment just after the loading module command line:
Specify <code>--offline</code> to avoid using internet.
{{Commands
|source ~/busco_env/bin/activate
}}


Specify <code>--cpu</code> to <code>$SLURM_CPUS_PER_TASK</code> in your job submission script to use the number of CPUs allocated.


Specify <code>--restart</code> to restart from a partial run.


== Modules ==
== Modules ==  
 
{{Warning
|title=Deprecation
|content=This section is outdated. We are currently working on updating it.
}}


'''1.''' Load the necessary modules:
'''1.''' Load the necessary modules:
Line 120: Line 289:
= Troubleshooting =
= Troubleshooting =
== Cannot write to Augustus config path ==
== Cannot write to Augustus config path ==
Make sure you have copied the config directory to a writable location and exported the <code>AUGUSTUS_CONFIG_PATH</code> variable.
Make sure you have copied the config directory to a writable location and exported the <tt>AUGUSTUS_CONFIG_PATH</tt> variable.
38,760

edits

Navigation menu