Home > SCIRun/BioPSE 1.20 Release Notes

SCIRun/BioPSE 1.20
Release Notes

(1.20.3 update 3/10/04)

New Projects
Documentation
Data Sets
Packages
New Modules
Module Enhancements
Infrastructure Enhancements
New Nets
Network Editor Enhancements

New Projects in Version 1.20

  • Support for the NLM Insight Segmentation and Registration Toolkit (www.itk.org)! Many Insight Filters are wrapped with SCIRun modules. SCIRun infrastructure updated to easily allow wrapping of new filters. See Chapter 8 of the Users Guide on how to use ITK Filters. For source distributions, Insight must be installed separately. See the installation guide on how to install Insight. The RPM distribution includes Insight.
  • New stand alone SCIRun Power Apps! These applications hide the complexities of the powerful SCIRun dataflow interface, allowing the user to focus on a specific task. Currently there are two Power Apps. BioTensor and BioFEM.
    • BioTensor is used for doing Diffusion Tensor Imaging. This application takes the user from data acquisition, through registration and building diffusion tensors. In addition, several visualization techniques such as Planes, Isosurfaces, Glyphs and Fibers are provided to allow the user to investigate the data.
    • BioFEM is an encapsulation of the forward-fem network that is included in the BioPSE package and described in the BioPSE Tutorial. With BioFEM, the user can run finite element bioelectric field simulations based on volume conductor models and dipolar sources, and can interactively visualize the simulation results with electric field streamlines and isopotential surfaces.
  • Upgraded the Network Editor to be much more user friendly. See "Network Editor" below (and Chapter 5 of the Users Guide).
  • Full support of OSX (See installation guide).

Documentation

  • [1.20.2] PowerApp Tutorial: improved images
  • [1.20.2] SCIRun Tutorial: updated

Data Sets

  • [1.20.2] Updated command line arguments for converter examples in README file
  • New "insight" directory with sample data for Insight nets.
  • New "brain-dt" directory with sample data for the BioTensor Power App.

Packages

  • [1.20.2] Insight: more efficient Insight filter generation
  • [1.20.2] Insight: added many Insight filters
  • [1.20.2] BioPSE: add explicit control for whether ModifyConductivities should load new conductivities or reviously-saved UI conductivities

New Modules

(SCIRun Modules:)

  • ChooseColorMap (Visualization)
  • ChooseField (FieldsOther)
  • ChooseMatrix (Math) -- The "Choose" modules are used to select one of many input ports to pass to the single output port.
  • FieldCage (FieldsOther) -- Render an rgb 'cage' around the incoming field to indicate field bounding box
  • IsoClip (FieldsCreate) -- Clip a scalar field to a specified isovalue.
  • LinearAlgebra (Math) - Operations on input matrices to prodcue new output matrices.
  • ManageFieldMesh (FieldsGeometry) - Extract and change the positions of the nodes in a mesh.
  • MoveElemToNode (FieldsData) - Make a new field with data at nodes instead of elements.
  • MoveNodeToElem (FieldsData) - Make a new field with data at elements instead of nodes.
  • SampleStructHex (FieldsCreate) -- Make a StructHexVolField that fits the source field.
  • TransformData (FieldsData) -- Perform a specified functional transform on all of the data in a field.
  • TransformData2 (FieldsData) -- Perform a specified functional transform to each pair of data elements in the two input fields.
  • TransformData3 (FieldsData) -- Perform a specified functional transform to each triple of data elements in the three input fields.

