Skip to content

Silently failing on some raw files #144

@wsnoble

Description

@wsnoble

In using ThermoRFP to process raw files from a number of PRIDE projects, I find that the software reproducibly and silently fails on a small subset of files. The behavior is to run for ~1 s and then produce a zero-length output file. No error status is indicated by the program. I have verified that the download is working properly.

Here are some example raw files that fail to convert from the project PXD027241.

 proteome_GS_E9.raw
 proteome_CB_E8.raw
 proteome_CB_E3.raw
 as_p_e6.raw
 as_p_e13.raw
 Prot_7_180708021614.raw
 Prot_3_180707132051.raw
 P_E7.raw

In constructing a sample command line to show you, I noticed something very strange: the above behavior only happens when I use absolute pathnames. For example, this command gives the behavior described above:

 mono ~/software/ThermoRawFileParser.v1.4.0/ThermoRawFileParser.exe --output_file=/net/noble/vol1/data/crux-datasets/2022siddiqui-new/DDA/P_E7.mgf --logging=0 --format=0 --input=/net/noble/vol1/data/crux-datasets/2022siddiqui-new/DDA/P_E7.raw

However, if I cd to the directory /net/noble/vol1/data/crux-datasets/2022siddiqui-new/DDA and then issue the command without the pathnames, I see something quite different (and more informative):

$ mono ~/software/ThermoRawFileParser.v1.4.0/ThermoRawFileParser.exe --output_file=P_E7.mgf --format=0 --input=P_E7.raw
2022-09-22 09:39:01 INFO Started parsing P_E7.raw
2022-09-22 09:39:01 INFO Processing 1 scans
2022-09-22 09:39:01 ERROR An unexpected error occured while parsing file:P_E7.raw
2022-09-22 09:39:01 ERROR System.IndexOutOfRangeException: The scan number must be >= 0 and <= 0.
  at ThermoFisher.CommonCore.RawFileReader.StructWrappers.VirtualDevices.MassSpecDevice.ThrowScanNumberRangeException () [0x0002a] in <38096e861d444fd896cbda1ff335437f>:0 
  at ThermoFisher.CommonCore.RawFileReader.StructWrappers.VirtualDevices.MassSpecDevice.GetValidIndexIntoScanIndices (System.Int32 scanNumber) [0x00027] in <38096e861d444fd896cbda1ff335437f>:0 
  at ThermoFisher.CommonCore.RawFileReader.StructWrappers.VirtualDevices.MassSpecDevice.GetRetentionTime (System.Int32 spectrum) [0x00000] in <38096e861d444fd896cbda1ff335437f>:0 
  at ThermoFisher.CommonCore.RawFileReader.RawFileAccessBase.RetentionTimeFromScanNumber (System.Int32 scanNumber) [0x0000b] in <38096e861d444fd896cbda1ff335437f>:0 
  at ThermoRawFileParser.Writer.MgfSpectrumWriter.Write (ThermoFisher.CommonCore.Data.Interfaces.IRawDataPlus rawFile, System.Int32 firstScanNumber, System.Int32 lastScanNumber) [0x00093] in <7a789c83cb9d4db2bd14ef83a0b964a9>:0 
  at ThermoRawFileParser.RawFileParser.ProcessFile (ThermoRawFileParser.ParseInput parseInput) [0x000d9] in <7a789c83cb9d4db2bd14ef83a0b964a9>:0 
  at ThermoRawFileParser.RawFileParser.TryProcessFile (ThermoRawFileParser.ParseInput parseInput) [0x00000] in <7a789c83cb9d4db2bd14ef83a0b964a9>:0 

So now my question is two-fold: (1) why does this error message only show up when I don't include pathnames in the command line, and (2) what does this error message mean? Logically, The scan number must be >= 0 and <= 0. makes no sense, right? It seems like the error message is saying that the scan number must be equal to zero!

The real question, of course, is how can I go about converting these problematic raw files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions