private void Read(string msDeconvFileName) { var curScan = 0; var isMs1 = false; var minMass = double.MaxValue; var maxMass = 0.0; var featureCountUnfiltered = 0; var featureCountFiltered = 0; foreach (var line in File.ReadLines(msDeconvFileName)) { if (line.StartsWith("SCANS=")) { curScan = Convert.ToInt32(line.Substring(line.LastIndexOf('=') + 1)); isMs1 = _run.GetMsLevel(curScan) == 1; } else if (isMs1 && line.Length > 0) { var token = line.Split(); if (token.Length != 3) { continue; } featureCountUnfiltered++; var charge = Convert.ToInt32(token[2]); if (charge == 1) { continue; } var monoMass = Convert.ToDouble(token[0]); if (minMass > monoMass) { minMass = monoMass; } if (maxMass < monoMass) { maxMass = monoMass; } featureCountFiltered++; var minScan = _run.GetPrevScanNum(curScan, 1); var maxScan = _run.GetNextScanNum(curScan, 1); _lcMsMatchMap.SetMatches(monoMass, minScan, maxScan); } } Console.Write(@"{0}/{1} features loaded...", featureCountFiltered, featureCountUnfiltered); _lcMsMatchMap.CreateSequenceMassToMs2ScansMap(_run, _massTolerance, minMass, maxMass); }
public Ms1IsotopeMostAbundantPlusOneFilter( InMemoryLcMsRun run, int minCharge = 3, int maxCharge = 30, double ppmTolerance = 10, double minMass = 3000.0, double maxMass = 50000.0, int maxNumPeaksToConsider = 40) { _run = run; _minCharge = minCharge; _maxCharge = maxCharge; MaxNumPeaksToConsider = maxNumPeaksToConsider; _tolerance = new Tolerance(ppmTolerance); _comparer = new MzComparerWithTolerance(ppmTolerance); _lcMsMatchMap = new LcMsMatchMap(); PrecomputePossibleSequenceMasses(); _lcMsMatchMap.CreateSequenceMassToMs2ScansMap(_run, _tolerance, minMass, maxMass); }
private void Read(string isosFileName) { var icrToolsparser = new TsvFileParser(isosFileName, ','); var monoMassArr = icrToolsparser.GetData("monoisotopic_mw").Select(Convert.ToDouble).ToArray(); var scanArray = icrToolsparser.GetData("scan_num").Select(s => Convert.ToInt32(s)).ToArray(); var chargeArray = icrToolsparser.GetData("charge").Select(s => Convert.ToInt32(s)).ToArray(); var fitStringArr = icrToolsparser.GetData("fit"); var fitArray = fitStringArr == null ? null : icrToolsparser.GetData("fit").Select(Convert.ToDouble).ToArray(); var featureCountFiltered = 0; var minMass = double.MaxValue; var maxMass = 0.0; for (var i = 0; i < monoMassArr.Length; i++) { if (fitArray != null && fitArray[i] > _fitScoreThreshold || chargeArray[i] <= 1) { continue; } featureCountFiltered++; var scan = scanArray[i]; var monoMass = monoMassArr[i]; if (minMass > monoMass) { minMass = monoMass; } if (maxMass < monoMass) { maxMass = monoMass; } var minScan = _run.GetPrevScanNum(scan, 1); var maxScan = _run.GetNextScanNum(scan, 1); _lcMsMatchMap.SetMatches(monoMass, minScan, maxScan); } Console.Write(@"{0}/{1} features loaded...", featureCountFiltered, monoMassArr.Length); _lcMsMatchMap.CreateSequenceMassToMs2ScansMap(_run, _massTolerance, minMass, maxMass); }
public Ms1IsotopeAndChargeCorrFilter( LcMsRun run, Tolerance tolerance, int minCharge = 3, int maxCharge = 30, double minMass = 3000.0, double maxMass = 50000.0, double isotopeCorrThreshold = 0.7, double chargeCorrThreshold = 0.7, double mostAbundantPlusOneIsotopeCorrThreshold = 0.7, int maxNumPeaksToConsider = 40) { _run = run; _minCharge = minCharge; _maxCharge = maxCharge; _isotopeCorrThresholdThreshold = isotopeCorrThreshold; _chargeCorrThresholdThreshold = chargeCorrThreshold; _mostAbundantPlusOneIsotopeCorrThreshold = mostAbundantPlusOneIsotopeCorrThreshold; MaxNumPeaksToConsider = maxNumPeaksToConsider; _tolerance = tolerance; _comparer = new MzComparerWithTolerance(tolerance); _lcMsMatchMap = new LcMsMatchMap(); PrecomputePossibleSequenceMasses(); _lcMsMatchMap.CreateSequenceMassToMs2ScansMap(_run, _tolerance, minMass, maxMass); }