Immunopeptidomics analysis on Skyline with DDA Bruker data after MHCquant2

support
Immunopeptidomics analysis on Skyline with DDA Bruker data after MHCquant2 rohit 3977  2025-12-01 12:29
 
Respected Sir,

I was wondering if skyline supports file outputs from MHCquant2? I wanted to run MS1 analysis on the DDA data that I have, but I keep facing an issue. Whenever I create a spectral library, I keep getting 2 errors. One it shows X! tandem as score type even though the file I uploaded was a pep.xml file that was the output of percolator (post a comet scoring, as part of the MHCquant2 workflow). does comet scoring appear as X! tandem?
second, even though my mzml file is of the same name is present in the same folder and obtained from the same MHCquant2 run, skyline is unable to pick it up. Image 1 shows the X! issue and image 2 shows the error. I have copy pasted the error below for your reference as well. May I know what has to be done?
Image 3 is the name of files I have added. (I did try renaming to my mzml file to _pep, which seems to work once in a while but gives the error message mentioned in image 4 and 5, image 5 is the ending of the error message. This does not seem to make sense as the outputs are from the same run)
Also, are there any specific tutorials I can also see regarding this form of analysis?

error message:
---------------------------
Skyline
---------------------------
ERROR: While searching for spectrum file for the search results file 'TTS1_10.pep.xml', could not find matches for the following basename with any of the supported file extensions (.mz5, .mzML, .mzXML, .raw, .wiff, .wiff2, .d, .lcd, .ms2, .cms2, .bms2, .pms2):
ERROR: TTS1_10e6_pep
ERROR:
ERROR: In any of the following directories:
ERROR: D:\Skyline input\Trial
ERROR: D:\Skyline input
ERROR: D:\

Command-line: C:\Users\AppData\Local\Apps\2.0\BM3QWV1J.L8R\8219MJET.98D\skyl..tion_9286511f3362df93_0019.0001_e71402c3ddc399fe\BlibBuild -s -A -H -o -c 0.95 -i report123 -S "D:\Skyline input\Trial\report123.redundant202512011200.stdin.txt" "D:\Skyline input\Trial\report123.redundant.blib"
Working directory: D:\Skyline input\Trial
Exit code: 1
---------------------------
OK More Info
---------------------------
Skyline (64-bit) 25.1.0.237 (519d29babc)

System.IO.IOException: ERROR: While searching for spectrum file for the search results file 'TTS1_10.pep.xml', could not find matches for the following basename with any of the supported file extensions (.mz5, .mzML, .mzXML, .raw, .wiff, .wiff2, .d, .lcd, .ms2, .cms2, .bms2, .pms2):
ERROR: TTS1_10e6_pep
ERROR:
ERROR: In any of the following directories:
ERROR: D:\Skyline input\Trial
ERROR: D:\Skyline input
ERROR: D:\

Command-line: C:\Users\AppData\Local\Apps\2.0\BM3QWV1J.L8R\8219MJET.98D\skyl..tion_9286511f3362df93_0019.0001_e71402c3ddc399fe\BlibBuild -s -A -H -o -c 0.95 -i report123 -S "D:\Skyline input\Trial\report123.redundant202512011200.stdin.txt" "D:\Skyline input\Trial\report123.redundant.blib"
Working directory: D:\Skyline input\Trial
Exit code: 1 ---> System.IO.IOException: ERROR: While searching for spectrum file for the search results file 'TTS1_10.pep.xml', could not find matches for the following basename with any of the supported file extensions (.mz5, .mzML, .mzXML, .raw, .wiff, .wiff2, .d, .lcd, .ms2, .cms2, .bms2, .pms2):
ERROR: TTS1_10e6_pep
ERROR:
ERROR: In any of the following directories:
ERROR: D:\Skyline input\Trial
ERROR: D:\Skyline input
ERROR: D:\

