public PrositMS2Spectrum(SrmSettings settings, PrositIntensityModel.PeptidePrecursorNCE peptidePrecursorNCE, int precursorIndex, PrositIntensityModel.PrositIntensityOutput prositIntensityOutput, IsotopeLabelType labelTypeOverride = null) { PeptidePrecursorNCE = peptidePrecursorNCE; Settings = settings; var precursor = peptidePrecursorNCE.NodeGroup; var peptide = peptidePrecursorNCE.NodePep; var calc = settings.GetFragmentCalc(IsotopeLabelType.light, peptide.ExplicitMods); var ionTable = calc.GetFragmentIonMasses(peptide.Target); // TODO: get mods and pass them as explicit mods above? var ions = ionTable.GetLength(1); var mis = new List <SpectrumPeaksInfo.MI>(ions * PrositConstants.IONS_PER_RESIDUE); for (int i = 0; i < ions; ++i) { var intensities = prositIntensityOutput.OutputRows[precursorIndex].Intensities[i].Intensities .Select(ReLu).ToArray(); var yMIs = CalcMIs(ionTable[IonType.y, ions - i - 1], intensities, 0); var bMIs = CalcMIs(ionTable[IonType.b, i], intensities, PrositConstants.IONS_PER_RESIDUE / 2); mis.AddRange(yMIs); mis.AddRange(bMIs); } var maxIntensity = mis.Max(mi => mi.Intensity); // Max Norm for (int i = 0; i < mis.Count; ++i) { mis[i] = new SpectrumPeaksInfo.MI { Mz = mis[i].Mz, Intensity = mis[i].Intensity / maxIntensity } } ; SpectrumPeaks = new SpectrumPeaksInfo(mis.ToArray()); }
public PrositMS2Spectra(SrmSettings settings, IList <PrositIntensityModel.PeptidePrecursorNCE> peptidePrecursorPairs, PrositIntensityModel.PrositIntensityOutput prositIntensityOutput) { Spectra = new PrositMS2Spectrum[peptidePrecursorPairs.Count]; for (int i = 0; i < peptidePrecursorPairs.Count; ++i) { Spectra[i] = new PrositMS2Spectrum(settings, peptidePrecursorPairs[i], i, prositIntensityOutput); } }