Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions .github/workflows/pr-build-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@ jobs:
runs-on: ubuntu-latest
outputs:
herpesdrg: ${{ steps.filter.outputs.herpesdrg }}
hsv_daehne_jaki: ${{ steps.filter.outputs.hsv_daehne_jaki }}
simplexvirus-db: ${{ steps.filter.outputs.simplexvirus-db }}
stanford-hiv: ${{ steps.filter.outputs.stanford-hiv }}
who-influenza: ${{ steps.filter.outputs.who-influenza }}
charmd: ${{ steps.filter.outputs.charmd }}
any: ${{ steps.filter.outputs.any }}
steps:
Expand All @@ -36,15 +37,18 @@ jobs:
- 'databases/charmd/**'
herpesdrg:
- 'databases/herpesdrg/**'
hsv_daehne_jaki:
- 'databases/hsv_daehne_jaki/**'
simplexvirus-db:
- 'databases/simplexvirus-db/**'
stanford-hiv:
- 'databases/stanford-hiv/**'
who-influenza:
- 'databases/who-influenza/**'
any:
- 'databases/charmd/**'
- 'databases/herpesdrg/**'
- 'databases/hsv_daehne_jaki/**'
- 'databases/simplexvirus-db/**'
- 'databases/stanford-hiv/**'
- 'databases/who-influenza/**'
- 'scripts/respro_build_qc.py'
- '.github/actions/respro-build-qc/**'
- '.github/workflows/pr-build-check.yml'
Expand All @@ -65,12 +69,15 @@ jobs:
- name: herpesdrg
dir: databases/herpesdrg/output
changed: ${{ needs.detect-changed-databases.outputs.herpesdrg }}
- name: hsv_daehne_jaki
dir: databases/hsv_daehne_jaki/output
changed: ${{ needs.detect-changed-databases.outputs.hsv_daehne_jaki }}
- name: simplexvirus-db
dir: databases/simplexvirus-db/output
changed: ${{ needs.detect-changed-databases.outputs.simplexvirus-db }}
- name: stanford-hiv
dir: databases/stanford-hiv/output
changed: ${{ needs.detect-changed-databases.outputs.stanford-hiv }}
- name: who-influenza
dir: databases/who-influenza/output
changed: ${{ needs.detect-changed-databases.outputs.who-influenza }}

steps:
- name: Checkout
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: HSV Daehne Jaki Autobump
name: Simplexvirus DB Autobump

on:
workflow_dispatch:
Expand All @@ -10,7 +10,7 @@ permissions:
pull-requests: write

jobs:
update-hsv-database:
update-simplexvirus-db:
runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -74,7 +74,7 @@ jobs:
import sys

latest = "${{ steps.zenodo.outputs.record_id }}"
metadata_path = "databases/hsv_daehne_jaki/output/metadata.json"
metadata_path = "databases/simplexvirus-db/output/metadata.json"

current = ""
if os.path.exists(metadata_path):
Expand Down Expand Up @@ -103,14 +103,14 @@ jobs:
if: steps.update_check.outputs.should_update == 'true'
run: |
python -m pip install --upgrade pip
python -m pip install -r databases/hsv_daehne_jaki/scripts/requirements.txt
python -m pip install -r databases/simplexvirus-db/scripts/requirements.txt

- name: Run converter
if: steps.update_check.outputs.should_update == 'true'
run: |
python databases/hsv_daehne_jaki/scripts/convert.py \
python databases/simplexvirus-db/scripts/convert.py \
--source-url "${{ steps.zenodo.outputs.source_url }}" \
--output-dir databases/hsv_daehne_jaki/output
--output-dir databases/simplexvirus-db/output

- name: Build global metadata manifest
if: steps.update_check.outputs.should_update == 'true'
Expand All @@ -122,8 +122,8 @@ jobs:
if: steps.update_check.outputs.should_update == 'true'
uses: ./.github/actions/respro-build-qc
with:
source-name: hsv_daehne_jaki
output-dir: databases/hsv_daehne_jaki/output
source-name: simplexvirus-db
output-dir: databases/simplexvirus-db/output
work-dir: /tmp/respro_qc

- name: No update detected
Expand All @@ -136,10 +136,10 @@ jobs:
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: autobump/hsv-daehne-jaki
branch: autobump/simplexvirus-db
delete-branch: true
commit-message: "chore(hsv-daehne-jaki): autobump Zenodo outputs"
title: "chore: autobump hsv daehne jaki outputs"
commit-message: "chore(simplexvirus-db): autobump Zenodo outputs"
title: "chore: autobump simplexvirus-db outputs"
body: |
Automated monthly update for HSV Daehne/Jaki source data.