Command-line: C:\Users\AppData\Local\Apps\2.0\BM3QWV1J.L8R\8219MJET.98D\skyl..tion_9286511f3362df93_0019.0001_e71402c3ddc399fe\BlibBuild -s -A -H -o -c 0.95 -i report123 -S "D:\Skyline input\Trial\report123.redundant202512011200.stdin.txt" "D:\Skyline input\Trial\report123.redundant.blib"
Working directory: D:\Skyline input\Trial
Exit code: 1

Output:
Reading results from TTS1_10.pep.xml.
ERROR: While searching for spectrum file for the search results file 'TTS1_10.pep.xml', could not find matches for the following basename with any of the supported file extensions (.mz5, .mzML, .mzXML, .raw, .wiff, .wiff2, .d, .lcd, .ms2, .cms2, .bms2, .pms2):
ERROR: TTS1_10e6_pep
ERROR:
ERROR: In any of the following directories:
ERROR: D:\Skyline input\Trial
ERROR: D:\Skyline input
ERROR: D:\
100%

 ---> System.IO.IOException: ERROR: While searching for spectrum file for the search results file 'TTS1_10.pep.xml', could not find matches for the following basename with any of the supported file extensions (.mz5, .mzML, .mzXML, .raw, .wiff, .wiff2, .d, .lcd, .ms2, .cms2, .bms2, .pms2):
ERROR: TTS1_10e6_pep
ERROR:
ERROR: In any of the following directories:
ERROR: D:\Skyline input\Trial
ERROR: D:\Skyline input
ERROR: D:\

Command-line: C:\Users\AppData\Local\Apps\2.0\BM3QWV1J.L8R\8219MJET.98D\skyl..tion_9286511f3362df93_0019.0001_e71402c3ddc399fe\BlibBuild -s -A -H -o -c 0.95 -i report123 -S "D:\Skyline input\Trial\report123.redundant202512011200.stdin.txt" "D:\Skyline input\Trial\report123.redundant.blib"
Working directory: D:\Skyline input\Trial
Exit code: 1
   at pwiz.Common.SystemUtil.ProcessRunner.Run(ProcessStartInfo psi, String stdin, IProgressMonitor progress, IProgressStatus& status, TextWriter writer, ProcessPriorityClass priorityClass, Boolean forceTempfilesCleanup, Func`3 outputAndExitCodeAreGoodFunc, Boolean updateProgressPercentage) in C:\proj\skyline_25_1\pwiz_tools\Shared\CommonUtil\SystemUtil\ProcessRunner.cs:line 206
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at pwiz.Common.SystemUtil.ProcessRunner.ThrowExceptionWithOutput(Exception exception, String output) in C:\proj\skyline_25_1\pwiz_tools\Shared\CommonUtil\SystemUtil\ProcessRunner.cs:line 266
   at pwiz.Common.SystemUtil.ProcessRunner.Run(ProcessStartInfo psi, String stdin, IProgressMonitor progress, IProgressStatus& status, TextWriter writer, ProcessPriorityClass priorityClass, Boolean forceTempfilesCleanup, Func`3 outputAndExitCodeAreGoodFunc, Boolean updateProgressPercentage) in C:\proj\skyline_25_1\pwiz_tools\Shared\CommonUtil\SystemUtil\ProcessRunner.cs:line 248
   at pwiz.BiblioSpec.BlibBuild.BuildLibrary(LibraryBuildAction libraryBuildAction, IProgressMonitor progressMonitor, IProgressStatus& status, String& commandArgs, String& messageLog, String[]& ambiguous) in C:\proj\skyline_25_1\pwiz_tools\Shared\BiblioSpec\BlibBuild.cs:line 493
   at pwiz.Skyline.Model.Lib.BiblioSpecLiteBuilder.BuildLibrary(IProgressMonitor progress) in C:\proj\skyline_25_1\pwiz_tools\Skyline\Model\Lib\BiblioSpecLiteBuilder.cs:line 152
---------------------------
 
 
Nick Shulman responded:  2025-12-01 14:42
Renaming your mzML file to "TTS1_10e6_pep.mzML" was probably the correct thing to do.

