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) class
AlgorithmDEMRI3.Fit24DModel
DOCUMENT ME!(package private) class
AlgorithmDEMRI3.Fit25HModel
DOCUMENT ME!(package private) class
AlgorithmDEMRI3.FitDEMRI3ConstrainedModel
-
Field Summary
Fields Modifier and Type Field Description private double[]
comp
private double
cos0
private double[]
elist
private double
epsilon
private int
FIRST_VOLUME_TISSUE
private int
i
(package private) double[]
initial
private double[]
max_constr
private double[]
min_constr
private double[]
mp
1D Mp(t) data from sagittal sinus VOIprivate int
nFirst
nfirst injection TR index of input dataset (0 - 1000) Number of TRs before Gd injectionprivate boolean
perMinute
If perMinute == false, K_trans and k_ep are per second If perMinute == true, K_trans and k_ep are per minuteprivate double
r1
Contrast relaxivity rate in 1/(mMol*sec) (0.0 - 1000.0)private double[]
r1i
non-uniform tissue intrinsic relaxivity map from input 3d + t = 4D imageprivate double
rib
blood intrinsic relaxivity rate in 1/(mMol * sec) input as reciprocal, in seconds (0.001 - 10000.0)private double
rit
tissue intrinsic relaxivity rate in 1/(mMol * sec) specified as reciprocal, in seconds (0.001 - 10000.0)private int
SEPARATE_VOLUME_TISSUE
private int
tDim
private double
tf
Time between frames (volumes) in seconds (0.1 - 30.0)private double
theta
Flip angle in degrees (0.0 - 90.0)private ModelImage
tissueImage
private int
tissueSource
private double
tr
Time between shots in seconds (0.0 - 10000.0)private boolean
userSpecifiedBlood
If true, user specifed rib, otherwise, voi specified ribprivate boolean
useVe
If false, second parameter is back-transfer rate (k_ep) If true, Second parameter is external celluar volume fraction (ve)private int
xDim
private int
yDim
private double[]
ymodel
private int
zDim
-
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 void
finalize()
Prepares this class for destruction.void
runAlgorithm()
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:
finalize
in classAlgorithmBase
-
runAlgorithm
public void runAlgorithm()
starts the algorithm.- Specified by:
runAlgorithm
in classAlgorithmBase
-
-