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
note we need to better understand how to solve the fluid warp.
Lessons Learned
(filled out after the post-project review)