The error message was telling you that it was looking for a file whose name started with "TTS1_10e6_pep" (i.e. "with the following basename") and that ended with any of a number of extensions including .mzML.

I am not sure exactly what to do about the next messages you were getting "WARNING: Could not translate integer 57 to native id format Bruker TDF nativeID format in .\TTS1_10e6_pep.mzML." Those warnings are the cause of the error you get at the end "No spectra found for the new library".

If you send us your files we can try to figure out what you need to do to get this to work.
It would be helpful if you could send us your .pep.xml files, your .mzML files as well as the original Bruker .d folders that the .mzML files were created from.
You can package everything up into a .zip file and upload it here:
https://skyline.ms/files.url

-- Nick
 
rohit 3977 responded:  2025-12-01 17:25
Thanks for your response,

I have uploaded the files in test.zip. In that I have again renamed the mzml file for rechecking, it bypasses the first error but shows the second error. I have run MHCquant, so my outputs are in the form of pout_filtered.idXML and ms2rescore.idXML.
I used open MS IDconverter to convert them to pep.xml files to view in skyline (could that be an issue?). I have attached all 4 files, the mzml file and the .d file that I used
Let me know if you would require anything else, the nextflow command or anything


Thanks you!
 
Nick Shulman responded:  2025-12-01 22:03
Thank you for uploading those files.
I see that TTS_10e6_pep.mzML has 182195 spectra in it. The MS1 spectra do not have ion mobility values, but the MS2 spectra have something that says "inverse reduced ion mobility" inside of their <selectedIon> tags.
The file says it was created by "tdf2mzml" from "20231208_TTS1_Neo_25cmIO_OBJ42567_C1R_A1101_YesLinker_10e6_iRT_thunderDDA_FX1_01_1_1_4847.d".

I am not familiar with this way of representing ion mobility spectra. When I look at the .d folder using ProteoWizard tools such as MSConvert or SeeMS.exe, it has 438932 spectra if I tell it to "combine ion mobility spectra", or a few million spectra if I tell it not to.

Your pep.xml file seems to have come from the Comet search engine and refer to the spectra as integers that go up to 102835.

Unfortunately, I cannot figure out how the numbers in the pep.xml file are supposed to match up with the spectra in the .mzML file.
In the .pep.xml file, the last spectrum matched looks like:

    <spectrum_query spectrum="TTS1_10e6_ms2rescore_pep.102835.102835.2" start_scan="102835" end_scan="102835" precursor_neutral_mass="1141.743450158099904" assumed_charge="2" index="102834" retention_time_sec="7498.9" >

That retention time of 7498.9 seconds is close to the end of the entire run, so it would correspond to a spectrum number in the mzML file which is closer to 180,000 instead of 102,835,

Are you sure that this .mzML file is what was searched by your peptide search engine?
I will probably have to ask some of my coworkers whether there is any way to get these data files to work together.
-- Nick
 
rohit 3977 responded:  2025-12-02 12:30
Thank you for your response.

I did go through the files and found the same error. But I confirmed the mzml file is the only one that was used by my comet engine. I further opened the ms2rescore.idXML files and I think they seem to match my mzml file. so maybe the IDconvertor I used could be the issue when it converts the idXML file to pep.xml? if so are there other ways I can safely convert my idXML outputs from MHCquant2 to view in skyline?
The text.zip has my ms2rescore.idXML file as well for your reference.

Below I have attached my analysis on the idxml file
spectrum_reference="index=102835" (a random spectrum index I chose)
RT="3716.9000" (value in seconds)
 
In the mzml file
<spectrum index="102834" id="index=102835">
  <cvParam name="scan start time" value="61.94764255" unitName="minute"/>

min and max RT times also match (1.3 to 7499 sec)
number of ms2 spectra also seem to match (102,835)

Thank you!
 
Nick Shulman responded:  2025-12-02 12:41
It sounds like you might have intended to attach something to your last message, but nothing actually got attached. This often happens if the file you were attempting to attach is larger than the 50MB limit.
You can always upload larger files here:
https://skyline.ms/files.url
-- Nick
 
