Package gov.nih.mipav.model.algorithms
Class GaussianMixtureModelsIncompleteSamples
java.lang.Object
java.lang.Thread
gov.nih.mipav.model.algorithms.AlgorithmBase
gov.nih.mipav.model.algorithms.GaussianMixtureModelsIncompleteSamples
- All Implemented Interfaces:
ActionListener,WindowListener,Runnable,EventListener
dirichletRnd ported from mixGaussRnd.m by Mo Chen
Copyright (c) 2016, Mo Chen
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution
Neither the name of nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class(package private) classNested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate double[][][]private intprivate intFields inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
destFlag, destImage, image25D, mask, maxProgressValue, minProgressValue, multiThreadingEnabled, nthreads, progress, progressModulus, progressStep, runningInSeparateThread, separable, srcImage, threadStoppedFields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid_drawGMM_BG(Vector<double[][]> data2Vec, Vector<double[][][]> covar2Vec, GaussianMixtureModelsIncompleteSamples.GMM gmm, double size, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, Random rng) void_EM(double[] log_L, int[] N, double[] N2, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] log_p, int[][] U, double[][][][] T_inv, double[] log_S, double[][] data, double[][][] covar, double[][][] R, String sel_callback, int oversampling, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, double[][] p_bg, double w, double cutoff, int miniter, int maxiter, double tol, String prefix, boolean[] changeable_amp, boolean[] changeable_mean, boolean[] changeable_covar, Random rng) void_EMstep(double[] log_L, int[] N, double[] N2, double[] N0update, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] log_p, int[][] U, double[][][][] T_inv, double[] log_S, double N0, double[][] data, double[][][] covar, double[][][] R, String sel_callback, double[] omega, int oversampling, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, double[][] p_bg, double w, double cutoff, double tol, boolean[] changeable_amp, boolean[] changeable_mean, boolean[] changeable_covar, int it, Random rng) double_Estep(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] log_p, int[][] U, double[][][][] T_inv, double[] log_S, double[][] data, double[][][] covar, double[][][] R, double[] omega, GaussianMixtureModelsIncompleteSamples.Background background, double[][] p_bg, double cutoff, int it, Random rng) void_Esum(double[][] log_p, double[][][][] T_inv, int k, int[][] U, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] covar, double[][][] R, double cutoff) void_findSNMComponents(int[] changing, boolean[] cleanup, GaussianMixtureModelsIncompleteSamples.GMM gmm, int[][] U, double[][] log_p, double[] log_S, double N) double_JS(int k, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] log_p, double[] log_S, int[][] U, double[] A) void_Mstep(double[] A, double[][] M, double[][][] C, double[] B, GaussianMixtureModelsIncompleteSamples.GMM gmm, int[][] U, double[][] log_p, double[][][][] T_inv, double[] log_S, double[][] data, double[][][] covar, double[][][] R, double[][] p_bg) void_Msums(double[] A, double[][] M, double[][][] C, int k, int[][] U, double[][] log_p, double[][][][] T_inv, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] R, double[] log_S) void_update(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[] A, double[][] M, double[][][] C, int[] N, double[] B, double[] A2, double[][] M2, double[][][] C2, double[] N2, double[] B2, double w, boolean[] changeable_amp, boolean[] changeable_mean, boolean[] changeable_covar, GaussianMixtureModelsIncompleteSamples.Background background) void_update_snm(GaussianMixtureModelsIncompleteSamples.GMM gmm, int[] changeable, int[][] U, double N, boolean cleanup) (package private) doubleasinh(double x) int[]bincount(int[] indices, int minlength) int[][][]binSample(double[][] coords, int C) doublechi2_cutoff(int D, double cutoff) double[][][]covar_callback_default(double[][] coords) double[]dirichletRnd(double[] ain, double[] m) voiddraw(Vector<double[][]> dataVec, Vector<double[][][]> covarVec, double[] updated_orig_size, Vector<double[]> omegaVec, GaussianMixtureModelsIncompleteSamples.GMM gmm, int obs_size, String sel_callback, boolean invert_sel, int orig_size, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, Random rng) voiddrawWithNbh(double[][] samples, int[][] nbh, GaussianMixtureModelsIncompleteSamples.GMM gmm, int size, Random rng) private doubleerf(double x) doublefit(int[][] U, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] covar, double[][][] R, String init_method, double w, double cutoff, String sel_callback, int oversampling, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, double tol, int miniter, int maxiter, int[] frozen_amp, int[] frozen_mean, int[] frozen_covar, int split_n_merge, Random rng) doublegamrnd(double a, double b) double[]getAll(double[][] coords) double[]getBox(double[][] coords) double[]getBoxWithHole(double[][] coords) double[]getCut(double[][] coords) double[]getHalf(double[][] coords) double[]getHole(double[][] coords) double[]getNoSel(double[][] coords) double[]getSelection(String sel_type, double[][] noisy, Random rng) double[]getSlopeSel(double[][] coords, Random rng) boolean[]GMMSel(double[][] coords, double[][][] covar, GaussianMixtureModelsIncompleteSamples.GMM sel_gmm, double cutoff_nd, Random rng) voidinitCube(GaussianMixtureModelsIncompleteSamples.GMM gmm, double w, Random rng) voidinitFromDataAtRandom(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] covar, double s, int[] k, Random rng) voidinitFromDataMinMax(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] covar, double s, int[] k, Random rng) voidinitFromKMeans(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, Random rng) boolean[]insideComponent(int k, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] coords, double[][][] covar, double cutoff) doublelogsum(double[] input) double[]logsum(double[][] input) voidmatch1d(Vector<Integer> sub1Vec, Vector<Integer> sub2Vec, int[] arr1Input, int[] arr2, boolean presorted) voidplotDifferences(double[][] orig, double[][] data, GaussianMixtureModelsIncompleteSamples.GMM[] gmms, GaussianMixtureModelsIncompleteSamples.GMM avg, double[] l) voidplotResults(double[][] orig, double[][] data, GaussianMixtureModelsIncompleteSamples.GMM gmm, String description, double disp) voidprintResults(GaussianMixtureModelsIncompleteSamples.GMM gmm, String description) voidActually runs the algorithm.stack(GaussianMixtureModelsIncompleteSamples.GMM[] gmms, double[] weights) stack_fit(GaussianMixtureModelsIncompleteSamples.GMM[] gmms, double[][] data, double[][][] covar, String init_callback, double w, double cutoff, String sel_callback, String covar_callack, GaussianMixtureModelsIncompleteSamples.Background bg, int L, double tol, Random rng) voidtest()voidtest_3D()Methods inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
actionPerformed, addListener, addProgressChangeListener, calculateImageSize, calculatePrincipleAxis, computeElapsedTime, computeElapsedTime, convertIntoFloat, delinkProgressToAlgorithm, delinkProgressToAlgorithmMulti, displayError, errorCleanUp, finalize, 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, windowOpenedMethods 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, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Field Details
-
K
private int K -
D
private int D -
covar_callback_default_arr
private double[][][] covar_callback_default_arr
-
-
Constructor Details
-
GaussianMixtureModelsIncompleteSamples
public GaussianMixtureModelsIncompleteSamples() -
GaussianMixtureModelsIncompleteSamples
public GaussianMixtureModelsIncompleteSamples(int K, int D)
-
-
Method Details
-
test
public void test() -
test_3D
public void test_3D() -
GMMSel
public boolean[] GMMSel(double[][] coords, double[][][] covar, GaussianMixtureModelsIncompleteSamples.GMM sel_gmm, double cutoff_nd, Random rng) -
insideComponent
public boolean[] insideComponent(int k, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] coords, double[][][] covar, double cutoff) -
binSample
public int[][][] binSample(double[][] coords, int C) -
drawWithNbh
public void drawWithNbh(double[][] samples, int[][] nbh, GaussianMixtureModelsIncompleteSamples.GMM gmm, int size, Random rng) -
bincount
public int[] bincount(int[] indices, int minlength) -
initCube
-
dirichletRnd
public double[] dirichletRnd(double[] ain, double[] m) -
gamrnd
public double gamrnd(double a, double b) -
getSlopeSel
-
getNoSel
public double[] getNoSel(double[][] coords) -
printResults
-
stack_fit
public GaussianMixtureModelsIncompleteSamples.GMM stack_fit(GaussianMixtureModelsIncompleteSamples.GMM[] gmms, double[][] data, double[][][] covar, String init_callback, double w, double cutoff, String sel_callback, String covar_callack, GaussianMixtureModelsIncompleteSamples.Background bg, int L, double tol, Random rng) -
stack
public GaussianMixtureModelsIncompleteSamples.GMM stack(GaussianMixtureModelsIncompleteSamples.GMM[] gmms, double[] weights) -
getSelection
-
runAlgorithm
public void runAlgorithm()Description copied from class:AlgorithmBaseActually runs the algorithm. Implemented by inheriting algorithms.- Specified by:
runAlgorithmin classAlgorithmBase
-
logsum
public double logsum(double[] input) -
logsum
public double[] logsum(double[][] input) -
getBox
public double[] getBox(double[][] coords) -
getHole
public double[] getHole(double[][] coords) -
getBoxWithHole
public double[] getBoxWithHole(double[][] coords) -
getCut
public double[] getCut(double[][] coords) -
getAll
public double[] getAll(double[][] coords) -
getHalf
public double[] getHalf(double[][] coords) -
plotDifferences
public void plotDifferences(double[][] orig, double[][] data, GaussianMixtureModelsIncompleteSamples.GMM[] gmms, GaussianMixtureModelsIncompleteSamples.GMM avg, double[] l) -
plotResults
public void plotResults(double[][] orig, double[][] data, GaussianMixtureModelsIncompleteSamples.GMM gmm, String description, double disp) -
asinh
double asinh(double x) -
fit
public double fit(int[][] U, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] covar, double[][][] R, String init_method, double w, double cutoff, String sel_callback, int oversampling, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, double tol, int miniter, int maxiter, int[] frozen_amp, int[] frozen_mean, int[] frozen_covar, int split_n_merge, Random rng) -
_update_snm
public void _update_snm(GaussianMixtureModelsIncompleteSamples.GMM gmm, int[] changeable, int[][] U, double N, boolean cleanup) -
_findSNMComponents
public void _findSNMComponents(int[] changing, boolean[] cleanup, GaussianMixtureModelsIncompleteSamples.GMM gmm, int[][] U, double[][] log_p, double[] log_S, double N) -
_JS
public double _JS(int k, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] log_p, double[] log_S, int[][] U, double[] A) -
match1d
-
_EM
public void _EM(double[] log_L, int[] N, double[] N2, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] log_p, int[][] U, double[][][][] T_inv, double[] log_S, double[][] data, double[][][] covar, double[][][] R, String sel_callback, int oversampling, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, double[][] p_bg, double w, double cutoff, int miniter, int maxiter, double tol, String prefix, boolean[] changeable_amp, boolean[] changeable_mean, boolean[] changeable_covar, Random rng) -
_EMstep
public void _EMstep(double[] log_L, int[] N, double[] N2, double[] N0update, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] log_p, int[][] U, double[][][][] T_inv, double[] log_S, double N0, double[][] data, double[][][] covar, double[][][] R, String sel_callback, double[] omega, int oversampling, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, double[][] p_bg, double w, double cutoff, double tol, boolean[] changeable_amp, boolean[] changeable_mean, boolean[] changeable_covar, int it, Random rng) -
_update
public void _update(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[] A, double[][] M, double[][][] C, int[] N, double[] B, double[] A2, double[][] M2, double[][][] C2, double[] N2, double[] B2, double w, boolean[] changeable_amp, boolean[] changeable_mean, boolean[] changeable_covar, GaussianMixtureModelsIncompleteSamples.Background background) -
draw
public void draw(Vector<double[][]> dataVec, Vector<double[][][]> covarVec, double[] updated_orig_size, Vector<double[]> omegaVec, GaussianMixtureModelsIncompleteSamples.GMM gmm, int obs_size, String sel_callback, boolean invert_sel, int orig_size, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, Random rng) -
_drawGMM_BG
public void _drawGMM_BG(Vector<double[][]> data2Vec, Vector<double[][][]> covar2Vec, GaussianMixtureModelsIncompleteSamples.GMM gmm, double size, String covar_callback, GaussianMixtureModelsIncompleteSamples.Background background, Random rng) -
_Mstep
public void _Mstep(double[] A, double[][] M, double[][][] C, double[] B, GaussianMixtureModelsIncompleteSamples.GMM gmm, int[][] U, double[][] log_p, double[][][][] T_inv, double[] log_S, double[][] data, double[][][] covar, double[][][] R, double[][] p_bg) -
_Msums
public void _Msums(double[] A, double[][] M, double[][][] C, int k, int[][] U, double[][] log_p, double[][][][] T_inv, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] R, double[] log_S) -
_Estep
public double _Estep(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] log_p, int[][] U, double[][][][] T_inv, double[] log_S, double[][] data, double[][][] covar, double[][][] R, double[] omega, GaussianMixtureModelsIncompleteSamples.Background background, double[][] p_bg, double cutoff, int it, Random rng) -
erf
private double erf(double x) -
_Esum
public void _Esum(double[][] log_p, double[][][][] T_inv, int k, int[][] U, GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] covar, double[][][] R, double cutoff) -
chi2_cutoff
public double chi2_cutoff(int D, double cutoff) -
covar_callback_default
public double[][][] covar_callback_default(double[][] coords) -
initFromDataAtRandom
public void initFromDataAtRandom(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] covar, double s, int[] k, Random rng) -
initFromKMeans
public void initFromKMeans(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, Random rng) -
initFromDataMinMax
public void initFromDataMinMax(GaussianMixtureModelsIncompleteSamples.GMM gmm, double[][] data, double[][][] covar, double s, int[] k, Random rng)
-