Import peptides AND charge states

support
Import peptides AND charge states gabe  2017-09-22
 
Is there a way to import a list of peptides AND charge-states into Skyline? I know I can import peptide sequences and have the charge-states auto-populated based on spectra in the reference library, but I can't figure-out a way to import specific charge-states into a document.

Thanks

Gabe
 
 
Nick Shulman responded:  2017-09-22
If you have a list of peptides on the Clipboard and you do:
Edit > Paste
(or Ctrl+V)
then Skyline will recognize peptides followed by charge indicators.

As an example, you could copy the following text and paste it into Skyline.
PEPTIDEONE++
PEPTIDETWO+++
 
Brendan MacLean responded:  2017-09-22
I would add to this that Skyline also recognizes charge state in this format when you use Edit > Refine > Accept Peptides. So, if you had a list of peptides with more charge states than you want to keep, you can supply a list of the charge states you want to keep.

Also, when you get to charge 5, we start to accept the format:

PEPTIDEFIVER, +5
PEPTIDETWENTYFIVER, +25

I had been meaning to change this to also accept longer strings of pluses, but I don't think I got around to that, after the only person to notice so far seemed perfectly happy with this solution for higher charge states.
 
Brendan MacLean responded:  2017-09-22
Oh, and I should add that I could see adding a full Charge State column to the Edit > Insert > Peptides form with a checkbox for turning it on and off. But that obviously hasn't been implemented yet. Though, it may have been self-explanatory enough that you would have found what you were looking for without this support.
 
gabe responded:  2017-09-23
Thank you! The trailing charge indicators (PEPTIDE++) work great. For copy/paste from Excel it would be simpler if it also accepted tab-delimited lists (e.g. PEPTIDE\t2) but the pluses work fine, too.

Thanks
 
Brendan MacLean responded:  2017-09-23
Interesting idea. Thanks for the feedback. Also, I think we should probably add an "Include charge state" checkbox to the Edit > Insert > Peptides form. That would also give you a columnar way to add numeric charge states.

https://skyline.ms/issues/home/issues/details.view?issueId=545
 
jfoe responded:  2019-07-17
I am trying to replicate this workflow in skyline 19.1 and have tried a lot of things but I can't seem to find a way to get a notation for charge states 5+ to work.

If I just open a blank skyline doc:
These work:
PEPTIDEFIVER
PEPTIDEFIVER+
PEPTIDEFIVER++++

None of these work:
PEPTIDEFIVER+++++
PEPTIDEFIVER+5
PEPTIDEFIVER,+5
PEPTIDEFIVER, +5

Could you help me with that?

Thanks,
Jonas
 
Brendan MacLean responded:  2019-07-17
That last one is the right format. It works for me in Skyline 19.1. Not sure what is going wrong for you. I copied just that last line and pasted it into Skyline 19.1 and got what I would expect. What kind of error are you getting?

Here it is pasted back into the support thread.

PEPTIDEFIVER, +5
 
jfoe responded:  2019-07-17
Thats odd.
I get:
---------------------------
Skyline
---------------------------
Invalid transition list. Transition lists must contain at least precursor m/z, product m/z, and peptide sequence.
---------------------------
OK More Info
---------------------------
System.IO.InvalidDataException: Invalid transition list. Transition lists must contain at least precursor m/z, product m/z, and peptide sequence. ---> System.IO.InvalidDataException: Invalid transition list. Transition lists must contain at least precursor m/z, product m/z, and peptide sequence.
   at pwiz.Skyline.Model.MassListImporter.Import(IProgressMonitor progressMonitor, String sourceFile, ColumnIndices indices, IDictionary`2 dictNameSeq, List`1& irtPeptides, List`1& librarySpectra, List`1& errorList) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Model\Import.cs:line 484
   at pwiz.Skyline.Model.MassListImporter.Import(IProgressMonitor progressMonitor, String sourceFile, List`1& irtPeptides, List`1& librarySpectra, List`1& errorList) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Model\Import.cs:line 403
   at pwiz.Skyline.Model.SrmDocument.ImportMassList(MassListInputs inputs, IProgressMonitor progressMonitor, IdentityPath to, IdentityPath& firstAdded, List`1& irtPeptides, List`1& librarySpectra, List`1& errorList, List`1& peptideGroups) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Model\SrmDocument.cs:line 1435
   at pwiz.Skyline.SkylineWindow.<>c__DisplayClass1007_0.<ImportMassList>b__2(IProgressMonitor longWaitBroker) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\SkylineFiles.cs:line 1877
   at pwiz.Skyline.Util.ProgressWaitBroker.PerformWork(ILongWaitBroker broker) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Util\UtilUI.cs:line 123
   at pwiz.Skyline.Controls.LongWaitDlg.RunWork(Action`1 performWork) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Controls\LongWaitDlg.cs:line 232
   --- End of inner exception stack trace ---
   at pwiz.Skyline.Util.Helpers.WrapAndThrowException(Exception x) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Util\Util.cs:line 1864
   at pwiz.Skyline.Controls.LongWaitDlg.PerformWork(Control parent, Int32 delayMillis, Action`1 performWork) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Controls\LongWaitDlg.cs:line 180
   at pwiz.Skyline.Controls.LongWaitDlg.PerformWork(Control parent, Int32 delayMillis, Action`1 performWork) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Controls\LongWaitDlg.cs:line 132
   at pwiz.Skyline.SkylineWindow.ImportMassList(MassListInputs inputs, String description, Boolean assayLibrary) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\SkylineFiles.cs:line 1875
   at pwiz.Skyline.SkylineWindow.Paste(String text) in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Skyline.cs:line 1427
   at pwiz.Skyline.SkylineWindow.Paste() in C:\proj\skyline_19_1_x64\pwiz_tools\Skyline\Skyline.cs:line 1353
