Partly failed import of MRM3 data

support
Partly failed import of MRM3 data h l elfrink  2024-05-02 04:13
 

Dear Nick, Brendan and/or colleagues from Skyline support,

To satisfy a prerequisite of a journal, reviewer and to attempt to comply with FAIR data principles, we are trying to upload MRM3 data to Panorama. I have previously asked for help to upload the data making a method, we have found a work-around and have succesfully uploaded data to Skyline in a method.

Unfortunately, a substantial part of the data-files failed to upload, while others do. Uploading the 'faulty' data provides this error message:

At 10:05:
Failed importing results file 'C:\Users\Hyung\Surfdrive\Projects\2020\P20-0001_COVID-19\Data\20240425_Exp134_RepositoryUpload\220503_Exp111_batch02\renamed_files\220503_019_MRM3_30089A1_10uL.wiff2'.
[WiffFile2Impl::getInstrumentSerialNumber()] Object reference not set to an instance of an object.
pwiz.Skyline.Model.Results.ChromCacheBuildException: Failed importing results file 'C:\Users\Hyung\Surfdrive\Projects\2020\P20-0001_COVID-19\Data\20240425_Exp134_RepositoryUpload\220503_Exp111_batch02\renamed_files\220503_019_MRM3_30089A1_10uL.wiff2'.
[WiffFile2Impl::getInstrumentSerialNumber()] Object reference not set to an instance of an object. ---> System.Exception: [WiffFile2Impl::getInstrumentSerialNumber()] Object reference not set to an instance of an object.
at pwiz.CLI.msdata.ReaderList.read(String filename, MSData result, Int32 runIndex, ReaderConfig config)
at pwiz.ProteowizardWrapper.MsDataFileImpl..ctor(String path, Int32 sampleIndex, LockMassParameters lockmassParameters, Boolean simAsSpectra, Boolean srmAsSpectra, Boolean acceptZeroLengthSpectra, Boolean requireVendorCentroidedMS1, Boolean requireVendorCentroidedMS2, Boolean ignoreZeroIntensityPoints, Int32 preferOnlyMsLevel, Boolean combineIonMobilitySpectra, Boolean trimNativeId) in C:\proj\pwiz\pwiz_tools\Shared\ProteowizardWrapper\MsDataFileImpl.cs:line 200
at pwiz.Skyline.Model.Results.MsDataFilePath.OpenMsDataFile(Boolean simAsSpectra, Boolean preferOnlyMs1, Boolean centroidMs1, Boolean centroidMs2, Boolean ignoreZeroIntensityPoints) in C:\proj\pwiz\pwiz_tools\Skyline\Model\Results\MsDataFilePath.cs:line 295
at pwiz.Skyline.Model.Results.ChromCacheBuilder.BuildCache() in C:\proj\pwiz\pwiz_tools\Skyline\Model\Results\ChromCacheBuilder.cs:line 191
--- End of inner exception stack trace ---

It seems to me that the built-in msconvert module is throwing an error, pertaining the serial number of the MS. I checked the original Sciex data file that fails in Sciex OS (version 2.1.6.59781), and it does not seem to be corrupted, at least it opens normally. The MS data and metadata (serial number in the 'sample info') are also retrievable using Sciex OS (explorer module).

I also tried to convert the data in MS convert (version: 3.0.24094-d2966db), but I am not able to execute it properly. It also returns an error ([WiffFile2Impl::setSample()] Value cannot be null.). I think my colleague has previously reported this. I also tried to look in previous reported Skyline issues if I could find an answer to my question, but I was unable to find a solution for this problem.

Back to the Skyline upload: Is there a solution to upload all of our files?

Best regards,

Hyung Elfrink
Leiden University, Metabolomics and Analytics Centre.

P.S. I have attached my method file and I can share the data files per FTP.
P.P.S This is a link to the data that succeeded to upload, to Skyline and subsequently Panorama: https://panoramaweb.org/Leiden University - MAC/COVID-19 Mass Spectrometric MRM3 repository/targetedms-showPrecursorList.view?id=204275

 
 
