IC-HRMS data for metabolomics

IC-HRMS data for metabolomics samartinez3  2023-07-11 13:11

Hello, I recently heard about Skyline after ASMS 23 (everyone was using it!) and I have a few questions! I'm fairly new to the mass spec community and currently use compound discoverer/tracefinder for processing small molecule data for the metabolomics core I work in. These softwares are a bit more new-user friendly (AKA faster for me to be trained on/put to work on my own) but now that I know a little more about mass spec, I'm trying to find more efficient ways to process my data as we have over 250 targeted metabolites we screen per sample and have 100+ samples weekly. I'm wondering if I'm using Skyline correctly, as I find myself still having to manually go through each molecule and ensure the correct RT is chosen for all my samples (replicates).

Here is the current workflow I have been using:

  1. Import small molecule transition lists (list of 250+ molecules) with RT, m/z values, adducts, and formulas
    Transition Settings are on Full scan; Count/Orbitrap/70,000ResolvingPower at 400m/z /PRM/Orbitrap/70,000ResolvingPower at 400m/z/Include all matching scans
    Molecule Settings are all on default, I do have a question about libraries I will ask below, and as for labels I only have heavy checked (I'm still not very clear on if I should have both or neither checked? I think heavy checked was the default for small molecules.
  2. Import Results (samples)
  3. Expand all precursors and ensure the correct peak is being integrated for each molecule (each molecule only has one precursor) while using the Synchronized Integration for all replicates.
    RT shift does not usually occur from replicate to replicate but does happen from batch to batch (ex: data processed from samples injected on Monday will likely have a small RT shift ~0.2 min compared to samples injected on Friday after 100+ samples have been injected). Is there any way to adjust this globally? Such as, shift all molecules RT +/- 0.2min? As of now I manually check the peaks for a few compounds, note the RT shift, and adjust the RT values on excel then reimport the transition list with the "new" shifted RT.
  4. Export the molecule name, replicate name, and area (MS1 total area)
    These are the only features I will be needing from all the data I process as we have an internal pipeline we analyze it with. I have a standard that is injected separately as a sample that I use to ensure the correct peaks are being integrated. Is there any way to align all the molecules RT and integration to the standard if it is set as a sample on its own (a replicate)?

This workflow is repeated each time I make a new batch, is this the correct way to be working (importing the Transition List each time)? Is there a way to save this workflow/method/save the manual changes I have made to the molecules? Ex: I change the integration range but have no way of keeping that range when importing the transition list at the start of a new batch. I have been trying to get around this is by importing peak boundaries from previous batches, but still, as mentioned before, my RT shifts between batches so this isn't always useful to do.

Regarding libraries, I have made a spectral library using mzVault but am unsure how to import that into Skyline/if that is possible or if I need to use another software for creating the library/changing the format of the mzVault library file.

Sorry for all the questions! Please let me know any tips/help you have, I appreciate all of it and am excited to learn more about Skyline! :)


Nick Shulman responded:  2023-07-11 15:31
We might be able to give you better answers if you send us your Skyline document.

In Skyline you can use the menu item:
File > Share
to create a .zip file containing your Skyline document and supporting files including extracted chromatograms.

If that .zip file is less than 50MB you can attach it to this support request.
You can upload larger files here:

Yes, people do very often need to manually adjust a lot of their peaks.
If you are making the same peak adjustment across all of your replicates you might find the chromatogram right-click menu item: "Synchronize integration".

I am not sure I understand what you are doing with your standard in separate sample.
If the standards were in the same sample, you might be able do something with iRT.
It is possible that the iRT tutorial might be helpful:
However, the iRT tutorial mainly talks about peptides, so it might not be helpful in terms of setting up an iRT calculator for your small molecules.

In terms of spectral libraries, in addition to our own BiblioSpec .blib format, Skyline also understands .sptxt, .hlf and .msp, so if you have a library in one of those formats you can add it using the "Settings > Molecule Settings > Library > Edit List > Add".

-- Nick
samartinez3 responded:  2023-07-12 13:19
Hey Nick, thanks for the fast response!

I uploaded my skyline document for you to take a look.
The sample named "std" contains several different compounds (chemical standards in similar matrix as the unknown samples [unknowns are named 1mM, 10mM,...]) that is used as a guide for ensuring the correct peaks for each compound are selected. I made an iRT with some of the compounds (it should be on the document) but I'm not sure if it's helping or not as I still have some issues with correct peak selection.

Nick Shulman responded:  2023-07-12 13:29

I see that you uploaded a couple of .sky files, but what I really need to see would be a ".sky.zip" that you have created using "File > Share".
The .sky.zip file contains the .sky file, but also contains supporting files including .skyd (extracted chromatograms), .irtdb (iRT database) etc.

Can you upload a .sky.zip file?

-- Nick
samartinez3 responded:  2023-07-12 13:36
Yes, just uploaded the correct one!

Nick Shulman responded:  2023-07-12 14:50
Thank you for uploading your .sky.zip file.

If you ever need to figure out why Skyline chose a particular peak instead of a different one, you might be able to get some insight by looking at the:
View > Other Grids > Candidate Peaks
The Candidate Peaks window shows you the features that Skyline looked at, what weighting Skyline assigned to those features. Skyline chooses the peak whose combined score is the highest. The combined score is shown in the "Model Score" column in the Candidate Peaks window.

I see that you are using a trained peak scoring model.
That is, if you go to:
Refine > Reintegrate
you can see that the name of the peak scoring model is "Peak Scoring Model Test 173".

Trained peak scoring models do not work very well for small molecules in Skyline. When you are training a peak scoring model, you have a choice between "Use decoys" and "Use second best peaks". Skyline only understands decoy peptides. With small molecules, you are forced to choose "Use second best peaks", and "use second best peaks" does not work very well at all for reasons that are difficult to explain.

You might have better results if you tell Skyline to stop using your trained peak scoring model.
You can switch back to the "default" peak scoring model by going to:
Refine > Reintegrate
and choose "Default" in the "Peak scoring model" dropdown and then press ok.
When you change the peak scoring model, the columns displayed in the Candidate Peaks grid will change to reflect the currently selected peak scoring model.

By the way, the iRT database that you have is not going to have any effect on peak picking, because all of the molecules in your document already have a "Explicit retention time" set.
The iRT predicted retention time is ignored if there is an Explicit retention time.
If you want Skyline to use the iRT retention time instead, you could blank out the Explicit retention time values for all of your molecules.

-- Nick