MsIO provides flexible, language-agnostic import and export capabilities for mass spectrometry (MS) data objects in R. It facilitates interoperability by supporting various open file formats such as JSON, HDF5, plain text, and domain-specific standards like mzTab-M or MetaboLights archives.
While R’s native save()
/load()
functions allow object serialization, they
rely on R-specific binary formats, making cross-platform data exchange
difficult. MsIO addresses this by introducing standardized file formats
and programmatic interfaces, simplifying integration between R-based tools and
external software ecosystems.
- 📦 Export/import MS analysis results objects across interoperable file formats
- 🧩 Modular design via S4 parameter classes and generic methods
- 🔄 Integration with Bioconductor packages like Spectra, MsExperiment, xcms, and alabaster.base
- 🔧 Support for plain text, JSON+HDF5, mzTab-M, and MetaboLights repository data
saveMsObject(object, param)
readMsObject(object, param)
These methods delegate the actual file handling based on the class of the
supplied param
object (e.g., PlainTextParam
, AlabasterParam
).
Each format is encapsulated in a dedicated S4 class:
Class | Purpose |
---|---|
PlainTextParam |
Text-based tabular storage |
AlabasterParam |
HDF5/JSON archival via alabaster |
mzTabParam |
Export to mzTab-M (MS metabolomics) |
MetaboLightsParam |
Import from MetaboLights repository |
Corresponding logic is implemented in dedicated R/
files
(e.g. XcmsExperiment.R
, Spectra.R
), with new formats expected to follow
the same structure.
- Tab-delimited export/import for key objects:
MsBackendMzR
,Spectra
(from Spectra)MsExperiment
(from MsExperiment)XcmsExperiment
(from xcms)
- Structured archival using HDF5 and JSON (via
alabaster.base
) - Compatible with
MsExperiment
,Spectra
,XcmsExperiment
, etc.
- Export of
XcmsExperiment
preprocessing results to mzTab-M (HUPO PSI metabolomics standard)
- Import of complete experiments (including raw MS files) from MetaboLights
Future development directions include:
- 🔄 Import mzTab-M into
SummarizedExperiment
- 🔄 Import mzTab-M into
QFeatures
- 🔄 Generic ISA-tab import integration (if justified)
We welcome and encourage contributions — see below for how to get involved!
We appreciate contributions of all kinds — from bug fixes and tests to documentation and new format support.
If you're planning to contribute:
- Read our contribution guidelines
- Follow the RforMassSpectrometry style guide
- Fork the repo, create a branch, implement your changes, and submit a pull request
- For new formats, implement:
- A
*Param
S4 class - A
readMsObject()
and/orsaveMsObject()
method - Tests in
tests/testthat/
- A
This package is licensed under the Artistic 2.0 License:
📄 https://opensource.org/licenses/Artistic-2.0
Documentation (manuals, vignettes) is licensed under CC BY-SA 4.0:
📄 https://creativecommons.org/licenses/by-sa/4.0/