(Teem Modules:)

  • ChooseNrrd (Teem - NrrdData) -- The "Choose" modules are used to select one of many input ports to pass to the single output port.
  • EditTupleAxis (Teem - NrrdData) -- Allows user to re-organize the entries on the 'tuple' axis, in order to group scalars into Vectors/Tensors or vice-versa.
  • TendFiber (Teem - Tend) -- Fiber tractography (streamlines through Tensor fields).
  • TendAnscale: Scale the anisotropic component of the tensors. This maintains the isotropic component of the tensor, and fixes either the trace or determinant, while scaling up (or down) the "deviatoric" component of the tensor. Good for exaggerating the shape of nearly isotropic tensors.
  • TendBmat: Calculate B-matrix given gradient directions, assuming no diffusion weighting from the other imaging gradients. The input is a 3-by-N array of floats or doubles, each row being one of the gradient directions used for diffusion-weighted imaging. A plain text file with one gradient per line, no punctuation, is an easy way to specify this information. The gradient vector coefficients are used as is, without normalization (since different gradient strengths are sometimes desired). The output has one row of the B-matrix per line, with coefficient ordering Bxx, Bxy, Bxz, Byy, Byz, Bzz, and with the off-diagonal elements NOT pre-multiplied by 2.
  • TendEpireg: Register diffusion-weighted echo-planar images. This registration corrects the shear, scale, and translate along the phase encoding direction (assumed to be the Y (second) axis of the image) caused by eddy currents from the diffusion-encoding gradients with echo-planar imaging. The method is based on calculating moments of segmented images, where the segmentation is a simple procedure based on blurring (optional), thresholding and connected component analysis. The registered DWIs are resampled with the chosen kernel, with the separate DWIs stacked along axis 0.
  • TendEstim: Estimate tensors from a set of DW images. The various DWI volumes must be stacked along axis 0 (as with the output of "tend epireg"). The tensor coefficient weightings associated with each of the DWIs, the B-matrix, is given as a separate array, see "tend bmat" usage info for details. A "confidence" value is computed with the tensor, based on a soft thresholding of the sum of all the DWIs, according to the threshold and softness parameters.
  • TendEvalClamp: Modify shape by clamping eigenvalues in some range. The orientation of the tensor is unchanged. Note that unlike "tend anscale", this operation can completely change the shape of the tensor.
  • TendEvalPow: Modify shape by raising eigenvalues to some power. The orientation of the tensor is unchanged.
  • TendEval: Calculate one or more eigenvalues in a DT volume.
  • TendEvecRGB: Make an RGB volume from an eigenvector and an anisotropy.
  • TendEvec: Calculate one or more eigenvectors in a DT volume.
  • TendExpand: Converts a 7-value DT volume to a 9-value DT volume. The 7-value tensor is confidence value followed by the unique tensor components (Dxx, Dxy, Dxz, Dyy, Dyz, Dzz). The 9-value tensor is the full matrix (Dxx, Dxy, Dxz, Dxy, Dyy, Dyz, Dxz, Dyz, Dzz), which is set to all zeros when the confidence is below the given threshold.
  • TendMake: Create DT volume from confidence and eigensystem. The input is in the form of three nrrds, one for confidence values (3D), one for eigenvalues (4D, three evals per voxel), and one for eigenvectors (4D, nine evec components per voxel).
  • TendNorm: Normalize tensor size. This operates on the eigenvalues of the tensor, and allows normalizing some user-defined weighting ("-w") of the eigenvalues by some user-defined amount ("-a").
  • TendPoint: Describe everything about one sample in a DT volume.
  • TendSatin: Generate a pretty synthetic DT volume. The surface of a sphere or tous is covered with either linear or planar anisotropic tensors, or somewhere in between.
  • TendShrink: Converts a 9-value DT volume to a 7-value DT volume. The confidence value is set to 1.0 everwhere. You can "unu splice" or nrrdSplice() something else in its place later.
  • UnuAxmerge: Merge two adjacent axes into one. A more general version of "unu axdelete". The underlying linear ordering of the samples is unchanged, and the information about the other axes is shifted downwards as needed.
  • UnuAxsplit: Split one axis into two axes. More general version of "unu axinsert", since a given axis can be split into fast and slow axes of arbitrary size, as long as the product of the fast and slow sizes is the same as the original size.
  • UnuCmedian: Cheap histogram-based median/mode filtering. Only works on 1, 2, or 3 dimensions. The window over which filtering is done is always square, and only a simplistic weighting scheme is available. The method is cheap because it does the median or mode based on a histogram, which enforces a quantization to the number of bins in the histogram, which probably means a loss of precision for anything except 8-bit data. Also, 8-bit integer values can be recovered exactly only when the number of bins is exactly min-max+1 (as reported by "Unuminmax").
  • UnudHisto: Create (PGM) image of 1-D value histogram
  • UnuFlip: Reverse order of slices along one axis. Special case of "Unushuffle".
  • UnuHisto: Create 1-D histogram of values in a nrrd
  • UnuPad: Pad along each axis to make a bigger nrrd
  • UnuProject: Collapse scanlines to scalars along some axis. The scanline is reduced to a single scalar by "measuring" all the values in the scanline with some measure. The output nrrd has dimension one less than input; the output type depends on the measure in a non-trivial way, or it can be set explicitly with the "-t" option.
  • UnuSlice: Slice at a position along an axis. Output nrrd dimension is one less than input nrrd dimension. Per-axis information is preserved.

