本文整理汇总了C#中ChemicalFormula.GetElements方法的典型用法代码示例。如果您正苦于以下问题:C# ChemicalFormula.GetElements方法的具体用法?C# ChemicalFormula.GetElements怎么用?C# ChemicalFormula.GetElements使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ChemicalFormula
的用法示例。
在下文中一共展示了ChemicalFormula.GetElements方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CalculateDistribuition
public MZSpectrum CalculateDistribuition(ChemicalFormula formula, int topNPeaks = int.MaxValue, Normalization normalization = Normalization.Sum)
{
double monoisotopicMass = formula.MonoisotopicMass;
SetResolution(monoisotopicMass);
List<List<Composition>> elementalComposition = new List<List<Composition>>();
// Get all the unique elements of the formula
foreach (Element element in formula.GetElements())
{
int count = formula.Count(element);
List<Composition> isotopeComposition = new List<Composition>();
foreach (Isotope isotope in element.Isotopes.Values.OrderBy(iso => iso.AtomicMass))
{
double probability = isotope.RelativeAbundance;
if (probability <= 0)
continue;
Composition c = new Composition
{
Atoms = count,
MolecularWeight = isotope.AtomicMass,
Power = isotope.AtomicMass,
Probability = isotope.RelativeAbundance
};
isotopeComposition.Add(c);
}
elementalComposition.Add(isotopeComposition);
}
foreach (List<Composition> compositions in elementalComposition)
{
double sumProb = compositions.Sum(t => t.Probability);
foreach (Composition composition in compositions)
{
composition.Probability /= sumProb;
composition.LogProbability = Math.Log(composition.Probability);
composition.Power = Math.Floor(composition.MolecularWeight/_mwResolution + 0.5);
}
}
return CalculateFineGrain(elementalComposition, normalization);
}