Expand All @@ -153,14 +153,14 @@ jobs:
This PR was generated by the autobump workflow.
labels: autobump
add-paths: |
databases/hsv_daehne_jaki/output/rules.tsv
databases/hsv_daehne_jaki/output/formula-rules.tsv
databases/hsv_daehne_jaki/output/metadata.json
databases/hsv_daehne_jaki/output/non-migrated-rules.txt
databases/simplexvirus-db/output/rules.tsv
databases/simplexvirus-db/output/formula-rules.tsv
databases/simplexvirus-db/output/metadata.json
databases/simplexvirus-db/output/non-migrated-rules.txt
databases/manifest.json

- name: Mark workflow failed on respro build error
if: steps.update_check.outputs.should_update == 'true' && steps.qc.outputs.qc_failed == 'true'
run: |
echo "respro build QC failed for hsv_daehne_jaki; see the PR body and the 'respro build QC' step log."
echo "respro build QC failed for simplexvirus-db; see the PR body and the 'respro build QC' step log."
exit 1
30 changes: 15 additions & 15 deletions .github/workflows/who-influenza-autobump.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ permissions:
pull-requests: write

env:
OUTPUT_DIR: databases/WHO_Influenza/output
OUTPUT_DIR: databases/who-influenza/output
SOURCE_DIR: /tmp/who_source
LOOKUP_FILE: databases/WHO_Influenza/scripts/reference-lookup.tsv
LOOKUP_FILE: databases/who-influenza/scripts/reference-lookup.tsv

jobs:
update-who-influenza:
Expand Down Expand Up @@ -84,13 +84,13 @@ jobs:
if: steps.update_check.outputs.should_update == 'true'
run: |
set -euo pipefail
pip install -r databases/WHO_Influenza/scripts/requirements.txt
pip install -r databases/who-influenza/scripts/requirements.txt

- name: Resolve citation DOIs
if: steps.update_check.outputs.should_update == 'true'
run: |
set -euo pipefail
python databases/WHO_Influenza/scripts/resolve_references.py \
python databases/who-influenza/scripts/resolve_references.py \
--source-dir "${SOURCE_DIR}" \
--lookup-file "${LOOKUP_FILE}" \
--delay 0.5
Expand All @@ -99,7 +99,7 @@ jobs:
if: steps.update_check.outputs.should_update == 'true'
run: |
set -euo pipefail
python databases/WHO_Influenza/scripts/convert.py \
python databases/who-influenza/scripts/convert.py \
--source-dir "${SOURCE_DIR}" \
--lookup-file "${LOOKUP_FILE}" \
--output-dir "${OUTPUT_DIR}"
Expand All @@ -114,8 +114,8 @@ jobs:
if: steps.update_check.outputs.should_update == 'true'
uses: ./.github/actions/respro-build-qc
with:
source-name: WHO_Influenza
output-dir: databases/WHO_Influenza/output
source-name: who-influenza
output-dir: databases/who-influenza/output
work-dir: /tmp/respro_qc

- name: No update detected
Expand All @@ -130,7 +130,7 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
branch: autobump/who-influenza
delete-branch: true
commit-message: "chore(WHO_Influenza): autobump source outputs"
commit-message: "chore(who-influenza): autobump source outputs"
title: "chore: autobump WHO Influenza outputs"
body: |
Automated monthly update for the WHO influenza marker tables.
Expand All @@ -144,16 +144,16 @@ jobs:
This PR was generated by the autobump workflow.
labels: autobump
add-paths: |
databases/WHO_Influenza/output/rules.tsv
databases/WHO_Influenza/output/formula-rules.tsv
databases/WHO_Influenza/output/metadata.json
databases/WHO_Influenza/output/non-migrated-rules.txt
databases/WHO_Influenza/output/source-state.json
databases/WHO_Influenza/scripts/reference-lookup.tsv
databases/who-influenza/output/rules.tsv
databases/who-influenza/output/formula-rules.tsv
databases/who-influenza/output/metadata.json
databases/who-influenza/output/non-migrated-rules.txt
databases/who-influenza/output/source-state.json
databases/who-influenza/scripts/reference-lookup.tsv
databases/manifest.json

