Caret7:Development/DataTypes

From Van Essen Lab

Jump to: navigation, search

Contents

Caret7 DataTypes

In order of rough priority. I did not include datatypes that I don't understand. Also, I don't consider scenes to be a datatype, rather they are a functionality.

Surface

  • Display/analyze surface data
  • Hemispheres: Left, right, or midline (JH: What is midline? MG: Something like the brain stem, or if we merged the left and right surfaces for a single surface continuous through the corpus callosum to allow callosal pathways through)
  • GIFTI surface format
  • Types: White, midthickness, pial, other, inflated, very inflated, sphere, flat
  • Topology: Closed, Open(cut? what is the difference, JH: Cut is Open with incisions for flattening. MG: Do we need both?)

Anatomy Volume

  • Display/analyze volume data
  • NIFTI format
  • Can provide binary additional NIFTI volume as a mask (i.e. display only voxels within mask)

Scalar/Metric

  • Voxel and vertexwise continuous scalar values.
  • Can be surface (GIFTI), volume (NIFTI), or combined (CIFTI-Dense Timeseries format).
  • Represented internally as CIFTI with original header stored in an array for saving as original file type.
  • For volumes, use implicit or explicit masking (i.e. only store data not equal to zero, or user provides a binary mask file).
  • Ability to save as CIFTI dense timeseries or export to NIFTI volume or GIFTI scalar.
  • Do not composite columns unless requested to do so by user.
  • The user will choose Scalar/Metrics on a per window basis (allow at least 10, JH: 10 overlays or windows? MG: 10 overlays)
  • Display settings on a per column basis (JH: Palette coloring? MG: I mean everything in metric settings)
  • Ability to animate through columns/step through them one at a time (i.e. current dense timeseries functionality)
  • Ability to click on a voxel or vertex and display timeseries graph
  • Ability to display average and eigen timeseries graph for arbitrary ROI
  • Ability to export timecourse for point or arbitrary ROI
  • For design: It may be the case that we want to have multiple values per vertex, for example if we are sampling different cortical layers. Not currently needed, but consider the possibility in design.

Dense Connectivity

  • Voxel and vertexwise connectivity values
  • Too big to load into RAM (load on demand)
  • At least 8 connectivity entries
  • Point and click interaction on surface, volume, volume-surface-outline
  • Ability to freeze point and click and explore the values in the node
  • Ability to export connectivity map to Scalar/Metric
  • Ability to average connectivity across subjects or a arbitrary ROI
  • Consider Dense Timeseries for very high temporal density signals (e.g. lowTR BOLD, MEG/EEG) with very large files, otherwise dense timeseries functionality subsumed into metric/scalar
  • Trajectory: #samples for each modeled fiber + distance from starting point
  • Can be square or rectangular, dimensions can represent different space (e.g. grey ordinates X white ordinates)

Label/Parcellation

  • Voxel and vertexwise labeled integer values
  • Each integer is associated with:
    • Name
    • Color
    • Metadata?
  • Can be surface (GIFTI), volume (NIFTI), or combined (CIFTI-Parcellation*).
  • Represented internally as CIFTI with original header stored in an array for saving as original file type.
  • For volumes, use implicit or explicit masking (i.e. only store data not equal to zero, or user provides a binary mask file).
  • Ability to save as CIFTI parcellation* or export to NIFTI volume or GIFTI label.
  • The user will choose Labels on a per window basis (allow at least 10, JH: 10 windows or overlays? MG: 10 Overlays)
  • Ability to turn on and off different parcels, edit their names, colors, metadata
  • Ability to override medial wall
  • Ability to create labels/parcels in surfaces and volumes using ROI tools
  • Ability to convert single label/parcel to binary (1 is in, 0 is out) scalar file (JH: Surface Region of Interest File? MG: No, just a scalar/metric file, no need for a special filetype)

*A CIFTI-parcellation is simply the header of a parcellated connectome or timeseries file with no data matrices. It stores the vertices and voxels that define each parcel, their names, their colors, and any relevant metadata.

Border/Contour

  • Associated with surface vertices
  • Represent deterministic/user drawn borders
  • Drawable by user
  • Creatable from labels or thresholded metrics
  • Ability to assign label/metric inside
  • Has:
    • Name
    • Color
    • Metadata?

Foci

  • Represent vertices or 3D volume points of interest
  • Associated with surface vertex, 3D coordinate, 2D geodesic coordinates or all
  • Has:
    • Name
    • Color
    • Metadata?
  • Ability to assign focus by point and click
  • Ability to assign focus by node number
  • Ability to assign focus by 3D coordinate

Parcellated Connectivity

  • Contains a CIFTI-parcellation as the main header component (the graph theoretic "nodes")
  • Contains a connectivity value for each parcel to every other parcel (a graph theoretic "edge")
  • Can also contain other nodewise, edgewise, or networkwise graph theoretic data
  • At least 8 connectivity entries (JH: What is a connectivity entry? MG: Connectivity Selector)
  • Point and click interaction on surface, volume, volume-surface-outline
  • Ability to freeze point and click and explore the values in the node
  • Ability to export connectivity map to Scalar/Metric
  • Ability to average connectivity across subjects or a arbitrary ROI
  • Can be square or rectangular, dimensions can represent different space (e.g. "A" list of parcels X "B" list of parcels)

Vector

  • Represent directional information
  • Directed or undirected
  • Voxel and vertexwise vectors
  • Uses:
    • Surface Normals (1 per vertex)
    • Modeled Fiber orientations 3+ per diffusion space voxel (not necessarily the same as anatomy volume)
      • Display on volume slices (2D viewer) as needles
      • Display on surface slices (3D viewer) as needles
      • Color by orientation
      • Color by number
      • fODFs?
    • Gradient Vector (vertices and voxels) for design purposes, currently not used
    • Registration Vector (vertices and voxels) for design purposes, currently not used (represent connectivity-based registration deformation fields?)

Transformations

  • Affine matrix (world format or FLIRT format?) (JH: This matrix is 4x4? Bottom row 0, 0, 0, 1? MG: Yes but there are different conventions, we should decide which will be most convenient overall. TC: world format, it is directly compatible with nifti coordinates and surface files, FLIRT is not, it is an ancient format from before people used volume origins)
  • Generic FSL nonlinear warpfield NIFTI volume (eventually...)
  • Deformation map
  • Deformed spherical surface

Parcellated Timeseries

  • Parcels by time (lets hold off on this till we are sure it is needed and cannot be incorporated into another format)
Personal tools
Sums Database