private int GetMassNumber(ILigand ligand) { var massNumber = ligand.LigandAtom.MassNumber; if (massNumber != null) { return(massNumber.Value); } return(factory.GetMajorIsotope(ligand.LigandAtom.Symbol).MassNumber.Value); }
/// <summary> /// Gets the element rank for a given element symbol as given in Bremser's publication. /// </summary> /// <param name="symbol">The element symbol for which the rank is to be determined</param> /// <returns>The element rank</returns> private double GetElementRank(string symbol) { for (int f = 0; f < rankedSymbols.Length; f++) { if (string.Equals(rankedSymbols[f], symbol, StringComparison.Ordinal)) { return(symbolRankings[f]); } } IIsotope isotope = isotopeFac.GetMajorIsotope(symbol); return((double)800000 - isotope.MassNumber ?? 0); }
/// <summary> /// Get the major isotope mass number for an element /// </summary> /// <param name="atomicNumber"></param> /// <returns></returns> public static int GetMajorIsotopeMassNumber(int atomicNumber) { int mass = 0; IsotopeFactory factory = XMLIsotopeFactory.Instance; IIsotope major = factory.GetMajorIsotope(atomicNumber); if (major.MassNumber != null) { return((int)major.MassNumber); } else { return(0); } }
public void TestValidBromine() { var spectrum = new List <double[]> { new double[] { 157.8367, 51.399 }, new double[] { 159.8346, 100.00 }, new double[] { 161.8326, 48.639 } }; var rule = new IsotopePatternRule(); var parameters = new object[2]; parameters[0] = spectrum; parameters[1] = 0.001; rule.Parameters = parameters; var formula = new MolecularFormula(); formula.Add(ifac.GetMajorIsotope("C"), 2); formula.Add(ifac.GetMajorIsotope("Br"), 2); formula.Charge = 0; Assert.AreEqual(0.0, rule.Validate(formula), 0.0001); }
public void TestIsValidSum_IMolecularFormula() { var formula = new MolecularFormula(); formula.Add(ifac.GetMajorIsotope("C"), 1); formula.Add(ifac.GetMajorIsotope("H"), 100); List <IRule> rules = new List <IRule> { new MMElementRule() }; MolecularFormulaChecker MFChecker = new MolecularFormulaChecker(rules); Assert.AreEqual(0.0, MFChecker.IsValidSum(formula), 0.001); }