From: Lennart M. <len...@eb...> - 2008-08-14 10:35:17
|
Hi Wilfred, Great to have you on board, you're helping us out a lot with your comments and suggestions! Keep up the good work and thank you for your interest! > The referenceableParamGroup concept is a fantastic idea, but I have some > reservations about using it when I'm writing out mzML data. I'm > concerned that not all mzML parsers will understand this fully, and > there's no mechanism to force mzML parsers to treat > referenceableParamGroup properly. Well, one thing that we're thinking loudly about in PSI-MS is to cook up a validation scheme for readers and writers of mzML, so we can stamp such software as 'reliable' one way or the other. This would mean that they fully cover the mzML specifications. This obviously is not a new concept in software engineering, is therefore certainly doable, and it will make for a good next phase of the PSI-MS group. We've already had a preliminary thread on the subject, and I'm sure we'll see more about this topic on the mailing list over the coming months. > For example: > - Does the validator parse referenceableParamGroup references when > checking that all the "musts" are present? Yes, it certainly does. The current validator implementation uses the jmzML component to read mzML, which was developed by Richard Cote in my group to present a powerful Java component for developers to interact with mzML. It's very permissively licensed as Apache2, but keep in mind that the thing is still only in a good beta stage right now (works, but don't run a nuclear power plant on it). You can sort through the sourcecode for the things if you're technically inclined, and see the magic at work. Briefly, jmzML uses a very clever combination of JAXB schema-based object model generation, and the XPath-based XML Indexer to parse and materialize into objects parts of mzML files on-the-fly. In laymen's terms: the thing can handle very big mzML files (multiple gigabytes) without breaking a sweat, and will resolve all internal references automatically. So not only does it treat referenceableParamGroups as if they were physically present at the locations where they are referenced, it will do the same thing for references to instrumentconfigurations, precursor spectra, etc. So essentially, jmzML allows you to get a spectrum and ask it for the mass spectrometer source that was used in the instrumentconfiguration that was used to acquire the spectrum. All this even though the actual description of the source in the instrument configuration is miles away (or rather: gigabytes away) in the actual mzML file. I hope you see why I love the little gadget :). Hope this helps! Cheers, lnnrt. |