Skip to content

Annotate Subworkflow

Subworkflows combine tools in the right order to facilitate file targeting withing elvers. The "annotate" subworkflow annotates a transcriptome. It requires an assembly to be provided, either by running an assembly or providing one in your configfile.

At the moment, this workflow consists of:

Quickstart

If you're starting a new elvers run using a reference file (even if you have previously built a de novo assembly via elvers), you need to help elvers find that assembly.

Scenario 1: You're starting from your own reference file:

You need to provide the reference in your `config.yaml` file:

```
get_reference:
  reference: input reference fasta REQUIRED
  gene_trans_map: OPTIONAL: provide a gene to transcript map for input transcriptome
  reference_extension: '_input' OPTIONAL, changes naming
  download_ref: the reference entry above is a link that needs to be downloaded
  use_ftp: download via ftp instead of http
```
Once you add this to your configfile (e.g. `my_config.yaml`), you can run a reference/assembly-based workflow such as annotate.
```
elvers my_config.yaml annotate
```
For more details on reference specification, see the [get_reference documentation](get_reference.md). For annotation configuration, see below.

Scenario 2: You've previously run an assembly program via `elvers`:

You _can_ provide the built reference in the same manner as above. However, if you're running more workflows in the same directory, you can also just specify the name of the assembly program that you used to generate the assembly. This will *not* rerun the assembly (unless you provide new input files). Instead, this will allow `elvers` to know where to look for your previously-generated reference file. Because we enable multiple referene generation programs, we don't want to assume

which reference you'd like to use for downstream steps (in fact, if you provide multiple references, elvers will run the downstream steps on all references, assuming you provide unique reference_extension parameters so that the references are uniquely named.

Example: You've previously run the trinity assembly, and want to annotate it.

```
elvers examples/nema.yaml assemble annotate
```
Here, the `assemble` workflow just enables `elvers` to locate your assembly file for `annotate`.

Output files:

Your main output directory will be determined by your config file: by default it is BASENAME_out (you specify BASENAME).

Dammit will output files in the annotation subdirectory of this output directory. The annotated fasta file will be ASSEMBLY.dammit.fasta and the annotation gff3 file will be ASSEMBLY.dammit.gff3. Dammit will also produce a number of intermediate files that will be contained within an ASSEMBLY.fasta.dammit folder.

Configuring the annotate subworkflow

To set up your sample info and build a configfile, see Understanding and Configuring Workflows.

If you want to add the annotate program parameters to a previously built configfile, run:

elvers config.yaml annotate --print_params

A small set of parameters should print to your console:

 ####################  annotate  ####################
dammit:
  busco_group:     # specify all busco groups below here
  - metazoa
  - eukaryota
  db_dir: databases   # specify location for databases (or previously-installed databases)
  db_install_only: False   # just install databases, don't run annotation
  db_extra:
  annot_extra: ' --quick '
  #######################################################

Override default params for any program by placing these lines in your yaml config file, and modifying values as desired. For more details, see Understanding and Configuring Workflows.For more on what parameters are available, see the docs for each specific program or utility rule: