Introduction and Acknowledgements
Author: Andras Lasso (PerkLab, Queen's University), Matthew Holden (PerkLab, Queen's University), Kevin Wang (Princess Margaret Cancer Centre), Gabor Fichtinger (PerkLab, Queen's University)
Contact: Andras Lasso, <email>firstname.lastname@example.org</email>
Project website: http://www.slicerrt.org
License: Slicer license
Multidimensional data is an extension of 3D Slicer to allow creating and visualization of higher-dimension data nodes, such as 4D volumes, models changing in time, markups changing in time, sequences of transforms, scene camera trajectory, or even sequence of sequences.
4D Cardiac CT (download scene)
Tracked ultrasound with tool tracking (download scene)
Model deformation (download scene)
- Sample scenes:
- Load the downloaded .mrb scene file into Slicer
- Go to the Sequence browser module to browse the data set
Information for Developers
- Sequence: Contains an ordered array of data nodes, each data node is tagged with an index value.
- Data node: A regular MRML node, one item in the sequence. Data nodes are stored privately inside the sequence, therefore not visible in the main scene (where the sequence node is in). Singleton nodes are not allowed to be stored as data nodes. Sequence nodes can be data nodes, therefore sequence of sequence nodes can be used to represent higher-dimensional data sets.
- Sequence index: The index describes the dimension of the data node sequence. The index name (such as "time"), unit (such as "s"), and type (such as "numeric" or "text") is the same for the whole sequence. The index value is specified for each data node. The index type information is used for sorting (numerical or string sorting) and matching of the index values (in case of a numerical index we can find the closest data node even if there is no perfectly matching index value).
- Sequence browsing: A sequence node only contains the data nodes, but does not store any node relationships, such as parent transform, display properties, etc. These relationships can be only defined for the virtual output nodes that are generated by the Sequence browser module. Several browser nodes can be created to visualize data from the same sequence, which allows visualization, comparison of multiple different time points from the same sequence.
- Virtual output node: The sequence browser node creates a copy of the selected privately stored data node in the main scene. This copy is the virtual output node.
- Source code: https://subversion.assembla.com/svn/slicerrt/trunk/MultidimData/
- Issue tracker: open issues and enhancement requests
- Changing all nodes in a sequence. If you have a sequence node ‘Sequence’ containing volumes then you can set the spacing in all data nodes by copy-pasting these two lines into the console:
seq=slicer.util.getNode('Sequence') for nodeIndex in xrange(seq.GetNumberOfDataNodes()): seq.GetNthDataNode(nodeIndex).SetSpacing(1.5,1.5,2.0)