The CIDC data model and tools for working with it.
Project description
cidc-schemas
This repository contains formal definitions of the CIDC metadata model using json-schema syntax and vocabulary.
View documentation at https://nci-cidc.github.io/cidc-schemas/
Installation
To install the latest released version, run:
pip install nci-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 inschemas/templates
, and.csv
s auto-generated from those.xlsx
s that allow to transparently keep track of changes in them.tests/
- tests for thecidc_schemas
module..githooks/
- git hooks, e.g. for auto-generating.csv
s intemplate_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
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:NCI-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
Built Distribution
Hashes for nci_cidc_schemas-0.26.20-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4143b04defe25654a4c89fff95afc0a1a87760b200507761a5194f95f60c1dcb |
|
MD5 | 8d1610307df9db8349cec8717ec8435c |
|
BLAKE2b-256 | 9e16f8c7a35b49a9f452a4d1955c781128094cb31ecf5c1d6b665d2583f3775e |