Soma IO¶
A reimplementation of the former AIMS IO system, more generic, with a data-structure-independent API.
Soma-IO relies on Carto base: C++ general usage library.
Soma-IO has specializations, or implementations for specific data structures, like volumes etc, in Carto Data, and may have in other libraries in the future. Such specializations are generally available through plugins.
See also the C++ docs for the IO system
IO system URLs¶
Options may be passed to the IO system through URL-like extensions to file names. The general syntax is similar to HTML requests:
filename?option=x&other_option=y
All software using the Soma-IO system support such syntax. For instance you may run Anatomist to read a part of an image:
anatomist my_mri.nii?ox=70&sx=100&oy=70&sy=150&oz=30&sz=100
The support for such options may depend on specific formats IO implementations. Some are generic to a data type (3D/4D volumes for instance), but may or may not be supported in a specific format.
Volume options¶
Option | Type | Explanation |
ox, oy, oz, ot | int |
Partial reading / writing origin in the volume on disk: correspond to the number of voxels to skip in x, y, z, t directions. x, y, z orientation is the coordinates system used in Soma-IO, currently fixed to the AIMS one (x: right->left, y: anterior->posterior, z: top->bottom). t is the time (4th) dimension. Note that for writing, partial IO must be enabled through the "partial_writing" option. |
sx, sy, sz, st | int | Partial reading / writing size of the volume to read, in voxels, in the same orientation as ox, oy, oz, ot. |
partial_reading | bool (int) | Enable partial reading. Enabled by default |
partial_writing | bool (int) | Enable partial writing in an existing, already allocated file. |
resolution_level | int | For formats allowing multi-resolution images, such as OpenSlide, this parameter specifies the resolution level to be read. |