de.unihalle.informatik.MiToBo.apps.neurites2D
Class NeuriteDetector2D

java.lang.Object
  extended by de.unihalle.informatik.Alida.operator.ALDOperator
      extended by de.unihalle.informatik.MiToBo.core.operator.MTBOperator
          extended by de.unihalle.informatik.MiToBo.apps.neurites2D.NeuriteDetector2D
All Implemented Interfaces:
de.unihalle.informatik.Alida.datatypes.ALDConfigurationValidator, de.unihalle.informatik.Alida.operator.events.ALDOperatorExecutionProgressEventListener, EventListener

@ALDAOperator(genericExecutionMode=ALL,
              level=APPLICATION,
              allowBatchMode=false)
public class NeuriteDetector2D
extends MTBOperator

The Neurite Detector 2D application offers advanced functionality to detect neurites in 2D fluorescence microscope images of neurons. Neuron boundaries are coarsely detected and refined, using active contour models (snakes). Structural neuron parts, like soma, neurites and growth cones are identified, using an wavelet based detection. Morphology analysis of the detected neurites is performed and an collection of all measurements is visualized in the result table. Intermediate and final results are automatically saved and the results are stored in a result image and presented in a final result table. The specific algorithms can be found in the `NeuriteDetector2DAlgos` class.

Author:
Danny Misiak
See Also:
NeuriteDetector2DAlgos

Nested Class Summary
static class NeuriteDetector2D.NeuriteDetector2DMode
          Different detection modes.
 
Nested classes/interfaces inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.operator.ALDOperator.HidingMode
 
Field Summary
protected  Color neuriteColor
           
 
Fields inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
completeDAG, name, operatorExecutionEventlistenerList, portHashAccess, verbose, versionProvider
 
Constructor Summary
NeuriteDetector2D()
          Standard constructor.
NeuriteDetector2D(String _inputDir, Integer _nucleiChannel, int _nucleusSize, double _nucleusRation, Integer[] _neuronChannels, double _niblackConstant, int _maxFragmentDistance, NeuriteDetector2D.NeuriteDetector2DMode _detectorMode, NeuriteDetector2DAlgos.DetectorExternalEnergy _energy, double _alpha, double _beta, double _stepSize, double _motionFraction, int _maxIterations, int _resampleConstant, int _maxSpineLength, int _neuriteMaskSize, Color _neuriteColor, Boolean _verbose)
          Constructor
 
Method Summary
 double getAlpha()
          Get snake length term weight alpha.
 Vector<String> getAnalyzedImages()
          Get vector of analyzed images.
 double getBeta()
          Get snake curvature term weight beta.
 Vector<MTBNeurite2DSet> getDetectedNeurites()
          Get vector of detected neurite sets for each image.
 NeuriteDetector2D.NeuriteDetector2DMode getDetectorMode()
          Get current detector mode.
 NeuriteDetector2DAlgos.DetectorExternalEnergy getEnergy()
          Get external snake energy label.
 Vector<String> getImageFiles()
          Get vector of all image files included in the experiment folder for detection.
 de.unihalle.informatik.Alida.datatypes.ALDDirectoryString getInputDir()
          Get directory of input images.
 int getMaxFragmentDistance()
          Get maximum neuron fragment distance in pixel.
 int getMaxIterations()
          Get maximum number of iterations to stop detection.
 int getMaxSpineLength()
          Get maximum length of a spine (filopodia-like protrusion) in pixel.
 double getMotionFraction()
          Get minimum fraction of point motion to stop detection.
 Color getNeuriteColor()
          Get neurite region color (RGB) for result image.
 int getNeuriteMaskSize()
          Get neurite mask size in pixel.
 Integer[] getNeuronChannles()
          Get neuron channels, used for detection.
 double getNiblackConstant()
          Get niblack constant.
 Integer getNucleiChannel()
          Get image channel of nuclei.
 double getNucleusRatio()
          Get ratio of nucleus pixels which should be included in an intact neuron region
 int getNucleusSize()
          Get minimum nucleus size of nuclei regions
 String getOutputDir()
          Get directory of output results.
 org.rosuda.JRI.Rengine getREngine()
          Get JRI R engine to run R as a single thread.
 int getResampleConstant()
          Get snake point resampling constant.
 MTBTableModel getResultTable()
          Get the result table of the detected neurites.
 double getStepSize()
          Get step size of snake movement.
protected  void operate()
           
 void validateCustom()
          Custom validation of some input parameters.
 
Methods inherited from class de.unihalle.informatik.MiToBo.core.operator.MTBOperator
readResolve
 
Methods inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
addOperatorExecutionProgressEventListener, fieldContained, fireOperatorExecutionProgressEvent, getALDPortHashAccessKey, getConstructionMode, getHidingMode, getInInoutNames, getInInoutNames, getInNames, getInOutNames, getMissingRequiredInputs, getName, getNumParameters, getOutInoutNames, getOutNames, getParameter, getParameterDescriptor, getParameterNames, getSupplementalNames, getVerbose, getVersion, handleOperatorExecutionProgressEvent, isConfigured, print, print, print, printInterface, printInterface, readHistory, reinitializeParameterDescriptors, removeOperatorExecutionProgressEventListener, runOp, runOp, runOp, setConstructionMode, setHidingMode, setName, setParameter, setVerbose, toStringVerbose, unconfiguredItems, validate, validateGeneric, writeHistory, writeHistory, writeHistory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