(BioPSE Modules:)

  • SetupBEMatrix (Forward) -- now supports an arbitrary number of surfaces for BEM computations

Module Enhancements

(SCIRun Modules:)

  • [1.20.2] Isosurface: fixed memory leak
  • [1.20.2] ShowColorMap: improved layout; multiple colormaps can now be displayed simultaneously
  • [1.20.2] SynchronizeGeometry: improved robustness
  • [1.20.2] Viewer: use PWD for default location of saved images
  • [1.20.1] Added a Clear button to the Module Log. This clears the text as well as the indicator on the module.
  • FieldToCanonicalTransform (Math)
  • GenTransferFunc (Visualization) -- HSV colormap construction/editing now supported
  • HexToTet (FieldsGeometry)
    • Supports LatVolMesh and StructHexVol fields
  • Isosurface (Visualization)
    • Added optional input matrix of isovalues
    • Allow List of Isovals to use percentages
  • LinAlgBinary
    • Supports SparseRowMatrix addition
  • MaskLattice (FieldsData)
    • Use dynamically compiled C++ code for clip function and copy data
  • MatrixSelectVector (Math) -- modules can now be serially cascaded again (used manually indicates whether there are downstream inter-dependencies)
  • QuadToTri (FieldsGeometry)
    • Supports ImageMesh and StructQuadSurfMesh fields
  • ShowColorMap (Visualization) -- added support for ColorMap legend units (via text entry) and scale-factor
  • ShowField (Visualization)
    • Added ability to draw scalar data (cell centers)
    • Added field name to geometry descriptions
    • Added more vector rendering options, needles
    • Added support for transparent points and lines
    • Added Vector RGB support
    • Fast colormap switching for ShowField, uses 1D textures now
    • Use Vertex Arrays for output
    • Added Teem style diffusion tensor visualization (boxes, ellipsoids, and superquadric glyphs)
  • Viewer (Render)
    • Reenable GeomDL
    • Save clipping planes state
    • Use consistent Filebox for saving images
    • Use consistent Filebox for saving movies

(BioPSE Modules:)

  • Finite element modules -- now support native Tensor fields for conductivity specification, instead of requiring a conductivity table property and index-based access
  • ForwardMagneticField - calculates the magnetic field due to given dipoles at specified detector positions based on the Biot-Savart law.

(Teem Modules:)

  • [1.20.1] AnalyzeToNrrd(DataIO) -- Now saves all files that have been loaded instead of just the last one.
  • Reorganized the Teem package to more closely mirror Teem's Unu and Tend interfaces.
  • NrrdToField (DataIO) -- GUI option added to allow user to specify computation of eigen-decomposition of Tensors, which can be passed into SCIRun for use with box and superquadric glyph visualization.

