Esempio n. 1
0
 public void Reset()
 {
     SICData.Clear();
     SICScanType = clsScanList.eScanTypeConstants.SurveyScan;
 }
Esempio n. 2
0
        protected void SaveScanStatEntry(
            StreamWriter writer,
            clsScanList.eScanTypeConstants eScanType,
            clsScanInfo currentScan,
            int datasetID)
        {
            const char TAB_DELIMITER = '\t';

            var scanStatsEntry = new ScanStatsEntry()
            {
                ScanNumber = currentScan.ScanNumber
            };

            if (eScanType == clsScanList.eScanTypeConstants.SurveyScan)
            {
                scanStatsEntry.ScanType     = 1;
                scanStatsEntry.ScanTypeName = string.Copy(currentScan.ScanTypeName);
            }
            else
            {
                if (currentScan.FragScanInfo.MSLevel <= 1)
                {
                    // This is a fragmentation scan, so it must have a scan type of at least 2
                    scanStatsEntry.ScanType = 2;
                }
                else
                {
                    // .MSLevel is 2 or higher, record the actual MSLevel value
                    scanStatsEntry.ScanType = currentScan.FragScanInfo.MSLevel;
                }

                scanStatsEntry.ScanTypeName = string.Copy(currentScan.ScanTypeName);
            }

            scanStatsEntry.ScanFilterText = currentScan.ScanHeaderText;

            scanStatsEntry.ElutionTime       = currentScan.ScanTime.ToString("0.0000");
            scanStatsEntry.TotalIonIntensity = StringUtilities.ValueToString(currentScan.TotalIonIntensity, 5);
            scanStatsEntry.BasePeakIntensity = StringUtilities.ValueToString(currentScan.BasePeakIonIntensity, 5);
            scanStatsEntry.BasePeakMZ        = StringUtilities.DblToString(currentScan.BasePeakIonMZ, 4);

            // Base peak signal to noise ratio
            scanStatsEntry.BasePeakSignalToNoiseRatio = StringUtilities.ValueToString(MASICPeakFinder.clsMASICPeakFinder.ComputeSignalToNoise(currentScan.BasePeakIonIntensity, currentScan.BaselineNoiseStats.NoiseLevel), 4);

            scanStatsEntry.IonCount    = currentScan.IonCount;
            scanStatsEntry.IonCountRaw = currentScan.IonCountRaw;

            mScanTracking.ScanStats.Add(scanStatsEntry);

            var dataColumns = new List <string>()
            {
                datasetID.ToString(),                       // Dataset ID
                scanStatsEntry.ScanNumber.ToString(),       // Scan number
                scanStatsEntry.ElutionTime,                 // Scan time (minutes)
                scanStatsEntry.ScanType.ToString(),         // Scan type (1 for MS, 2 for MS2, etc.)
                scanStatsEntry.TotalIonIntensity,           // Total ion intensity
                scanStatsEntry.BasePeakIntensity,           // Base peak ion intensity
                scanStatsEntry.BasePeakMZ,                  // Base peak ion m/z
                scanStatsEntry.BasePeakSignalToNoiseRatio,  // Base peak signal to noise ratio
                scanStatsEntry.IonCount.ToString(),         // Number of peaks (aka ions) in the spectrum
                scanStatsEntry.IonCountRaw.ToString(),      // Number of peaks (aka ions) in the spectrum prior to any filtering
                scanStatsEntry.ScanTypeName                 // Scan type name
            };

            writer.WriteLine(string.Join(TAB_DELIMITER.ToString(), dataColumns));
        }