From 28cd1171792dca5a37fde95894a738deb14ca856 Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Thu, 26 Mar 2026 15:51:58 +0100 Subject: [PATCH] feat(config): add lineageFields for all organisms to both prod and staging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds lineageFields to the backend config for all organisms that expose lineage/clade filters on the website. These fields are used by the backend to validate lineage filters in collection objects. Fields were identified in two ways: 1. Fetching `/llms.txt` for each organism and extracting fields annotated as "(STRING, lineage index generated)" — these were found for covid, mpox, rsvA, rsvB, cchf, and denv1–4. 2. Reading the frontend view files (e.g. h5n1.ts, h3n2.ts) for organisms where llms.txt returned no lineage index fields but the website still exposes a variant/clade selector — covering h5n1, h1n1pdm, h3n2, influenzaA, influenzaB, victoria, westNile, and measles. Summary of lineageFields added per organism: - covid (staging only, prod already had it): pangoLineage, nextcladePangoLineage - h5n1: clade - h1n1pdm: cladeHA, cladeNA - h3n2: cladeHA, cladeNA - influenzaA: subtypeHA, subtypeNA - influenzaB: lineageHA - victoria: cladeHA, cladeNA - mpox: lineage, clade - westNile: lineage - rsvA: lineage - rsvB: lineage - cchf: lineage_S - denv1–4: clade - measles: genotype Co-Authored-By: Claude Sonnet 4.6 --- .../application-dashboards-prod.yaml | 37 +++++++++++++++++ .../application-dashboards-staging.yaml | 40 +++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/backend/src/main/resources/application-dashboards-prod.yaml b/backend/src/main/resources/application-dashboards-prod.yaml index f170d6234..1aee6e5a8 100644 --- a/backend/src/main/resources/application-dashboards-prod.yaml +++ b/backend/src/main/resources/application-dashboards-prod.yaml @@ -16,6 +16,8 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/h5n1" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -28,6 +30,9 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/h1n1pdm" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "cladeHA" + - "cladeNA" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -40,6 +45,9 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/h3n2" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "cladeHA" + - "cladeNA" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -52,6 +60,9 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/influenza-a" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "subtypeHA" + - "subtypeNA" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -64,6 +75,8 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/influenza-b" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineageHA" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -76,6 +89,9 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/b-victoria" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "cladeHA" + - "cladeNA" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -88,6 +104,9 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/mpox" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage" + - "clade" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -100,6 +119,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/west-nile" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -112,6 +133,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/rsv-a" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -124,6 +147,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/rsv-b" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -160,6 +185,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/cchf" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage_S" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -172,6 +199,8 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/denv1" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" locationFields: - "country" - "division" @@ -189,6 +218,8 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/denv2" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" locationFields: - "country" - "division" @@ -206,6 +237,8 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/denv3" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" locationFields: - "country" - "division" @@ -223,6 +256,8 @@ dashboards: lapis: url: "https://api.loculus.genspectrum.org/denv4" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" locationFields: - "country" - "division" @@ -240,6 +275,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/measles" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "genotype" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" diff --git a/backend/src/main/resources/application-dashboards-staging.yaml b/backend/src/main/resources/application-dashboards-staging.yaml index d383a1e42..287bc7f28 100644 --- a/backend/src/main/resources/application-dashboards-staging.yaml +++ b/backend/src/main/resources/application-dashboards-staging.yaml @@ -4,6 +4,9 @@ dashboards: lapis: url: "https://gs-staging-1.int.genspectrum.org/open/v2" mainDateField: "date" + lineageFields: + - "pangoLineage" + - "nextcladePangoLineage" externalNavigationLinks: - url: "https://cov-spectrum.org" label: "CoV-Spectrum" @@ -13,6 +16,8 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/h5n1" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -25,6 +30,9 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/h1n1pdm" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "cladeHA" + - "cladeNA" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -37,6 +45,9 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/h3n2" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "cladeHA" + - "cladeNA" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -49,6 +60,9 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/influenza-a" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "subtypeHA" + - "subtypeNA" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -61,6 +75,8 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/influenza-b" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineageHA" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -73,6 +89,9 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/b-victoria" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "cladeHA" + - "cladeNA" locationFields: - "country" - "division" @@ -90,6 +109,9 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/mpox" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage" + - "clade" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -102,6 +124,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/west-nile" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -114,6 +138,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/rsv-a" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -126,6 +152,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/rsv-b" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -162,6 +190,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/cchf" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "lineage_S" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false" @@ -174,6 +204,8 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/denv1" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" locationFields: - "country" - "division" @@ -191,6 +223,8 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/denv2" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" locationFields: - "country" - "division" @@ -208,6 +242,8 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/denv3" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" locationFields: - "country" - "division" @@ -225,6 +261,8 @@ dashboards: lapis: url: "https://api.loculus.staging.genspectrum.org/denv4" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "clade" locationFields: - "country" - "division" @@ -242,6 +280,8 @@ dashboards: lapis: url: "https://lapis.pathoplexus.org/measles" mainDateField: "sampleCollectionDateRangeLower" + lineageFields: + - "genotype" additionalFilters: versionStatus: "LATEST_VERSION" isRevocation: "false"