Compound Label#47
Merged
Merged
Conversation
…ring; add ontology name columns and fix pair_index shadowing in compound pairs; update docs, notebook, and Modal worker/status handling; add Modal smoke scripts and tests; bump dependencies and production pyproject metadata
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Compound label support for CyteOnto: LLM decomposition, Hungarian compound scoring, result/schema updates, Modal hardening, docs, and dependency/metadata cleanup.
Resolves #46, #22 and dependencies
Changes
LabelDecomposition,decompose_label/decompose_labels) with per-run_idJSON cache underuser_files/decompositions/cytescore_compoundinstead of treating mixture labels as a single stringmin(m,n) / max(m,n)when author and algorithm part counts differauthor_ontology_nameandalgorithm_ontology_nameto compare results (CSV primary label with OWL fallback)k > 1)pair_indexcorruption caused by inner loop variable shadowing in the compound scoring pathsimilarity_method=emptybehavior for blank labels while keeping ontology fields on the non-empty siderun_idskip LLM calls for labels already on diskresult.usageinstead ofresult.usage()in describe and decompose runnersstatus.jsonwrites, and worker-side initial status validationscripts/test_modal_simple_labels.shandscripts/test_modal_compound_labels.shfor hosted API smoke teststests/test_modal_status.pyfor Modal status read/write and worker reload behaviorpair_indexcorrectnessnotebooks/quick_tutorial.ipynbwith synthetic Hungarian demos and live compound comparison scenarioscyteonto/README.md,docs/WORKFLOW.md,docs/FILE_MANAGEMENT.md, andmodal_app/README.mdfor the new pipeline and result columnsaiohttpto>=3.14.0andpydantic-aito>=1.102.0,<2.0.0, refreshinguv.lockfor tested transitive upgradespyproject.tomlmetadata (description, license, authors, keywords, URLs) and hatchling build config with dynamic version fromcyteonto/__init__.py.gitignorefor build artifacts and local result outputs