Class AlgorithmColocalizationRegression
- java.lang.Object
-
- java.lang.Thread
-
- gov.nih.mipav.model.algorithms.AlgorithmBase
-
- gov.nih.mipav.model.algorithms.AlgorithmColocalizationRegression
-
- All Implemented Interfaces:
UpdateVOISelectionListener
,java.awt.event.ActionListener
,java.awt.event.WindowListener
,java.lang.Runnable
,java.util.EventListener
public class AlgorithmColocalizationRegression extends AlgorithmBase implements UpdateVOISelectionListener
This algorithm creates a 2D histogram from 2 colors of a single image or from 2 black and white images and uses an orthogonal line fit of the histogram data to generate a correlation line thru the histogram. Upper right region rectangles with lower left corners on the correlation line are used as colocalization regions, regions where both of the 2 colors are significantly above background. The colocalization frame is tied to a version of the source image or images, so that only pixels located in the colocalization region are displayed. When not in free range mode, a user movable point along the correlation line allows for the display of source image pixels and statistics associated with different upper right colocalization regions. In free range mode, the point can be moved anywhere in the histogram buffer.If neither registration or background subtraction are selected, then the original source image or images are used in the histogram buffer. If registration is selected and background subtraction is not selected, then the registered image or images are used in the histogram buffer. If registration is not selected and background subtraction is selected, then the subtracted image or images are used in the histogram buffer. If both registration and subtraction are selected, then the background averages are obtained from the original source image or images. Next, registration is performed. Finally, background subtraction is performed on the registered image or images and the subtracted image or images are used for the histogram buffer. If the maximum data range is decreased, then bin1 or bin2 will be decreased if necessary so as not to exceed the actual number of channels in the data range.
Note that the background selection voi is always blue and the voi to limit analysis to a region of the image is assumed to be a different color.
An optional registration may be performed before colocalization. In this registration both images or colors are moved halfway to a common center point. The registration is always done on an entire image. AlgorithmRegOAR2D is used with the cost function being the only registration parameter the user can vary in the dialog box. Correlation ratio is the default, but the user can also select least squares, normalized cross correlation, or normalized mutual information. The colocalization will be performed on the registered image or images rather than on the original image.
The amount of colocalization can be measured with the linear correlation coefficient. Let the 2 channels be R and G, the average values be Rav and Gav. Then the linear correlation coefficient = num/denom with num = sum over i of ((R(i) - Rav) * (G(i) - Gav)) denom = square root[(sum over i of (R(i) - Rav)*(R(i) - Rav)) * (sum over i of (G(i) - Gav)* (G(i) - Gav))] This is equivalent to the more traditional form of the equation: with num = Nsum(R(i)G(i)) - sum(R(i))sum(G(i)) denom = sqrt[Nsum(R(i)*R(i)) - (sumR(i))*(sumR(i))] * sqrt[Nsum(G(i)*G(i)) - (sumG(i))*(sumG(i))] The linear correlation coefficient ranges from -1 to 1 with 0 the value for random patterns and 1 the value for 100% colocalization. Negative values of the coefficient are not used for colocalization since that would indicate an anticolocalized situation with a bright pixel in one channel implying a dim pixel in another channel. Note that the medical literature on colocalization refers to the traditional linear correlation coefficient as Pearson's coefficient.
The P-value statistic measures the portion of the linear correlation coefficient values of images with 1 randomly scrambled channel whose values are less than the linear correlation coefficient value of the unscrambled image. 200 randomizations are performed resulting in a fairly accurate significance test with a maximum P-value of 0.995. A P-value of 0.95 or more is somewhat arbitrarily used to indicate the existence of true colocalization. The P-value option was not found to be useful and is currently disabled.
Pixel intensity values are spatially correlated because of the point spread function. Therefore, the number of independent samples in an image is not the number of pixels in the image but rather the number of objects the size of a point spread function that will fit into the image. A normalized autocovariance is calculated for each channel(although much of the medical literature erroneously calls it an autocorrelation). The channel whose autocovariance is smallest is divided up into squares or cubes with sides equal to the full width at half maximum of the smallest autocovariance. These squares or cubes are randomly placed in forming 200 randomly colocalized images.
Use linear least squares to calculate the best line fit for secondBuffer = a*firstBuffer + b. Use an orthogonal line fit where the minimized distance measurements are orthgonal to the proposed line. This is an orthogonal regression as opposed to a traditional direct regression of dependent y variable green on independent red variable x which would minimize the vertical distances between the points and the fitted line. An inverse regression of red on green would minimize the horizontal distances between the points and the fitted line. All 3 lines pass through the point (averagex, averagey), but the 3 lines only coincide if the correlation coefficient equals -1 or 1. Use of a direct regression only makes sense if one variable is dependent and one variable is independent. Since red and green dyes used in colocalization are best thought of as 2 independent variables, the orthogonal regression is most appropriate. Note that orthogonal regression is also called total least squares.
In the first iteration points which have a dataless background in both images are excluded from the regression line calculations. If buffer[i] < background1 and secondBuffer[i] < background2, the point i is not included in the regression line calculations. If the image is not floating point or double, background1 and background2 are set at 1.0. If the image is floating point or double, background1 and background2 are set at image minimums.
In the dialog the user can select to use points from the entire image or only points from the VOI region or only points allowed by a mask file. If VOI region is selected, then when a mouseReleased is performed on the VOI, the calculation is performed again. This allows the calculation to be performed with the same contour VOI in different positions. If the mask file radio button is selected, then the Choose mask file button will be enabled. When the Choose mask file button is pressed, a dialog for selecting a mask file will appear.
The second iteration thresholding works the same as the first iteration thresholding except for the line determination. In the first line determination iteration points are only excluded if they are below both background1 and background2, but in the second iteration line determination points are excluded if they are below either latPositive1 or lastPositive2. (lastPositive1,lastPositive2) is the last point going from top to bottom on the first iteration regression line before a L shaped subthreshold region with a zero or negative linear correlation coefficient is found. In the second iteration the L shaped subthreshold region determined from the first iteration is excluded from the regression line calculations. The default is to not perform a second iteration. The second iteration thresholding is not applied to the linear correlation coefficients, % colocalization area, % first color colocalization, or the % second color colocalization. The second iteration thresholding is just used for line generation with exclusion of points in the L shaped region.
The slope and offset of the orthogonal regression line can be obtained from the eigenvector of the smallest eigenvalue of the matrix: (count-1)*sample y variance -(count-1)*sample xy covariance -(count-1)*sample xy covariance (count-1)*sample x variance The eigenvector has the components (directionx, directiony), where the slope of the line equals = directiony/directionx offset = averagey - slope*averagex However, the method used here is to obtain the slope from the equation: slope = num/denom num = vary - varx + sqrt((vary - varx)*(vary - varx) + 4*covarxy*covarxy) denom = 2*covarxy Again offset = averagey - slope*averagex
Let n be the normal vector to the orthogonal regression line and let theta be the angle from the x axis to the normal. theta = arctan(slope) n = averagex*cos(theta) + averagey*sin(theta) The minimized residue, the mean square error, is given by MSE = varx*cos(theta)*cos(theta) + covarxy*sin(2*theta) + vary*sin(theta)*sin(theta) = (varx + 2*slope*covarxy + slope*slope*vary)/(1 + slope*slope)
To avoid including outliers in the regression line the intital regression line calculation may be iterated using only points whose distance from the line is is within +-2 times the square root of the mean square error. This will include 95% of the points. The iteration is performed until the fractional changes in the slope and offsets are <= 0.001 or 10 iterations have been performed. Iteration excluding outliers is currently disabled.
Note that there are 2 different types of regression line iterations. The first is the 1 or 2 iterations with the first iteration excluding only points with both buffer[i] < background1 and secondBuffer[i] < background2 and the second iteration excluding points with either buffer[i] < lastPositive1 or secondBuffer[i] < lastPositive2. This iteration does not lead to a convergence. Within each of these 1 or 2 major iterations a converging set of iterations may performed to exclude the outliers beyond +- 2 times the square root of the mean square error from the calculation. However, these outlier iterations are currently disabled.
A histogram buffer is generated with bin1 counts along the x axis and bin2 counts along the y axis. bin1 and bin2 are user selectable in the dialog. leftPad, rightPad, bottomPad, and topPad spaces are left around the data area in histBuffer to allow room for axis lines and labels. For bin1 and bin2 in color images the default bin number = color max - color min + 1.
Calculate the linear correlation coefficients for all pixels whose values are either below threshold in buffer or are below a*threshold + b in secondBuffer. The values in buffer range from min1 to max1 and in secondBuffer range from min2 to max2. Calculate along the color that has the greatest range along the line segment. The line segment's (color1,color2) point just above the point where the linear correlation coefficient becomes negative or zero is taken in a nonrigorous fashion as the threshold point separating colocalized data from noncolocalized data.
Originally every point along the color that has the greatest range along the line segment was included in the calculation. However, the time required was unacceptable for large images. Only those points necessary to find the transition point from negative to positive correlation coefficient are calculated. This is approximately the log to the base 2 of the number of points along the greatest color range. First the midpoint is calculated. If the midpoint linear correlation coefficient is positive, then the 1/4 point is calculated. If the midpoint linear correlation coefficient is negative, then the 3/4 point is calculated. Each new line segment increment to a new point is 1/2 the size of the previous line segment increment. The process stops when it finds a point with a negative or undefined linear correlation coefficient followed by a point with a positive correlation coefficient. When the mouse is dragged along the line, the histogram frame header display only changes when the mouse passes over a point for which the correlation and colocalizations have been calculated. On a mouse release the correlation and colocalizations will be performed at that point if they have not already been done.
Calculate the percent colocalization area, the percent red colocalization, and the percent green colocalization for each point along the correlation line. Each point along the correlation line has a red value = threshold and a green value = secondThreshold. Thus, each point defines an upper right rectanglular region characterized by red >= threshold and green >= secondThreshold. The percent colocalization area is given by 100 times the number of pixels belonging to the upper right rectangular region divided by the number of pixels in the entire image or the selected voi. The percent red colocalization is given by 100 times the sum of the red values in the upper right rectangular region divided by the sum of the red values in the image or the selected voi. The percent green colocalization is given by 100 times the sum of the green values in the upper right rectangular region divided by the sum of the green values in the image or the selected voi. Note that only pixels which equal or exceed at least 1 of the 2 user specified thresholds are included in any of the above sums.
In the default option for a color colocalization all pixel values > background are included in the sum in the denominator. In a user selected option only pixels whose values are >= the threshold for the color being colocalized will be included in the denominator sum. For example, in the threshold only option red colocalization is given by 100 times the sum of the red values in the upper right rectangular region divided by the sum of the red values >= red threshold in the image or selected voi.
Pressing the free region toggle button on the histogram frame allows the user to take the VOI point off the least squares fit line. These correlation and colocalization values are only calculated in response to a mouse release.
There are 2 nonrigorous aspects associated with this algorithm. First, a single line is likely derived from at least 4 populations - (no color1, no color2), (no color1, color2), (color1, no color2), (color1, color2) to describe the characteristics of only the (color1, color2) population. Second, a more traditional statistical approach would use data within a fixed perpindicular distance from the line as being validly described by the line.
The calculated data is passed to ViewJFrameColocalization. References: 1.) Protein-protein interaction quantified by microscopic co-localization in live cells by Sylvain V. Costes, Dirk Daelemans, Edward H. Cho, George Pavlakis, and Stephen Lockett
2.) Dynamics of three-dimensional replication patterns during the S-phase, analysed by double labelling of DNA and confocal microscopy by E.M.M.Manders, J.Stap, G.J.Brakenhoff, R.Van Driel, and J.A.Aten, Journal of Cell Science, Vol 103, 1992, pp. 857-862.
3.) Measurement of co-localization of objects in dual-colour confocal images by E.M.M.Manders, F.J.Verbeek, and J.A.Aten, Journal of Microscopy, Vol. 169, Pt. 3, March, 1993, pp. 375-382.
5.) Equations for slope and offset of the orthogonal least squares problem from A Critical Examination of Orthogonal Regression and an application to tests of firm size interchangeability by Gishan Dissanaike and Shiyun Wang
6.) Equations for slope and mean square error of the orthogonal least squares from Straight Line Extraction Using Iterative Total Least Squares Methods by Jan A. Van Mieghem, Hadar I. Avi-Itzhak, and Roger D. Melen, Journal of Visual Communication and Image Representation, Vol. 6, No. 1, March, 1995, pp. 59-68.
-
-
Field Summary
Fields Modifier and Type Field Description private float
a
generated with randomly scrambled blocks of pixels having a linear correlation coefficient less than that of the actual image.private float
b
generated with randomly scrambled blocks of pixels having a linear correlation coefficient less than that of the actual image.private float
background1
The minimum values that are considered as data values.private float
background2
DOCUMENT ME!private int
backgroundIndex
DOCUMENT ME!private int
backgroundIndex2
DOCUMENT ME!private ModelImage
baseImage
DOCUMENT ME!private int
bin1
DOCUMENT ME!private int
bin2
DOCUMENT ME!private int
bottomPad
DOCUMENT ME!private float[]
buffer
DOCUMENT ME!private float[]
colocIntensity1
DOCUMENT ME!private float[]
colocIntensity2
DOCUMENT ME!private float[]
colocSize
for all pixels with values either below color1 for buffer or below a*color1 + b for secondBuffer.private int
color
DOCUMENT ME!private int
cost
DOCUMENT ME!private boolean
doColocWithThresholds
DOCUMENT ME!private boolean
doP
DOCUMENT ME!private boolean
doSecondIteration
If true, do second iteration excluded subtrhesholded region from first iteration.private boolean
doVOISubtraction
private boolean
entireImage
DOCUMENT ME!private ViewJFrameColocalizationRegression
frameColocalize
DOCUMENT ME!private float[]
freeRangeColocIntensity1
DOCUMENT ME!private float[]
freeRangeColocIntensity2
DOCUMENT ME!private float[]
freeRangeColocSize
DOCUMENT ME!private float[]
freeRangeRThreshold
The linear correlation coefficients for all pixels with values either below color1 for buffer or below color2 for secondBuffer.private boolean[]
haveFreeRangeThreshold
If true, the freeRangeRThreshold value has been calculated.private boolean[]
haveThreshold
DOCUMENT ME!private float[]
hsb
DOCUMENT ME!private float
hue
DOCUMENT ME!private ViewJFrameImage
imageFrame
on the contour VOI occurs.private ViewJFrameImage
imageFrame2
private ViewJFrameImage
imageFrame3
private ViewJFrameImage
imageFrame4
private java.util.BitSet
inputMask
DOCUMENT ME!private int
leftPad
Space padding around the histogram data area.private double
lineMin1
DOCUMENT ME!private double
lineMin2
DOCUMENT ME!private boolean
maskSupplied
DOCUMENT ME!private double
min1
DOCUMENT ME!private double
min2
DOCUMENT ME!private int
nVOIs
DOCUMENT ME!private float
point1
DOCUMENT ME!private float
point2
DOCUMENT ME!private boolean
pointCalculation
If pointCalculation is true, go to free range mode and set location at point1, point2.private float
PValue
DOCUMENT ME!private float
r
DOCUMENT ME!private boolean
redo
DOCUMENT ME!private int
regionIndex
DOCUMENT ME!private boolean
register
DOCUMENT ME!private ModelImage
registeredBaseImage
DOCUMENT ME!private ModelImage
registeredSrcImage
DOCUMENT ME!private int
rightPad
DOCUMENT ME!private float[]
rThreshold
fitted line to secondBuffer = a*buffer + b;.private double
scale1
DOCUMENT ME!private double
scale2
DOCUMENT ME!private float[]
secondBuffer
DOCUMENT ME!private int
secondColor
DOCUMENT ME!private short[]
shortMask
DOCUMENT ME!private ModelImage
subtractedBaseImage
DOCUMENT ME!private ModelImage
subtractedSrcImage
DOCUMENT ME!private short[]
subtractionMask
DOCUMENT ME!private short[]
subtractionMask2
DOCUMENT ME!private float
t1
thresholds used in linear correlation calculations if doSecondIteration is true.private float
t2
thresholds used in linear correlation calculations if doSecondIteration is true.private int
thirdColor
DOCUMENT ME!private boolean
thresholdOn1
DOCUMENT ME!private int
thrLength
DOCUMENT ME!private int
topPad
DOCUMENT ME!private boolean
useBlue
DOCUMENT ME!private boolean
useGreen
DOCUMENT ME!private boolean
useRed
DOCUMENT ME!private float
voiIntensity1
DOCUMENT ME!private float
voiIntensity2
DOCUMENT ME!private ViewVOIVector
VOIs
DOCUMENT ME!private int
voiSize
DOCUMENT ME!-
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 AlgorithmColocalizationRegression(ModelImage destImg, ModelImage srcImg, ModelImage baseImage, java.util.BitSet mask, int bin1, int bin2, float background1, float background2, int leftPad, int rightPad, int bottomPad, int topPad, boolean doColocWithThresholds, boolean entireImage, boolean register, int cost, boolean doSecondIteration, boolean doVOISubtraction, boolean pointCalculation, float point1, float point2)
Constructor for images in which 2D histogram is placed in a predetermined destination image.AlgorithmColocalizationRegression(ModelImage destImg, ModelImage srcImg, java.util.BitSet mask, int bin1, int bin2, float background1, float background2, int leftPad, int rightPad, int bottomPad, int topPad, boolean useRed, boolean useGreen, boolean useBlue, boolean doColocWithThresholds, boolean entireImage, boolean register, int cost, boolean doSecondIteration, boolean doVOISubtraction, boolean pointCalculation, float point1, float point2)
Constructor for images in which 2D histogram is placed in a predetermined destination image.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
calc2D()
This function produces a 2D histogram image with srcImage values represented across the x axis and baseImage values represented across the y axis.void
calc2DBWStats()
DOCUMENT ME!void
calc2DColorStats()
DOCUMENT ME!private void
calc3D()
This function produces a 2D histogram image with srcImage values represented across the x axis and baseImage values represented across the y axis.private void
calcColor2D()
This function produces a 2D histogram image with first color values represented across the x axis and second color values represented across the y axis.private void
calcColor3D()
This function produces a 2D histogram image with first color values represented across the x axis and second color values represented across the y axis.void
calculateFreeRangeThreshold(int ch1, int ch2)
DOCUMENT ME!void
calculateThreshold(int thresholdIndex)
DOCUMENT ME!void
createFreeRangeArrays()
DOCUMENT ME!void
finalize()
Prepares this class for destruction.void
removeVOIUpdateListener()
DOCUMENT ME!void
runAlgorithm()
starts the algorithm.void
selectionChanged(UpdateVOIEvent newVOIselection)
responds to the volume of interest (VOI
) change events.void
updateFileInfo(ModelImage image, ModelImage resultImage)
Copy important file information to resultant image structure.-
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
-
a
private float a
generated with randomly scrambled blocks of pixels having a linear correlation coefficient less than that of the actual image.
-
b
private float b
generated with randomly scrambled blocks of pixels having a linear correlation coefficient less than that of the actual image.
-
background1
private float background1
The minimum values that are considered as data values.
-
background2
private float background2
DOCUMENT ME!
-
backgroundIndex
private int backgroundIndex
DOCUMENT ME!
-
backgroundIndex2
private int backgroundIndex2
DOCUMENT ME!
-
baseImage
private ModelImage baseImage
DOCUMENT ME!
-
bin1
private int bin1
DOCUMENT ME!
-
bin2
private int bin2
DOCUMENT ME!
-
bottomPad
private int bottomPad
DOCUMENT ME!
-
buffer
private float[] buffer
DOCUMENT ME!
-
colocIntensity1
private float[] colocIntensity1
DOCUMENT ME!
-
colocIntensity2
private float[] colocIntensity2
DOCUMENT ME!
-
colocSize
private float[] colocSize
for all pixels with values either below color1 for buffer or below a*color1 + b for secondBuffer.
-
color
private int color
DOCUMENT ME!
-
cost
private int cost
DOCUMENT ME!
-
doColocWithThresholds
private boolean doColocWithThresholds
DOCUMENT ME!
-
doP
private boolean doP
DOCUMENT ME!
-
doSecondIteration
private boolean doSecondIteration
If true, do second iteration excluded subtrhesholded region from first iteration.
-
doVOISubtraction
private boolean doVOISubtraction
-
entireImage
private boolean entireImage
DOCUMENT ME!
-
frameColocalize
private ViewJFrameColocalizationRegression frameColocalize
DOCUMENT ME!
-
freeRangeColocIntensity1
private float[] freeRangeColocIntensity1
DOCUMENT ME!
-
freeRangeColocIntensity2
private float[] freeRangeColocIntensity2
DOCUMENT ME!
-
freeRangeColocSize
private float[] freeRangeColocSize
DOCUMENT ME!
-
freeRangeRThreshold
private float[] freeRangeRThreshold
The linear correlation coefficients for all pixels with values either below color1 for buffer or below color2 for secondBuffer.
-
haveFreeRangeThreshold
private boolean[] haveFreeRangeThreshold
If true, the freeRangeRThreshold value has been calculated.
-
haveThreshold
private boolean[] haveThreshold
DOCUMENT ME!
-
hsb
private float[] hsb
DOCUMENT ME!
-
hue
private float hue
DOCUMENT ME!
-
imageFrame
private ViewJFrameImage imageFrame
on the contour VOI occurs.
-
imageFrame2
private ViewJFrameImage imageFrame2
-
imageFrame3
private ViewJFrameImage imageFrame3
-
imageFrame4
private ViewJFrameImage imageFrame4
-
inputMask
private java.util.BitSet inputMask
DOCUMENT ME!
-
leftPad
private int leftPad
Space padding around the histogram data area.
-
lineMin1
private double lineMin1
DOCUMENT ME!
-
lineMin2
private double lineMin2
DOCUMENT ME!
-
maskSupplied
private boolean maskSupplied
DOCUMENT ME!
-
min1
private double min1
DOCUMENT ME!
-
min2
private double min2
DOCUMENT ME!
-
scale1
private double scale1
DOCUMENT ME!
-
scale2
private double scale2
DOCUMENT ME!
-
nVOIs
private int nVOIs
DOCUMENT ME!
-
point1
private float point1
DOCUMENT ME!
-
point2
private float point2
DOCUMENT ME!
-
pointCalculation
private boolean pointCalculation
If pointCalculation is true, go to free range mode and set location at point1, point2.
-
PValue
private float PValue
DOCUMENT ME!
-
r
private float r
DOCUMENT ME!
-
redo
private boolean redo
DOCUMENT ME!
-
regionIndex
private int regionIndex
DOCUMENT ME!
-
register
private boolean register
DOCUMENT ME!
-
registeredBaseImage
private ModelImage registeredBaseImage
DOCUMENT ME!
-
registeredSrcImage
private ModelImage registeredSrcImage
DOCUMENT ME!
-
rightPad
private int rightPad
DOCUMENT ME!
-
rThreshold
private float[] rThreshold
fitted line to secondBuffer = a*buffer + b;.
-
secondBuffer
private float[] secondBuffer
DOCUMENT ME!
-
secondColor
private int secondColor
DOCUMENT ME!
-
shortMask
private short[] shortMask
DOCUMENT ME!
-
subtractedBaseImage
private ModelImage subtractedBaseImage
DOCUMENT ME!
-
subtractedSrcImage
private ModelImage subtractedSrcImage
DOCUMENT ME!
-
subtractionMask
private short[] subtractionMask
DOCUMENT ME!
-
subtractionMask2
private short[] subtractionMask2
DOCUMENT ME!
-
t1
private float t1
thresholds used in linear correlation calculations if doSecondIteration is true.
-
t2
private float t2
thresholds used in linear correlation calculations if doSecondIteration is true.
-
thirdColor
private int thirdColor
DOCUMENT ME!
-
thresholdOn1
private boolean thresholdOn1
DOCUMENT ME!
-
thrLength
private int thrLength
DOCUMENT ME!
-
topPad
private int topPad
DOCUMENT ME!
-
useBlue
private boolean useBlue
DOCUMENT ME!
-
useGreen
private boolean useGreen
DOCUMENT ME!
-
useRed
private boolean useRed
DOCUMENT ME!
-
voiIntensity1
private float voiIntensity1
DOCUMENT ME!
-
voiIntensity2
private float voiIntensity2
DOCUMENT ME!
-
VOIs
private ViewVOIVector VOIs
DOCUMENT ME!
-
voiSize
private int voiSize
DOCUMENT ME!
-
-
Constructor Detail
-
AlgorithmColocalizationRegression
public AlgorithmColocalizationRegression(ModelImage destImg, ModelImage srcImg, ModelImage baseImage, java.util.BitSet mask, int bin1, int bin2, float background1, float background2, int leftPad, int rightPad, int bottomPad, int topPad, boolean doColocWithThresholds, boolean entireImage, boolean register, int cost, boolean doSecondIteration, boolean doVOISubtraction, boolean pointCalculation, float point1, float point2)
Constructor for images in which 2D histogram is placed in a predetermined destination image. Used for 2 black and white images- Parameters:
destImg
- image model where result image is to storedsrcImg
- image for x axis of histogrambaseImage
- image for y axis of histogrammask
- mask for image - use is optionalbin1
- histogram x axis bin numberbin2
- histogram y axis bin numberbackground1
- minimum value for data in sourceImagebackground2
- minimum value for data in baseImageleftPad
- space to the left of the histogram bin arearightPad
- space to the right of the histogram bin areabottomPad
- space to the bottom of the histogram bin areatopPad
- space to the top of the histogram bin areadoColocWithThresholds
- If true, calculate colocalization only using pixels >= thresholdentireImage
- If false, only use data from VOI regionregister
- If true register 2 black and white images before colocalizationcost
- Cost function used in registrationdoSecondIteration
- If true, do second iteration excluding subthresholded region from first iterationdoVOISubtraction
- If true, create a new image with the average VOI background level subtracted outpointCalculation
- If true, go to free range mode and set position at point1, point2point1
- DOCUMENT ME!point2
- DOCUMENT ME!
-
AlgorithmColocalizationRegression
public AlgorithmColocalizationRegression(ModelImage destImg, ModelImage srcImg, java.util.BitSet mask, int bin1, int bin2, float background1, float background2, int leftPad, int rightPad, int bottomPad, int topPad, boolean useRed, boolean useGreen, boolean useBlue, boolean doColocWithThresholds, boolean entireImage, boolean register, int cost, boolean doSecondIteration, boolean doVOISubtraction, boolean pointCalculation, float point1, float point2)
Constructor for images in which 2D histogram is placed in a predetermined destination image. Used for 1 color image.- Parameters:
destImg
- image model where result image is to storedsrcImg
- source image modelmask
- mask for image - use optionalbin1
- histogram x axis bin numberbin2
- histogram y axis bin numberbackground1
- minimum data value for first colorbackground2
- minimum data value for second colorleftPad
- space to the left of the histogram bin arearightPad
- space to the right of the histogram bin areabottomPad
- space to the bottom of the histogram bin areatopPad
- space to the top of the histogram bin areauseRed
- DOCUMENT ME!useGreen
- DOCUMENT ME!useBlue
- DOCUMENT ME!doColocWithThresholds
- If true, calculate colocalization only using pixels >= thresholdentireImage
- If false, use only data from VOI regionregister
- If true, register 2 colors before colocalizationcost
- Cost function used in registrationdoSecondIteration
- If true, do second iteration excluding subthresholded region from first iterationdoVOISubtraction
- If true, create a new image with the average VOI background level subtracted outpointCalculation
- If true, go to free range mode and set position at point1, point2point1
- DOCUMENT ME!point2
- DOCUMENT ME!
-
-
Method Detail
-
calc2DBWStats
public void calc2DBWStats()
DOCUMENT ME!
-
calc2DColorStats
public void calc2DColorStats()
DOCUMENT ME!
-
calculateFreeRangeThreshold
public void calculateFreeRangeThreshold(int ch1, int ch2)
DOCUMENT ME!- Parameters:
ch1
- the bin1 channel usedch2
- the bin2 channel used
-
calculateThreshold
public void calculateThreshold(int thresholdIndex)
DOCUMENT ME!- Parameters:
thresholdIndex
- the index along the line segment
-
createFreeRangeArrays
public void createFreeRangeArrays()
DOCUMENT ME!
-
finalize
public void finalize()
Prepares this class for destruction.- Overrides:
finalize
in classAlgorithmBase
-
removeVOIUpdateListener
public void removeVOIUpdateListener()
DOCUMENT ME!
-
runAlgorithm
public void runAlgorithm()
starts the algorithm.- Specified by:
runAlgorithm
in classAlgorithmBase
-
selectionChanged
public void selectionChanged(UpdateVOIEvent newVOIselection)
responds to the volume of interest (VOI
) change events.This method calls
updateVOI
using theUpdateVOIEvent
changedVOI
, and retrieves the runningInSeparateThread out of the current image's frame.- Specified by:
selectionChanged
in interfaceUpdateVOISelectionListener
- Parameters:
newVOIselection
- DOCUMENT ME!- See Also:
UpdateVOIEvent
,#updateVOI
,ViewJFrameBase#getActiveImage
-
updateFileInfo
public void updateFileInfo(ModelImage image, ModelImage resultImage)
Copy important file information to resultant image structure.- Parameters:
image
- Source image.resultImage
- Resultant image.
-
calc2D
private void calc2D()
This function produces a 2D histogram image with srcImage values represented across the x axis and baseImage values represented across the y axis. The total least squares line and a matrix of correlation coefficients for L shaped subthreshold regions are also generated.
-
calc3D
private void calc3D()
This function produces a 2D histogram image with srcImage values represented across the x axis and baseImage values represented across the y axis. The total least squares line and a matrix of correlation coefficients for L shaped subthreshold regions are also generated.
-
calcColor2D
private void calcColor2D()
This function produces a 2D histogram image with first color values represented across the x axis and second color values represented across the y axis. The total least squares line and a matrix of correlation coefficients for L shaped subthreshold regions are also generated.
-
calcColor3D
private void calcColor3D()
This function produces a 2D histogram image with first color values represented across the x axis and second color values represented across the y axis. The total least squares line and a matrix of correlation coefficients for L shaped subthreshold regions are also generated.
-
-