private int GetNumNotches(MassDiffAcceptorType massDiffAcceptorType, string customMdac) { switch (massDiffAcceptorType) { case MassDiffAcceptorType.Exact: return(1); case MassDiffAcceptorType.OneMM: return(2); case MassDiffAcceptorType.TwoMM: return(3); case MassDiffAcceptorType.ThreeMM: return(4); case MassDiffAcceptorType.ModOpen: return(1); case MassDiffAcceptorType.Open: return(1); case MassDiffAcceptorType.Custom: return(ParseSearchMode(customMdac).NumNotches); default: throw new MetaMorpheusException("Unknown mass difference acceptor type"); } }
public static MassDiffAcceptor GetMassDiffAcceptor(Tolerance precursorMassTolerance, MassDiffAcceptorType massDiffAcceptorType, string customMdac) { switch (massDiffAcceptorType) { case MassDiffAcceptorType.Exact: if (precursorMassTolerance is PpmTolerance) { return(new SinglePpmAroundZeroSearchMode(precursorMassTolerance.Value)); } else { return(new SingleAbsoluteAroundZeroSearchMode(precursorMassTolerance.Value)); } case MassDiffAcceptorType.OneMM: return(new DotMassDiffAcceptor("1mm", new List <double> { 0, 1.0029 }, precursorMassTolerance)); case MassDiffAcceptorType.TwoMM: return(new DotMassDiffAcceptor("2mm", new List <double> { 0, 1.0029, 2.0052 }, precursorMassTolerance)); case MassDiffAcceptorType.ThreeMM: return(new DotMassDiffAcceptor("3mm", new List <double> { 0, 1.0029, 2.0052, 3.0077 }, precursorMassTolerance)); case MassDiffAcceptorType.ModOpen: return(new IntervalMassDiffAcceptor("-187andUp", new List <DoubleRange> { new DoubleRange(-187, double.PositiveInfinity) })); case MassDiffAcceptorType.Open: return(new OpenSearchMode()); case MassDiffAcceptorType.Custom: return(ParseSearchMode(customMdac)); case MassDiffAcceptorType.PlusOrMinusThreeMM: return(new DotMassDiffAcceptor( "PlusOrMinus3Da", new List <double> { -3 * Chemistry.Constants.C13MinusC12, -2 * Chemistry.Constants.C13MinusC12, -1 * Chemistry.Constants.C13MinusC12, 0, 1 * Chemistry.Constants.C13MinusC12, 2 * Chemistry.Constants.C13MinusC12, 3 * Chemistry.Constants.C13MinusC12 }, precursorMassTolerance)); default: throw new MetaMorpheusException("Unknown MassDiffAcceptorType"); } }