Changeset 98


Ignore:
Timestamp:
Apr 23, 2012, 12:49:49 PM (5 years ago)
Author:
b.hoekman@…
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaLCMSTools/src/lcSpectra/LCMS2Spectra.java

    r94 r98  
    66import java.util.ListIterator;
    77
     8import statistics.basic.NumberSerie;
     9import statistics.basic.StatsNormal;
     10
    811import lcSpectra.helpers.Spectrum;
    912import lcSpectra.helpers.SpectrumExtended;
     13import loadData.lcMSData.LoadMZMLFile;
    1014import massSpectra.MassSpectraC;
    1115
     
    2226        ArrayList<Spectrum> spectrums = new ArrayList<Spectrum>();
    2327               
     28        private ScanSpeedStats scanSpeedStats = null;
     29       
    2430        /**
    2531         * Implements counting the unique spectra.
     
    158164                return result;
    159165        }
     166       
     167        private ScanSpeedStats calculateScanSpeedStats() {
     168               
     169                Double rtPreviousMS1 = null;
     170                Double rtPreviousMS2 = null;
     171                Double rtCurrent = null;
     172                Integer msLevelPrevious = null;
     173
     174
     175                //Numberserie with all the time difference.
     176                //to account for paralell aquisition different shifts are given here..
     177                NumberSerie nsDifferenceMS1MS2 = new NumberSerie();
     178                NumberSerie nsDifferenceMS2MS1 = new NumberSerie();
     179                NumberSerie nsDifferenceMS1MS1 = new NumberSerie();
     180                NumberSerie nsDifferenceMS2MS2 = new NumberSerie();
     181                NumberSerie nsOverHeadMS2MS2 = new NumberSerie(); //Incase IonInject times are present this NumberSeries contains the MS2 to MS2 time - ionInjectTime
     182               
     183
     184                ListIterator<Spectrum> specIt = getSpectrumLisIterator();
     185                while(specIt.hasNext()) {
     186
     187                        Spectrum spec = specIt.next();
     188
     189                        int msLevel =spec.getMSLevel();
     190
     191                        //Logic for keeping track of the difference between rt-points in the mzML file         
     192                        rtCurrent = spec.getRetentionTime();
     193                        if(rtPreviousMS1 != null && msLevelPrevious == 1) {
     194                                Double diff = Math.abs(rtCurrent - rtPreviousMS1);
     195
     196
     197                                if(msLevel == 1) {
     198                                        nsDifferenceMS1MS1.addValue(diff);
     199                                } else if(msLevel == 2) {
     200                                        nsDifferenceMS1MS2.addValue(diff);
     201                                }
     202                        }
     203
     204                        if(rtPreviousMS2 != null && msLevelPrevious == 2) {
     205                                Double diff = Math.abs(rtCurrent - rtPreviousMS2);
     206
     207                                if(msLevel == 1) {
     208                                        nsDifferenceMS2MS1.addValue(diff);
     209                                } else if(msLevel == 2) {
     210                                        nsDifferenceMS2MS2.addValue(diff);
     211                                       
     212                                        Double inject = spec.getIonInjectTime();
     213                                        if(inject != null) {
     214                                                double overhead = diff - (inject / (60 * 1000));
     215                                                nsOverHeadMS2MS2.addValue(overhead);
     216                                        }
     217                                }
     218                        }
     219
     220                        if(msLevel == 1) {
     221                                rtPreviousMS1 = rtCurrent;
     222                        } else if (msLevel == 2) {
     223                                rtPreviousMS2 = rtCurrent;
     224                        }
     225                       
     226                        msLevelPrevious = msLevel;
     227                }
     228               
     229                ScanSpeedStats result= new ScanSpeedStats();
     230                result.nsDifferenceMS1MS1 = nsDifferenceMS1MS1;
     231                result.nsDifferenceMS1MS2 = nsDifferenceMS1MS2;
     232                result.nsDifferenceMS2MS2 = nsDifferenceMS2MS2;
     233                result.nsDifferenceMS2MS1 = nsDifferenceMS2MS1;
     234                result.nsOverHeadMS2MS2 = nsOverHeadMS2MS2;
     235               
     236                return result;
     237        }
     238       
     239        public ScanSpeedStats getScanSpeedStats() {
     240                if(scanSpeedStats == null) {
     241                        scanSpeedStats = calculateScanSpeedStats();
     242                }
     243               
     244                return scanSpeedStats;
     245        }
     246       
     247        public class ScanSpeedStats {
     248                private NumberSerie nsDifferenceMS1MS2 = new NumberSerie();
     249                private NumberSerie nsDifferenceMS2MS1 = new NumberSerie();
     250                private NumberSerie nsDifferenceMS1MS1 = new NumberSerie();
     251                private NumberSerie nsDifferenceMS2MS2 = new NumberSerie();
     252                private NumberSerie nsOverHeadMS2MS2 = new NumberSerie();
     253               
     254                public NumberSerie getNsDifferenceMS1MS2() {
     255                        return nsDifferenceMS1MS2;
     256                }
     257                public NumberSerie getNsDifferenceMS2MS1() {
     258                        return nsDifferenceMS2MS1;
     259                }
     260                public NumberSerie getNsDifferenceMS1MS1() {
     261                        return nsDifferenceMS1MS1;
     262                }
     263                public NumberSerie getNsDifferenceMS2MS2() {
     264                        return nsDifferenceMS2MS2;
     265                }
     266                public NumberSerie getNsOverHeadMS2MS2() {
     267                        return nsOverHeadMS2MS2;
     268                }
     269        }
    160270}
    161271
Note: See TracChangeset for help on using the changeset viewer.