Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The synapseAnnotations Github repo includes schemas for individual terms. Each term is stored in a JSON mini-schema (see figure). The terms are organized by modules in the terms folder. There are subfolders for each module, and the term names include the module. The mechanisms that manage and implement these annotations are described in the README.

Each term is stored in a JSON mini-schema, such as the following:

Code Block
languagejson
{   $schema": "<http://json-schema.org/draft-07/schema#",>
    "$id": "<https://repo-prod.prod.sagebase.org/repo/v1/schema/type/registered/sage.annotations-experimentalData.specimenID-0.0.1",>
    "description": "Identifying string linked to a particular sample or specimen",
    "type": "string"
}

...

Edit Schema

  • Edit JSON Schema file

    • Copy and Paste Schema template into the new file

    • Edit $id line with <MODULENAME> and <KEY>

    • Version numbers start with 0.0.1 and should be incremented with each update

    • Edit term:

    • Commit changes to a new branch

  • Schema validation checks will start to run in the background. These must successfully PASS.

  • Open a Pull Request and select DCC curators as reviewers

Update Schemas

  • With Once the PRs merged, are approved, it is necessary to update the Metadata Dictionary needs to be updated.

...

  • To register the schemas in Synapse run the register-schemas.R script.

    • To register all schemas, run ./register-schemas.R terms/*/*.json

    • Learn more about this script, run ./register-schemas.R --help

  • To update the Synapse annotations table, run update-annotations-table.R

  • Github sysbioDCCjsonschemas repo

  • Add/Remove terms from XLS template file. Alternatively, this can be done programmatically with JSON.

...