A reimplementation of the former AIMS IO system, more generic, with a data-structure-independent API.

Soma-IO relies on :cartobdox:`Carto base <index.html>`: C++ general usage library.

Soma-IO has specializations, or implementations for specific data structures, like volumes etc, in :cartoddox:`Carto Data <index.html>`, and may have in other libraries in the future. Such specializations are generally available through :somaiodox:`plugins <classcarto_1_1Plugin.html>`.

Soma-IO has specializations, or implementations for specific data structures, like volumes etc, in 

, and may have in other libraries in the future. Such specializations are generally available through 

See also the :somaiodox:`C++ docs for the IO system <soma_io.html>`

Options may be passed to the IO system through URL-like extensions to file names. The general syntax is similar to HTML requests:

All software using the Soma-IO system support such syntax. For instance you may run Anatomist to read a part of an image:

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.

<table cellpadding="2" cellspacing="0" class="docutils">
<thead>
    <td>Option</td>
    <td>Type</td>
    <td>Explanation</td>
</thead>
<tr class="row-even">
    <td>ox, oy, oz, ot</td>
    <td>int</td>
    <td>
        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-&gt;left, y: anterior-&gt;posterior, z: top-&gt;bottom). t is the time (4th) dimension.<br/>
        <b>Note</b> that for writing, partial IO must be enabled through the "partial_writing" option.
    </td>
</tr>
<tr class="row-odd">
    <td>sx, sy, sz, st</td>
    <td>
        Partial reading / writing size of the volume to read, in voxels, in the same orientation as ox, oy, oz, ot.
    </td>
</tr>
    <td>partial_reading</td>
    <td>bool (int)</td>
    <td>Enable partial reading. Enabled by default
    </td>
</tr>
    <td>partial_writing</td>
    <td>Enable partial writing in an existing, already allocated file.
    </td>
</tr>
    <td>resolution_level</td>
    <td>
        For formats allowing multi-resolution images, such as OpenSlide, this parameter specifies the resolution level to be read.
    </td>
</tr>
    <td>force_volume</td>
    <td>
        <b>New</b> in Soma-IO 5.1<br/>
        When reading a volums split into multiple files (typically using 2D formats such as Jpeg, Tiff or other 2D image formats), the first slice </tt>.minf</tt> file should specify the list of filenames constituting the volume. If such a <tt>filenames</tt> field is not present, then we assume the file is an independent 2D image. However we can force to recover the 3D or 4D pattern and load the full volume using this flag. <b>Note</b> that it only works for Soma-IO formats, not for AIMS IO.
    </td>
</tr>
</table>

AimsGraphMesh: Performs graph storage conversion and sub-buckets meshing

AimsManualRegistration: manual registration between 2 volumes from 3 specific landmarks

AimsRoiFeatures: Compute scalar features (mean, volume …) from regions of interest

AimsZCat: concatenates volumes (along Z axis), meshes or buckets

When transformations information is present in the object header (such as NIFTI volume)

PyAnatomist / PyAims tutorial : mixing Anatomist and AIMS in Python language

Sequence Types — str, unicode, list, tuple, bytearray, buffer, xrange

Why must ‘self’ be used explicitly in method definitions and calls?

aepack — Conversion between Python variables and AppleEvent data containers

argparse — Parser for command-line options, arguments and sub-commands

functools — Higher-order functions and operations on callable objects

sysconfig — Provide access to Python’s configuration information