SkylineProcessRunner.exe error: "Error: could not connect to Skyline"

support
SkylineProcessRunner.exe error: "Error: could not connect to Skyline" lparsons  2017-08-25 09:40
 
I am starting to work with SkylineProcessRunner to try to make a more standardized workflow for a project I"m working on. Right now I am trying to import a (small molecule) transition list "transition.txt" and then save out a skyline file "output-25August2017.sky". Every time I try this I get the error above ("Error: could not connect to Skyline").
An older thread here seems to suggest it could be a Skyline version mismatch; I used Windows Task Manager while Skyline was running to verify that I was running SkylineProcessRunner from the same directory that I was running Skyline itself from. My command therefore looks like
SkylineProcessRunner.exe --out=output-25August2017.sky --import-transition-list=transition.txt
After about 10 seconds or so I am given the error. I tried running it with only the output switch and the error is the same. If I try to run it with no switches at all it throws an exception and dies.
 
 
Brendan MacLean responded:  2017-08-25 09:53
You really should not be using SkylineProcessRunner.exe. It is located in the same folder as Skyline.exe (or Skyline-daily.exe), but it is an internal-only EXE which Skyline uses for running R and Python installers during external tool installation. Perhaps we should rename it to make it sound less interesting. Something like ExternalInstallerRunner.exe perhaps.

If you want to run Skyline at the command line, and you know where Skylin.exe can be found (usually with the administrator install, which puts it in Program Files or running from an extracted ZIP file), then you can run SkylineCmd.exe. Otherwise, with the network installation, we suggest you use SkylineRunner.exe or SkylineDailyRunner.exe which can be found with its documentation PDF at the bottom of the page you installer from.

It looks like you must have found the SkylineRunner documentation based on the command-line arguments you supplied. You just need to switch to the right EXE to actually run Skyline (or Skyline-daily) from the command-line.

Thanks for posting to the support board. Hope this gets you going.

--Brendan
 
lparsons responded:  2017-08-25 10:10
Thank you for the quick reply. Indeed I clicked on the link to the "Skyline Command-Line Interface" (https://skyline.ms/wiki/home/software/Skyline/download.view?entityId=c33e6082-9c2a-102f-a8bb-da20258202b3&name=Skyline%20Command-Line%20Interface-3_7.pdf). The documentation mentioned "SkylineRunner.exe" which apparently I tab-completed into "SkylineProcessRunner.exe"; thank you for clarifying that.

When I then switched to feeding my command to "SkylineCmd.exe" instead, it gives me an error that I did not use the --in switch to specify a skyline document to open. Is SkylineCmd.exe not able to create a new file? I expected that if I gave it the --out switch it would know to write a file. Is there a different switch to tell it to write a new file or what should I do for this?

thank you
Lee
 
Brendan MacLean responded:  2017-08-25 16:26
Hi Lee,
We have not implemented an option to start from a "new" document. I was considering this today, and at first I thought, "Sure! We could just add --new as a command-line argument..."

Then, I considered further what should that do? It seems like the only predictable thing for it to do is to have it create a new document with the "Default" settings in Skyline (i.e. Settings > Default or what you get in the first new document you are presented in Skyline). Once you start using Skyline, it tends to keep your last settings for your next document, unless you have other saved settings that you choose from the Settings menu.

And those saved settings in the Settings menu can be exported to a .skys file and shared with others. So, then I thought, "Well, --new might give you 'Default' settings, but then we could add --import-settings=path/to/file.skys and that would allow you to create a new file with saved settings."

But, wait, this is pretty much what a saved template document without any targets gives you. Why exactly do you want this "new" document rather than --in=path/to/template.sky and --out=path/to/file.sky?

This is pretty much where I ended up, not really seeing the utility of a --new option beyond --in with a document template. Once you have to add a path to a .skys file, you just made things as complicated as having a path to a template .sky file, and I can't see how adding a plain-vanilla Default settings option is all that useful. Surely most people have some initial settings changes they want to see in the document, and the Skyline command-line interface is not so rich that it allows changing all possible settings from that default.

I really think you want to start with --in=path/to/template.sky and not a "new" document.

Thanks for your effort in understanding and starting to use the Skyline command-line interface. Good luck! I hope it will eventually prove as enabling for you as it has for me.

--Brendan
 
lparsons responded:  2017-08-29 13:07
Brendan

I understand the logic in that. I have spent more time on this and have two more questions in the same vein.

First, I am having difficulties getting SkylineCmd.exe to open spectral libraries. I'm using the "--add-library-path=" switch to feed files in to SkylineCmd.exe but they all return "is not a supported spectral library file format". I first tried loading the Thermo raw file this way and was given this error (I have loaded the same file on the same system using the Skyline GUI with no problem), so I then converted to .ms1 and was given the same error. Then I converted to .mzML and was given the same error. I confirmed that the path was valid as entered, and that seems fine as well.

Second, I don't seem to have my transition list - for small molecules - formatted correctly for "--import-transition-list". I have a two-column file of "Precursor_m/z,Precursor_charge" which is comma separated. I checked to make sure the transition list has dos-style end lines (\n\r rather than just \n) and that made no difference. The error is "Invalid transition list. Transition lists must contain at least precursor m/z, product m/z, and peptide sequence.". What do I need to change in order for this to be properly read in?

thank you
Lee
 
Brendan MacLean responded:  2017-08-29 13:33
1. The corresponding UI to --add-library-path would be:
- Settings > Peptide Settings - Library Tab
- Click the Edit List button
- Click the Add button
- Set the Name and Path fields
- Click OK

I don't think this is where you are expecting to be, but only if you can do this without error should you be expecting --add-library-path to succeed at the command line. For an example of this set of steps succeeding with a GPM library, consult page 11 (Using a Public Spectral Library) of the Targeted Method Editing tutorial:

https://skyline.ms/_webdav/home/software/Skyline/%40files/tutorials/MethodEdit-2_6.pdf#page=11

2. You should probably start with getting your transition list columns to work as you would expect using Edit > Insert > Transition List and then move to File > Import > Transition List. Once you have both of these working, if you still get an error from --import-transition-list, then we will fix that for you. Maybe you could also explain what you expect precursor m/z and precursor charge to give you in terms of targets. Precursor-only molecules without fragmentation?

Have you worked through any of the tutorials? I would recommend Targeted Method Editing and Small Molecule Targets.

Thanks for your continued effort to apply Skyline in your research.

--Brendan
 
lparsons responded:  2017-08-29 14:03
Brendan

Thank you again. I've almost gotten this to do what I usually do in the GUI.

For 1; indeed it looks like I was going for the wrong switch. I wasn't looking to use a public spectral library but rather to use one from an acquisition of my own. When I change to "--import-file" I don't get the error any more. Hopefully this is the correct option.

For 2; I'm looking to import a list of just m/z and charge so that I can get the AUC of MS1 only data. Hence in the case of this data, there is no MS2 or peptide information. I had asked about this in a different support thread ( https://skyline.ms/announcements/home/support/thread.view?rowId=30914 ) and Brian Pratt came up with a solution where I import this list as small molecule transitions instead of peptide transitions. This works fine there when I do that. So to answer your question yes I am essentially looking for precursor-only, without any fragmentation data. I want Skyline to draw a series of chromatograms then where we can compare across several samples how a given m/z "parent" (using the term in quotes here as we do not produce any daughter ions in this experiment) ion appears over time.

I had previously worked through the "MS1 full-scan filtering" tutorial with a data set that is somewhat similar to what I am currently working with. I have not tried the Targeted Method Editing or Small Molecule Targets yet; I will start looking at them shortly.

thank you!
Lee
 
Brian Pratt responded:  2017-08-29 15:01
Hi Lee,

Possibly it's just a problem with column headers. Try choosing from this list (PrecursorMz and PrecursorCharge, most likely):

MoleculeGroup
PrecursorName
ProductName
PrecursorFormula
ProductFormula
PrecursorMz
ProductMz
PrecursorCharge
ProductCharge
PrecursorRT
PrecursorRTWindow
PrecursorCE
PrecursorDT
HighEnergyDTOffset
PrecursorCCS
SLens
ConeVoltage
CompensationVoltage
DeclusteringPotential
Note
LabelType
PrecursorAdduct
ProductAdduct
CAS
InChiKey
InChi
HMDB
SMILES

Let me know how that works out -

Brian Pratt
 
lparsons responded:  2017-08-30 07:18
Brian

That seems to have done exactly what I needed, thank you! I tried playing with different column labels but hadn't hit the right syntax up to this point.

It also appears so far that my use of "--import-file" may be the correct switch to get my raw data in the way I need it.

thanks to both of you!
Lee
 
lparsons responded:  2017-08-30 11:47
Is there a reference for how to import several - but not all - files from a directory? If I use "--import-all=/my/directory", skylinecmd.exe will happily grab all the files from that directory that it recognizes and import them. However I can't seem to get the "--import-naming-pattern" to behave the way I expect it to. In particular if I try "--import-naming-patter=raw", it gives me an error about not having any defined groups (I noticed it is intelligent enough to not grab files it doesn't have a way to interpret, but in this case I have a directory that has both .raw and .mzML of the same original file).