- name: Mark workflow failed on respro build error
if: steps.update_check.outputs.should_update == 'true' && steps.qc.outputs.qc_failed == 'true'
run: |
echo "respro build QC failed for WHO_Influenza; see the PR body and the 'respro build QC' step log."
echo "respro build QC failed for who-influenza; see the PR body and the 'respro build QC' step log."
exit 1
22 changes: 0 additions & 22 deletions databases/WHO_Influenza/example/example.fasta

This file was deleted.

48 changes: 24 additions & 24 deletions databases/manifest.json
Original file line number Diff line number Diff line change
@@ -1,25 +1,6 @@
{
"respro_version": ">=0.2.0",
"databases": [
{
"source_name": "WHO_Influenza",
"metadata_path": "databases/WHO_Influenza/output/metadata.json",
"rules_path": "databases/WHO_Influenza/output/rules.tsv",
"formula_rules_path": "databases/WHO_Influenza/output/formula-rules.tsv",
"example_fasta_path": "databases/WHO_Influenza/example/example.fasta",
"metadata": {
"maintainers": [
"Expert Working Group on Antiviral Susceptibility"
],
"contact": "gisrs-whohq@who.int",
"publication_pmid": "",
"website": "https://www.who.int/teams/global-influenza-programme/laboratory-network/quality-assurance/antiviral-susceptibility-influenza",
"description": "WHO influenza antiviral susceptibility marker tables: neuraminidase inhibitor resistance markers for human and avian influenza viruses and polymerase acidic (PA) baloxavir markers, curated from the WHO marker tables.",
"maintainer_update": "2026-07-17",
"license": "CC-BY-NC-SA-3.0-IGO",
"tsv_checksum": "sha256:19f0a6149ed1bfb13c130eb381747bf0f03694b3f7e19a38f164d3cfe60b01f5"
}
},
{
"source_name": "charmd",
"metadata_path": "databases/charmd/output/metadata.json",
Expand Down Expand Up @@ -60,11 +41,11 @@
}
},
{
"source_name": "hsv_daehne_jaki",
"metadata_path": "databases/hsv_daehne_jaki/output/metadata.json",
"rules_path": "databases/hsv_daehne_jaki/output/rules.tsv",
"formula_rules_path": "databases/hsv_daehne_jaki/output/formula-rules.tsv",
"example_fasta_path": "databases/hsv_daehne_jaki/example/example.fasta",
"source_name": "simplexvirus-db",
"metadata_path": "databases/simplexvirus-db/output/metadata.json",
"rules_path": "databases/simplexvirus-db/output/rules.tsv",
"formula_rules_path": "databases/simplexvirus-db/output/formula-rules.tsv",
"example_fasta_path": "databases/simplexvirus-db/example/example.fasta",
"metadata": {
"maintainers": [
"Daehne, Theo",
Expand Down Expand Up @@ -98,6 +79,25 @@
"license": "GNU General Public License v3.0",
"tsv_checksum": "sha256:6b893a9939c0c82cf8fb2c77f2cccb6cac12fe89ee960397c6798c3b078d0256"
}
},
{
"source_name": "who-influenza",
"metadata_path": "databases/who-influenza/output/metadata.json",
"rules_path": "databases/who-influenza/output/rules.tsv",
"formula_rules_path": "databases/who-influenza/output/formula-rules.tsv",
"example_fasta_path": "databases/who-influenza/example/example.fasta",
"metadata": {
"maintainers": [
"Expert Working Group on Antiviral Susceptibility"
],
"contact": "gisrs-whohq@who.int",
"publication_pmid": "",
"website": "https://www.who.int/teams/global-influenza-programme/laboratory-network/quality-assurance/antiviral-susceptibility-influenza",
"description": "WHO influenza antiviral susceptibility marker tables: neuraminidase inhibitor resistance markers for human and avian influenza viruses and polymerase acidic (PA) baloxavir markers, curated from the WHO marker tables.",
"maintainer_update": "2026-07-17",
"license": "CC-BY-NC-SA-3.0-IGO",
"tsv_checksum": "sha256:19f0a6149ed1bfb13c130eb381747bf0f03694b3f7e19a38f164d3cfe60b01f5"
}
}
]
}
22 changes: 22 additions & 0 deletions databases/who-influenza/example/example.fasta
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
>OP010240.1 Influenza A virus (A/West Virginia/20/2022(H1N1)) segment 6 neuraminidase (NA) gene, complete cds
AGTTTAAAATGAATCCAAACCAAAAGATAATAACCATTGGTTCTATCTGTATGGCAATTGGAACGGCTAA
CTTAATATTGCAAATTGGAAACATAATCTCAATATGGGTTAGCCACTCAATTCAAATTGGAAATCAAAGC
CAGATTGAAACATGCAATAAAAGCGTCATTACTTATGAAAACAACACTTGGGTAAATCAGACATTTGTTA
ACATCAGCAACACTAACTCTGCTGCTAGACATTCAGTGGCTTCCGTGAAATTAGCGGGCAATTCCTCTCT
CTGCCCTGTTAGTGGATGGGCTATATATAGTAAAGACAACAGTGTAAGAATCGGTTCCAAGGGGGATGTG
TTTGTCATAAGGGAACCATTCATATCATGCTCTCCCTTGGAATGCAGAACCTTCTTCTTGACTCAAGGGG
CTTTGCTAAATGACAAACATTCCAATGGAACCATTAAAGACAGAAGCCCATACCGAACCCTAATGAGCTG
TCCTATTGGTGAAGTTCCCTCTCCATACAACTCAAGATTTGAGTCAGTTGCTTGGTCAGCAAGTGCTTGT
CATGATGGCACCAATTGGCTAACAATTGGAATTTCTGGCCCAGACAATGGGGCAGTGGCTGTGTTGAAAT
ACAATGGCATAATAACAGACACTATCAAGAGTTGGAGGAACAAGATATTGAGAACACAAGAGTCTGAATG
TGCATGTGTAAATGGTTCTTGCTTTACCATAATGACCGATGGACCAAGTGATGGACAGGCCTCATACAAA
ATCTTCAGAATAGAAAAGGGAAAGATAATCAAATCAGTCGAAATGAAAGCCCCTAATTACTACTATGAAG
AATGCTCCTGTTACCCTGATTCTAGTGAAATCACATGTGTGTGCAGGGATAACTGGCATGGCTCGAATCG
ACCGTGGGTGTCTTTCAACCAGAATCTGGAATATCAGATGGGATACATATGCAGTGGGGTTTTCGGAGAC
AATCCACGCCCTAATGATAAGACAGGCAGTTGTGGTCCAGTATCGTCTAATGGAGCAAATGGGGTAAAAG
GATTTTCATTCAAATACGGCAATGGTGTTTGGATAGGGAGAACTAAGAGCATTAATTCAAGAAAAGGTTT
TGAGATGATTTGGGATCCGAATGGATGGACTGGGACTGACAATAAATTCTCAAAAAAGCAAGATATCGTA
GGAATAAATGAGTGGTCAGGGTATAGCGGGAGTTTTGTTCAGCATCCAGAACTAACAGGGCTGAATTGTA
TAAGACCTTGCTTCTGGGTTGAACTAATAAGAGGACGACCCGAAGAGAACACAATCTGGACTAGCGGGAG
CAGCATATCCTTTTGTGGTGTAGACAGTGACATTGTGGGTTGGTCTTGGCCAGACGGTGCTGAGTTGCCA
TTTACCATTGACAAGTAATTTGTTCAAAAAACT
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,11 @@
"description": "WHO influenza antiviral susceptibility marker tables: neuraminidase inhibitor resistance markers for human and avian influenza viruses and polymerase acidic (PA) baloxavir markers, curated from the WHO marker tables.",
"maintainer_update": "2026-07-17",
"license": "CC-BY-NC-SA-3.0-IGO",
"tsv_checksum": "sha256:19f0a6149ed1bfb13c130eb381747bf0f03694b3f7e19a38f164d3cfe60b01f5"
"tsv_checksum": "sha256:19f0a6149ed1bfb13c130eb381747bf0f03694b3f7e19a38f164d3cfe60b01f5",
"interpretation_algorithms": [
{
"name": "drug_interpretation",
"method": "by_phenotype"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -1169,6 +1169,12 @@ def tsv_from_rows(rows: list[dict], columns: list[str]) -> str:
"tsv_checksum": "sha256:" + hashlib.sha256(
rules_content.encode("utf-8")
).hexdigest(),
"interpretation_algorithms": [
{
"name": "drug_interpretation",
"method": "by_phenotype",
},
],
}
metadata_path = out_dir / "metadata.json"
metadata_path.write_text(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""Tests for WHO Influenza conversion logic (databases/WHO_Influenza)."""
"""Tests for WHO Influenza conversion logic (databases/who-influenza)."""

import sys
from pathlib import Path
Expand Down
Loading