Skip to content

Migration core data structure to SummarizedExperiment #15

Description

@fubin1999

Many glycoverse packages, including glyexp, glyread, glyclean, glystats, glyvis, and glydet should end up on Bioconductor, which requires reuse of existing Bioconductor data containers like SummarizedExperiment.

The current experiment() class is actually re-inventing the wheel, and should be deprecated in the future. Instead, we should provide GlycomicSE and GlycoproteomicSE, subclassing and as a thin wrapper of SummarizedExperiment, providing minimum necessary rowData schema. For example, for GlycomicSE , a glycan_composition column is required, and for GlycoproteomicSE , protein, protein_site, and glycan_composition are required.

The downstream functions like glyclean should not be enforced to use these classes though. SummarizedExperiment, or preferably tidySummarizedExperiment can also be accepted. These two new classes should only act as the recommended containers, as they ensures the contracts to be met.

The roadmap of this migration has many stages:

  1. Stage I - Building up the foundation
    • Add GlycomicSE and GlycoproteomicSE in glyexp.
    • Add support to GlycomicSE , GlycoproteomicSE , and SummarizedExperiment for downstream packages including glyclean, glystats, glyvis, and glydet.
  2. Stage II - Recommend the new and deprecate the old
    • Deprecate experiment() and related functions in glyexp, and make real_experiment and real_experiment2 GlycomicSE and GlycoproteomicSE.
    • Make glyread functions return GlycomicSE or GlycoproteomicSE.
    • Update document of all packages to use GlycomicSE or GlycoproteomicSE as the data container.
  3. Stage III - Remove the old
    • Completely remove experiment() and related functions from glyexp
    • Downstream packages no longer support experiment() anymore
    • Add a "History of glyexp" article to record this migration.

Stage II should last at least half an year before moving on to Stage III.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    upkeepmaintenance, infrastructure, and similar

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions