Changeset 98

Show
Ignore:
Timestamp:
23-04-12 12:49:49 (2 years ago)
Author:
b.hoekman@…
Message:
 
Files:
1 modified

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