BF Workbench is a restricted scientific system. Records are available only to registered, authorised accounts.

The methods and their shared pipeline

The five stages every method runs, record filters, and what reports have in common.

Reference

Every analytical method in BOLD Forensics runs as a job: you choose records in a recordset, fill in a form in the Analysis panel, and the job runs in its own container away from the workbench. The methods differ in what they compute, but they share one pipeline, one set of record filters and one report layout. This page describes those shared parts so that each method page can concentrate on what is specific to it.

The five stages

Each job runs the same five stages in order. A stage that fails stops the job, and the job's error names the stage that failed.

Stage What it does
1. Validate Checks the submitted parameters: required keys are present and values are among those allowed. Nothing is computed yet.
2. Filter Applies the record filters below to the selected records and writes the survivors to filtered_records.jsonl.
3. Convert Turns the filtered records into the input the method needs, usually a FASTA file whose header carries the record ID and taxonomy. Where the form offers alignment, MAFFT runs here.
4. Execute Runs the method itself: the BLAST search, the distance calculation, the tree builder, and so on.
5. Package Draws the charts, builds the report and zips every output into the result package.

The validate stage checks only parameters, so a job whose records are unsuitable (for example, unaligned sequences sent to a column-by-column distance method) passes validation and fails or misleads later. See Job lifecycle for how a job moves from submission to result.

Record filters common to all methods

The filter stage uses one shared filter program. Its rules apply before any method sees a record.

  • Marker. Only records whose marker_code equals the chosen marker are kept. Identification and the sequence download apply no marker filter.
  • Sequence length. Records outside the form's minimum and maximum are dropped. Most methods count only A, C, G and T; identification and diagnostic characters count every character except gaps. Barcode gap ignores the form and uses a fixed window (see its page).
  • Ambiguity threshold. A record is dropped when more than 10% of its characters, after gaps are removed, are not A, C, G or T. This threshold is fixed and appears on no form.
  • Records without a sequence. A record with no sequence counts as 100% ambiguous and is always dropped, including from the specimen download.
  • Stop-codon and misidentification checkboxes. Every analysis form offers both. No method applies the misidentification filter. Only identification reads the stop-codon box, and its page explains why to leave it unticked.

The report shows the number of input records and the number that survived the filter, but not which records were dropped or why. If the filtered count is lower than you expect, the ambiguity threshold and the records-without-sequence rule are the usual causes.

Alignment

Distance summary, barcode gap, diagnostic characters and tree construction offer an "Align Sequences" choice. MAFFT runs MAFFT in automatic mode, which lets MAFFT pick its own strategy for the data. None passes the sequences on exactly as stored. The distance and diagnostic methods compare sequences column by column, so choose None only when the stored sequences are already aligned to a common length. Programs and versions are listed on Software versions.

What reports have in common

Every analysis job produces analysis_report.html and a PDF copy of it inside the result package. The report contains:

  • the job ID and the recordset's title and description;
  • the parameters as you submitted them, not as the job applied them;
  • the input and filtered record counts;
  • the time spent in each stage and the container's CPU and memory use;
  • the method's own charts and tables;
  • a list of output files.

Two catches matter for anyone citing a report. The parameter list is a copy of the form, so an option the job ignores still appears there as if applied; each method page says which options those are. The output file list is declared by the job type, not checked against the package, so a file can be listed and absent. The report does not record program versions, citations, the reference database build or random seeds. See Report anatomy for a section-by-section walk-through.

The methods

Method Question it answers Workbench entry
Tree construction How do the selected sequences cluster in a tree? Data Analysis › Tree Construction
Distance summary How divergent are sequences within species, genus, subfamily, family and order? Data Analysis › Distance Summary
Barcode gap Does each species' largest within-species distance stay below its nearest-neighbour distance? Data Analysis › Barcode Gap
Sequence composition What are the base composition and GC content per record and taxon? Data Analysis › Sequence Composition
Identification Which reference records do these sequences most closely match? Data Analysis › Sequence Identification
Diagnostic characters Which alignment positions distinguish a species from its congeners? Data Analysis › Diagnostic Characters
Specimen download Export the selected specimen metadata Data Download › Specimen Records
Sequence download Export the selected sequences Data Download › Sequences
Specimen ingest Are uploaded specimen records valid and loadable? Not in a menu; runs when an upload is processed
Sequence ingest Are uploaded sequences loadable, and do they contain stop codons? Not in a menu; runs when an upload is processed

Which method should I use? helps you choose between them, and Running an analysis covers the form itself.

Good to know

  • Distance summary and barcode gap compute every pair in Python, so run time grows with the square of the record count.
  • No method records the program versions it ran with. Known limitations collects these points across all methods.