Web Interface Guide
How to use the Aviary run monitor and results explorer
🔍

No sections match your search.

01Quick Start

Install the environment (first time only) from the web/ folder:

cd /path/to/aviary/aviary/web
~/.pixi/bin/pixi install

On an HPC — open the SSH tunnel first (in a separate local terminal window, keep it open):

ssh -L 8090:localhost:8090 <username>@<hpc-address>

This forwards port 8090 from the HPC to your local machine. The tunnel must be open before you try to reach the server in your browser. Skip this step if running locally. See HPC / SSH Tunnel for full details.

Start the server on the HPC (or locally), pointing it at your output directory:

pixi run -e web server --output-dir /path/to/aviary_output

Open your browser at http://localhost:8090

Select your output directory using the switcher in the top bar if needed, or pass --output-dir on start.

Server arguments

ArgumentDefaultDescription
--output-dir / -ocurrent directoryRoot directory to scan. The server traverses any subdirectory depth automatically.
--port / -p8090Port to listen on
--host127.0.0.1Bind address. Keep as loopback on shared HPCs.
--reloadoffAuto-restart the server when server.py or templates are saved. Useful when making changes to the interface.
Tip: The server discovers Aviary output directories by recursively searching for .snakemake/log/ folders. This works at any nesting depth — including <commit-hash>/assembler/sample layouts.

02Pipeline Monitor

The main view groups sample cards by run date (derived from Snakemake log timestamps). Each date group shows an overall progress bar for that batch.

Within each date group, every sample has a card showing an assembler pill per assembler (megahit / metaspades) with a live progress bar:

In progress Completed Failed Queued

Expanding an assembler pill reveals every individual job (Snakemake rule) with its status, duration, thread count, memory usage, and a link to its log file.

The sidebar overview shows sample count, running, completed, and failed counts scoped to the most recent run only — so historical runs don't inflate the numbers.

Dismissing Failed Runs

When a run fails, a red banner appears on the sample card listing the failed rule(s). If you have already acknowledged the failure and don't want to see the indicator, click Dismiss on the banner. This hides the banner and turns the assembler pill dot grey.

The dismissal is saved in localStorage and is tied to the specific log file — if the sample is re-run and fails again, the red indicator reappears automatically.

Log Viewer

Click any job row to open its log in the right panel.

🔴
Error Highlighting
Lines containing Error, Failed, Exception, Traceback, or CalledProcessError are highlighted in red. The log auto-scrolls to the first error. If no errors are found it scrolls to the bottom.
🔄
Attempt Selector
If a job was retried, pill buttons appear above the log (Attempt 1, Attempt 2, …) letting you switch between log files without leaving the page.
🔍
Log Search
Type in the search field to filter log lines; matching text is highlighted in yellow. Clearing the field restores the full log and re-applies error highlights.

Auto-Refresh & Countdown

The page refreshes every 60 seconds. A live countdown (in Xs) appears next to the pulse dot in the sidebar footer so you always know when the next update is due. You can also trigger a manual refresh using the refresh button in the topbar at any time.

Output Directory Switcher

The directory switcher in the top bar lets you hot-swap between multiple Aviary project roots without restarting the server. Type an absolute path and press Go, or select from the recently-used roots list. The last 5 roots are persisted via localStorage across browser sessions.

Note: Switching the root updates all data — the job tree, summary, graphs, and export preview all reload using the new path.

03Bin Quality Report

Toggle from Pipeline Monitor to Bin Quality Report using the tab buttons in the top bar to view final results once runs are complete. Grouped by run date, newest first.

Quality tiers

HQ — High Quality MQ — Medium Quality LQ — Low Quality
TierCompletenessContamination
HQ≥ 90%≤ 5%
MQ≥ 50%≤ 10%
LQEverything else

The bin table is sorted HQ → MQ → LQ, then by completeness descending within each tier, so your best bins always appear first.

Columns

ColumnDescription
BinBin identifier
CompletenessCheckM2 completeness estimate (%)
ContaminationCheckM2 contamination estimate (%)
Strain heterogeneityCheckM2 strain heterogeneity estimate (%)
Genome sizeTotal assembly length (bp)
N50Contig N50 (bp)
GC contentGC fraction (%)
TaxonomyGTDB-tk classification string (d__Bacteria;p__…)

Assembly stats

Total assembly length, N50, contig count, and GC content per sample/assembler combination.

04Results Visualisation /graph

A dedicated page for generating publication-quality charts from your results. All six chart types are rendered as inline SVG — no charting libraries required. Select samples on the left, configure the chart above, and the visualisation updates instantly.

Chart typeWhat it shows
Bar HQ/MQ/LQ counts, total MAGs, N50, or assembly size per sample. Toggle grouped or stacked mode.
Scatter Any two numeric bin fields plotted against each other. Colour by quality tier, assembler, sample, or domain. Optional bubble-size encoding by a third metric.
Histogram Distribution of any bin quality field (completeness, contamination, N50, …) with adjustable bin count. Threshold lines mark HQ/MQ tiers for completeness and contamination.
Phylum stacked bar GTDB taxonomy breakdown at domain, phylum, or class level. Top-N taxa shown, remainder grouped as "Other".
Heatmap Sample × assembler grid coloured by HQ MAG count, mean completeness, or total wall time. Colour gradient from dark to teal.
Donut Proportional breakdown by quality tier, taxonomic domain, or assembler. Centre hole shows total count.

Customise Panel

The Customise section (below the chart config) adjusts the appearance of the current chart without regenerating it:

