Small Decoy Peptides and M+2 isotopic peaks...

support
Small Decoy Peptides and M+2 isotopic peaks... wbarshop  2016-05-21 03:49
 
Hello all,

I've been working with Skyline/SkylineRunner to get Skyline running in a quick way for our laboratory.

As part of this process, I have been manually generating decoy peptides and slipping them into our Skyline file, and have run into a problem. For peptides identified closer to the low end of our mass range, ~400 m/z charge 2's, I am getting the following error when decoys are loaded into Skyline:


---------------------------------------------------------------
System.Reflection.TargetInvocationException: There is an error in XML document (56321, 6). ---> System.InvalidOperationException: There is an error in XML document (56321, 6). ---> System.IndexOutOfRangeException: Precursor isotope [M+2] is outside the isotope distribution -1 to 1.
   at pwiz.Skyline.Model.SequenceMassCalc.GetFragmentMass(String seq, IonType type, Int32 ordinal, Nullable`1 decoyMassShift, Int32 massIndex, IsotopeDistInfo isotopeDists, ExplicitSequenceMods mods) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SequenceUtil.cs:line 1034
   at pwiz.Skyline.Model.SequenceMassCalc.GetFragmentMass(Transition transition, IsotopeDistInfo isotopeDist, ExplicitSequenceMods mods) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SequenceUtil.cs:line 995
   at pwiz.Skyline.Model.DocSettings.SrmSettings.GetFragmentMass(IsotopeLabelType labelType, ExplicitMods mods, Transition transition, IsotopeDistInfo isotopeDist) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\DocSettings\SrmSettings.cs:line 325
   at pwiz.Skyline.Model.SrmDocument.ReadTransitionXml(XmlReader reader, XmlReadContext context, TransitionGroup group, ExplicitMods mods, IsotopeDistInfo isotopeDist) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 2763
   at pwiz.Skyline.Model.SrmDocument.ReadTransitionListXml(XmlReader reader, XmlReadContext context, TransitionGroup group, ExplicitMods mods, IsotopeDistInfo isotopeDist) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 2713
   at pwiz.Skyline.Model.SrmDocument.ReadTransitionGroupXml(XmlReader reader, XmlReadContext context, Peptide peptide, ExplicitMods mods, DocNodeCustomIon customIon) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 2523
   at pwiz.Skyline.Model.SrmDocument.ReadTransitionGroupListXml(XmlReader reader, XmlReadContext context, Peptide peptide, ExplicitMods mods, DocNodeCustomIon customIon) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 2459
   at pwiz.Skyline.Model.SrmDocument.ReadPeptideXml(XmlReader reader, XmlReadContext context, PeptideGroup group, Boolean isCustomMolecule) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 2282
   at pwiz.Skyline.Model.SrmDocument.ReadPeptideListXml(XmlReader reader, XmlReadContext context, PeptideGroup group) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 2201
   at pwiz.Skyline.Model.SrmDocument.ReadPeptideGroupXml(XmlReader reader, XmlReadContext context) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 2170
   at pwiz.Skyline.Model.SrmDocument.ReadPeptideGroupListXml(XmlReader reader, XmlReadContext context) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 2010
   at pwiz.Skyline.Model.SrmDocument.ReadXml(XmlReader reader) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 1961
   at System.Xml.Serialization.XmlSerializationReader.ReadSerializable(IXmlSerializable serializable, Boolean wrappedAny)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSrmDocument.Read1_srm_settings()
   --- End of inner exception stack trace ---
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
   at pwiz.Skyline.SkylineWindow.<>c__DisplayClass127.<OpenFile>b__125(IProgressMonitor progressMonitor) in c:\proj\pwiz_x64\pwiz_tools\Skyline\SkylineFiles.cs:line 254
   at pwiz.Skyline.Controls.LongWaitDlg.RunWork(Action`1 performWork) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Controls\LongWaitDlg.cs:line 223
   --- End of inner exception stack trace ---
   at pwiz.Skyline.Util.Helpers.WrapAndThrowException(Exception x) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Util\Util.cs:line 1592
   at pwiz.Skyline.Controls.LongWaitDlg.PerformWork(Control parent, Int32 delayMillis, Action`1 performWork) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Controls\LongWaitDlg.cs:line 171
   at pwiz.Skyline.Controls.LongWaitDlg.PerformWork(Control parent, Int32 delayMillis, Action`1 performWork) in c:\proj\pwiz_x64\pwiz_tools\Skyline\Controls\LongWaitDlg.cs:line 125
   at pwiz.Skyline.SkylineWindow.OpenFile(String path, FormEx parentWindow) in c:\proj\pwiz_x64\pwiz_tools\Skyline\SkylineFiles.cs:line 258
--------------------------------------------------------


The way I interpreted the "System.IndexOutOfRangeException: Precursor isotope [M+2] is outside the isotope distribution -1 to 1." follows...

My thought is that the M+2 peak may not be expected to be of interest due to the small peptide having a very low expected signal in the M+2 channel for the naturally occurring C13, but am unsure why Skyline would disallow interrogation of the peak if it was included in the Skyline File-- of course this could be a misinterpretation of what information "isotopeDists.MassIndexToPeakIndex" and "isotopeDists.CountPeaks" are actually returning. Please let me know if there is any obvious issue which is giving rise to this error.

I have included a Skyline file with two decoy peptides appended which both cause the same problem on the M+2 isotope. If any further information will help to narrow down the issue, please let me know and I'd be happy to provide it.

As always-- thank you to all the Skyline team.
All the best,
William
 
 
Nick Shulman responded:  2016-05-21 10:21
It looks like this error is being caused by an interaction between the high resolution that you specified for your precursor mass analyzer (Orbitrap resulution 500000@200m/z) and the specific sulfur-containing peptide sequence.

At that resolution, ions with two Carbon13 atoms get separated from the ions with Sulfur34.

When Skyline is trying to decide how much signal to expect for the M+2 peak, Skyline asks how much of the expected isotope distribution falls within M+2 chromatogram extraction window. It turns out that the 2C13 and S34 m/z peaks both lie outside of the extraction window that is centered on the average of those two peaks. Even though your Transition Full Scan settings have asked for 3 peaks, Skyline will not include peaks that contribute less than 1% to the total signal.

The workaround right now would be to choose a lower resolution in:
Settings > Transition Settings > Full Scan > MS1 Filtering > Resolving Power

We will try to fix the bug in Skyline. There is something wrong with the way that Skyline is assuming that isotope distributions behave.