Class | Description |
---|---|
AboutDialog |
Build About dialog with support of mouse operations.
|
BOA_ |
Main class implementing BOA plugin.
|
BOAState |
Hold current BOA state that can be serialized.
|
CellStats |
Keep statistics (outline and fluoro) for one cell along frames.
|
CellStatsEval |
Calculate statistics for whole stack (all cells).
|
Constrictor |
Calculate forces that affect the snake.
|
FluoMeasurement |
Hold fluorescence value for pixel.
|
FrameStatistics |
Hold statistic evaluated for one frame and one outline, both geometric and fluorescence.
|
HistoryLogger | Deprecated
No longer in use
|
LogbackFilter |
Filter that filters out packages that not belong to QuimP.
|
Nest |
Represent collection of SnakeHandlers.
|
Node |
Represents a node in the snake - its basic component In fact this class stands for bidirectional
list containing Nodes.
|
Outline |
Represent Outline object used as Snake representation after ECMM mapping.
|
OutlineHandler |
Collection of outlines for subsequent frames (
|
PluginFactoryFactory |
This class create instance of PluginFactory.
|
PointsList<T extends PointsList<T>> |
Represents node of bidirectional list of points in Cartesian coordinates.
|
PropertyReader |
Read properties from resources.
|
Q_Explorer | |
QColor |
Just a class for colors, that does not use stupid floats represented as RGB in the range 0->1.
|
QParams |
Container class for parameters defining the whole process of analysis in QuimP.
|
QParamsQconf |
This class override most of methods from super class QParams.
|
QuimP |
Static configuration definitions.
|
QuimpVersion |
Holds version and build information.
|
Serializer<T extends IQuimpSerialize> |
Support saving and loading wrapped class to/from JSON file or string.
|
Shape<T extends PointsList<T>> |
Form abstract shape from bidirectional list of points.
|
ShapeHandler<T extends Shape<?>> |
Base class for Shape holders.
|
Snake |
Low level snake definition.
|
SnakeHandler |
Store all the snakes computed for one cell across frames and it is responsible for writing them
to file.
|
SnakePluginList |
Ordered list of plugins related to snake processing for one frame.
|
Test_QuimP | Deprecated |
Vert |
Represents a vertex in the outline.
|
ViewUpdater |
Accessor that masks all public methods from object it holds except those manually exposed.
|
Enum | Description |
---|---|
QuimpException.MessageSinkTypes |
Define where the message should be displayed.
|
Exception | Description |
---|---|
BoaException |
Exception thrown by BOA class.
|
QuimpException |
Template of exceptions thrown by QuimP API.
|
DataContainer
that covers the whole QCONF
structure.
Briefly relations among classes used by
DataContainer
are:CellStatsEval
depending how it is created, writes
statistics
to
disk as stQP files or only computes them internally (they are computed as well for first case).
They can be obtained by calling CellStatsEval.getStatH()
which
provides CellStats
object that holds statistics for one
cell for
all frames (as List of FrameStatistics
objects.
FrameStatistics
are computed by
CellStatsEval
and they are used by old path (paQP) to write
stQP file. CellStats
is wrapper to
FrameStatistics[] that delivers List of
FrameStatistics
(stats for subsequent frames for one cell)
to StatsCollection
which gather statistics for
all cells in experiments and then is serialized.
DataContainer
holds List of CellStats
for every cell in experiment.
Fitting
statistic object into DataContainer
:
DataContainer dt = new DataContainer(); // create container
dt.BOAState = qState; // assign boa state to correct field
dt.Stats = new StatsCollection();
dt.Stats.copyFromCellStat(ret); // StatsHandler is initialized here.
n = new Serializer<>(dt, quimpInfo);
if (qState.boap.savePretty) // set pretty format if configured
n.setPretty();
n.save(qState.boap.deductNewParamFileName());
Some general dependencies:
PointsList
PointsList.point
- set during
initialisation
PointsList.position
- set by
Shape.setPositions()
PointsList.normal
- set by
PointsList.updateNormale(boolean)
and
Shape.updateNormals(boolean)
. Snakes have normals
dependent on BOAState.SegParam.expandSnake
whereas Outlines
use inner==false in PointsList.updateNormale(boolean)
.
Snakes are also reversed by Shape.makeAntiClockwise()
PointsList.tan
- set during updating normals
Shape.updateNormals(boolean)
Shape
Shape.centroid
- set by
Shape.calcCentroid()
Snake
Snake.bounds
- set by
Snake.getBounds()
Outline
Vert.curvatureLocal
- set by
Outline.updateCurvature()
BOA_.runBoa(int, int)
,
BOA_.tightenSnake(Snake)
,
Constrictor
,
Constrictor.constrict(Snake, ij.process.ImageProcessor)
and
Constrictor.loosen(Nest, int)
PointsList
wrapped by
Shape
. If head node (can be
Vert
or Node
object)
is
removed, new head is chosen randomly between next and previous element. This affects end result
making it nondeterministic, especially for iterative shrinking like e.g.
Outline.scaleOutline(double, double, double, double)
or scaling in Snake
. To make testing possible, threshold
level
defined in Shape
is static and private to avoid accidental
modification.
This filed can be overridden in setUp and restored in after:
Field f = Shape.class.getDeclaredField("threshold");
f.setAccessible(true);
f.setDouble(Shape.class, 1.0);
Constrictor constrictor = new Constrictor();
for (SnakeHandler sh : nest.getHandlers()) {
for (int f = sh.getStartFrame(); f <= sh.getEndFrame(); f++) {
sh.getBackupSnake(f).calcCentroid(); // called in Shape constructor
sh.getBackupSnake(f).setPositions();
sh.getBackupSnake(f).updateNormals(true);
sh.getBackupSnake(f).getBounds(); // called in Snake constructor
sh.getStoredSnake(f).calcCentroid();
sh.getStoredSnake(f).setPositions();
sh.getStoredSnake(f).updateNormals(true);
sh.getStoredSnake(f).getBounds();
constrictor.constrict(sh.getStoredSnake(f), ip.getStack().getProcessor(f));
constrictor.constrict(sh.getBackupSnake(f), ip.getStack().getProcessor(f));
}
sh.getLiveSnake().calcCentroid();
sh.getLiveSnake().setPositions();
sh.getLiveSnake().updateNormals(true);
sh.getLiveSnake().getBounds();
constrictor.constrict(sh.getLiveSnake(), ip.getStack().getProcessor(sh.getStartFrame()));
}
Some of them are computed in constructors.Copyright © 2002–2019 Department of Computer Science, Warwick University. All rights reserved.