Package gov.nih.mipav.model.algorithms
Class AlgorithmDEMRI3
- java.lang.Object
-
- java.lang.Thread
-
- gov.nih.mipav.model.algorithms.AlgorithmBase
-
- gov.nih.mipav.model.algorithms.AlgorithmDEMRI3
-
- All Implemented Interfaces:
java.awt.event.ActionListener,java.awt.event.WindowListener,java.lang.Runnable,java.util.EventListener
public class AlgorithmDEMRI3 extends AlgorithmBase
3 model parameters are fit for each voxel in 3D: 1) K_trans in [0, 0.99] 2) User choice of k_ep in [0, 0.99] or ve 3) f_vp in [0, 0.99] K_trans and k_ep default to rates per second, but the user changed select rates per minute. srcImage is a dynamic "4D volume" of MRI signal (3D over time). An optional intrinsic relaxivity map may be obtained by acquiring two acquisition scans at low and high flip angles; otherwise, a single tissue relaxivity can be assumed for the whole brain. References: 1.) "A Unified Magnetic Resonance Imaging Pharmacokinetic Theory: Intravascular and Extracellular Contrast Reagents" by Xin Li, William D. Rooney, and Charles S. Springer, Jr., Magnetic Resonance in Medicine, Vol. 54, 2005, pp. 1351-1359. 2.) Erratum: Magnetic Resonance in Medicine, Vol. 55, 2006, p.1217. 3.) Quantitative MRI of the Brain, Edited by Paul Tofts, 2003, John Wiley & Sons, Ltd., ISBN: 0-47084721-2, Chapter 10, T1-w DCE-MRI: T1-weighted Dynamic Contrast-enhanced MRI by Geoff J. M. Parker and Anwar R. Padhani.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classAlgorithmDEMRI3.Fit24DModelDOCUMENT ME!(package private) classAlgorithmDEMRI3.Fit25HModelDOCUMENT ME!(package private) classAlgorithmDEMRI3.FitDEMRI3ConstrainedModel
-
Field Summary
Fields Modifier and Type Field Description private double[]compprivate doublecos0private double[]elistprivate doubleepsilonprivate intFIRST_VOLUME_TISSUEprivate inti(package private) double[]initialprivate double[]max_constrprivate double[]min_constrprivate double[]mp1D Mp(t) data from sagittal sinus VOIprivate intnFirstnfirst injection TR index of input dataset (0 - 1000) Number of TRs before Gd injectionprivate booleanperMinuteIf perMinute == false, K_trans and k_ep are per second If perMinute == true, K_trans and k_ep are per minuteprivate doubler1Contrast relaxivity rate in 1/(mMol*sec) (0.0 - 1000.0)private double[]r1inon-uniform tissue intrinsic relaxivity map from input 3d + t = 4D imageprivate doubleribblood intrinsic relaxivity rate in 1/(mMol * sec) input as reciprocal, in seconds (0.001 - 10000.0)private doublerittissue intrinsic relaxivity rate in 1/(mMol * sec) specified as reciprocal, in seconds (0.001 - 10000.0)private intSEPARATE_VOLUME_TISSUEprivate inttDimprivate doubletfTime between frames (volumes) in seconds (0.1 - 30.0)private doublethetaFlip angle in degrees (0.0 - 90.0)private ModelImagetissueImageprivate inttissueSourceprivate doubletrTime between shots in seconds (0.0 - 10000.0)private booleanuserSpecifiedBloodIf true, user specifed rib, otherwise, voi specified ribprivate booleanuseVeIf false, second parameter is back-transfer rate (k_ep) If true, Second parameter is external celluar volume fraction (ve)private intxDimprivate intyDimprivate double[]ymodelprivate intzDim-
Fields inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
destFlag, destImage, image25D, mask, maxProgressValue, minProgressValue, multiThreadingEnabled, nthreads, progress, progressModulus, progressStep, runningInSeparateThread, separable, srcImage, threadStopped
-
-
Constructor Summary
Constructors Constructor Description AlgorithmDEMRI3(ModelImage destImage, ModelImage srcImage, double[] min_constr, double[] max_constr, double r1, boolean userSpecifiedBlood, double rib, int tissueSource, double rit, ModelImage tissueImage, double theta, double tr, boolean perMinute, int nFirst, boolean useVe)Creates a new AlgorithmDEMRI3 object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidfinalize()Prepares this class for destruction.voidrunAlgorithm()starts the algorithm.-
Methods inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
actionPerformed, addListener, addProgressChangeListener, calculateImageSize, calculatePrincipleAxis, computeElapsedTime, computeElapsedTime, convertIntoFloat, delinkProgressToAlgorithm, delinkProgressToAlgorithmMulti, displayError, errorCleanUp, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, generateProgressValues, getDestImage, getElapsedTime, getMask, getMaxProgressValue, getMinProgressValue, getNumberOfThreads, getProgress, getProgressChangeListener, getProgressChangeListeners, getProgressModulus, getProgressStep, getProgressValues, getSrcImage, isCompleted, isImage25D, isMultiThreadingEnabled, isRunningInSeparateThread, isThreadStopped, linkProgressToAlgorithm, linkProgressToAlgorithm, makeProgress, notifyListeners, removeListener, removeProgressChangeListener, run, setCompleted, setImage25D, setMask, setMaxProgressValue, setMinProgressValue, setMultiThreadingEnabled, setNumberOfThreads, setProgress, setProgressModulus, setProgressStep, setProgressValues, setProgressValues, setRunningInSeparateThread, setSrcImage, setStartTime, setThreadStopped, startMethod, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
-
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
-
-
-
Field Detail
-
FIRST_VOLUME_TISSUE
private int FIRST_VOLUME_TISSUE
-
SEPARATE_VOLUME_TISSUE
private int SEPARATE_VOLUME_TISSUE
-
r1
private double r1
Contrast relaxivity rate in 1/(mMol*sec) (0.0 - 1000.0)
-
userSpecifiedBlood
private boolean userSpecifiedBlood
If true, user specifed rib, otherwise, voi specified rib
-
rib
private double rib
blood intrinsic relaxivity rate in 1/(mMol * sec) input as reciprocal, in seconds (0.001 - 10000.0)
-
tissueSource
private int tissueSource
-
rit
private double rit
tissue intrinsic relaxivity rate in 1/(mMol * sec) specified as reciprocal, in seconds (0.001 - 10000.0)
-
r1i
private double[] r1i
non-uniform tissue intrinsic relaxivity map from input 3d + t = 4D image
-
theta
private double theta
Flip angle in degrees (0.0 - 90.0)
-
tr
private double tr
Time between shots in seconds (0.0 - 10000.0)
-
tf
private double tf
Time between frames (volumes) in seconds (0.1 - 30.0)
-
perMinute
private boolean perMinute
If perMinute == false, K_trans and k_ep are per second If perMinute == true, K_trans and k_ep are per minute
-
mp
private double[] mp
1D Mp(t) data from sagittal sinus VOI
-
nFirst
private int nFirst
nfirst injection TR index of input dataset (0 - 1000) Number of TRs before Gd injection
-
useVe
private boolean useVe
If false, second parameter is back-transfer rate (k_ep) If true, Second parameter is external celluar volume fraction (ve)
-
epsilon
private double epsilon
-
min_constr
private double[] min_constr
-
max_constr
private double[] max_constr
-
comp
private double[] comp
-
elist
private double[] elist
-
ymodel
private double[] ymodel
-
i
private int i
-
xDim
private int xDim
-
yDim
private int yDim
-
zDim
private int zDim
-
tDim
private int tDim
-
cos0
private double cos0
-
initial
double[] initial
-
tissueImage
private ModelImage tissueImage
-
-
Constructor Detail
-
AlgorithmDEMRI3
public AlgorithmDEMRI3(ModelImage destImage, ModelImage srcImage, double[] min_constr, double[] max_constr, double r1, boolean userSpecifiedBlood, double rib, int tissueSource, double rit, ModelImage tissueImage, double theta, double tr, boolean perMinute, int nFirst, boolean useVe)
Creates a new AlgorithmDEMRI3 object.
-
-
Method Detail
-
finalize
public void finalize()
Prepares this class for destruction.- Overrides:
finalizein classAlgorithmBase
-
runAlgorithm
public void runAlgorithm()
starts the algorithm.- Specified by:
runAlgorithmin classAlgorithmBase
-
-