Changeset 7891


Ignore:
Timestamp:
02/17/12 20:33:24 (8 years ago)
Author:
aivar
Message:

SLIM Plugin: Fit start and stop and the new estimate start got moved from the curve fitter to curve fit data.

Location:
trunk/projects/curve-fitter/src/main/java/loci/curvefitter
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/AbstractCurveFitter.java

    r7841 r7891  
    126126 
    127127    @Override 
    128     public int fitData(ICurveFitData[] data) { 
    129         int nData = data[0].getYCount().length; 
    130         return fitData(data, 0, nData - 1); 
    131     } 
    132  
    133     @Override 
    134     public abstract int fitData(ICurveFitData[] data, int start, int stop); 
     128    public abstract int fitData(ICurveFitData[] data); 
    135129} 
    136130 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/AkutanCurveFitter.java

    r7668 r7891  
    5555 
    5656    @Override 
    57     public int fitData(ICurveFitData[] dataArray, int start, int stop) { 
     57    public int fitData(ICurveFitData[] dataArray) { 
     58        int start = dataArray[0].getTransFitStartIndex(); 
     59        int stop = dataArray[0].getTransEndIndex(); 
     60         
    5861        int length = stop - start + 1; 
    5962        DoubleMatrix1D x = new DenseDoubleMatrix1D(length); 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/CurveFitData.java

    r7873 r7891  
    4545 */ 
    4646public class CurveFitData implements ICurveFitData { 
    47     int m_channel; 
    48     int m_x; 
    49     int m_y; 
    50     int m_pixels; 
    51     double[] m_params; 
    52     double[] m_yCount; 
    53     double[] m_sig; 
    54     double[] m_yFitted; 
    55     double m_chiSquareTarget; 
    56     double m_chiSquareDelta; 
    57     double m_chiSquare; 
    58     Object m_userData; 
     47    int _channel; 
     48    int _x; 
     49    int _y; 
     50    int _pixels; 
     51    double[] _params; 
     52    double[] _yCount; 
     53    double[] _sig; 
     54    double[] _yFitted; 
     55    int _transStartIndex; 
     56    int _transFitStartIndex; 
     57    Integer _transEstimateStartIndex = null; 
     58    int _transEndIndex; 
     59    boolean _ignorePromptForIntegralEstimate = false; 
     60    double _chiSquareTarget; 
     61    double _chiSquareDelta; 
     62    double _chiSquare; 
     63    Object _userData; 
    5964 
    6065    @Override 
    6166    public int getChannel() { 
    62         return m_channel; 
     67        return _channel; 
    6368    } 
    6469 
    6570    @Override 
    6671    public void setChannel(int channel) { 
    67         m_channel = channel; 
     72        _channel = channel; 
    6873    } 
    6974 
    7075    @Override 
    7176    public int getX() { 
    72         return m_x; 
     77        return _x; 
    7378    } 
    7479 
    7580    @Override 
    7681    public void setX(int x) { 
    77         m_x = x; 
     82        _x = x; 
    7883    } 
    7984 
    8085    @Override 
    8186    public int getY() { 
    82         return m_y; 
     87        return _y; 
    8388    } 
    8489 
    8590    @Override 
    8691    public void setY(int y) { 
    87         m_y = y; 
     92        _y = y; 
    8893    } 
    8994 
    9095    @Override 
    9196    public int getPixels() { 
    92         return m_pixels; 
     97        return _pixels; 
    9398    } 
    9499 
    95100    @Override 
    96101    public void setPixels(int pixels) { 
    97         m_pixels = pixels; 
     102        _pixels = pixels; 
    98103    } 
    99104 
    100105    @Override 
    101106    public double[] getParams() { 
    102         return m_params; 
     107        return _params; 
    103108    } 
    104109 
    105110    @Override 
    106111    public void setParams(double[] params) { 
    107         m_params = params; 
     112        _params = params; 
    108113    } 
    109114 
    110115    @Override 
    111116    public double[] getYCount() { 
    112         return m_yCount; 
     117        return _yCount; 
    113118    } 
    114119 
    115120    @Override 
    116121    public void setYCount(double yCount[]) { 
    117         m_yCount = yCount; 
     122        _yCount = yCount; 
    118123    } 
    119124 
    120125    @Override 
    121126    public double[] getSig() { 
    122         return m_sig; 
     127        return _sig; 
    123128    } 
    124129 
    125130    @Override 
    126131    public void setSig(double sig[]) { 
    127         m_sig = sig; 
     132        _sig = sig; 
    128133    } 
    129134 
    130135    @Override 
    131136    public double[] getYFitted() { 
    132         return m_yFitted; 
     137        return _yFitted; 
    133138    } 
    134139 
    135140    @Override 
    136141    public void setYFitted(double yFitted[]) { 
    137         m_yFitted = yFitted; 
     142        _yFitted = yFitted; 
     143    } 
     144 
     145    @Override 
     146    public int getTransStartIndex() { 
     147        return _transStartIndex; 
     148    } 
     149     
     150    @Override 
     151    public void setTransStartIndex(int transStartIndex) { 
     152        _transStartIndex = transStartIndex; 
     153    } 
     154     
     155    @Override 
     156    public int getTransFitStartIndex() { 
     157        return _transFitStartIndex; 
     158    } 
     159     
     160    @Override 
     161    public void setTransFitStartIndex(int transFitStartIndex) { 
     162        _transFitStartIndex = transFitStartIndex; 
     163    } 
     164     
     165    @Override 
     166    public int getTransEstimateStartIndex() { 
     167        // if not set, return the regular fit start index 
     168        int index = _transFitStartIndex; 
     169        if (null != _transEstimateStartIndex) { 
     170            index = _transEstimateStartIndex; 
     171        } 
     172        return index; 
     173    } 
     174     
     175    @Override 
     176    public void setTransEstimateStartIndex(int transEstimateStartIndex) { 
     177        _transEstimateStartIndex = transEstimateStartIndex; 
     178    } 
     179     
     180    @Override 
     181    public int getTransEndIndex() { 
     182        return _transEndIndex; 
     183    } 
     184     
     185    @Override 
     186    public void setTransEndIndex(int transEndIndex) { 
     187        _transEndIndex = transEndIndex; 
     188    } 
     189  
     190    @Override 
     191    public boolean getIgnorePromptForIntegralEstimate() { 
     192        return _ignorePromptForIntegralEstimate; 
     193    } 
     194 
     195    @Override 
     196    public void setIgnorePromptForIntegralEstimate(boolean ignore) { 
     197        _ignorePromptForIntegralEstimate = ignore; 
    138198    } 
    139199 
    140200    @Override 
    141201    public double getChiSquareTarget() { 
    142         return m_chiSquareTarget; 
     202        return _chiSquareTarget; 
    143203    } 
    144204 
    145205    @Override 
    146206    public void setChiSquareTarget(double chiSquareTarget) { 
    147         m_chiSquareTarget = chiSquareTarget; 
     207        _chiSquareTarget = chiSquareTarget; 
    148208    } 
    149209     
    150210    @Override 
    151211    public double getChiSquareDelta() { 
    152         return m_chiSquareDelta; 
     212        return _chiSquareDelta; 
    153213    } 
    154214     
    155215    @Override 
    156216    public void setChiSquareDelta(double chiSquareDelta) { 
    157         m_chiSquareDelta = chiSquareDelta; 
     217        _chiSquareDelta = chiSquareDelta; 
    158218    } 
    159219     
    160220    @Override 
    161221    public double getChiSquare() { 
    162         return m_chiSquare; 
     222        return _chiSquare; 
    163223    } 
    164224 
    165225    @Override 
    166226    public void setChiSquare(double chiSquare) { 
    167         m_chiSquare = chiSquare; 
     227        _chiSquare = chiSquare; 
    168228    } 
    169229} 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/GrayCurveFitter.java

    r7874 r7891  
    8282 
    8383    @Override 
    84     public int fitData(ICurveFitData[] dataArray, int start, int stop) { 
     84    public int fitData(ICurveFitData[] dataArray) { 
    8585        CLibrary lib = (CLibrary) Native.loadLibrary("GrayCode", CLibrary.class); 
     86         
     87        int start = dataArray[0].getTransFitStartIndex(); 
     88        int stop = dataArray[0].getTransEndIndex(); 
    8689 
    8790        //TODO ARG since initial x = fit_start * xincr we have to supply the unused portion of y[] before fit_start. 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/GrayNRCurveFitter.java

    r7874 r7891  
    122122 
    123123    @Override 
    124     public int fitData(ICurveFitData[] dataArray, int start, int stop) { 
     124    public int fitData(ICurveFitData[] dataArray) { 
     125        int start = dataArray[0].getTransFitStartIndex(); 
     126        int stop = dataArray[0].getTransEndIndex(); 
    125127        int returnValue = 0; 
    126128        if (null == s_library) { 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/ICurveFitData.java

    r7874 r7891  
    160160 
    161161    /** 
     162     * Gets start index in transient. 
     163     *  
     164     * @return  
     165     */ 
     166    public int getTransStartIndex(); 
     167     
     168    /** 
     169     * Sets start index in transient. 
     170     *  
     171     * @param transStartIndex  
     172     */ 
     173    public void setTransStartIndex(int transStartIndex); 
     174     
     175    /** 
     176     * Gets fitting start index in transient. 
     177     * @return  
     178     */ 
     179    public int getTransFitStartIndex(); 
     180     
     181    /** 
     182     * Sets fitting start index in transient. 
     183     *  
     184     * @param transFitStartIndex  
     185     */ 
     186    public void setTransFitStartIndex(int transFitStartIndex); 
     187     
     188    /** 
     189     * Gets estimate fitting start index in transient. 
     190     *  
     191     * This is a TRI2 compatiblity wrinkle.  The RLD estimate before a LMA is 
     192     * handled oddly. 
     193     *  
     194     * @return  
     195     */ 
     196    public int getTransEstimateStartIndex(); 
     197     
     198    /** 
     199     * Sets estimate fitting start index in transient. 
     200     *  
     201     * This is a TRI2 compatibility wrinkle.  The RLD estimate before a LMA is 
     202     * handled oddly. 
     203     *  
     204     * @param transEstimateStartIndex  
     205     */ 
     206    public void setTransEstimateStartIndex(int transEstimateStartIndex); 
     207     
     208    /** 
     209     * Gets end index in transient. 
     210     *  
     211     * @return  
     212     */ 
     213    public int getTransEndIndex(); 
     214     
     215    /** 
     216     * Sets end index in transient. 
     217     *  
     218     * @param transEndIndex  
     219     */ 
     220    public void setTransEndIndex(int transEndIndex); 
     221 
     222    /** 
     223     * Gets whether to ignore the prompt when using Integral/RLD fitting for an 
     224     * estimate before a LMA fit. 
     225     *  
     226     * This is a TRI2 compatibility wrinkle.  The RLD estimate before a LMA is 
     227     * handled oddly. 
     228     *  
     229     * If never set will return false; 
     230     *  
     231     * @return  
     232     */ 
     233    public boolean getIgnorePromptForIntegralEstimate(); 
     234 
     235 
     236    /** 
     237     * Sets whether to ignore the prompt when using Integral/RLD fitting for an 
     238     * estimate before a LMA fit. 
     239     *  
     240     * This is a TRI2 compatibility wrinkle.  The RLD estimate before a LMA is 
     241     * handled oddly. 
     242     *  
     243     * @param ignore  
     244     */ 
     245    public void setIgnorePromptForIntegralEstimate(boolean ignore); 
     246 
     247    /** 
    162248     * Gets chi square target. 
    163249     *  
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/ICurveFitter.java

    r7874 r7891  
    165165     * @param response array of data 
    166166     */ 
    167     public void setInstrumentResponse(double response[]); 
     167    public void setInstrumentResponse(double response[]);  
    168168 
    169169    /** 
     
    173173     * @return status code 
    174174     */ 
    175     public int fitData(ICurveFitData[] data); 
    176  
    177     /** 
    178      * Do the fit. 
    179      * 
    180      * @param data array of data to fit 
    181      * @param start first index to fit 
    182      * @param stop last index to fit (inclusive) 
    183      * @return status code 
    184      */ 
    185     public int fitData(ICurveFitData[] data, int start, int stop);  
     175    public int fitData(ICurveFitData[] data);  
    186176} 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/JaolhoCurveFitter.java

    r7639 r7891  
    4646 
    4747  @Override 
    48   public int fitData(ICurveFitData[] dataArray, int start, int stop) { 
     48  public int fitData(ICurveFitData[] dataArray) { 
     49    int start = dataArray[0].getTransFitStartIndex(); 
     50    int stop = dataArray[0].getTransEndIndex(); 
    4951    int goodPixels = 0; 
    5052    int badPixels = 0; 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/MarkwardtCurveFitter.java

    r7668 r7891  
    5656 
    5757  @Override 
    58   public int fitData(ICurveFitData[] dataArray, int start, int stop) { 
     58  public int fitData(ICurveFitData[] dataArray) { 
     59    int start = dataArray[0].getTransFitStartIndex(); 
     60    int stop = dataArray[0].getTransEndIndex(); 
    5961    CLibrary lib = (CLibrary) Native.loadLibrary("Markwardt", CLibrary.class); 
    6062 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/SLIMCurveFitter.java

    r7878 r7891  
    186186 
    187187    @Override 
    188     public int fitData(ICurveFitData[] dataArray, int start, int stop) { 
     188    public int fitData(ICurveFitData[] dataArray) { 
    189189        int returnValue = 0; 
    190190        int noise = getNoiseModel().ordinal(); 
     
    265265                        nInstrumentResponse = instrumentResponse.length; 
    266266                    } 
     267                     
     268                    // set start and stop 
     269                    int start = data.getTransFitStartIndex(); 
     270                    if (FitAlgorithm.SLIMCURVE_RLD_LMA.equals(m_fitAlgorithm)) { 
     271                        start = data.getTransEstimateStartIndex(); 
     272                    } 
     273                    int stop = data.getTransEndIndex(); 
    267274                     
    268275                    returnValue = s_library.RLD_fit( 
     
    293300                        data.getParams()[3] = tau.getValue(); 
    294301                    } 
     302                    System.out.println("after RLD A " + a.getValue() + " T " + tau.getValue() + " Z " + z.getValue()); 
    295303                } 
    296304            } 
     
    303311                        nInstrumentResponse = m_instrumentResponse.length; 
    304312                    } 
     313                     
     314                    // set start and stop 
     315                    int start = data.getTransFitStartIndex(); 
     316                    int stop = data.getTransEndIndex();    
     317                     
     318                    System.out.println("zInc " + m_xInc + " ndata " + data.getYCount() + " fit start " + start + " fit end " + stop); 
     319                    System.out.println("noise is " + noise); 
    305320                    returnValue = s_library.LMA_fit( 
    306321                            m_xInc, 
     
    317332                            data.getYFitted(), 
    318333                            chiSquare, 
    319                             data.getChiSquareTarget(), 
    320                             data.getChiSquareDelta() 
     334                            40.5, // data.getChiSquareTarget(), 
     335                            0.0099999998 // data.getChiSquareDelta() 
    321336                            ); 
     337                    System.out.println("chisq " + data.getParams()[0] + " z " + data.getParams()[1] + " a " + data.getParams()[2] + " t " + data.getParams()[3]); 
    322338                } 
    323339            } 
     
    350366                    } 
    351367 
     368                    // set start and stop 
     369                    int start = data.getTransFitStartIndex(); 
     370                    if (FitAlgorithm.SLIMCURVE_RLD_LMA.equals(m_fitAlgorithm)) { 
     371                        start = data.getTransEstimateStartIndex(); 
     372                    } 
     373                    int stop = data.getTransEndIndex(); 
     374                     
    352375                    returnValue = RLD_fit(m_xInc, 
    353376                            data.getYCount(), 
     
    387410                        nInstrumentResponse = m_instrumentResponse.length; 
    388411                    } 
     412                     
     413                    // set start and stop 
     414                    int start = data.getTransFitStartIndex(); 
     415                    int stop = data.getTransEndIndex(); 
     416                     
    389417                    returnValue = LMA_fit( 
    390418                            m_xInc, 
Note: See TracChangeset for help on using the changeset viewer.