Search This Blog

Tuesday, November 14, 2017

Implemented the ABT subtest for:
a) Model #15:  "Basic DCDI"
b) Model #45: "2CXM LLS"

Monday, November 13, 2017

DCDI Model #15 is implemented to fit the requirements of the Dynamic Framework

Would greatly benefit from Arterial and PV delay paramets




Removed experimental Dynamic Models from the model menu.
Implemented flexible mechamism, so the models could be easily inserted\removed into
this list.


Sunday, November 12, 2017

a) Implemented the new 2CXM\LLS model.
b)  Added a hypermater to optionally exclude the non-physiological voxels.
c)  Defect fixed: Enable FireVoxel document\file when there is an active model without hyperparameters.
2CXM model:  two variants were implemented -  NLLS and LLS

With LLS variant a double integration is performed and the corresponding 4x4 linear system is solved using SVD.  Resulting solution is converted to physiological parameters {vp,ve,PS,Fp} and substituted to an analytical solution containing a convolution of two different exponents with the AIF.

Sample ROI for the test

Tests were performed on the GRASP-4D with 76 timepoints [0,411] sec.

Small ROI (yellow was chosen)






First we performed the fitting with "ROI as a single TAC".












A good fit was observed RMSE=25.  But corresponding parameters contain the negative value, which is not physiological.

Next we performed voxel-by-voxel fitting.  This model   #45 2CXM-LLS  has a single hyperparameter "Exclude invalid", which optionally excludes the unphysiological voxels from the map (defaullt=0  - Include all).
LLS: Residual distribution [0,100] (include all mode)

 If we turn  "Exclude Invalid =1",  this would exclude the voxels from the result where one of the key fittted parameters   are negarive:  this includes transit times {T,Te,Tp}  and {vp,ve,PS}

Fitting with  unphysiological (invalid) voxels removed.

When such invalid voxels are removed, we can see that a minor portion of the ROI resulted in non-negative parameter values.




NLLS variant:  gridded Simplex algorithm was used.












Below is the fitting residual comparison for LLS and NLLS.

LLS:  fit residual distribution [0,100]


NLLS: fit residual distribution [0,100]



Timing:  for the whole slice ROI  (24,000 voxels):
Processing times  are   LLS:  0.5 sec
                                     NLLS:  55 sec










Saturday, November 4, 2017

Sokoloff (short) model:  added a hyperparameter to specify precision of the Arterial Delay calculation
FireVoxel 255D is released.
Fixed dynamic range defect while loading the NIFTI-4D (float32) files.
Updated Dynamic Model "Sokoloff short formula" so that user can set both {Min,Max} arterial
delay times.

Friday, November 3, 2017

FireVoxel 255B is released.
1.  Restored and verified all  ABT\Registration subtests
2. Expanded the parameter fields in AutoFocus3D dialog box (Scale values etc)
3.  Fixed defect  with NIFTI-4D (float32) loading

Monday, October 30, 2017

Implemented an efficient convolution ( integral   f(x)*e(-K*(X-x)))  based on the iterative formula.
This applies to non-uniformly sample data.

Resulted in x10  speed improvement in the following models:

1.  Totfs 8
2. Tofts Modified #9
3.  Sokoloff short formula  #33
4.  Sokoloff long formula #34
FireVoxel Build 255 is released.

Saturday, October 28, 2017

DICOM file save:  Window Center and Width are now save to DICOM from current FireVoxel settings.

Friday, October 27, 2017

Thursday, October 26, 2017

Improved the handling of the VTF file save when the target folder is invalid or does not exist.
Dynamic Model #21:  Fixed the "indefinite hang" defect.
Fixed defects in "Linear Conversion over the ROI" function (renamed from Amplification).

Wednesday, October 25, 2017

FireVoxel Build 254 was released
Implemented ROI morphology functions, under   ROI>Morphology menu

1,  Medial Plane extraction (skeleton) by erosion
2,  Medial plane MAT transform
3.  Average depth (internal thickness) calculation.

Sunday, October 15, 2017

Dynamic model #43 (2CXM with Grid Simplex) : Corrected the naming of the Output parameters
1.  Corrected the SVD calculation in Procrustes problem for 3D landmark matching (2 monkeys\3 landmarks)

2.  Provided an ABT subtest for this case.

Friday, October 6, 2017

Breast  Lesion T1-EPI-PET workflow:

1.  Modified User Interface so the parameter selection dialog is activated on every run.
2.  Removed the corresponding "Set parameter...." menu items, since they are not needed
due to #11.
3.  Corrected the default parameters for PET-T1 registration

Thursday, October 5, 2017

FireVoxel Build 253 is released.
Corrected defect in EdgeWave dialog when the "Connected Component" parameter was incorrectly recorded.
Reengineered the Global Optimization function, that resuled in  x500 speed up for T2\T2* fitting
Reengineered the 2XCM with Grid Simplex for   x8 speed up.  This is achieved by optimizing the principal exponent convolution function and is applicable to many other models.

Tuesday, October 3, 2017

Fixed Dynamic Model 16 (T2/T2* mapping) defect when Real volumes were not processed
in the "Process As Single TAC" mode.




Implemented much faster version of 2CXM based on the convolution of PWL and Exponential function.

Added a corresponding ABT subtest.

Thursday, September 28, 2017

x2 Speed up for the convoluting PWL (piece wise linear) function with the exponential kernel, by reducing the number of required exponent calculations.

Tuesday, September 26, 2017

2CXM model was implemented using the    Simplex Optimization with Gridding
Initial setup contains ROI region (orange) and Arterrial Input Function  (blue).  It is displayed as concentration.

Fitting curves displayed as Concentration


Resulting fitting optimal parameters


Friday, September 15, 2017

BiCal on 4D images: implemented an option and the user interface for  "Static\Dynamic" field option when in "Static field" we perform BiCal only once on the starting timepoint and then apply the resulting field to the rest of the timepoints.

Thursday, September 14, 2017

Whole Lever ROI was segmented on VIBE and.
Then GRASP was registered to   VIBE+ROI.
Note: BiCal non-uniformity correction on GRASP was critical.

GRASP case 01

GRASP case 02

Initial variant of fully automatic liver registration from VIBE abdominal MR.
This uses: BiCal, Edge Constrained Smooth, EdgeWave with Competitive Growth.

VIBE case 01
VIBE case 02

Tuesday, September 12, 2017

Implemented Foerstner landmark Keypoints for Large Deformation registration


Large deformation registration: Foerstner Operator map: fixed the situation when some voxel have numerical overflow.

Wednesday, September 6, 2017

FireVoxel  Build 251A is released.
Layer Control Dialog:  changed the logic so if no Layers are disabled then the Active layer is deleted with the warning.
Layer Control Dialog - fixed arbitrary Active layer change when switching between 2 documents.

Monday, September 4, 2017

Implemented an initial upgrade to EdgeWave:   EdgeWaveCG (with Competitive Growth option)
Below is comparison of current EdgeWave and EdgeWaveGC   with identical parameters  and seed.

conventional EdgeWave:  (0.9/3/5mm/8mm)




EdgeWave CG   (0.9,3,5mm,8mm)

Thursday, August 31, 2017

Removed large legacy code related to a redundant BGR representation of colors parallel to the COLORREF (RGB) definition used by Windows.  This greatly simplifying the ROI display code.
Fixed the L\B-endian issue in the layer name when loading a RAW  MIDAS file.

Wednesday, August 30, 2017

FireVoxel Build 249B is released.
Layer Control dialog box:  fixed the "Invalid Layer Index" defect after removing several layers.
Implemented Foerstner Operator map generation.  This is used for the Automatic Landmark generation in Large Deformation Registration.  MainMenu>Segmentation>Foerstner Operator Map.



Tuesday, August 29, 2017

1.  LayerControl dialog: fixed defect when selection was arbitrarily change after activating ViewFilter function.

2. Fixed defect: when a layer is saved into a RAW file, its name is changed in layer control, but there is a latency in name display/.
Implemented an initial variant of the "Make Landmark to ROI Cone"  under  "Renal fat assessment workflow"


Monday, August 28, 2017

1.  Fixed the defect in the Multi file Layer load, when not able to load a single file.
2.  Corrected defects related to the "L\R-endian" info added to some layer names.  F.e. ABT
subtests on Dynamic framework were failing.

Sunday, August 27, 2017

FireVoxel Build 248 is released.
Polyline segment measurement functionality:
Implemented a function so that the length of the Polyline segments is displayed in real time
while the user is dragging the polyline.  This only works in Orthogonal projections for now.

The corresponding flag is under  MainMenu>Measurement>Display Curve Length


Layer Control Dialog:  Load RAW button:  allows a multiple selection of  several files which would be loaded as several layers in one step.

Saturday, August 26, 2017

Layer Control Dialog:  Change of the behavior:   Remove button now removes the Disabled Layers only.
User needs to uncheck (=ddisable) the layers that have to be removed.

Friday, August 25, 2017

Wednesday, August 9, 2017

When RAW file (MIDAS) is loaded, the endiannes of the RAW data is analyzed and is reflected in the corresponding Layer name (need to open Layer control dialog to view it).


Tuesday, August 8, 2017

Fixed cluster of defects related to the loading of the GE Mammography DICOM:
a) Image Patient Orientation tags are missing in this dataset  - enabled loading anyway.
b) Fixed situation when document load failed but the Document window appeared anyway causing the crash.

Monday, August 7, 2017

FireVoxel Build 247 is released.
Fixed defect:  When loading RAW-4D (Real type) volume (f.e. MIDAS,ANALYZE) individual timepoint files remain internally opened, so the other applications (f.e. System) where not able to use them.
EdgeWave UI-level functionality:  when  Seed is present, but "Absolute SI" mode is specified in the dialog.  Often this situation going unnoticed by the user and result is unexpected as the Seed is ignored.  Added the warning and offer to confirm.
MIDAS-4D (Real type):  Save to ANALYZE and Reload  (flipped Y-order defect) is fixed.
PET-4D Midas file:  fixed the defect when the  {Echo,Inversion} tags appear  in the created DICOM header which are irrelevant to PET modality.

Tuesday, August 1, 2017

Enabled loading of the ANALYZE files saved from AMIDE. It failed previously due to the 6-dimensions (some degenerated) present in ANALYZE header.

Monday, July 24, 2017

FireVoxel Build 246 is released.
IVIM free (non-segmented) model:  implemented an additional user control fMax which specifies the range of values for the optimization.
Changed the design of composite  "Brain EdgeWave\N3" segmentation function.  NU layer is now popped up and the original layer is disabled.
Fixed some defects with loading the 4-timepoint PET MIDAS file.

Monday, July 17, 2017

Doublechecking the ROI Histogram automatic thresholding using the ZIGALGA algorithm:


Thursday, July 13, 2017

FireVoxel 245A is released.
Paintbrush drawing on volumes (both ROI\SI) :  fixed the defect when the Display Cache incorrectly assumed that volume was not changed and was displaying an incorrect content.
Chest wall Automatic Seed generation:  integrated the algorithm based on Anterior\Posterior range computations.

Monday, July 10, 2017

FireVoxel 245 is released.
Fixed the error when VROIs were not displayed on some orthogonal projections.
RoiStats3D:  fixed defect when the ROI layer is active when the Signal layer is present.
Layer Control dialog: Fixed the problem with arbitrarily switching Alpha when activating new layers.
General MapFit  Dialog UI:  Exposed the options to turn the individual experts on\off.
Expanded the Breast Segmentation dialog by exposing options for all present Experts.


Monday, July 3, 2017

1.  Fixed the defect with  "4D Processing>Dynamic averaging"
2. Greatly sped up the "ROI>Extract Atlas ROIs" function (tested on "aparc+aseg.mgz")
3.  When loading the volume from image files {MIDAS, ANALYZE} - default the image orientation to AXIAL.
FireVoxel Build 244 is released.
1. Extended FireVoxel valid dates.
2.  Updated the "Applications>Breast FGT>Sagittal..." menus
3. Fixed the problem with loading the ".mgz" files.
4. Fixed the "jumping cursor" issue inside the Layer Control Dialog
5. Fixed the "Window Center\Level" problem indicated on the Brain image showing too dark
6. Fixed the "Infinite loop" problem, when the VROI tool was activated over the empty area
    of the document not containing the volume (FilmView)
7.  Removed 2 "Rasterize" items from the MainMenu>Trace.  User instead should use the Rasterize
item of the Main toolbar.

Tuesday, June 27, 2017

1.  Enabled the ROI-  3D Stats info for when only ROI is present.
2.  Fixed the license messaging defect.

Thursday, June 22, 2017

1. Simplified the Open RAW menu by combining {3D,4D} items into one










2.  Enabled the loading of zipped NIFTI files {nii.gz}

Wednesday, June 21, 2017

Friday, June 9, 2017

FireVoxel Build 242 is released.
Dynamic Framework Model menu:  added the model #s before the names so it is easy to locate the model.
Fixed the excessive Wait Cursor while painting with the Brush on the FilmView projection of the Volumes.

Thursday, June 8, 2017

New Dynamic model was implemented:
 "Variable Flip Angle T1 recovery  S = M0*(1-exp(-TR/T1))*sina(A)/(1-exp(-TR/T1)/cos(A)) "

It appears as the model #24 on the FireVoxel Dynamic Experiment Framework

Model has 2 hyperparameters defining the Local optimization as in Deoni2003 and FireVoxel global optimization.  In case of the Global optimization we also can set the # of iterations, but it can be kept default.

There are 3 output parameters: T1 (ms), M0 and fitting residual.

To test the model a Brain ROI (mask) was detected on the max signal timepoint using the standard EdgeWave algorithm and parameters.

We ran algorithm with both linear and global optimization and found out that global optimization finds a 20% smaller residual on average, while reducing the Max residual  by x2.5 times.
Residual statistics for Linear optimization:  Mean=12.1, Max=215.8
Residual statistics for the Global Optimazation:   Mean=10.4  Max=97.5

 


The following T1 map was obtained:



 ... with the corresponding Fitting Residual map
 



Typical  fitting for a single voxel looks like this:

For this particular fitting: 
Linear Optimization:   T1 = 1238  ms
Global  Optimization:  T1 = 12.64 ms
i.e. about   ~3% difference

Wednesday, June 7, 2017

Dynamic Experiment Framework:  upgraded internal API so that the modelling function receives the TACs of the central voxels vicinity.  User specifies the Vicinity Radius.  This might be used for more complex modelling.

Thursday, June 1, 2017

1. Integrated Variable Flip Angle as the new dynamic dimension.  This would allow corresponding VFA volumes to be processed inside the parametric modelling framework.

2.  Provided backward compatibility for all existing FVX document files (v1-v5) and v6 format was introduced.

3.  Ensured the ABT test is completing correctly since it is using old file formats.

Tuesday, May 23, 2017

1. Drag-n-Drop is enabled  between compatible documents now.
Just drag the layer and drop it over the target document.
2.  "Attributes" button is now populated to match the old dialog

Monday, May 22, 2017

New Layer Control dialog:  fixed the issues and comments related to the editing of the Layer Name.

Friday, May 19, 2017

FireVoxel 241A is released.
New Layer control dialog:
1.  bitmap next to the Volume (non-ROI) item indicates the ViewFilter Color Map presently associated with the corresponding layer.

2. Active Layer name and its dimensions are now displayed in dialog title.


New Layer Control dialog:  fixed so the ViewFilter changes are reflected immediately both in dialog and the document is refreshed correspondingly.
New Layer Control dialog:  fixed the Check box issue so the scene immediately reflects the state of the checkbox.

Thursday, May 18, 2017

Fixed the new ROI color creation procedure, so unlimited # of ROIs could be created, all with unique colors and can be demonstrated that Layer Control works appropriately with unlimited # of layers.