rohit 3977 responded:  2025-12-03 10:05
Thanks for your response,

The ms2rescore.idXML file I was talking about is enclosed in the same zip file I had sent in the start with the pep.xml files under test.zip in the url you had mentioned. I have attached the file again as a seperate zip file (ms2rescore.zip) with the mzml file for your reference below for your reference. I also tried to convert the idXML file to a mzid file, but I guess there is an issue with that conversion as well as I received the below message. I have attached the mzid file also in the new zip file.
Sorry for the confusion

Thank you!
 
rohit 3977 responded:  2025-12-04 14:06
Hello!

Sorry to disturb, but will it be possible to use the ms2rescore.idXML file that i get on skyline as per the previous message?
Thank you!
 
Nick Shulman responded:  2025-12-04 14:23
No, ".idXML" is not one of the formats that we know how to read.
Skyline uses another program called "BlibBuild.exe" to read peptide search results, and here is the list of formats the BlibBuild.exe can handle:
https://skyline.ms/wiki/home/software/BiblioSpec/page.view?name=BlibBuild

There is a very simple format that "BlibBuild.exe" understands called ".ssl" ("spectrum sequence list").
If you have a list of peptides and spectrum numbers then you might be able to put that into a .ssl file.

Here is some info about the .ssl file format:
https://skyline.ms/home/software/BiblioSpec/wiki-page.view?name=BiblioSpec%20input%20and%20output%20file%20formats
-- Nick
 
rohit 3977 responded:  2025-12-04 16:20
Thank you for your response!

I creates an SSL file as you mentioned. But my skyline is failing to parse it. could you please let me know what the issue seems to be, I do not seem to know how to correct it. I ran it on a smaller idXML file to confirm first.

Thank you!
 
rohit 3977 responded:  2025-12-04 16:20
Thank you for your response!

I creates an SSL file as you mentioned. But my skyline is failing to parse it. could you please let me know what the issue seems to be, I do not seem to know how to correct it. I ran it on a smaller idXML file to confirm first. I have attached the same in a new zip file, ssl.zip

Thank you!
 
Nick Shulman responded:  2025-12-05 09:26
The first line in the .ssl file needs to be the column names, like in the attached "skylinemain.ssl" file.
By the way, the "start-time" and "end-time" columns are optional in a .ssl file. You only include them if you know want to control where Skyline puts the chromatogram integration boundaries. If you omit those columns then Skyline will do its own peak detection based when extracting chromatograms.

The attached .ssl file will not actually work because BiblioSpec still wants spectrum identifiers that are in the format of numbers separated by dots.

If you install ProteoWizard on your computer then you can use the program called "msaccess.exe" to get the complete list of spectra from your .mzML file:
msaccess.exe 20231208_TTS1_Neo_25cmIO_OBJ42567_C1R_A1101_YesLinker_10e6_iRT_thunderDDA_FX1_01_1_1_4847.mzML -x spectrum_table delimiter=tab

I cannot figure out how the scan numbers in the .ssl file relate to the spectra in the .mzML file.
For instance, the last line of the .ssl file says that ENLDQELLSLAK++ should be found in spectrum number 133915 at retention time 5139.5 seconds (i.e. 85.6583 minutes).
ENLDQELLSLAK++ has the precursor m/z 686.8696
That seems to correspond to the spectrum in "20231208_TTS1_Neo_25cmIO_OBJ42567_C1R_A1101_YesLinker_10e6_iRT_thunderDDA_FX1_01_1_1_4847.mzML.spectrum_table.tsv" with the index "309280" and the ID 309280.16715.1717.1739 at retention time 5139.21 and precursor m/z 686.8744.

If you can figure out a reliable way to match up the numbers that you have in your .ssl file with the spectra in a ".spectrum_table.tsv" file then you might be able to do something in a tool like Microsoft Excel to join the data together and produce a file with spectrum identifiers that BiblioSpec will expect.

I suspect that the .mzML files that I am looking at are different from what was actually searched because I cannot think of why the retention times would not exactly match up.
-- Nick