HUPO-PSI / mzML

Repository for mzML and the corresponding examples
26 stars 16 forks source link

Mapping for the ion mobility terms #13

Closed chambm closed 8 months ago

chambm commented 9 months ago

ProteoWizard has for years been writing the individual scan ion mobility CV terms in the wrong place (according to the mapping file), but I think it's the CV terms that should be changed. The CV has them as "ion selection attributes" which the mapping file only allows as a child of "selectedIon". MS1 spectra won't have a "selectedIon" (or a precursor), but MS1s are frequently still separated by ion mobility. ProteoWizard has been writing these terms in the element. Can we update this term to be a scan attribute, or perhaps both (for backward compatibility?). Or at least not somewhere that's not limited to MSn scans? I think my last message about this was sent to the vocab mailing list back in 2016, so obviously it isn't urgent, but it also shouldn't be hard to fix if a fix is warranted.

We should also consider putting "collisional cross section" in an attribute type that can go in the mzML somewhere. I'm not sure exactly where. It's a molecular property, but it's also possible to convert an instrument's mobility value to CCS if it's calibrated and you know the charge and gas and such. So theoretically a CCS could go anywhere a raw ion mobility value could go?

These terms would be affected:

[Term]
id: MS:1002815
name: inverse reduced ion mobility
def: "Ion mobility measurement for an ion or spectrum of ions as measured in an ion mobility mass spectrometer. This might refer to the central value of a bin into which all ions within a narrow range of mobilities have been aggregated." [PSI:MS]
is_a: MS:1000455 ! ion selection attribute
is_a: MS:1002892 ! ion mobility attribute
is_a: MS:1003254 ! peak attribute
relationship: has_units MS:1002814 ! volt-second per square centimeter
relationship: has_value_type xsd:float ! The allowed value-type for this CV term

id: MS:1003371
name: SelexION compensation voltage
def: "The voltage applied in the SelexION device to allow certain ions to transmit through to the mass spectrometer." [PSI:MS]
is_a: MS:1002892 ! ion mobility attribute
is_a: MS:1000455 ! ion selection attribute
is_a: MS:1003254 ! peak attribute
relationship: has_units UO:0000218 ! volt
relationship: has_value_type xsd:float ! The allowed value-type for this CV term

[Term]
id: MS:1003394
name: SelexION separation voltage
def: "RF voltage applied in the SelexION device to separate ions in trajectory based on the difference in their mobility between the high field and low field portions of the applied RF." [PSI:MS]
is_a: MS:1002892 ! ion mobility attribute
is_a: MS:1000455 ! ion selection attribute
is_a: MS:1003254 ! peak attribute
relationship: has_units UO:0000218 ! volt
relationship: has_value_type xsd:float ! The allowed value-type for this CV term

[Term]
id: MS:1001581
name: FAIMS compensation voltage
def: "The DC potential applied to the asymmetric waveform in FAIMS that compensates for the difference between high and low field mobility of an ion." [PSI:MS]
synonym: "FAIMS CV" EXACT []
is_a: MS:1002892 ! ion mobility attribute
is_a: MS:1000455 ! ion selection attribute
is_a: MS:1003254 ! peak attribute
relationship: has_units UO:0000218 ! volt
relationship: has_value_type xsd:double ! The allowed value-type for this CV term

[Term]
id: MS:1002476
name: ion mobility drift time
def: "Drift time of an ion or spectrum of ions as measured in an ion mobility mass spectrometer. This time might refer to the central value of a bin into which all ions within a narrow range of drift time have been aggregated." [PSI:MS]
is_a: MS:1000455 ! ion selection attribute
is_a: MS:1002892 ! ion mobility attribute
is_a: MS:1003254 ! peak attribute
relationship: has_units UO:0000028 ! millisecond
relationship: has_value_type xsd:float ! The allowed value-type for this CV term
chambm commented 9 months ago

Maybe I should move this to the CV repository?

edeutsch commented 9 months ago

I think it is okay here, we can address it here, but I don't really understand how you want to solve this. Can you maybe add a little more info with a proposed solution?

Also, there's no PSI-MS call this week due to travel, but I'm hoping we can resolve this next Friday. Might you be able to join the call next Friday to help clarify a proposed solution?

chambm commented 9 months ago

The proposed solutions are simple: for these terms, either replace "ion selection attribute" with "scan attribute" or add "scan attribute" to the list. Which one to use depends on whether we need to preserve semantic validity for any existing mzMLs that put the ion mobility attributes in the selectedIon element. I'm not aware of any that do.

The CCS issue is a bit more complex, probably worth discussing on a call. I'll try to join.

chambm commented 8 months ago

Joshua pointed out that ion mobility attribute is in fact a scan attribute, and the ion selection attribute is appropriate for selectedIon when referring to the precursor's ion mobility. So this is a non-issue. Except for the CCS thing. As discussed on the PSI call I'll make a PR for co-parenting the CCS as an ion mobility attribute.