Fluorescence microscopy / Private beta

BloodScanViewport

A desktop application for finding and classifying circulating tumour cells in multi-channel fluorescence microscopy scans of blood samples.

In private beta with laboratory partners.
General availability coming soon.

The software finds candidates. The analyst makes every call.

Local analysis Analyst-reviewed labels Raw + display exports

01The channel model

Three channels.
One cell at a time.

Every scan is a stack of greyscale channels shown as one colour image. Read the nucleus, the surface marker and the cytoplasm together.

Fluorescence / Channel separationSchematic
DAPIBlue · nucleus
CD45Green · surface ring
CKRed · cytoplasm

CTC schematic · not scan data

A circulating tumour cell in the three-channel model Red CK-positive cytoplasm surrounds an intact blue DAPI nucleus. The green CD45 ring is absent.
  • CKPositive +
  • CD45Negative −
  • NucleusIntact

The classification rule

A CTC is CK-positive, CD45-negative, with an intact nucleus.

DAPI stains the nucleus. A real cell has one.

CD45 is a leukocyte surface marker. Positive means white blood cell.

CK, or cytokeratin, is an epithelial/tumour marker. Positive means tumour-derived.

+ A fourth marker, when present

Viewport detects an additional channel, such as PD-L1 or HER2. The analyst calls each CTC positive or negative for that marker.

Tallies are per cell: a four-cell cluster called positive contributes four positive cells.

02From scan to reviewed cells

Detect in the background.
Review at the keyboard.

Open a scan, classify the candidates, review the cells and export the images and statistics.

  1. Open the scan folder

    Use a folder on the machine or a plugged-in drive. Nikon .nd2 files are read directly. Large scans decode once in the background, with a progress bar, and are cached.

  2. Classify while detection continues

    Detection sweeps the whole scan in the background while you classify the first tiles. Label each candidate and add any cell the detector missed.

  3. Set the display, channel by channel

    Adjust brightness through each channel’s LUT. Auto proposes settings from the image background; Apply-to-all copies one tile’s settings across the session.

  4. Review, then export

    Review collects every CTC, cluster and uncertain cell for a final look: each cell large in every channel, beside its morphology and fluorescence measurements. Export the reviewed cells as images and statistics.

Labelling / Keyboard reference

Keep the cell in view.

Classify the selected cell with a single number key.

  • 1Not a cell
  • 2Non-CTC
  • 3CTC
  • 4CTC Cluster
  • 5Uncertain
Tab
Check the red signal. Flash the CK channel on and off.
n
Next unreviewed cell anywhere in the session.
WS
Step through cells in the tile.
QE
Step through tiles.
a+ click
Press a, then click to add a missed cell.

What you see is exactly what exports. Previews are server-rendered with the same code used at export.

03Engineering safeguards

What Viewport
refuses to do.

Channel identity, pixel scale and duplicate confirmation are explicit decisions, not assumptions hidden in the result.

Channel identity

Guess an unfamiliar channel name.

If a channel name is unrecognised, Viewport stops and asks the analyst to assign each channel in the file to its stain.

Then: the assignment is saved for future scans.

Pixel scale

Measure at a guessed scale.

If the file has no pixel size, measurements are blocked until the analyst states the scale. A guessed scale would silently distort every diameter and area.

Then: the value is recorded as operator-declared and frozen for that session.

Tile-seam duplicates

Exclude an unconfirmed duplicate.

Overlapping tiles can detect a seam cell twice. Confident matches are grouped automatically; near-matches wait for the analyst’s decision.

The rule: no cell is excluded until confirmed.

04Where the data goes

Local analysis.
Explicit outbound data.

Analysis is entirely local. Scans and results remain on the installed machine. Anonymised single-cell training crops are part of the documented outbound traffic.

On your machine

Scans · cells · results

Local analysis and review.

BloodScan’s server

Three outbound purposes

Update checks, chosen bug reports and anonymised training crops.

The application’s only outbound traffic is HTTPS to BloodScan’s server, for exactly three things: update checks; bug reports you choose to send; and anonymised training crops.

Inside an anonymised training bundle

Includes

  • Single-cell crops, 64 × 64 pixels
  • Each cell’s label
  • Its position within its tile
  • Tile background statistics

Never includes

  • Patient identifiers
  • Names
  • Lab IDs
  • Filenames
  • Dates of acquisition
  • Whole tiles or scans

outbound HTTPS only, nothing inbound

05The export

Raw intensities.
Reviewed images.
A record of the work.

Each exported cell includes untouched raw data and the display images exactly as previewed. Statistics and provenance accompany the images.

The raw crop, every channel

Per-cell raw crops retain their original intensities.

16-bit / intensities untouched

The display images, with scale bars

Per-cell display images export exactly as previewed, with a scale bar.

Export / Statistics & provenance
stats.csv
One row per exported cell: lab ID, slide, analyst, label, cluster cell count, position, pixel scale, per-channel intensities and the fourth-marker call.
summary.csv
Per-session tallies.
provenance.json
Who analysed what, and when.

No CTC is still an exportable result.

A session with no CTC can be exported as a negative result, optionally with reference images of textbook white blood cells as evidence the assay ran.

A second reading keeps the original.

A second analyst opens the export folder itself; Viewport recognises it and offers to open it as a verification. Re-exporting records both analysts’ labels side by side, leaving the original untouched.

06Requirements & installation

Installation will start
with Docker Desktop.

At general availability, Viewport will run on your machine, with a browser interface at http://localhost:5173. Here is what installation will involve.

What you’ll need

64-bit Windows 10 / 11
8 GB RAM minimum · 16 GB recommendedAbout 30 GB free disk
Or macOS
Docker Desktop will need to be installed and running first.
Local browser interface
The application will run on the installed machine.
http://localhost:5173

Day-to-day analysis will work offline. Installation and updates will require internet access.

Measured installationAbout two minutes.

Measured end to end on a real from-zero install, with the download accounting for most of it.

  1. Docker Desktop will come first

    Docker Desktop will need to be installed and running before the Viewport installer can run.

  2. The kit will be downloaded and unzipped

    You’ll download the installer kit, unzip it and run the installer.

  3. The download will be checksum-verified

    The installer will download the application itself, about 530 MB, and verify its checksum before touching anything. It will finish only after proving the app is serving.

  4. Viewport will open in your browser

    You’ll use http://localhost:5173. A BloodScan-issued key will activate one machine.

How updates, backups and machine keys will work

Viewport will check for updates automatically and install them on one click. Before updating, it will back up the database and verify that the backup restores. If anything fails, it will automatically put the previous version back.

One key will activate one machine, which will then check in by itself. BloodScan will issue the keys.

07The waitlist

For the laboratory.
With the analyst.

BloodScan Viewport is made by BloodScan Biotech. It is in private beta with laboratory partners, with general availability coming soon.

Join the waitlist. Your email is required; the other fields are optional.

BloodScan Biotech / Viewport