neuriteColor

@Parameter(label="Neurite Color",
           supplemental=true,
           direction=IN,
           description="Color of neurite regions in result image.")
protected Color neuriteColor
Constructor Detail

NeuriteDetector2D

public NeuriteDetector2D()
                  throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Standard constructor.

Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException

NeuriteDetector2D

public NeuriteDetector2D(String _inputDir,
                         Integer _nucleiChannel,
                         int _nucleusSize,
                         double _nucleusRation,
                         Integer[] _neuronChannels,
                         double _niblackConstant,
                         int _maxFragmentDistance,
                         NeuriteDetector2D.NeuriteDetector2DMode _detectorMode,
                         NeuriteDetector2DAlgos.DetectorExternalEnergy _energy,
                         double _alpha,
                         double _beta,
                         double _stepSize,
                         double _motionFraction,
                         int _maxIterations,
                         int _resampleConstant,
                         int _maxSpineLength,
                         int _neuriteMaskSize,
                         Color _neuriteColor,
                         Boolean _verbose)
                  throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Constructor

Parameters:
_inputDir - input directory with multichannel fluorescence images
_nucleiChannel - channel number including nuclei image
_nucleusSize - minimum size of nucleus region
_nucleusRation - ratio of nucleus pixels which should be included in an intact neuron region
_neuronChannels - channel numbers including neuron stains for detection
_niblackConstant - constant for niblack thresholding
_maxFragmentDistance - maximum distance to connect a fragment to the neuron, in pixel
_detectorMode - mode of neurite detection
_energy - label of available external energies for detection using snakes
_alpha - weighting factor for snake length term
_beta - weighting factor for snake curvature term
_stepSize - step size gamma to move snake in a optimization step
_motionFraction - minimum fraction of not moving points to stop optimization
_maxIterations - maximum iteration to stop optimization
_resampleConstant - constant for resampling snake control points
_maxSpineLength - maximum length of a branch to define it as spine, in pixel
_neuriteMaskSize - mask size of average neurite width, in pixel
_neuriteColor - color for neurite regions in result image
_verbose - flag for standard console outputs
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Method Detail

validateCustom

public void validateCustom()
                    throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Custom validation of some input parameters.

Overrides:
validateCustom in class de.unihalle.informatik.Alida.operator.ALDOperator
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException

getInputDir

public de.unihalle.informatik.Alida.datatypes.ALDDirectoryString getInputDir()
Get directory of input images.


getNucleiChannel

public Integer getNucleiChannel()
Get image channel of nuclei.


getNucleusSize

public int getNucleusSize()
Get minimum nucleus size of nuclei regions


getNucleusRatio

public double getNucleusRatio()
Get ratio of nucleus pixels which should be included in an intact neuron region


getNeuronChannles

public Integer[] getNeuronChannles()
Get neuron channels, used for detection.


getMaxSpineLength

public int getMaxSpineLength()
Get maximum length of a spine (filopodia-like protrusion) in pixel.


getNeuriteMaskSize

public int getNeuriteMaskSize()
Get neurite mask size in pixel. This value defines the maximum average width of a neurite.


getMaxFragmentDistance

public int getMaxFragmentDistance()
Get maximum neuron fragment distance in pixel.


getNiblackConstant

public double getNiblackConstant()
Get niblack constant.


getDetectorMode

public NeuriteDetector2D.NeuriteDetector2DMode getDetectorMode()
Get current detector mode.


getEnergy

public NeuriteDetector2DAlgos.DetectorExternalEnergy getEnergy()
Get external snake energy label.


getAlpha

public double getAlpha()
Get snake length term weight alpha.


getBeta

public double getBeta()
Get snake curvature term weight beta.


getStepSize

public double getStepSize()
Get step size of snake movement.


getResampleConstant

public int getResampleConstant()
Get snake point resampling constant.


getMotionFraction

public double getMotionFraction()
Get minimum fraction of point motion to stop detection.


getMaxIterations

public int getMaxIterations()
Get maximum number of iterations to stop detection.


getNeuriteColor

public Color getNeuriteColor()
Get neurite region color (RGB) for result image.


getDetectedNeurites

public Vector<MTBNeurite2DSet> getDetectedNeurites()
Get vector of detected neurite sets for each image.

Returns:
Vector of neurite sets.

getResultTable

public MTBTableModel getResultTable()
Get the result table of the detected neurites.

Returns:
Result table.

getImageFiles

public Vector<String> getImageFiles()
Get vector of all image files included in the experiment folder for detection.

Returns:
Input images.

getAnalyzedImages

public Vector<String> getAnalyzedImages()
Get vector of analyzed images.

Returns:
Analyzed images.

getREngine

public org.rosuda.JRI.Rengine getREngine()
Get JRI R engine to run R as a single thread.


getOutputDir

public String getOutputDir()
Get directory of output results.


operate

protected void operate()
                throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException,
                       de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
Specified by:
operate in class de.unihalle.informatik.Alida.operator.ALDOperator
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException


Copyright © 2010–2015 Martin Luther University Halle-Wittenberg. All rights reserved.