🎨
Colour Palette
11 palettes — Classic, Aviary, Bold, Vivid, Ocean, Sunset, Tropical, Accessible, Forest, Mono, Amethyst. The first three colours in each palette map to HQ / MQ / LQ respectively, so all quality-tier charts respond immediately.
🔤
Font Family
Override the default system font across all chart text with a selection of serif, sans-serif, and monospace options.
📐
Axis Labels
Type an X or Y axis label to override an existing title or inject a new one on charts that don't have one by default (e.g. histogram). Applied directly to the live SVG.

Downloading charts

Use the SVG button to download a vector file suitable for editing in Inkscape / Illustrator, or PNG for a 2× scale raster image ready to embed in documents or presentations.

05Tree View /view

An interactive taxonomy tree built from GTDB-Tk classifications across all bins. The tree is constructed client-side from the taxonomy strings in your bin results — no pre-computed tree file required. Three layout modes are available depending on what you want to explore.

LayoutDescription
SunburstDefault view. Concentric ring chart showing taxonomy from domain outward. Click any segment to zoom into that clade — click the centre circle to go back. Scroll or use the Zoom In / Zoom Out buttons to scale. Best for getting a quick overview of community composition.
Radial (Circular)Classic circular cladogram with phylum-level colour bands. Click nodes to expand or collapse. Best for exploring tree structure at a glance.
Horizontal CladogramLeft-to-right dendrogram. Better for reading full taxonomy labels on deep or species-level trees.

Controls

🌲
Initial View Depth
Choose how deep the tree expands on load: Phylum, Class (default), Order, Family, Genus, or fully expanded. Applies to radial and horizontal layouts. Changing this resets the view.
🏷️
Include Names
Tick to show labels at the chosen depth without expanding any branches. The tree structure is unchanged — only label visibility toggles.
🔍
Search Taxonomy
Type a name to highlight matching nodes across the tree in real time.
🎛️
Display
Label size slider (0.5× to 2.5×) and font style dropdown. Both update in-place without re-rendering the tree.
🧬
Quality Filter
Show or hide HQ, MQ, or LQ bins to focus the tree on a specific quality tier.
📂
Sample Filter
Include or exclude individual samples. Useful for comparing taxonomy across a subset of your dataset.

Interaction

  • Sunburst — click a segment to zoom into that clade. Click the teal centre circle to go back to the full view.
  • Radial / Horizontal — click any node to expand or collapse that branch individually.
  • Zoom In / Zoom Out buttons in the topbar scale the view in all layouts. Mouse scroll also works.
  • Reset View returns to the default zoom and position.
  • Expand All / Collapse buttons reset the entire tree structure (radial and horizontal only).
  • Drag to pan freely in all layouts.
  • Hover any node for a tooltip showing rank, MAG count, and HQ/MQ/LQ breakdown.

Export the current view as SVG or PNG using the Download button in the topbar.

06Contig Assembly Graph /assembly

A per-sample viewer for the GFA-format assembly graphs produced by megahit and metaSPAdes. Browse the graph structure for each sample and assembler combination directly in the browser.

Tip: Assembly graphs are available once the assemble_short_reads step completes. The graph file is located at data/short_read_assembly/assembly_graph_with_scaffolds.gfa within each sample's output directory.

07Export Results /export

A two-panel page for downloading your bin results as a filtered, customised table.

📋
Sample Selection
Accordion list grouped by run date. Tick the samples you want to include; select-all shortcuts are available per group.
☑️
Column Chooser
Toggle individual columns on or off, grouped into identity, quality, assembly, and taxonomy categories.
🔧
Quality Filters
Set minimum completeness, maximum contamination, or filter to a specific quality tier (HQ/MQ/LQ).
👁️
Live Preview
The right panel shows the first 50 rows matching your current selection before you commit to downloading.

Toggle between CSV and TSV output using the format switch in the config panel, then click Download in the top bar to export the full filtered table.

08HPC / SSH Access

Two terminal windows are required — both opened locally (not already inside an HPC session).

Window 1 — SSH tunnel (keep this open)

ssh -L 8090:localhost:8090 <username>@<hpc-address>

This forwards port 8090 on your local machine to port 8090 on the HPC. Keep this window open for the entire session — closing it drops the tunnel and the browser will lose connection.

Window 2 — start the server on the HPC

ssh <username>@<hpc-address>
cd /path/to/aviary/aviary/web
pixi run -e web server --output-dir /path/to/aviary_output

Then open in your browser

http://localhost:8090

09API Reference

All endpoints accept an optional ?root=<path> query parameter to override the default output directory set at server start.

EndpointKey paramsReturns
GET /api/structure ?root= Sample/assembler job tree grouped by run date; root field with resolved path
GET /api/status ?output_dir= Detailed status for a single output directory
GET /api/summary ?root= Bins and assembly stats for all runs
GET /api/logs ?output_dir= List of available Snakemake log files for a directory
GET /api/job_log ?log_path=, ?output_dir= Log file content + available_attempts array of sibling attempt log paths
GET /api/benchmark ?benchmark_path=, ?output_dir= Benchmark timing data (wall time, CPU, memory) for a job
GET /api/output_dirs ?root= All discovered output directories under the root
GET /api/gfa_stats ?output_dir= Parsed GFA assembly graph statistics for a single output directory. Results are cached by file mtime.
GET /api/gfa_available ?root= Map of all discovered output directories to a boolean indicating whether assembly/assembly_graph.gfa exists
GET /api/taxonomy_tree ?root= Taxonomy breakdown tree — prefers SingleM condensed profile data when available, falls back to GTDB-Tk classification strings
GET /api/singlem_status ?root= Count of output directories that have a SingleM condensed profile (total and done keys)
GET /api/phylo_newick ?output_dir=, ?root= GTDB-Tk Newick tree with MAG annotations for the tree view (output_dir or auto-detected from root)
No auth: The server is intended for local or SSH-tunnelled use only. It has no authentication. Do not expose it publicly.