Class NeuriteGrowthData

java.lang.Object
sc.fiji.snt.analysis.growth.NeuriteGrowthData

public class NeuriteGrowthData extends Object
Data container for growth analysis results of a single neurite over time.

This class stores all analysis results for an individual neurite, including time series data, linear growth statistics, detected growth phases, and retraction/elongation events. It provides convenient access methods and derived statistics for measurements of neurite growth behavior.

Key Data Categories:

  • Time Series: Raw measurements at each time point
  • Linear Analysis: Overall growth rate, R², and regression statistics
  • Phase Analysis: Detected growth phases with classifications
  • Event Analysis: Retraction and elongation events with statistics
  • Derived Metrics: Net growth

Usage Example:


 // Access from analysis results
 GrowthAnalysisResults results = analyzer.analyze(paths, frameInterval, "hours");
 NeuriteGrowthData neurite1 = results.getNeuriteGrowthData("neurite#1");

 // Basic growth metrics
 System.out.printf("Growth rate: %.2f μm/h (R² = %.3f)\n",
     neurite1.getLinearGrowthRate(), neurite1.getLinearRSquared());

 // Phase analysis
 List<GrowthPhase> phases = neurite1.getGrowthPhases();
 System.out.printf("Detected %d growth phases:\n", phases.size());
 for (GrowthPhase phase : phases) {
     System.out.printf("  %s: %.1f h duration, %.2f μm/h rate\n",
         phase.type, phase.duration, phase.averageRate);
 }

 // Event analysis
 if (neurite1.hasRetractionEvents()) {
     System.out.printf("Retraction events: %d (total: %.1f μm)\n",
         neurite1.getRetractionEvents().size(), neurite1.getTotalRetractionLength());
 }
 
 }
See Also:
  • Constructor Details

    • NeuriteGrowthData

      public NeuriteGrowthData(String neuriteId)
      Creates a new NeuriteGrowthData container for the specified neurite.
      Parameters:
      neuriteId - Unique identifier for this neurite
  • Method Details

    • getNeuriteId

      public String getNeuriteId()
      Gets the unique identifier for this neurite.
      Returns:
      the neurite identifier
    • getTimePoints

      public List<GrowthAnalyzer.TimePoint> getTimePoints()
      Gets the time series data points for this neurite.
      Returns:
      Unmodifiable list of time points
    • getGrowthPhases

      public List<GrowthAnalyzer.GrowthPhase> getGrowthPhases()
      Gets the detected growth phases for this neurite.
      Returns:
      Unmodifiable list of growth phases
    • getRetractionEvents

      public List<GrowthAnalyzer.RetractionEvent> getRetractionEvents()
      Gets the detected retraction events for this neurite.
      Returns:
      Unmodifiable list of retraction events
    • getElongationEvents

      public List<GrowthAnalyzer.ElongationEvent> getElongationEvents()
      Gets the detected elongation events for this neurite.
      Returns:
      Unmodifiable list of elongation events
    • getLinearGrowthRate

      public double getLinearGrowthRate()
      Gets the linear growth rate from regression analysis.
      Returns:
      Growth rate in length units per time unit
    • getLinearRSquared

      public double getLinearRSquared()
      Gets the R-squared value from linear regression.
      Returns:
      R-squared value (0-1, higher indicates better linear fit)
    • getLinearIntercept

      public double getLinearIntercept()
      Gets the y-intercept from linear regression.
      Returns:
      Y-intercept in length units
    • getTotalGrowth

      public double getTotalGrowth()
      Gets the total growth (final length - initial length).
      Returns:
      Total growth in length units
    • getAverageGrowthRate

      public double getAverageGrowthRate()
      Gets the average growth rate (total growth / total time).
      Returns:
      Average growth rate in length units per time unit
    • getTotalRetractionLength

      public double getTotalRetractionLength()
      Gets the total length lost to retraction events.
      Returns:
      Total retraction length in length units
    • getAverageRetractionRate

      public double getAverageRetractionRate()
      Gets the average rate of retraction events.
      Returns:
      Average retraction rate in length units per time unit
    • getTotalElongationLength

      public double getTotalElongationLength()
      Gets the total length gained from elongation events.
      Returns:
      Total elongation length in length units
    • getAverageElongationRate

      public double getAverageElongationRate()
      Gets the average rate of elongation events.
      Returns:
      Average elongation rate in length units per time unit
    • getNetGrowth

      public double getNetGrowth()
      Gets the net growth accounting for retractions.
      Returns:
      Net growth (total growth - total retraction length)
    • getInitialLength

      public double getInitialLength()
      Gets the initial length of the neurite.
      Returns:
      Initial length, i.e., at the first time point
    • getFinalLength

      public double getFinalLength()
      Gets the final length of the neurite.
      Returns:
      Final length, i.e., at the last time point
    • getTotalDuration

      public double getTotalDuration(double frameInterval)
      Gets the total duration of the time series.
      Parameters:
      frameInterval - Time interval between frames
      Returns:
      Total duration in time units
    • getTimePointCount

      public int getTimePointCount()
      Gets the number of unique time points in the series. This counts distinct frame numbers, so duplicate time points for the same frame are counted only once.
      Returns:
      Number of unique time points
    • getTimePointEntryCount

      public int getTimePointEntryCount()
      Gets the total number of time point entries in the series (including duplicates). This returns the raw size of the time points list.
      Returns:
      Total number of time point entries
    • getPhaseDuration

      public double getPhaseDuration(GrowthAnalyzer.GrowthPhaseType phaseType)
      Gets the total duration of phases of a specific type.
      Parameters:
      phaseType - The growth phase type
      Returns:
      Total duration of phases of the specified type
    • getPhasePercentage

      public double getPhasePercentage(GrowthAnalyzer.GrowthPhaseType phaseType, double frameInterval)
      Gets the percentage of time spent in a specific phase type.
      Parameters:
      phaseType - The growth phase type
      frameInterval - Time interval between frames
      Returns:
      Percentage of time in the specified phase type (0-100)
    • getLongestPhase

      Gets the longest phase of a specific type.
      Parameters:
      phaseType - The growth phase type
      Returns:
      Optional containing the longest phase of the specified type
    • hasPhaseType

      public boolean hasPhaseType(GrowthAnalyzer.GrowthPhaseType phaseType)
      Checks if this neurite has any phases of the specified type.
      Parameters:
      phaseType - The growth phase type to check
      Returns:
      True if at least one phase of the specified type exists
    • hasRetractionEvents

      public boolean hasRetractionEvents()
      Checks if this neurite has retraction events.
      Returns:
      True if any retraction events were detected
    • hasElongationEvents

      public boolean hasElongationEvents()
      Checks if this neurite has elongation events.
      Returns:
      True if any elongation events were detected
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object