ERROR: No spectra were found for the new library.

ERROR: No spectra were found for the new library. mnt  2023-07-08 12:17
Hi Skyline

I'm attempting to generate a skyline library with some test data in an ssl file with this content (well, its a small test):
file    scan    charge    sequence    score-type    score
test.mzML    5885    2    APQVYTLPPPK    UNKNOWN    93.1
test.mzML    6277    2    VTC[+57.0]VVVDLSK    UNKNOWN    96.5
test.mzML    11828    3    PC[+57.0]LC[+57.0]TVPEVSSVFLFPPKPK    UNKNOWN    77
test.mzML    12813    2    TQSELPLMHQDWLDGK    UNKNOWN    87.8
test.mzML    14623    3    DDPEVQFSWFVDDVEVHTAQTQPR    UNKNOWN    84.3

However i'm getting the error (below) which i find odd as the test.ssl file is in the same folder as the test.mzML file. So, what am i mising? Did i make a typo or a syntax error, have i been staring at this for too long?

ERROR: No spectra were found for the new library.

Command-line: C:\Users\marti\AppData\Local\Apps\2.0\82ODZ185.JON\AEKA4571.RW6\skyl..tion_2e441fc3bf6adc7f_0016.0002_8463f90593c7905a\BlibBuild -s -A -H -o -i Test3 -K -S "C:\Users\marti\AppData\Local\Temp\tmp9A6F.tmp" "D:\P047\02_Data\Test\Test3.redundant.blib"
Working directory: D:\P047\02_Data\Test\Novor
OK More Info
System.IO.IOException: ERROR: No spectra were found for the new library.

Command-line: C:\Users\marti\AppData\Local\Apps\2.0\82ODZ185.JON\AEKA4571.RW6\skyl..tion_2e441fc3bf6adc7f_0016.0002_8463f90593c7905a\BlibBuild -s -A -H -o -i Test3 -K -S "C:\Users\marti\AppData\Local\Temp\tmp9A6F.tmp" "D:\P047\02_Data\Test\Test3.redundant.blib"
Working directory: D:\P047\02_Data\Test\Novor
   ved pwiz.Common.SystemUtil.ProcessRunner.Run(ProcessStartInfo psi, String stdin, IProgressMonitor progress, IProgressStatus& status, TextWriter writer, ProcessPriorityClass priorityClass) i C:\proj\skyline_22_2\pwiz_tools\Shared\Common\SystemUtil\ProcessRunner.cs:linje 161
   ved pwiz.BiblioSpec.BlibBuild.BuildLibrary(LibraryBuildAction libraryBuildAction, IProgressMonitor progressMonitor, IProgressStatus& status, String& commandArgs, String& messageLog, String[]& ambiguous) i C:\proj\skyline_22_2\pwiz_tools\Shared\BiblioSpec\BlibBuild.cs:linje 412
   ved pwiz.Skyline.Model.Lib.BiblioSpecLiteBuilder.BuildLibrary(IProgressMonitor progress) i C:\proj\skyline_22_2\pwiz_tools\Skyline\Model\Lib\BiblioSpecLiteBuilder.cs:linje 161
Nick Shulman responded:  2023-07-08 14:01

Can you send us your file "test.mzML" and your .ssl file?
Files which are less than 50MB can be attached to this support request.
You can upload larger files here:

The error "No spectra were found for the new library" usually means that BiblioSpec was not able to find the spectrum in the .mzML which corresponded to the value in the "scan" column.
When you have simple numbers in the "scan" column in a .ssl file, I believe that is supposed to be the position of the spectrum in the file. I can never remember whether BiblioSpec starts counting at zero or at one.
How many spectra are in "test.mzML"? If the file has more than 5885 spectra in it, the I would expect BiblioSpec to be able to find spectrum #5885.

If test.mzML only contains a subset of the spectra that were in the original raw file, and you were hoping to refer to the spectra by the ID's that they had in the original raw file, then I believe that is not going to work (but I might be wrong).

BlibBuild.exe is a program that you can run from the commandline.
If you are running BlibBuild.exe yourself, you can specify the "-v warn" parameter in order to get more information.

That is, you could open up a Command Prompt window and run the following command:
C:\Users\marti\AppData\Local\Apps\2.0\82ODZ185.JON\AEKA4571.RW6\skyl..tion_2e441fc3bf6adc7f_0016.0002_8463f90593c7905a\BlibBuild.exe -v warn D:\P047\02_Data\Test\Novor\test.ssl mylibrary.redundant.blib

If you do that, then, because of the "-v warn", BiblioSpec might give you more information about what spectrum identifiers it was looking for and was not able to find.

-- Nick

mnt responded:  2023-07-09 03:17

Hi Nick

Thanks a lot for the very quick reply I have attached both the ssl and mzML file. In this case the mzml fil is generated from a mgf file which is also attached.

For this case, the data is not biological, it is only to test a principle from a pipeline i'm attempting to build which would in the end generate a ssl file for skyline, the hope would here be to use skyline to validate and quantify the transitions of the ssl file across a larger dataset.

Would an alternative be to do the "Index=x" trick for the scan column where the x is repressenting the 1-based indexing of the scan? Would that be a better solution? If yes, i tried that and i still could not make it work as it generated a similar error (atleast the title was the same, maybe that's something on my end?).

I am not runing it from the command promt at this point, I might be looking into that in the future, but for now I'm not familiar enough with the paramaters and how to use that (maybe you could ad a link for the relevant dockumentation (commands, argumetns and examples), just for future "entertainment"?).


Nick Shulman responded:  2023-07-09 08:46
My guess would be that the only things you would be able to put in the "scan" column of your .ssl file would be an integer between 0 and 4 because your .mzML file only has 5 spectra in it.
It is imaginable that the number you have there "5585" could potentially match the line in the .mzML file:
<cvParam cvRef="MS" accession="MS:1000797" name="peak list scans" value="5885"/>
but as far as I know, BiblioSpec never pays attention to that value in a .mzML file.

Is there a reason that you do not want to populate the "scan" column in your .ssl file with the zero-based indexes of the spectra?

I am not the expert on spectrum identifiers in .ssl files, so it is possible that someone will be able to give you a better answer on Monday.
-- Nick
mnt responded:  2023-07-10 04:15
Hi Nick

Thanks a lot for the quick reply. :)

I had a chance to test this solution and i think it works, thanks.

Regarding the 5885, i'm unsure why this is it, it was simply what was written in the demo data of a software i'm trying to use. My guess is that they took a few scan examples and merged them in a file and thats it.

So, a few follow up questions so that i can ensure that my code will solve it correctly in the future. Am i correct when i ashume that the number in the scan column should be the 0 based integer of the scan index for the scan in question within the mzML file of its orrigin? In other words, it should not be the scanID or a scan-number or anything else?

Sorry for the cryptic questions, but i'm trying to figure out how to construct my commands for executing the titleMaker in MSconvert.exe so that it will generate the correct mgf file for searching while also generating the correct mzML fil for matching the searchresults using skyline.

Once again, thanks a lot for the help. :)