Changeset 7929


Ignore:
Timestamp:
03/23/12 16:16:25 (7 years ago)
Author:
aivar
Message:

SLIM Plugin: Transient cursors not applied properly. Part of Ticket #678.

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

Legend:

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

    r7891 r7929  
    5656    @Override 
    5757    public int fitData(ICurveFitData[] dataArray) { 
    58         int start = dataArray[0].getTransFitStartIndex(); 
     58        int start = dataArray[0].getDataStartIndex(); 
    5959        int stop = dataArray[0].getTransEndIndex(); 
    6060         
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/CurveFitData.java

    r7891 r7929  
    117117        return _yCount; 
    118118    } 
     119     
     120    @Override 
     121    public double[] getAdjustedYCount() { 
     122        int size = _transEndIndex - _transStartIndex; 
     123        double[] adjusted = new double[size]; 
     124        for (int i = 0; i < size; ++i) { 
     125            adjusted[i] = _yCount[i + _transStartIndex]; 
     126        } 
     127        return adjusted; 
     128    } 
    119129 
    120130    @Override 
     
    154164     
    155165    @Override 
    156     public int getTransFitStartIndex() { 
     166    public int getDataStartIndex() { 
    157167        return _transFitStartIndex; 
    158168    } 
    159169     
    160170    @Override 
    161     public void setTransFitStartIndex(int transFitStartIndex) { 
     171    public int getAdjustedDataStartIndex() { 
     172        return _transFitStartIndex - _transStartIndex; 
     173    } 
     174     
     175    @Override 
     176    public void setDataStartIndex(int transFitStartIndex) { 
    162177        _transFitStartIndex = transFitStartIndex; 
    163178    } 
     
    184199     
    185200    @Override 
     201    public int getAdjustedTransEndIndex() { 
     202        return _transEndIndex - _transStartIndex; 
     203    } 
     204     
     205    @Override 
    186206    public void setTransEndIndex(int transEndIndex) { 
    187207        _transEndIndex = transEndIndex; 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/GrayCurveFitter.java

    r7891 r7929  
    8585        CLibrary lib = (CLibrary) Native.loadLibrary("GrayCode", CLibrary.class); 
    8686         
    87         int start = dataArray[0].getTransFitStartIndex(); 
     87        int start = dataArray[0].getDataStartIndex(); 
    8888        int stop = dataArray[0].getTransEndIndex(); 
    8989 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/GrayNRCurveFitter.java

    r7891 r7929  
    123123    @Override 
    124124    public int fitData(ICurveFitData[] dataArray) { 
    125         int start = dataArray[0].getTransFitStartIndex(); 
     125        int start = dataArray[0].getDataStartIndex(); 
    126126        int stop = dataArray[0].getTransEndIndex(); 
    127127        int returnValue = 0; 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/ICurveFitData.java

    r7891 r7929  
    125125 
    126126    /** 
     127     * Get input data for the fit, starting with start index.  Input to fit only. 
     128     *  
     129     * @return array of data 
     130     */ 
     131    public double[] getAdjustedYCount(); 
     132 
     133    /** 
    127134     * Set input data for the fit.  Input to fit only. 
    128135     * 
     
    175182    /** 
    176183     * Gets fitting start index in transient. 
    177      * @return  
    178      */ 
    179     public int getTransFitStartIndex(); 
     184     *  
     185     * @return  
     186     */ 
     187    public int getDataStartIndex(); 
     188 
     189    /** 
     190     * Gets fitting start index adjusted for transient start. 
     191     *  
     192     * @return  
     193     */ 
     194    public int getAdjustedDataStartIndex(); 
    180195     
    181196    /** 
    182197     * Sets fitting start index in transient. 
    183198     *  
    184      * @param transFitStartIndex  
    185      */ 
    186     public void setTransFitStartIndex(int transFitStartIndex); 
     199     * @param dataStartIndex  
     200     */ 
     201    public void setDataStartIndex(int dataStartIndex); 
    187202     
    188203    /** 
     
    194209     * @return  
    195210     */ 
     211    @Deprecated 
    196212    public int getTransEstimateStartIndex(); 
    197213     
     
    204220     * @param transEstimateStartIndex  
    205221     */ 
     222    @Deprecated 
    206223    public void setTransEstimateStartIndex(int transEstimateStartIndex); 
    207224     
     
    212229     */ 
    213230    public int getTransEndIndex(); 
     231 
     232    /** 
     233     * Gets end index in transient adjusted for transient start. 
     234     *  
     235     * @return  
     236     */ 
     237    public int getAdjustedTransEndIndex(); 
    214238     
    215239    /** 
     
    231255     * @return  
    232256     */ 
     257    @Deprecated 
    233258    public boolean getIgnorePromptForIntegralEstimate(); 
    234259 
     
    243268     * @param ignore  
    244269     */ 
     270    @Deprecated 
    245271    public void setIgnorePromptForIntegralEstimate(boolean ignore); 
    246272 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/JaolhoCurveFitter.java

    r7891 r7929  
    4747  @Override 
    4848  public int fitData(ICurveFitData[] dataArray) { 
    49     int start = dataArray[0].getTransFitStartIndex(); 
     49    int start = dataArray[0].getDataStartIndex(); 
    5050    int stop = dataArray[0].getTransEndIndex(); 
    5151    int goodPixels = 0; 
  • trunk/projects/curve-fitter/src/main/java/loci/curvefitter/MarkwardtCurveFitter.java

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

    r7921 r7929  
    8484                           ); 
    8585 
    86         //TODO I'm omitted noise, see above and restrainType and fitType, for now 
    8786        //TODO also covar, alpha, errAxes and chiSqPercent 
    8887        //TODO I'm omitting residuals[] aren't residuals = y 0 yFitted??? is there some weighting I'm missing that is time-consuming/impossible to recreate? 
     
    127126 
    128127 
    129     //TODO I'm omitting noise, s/b Poisson or Gaussian with lots of photons??? 
    130128   //TODO I'm omitting residuals, see below also, same thing... 
    131129 
     
    245243            } 
    246244        } 
    247         
     245         
    248246        if (s_libraryOnPath) { 
    249247            // JNA version 
     
    270268                     
    271269                    // set start and stop 
    272                     int start = data.getTransFitStartIndex(); 
    273                     System.out.println("trans fit start index is " + start); 
     270                    int start = data.getAdjustedDataStartIndex(); 
    274271                    if (FitAlgorithm.SLIMCURVE_RLD_LMA.equals(m_fitAlgorithm)) { 
    275272                        start = data.getTransEstimateStartIndex(); 
    276                         System.out.println("trans estimate start index is " + start); 
    277                     } 
    278                     int stop = data.getTransEndIndex(); 
     273                    } 
     274                    int stop = data.getAdjustedTransEndIndex(); 
    279275                     
    280276                    int chiSquareAdjust = stop - start - numParamFree; 
     
    282278                    returnValue = s_library.RLD_fit( 
    283279                            m_xInc, 
    284                             data.getYCount(), 
     280                            data.getAdjustedYCount(), 
    285281                            start, 
    286282                            stop, 
     
    307303                        data.getParams()[3] = tau.getValue(); 
    308304                    } 
    309                     System.out.println("after RLD A " + a.getValue() + " T " + tau.getValue() + " Z " + z.getValue()); 
    310305                } 
    311306            } 
     
    320315                     
    321316                    // set start and stop 
    322                     int start = data.getTransFitStartIndex(); 
    323                     int stop = data.getTransEndIndex(); 
     317                    int start = data.getAdjustedDataStartIndex(); 
     318                    int stop  = data.getAdjustedTransEndIndex(); 
    324319                     
    325320                    int chiSquareAdjust = stop - start - numParamFree; 
    326321                     
    327                     System.out.println("xInc " + m_xInc); 
    328                     System.out.println("yCount length " + data.getYCount().length + " yCount " + data.getYCount()[0] + " " + data.getYCount()[1] + " " + data.getYCount()[2] + " " + data.getYCount()[3] ); 
    329                     System.out.println("start " + start + " stop " + stop); 
    330                     System.out.println("m_instrumentResponse is " + m_instrumentResponse); 
    331                     System.out.println("nInstrumentResponse is " + nInstrumentResponse); 
    332                     System.out.println("noise is " + noise); 
    333                     if (null == data.getSig()) { 
    334                         System.out.println("sig is null"); 
    335                     } 
    336                     else { 
    337                         System.out.println("length of sig is " + data.getSig().length); 
    338                     } 
    339                     System.out.println("params " + data.getParams()[0] + " " + data.getParams()[1] + " " + data.getParams()[2]); 
    340                     System.out.println("m_free " + m_free[0] + " " + m_free[1] + " " + m_free[2]); 
    341                     System.out.println("data.getParams().length - 1 is " + (data.getParams().length - 1)); 
    342  
    343                     System.out.println("chisquaretarget is " + data.getChiSquareTarget() * chiSquareAdjust + " delta " + data.getChiSquareDelta()); 
    344322                    returnValue = s_library.LMA_fit( 
    345323                            m_xInc, 
    346                             data.getYCount(), 
     324                            data.getAdjustedYCount(), 
    347325                            start, 
    348326                            stop, 
     
    357335                            chiSquare, 
    358336                            data.getChiSquareTarget() * chiSquareAdjust, 
    359                             0.0099999998 //data.getChiSquareDelta() 
     337                            data.getChiSquareDelta() 
    360338                            ); 
    361                     //data.getParams()[0]; //TODO ARG TRI2 don't make it reduced chisq /= chiSquareAdjust; 
    362                     System.out.println("chiSqaure array is " + chiSquare.getValue() + " data version is " + data.getParams()[0]); 
    363                     System.out.println("chisq " + data.getParams()[0] + " z " + data.getParams()[1] + " a " + data.getParams()[2] + " t " + data.getParams()[3]); 
    364339                } 
    365340            } 
     
    393368 
    394369                    // set start and stop 
    395                     int start = data.getTransFitStartIndex(); 
     370                    int start = data.getAdjustedDataStartIndex(); 
    396371                    if (FitAlgorithm.SLIMCURVE_RLD_LMA.equals(m_fitAlgorithm)) { 
    397372                        start = data.getTransEstimateStartIndex(); 
    398373                    } 
    399                     int stop = data.getTransEndIndex(); 
     374                    int stop = data.getAdjustedTransEndIndex(); 
    400375                     
    401376                    int chiSquareAdjust = stop - start - numParamFree; 
    402377                     
    403378                    returnValue = RLD_fit(m_xInc, 
    404                             data.getYCount(), 
     379                            data.getAdjustedYCount(), 
    405380                            start, 
    406381                            stop, 
     
    440415                     
    441416                    // set start and stop 
    442                     int start = data.getTransFitStartIndex(); 
    443                     int stop = data.getTransEndIndex(); 
     417                    int start = data.getAdjustedDataStartIndex(); 
     418                    int stop  = data.getAdjustedTransEndIndex(); 
    444419                     
    445420                    int chiSquareAdjust = stop - start - numParamFree; 
     
    447422                    returnValue = LMA_fit( 
    448423                            m_xInc, 
    449                             data.getYCount(), 
     424                            data.getAdjustedYCount(), 
    450425                            start, 
    451426                            stop, 
Note: See TracChangeset for help on using the changeset viewer.