This repository contains WDL workflows and a Python module to continuously run workflows on new WGS samples.
-
Install the required system dependencies:
-
Install the required Python version (3.12.1):
pyenv install "$(cat .python-version)"
-
Confirm that
python
maps to the correct version:python --version
-
Set the Poetry interpreter and install the Python dependencies:
poetry env use "$(pyenv which python)" poetry install
-
Copy
env.dist
into a new file.env
and fill it out:HASURA_URL
can be copied fromariadne-prod.yml
HASURA_ADMIN_SECRET
can be copied from the hasura-admin-secret-prod secret
Download a service account key for omics-pipeline-runner and set the GOOGLE_APPLICATION_CREDENTIALS
environment variable to its location on your filesystem. This will simulate the permissions available inside the remote execution context.
TODO
Run pre-commit run --all-files
to automatically format your code with Ruff and check static types with Pyright.
Whenever possible, function/method arguments and return values should be validated with Pydantic or Pandera (if a data frame).
This repo uses ariadne-codegen to generate the gumbo_gql_client
module. It uses the folder of GraphQL queries (./gql
) and the current GraphQL schema for a particular Gumbo environment to generate all of the Python classes, Pydantic models, and query/mutation methods for interacting with the Gumbo GraphQL Service. To regenerate the module using the current production schema:
HASURA_ADMIN_SECRET=... poetry run ariadne-codegen --config ariadne-prod.toml
Some Python files in ./scratch
are available to seed the Gumbo task results table.