Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions _includes/links.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

[formats]: /formats/
[format-aperio]: /formats/aperio/
[format-argos]: /formats/argos/
[format-dicom]: /formats/dicom/
[format-generic-tiff]: /formats/generic-tiff/
[format-hamamatsu]: /formats/hamamatsu/
Expand Down
1 change: 1 addition & 0 deletions demo/_synctiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
OVERLAP = 1
LIMIT_BOUNDS = True
GROUP_NAME_MAP = {
'Argos': 'ARGOS',
'Generic-TIFF': 'Generic TIFF',
'Hamamatsu': 'Hamamatsu NDPI',
'Hamamatsu-vms': 'Hamamatsu VMS',
Expand Down
4 changes: 4 additions & 0 deletions docs/newformat/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ Your driver is also responsible for setting some
[standard properties][doc-properties], when they apply to your format:

- `openslide.background-color`
- `openslide.barcode`
- `openslide.bounds-height` (must be an integer)
- `openslide.bounds-width` (must be an integer)
- `openslide.bounds-x` (must be an integer)
Expand All @@ -140,6 +141,9 @@ Your driver is also responsible for setting some
`openslide.background-color` should be set with
`_openslide_set_background_color_prop()`.

`openslide.barcode` should be set to the decoded value of the label's
barcode if included in the slide metadata.

The `openslide.bounds-*` properties should be set for slides that omit image
data along an entire edge of level 0. Drivers that use a single grid per
level can set these properties with
Expand Down
3 changes: 3 additions & 0 deletions docs/properties/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ redirect_from:
: The background color of the slide, given as an RGB hex triplet. This property
is not always present.

`openslide.barcode`
: The contents of the slide's barcode. This property is not always present.

`openslide.bounds-height`
: The height of the rectangle bounding the non-empty region of the slide.
This property is not always present.
Expand Down
93 changes: 93 additions & 0 deletions formats/argos/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
title: ARGOS format
permalink: /formats/argos/
---

Format
: single-file pyramidal tiled BigTIFF with non-standard metadata

File extensions
: `.avs`

OpenSlide vendor backend
: `argos`


## Vendor Documentation

[Documentation PDF](https://github.com/user-attachments/files/15580286/ARGOS.AVS.File.Format.pdf)


## Detection

ARGOS slides are stored in single-file BigTIFF format. OpenSlide will detect
a file as ARGOS if:

1. The file is TIFF.
2. The initial image is tiled.
3. Tag 65000 contains valid XML whose root element is `Argos.Scan.Metadata`.


## Relevant TIFF tags

Tag | Description |
--------------------|--------------------------------|
65000 | Metadata XML |


## Metadata XML

The first TIFF directory includes metadata XML in TIFF tag 65000. The
field type is ASCII, but in our samples the value is not NUL-terminated
as required by TIFF, causing libtiff to warn about it.

Value | Description |
--------------------|--------------------------------|
`MaxZ` | Integer identifier for highest focal plane |
`MinZ` | Integer identifier for lowest focal plane |
`ScanArea` | Coordinates of scanned portion of the slide (cm) |
`ZRange` | Distance between outermost focal planes (μm) |


## TIFF Image Directory Organization

The TIFF file contains the image pyramid of the lowest focal plane,
followed by each higher plane in succession. Images are sparse, with
missing tiles represented by a zero `TileOffset` and a zero `TileByteCount`.

The last two TIFF directories are the thumbnail and macro images, which are
both stripped.


## Associated Images

`thumbnail`
: second-to-last image in the file, non-tiled

`macro`
: last image in the file, non-tiled


## Known Properties

All simple key-value data encoded in the metadata XML is represented as
properties prefixed with "`argos.`".

`openslide.barcode`
: `argos.Barcode`

`openslide.mpp-x`
: calculated as `10000/tiff.XResolution`, if `tiff.ResolutionUnit` is
`centimeter`

`openslide.mpp-y`
: calculated as `10000/tiff.YResolution`, if `tiff.ResolutionUnit` is
`centimeter`

`openslide.objective-power`
: normalized `argos.ObjectiveMagnification`


## Test Data

<https://openslide.cs.cmu.edu/download/openslide-testdata/Argos/>
3 changes: 3 additions & 0 deletions formats/dicom/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ _ICC Profile_ of the associated image.
Many DICOM attributes are represented hierarchically as properties prefixed
with "`dicom.`".

`openslide.barcode`
: _Barcode Value_ from highest-resolution level

`openslide.mpp-x`
: normalized X component of _Pixel Spacing_ from highest-resolution level

Expand Down
14 changes: 14 additions & 0 deletions formats/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,20 @@ More info
: [Aperio format][format-aperio]


## ARGOS

Single-file pyramidal tiled BigTIFF with non-standard metadata.

File extensions
: `.avs`

OpenSlide vendor backend
: `argos`

More info
: [ARGOS format][format-argos]


## DICOM

International standard multi-file medical imaging format.
Expand Down
3 changes: 3 additions & 0 deletions formats/leica/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ OpenSlide mailing list.)*
`leica.objective`
: the `objective` of the main image

`openslide.barcode`
: `leica.barcode`

`openslide.mpp-x`
: calculated as `10000/tiff.XResolution`, if `tiff.ResolutionUnit` is
`centimeter`
Expand Down
3 changes: 3 additions & 0 deletions formats/philips/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ All key-value data encoded in the `DPUfsImport` object, in the first
object's `PixelDataRepresentation` objects is represented as properties
prefixed with "`philips.`".

`openslide.barcode`
: Base64-decoded `philips.PIM_DP_UFS_BARCODE`

`openslide.mpp-x`
: calculated as `1000 * philips.DICOM_PIXEL_SPACING[1]`

Expand Down
5 changes: 5 additions & 0 deletions formats/zeiss/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@ properties prefixed with "`zeiss.`". The available properties are those
from the `AttachmentInfos`, `DisplaySetting`, `Information`, and `Scaling`
elements of `ImageDocument.Metadata`.

`openslide.barcode`
: the value of the property matching
`zeiss.AttachmentInfos.*.Label.Barcodes.*.Content` that occurs earliest
in the XML metadata

`openslide.mpp-x`
: calculated as 1000000 times `zeiss.Scaling.Items.X.Value`

Expand Down
1 change: 1 addition & 0 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ terms of the [GNU Lesser General Public License, version 2.1][license].
The library can read virtual slides in the following formats:

* [Aperio (.svs, .tif)][format-aperio]
* [ARGOS (.avs)][format-argos]
* [DICOM (.dcm)][format-dicom]
* [Hamamatsu (.vms, .vmu, .ndpi)][format-hamamatsu]
* [Huron (.tif)][format-huron]
Expand Down