de.unihalle.informatik.MiToBo.apps.neurons2D
Class NeuronAnalyzer2D

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.neurons2D.NeuronAnalyzer2D
All Implemented Interfaces:
de.unihalle.informatik.Alida.datatypes.ALDConfigurationValidator

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

 
 The Neuron Analyzer 2D application offers advanced functionality to analyze
 2D fluorescence microscope images of neurons.
  
 Features:
 - neuron boundary detection based on active contours
 - identification of structural neuron parts, like soma, neurites,
   growth cones
 - morphology analysis, e.g., neurite length, average neurite width, number
   of branch and end points, growth cone size and shape roundness, ...
 - extraction of molecular profiles from the given molecules, like labeled
   proteins, along the neurites from soma to growth cones
 - detection of molecular particles, for example FISH data,
   along the neurites from soma to growth cones
 - intermediate and final results are automatically saved
 - tabular presentation of result data
 
 

Author:
Danny Misiak
See Also:
NeuriteDetector2D, NeuriteMolProfExtractor2D, NeuriteParticleDetector2D

Nested Class Summary
 
Nested classes/interfaces inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.operator.ALDOperator.HidingMode
 
Field Summary
(package private) static de.unihalle.informatik.Alida.datatypes.ALDDirectoryString currentInput
          Get initial directory from environment configuration.
private  MTBTableModel detectionResultTable
           
protected  java.lang.Boolean extractParticles
           
protected  java.lang.Boolean extractProfiles
           
private  java.lang.Integer[] moleculeChannels
           
private  java.lang.String[] molecules
           
private  NeuriteDetector2D neuriteDetector
          Define analyzer parameters.
private  java.lang.String outpath
          Directory of output results.
private  NeuriteParticleDetector2D particleDetector
           
private  org.rosuda.JRI.Rengine rEngine
          JRI R engine to run R as a single thread.
 
Fields inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
completeDAG, name, portHashAccess, verbose, versionProvider
 
Constructor Summary
NeuronAnalyzer2D()
          Standard constructor.
NeuronAnalyzer2D(NeuriteDetector2D _neuriteDetector, java.lang.Boolean _extractProfiles, java.lang.String[] _molecules, java.lang.Integer[] _moleculeChannels, java.lang.Boolean _extractParticles, NeuriteParticleDetector2D _particleDetector, java.lang.Boolean _verbose)
          Constructor.
 
Method Summary
private  boolean callNeuriteSrcipt(org.rosuda.JRI.Rengine re, java.lang.String sourceFile, java.lang.String[] scriptArgs)
          Call a specified R script for neurite calculations.
private  void extractMolProf(MTBImage moleculeImage, MTBNeurite2DSet neuriteSet, java.lang.String imagePath, java.lang.String outPath)
          Extraction of molecular profiles along the detected neurites.
private  MTBRegion2DSet extractParticles(MTBImage particleImage, MTBNeurite2DSet neuriteSet)
          Extraction of molecular particles along the detected neurites.
 MTBTableModel getDetectionResultTable()
          Get the result table of the detected neurites.
 java.lang.Integer[] getMoleculeChannles()
          Get molecule channels, used for molecular profile extraction.
 java.lang.String[] getMolecules()
          Get names of molecules for each image channel.
 NeuriteDetector2D getNeuriteDetector()
          Get current neurite detector.
private  void init()
          Initialization method.
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
deserializeFromXmlFile, fieldContained, getALDPortHashAccessKey, getConstructionMode, getInInoutNames, getInInoutNames, getInNames, getInOutNames, getMissingRequiredInputs, getName, getNumParameters, getOutInoutNames, getOutNames, getParameter, getParameterDescriptor, getParameterNames, getSupplementalNames, getVerbose, getVersion, isConfigured, parametersToXmlObject, print, print, print, printInterface, printInterface, readHistory, reinitializeParameterDescriptors, runOp, runOp, runOp, serializeToXmlFile, setConstructionMode, setName, setParameter, setParametersFromXml, setParametersFromXml, setVerbose, toStringVerbose, unconfiguredItems, validate, validateGeneric, writeHistory, writeHistory, writeHistory, writeParametersToXml
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

currentInput

static de.unihalle.informatik.Alida.datatypes.ALDDirectoryString currentInput
Get initial directory from environment configuration.


detectionResultTable

@Parameter(label="Detection Result Table",
           direction=OUT,
           required=true,
           description="Table of detection results.")
private transient MTBTableModel detectionResultTable

extractParticles

@Parameter(label="Extract Particles",
           direction=IN,
           required=true,
           description="Flag to use molecular particle extraction.",
           mode=STANDARD,
           dataIOOrder=4)
protected java.lang.Boolean extractParticles

extractProfiles

@Parameter(label="Extract Profiles",
           direction=IN,
           required=true,
           description="Flag to use molecular profile extraction.",
           mode=STANDARD,
           dataIOOrder=1)
protected java.lang.Boolean extractProfiles

moleculeChannels

@Parameter(label="Profile Molecule Channels",
           direction=IN,
           required=true,
           description="Channels of molecules for profile extraction.",
           mode=STANDARD,
           dataIOOrder=3)
private java.lang.Integer[] moleculeChannels

molecules

@Parameter(label="Define Molecules",
           direction=IN,
           required=true,
           description="Names of molecules stained in each image channel.",
           mode=STANDARD,
           dataIOOrder=2)
private java.lang.String[] molecules

neuriteDetector

@Parameter(label="Neurite Detector",
           direction=IN,
           required=true,
           description="Detector to use for neurite detection.",
           mode=STANDARD,
           dataIOOrder=0)
private NeuriteDetector2D neuriteDetector
Define analyzer parameters.


outpath

private transient java.lang.String outpath
Directory of output results.


particleDetector

@Parameter(label="Particle Detector",
           direction=IN,
           required=true,
           description="Detector to use for  molecular particle detection.",
           mode=STANDARD,
           dataIOOrder=5)
private NeuriteParticleDetector2D particleDetector

rEngine

private transient org.rosuda.JRI.Rengine rEngine
JRI R engine to run R as a single thread.

Constructor Detail

NeuronAnalyzer2D

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

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

NeuronAnalyzer2D

public NeuronAnalyzer2D(NeuriteDetector2D _neuriteDetector,
                        java.lang.Boolean _extractProfiles,
                        java.lang.String[] _molecules,
                        java.lang.Integer[] _moleculeChannels,
                        java.lang.Boolean _extractParticles,
                        NeuriteParticleDetector2D _particleDetector,
                        java.lang.Boolean _verbose)
                 throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Constructor.

Parameters:
_detector - detector to use for neurite detection
_extractProfiles - flag to use molecular profile extraction
_molecules - names of molecules to analyze for each image channel
_moleculeChannels - channles including molecule stains
_extractParticles - flag to use molecular particle extraction
_particleDetector - detector for molecular particles
_verbose - flag for standard console outputs
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Method Detail

callNeuriteSrcipt

private boolean callNeuriteSrcipt(org.rosuda.JRI.Rengine re,
                                  java.lang.String sourceFile,
                                  java.lang.String[] scriptArgs)
Call a specified R script for neurite calculations.

Parameters:
re - current R engine (thread)
sourceFile - neurite calculation R script file
scriptArg - input directory path for the R script and other arguments
Returns:
True if R call is done successfully.

extractMolProf

private void extractMolProf(MTBImage moleculeImage,
                            MTBNeurite2DSet neuriteSet,
                            java.lang.String imagePath,
                            java.lang.String outPath)
Extraction of molecular profiles along the detected neurites.


extractParticles

private MTBRegion2DSet extractParticles(MTBImage particleImage,
                                        MTBNeurite2DSet neuriteSet)
Extraction of molecular particles along the detected neurites.


getDetectionResultTable

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


getMoleculeChannles

public java.lang.Integer[] getMoleculeChannles()
Get molecule channels, used for molecular profile extraction.


getMolecules

public java.lang.String[] getMolecules()
Get names of molecules for each image channel.


getNeuriteDetector

public NeuriteDetector2D getNeuriteDetector()
Get current neurite detector.


init

private void init()
Initialization method.


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

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