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
pythonmaps 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.distinto a new file.envand fill it out:HASURA_URLcan be copied fromariadne-prod.ymlHASURA_ADMIN_SECRETcan 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.tomlSome Python files in ./scratch are available to seed the Gumbo task results table.