Source code for spacr.qt.i18n_module_summaries_west

"""Western-language translations of the built-in module summaries.

The keys mirror the built-in rows in :data:`spacr.qt.app.APPS`.  Keeping this
catalog separate from the general UI catalog makes the longer, scientific
module descriptions easier for fluent speakers to review.
"""

from __future__ import annotations

#: TRAIN CELLPOSE IS NOT HERE EITHER, for the same event and the other half
#: of the same reason. The merge did not delete its row, it REWROTE it: the
#: tile went from "Train custom Cellpose models" to "Fine-tune a Cellpose
#: model on your own labelled fields, then segment a folder of images with it
#: or with a stock model", and the nine reviewed sentences still described the
#: training half alone. ``module_summary`` had already stopped using them --
#: the source hash has not matched since -- so removing them changes nothing
#: a user sees and stops the table asserting a review that no longer applies.
#: Translating the new sentence puts the row back.
#:
#: CELLPOSE MASKS IS NOT HERE. Its row went when Train Cellpose and Cellpose
#: Masks became one Cellpose Workbench page, and the applying half is that
#: page's Apply tab -- a tab carries its label, not a one-line summary. With
#: no English sentence left for it anywhere, the reviewed translations were
#: bound to a source that no longer exists, which is the exact condition
#: `REVIEWED_SOURCE_HASHES` exists to detect: a fluent translation of
#: something the app no longer says. Give the module a row or a fold button
#: again and its sentence comes back with it, reviewed against that sentence.
_BUILTIN_APP_KEYS = (
    "mask",
    "timelapse",
    "motility",
    "measure",
    "annotate",
    "classify_merged",
    "map_barcodes",
    "regression",
    "align",
    "convert",
    "foreign",
    "external_masks",
    "queue",
    "batch",
    "distributed_jobs",
    "db_browser",
    "model_compare",
    "model_zoo",
    "plate_view",
    "agreement",
    "umap",
    "activation",
    "train_compare",
    "classifier_evaluation",
    "run_history",
    "report",
    "analyze_plaques",
    "recruitment",
    "invasion",
    "replication",
)


