The first release since 11 August, and effectively a new app: 123 commits of interface work on top of the same lazy-loading core.
The table reads like data now
- Magnitude shading. Cells are shaded on a log scale between the table's global minimum and maximum non-zero value, so the abundant taxa separate from the zeros at a glance instead of every non-zero looking alike. Log rather than linear because abundance tables are skewed enough that a linear ramp puts nearly everything in the palest bucket.
- Taxonomy lineages truncate from the front, keeping the genus and species — the part that differs — on screen.
- Real empty, loading and failure states. A filter matching nothing used to dissolve the grid into a heap of loose row headers; a failed open wrote the raw exception into a 60px filename slot; a large file parsed behind a blank frame. All three now say what happened, and the failure detail is selectable and monospaced so it can be pasted somewhere useful.
Metadata as a first-class view
Observation metadata and Sample metadata turn your sample sheet into the grid — sort, rename, delete, pin, or expand a single field to full height.
Summary statistics that answer what you asked
- Double-click an observation and that row alone expands, with its own summary across the samples.
- Double-click a sample and the band fills for every sample side by side.
- View → Show All Summary Stats for the same band from a menu rather than only a gesture.
- Summaries respect your active filters — filter 217 samples down to 25 and the counts are those 25's, not the whole file's.
Filters, search, views
- Numeric ranges and category checklists, stackable, each becoming a chip that says what it did and how much it kept (
41/217), removable one at a time or all at once. - Search across observation IDs, sample IDs, metadata field names and metadata values at once, grouped by what matched, with the matched substring highlighted in place.
- Saved views — name a set of filters, sorts and pins and return to it.
Editing
- Undo/redo across every edit, each step naming what it took back ("Undo: sort observations by Confidence") instead of changing state silently.
- Find & replace across metadata values.
- Copy buttons confirm they copied; clicking a cell no longer hijacks the clipboard.
- Export the current view as a runnable Python snippet or as a new
.biom.
One vocabulary
The app used to name the same two axes three different ways — Row/Col metadata in the buttons, observation/sample in the chips, Taxa in the search strip. Everything now says observation and sample, matching BIOM itself. Two mislabelled counters were fixed along the way.
Install
Download BiomViewer-macos-arm64.zip, unzip, drag to Applications. Self-contained — no Python required.
The app is ad-hoc signed, not notarized, so macOS will warn on first launch: right-click → Open → Open.
Full changelog: v0.1.0...v0.2.0