---------------------------
 
jfoe responded:  2019-07-18
Attached is a blank skyline file with my config in the hope that it helps.
 
Brendan MacLean responded:  2019-07-18
It still works just fine for me. I get the error you have posted when I leave out the space between the sequence and comma. i.e.

PEPTIDEFIVER,+5

Definitely much more sensitive than I would like, but I think still usable. We will have a look, and I hope to get 3 of the formats you have presented working:

PEPTIDEFIVER+++++
PEPTIDEFIVER,+5
PEPTIDEFIVER, +5

This came up once before, and everyone seems to start with the first one. So, we should make that work. I said that last time, though. Maybe it is even in the issues list, languishing unattended. I will check and try to make sure we fix it this time.

I was not aware that the middle one doesn't work, nor had I considered how easily it could be used in place of the final option, which actually works for me, even after loading your paste_test.sky document.

Thanks for your feedback. I hope you can find a way to get the last option to work or figure out what is different between our systems that is causing it to behave like the middle option on your system but not mine.

--Brendan
 
Brendan MacLean responded:  2019-07-18
I mean the space between the comma and the + (of course) and not between the sequence and the comma. Sorry the format is so spacing dependent. I will see if I can make it completely spacing independent in the next Skyline-daily, so that all of the following would work:

PEPTIDEFIVER,+5
PEPTIDEFIVER, +5
    P E P T I D E F I V E R , + 5
 
jfoe responded:  2019-07-18
I have now also tried
PEPTIDEFIVER, +5
PEPTIDEFIVER. +5
PEPTIDEFIVER; +5
in hopes that some weird language issue came up.
The system language is german but I have long set all decimal notation etc to the US version.

It is really weird that when I paste
PEPTIDEFIVER, +5
the error says
"Invalid transition list"
when with the other attempts, it correctly points out stuff like
Unexpected character '+' found on line 1.

Anyways I am looking forward to testing out the daily once it's implemented.
 
Brendan MacLean responded:  2019-07-18
Hmmm... I looked more closely at the code, and it is using your NumberGroupSeparator or "Digit grouping symbol" in Windows settings:

https://docs.microsoft.com/en-us/globalization/locale/number-formatting

That could be a comma, period, apostrophe, or ... probably most problematic ... a space!

https://en.wikipedia.org/wiki/Decimal_separator

See examples of use.

I am not sure why this was chosen over your guess (semi-colon) of the "List separator", which seems like the more obvious choice for a local-dependent value.

You may still be able to find a workaround by either changing your "Digit grouping symbol" to a comma, or making sure you replace the comma in our examples with what you are using for a "Digit grouping symbol", possibly a space, which would mean using two spaces:

PEPTIDEFIVER +5

Or an apostrophe:

PEPTIDEFIVER' +5

If you are Swiss.

I will discuss this issue with the developer who made this decision, I expect when he added support for adducts in brackets [ ], which can have decimal numbers in them.

I am pretty sure the difference in behavior we are seeing is related to a difference in "Digit grouping symbol" despite what you have said about using US number formats.
 
jfoe responded:  2019-07-18
That was it!
I changed it to ' and then it worked.
The space is the one thing I kept german because I kinda like it for the grouping.

The problem is though, that
PEPTIDEFIVER +5 (two spaces)
does not work even though it would be the correct way to write it.

It seems like skyline uses that format everywhere for display.
E.g. the precursor list then says 289.7522 +5 for me instead of 289.7522, +5.
I actually noticed that earlier already and was trying the double space format or even with tabspace to no avail.

Thanks for the help that would have been a tough one for me to figure out alone.
 
Brendan MacLean responded:  2019-07-18
Any thoughts on whether I should change this to the List separator? You did include that (semi-colon ;) once in your guesses.

The error message has to do with the processing order. Skyline first tries to strip off the charge indicators, but if it can't find any then it checks to see whether it looks like tabular data. If your list separator is a comma and it sees the comma it thinks the data is tabular and tries to interpret it as a transition list. Without the comma stripped it will have no hope of treating it as a peptide.

As I said, I am going to make the charge state interpretations handle more of the things you guessed. But, I am also wondering whether the thousands separator is really a good choice, just because it happens to be a comma in the US and something else in places that use a comma for a decimal point (which gets used in small molecule adduct descriptions). The same is true of the list separator, which is a comma in the US and a semi-colon most other places.
 
jfoe responded:  2019-07-19
The thousands separator feels really misused there.

The semi-colon feels a lot more natural.
One thing to check is also that if you use the insert peptides dialog and you paste, there is also some interpretation going on that splits values into multiple columns so it should be compatible there.
 
Brendan MacLean responded:  2019-07-20
Okay, in the next Skyline-daily the following options you tried will work no matter what your locale settings are:

PEPTIDEFIVER+++++ (or however long you want to continue using repeated pluses)
PEPTIDEFIVER,+5
PEPTIDEFIVER, +5

And the following will work in locales where a semicolon is the list separator.
PEPTIDEFIVER; +5
PEPTIDEFIVER;+5

Using the Thousands separator will no longer work when it is different from the list separator.