Looking at the "Skyline Command-Line Interface" pdf I don't see anything else discussing groups or how to define them. I could just move files around until I have a directory of only the files I want to import, but that could get messy later on.

thank you
Lee
 
Brendan MacLean responded:  2017-08-30 12:08
Hi Lee,
The --import-naming-pattern argument is for translating file names into replicate names. It is not actually intended to do what you are looking for. Though, I agree what you are looking for is reasonable and useful. Maybe we can add a new argument:

--import-filename-filter=reg-ex

Until then, the only way to control import is to specify the files you want individually with --import-file or by date with --import-before or --import-on-or-after, which may work just fine if you have mzML files derived from your RAW files, as long as you didn't do multiple acquire-convert cycles. You might be able to pick a date that separates the RAW from the converted mzML.

That's all we have right now. Thanks for your feedback.

--Brendan

P.S. - In a regular expression groups are defined by parentheses. The example given in the documentation is:

[^_]_(.*) for everything after the first underscore

There are several on-line regular expression test pages. This one is particularly good:

https://regex101.com/

If you paste in the expression above along with the test text

first-part-to-discard_following-part-to-keep

You will see how the regular expression works and what Skyline will consider the "first group" that it would keep as the replicate name for a file with the above basename.

Hope this helps.
 
lparsons responded:  2017-09-01 09:12
Thank you for the detailed reply. It is reassuring at times to find that the option I wasn't finding indeed wasn't there to be found :)

To make sure I understand the "--import-file" command, can I use it to add files to an existing skyline file? For example if I had previously saved a skyline file that I had opened file A.raw into, and then reopened it and used "--import-file=path/B.raw" and saved the skyline file again under its original name, would that result in the skyline file then having both A.raw and B.raw in it? In other words if I had several files could I iterate through the list of files, adding them one at a time (with a separate command for each), to get just the ones I want into the skyline file?
 
Brendan MacLean responded:  2017-09-01 09:33
Yes, what you describe should work as you describe it, but also --import-file is additive. You can specify it as many times as you like on a single command-line. Also, you can import as many files as you like using it inside a command-line batch file that you specify with --batch-commands.

Good luck. I am heading out for the weekend. So, you'll probably have to wait on any further questions.

--Brendan