LinkML Schema for ACR Harmonized Data. This model under development is intended to capture useful cross-study data in the AnVIL data repository.
https://anvilproject.github.io/acr-harmonized-data-model
- examples/ - example data
- project/ - project files (do not edit these)
- src/ - source files (edit these)
- tests/ - Python tests
You can build the model using link-ml calls or using the makefile/justfile.
- Python 3.12 (3.13 support coming for linkml)
- LinkML 1.8.6
- Pydantic 2.10.6
- mkdocs required to generate the documentation website
Tools to install:
pip install linkml
pip install mkdocs
pip install mkdocs-mermaid2-plugin
It can be helpful to review the schema for compliance with linkml conventions. To run a check for all files against the default standards the following command can be run.
linkml-lint ./src/acr_harmonized_data_model
Here is the command to generate default artifacts if there is a need.
gen-project -d anvil ./src/acr_harmonized_data_model/schema/acr_harmonized_data_model.yaml
gen-doc -d docs ./src/acr_harmonized_data_model/schema/acr_harmonized_data_model.yaml
mkdocs build
The DD export uses ftd-dd library to generate the CSV Files. This has been integrated into the command make site, but can also be run manually.
You can install this library using pip:
pip install -r requirements.txt
or via the makefile
make install
Once installed, the dd-files can be built manually:
linkml_extract_dd src/acr_harmonized_data_model/schema/acr_harmonized_data_model.yaml
Otherwise, just build the site as usual and the data-dictionary will be created alongside the rest of the artifacts.
make site
Resulting DD files can be found in: project/data-dictionary
To run commands you may use good old make or the command runner just which is a better choice on Windows.
Use the make
command or duty
commands to generate project artefacts:
make help
orjust --list
: list all pre-defined tasksmake all
orjust all
: make everythingmake deploy
orjust deploy
: deploys sitemake test
orjust test
: run tests on the model and examples
This project was made with linkml-project-cookiecutter.