Example #1
0
        private void LoadResultsV1Data(string dataFileName)
        {
            _saveStructsInMemory      = true;
            _dataInMemoryIsIncomplete = false;

            ClearPeaksAndIso();

            using (
                var fin = new BinaryReader(new FileStream(dataFileName, FileMode.Open, FileAccess.Read, FileShare.Read))
                )
            {
                _fileName = fin.ReadString();
                var versionStr = fin.ReadString();

                // how many peaks do we need to read ?
                _numPeaksStored = fin.ReadInt32();
                //var numRead = 0;

                var totalRead = 0;
                while (totalRead < _numPeaksStored)
                {
                    var peak = LcmsPeak.ReadFromBinaryStream(fin);
                    if (_peaksList.Count + 1 > _peaksList.Capacity && _peaksList.Capacity > int.MaxValue / 2)
                    {
                        _peaksList.Capacity = int.MaxValue - 150;
                    }
                    _peaksList.Add(peak);
                    totalRead++;
                }

                var readTransforms = true;
                if (readTransforms)
                {
                    _numIsoStored = fin.ReadInt32();

                    while (_transforms.Count < _numIsoStored)
                    {
                        var record = new clsHornTransformResults(IsotopeFitRecord.ReadFromBinaryStream(fin));
                        if (_transforms.Count + 1 > _transforms.Capacity &&
                            _transforms.Capacity > int.MaxValue / 2)
                        {
                            _transforms.Capacity = int.MaxValue - 150;
                        }
                        _transforms.Add(record);
                    }
                }

                if (_numPeaksStored != 0)
                {
                    _minScan       = _peaksList[0].ScanNum;
                    _maxScan       = _peaksList[_peaksList.Count - 1].ScanNum;
                    _lastScanAdded = _maxScan;
                }
                else
                {
                    _minScan = _maxScan = _lastScanAdded = -1;
                }
            }
            CreateIndexesOnData();
        }
Example #2
0
        private void SaveResultsV1Iso(string isoFileName)
        {
            using (
                var fout =
                    new StreamWriter(new FileStream(isoFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.None))
                )
            {
                //Preserve column headers for VIPER to load it in
                fout.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", "scan_num", "charge", "abundance",
                               "mz", "fit", "average_mw", "monoisotopic_mw", "mostabundant_mw", "fwhm", "signal_noise",
                               "mono_abundance", "mono_plus2_abundance");

                if (_saveStructsInMemory && !_dataInMemoryIsIncomplete)
                {
                    // write from stored data in _transforms
                    foreach (var record in _transforms)
                    {
                        fout.WriteLine("{0},{1},{2:F0},{3:F4},{4:F4},{5:F4},{6:F4},{7:F4},{8:F4},{9:F2},{10},{11}",
                                       record.ScanNum, record.ChargeState, record.Abundance, record.Mz, record.Fit,
                                       record.AverageMw, record.MonoMw, record.MostIntenseMw, record.FWHM, record.SignalToNoise,
                                       record.MonoIntensity, record.MonoPlus2Intensity);
                    }
                }
                else
                {
                    // Read in from stored file, little at a time and write it out;
                    _isoFile.Seek(0, SeekOrigin.Begin);
                    _isoFile.Flush();

                    if (!_isoFile.CanRead || _isoFile.Position != 0)
                    {
                        _isoFile.Close();
                        _isoFile = new FileStream(_tempIsoFilePath, FileMode.Create, FileAccess.ReadWrite,
                                                  FileShare.None);
                    }
                    _isoFile.Flush();
                    using (var bReader = new BinaryReader(_isoFile, Encoding.ASCII, true))
                    {
                        while (_isoFile.Position < _isoFile.Length)
                        {
                            var record = IsotopeFitRecord.ReadFromBinaryStream(bReader);
                            fout.WriteLine("{0},{1},{2},{3:F4},{4:F4},{5:F4},{6:F4},{7:F4},{8:F4},{9:F2},{10},{11}",
                                           record.ScanNum, record.ChargeState, record.AbundanceInt, record.Mz, record.Fit,
                                           record.AverageMw, record.MonoMw, record.MostIntenseMw, record.FWHM, record.SignalToNoise,
                                           record.MonoIntensity, record.MonoPlus2Intensity);
                        }
                    }
                    _isoFile.Close();
                }
            }
        }
Example #3
0
 internal clsHornTransformResults(IsotopeFitRecord fitRecord)
 {
     PeakIndex   = fitRecord.PeakIndex;
     ScanNum     = fitRecord.ScanNum;
     ChargeState = fitRecord.ChargeState;
     //AbundanceInt = fitRecord.AbundanceInt;
     Abundance          = fitRecord.Abundance;
     Mz                 = fitRecord.Mz;
     Fit                = fitRecord.Fit;
     FitCountBasis      = fitRecord.FitCountBasis;
     AverageMw          = fitRecord.AverageMw;
     MonoMw             = fitRecord.MonoMw;
     MostIntenseMw      = fitRecord.MostIntenseMw;
     FWHM               = fitRecord.FWHM;
     SignalToNoise      = fitRecord.SignalToNoise;
     MonoIntensity      = fitRecord.MonoIntensity;
     MonoPlus2Intensity = fitRecord.MonoPlus2Intensity;
     DeltaMz            = fitRecord.DeltaMz;
     for (var i = 0; i < fitRecord.NumIsotopesObserved; i++)
     {
         IsotopePeakIndices.Add(fitRecord.IsotopePeakIndices[i]);
     }
 }