76 public string MODE {
get;
set; }
94 public Settings(
int MaxCleavages = 2,
int MinPepLength = 5,
int MaxPepLength = 30,
95 int MaxPrecursorCharge = 4,
string MaxFragmentCharge =
"+1",
int MaxNeutralLosses = 1,
int MaxNeutralLossMods = 2,
96 bool DecoySearch =
true,
97 int TopN = 1000,
float Tolerance = 0.02f,
bool Normalize =
false,
bool UseGaussian =
true,
string Mode =
"CPU_SMi32")
156 var sb =
new StringBuilder();
161 sb.Append($
"{mod.Key.ToString()}:{mod.Value.ToString()};");
168 sb.Append($
"{mod.Key.ToString()}:{mod.Value.ToString()};");
171 return sb.ToString();
180 var sb =
new StringBuilder();
181 sb.Append(
"---- SETTINGS: ----\n");
182 sb.Append($
"MAX_CLEAVAGES: {MAX_CLEAVAGES}\n");
183 sb.Append($
"MIN_PEP_LENGTH: {MIN_PEP_LENGTH}\n");
184 sb.Append($
"MAX_PEP_LENGTH: {MAX_PEP_LENGTH}\n");
185 sb.Append($
"MAX_PRECURSOR_CHARGE: {MAX_PRECURSOR_CHARGE}\n");
186 sb.Append($
"MAX_FRAGMENT_CHARGE: {MAX_FRAGMENT_CHARGE}\n");
187 sb.Append($
"MAX_NEUTRAL_LOSSES: {MAX_NEUTRAL_LOSSES}\n");
188 sb.Append($
"MAX_NEUTRAL_LOSS_MODS: {MAX_NEUTRAL_LOSS_MODS}\n");
189 sb.Append($
"FIXED_MODIFICATIONS: {modificationsToString(false)}\n");
190 sb.Append($
"VARIABLE_MODIFICATIONS: {modificationsToString(true)}\n");
191 sb.Append($
"DECOY_SEARCH: {DECOY_SEARCH}\n");
192 sb.Append($
"TOP_N: {TOP_N}\n");
193 sb.Append($
"TOLERANCE: {TOLERANCE}\n");
194 sb.Append($
"NORMALIZE: {NORMALIZE}\n");
195 sb.Append($
"USE_GAUSSIAN: {USE_GAUSSIAN}\n");
196 sb.Append($
"MODE: {MODE}\n");
197 sb.Append(
"---- SETTINGS END ----");
199 return sb.ToString();
206 public static class SettingsReader
213 public static Settings readSettings(
string filename)
215 var settings =
new Settings();
217 using (StreamReader sr =
new StreamReader(filename))
219 while (!sr.EndOfStream)
221 var line = sr.ReadLine();
223 if (line !=
null && line.StartsWith(
"MAX_CLEAVAGES"))
225 var values = line.Split(
"=");
226 if (values.Length > 1)
228 var ok =
int.TryParse(values[1], out var value);
231 settings.MAX_CLEAVAGES = value;
236 if (line !=
null && line.StartsWith(
"MIN_PEP_LENGTH"))
238 var values = line.Split(
"=");
239 if (values.Length > 1)
241 var ok =
int.TryParse(values[1], out var value);
244 settings.MIN_PEP_LENGTH = value;
249 if (line !=
null && line.StartsWith(
"MAX_PEP_LENGTH"))
251 var values = line.Split(
"=");
252 if (values.Length > 1)
254 var ok =
int.TryParse(values[1], out var value);
257 settings.MAX_PEP_LENGTH = value;
262 if (line !=
null && line.StartsWith(
"MAX_PRECURSOR_CHARGE"))
264 var values = line.Split(
"=");
265 if (values.Length > 1)
267 var ok =
int.TryParse(values[1], out var value);
270 settings.MAX_PRECURSOR_CHARGE = value;
275 if (line !=
null && line.StartsWith(
"MAX_FRAGMENT_CHARGE"))
277 var values = line.Split(
"=");
278 if (values.Length > 1)
280 var maxFragmentCharge = values[1].Trim();
281 if (maxFragmentCharge ==
"+2" ||
282 maxFragmentCharge ==
"+3" ||
283 maxFragmentCharge ==
"+4" ||
284 maxFragmentCharge ==
"Precursor - 1")
286 settings.MAX_FRAGMENT_CHARGE = maxFragmentCharge;
291 if (line !=
null && line.StartsWith(
"MAX_NEUTRAL_LOSSES"))
293 var values = line.Split(
"=");
294 if (values.Length > 1)
296 var ok =
int.TryParse(values[1], out var value);
299 settings.MAX_NEUTRAL_LOSSES = value;
304 if (line !=
null && line.StartsWith(
"MAX_NEUTRAL_LOSS_MODS"))
306 var values = line.Split(
"=");
307 if (values.Length > 1)
309 var ok =
int.TryParse(values[1], out var value);
312 settings.MAX_NEUTRAL_LOSS_MODS = value;
317 if (line !=
null && line.StartsWith(
"FIXED_MODIFICATIONS"))
319 var values = line.Split(
"=");
320 if (values.Length > 1)
322 var mods = values[1].Split(
";");
323 foreach (var mod
in mods)
325 var modProps = mod.Split(
":");
326 if (modProps.Length == 2)
328 if (modProps[0].Trim().Length == 1)
330 var ok =
double.TryParse(modProps[1],
331 System.Globalization.NumberStyles.AllowDecimalPoint,
332 System.Globalization.CultureInfo.InvariantCulture,
336 if (!settings.FIXED_MODIFICATIONS.ContainsKey(modProps[0]))
338 settings.addFixedModification(modProps[0].Trim(), value);
347 if (line !=
null && line.StartsWith(
"VARIABLE_MODIFICATIONS"))
349 var values = line.Split(
"=");
350 if (values.Length > 1)
352 var mods = values[1].Split(
";");
353 foreach (var mod
in mods)
355 var modProps = mod.Split(
":");
356 if (modProps.Length == 2)
358 if (modProps[0].Trim().Length == 1)
360 var ok =
double.TryParse(modProps[1],
361 System.Globalization.NumberStyles.AllowDecimalPoint,
362 System.Globalization.CultureInfo.InvariantCulture,
366 if (!settings.VARIABLE_MODIFICATIONS.ContainsKey(modProps[0]))
368 settings.addVariableModification(modProps[0].Trim(), value);
377 if (line !=
null && line.StartsWith(
"DECOY_SEARCH"))
379 var values = line.Split(
"=");
380 if (values.Length > 1)
382 var ok =
bool.TryParse(values[1], out var value);
385 settings.DECOY_SEARCH = value;
390 if (line !=
null && line.StartsWith(
"TOP_N"))
392 var values = line.Split(
"=");
393 if (values.Length > 1)
395 var ok =
int.TryParse(values[1], out var value);
398 settings.TOP_N = value;
403 if (line !=
null && line.StartsWith(
"TOLERANCE"))
405 var values = line.Split(
"=");
406 if (values.Length > 1)
408 var ok =
float.TryParse(values[1],
409 System.Globalization.NumberStyles.AllowDecimalPoint,
410 System.Globalization.CultureInfo.InvariantCulture,
414 settings.TOLERANCE = value;
419 if (line !=
null && line.StartsWith(
"NORMALIZE"))
421 var values = line.Split(
"=");
422 if (values.Length > 1)
424 var ok =
bool.TryParse(values[1], out var value);
427 settings.NORMALIZE = value;
432 if (line !=
null && line.StartsWith(
"USE_GAUSSIAN"))
434 var values = line.Split(
"=");
435 if (values.Length > 1)
437 var ok =
bool.TryParse(values[1], out var value);
440 settings.USE_GAUSSIAN = value;
445 if (line !=
null && line.StartsWith(
"MODE"))
447 var values = line.Split(
"=");
448 if (values.Length > 1)
450 var mode = values[1].Trim();
454 settings.MODE =
"CPU_DVi32";
457 settings.MODE = mode;
460 settings.MODE = mode;
463 settings.MODE =
"CPU_SVi32";
466 settings.MODE = mode;
469 settings.MODE = mode;
472 settings.MODE =
"CPU_DMi32";
475 settings.MODE = mode;
478 settings.MODE = mode;
481 settings.MODE =
"CPU_SMi32";
484 settings.MODE = mode;
487 settings.MODE = mode;
490 settings.MODE =
"GPU_DVf32";
493 settings.MODE = mode;
496 settings.MODE =
"GPU_DMf32";
499 settings.MODE = mode;
502 settings.MODE =
"GPU_SMf32";
505 settings.MODE = mode;
508 settings.MODE =
"CPU_SMi32";
Settings for digestion, ion calculation and VectorSearch.
int MAX_CLEAVAGES
Maximum number of missed cleavages allowed during digestion.
int TOP_N
The top n candidates that should be returned by the VectorSearch.
Settings(int MaxCleavages=2, int MinPepLength=5, int MaxPepLength=30, int MaxPrecursorCharge=4, string MaxFragmentCharge="+1", int MaxNeutralLosses=1, int MaxNeutralLossMods=2, bool DecoySearch=true, int TopN=1000, float Tolerance=0.02f, bool Normalize=false, bool UseGaussian=true, string Mode="CPU_SMi32")
Settings constructor to set the specified search parameters.
Dictionary< string, double > FIXED_MODIFICATIONS
Dictionary for fixed modifications that maps amino acids to their possible modification masses.
string MAX_FRAGMENT_CHARGE
Maximum considered fragment ion charge.
string MODE
The search approach used by the VectorSearch.
bool addVariableModification(string aminoAcid, double mass)
Add a variable modification to the variable modification dictionary.
bool NORMALIZE
Whether or not scores should be normalized by the VectorSearch.
Dictionary< string, double > VARIABLE_MODIFICATIONS
Dictionary for variable modifications that maps amino acids to their possible modification masses.
int MIN_PEP_LENGTH
Minimum peptide length.
int MAX_PEP_LENGTH
Maximum peptide length.
float TOLERANCE
The tolerance used for the VectorSearch.
override string ToString()
Returns a string representation of the settings.
bool addFixedModification(string aminoAcid, double mass)
Add a fixed modification to the fixed modification dictionary.
int MAX_PRECURSOR_CHARGE
Maximum considered precursor ion charge.
int MAX_NEUTRAL_LOSSES
Maximum number of considered neutral losses.
bool USE_GAUSSIAN
Whether or not peaks should be modelled as gaussian distributions by the VectorSearch.
bool DECOY_SEARCH
Whether or not decoy search should be performed.
string modificationsToString(bool variable=false)
Returns a string representation of the modifications.
int MAX_NEUTRAL_LOSS_MODS
Maximum number of considered neutral loss modifications.