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(); }
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(); } } }
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]); } }