PowerApp Enhancements

  • [1.20.2] All: added support for specifying a PowerApp session on the command line
  • [1.20.2] BioTensor: added ability to change widget values before widget is turned on (e.g. you can now change the isovalue ~before~ turning on the isosurface)
  • [1.20.1] Reorganized PowerApp File Menu to include Load Session, Save Session, Save Session As, Save Image, and Quit. The Save Image option will save the image in the Viewer Window. Sessions are now saved with a .ses extention.
  • [1.20.1] Fixed loading and saving session for BioTensor.
  • [1.20.1] Fixed seeding glyphs on a grid for BioTensor.
  • [1.20.1] Fixed BioTensor when loading a B-Matrix file.

Infrastructure Enhancements

  • [1.20.3] Fixed RH9 dual-processor problem.
  • [1.20.2] Added fix for ATI driver bug; uncomment line 118 of Core/Geom/GeomOpenGL.cc to use (then recompile)
  • [1.20.2] OSX fix to allow SCIRun and converters to be run from anywhere
  • [1.20.2] Fixed EOL problem with dynamically compiled functions
  • [1.20.2] Added -bind_at_load link-line option for OSX to address hang-at-startup bug introduced in 10.3.2
  • SCIRun Fields Modules Categorized - The Fields modules were distributed into several subcategories (FieldsData, FieldsCreate, FieldsGeometry, and FieldsOther) to make finding specific modules easier. Note, current users should review this distribution to find the location of their favorite modules.
  • ArrowWidget -- Can now be scaled. (Used in BioPSE::Visualization::ShowDipoles)
  • Numerous example networks were created. See ./src/nets/Modules/NOTES for details.
  • Splash screen introduced, can be disabled with --nosplash option.
  • Display License Agreement. Create a generic $HOME/.scirunrc if one does not exist.
  • Add virtual destructor to Matrix: Fixes big memory leak.
  • Fix crash bugs in:
    • StructHexVolMesh::transform
    • when np_ invalid in StreamLines
    • associated with deleting widgets
    • linux when viewer window closed
  • Dealt with boundary conditions in Field get_weights
  • Fixed boundary condition error in LatVolMesh::get_cells
  • Fixed locate functions for ImageMesh and LatVolMesh
  • Fixed QuadSurfMesh::get_neighbor (wrong neighbor was possible)
  • New get_weights for non-lattice fields
  • Added get_canonical_transform to Mesh Concept
  • Most of the documentation is available in PDF form

New Nets

  • forward-fem-multidipole (BioPSE Package) -- like forward-fem.net but with multiple dipole sources so users can investigate effects of changing magnitudes
  • BioFEM-ch{1,2,3a,3b,3c,4,5,6,7}.net (BioPSE Package) -- nets that correspond to each chapter/section of the BioPSE Tutorial

Network Editor Enhancements

  • [1.20.2] Reset port color when tracing connection
  • [1.20.2] Remove annotations when module is destroyed
  • Modules (and groups of modules) are now selectable. Use the left mouse button. Control left click will add/remove modules from the selection group.
  • All modules selected can be moved around together.
  • Menus in the Network Editor Main Window
  • Right click on Modules and Connections to bring up option menus.
  • Modules and Pipes can now be disabled. When disabled, modules do not execute and pipes do not transfer data.
  • Pipes and Pipe Networks can be highlighted.
  • Left click a Pipe or Port to highlight it.
  • Control left click a Pipe or Port to highlight
  • Displaying Connection and Module Annotations
  • This feature allows the user to attach notes to each connection and module on the canvas to remind the user of the purpose of that connection.
  • Undo
  • Connection creations and deletions can be undone/redone. Use Control-z (undo) and Control-y (redo) to cycle through changes. (In other words, if you accidentally delete a connection, you can get it back!
  • Tool tips added to many widgets.

Please send feedback/improvements specific to the rpm to scirun-users@sci.utah.edu.