h l elfrink responded:  2024-05-02 04:24

P.P.P.S the file I shared is named: Skyline_Issue_Partly_failed_import_of_MRM3_data.rar

 
Matt Chambers responded:  2024-05-02 09:21

The WIFF2 Sciex API we use has an IsCorrupted property on the Sample type. For 220124_095_MRM3_30055E7_10uL that returns False and I'm able to get the serial number. For 220124_096_MRM3_30056E8_10uL that returns True and a lot properties that are usually set are null. You're able to get the serial number with Sciex OS on that file?

 
Matt Chambers responded:  2024-05-02 09:25

But I'm not able to read spectra from either of them ("Null IGetStepSize"). These files may require an API update from Sciex.

 
h l elfrink responded:  2024-05-03 00:56

Dear Matt,

Thank you for your response.

I was indeed afraid that the problem was somehow connected to corruption of the data. The short answer to your first question is: yes. If i go in Explorer and ask for the sample information, it returns the serial number. I have to add that this information may already be baked into the sample report and the WIFF2 Sciex API retrieves the information from another location within the file. I have attached a powerpoint where I show I can retrieve the serial from the 'sample information'.

Indeed the correct extraction of the spectra are dependent on the API of Sciex (I have added more information in the PPT). Though, I must admit that not all transitions have a spectrum due to the nature of the intended use case of the method. Transition (experiment) 3 should always have a spectrum, see attached powerpoint.

So this is what I understand from our conversation, there are two problems:
1.The Wiff2 Sciex API detects a 'corrupted' file and effectively disables the file from being read. That is preventing a some of my data to be read into Skyline.
2. We may have corrupted files, that are not detected by Sciex OS, but are detected by the WIFF2 Sciex API.

Does this mean we wait for an update of the API and address the corruption issue to Sciex, too?

Best regards,

Hyung

 
h l elfrink responded:  2024-05-03 06:36

I meant to say:
2. We may have corrupted files, which corruption is not detected by Sciex OS, but is detected by the WIFF2 Sciex API.

 
Matt Chambers responded:  2024-05-03 13:53

I have sent off a query about an API update. I can't really tell you for sure whether those files are truly corrupt or not. But I get the "Null IStepSize" for all experiments in those files.

 
h l elfrink responded:  2024-06-17 04:58

Dear Matt, or colleagues,

Indeed, I also get (and have gotten) the "Null |StepSize" error in msconvert. Is there more news about the update of msconvert to handle MRM3 data? Maybe, more news on the API update from Sciex?

With kind regards,

Hyung

 
Matt Chambers responded:  2024-06-24 08:01

Hi Hyung, it should work better now. The data won't look pretty though because it'll turn off framing zeros when they cause spectrum retrieval to break. But if you're doing targeted signal extraction (like extract all the intensity between 123 and 124 m/z), it should work ok.

 
h l elfrink responded:  2024-07-01 06:58

Dear Matt,

Thanks for the message. I have tried to upload our data using the Skyline-daily (Skyline-daily (64-bit) 24.0.9.171 (57ebe87e6)), but that still returned the 'Get instrument serial number error' for the same files as before (meaning not all files threw this error).

I also tried to convert the data with msconvert (Version: 3.0.24182-63b21da (automated build)), indeed the "Null IStepSize" is gone, but it now throws a "setSample()] Value cannot be null" error (in the app).

Is there something I can do to handle this error?

Best regards,

Hyung

 
h l elfrink responded:  2024-07-01 07:03

Dear Matt,

I just realized I am back at my original question, excuse me for that.

Best,

Hyung

 
Matt Chambers responded:  2024-07-09 08:30

Which file throws "[setSample()] Value cannot be null"? Perhaps that Skyline-daily didn't have the fix. There's a newer one, 24.0.9.184. See if it's fixed there? (I expect it to throw the same setSample error though).