public clsHornTransform() { TransformParameters = new clsHornTransformParameters { IsotopeFitType = enmIsotopeFitType.AREA, MaxCharge = 10, MaxMW = 10000, MaxFit = 0.15, MinS2N = 5, DeleteIntensityThreshold = 1, MinIntensityForScore = 1, O16O18Media = false, //Charge carrier mass = [atomic mass of hydrogen (1.007825) - atomic mass of an electron (0.00054858)] CCMass = 1.00727638, NumPeaksForShoulder = 1, CheckAllPatternsAgainstCharge1 = false, IsActualMonoMZUsed = false, LeftFitStringencyFactor = 1, RightFitStringencyFactor = 1, }; //_reportO18Plus2Da = false; DebugFlag = false; }
public int RunDeconMSn(string[] args) { try { var strAppFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); var strSVMParamFilePath = Path.Combine(strAppFolder, "svm_params.xml"); if (args.Length == 0) { PrintUsage(); return(0); } var procRunner = new clsProcRunner(); var transformParameters = new clsHornTransformParameters(); var dtaGenParameters = new clsDTAGenerationParameters(); var peakParameters = new clsPeakProcessorParameters(); var error = false; dtaGenParameters.SVMParamFile = strSVMParamFilePath; dtaGenParameters.CentroidMSn = false; var sw = new Stopwatch(); sw.Start(); // First check for a parameter file defined using -P if (args.Length > 0) { foreach (var currentArg in args) { if (!currentArg.StartsWith("-P") || currentArg.ToLower().StartsWith("-progress")) { continue; } var stringParamFile = currentArg.Substring(2); Console.WriteLine("Reading Parameter File " + stringParamFile); var rdr = new XmlTextReader(stringParamFile); //Read each node in the tree. while (rdr.Read()) { switch (rdr.NodeType) { case XmlNodeType.Element: if (string.Equals(rdr.Name, "PeakParameters", StringComparison.OrdinalIgnoreCase)) { peakParameters.LoadV1PeakParameters(rdr); } else if (string.Equals(rdr.Name, "HornTransformParameters", StringComparison.OrdinalIgnoreCase)) { #pragma warning disable 618 transformParameters.LoadV1HornTransformParameters(rdr); #pragma warning restore 618 } else if (string.Equals(rdr.Name, "DTAGenerationParameters", StringComparison.OrdinalIgnoreCase)) { dtaGenParameters.LoadV1DTAGenerationParameters(rdr); } break; default: break; } } rdr.Close(); } } var filenameDefined = false; var stringSpectraFormat = "ALL"; if (args.Length == 0) { PrintUsage(); return(0); } // Read the remaining parameters foreach (var arg in args) { var currentArg = GetCommandLineArg(arg); if (currentArg == "-?" || currentArg == "/?" || currentArg == "-help" || currentArg == "/help") { PrintUsage(); return(0); } if (currentArg.ToLower().StartsWith("-progress")) { dtaGenParameters.WriteProgressFile = true; continue; } if (currentArg.ToLower().StartsWith("-centroid")) { dtaGenParameters.CentroidMSn = true; continue; } if (!currentArg.StartsWith("-")) { // Treat the first non-switch parameter as the dataset to process if (!filenameDefined) { procRunner.FileName = currentArg; filenameDefined = true; } else { Console.WriteLine("Ignoring extra argument " + currentArg); } continue; } if (currentArg.Length <= 1) { Console.WriteLine("Ignoring invalid argument " + currentArg); continue; } switch (currentArg[1]) { case 'I': if (GetParamInt(currentArg, "Minimum ion count", out var minIonCount)) { dtaGenParameters.MinIonCount = minIonCount; } else { error = true; } break; case 'F': if (GetParamInt(currentArg, "First scan", out var scanFirst)) { dtaGenParameters.MinScan = scanFirst; } else { error = true; } break; case 'L': if (GetParamInt(currentArg, "Last scan", out var scanLast)) { dtaGenParameters.MaxScan = scanLast; } else { error = true; } break; case 'B': if (GetParamDbl(currentArg, "Min mass", out var minMass)) { dtaGenParameters.MinMass = minMass; } else { error = true; } break; case 'T': if (GetParamDbl(currentArg, "Max mass", out var maxMass)) { dtaGenParameters.MaxMass = maxMass; } else { error = true; } break; case 'C': if (GetParamInt(currentArg, "Consider charge", out var considerCharge)) { dtaGenParameters.ConsiderChargeValue = considerCharge; } else { error = true; } dtaGenParameters.ConsiderChargeValue = considerCharge; break; case 'S': stringSpectraFormat = currentArg.Substring(2); if (string.Equals(stringSpectraFormat, "ETD", StringComparison.OrdinalIgnoreCase)) { dtaGenParameters.SpectraType = SPECTRA_TYPE.ETD; } else if (string.Equals(stringSpectraFormat, "CID", StringComparison.OrdinalIgnoreCase)) { dtaGenParameters.SpectraType = SPECTRA_TYPE.CID; } else if (string.Equals(stringSpectraFormat, "HCD", StringComparison.OrdinalIgnoreCase)) { dtaGenParameters.SpectraType = SPECTRA_TYPE.HCD; } else { stringSpectraFormat = "ALL"; dtaGenParameters.SpectraType = SPECTRA_TYPE.ALL; } break; case 'X': var outputFileFormat = currentArg.Substring(2); if (string.Equals(outputFileFormat, "MGF", StringComparison.OrdinalIgnoreCase)) { dtaGenParameters.OutputType = OUTPUT_TYPE.MGF; } else if (string.Equals(outputFileFormat, "LOG", StringComparison.OrdinalIgnoreCase)) { dtaGenParameters.OutputType = OUTPUT_TYPE.LOG; } else if (string.Equals(outputFileFormat, "CDTA", StringComparison.OrdinalIgnoreCase)) { dtaGenParameters.OutputType = OUTPUT_TYPE.CDTA; } else if (string.Equals(outputFileFormat, "MZXML", StringComparison.OrdinalIgnoreCase)) { dtaGenParameters.OutputType = OUTPUT_TYPE.MZXML; } else if (string.Equals(outputFileFormat, "DTA", StringComparison.OrdinalIgnoreCase)) { dtaGenParameters.OutputType = OUTPUT_TYPE.DTA; } else { PrintUsage(); error = true; } break; case 'D': var outputFolderPath = currentArg.Substring(2); procRunner.OutputPathForDTACreation = outputFolderPath; break; case 'G': // Used by Extract_msn; ignored by DeconMSn break; case 'M': // Used by Extract_msn; ignored by DeconMSn break; case 'P': // Already handled above break; default: Console.WriteLine("Unrecognized argument: " + currentArg); error = true; break; } // Switch if (!error) { continue; } Console.WriteLine(); Console.WriteLine("For program syntax, run " + GetExeName() + " without any parameters"); System.Threading.Thread.Sleep(1500); return(-1); } if (!filenameDefined) { PrintUsage(); return(-1); } var filenameToProcess = procRunner.FileName; Console.WriteLine("Processing File {0}", filenameToProcess); Console.WriteLine(); // Display the settings Console.WriteLine("Minimum Number of ions for valid MSn scan: {0}", dtaGenParameters.MinIonCount); Console.WriteLine("Scan Start: {0}", dtaGenParameters.MinScan); Console.WriteLine("Scan End: {0}", dtaGenParameters.MaxScan); Console.WriteLine("m/z Start: {0}", dtaGenParameters.MinMass); Console.WriteLine("m/z End: {0}", dtaGenParameters.MaxMass); if (dtaGenParameters.ConsiderChargeValue > 0) { Console.WriteLine("-C enabled with {0}", dtaGenParameters.ConsiderChargeValue); } Console.WriteLine("Spectra to process: {0}", stringSpectraFormat); var outputTypeName = dtaGenParameters.OutputTypeName; Console.WriteLine("Output format: {0}", outputTypeName); Console.WriteLine("Create progress file: {0}", dtaGenParameters.WriteProgressFile); Console.WriteLine("Centroid profile mode MSn spectra: {0}", dtaGenParameters.CentroidMSn.ToString()); Console.WriteLine(); procRunner.HornTransformParameters = transformParameters; procRunner.PeakProcessorParameters = peakParameters; procRunner.DTAGenerationParameters = dtaGenParameters; procRunner.CreateDTAFile(); sw.Stop(); Console.WriteLine(); Console.WriteLine("Done. Finished processing in {0:F1} seconds.", sw.Elapsed.TotalSeconds); System.Threading.Thread.Sleep(1500); return(0); } catch (Exception ex) { Console.WriteLine(); Console.WriteLine("Error processing: " + ex.Message); Console.WriteLine(PRISM.clsStackTraceFormatter.GetExceptionStackTraceMultiLine(ex)); System.Threading.Thread.Sleep(2000); return(-1); } }