Skip to content.
CCB > CCBSIGS > ShapeToolLibraryProgram > ShapeToolProgramProductStatusSummary > DualSurfaceWarpProjectDefinitionV1x0

Dual Surface Warp Protocol Project Definition ( v1x01 )

Public Project Description

Overview

This project will provide portable software tools that enable a remote researcher to use a fluid warp to register triangulated brain surfaces. These warps will be guided by lines that lay on the (triangulated) brain surface.

Project Plan

This project requires coordination of many tasks and activites. We maintain an approximate, and changing, project plan.

Warp Protocol diagram

SurfaceWarpProtocol[Fluid Warp Protocol Diagram]]

Replacement Analysis Programs

  • MapContour - flattens contours
  • FlattenSurface - maps an OBJ to a (uif) flatmap.
  • FlatMapAverager - averages flattened contours
  • ComputeSurfaceWarp - warps a flatmap according to contours.
  • ApplyFlatMapWarp - uses a pre-computed warp field to warp a flattened surface
  • InflateContour - maps a flattened contour into a three dimensional contour.
  • InflateSurface - maps a flattened surface into a three dimensional surface.
  • getDual - gets the dual flatmap from a flatmap
  • getDualContour - gets a contour, in the dual flatmap space.
  • TrimFlatmap? - trims the edges of a flat map.

Products

This project will result in the following products:

  • Applications
    • An ImageJ plugin (UifImageJ) that enables ImageJ to read Loni RGB and FPIC UIF files.
    • A topology aware averager.
  • support classes
    • a class to read LONI Uif files (RGB and FPIC) into a Shape, or a BufferedImage
  • Documentation
    • Various TWiki web pages including

Data Samples

the existing fluid warp protocol generates about 110 MB of data files. Samples of these may be obtained at this web site: http://149.142.110.207:8180/warp/samples

Notes

Analysis Protocol

Step Description Program Input Output Note
1. Brain Scan        
2. Fit template (LHS) cortex to scan, output is an OBJ surface.        
3. Manual deliniation of lines (sulci) , saved as OBJ lines.        
4. Surface "flattened" into "diamond" ucf files.        
5. Lines flattened into ucf files.        
6. Perform Fluid warp using lines and surfaces.        
7. Average lines to form population averages.        
8. Inflate warped surfaces and lines back into 3d.        

Applications Summary

A table summarizing the applications

Applications - Rough Notes

ColorMap Translator

Translate the encoded coordinates in a color map UIF (or, wherever they are stored) into an understandable vector field

Flatten Cortical Surface

Maps the vertices of the cortical surface to a set of Ucf files.
  • will need to optionally mimic the rounding of OBJ co-ordinates onto current "flat" ucf files.
  • find how current code stores the 3d coordinates of the flattened vertices
    • uif "colormap" images may be an approximation
    • precise map may be elsewhere
  • ability to translate between a vector field of point mappings

The RHS sample script 07_Local_dual_med_flat_catchR.csh contains the commands currently used to flatten a hemisphere.

The LHS sample script 07_Local_dual_med_flat_catchL.csh contains the commands currently used to flatten a hemisphere.

Notes on the flattening process are Here.

Notes on Averaging process

we found that the "lines fall off" fall off in the process of mapping the (sulcal) lines, drawn in the obj 3d space, onto the flat map. we speculate that the discarded lines are thrown away when a mapped vertex or face crosses more then one octant.

(note: octant,here, is misnomer, as each hemisphere is split into 8 portions, not the entire brain as we'd previously speculated).

The mapped lines are flat, that is, all have the same z coordinate.

the average, accomplished by the script

/data/ad/mass3/users/PAULS_SURFACE_CODE/SGI/surfNstat3D

is probably a simple average of the coordinates, from which the "fallen" lines have previously been excluded.

called from script /cxfs/schizo/family_study/scripts/medial_analysis/09a_script_flat_av_medial_LandR.csh

Inflate Cortical Surface

Using the flattening map created by the Flatten Cortical Surface program, apply the inverse transform to map the warped, flattened surfaces and lines to a 3 dimensional triangulated surface.

Flatten cortical lines

Maps the cortical lines to the the flattened surface

    • Will fix the "lines fall Off" problem
    • will need to find triangle whose face contains the line, find the affine trf. taking the three vertices of this triangle onto the flat space, then apply this map to the endpoints of the line. Will need to handle distortions caused by representting triangle (obj) as quads(diamond ucf).

Inflate cortical lines

invert the cortical line flattening

Contour averager

A tool that averages contour lines, taking into account the topological connectivity of the surface containing the lines.
  • need tool to get neighbors of a vertex, that 'wraps" over the patches compromising the diamond surface' trianguls,

Fluid Warping tool

given a set of "flattened" ucf files, and a set of sulcal lines (also stored as Ucf files) applies a fluid warp to

Data File Format notes

Extension Type Description Created By Notes
UIF Loni Uif files flattened OBJ files - most are "RGB" format, WARP subdir Fxfpic,Fypic, Ufpic, Vfpic are FPIC

note we need to better understand how to solve the fluid warp.

Lessons Learned

(filled out after the post-project review)
  • lesson 1
  • lesson 2