#: Swedish, German and Spanish one-line summaries for every built-in spaCR
#: module.  Product names, file formats and established model/metric names are
#: intentionally left unchanged so they match the rest of the user interface.
MODULE_SUMMARIES_WEST: dict[str, dict[str, str]] = {
    "sv": {
        "mask": "Generera segmenteringsmasker för celler, kärnor, patogener och organeller från mikroskopibilder med Cellpose och andra stödda metoder",
        "timelapse": "Segmentera och spåra objekt genom bildrutorna i en tidsserie",
        "motility": "Kvantifiera spårhastighet och rakhet och stratifiera resultaten efter infektionsstatus",
        "measure": "Kvantifiera intensitets- och morfologiegenskaper för varje objekt",
        "annotate": "Tilldela annoteringar till bilder av enskilda objekt och lagra dem i projektdatabasen",
        "classify_merged": "Träna klassificerare på bildutsnitt med PyTorch eller på uppmätta egenskaper med gradient boosting",
        "map_barcodes": "Koppla sekvenseringsstreckkoder till screeningdata",
        "regression": "Regressionsanalys av screeningspoäng",
        "align": "Registrera och sammanfoga bildplattor till en mosaik som skrivs stegvis med begränsad minnesanvändning",
        "convert": "Konvertera ND2-, CZI-, LIF- och OME-TIFF-bilder till Yokogawa-TIFF-layout och registrera kopplingarna till källfilerna",
        "foreign": 'Ta in bilder, masker och mättabeller i ett spaCR-projekt – konvertera mikroskopformat, mappa källkolumner eller använd masker som skapats någon annanstans',
        "external_masks": "Importera bilder och externt genererade etikettmasker som ett uppmätt spaCR-projekt som är redo för annotering",
        "queue": "Kör samma bearbetningspipeline på flera plattor",
        "batch": "Köa moduler, plattor och inställningar för obevakad sekventiell körning",
        "distributed_jobs": "Skicka och övervaka spaCR-körningar på SSH-arbetsstationer, Slurm eller moln-/HPC-system",
        "db_browser": "Bläddra i, filtrera och exportera tabeller från measurements.db",
        "model_compare": "Jämför två Cellpose-modeller på samma synfält med masker sida vid sida, skillnader i objektantal och justerat Rand-index (ARI)",
        "model_zoo": "Bläddra bland, verifiera, hämta och prestandatesta Cellpose- och klassificeringsmodeller på utvalda synfält",
        "plate_view": "Visualisera mätvärden som plattvärmekartor och detektera kanteffekter",
        "agreement": "Beräkna Cohens eller Fleiss κ mellan annoteringskolumner och granska bildutsnitt med avvikande annoteringar",
        "umap": "Visualisera UMAP-inbäddningar med bilder som markörer",
        "activation": "Generera klassaktiveringskartor för bildklassificerarens prediktioner",
        "train_compare": "Jämför träningskurvor och inställningar mellan flera körningar",
        "classifier_evaluation": "Utvärdera prediktioner på undanhållna data, nästlad CV, kalibrering, dataläckage och mått per platta",
        "run_history": "Sök i körningsinställningar, utdata, varningar, fel och prestandamått",
        "report": "Generera delbara HTML- eller PDF-rapporter med QC-resultat, figurer, statistik, inställningar och programvaruversioner",
        "analyze_plaques": "Kvantifiera mätvärden från plackanalyser",
        "recruitment": "Kvantifiera mätvärden för molekylär rekrytering",
        "invasion": "Kvantifiera bundna och invaderade parasiter med tvåfärgad differentialfärgning och beräkna invasionseffektivitet per brunn",
        "replication": "Kvantifiera parasiter per vakuol och beräkna replikeringshastigheter per betingelse",
    },
    "de": {
        "mask": "Segmentierungsmasken für Zellen, Zellkerne, Pathogene und Organellen aus Mikroskopiebildern mit Cellpose und unterstützten Alternativen erzeugen",
        "timelapse": "Objekte über die Einzelbilder einer Zeitreihe segmentieren und verfolgen",
        "motility": "Spurgeschwindigkeit und Geradlinigkeit quantifizieren und Ergebnisse nach Infektionsstatus stratifizieren",
        "measure": "Intensitäts- und Morphologiemerkmale pro Objekt quantifizieren",
        "annotate": "Bilder einzelner Objekte annotieren und die Annotationen in der Projektdatenbank speichern",
        "classify_merged": "Klassifikatoren mit PyTorch auf Bildausschnitten oder mit Gradient Boosting auf gemessenen Merkmalen trainieren",
        "map_barcodes": "Sequenzierungs-Barcodes den Screening-Daten zuordnen",
        "regression": "Regressionsanalyse von Screening-Scores",
        "align": "Bildkacheln registrieren und mit begrenztem Speicherverbrauch zu einem schrittweise geschriebenen Mosaik zusammenfügen",
        "convert": "ND2-, CZI-, LIF- und OME-TIFF-Bilder in ein Yokogawa-TIFF-Layout konvertieren und die Zuordnungen zu den Quelldateien protokollieren",
        "foreign": 'Bilder, Masken und Messtabellen in ein spaCR-Projekt übernehmen – Mikroskopformate konvertieren, Quellspalten zuordnen oder anderswo erstellte Masken übernehmen',
        "external_masks": "Bilder und extern erzeugte Labelmasken als vermessenes, annotationsbereites spaCR-Projekt importieren",
        "queue": "Dieselbe Verarbeitungspipeline auf mehreren Platten ausführen",
        "batch": "Module, Platten und Einstellungen zur unbeaufsichtigten sequenziellen Ausführung einreihen",
        "distributed_jobs": "spaCR-Läufe auf SSH-Arbeitsstationen, Slurm oder Cloud-/HPC-Systemen übermitteln und überwachen",
        "db_browser": "Tabellen aus measurements.db durchsuchen, filtern und exportieren",
        "model_compare": "Zwei Cellpose-Modelle auf denselben Bildfeldern mithilfe nebeneinander dargestellter Masken, Unterschieden in der Objektzahl und des adjustierten Rand-Index (ARI) vergleichen",
        "model_zoo": "Cellpose- und Klassifikationsmodelle durchsuchen, verifizieren, herunterladen und auf ausgewählten Bildfeldern benchmarken",
        "plate_view": "Messwerte als Platten-Heatmaps visualisieren und Randeffekte erkennen",
        "agreement": "Cohens oder Fleiss’ κ über Annotationsspalten berechnen und Bildausschnitte mit abweichenden Annotationen überprüfen",
        "umap": "UMAP-Einbettungen mit Bildern als Symbolen visualisieren",
        "activation": "Klassenaktivierungskarten für Vorhersagen eines Bildklassifikators erzeugen",
        "train_compare": "Trainingskurven und Einstellungen mehrerer Läufe vergleichen",
        "classifier_evaluation": "Vorhersagen auf zurückgehaltenen Daten, verschachtelte CV, Kalibrierung, Datenleckage und Kennzahlen pro Platte auswerten",
        "run_history": "Laufeinstellungen, Ausgaben, Warnungen, Fehler und Leistungskennzahlen durchsuchen",
        "report": "Teilbare HTML- oder PDF-Berichte mit QC-Ergebnissen, Abbildungen, Statistiken, Einstellungen und Softwareversionen erzeugen",
        "analyze_plaques": "Messwerte aus Plaque-Assays quantifizieren",
        "recruitment": "Messwerte der molekularen Rekrutierung quantifizieren",
        "invasion": "Angeheftete und eingedrungene Parasiten mit einer zweifarbigen Differenzialfärbung quantifizieren und die Invasionseffizienz pro Well berechnen",
        "replication": "Parasiten pro Vakuole quantifizieren und Replikationsraten nach Bedingung berechnen",
    },
    "es": {
        "mask": "Generar máscaras de segmentación para células, núcleos, patógenos y orgánulos a partir de imágenes microscópicas mediante Cellpose y alternativas compatibles",
        "timelapse": "Segmentar y rastrear objetos a lo largo de los fotogramas de una serie temporal",
        "motility": "Cuantificar la velocidad y la rectitud de las trayectorias y estratificar los resultados por estado de infección",
        "measure": "Cuantificar las características de intensidad y morfología de cada objeto",
        "annotate": "Asignar anotaciones a imágenes de objetos individuales y guardarlas en la base de datos del proyecto",
        "classify_merged": "Entrenar clasificadores con PyTorch sobre recortes de imagen o con gradient boosting sobre características medidas",
        "map_barcodes": "Asignar códigos de barras de secuenciación a los datos del cribado",
        "regression": "Análisis de regresión de las puntuaciones del cribado",
        "align": "Registrar y ensamblar teselas de imagen en un mosaico escrito de forma incremental con un uso de memoria acotado",
        "convert": "Convertir imágenes ND2, CZI, LIF y OME-TIFF al formato TIFF de Yokogawa y registrar sus correspondencias con los archivos de origen",
        "foreign": 'Incorpora imágenes, máscaras y tablas de medidas a un proyecto de spaCR: convierte formatos de microscopio, asigna columnas de origen o adopta máscaras creadas en otra herramienta',
        "external_masks": "Importar imágenes y máscaras de etiquetas externas como un proyecto spaCR medido y listo para la anotación",
        "queue": "Ejecutar la misma secuencia de procesamiento en varias placas",
        "batch": "Poner en cola módulos, placas y ajustes para su ejecución secuencial sin supervisión",
        "distributed_jobs": "Enviar y supervisar ejecuciones de spaCR en estaciones de trabajo SSH, Slurm o sistemas de nube/HPC",
        "db_browser": "Explorar, filtrar y exportar tablas de measurements.db",
        "model_compare": "Comparar dos modelos de Cellpose en los mismos campos mediante máscaras en paralelo, diferencias en el número de objetos y el índice Rand ajustado (ARI)",
        "model_zoo": "Explorar, verificar, descargar y evaluar modelos de Cellpose y de clasificación en campos seleccionados",
        "plate_view": "Visualizar mediciones como mapas de calor de placas y detectar efectos de borde",
        "agreement": "Calcular κ de Cohen o de Fleiss entre columnas de anotación y revisar los recortes con anotaciones discordantes",
        "umap": "Visualizar representaciones UMAP con imágenes como símbolos",
        "activation": "Generar mapas de activación de clase para las predicciones de un clasificador de imágenes",
        "train_compare": "Comparar las curvas y los ajustes de varias ejecuciones de entrenamiento",
        "classifier_evaluation": "Evaluar predicciones sobre datos reservados, CV anidada, calibración, fugas de datos y métricas por placa",
        "run_history": "Buscar ajustes, resultados, advertencias, fallos y métricas de rendimiento de las ejecuciones",
        "report": "Generar informes HTML o PDF compartibles con resultados de QC, figuras, estadísticas, ajustes y versiones del software",
        "analyze_plaques": "Cuantificar las mediciones de ensayos de placas de lisis",
        "recruitment": "Cuantificar las mediciones de reclutamiento molecular",
        "invasion": "Cuantificar los parásitos adheridos e invadidos mediante tinción diferencial de dos colores y calcular la eficiencia de invasión por pocillo",
        "replication": "Cuantificar los parásitos por vacuola y calcular las tasas de replicación por condición",
    },
}


[docs] def validate_module_summaries_west() -> None: """Raise :class:`AssertionError` if this parallel catalog is incomplete.""" expected_languages = {"sv", "de", "es"} assert set(MODULE_SUMMARIES_WEST) == expected_languages assert len(_BUILTIN_APP_KEYS) == len(set(_BUILTIN_APP_KEYS)) == 30 expected_keys = set(_BUILTIN_APP_KEYS) for language_code, summaries in MODULE_SUMMARIES_WEST.items(): assert len(summaries) == 30, language_code assert set(summaries) == expected_keys, language_code assert all(isinstance(text, str) and text.strip() for text in summaries.values()) assert all("http://" not in text and "https://" not in text for text in summaries.values())
validate_module_summaries_west()