/nmdc-schema

National Microbiome Data Collaborative (NMDC) unified data model

Primary LanguagePythonCreative Commons Zero v1.0 UniversalCC0-1.0

Long NMDC logo

National Microbiome Data Collaborative Schema

PyPI - License PyPI version

The mission of the NMDC is to build a FAIR microbiome data sharing network, through infrastructure, data standards, and community building, that addresses pressing challenges in environmental sciences. The NMDC platform is built on top of a unified data model (schema) that weaves together existing standards and ontologies to provide a systematic representation of all aspects of the microbiome data life cycle.

This repository mainly defines a LinkML schema for managing metadata from the National Microbiome Data Collaborative (NMDC).

Documentation

The documentation for the NMDC schema can be found at https://microbiomedata.github.io/nmdc-schema/. This documentation is aimed at consumers of NMDC data and metadata, it describes the different data elements used to describe studies, samples, sample processing, data generation, workflows, and downstream data objects.

The NMDC Introduction to metadata and ontologies primer provides some the context for this project.

The remainder of this page is primary for the internal maintainers and contributors to the NMDC schema

Repository Contents Overview

Some products that are maintained, and tasks orchestrated within this repository are:

  • Maintenance of LinkML YAML that specifies the NMDC Schema
  • Makefile targets for converting the schema from it's native LinkML YAML format to other artifact like JSON Schema
  • Build, deployment and distribution of the schema as a PyPI package
  • Automatic publishing of refreshed documentation upon change to the schema, accessible here

Maintaining the Schema

See DEVELOPMENT.md for instructions on setting up a development environment.

See MAINTAINERS.md for instructions on using that development environment to maintain the schema.

Makefiles

Makefiles are text files people can use to tell make (a computer program) how it can make things (or—in general—do things). In the world of Makefiles, those things are called targets.

This repo contains 2 Makefiles:

  • Makefile, based on the generic Makefile from the LinkML cookiecutter
  • project.Makefile, which contains targets that are specific to this project

Here's an example of using make in this repo:

# Deletes all files in `examples/output`.
make examples-clean

The examples-clean target is defined in the project.Makefile. In this repo, the Makefile includes the project.Makefile. As a result, make has access to the targets defined in both files.

Data downloads

The NMDC's metadata about biosamples, studies, bioinformatics workflows, etc. can be obtained from our nmdc-runtime API. Try entering "biosample_set" or "study_set" into the collection_name box at https://api.microbiomedata.org/docs#/metadata/list_from_collection_nmdcschema__collection_name__get

Or use the API programmatically! Note that some collections are large, so the responses are paged.

You can learn about the other available collections at https://microbiomedata.github.io/nmdc-schema/Database/