Skip to main content

The CIDC data model and tools for working with it.

Project description

cidc-schemas

Branch Status Maintainability Test Coverage Code Style
master Continuous Integration Maintainability Test Coverage Code style: black

This repository contains formal definitions of the CIDC metadata model using json-schema syntax and vocabulary.

View documentation at https://cimac-cidc.github.io/cidc-schemas/

Installation

To install the latest released version, run:

pip install cidc-schemas

Development

Project Structure

  • cidc_schemas/ - a python module for generating, validating, and reading manifest and assay templates.
    • schemas/ - json specifications defining the CIDC metadata model.
      • templates/ - schemas for generating and validating manifest and assay templates.
      • assays/ - schemas for defining assay data models.
      • artifacts/ - schemas for defining artifacts.
  • docs/ - the most recent build of the data model documentation, along with templates and scripts for re-generating the documentation.
  • template_examples/ - example populated Excel files for template specifications in schemas/templates, and .csvs auto-generated from those .xlsxs that allow to transparently keep track of changes in them.
  • tests/ - tests for the cidc_schemas module.
  • .githooks/ - git hooks, e.g. for auto-generating .csvs in template_examples/ and .html documentation files.

Developer Setup

Install necessary dependencies.

pip install -r requirements.dev.txt

Install and configure pre-commit hooks.

pre-commit install

JIRA Integration

To set-up the git hook for JIRA integration, run:

ln -s ../../.githooks/commit-msg .git/hooks/commit-msg
chmod +x .git/hooks/commit-msg
rm .git/hooks/commit-msg.sample

This symbolic link is necessary to correctly link files in .githooks to .git/hooks. Note that setting the core.hooksPath configuration variable would lead to pre-commit failing. The commit-msg hook runs after the pre-commit hook, hence the two are de-coupled in this workflow.

To associate a commit with an issue, you will need to reference the JIRA Issue key (For eg 'CIDC-1111') in the corresponding commit message.

Running tests

This repository has unit tests in the tests folder. After installing dependencies the tests can be run via the command

pytest tests

Building documentation

Pre-commit hooks ensure documentation is automatically up-to date. To build the documentation manually, run the following commands:

python setup.py install # install helpers from the cidc_schemas library
python docs/generate_docs.py

This will output the generated html documents in docs/docs. If the updated docs are pushed up and merged into master, they will be viewable at https://cimac-cidc.github.io/cidc-schemas/.

Using the Command-Line Interface

This project comes with a command-line interface for validating schemas and generating/validating assay and manifest templates.

Install the CLI

Clone the repository and cd into it

git clone git@github.com:CIMAC-CIDC/cidc-schemas.git
cd cidc-schemas

Install the cidc_schemas package (this adds the cidc_schemas CLI to your console)

python setup.py install

Run cidc_schemas --help to see available options.

If you're making changes to the module and want those changes to be reflected in the CLI without reinstalling the cidc_schemas module every time, run

python3 -m cidc_schemas.cli [args]

Generate templates

Create a template for a given template configuration.

cidc_schemas generate_template -m templates/manifests/pbmc_template.json -o pbmc.xlsx

Validate filled-out templates

Check that a populated template file is valid with respect to a template specification.

cidc_schemas validate_template -m templates/manifests/pbmc_template.json -x template_examples/pbmc_template.xlsx

Validate JSON schemas

Check that a JSON schema conforms to the JSON Schema specifications.

cidc_schemas validate_schema -f shipping_core.json

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cidc_schemas-0.25.51.tar.gz (280.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cidc_schemas-0.25.51-py2.py3-none-any.whl (192.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file cidc_schemas-0.25.51.tar.gz.

File metadata

  • Download URL: cidc_schemas-0.25.51.tar.gz
  • Upload date:
  • Size: 280.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for cidc_schemas-0.25.51.tar.gz
Algorithm Hash digest
SHA256 8a0aeb2b327e917f8a69e9392b1798565e7a594e00b4d1e4498f215d215d7149
MD5 225dfd22a9b3f679f886de907a0aa3d1
BLAKE2b-256 0835c7396a7fb76c47e89bc64646faaa41b94c27de613fd1f203618d69d5e9ab

See more details on using hashes here.

File details

Details for the file cidc_schemas-0.25.51-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for cidc_schemas-0.25.51-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 96c6ec9839f1ff56483ac00fa23a786f2ec9c0a55e6462ad6c3cd3d32183cf5c
MD5 d8e08f88f0c04caa12a3f77767d2d05b
BLAKE2b-256 dbdad3da231189a0902d244841a1fc86fb3cdda22a6e50a977e34661a3b6dffe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page