public Tuple <List <MSMSSpectrumPeak>, double[]> GetIsotopomerEnvelop(Sequence annotation, int cutNumber, IonType ionType, Tolerance tolerance) { var prefixComposition = annotation.GetComposition(0, cutNumber); var suffixCompostion = annotation.Composition - prefixComposition; var isotopomerEnvelop = new List <MSMSSpectrumPeak>(); var composition = ionType.IsPrefixIon ? prefixComposition : suffixCompostion; var ion = ionType.GetIon(composition); var theoreticalDist = ion.Composition.GetIsotopomerEnvelopeRelativeIntensities(); var write = false; for (var i = -FeatureNode.OffsetFromMonoIsotope; i < theoreticalDist.Length; i++) { var mz = ion.GetIsotopeMz(i); var peak = GetPeak(mz, tolerance); if (peak.Intensity > 0) { write = true; } isotopomerEnvelop.Add(GetPeak(mz, tolerance)); } return(write ? new Tuple <List <MSMSSpectrumPeak>, double[]>(isotopomerEnvelop, theoreticalDist) : null); }
static public IsotopomerFeatures GetFramentIsotopomerFeatures(ImsDataCached imsData, Composition cutComposition, IonType fragmentIonClassBase, Feature precursorFeature) { return(new IsotopomerFeatures(imsData, fragmentIonClassBase.GetIon(cutComposition), precursorFeature, false)); }