Skip to main content

BrkRaw scan viewer plugin for brkraw CLI.

Project description

BrkRaw Viewer

BrkRaw Viewer is an interactive dataset viewer implemented as a separate CLI plugin for the brkraw command.

The viewer is intentionally maintained outside the BrkRaw core to enable independent development and community contributions around user-facing interfaces.


Scope and intent

BrkRaw Viewer is designed for interactive inspection of Bruker Paravision datasets. It focuses on quick exploration and validation rather than data conversion or analysis.

The goal is to provide practical, researcher-focused features that are useful in everyday workflows, such as quick dataset triage, metadata checks, and lightweight visual QC.

Typical use cases include:

  • Browsing studies, scans, and reconstructions
  • Verifying scan and reconstruction IDs
  • Inspecting acquisition metadata before conversion
  • Lightweight visual sanity checks

All data conversion and reproducible workflows are handled by the BrkRaw CLI and Python API.


Why these features exist

Viewer The Viewer tab makes it easy to confirm the right scan and orientation before running a larger workflow.

Registry The Registry reduces repeated filesystem navigation and lets you re-open the current session with a single menu action.

Extensions/hooks Extensions allow modality-specific panels (MRS, BIDS, etc.) to live outside the core viewer so the default install stays lightweight.


Design goal: shared extensibility

brkraw-viewer keeps the BrkRaw design philosophy: extend the ecosystem without changing core logic. The viewer uses the same rules/spec/layout system as the CLI and Python API, and it exposes UI extensions via the brkraw.viewer.hook entry point so new tabs can be added with standalone packages. Viewer hooks can coexist with converter hooks and CLI hooks, so modality-specific logic can flow from conversion into UI without patching the viewer itself.


UI direction

The default viewer targets a tkinter-based implementation.

This choice is intentional: we want a lightweight tool that can be used directly on scanner consoles or constrained environments with minimal dependencies.

More modern GUI frameworks are welcome, but should be developed as separate CLI extensions to keep the default viewer small and easy to install.


Viewer hooks

Viewer extensions are implemented as hooks discovered through brkraw.viewer.hook. Each hook can register a new tab and provide dataset callbacks, enabling feature panels to live outside the core viewer while staying compatible with BrkRaw rules, specs, and converter hooks. See docs/dev/hooks.md for the hook interface and entry point setup.


Installation

For development and testing, install in editable mode:

pip install -e .

Usage

Launch the viewer via the BrkRaw CLI:

brkraw viewer /path/to/bruker/study

Optional arguments allow opening a specific scan or slice:

brkraw viewer /path/to/bruker/study \
    --scan 3 \
    --reco 1

The viewer can also open .zip or Paravision-exported .PvDatasets archives using Load (folder or archive file).


Update

Recent updates:

  • Open folders or archives (.zip / .PvDatasets)
  • Viewer: Space (raw/scanner/subject_ras), nibabel RAS display, click-to-set X/Y/Z, optional crosshair + zoom, slicepack/frame sliders only when needed
  • Info: rule + spec selection (installed or file), parameter search, lazy Viewer refresh on tab focus
  • Registry: add the current session from the + menu when a dataset is loaded
  • Convert: BrkRaw layout engine, template + suffix defaults from ~/.brkraw/config.yaml, keys browser (click to add), optional config layout_entries
  • Config: edit ~/.brkraw/config.yaml in-app; basic focus/icon UX

This update keeps dependencies minimal and preserves compatibility with the core BrkRaw rule/spec/hook system.


Contributing

We welcome contributions related to:

  • New viewer hooks that add modality-specific panels or workflows
  • Alternative UI implementations delivered as separate CLI extensions
  • fMRI/MRS/BIDS-focused visualization or QC helpers built on hooks
  • Multi-dataset session management and registry enhancements
  • Performance and memory improvements for large datasets

Contributions should prefer designs where new hooks extend the viewer implicitly through shared BrkRaw abstractions, and where richer UIs are provided as optional CLI extensions rather than increasing the default dependency footprint.

If you are interested in contributing, please start a discussion or open an issue describing your use case and goals.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brkraw_viewer-0.2.4.tar.gz (63.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brkraw_viewer-0.2.4-py3-none-any.whl (66.1 kB view details)

Uploaded Python 3

File details

Details for the file brkraw_viewer-0.2.4.tar.gz.

File metadata

  • Download URL: brkraw_viewer-0.2.4.tar.gz
  • Upload date:
  • Size: 63.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brkraw_viewer-0.2.4.tar.gz
Algorithm Hash digest
SHA256 f65dea7aeee206e62af0bb123c564c03018ae4fd77ad591eb865620ffde7616d
MD5 0ab2dca2a2c7ecc590b70f01dccf5b5f
BLAKE2b-256 b6ad75a32a4e6e1804d35b4d0b5a4b0d95cd049e2eb69c42d87629ba530fb2a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for brkraw_viewer-0.2.4.tar.gz:

Publisher: publish.yml on BrkRaw/brkraw-viewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file brkraw_viewer-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: brkraw_viewer-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 66.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for brkraw_viewer-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 eec1108f8ae8252f88a8371c226e5ffa9e52c8c964bab572c893bb3349202b8e
MD5 e3d2adc975e5791135d9620cf8506cff
BLAKE2b-256 2f025d124622224cb21771ce603b02794e2de69157b13e65a44a9450863ae674

See more details on using hashes here.

Provenance

The following attestation bundles were made for brkraw_viewer-0.2.4-py3-none-any.whl:

Publisher: publish.yml on BrkRaw/brkraw-viewer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page