@galaxyproject/orbit 0.0.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +123 -0
- package/LICENSE +21 -0
- package/README.md +760 -5
- package/bin/legacy-mcp-config.js +363 -0
- package/bin/orbit.js +810 -0
- package/bin/pi-extension-path.d.ts +4 -0
- package/bin/pi-extension-path.js +44 -0
- package/bin/provider-auth.d.ts +22 -0
- package/bin/provider-auth.js +77 -0
- package/bin/thinking-pref.js +38 -0
- package/bin/update-check.d.ts +15 -0
- package/bin/update-check.js +137 -0
- package/extensions/cli-update/index.ts +32 -0
- package/extensions/orbit/activity-hooks.ts +141 -0
- package/extensions/orbit/activity.ts +116 -0
- package/extensions/orbit/agent-dir.ts +11 -0
- package/extensions/orbit/auto-resume.ts +352 -0
- package/extensions/orbit/config.ts +3 -0
- package/extensions/orbit/confusables.ts +1 -0
- package/extensions/orbit/context.ts +957 -0
- package/extensions/orbit/dashboard-commands.ts +191 -0
- package/extensions/orbit/dashboard-store.ts +473 -0
- package/extensions/orbit/dashboard-tools.ts +1185 -0
- package/extensions/orbit/empty-completion.ts +99 -0
- package/extensions/orbit/evidence-gate.ts +1276 -0
- package/extensions/orbit/evidence-override-command.ts +294 -0
- package/extensions/orbit/exec-guard/bash-risk.ts +1408 -0
- package/extensions/orbit/exec-guard/gate.ts +181 -0
- package/extensions/orbit/exec-guard/guardian-config.ts +54 -0
- package/extensions/orbit/exec-guard/index.ts +1 -0
- package/extensions/orbit/exec-guard/model-tier.ts +36 -0
- package/extensions/orbit/exec-guard/path-jail.ts +54 -0
- package/extensions/orbit/exec-guard/policy.ts +342 -0
- package/extensions/orbit/exec-guard/runtime-state.ts +15 -0
- package/extensions/orbit/exec-guard/sensitive-read.ts +525 -0
- package/extensions/orbit/exec-guard/types.ts +42 -0
- package/extensions/orbit/execution-commands.ts +134 -0
- package/extensions/orbit/feedback-command.ts +81 -0
- package/extensions/orbit/feedback.ts +96 -0
- package/extensions/orbit/galaxy-api.test.ts +122 -0
- package/extensions/orbit/galaxy-api.ts +606 -0
- package/extensions/orbit/galaxy-artifact-link-guidance.ts +5 -0
- package/extensions/orbit/galaxy-destructive-gate.ts +113 -0
- package/extensions/orbit/galaxy-enrich.ts +1108 -0
- package/extensions/orbit/galaxy-failure.ts +101 -0
- package/extensions/orbit/galaxy-fixture.ts +126 -0
- package/extensions/orbit/galaxy-history-guard.ts +233 -0
- package/extensions/orbit/galaxy-job-block.ts +347 -0
- package/extensions/orbit/galaxy-job-ops.ts +288 -0
- package/extensions/orbit/galaxy-live-source.ts +929 -0
- package/extensions/orbit/galaxy-markdown-adapter.ts +248 -0
- package/extensions/orbit/galaxy-op-policy.ts +332 -0
- package/extensions/orbit/galaxy-ops-tools.ts +326 -0
- package/extensions/orbit/galaxy-output-store.ts +80 -0
- package/extensions/orbit/galaxy-output.ts +346 -0
- package/extensions/orbit/galaxy-page-binding.ts +222 -0
- package/extensions/orbit/galaxy-page-markdown-guidance.ts +15 -0
- package/extensions/orbit/galaxy-page-ops.ts +159 -0
- package/extensions/orbit/galaxy-page-sync.test.ts +417 -0
- package/extensions/orbit/galaxy-page-sync.ts +318 -0
- package/extensions/orbit/galaxy-pages-api.ts +203 -0
- package/extensions/orbit/galaxy-pages-sync.ts +409 -0
- package/extensions/orbit/galaxy-poll-guard.ts +189 -0
- package/extensions/orbit/galaxy-poller.ts +706 -0
- package/extensions/orbit/galaxy-provenance.ts +623 -0
- package/extensions/orbit/galaxy-reconcile.ts +956 -0
- package/extensions/orbit/galaxy-recovery.ts +176 -0
- package/extensions/orbit/galaxy-repeat-guard.ts +55 -0
- package/extensions/orbit/galaxy-submission-capture.ts +707 -0
- package/extensions/orbit/galaxy-submission.ts +502 -0
- package/extensions/orbit/galaxy-tool-source.ts +78 -0
- package/extensions/orbit/galaxy-tool-wrap.ts +234 -0
- package/extensions/orbit/galaxy-udt-block.ts +127 -0
- package/extensions/orbit/galaxy-upload-tus.ts +334 -0
- package/extensions/orbit/galaxy-upload.ts +300 -0
- package/extensions/orbit/galaxy-version-capture.ts +65 -0
- package/extensions/orbit/git.ts +173 -0
- package/extensions/orbit/harness-block-fields.ts +597 -0
- package/extensions/orbit/index.ts +593 -0
- package/extensions/orbit/init-gate.ts +284 -0
- package/extensions/orbit/instructions-command.ts +136 -0
- package/extensions/orbit/invocation-failure-hint.ts +57 -0
- package/extensions/orbit/iwc-plan-check.ts +94 -0
- package/extensions/orbit/lesson-command.ts +303 -0
- package/extensions/orbit/lesson-hint.ts +245 -0
- package/extensions/orbit/lesson-nudge.ts +106 -0
- package/extensions/orbit/lessons/compose.ts +177 -0
- package/extensions/orbit/lessons/counters.ts +120 -0
- package/extensions/orbit/lessons/enabled.ts +116 -0
- package/extensions/orbit/lessons/matcher.ts +346 -0
- package/extensions/orbit/lessons/paths.ts +286 -0
- package/extensions/orbit/lessons/pi-event-contract.ts +105 -0
- package/extensions/orbit/lessons/propose-replay.ts +103 -0
- package/extensions/orbit/lessons/propose-tool.ts +222 -0
- package/extensions/orbit/lessons/propose.ts +502 -0
- package/extensions/orbit/lessons/replay.ts +89 -0
- package/extensions/orbit/lessons/reproduction-index.ts +83 -0
- package/extensions/orbit/lessons/search-tool.ts +99 -0
- package/extensions/orbit/lessons/search.ts +136 -0
- package/extensions/orbit/lessons/store.ts +415 -0
- package/extensions/orbit/lessons/text.ts +36 -0
- package/extensions/orbit/lessons/types.ts +69 -0
- package/extensions/orbit/lessons/user-dir.ts +24 -0
- package/extensions/orbit/lessons/user-lesson.ts +88 -0
- package/extensions/orbit/lessons/wrapper.ts +61 -0
- package/extensions/orbit/lessons-command.ts +147 -0
- package/extensions/orbit/local-exec.ts +39 -0
- package/extensions/orbit/mcp-output.ts +179 -0
- package/extensions/orbit/mcp-servers.test.ts +24 -0
- package/extensions/orbit/mcp-servers.ts +25 -0
- package/extensions/orbit/model-script.ts +351 -0
- package/extensions/orbit/notebook-anchors.ts +342 -0
- package/extensions/orbit/notebook-writer.ts +863 -0
- package/extensions/orbit/observation-allowlists.ts +1109 -0
- package/extensions/orbit/observation-replay.ts +148 -0
- package/extensions/orbit/observation-triggers.ts +563 -0
- package/extensions/orbit/observation-ui.ts +175 -0
- package/extensions/orbit/observations-command.ts +421 -0
- package/extensions/orbit/observations-config.ts +200 -0
- package/extensions/orbit/observations.ts +1381 -0
- package/extensions/orbit/profiles.ts +270 -0
- package/extensions/orbit/progress-updates.ts +95 -0
- package/extensions/orbit/proposal-commands.ts +882 -0
- package/extensions/orbit/provenance-fs-file.ts +59 -0
- package/extensions/orbit/provenance-fs.ts +32 -0
- package/extensions/orbit/provenance-memory-fs.ts +59 -0
- package/extensions/orbit/record-store-file.ts +177 -0
- package/extensions/orbit/record-store-page.ts +77 -0
- package/extensions/orbit/record-store-seam.ts +47 -0
- package/extensions/orbit/record-store.ts +149 -0
- package/extensions/orbit/registry-carrier.ts +107 -0
- package/extensions/orbit/registry-eligibility.ts +95 -0
- package/extensions/orbit/registry-evaluation.ts +403 -0
- package/extensions/orbit/registry-evaluator.ts +519 -0
- package/extensions/orbit/registry-import.ts +91 -0
- package/extensions/orbit/registry-lock.ts +221 -0
- package/extensions/orbit/registry-memory-fs.ts +42 -0
- package/extensions/orbit/registry-page-carrier.ts +103 -0
- package/extensions/orbit/registry-proposal.ts +1348 -0
- package/extensions/orbit/registry-runtime.ts +234 -0
- package/extensions/orbit/registry-schema.ts +735 -0
- package/extensions/orbit/registry-submitter.ts +59 -0
- package/extensions/orbit/registry-templates.ts +346 -0
- package/extensions/orbit/registry.ts +476 -0
- package/extensions/orbit/sandbox/index.ts +120 -0
- package/extensions/orbit/sandbox/sandbox-bash.ts +93 -0
- package/extensions/orbit/sandbox/sandbox-config.ts +87 -0
- package/extensions/orbit/sandbox/sandbox-init-message.ts +28 -0
- package/extensions/orbit/secret-redaction.ts +247 -0
- package/extensions/orbit/session-index/cwd.ts +18 -0
- package/extensions/orbit/session-index/db.ts +56 -0
- package/extensions/orbit/session-index/indexer.ts +154 -0
- package/extensions/orbit/session-index/is-enabled.ts +17 -0
- package/extensions/orbit/session-index/parse.ts +254 -0
- package/extensions/orbit/session-index/query.ts +209 -0
- package/extensions/orbit/session-index/schema.ts +72 -0
- package/extensions/orbit/session-index/tools.ts +152 -0
- package/extensions/orbit/session-lifecycle.ts +321 -0
- package/extensions/orbit/skill-triggers.ts +159 -0
- package/extensions/orbit/skills-command.ts +48 -0
- package/extensions/orbit/skills-discovery.ts +435 -0
- package/extensions/orbit/skills.ts +84 -0
- package/extensions/orbit/sra-import-gate.ts +77 -0
- package/extensions/orbit/state.ts +265 -0
- package/extensions/orbit/submission-replay.ts +147 -0
- package/extensions/orbit/sync-command.ts +157 -0
- package/extensions/orbit/teams/critic-parser.ts +93 -0
- package/extensions/orbit/teams/dispatcher.ts +210 -0
- package/extensions/orbit/teams/is-enabled.ts +22 -0
- package/extensions/orbit/teams/tool.ts +187 -0
- package/extensions/orbit/teams/types.ts +57 -0
- package/extensions/orbit/teams/validate.ts +42 -0
- package/extensions/orbit/tester-id-command.ts +133 -0
- package/extensions/orbit/tools-sync.ts +279 -0
- package/extensions/orbit/tools.ts +1300 -0
- package/extensions/orbit/types.ts +41 -0
- package/extensions/orbit/ui-bridge.ts +55 -0
- package/extensions/orbit/ulid.ts +60 -0
- package/extensions/orbit/user-instructions.ts +388 -0
- package/extensions/orbit/vendor/skills/_catalog.json +68 -0
- package/extensions/orbit/vendor/skills/_manifest.json +1106 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/SKILL.md +112 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_provenance.json +218 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_required_tools.json +33 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/add.json +50 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-extract.json +51 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-next-step.json +42 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-validate.json +140 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/list.json +32 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/notes/galaxy-tool-job-failure-reference.md +137 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/schemas/galaxy-tool-summary.schema.json +175 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/schemas/galaxy-workflow-draft.schema.json +2727 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/SKILL.md +82 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_provenance.json +133 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_required_tools.json +16 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/cli/draft-validate.json +140 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/notes/galaxy-workflow-draft-format.md +135 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/schemas/galaxy-workflow-draft.schema.json +2727 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/SKILL.md +84 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/_provenance.json +166 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/_verify.json +29 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/galaxy-workflow-testability-design.md +136 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/iwc-test-data-conventions.md +308 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/galaxy-workflow-test-plan.schema.json +552 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/summary-galaxy-workflow.schema.json +687 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/tests-format.schema.json +7328 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/SKILL.md +127 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_provenance.json +198 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_required_tools.json +16 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/cli/convert.json +123 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/galaxy-data-flow-draft-contract.md +129 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/iwc-test-data-conventions.md +308 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/SKILL.md +73 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/_provenance.json +160 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-collection-semantics.md +43 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-collection-semantics.yml +1250 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-tool-job-failure-reference.md +137 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/nextflow-operators-to-galaxy-collection-recipes.md +98 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/SKILL.md +174 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/_provenance.json +130 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/_required_tools.json +18 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-revisions.json +48 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-search.json +95 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-versions.json +39 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/notes/component-tool-shed-search.md +230 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/schemas/galaxy-tool-discovery.schema.json +231 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/SKILL.md +93 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_provenance.json +201 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_required_tools.json +28 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/cli/planemo.md +44 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/cli/validate-tests.json +40 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/galaxy-workflow-testability-design.md +136 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/iwc-test-data-conventions.md +308 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/schemas/galaxy-workflow-test-plan.schema.json +552 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/schemas/tests-format.schema.json +7328 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/SKILL.md +81 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/_provenance.json +93 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/references/schemas/summary-galaxy-workflow.schema.json +687 -0
- package/extensions/orbit/vendor/skills/pipeline-update-interview-to-galaxy/SKILL.md +81 -0
- package/extensions/orbit/vendor/skills/pipeline-update-interview-to-galaxy/_assembly.json +23 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/SKILL.md +79 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/_provenance.json +125 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/_required_tools.json +28 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/cli/planemo.md +44 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/cli/validate-tests.json +40 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/schemas/tests-format.schema.json +7328 -0
- package/extensions/orbit/vendor/skills/skills/LICENSE +21 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/README.md +39 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/SKILL.md +892 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/api-patterns.md +927 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/apply-rules.md +1482 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/test-patterns.md +996 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/tools.md +609 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-data-libraries/SKILL.md +170 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/README.md +162 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/SKILL.md +99 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/README.md +119 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/tool-checking.md +419 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/workflow-testing.md +617 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/galaxy-integration.md +614 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/SKILL.md +144 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/average_col3.ipynb +68 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/extract_sample_metadata.ipynb +190 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/variant_annotation.ipynb +816 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/vcp_variant_map.ipynb +443 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/scripts/README.md +165 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/scripts/galaxy_tool_checker.py +521 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/SKILL.md +128 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/gotchas.md +135 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/history-access.md +132 -0
- package/extensions/orbit/vendor/skills/skills/reproduciblify/SKILL.md +146 -0
- package/extensions/orbit/vendor/skills/skills/reproduciblify/references/directives.yml +496 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/SKILL.md +245 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/01-minimal-echo.yml +27 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/02-single-data-in-out.yml +27 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/03-multiple-data-js.yml +28 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/04-select-integer-boolean.yml +41 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/05-resource-requirements.yml +25 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/06-biocontainer-tool.yml +38 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/07-inline-python-script.yml +56 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/08-configfile-script.yml +74 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/references/common-mistakes.md +76 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/references/schema-reference.md +155 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/references/templating.md +196 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/scripts/validate.py +109 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/README.md +71 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/SKILL.md +190 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/examples/histology-staining.md +145 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/examples/tissue-microarray-analysis.md +176 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/references/directives.md +415 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/SKILL.md +98 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_provenance.json +93 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_required_tools.json +28 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/convert.json +123 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/foundry.md +25 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/validate.json +142 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/schemas/summary-galaxy-workflow.schema.json +687 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/SKILL.md +74 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_provenance.json +71 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_required_tools.json +16 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/cli/validate.json +142 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/notes/galaxy-workflow-testability-design.md +136 -0
- package/extensions/orbit/vendor-skills.ts +283 -0
- package/extensions/orbit/workspace-state-dir.ts +46 -0
- package/extensions/orbit-handoff/index.ts +73 -0
- package/extensions/orbit-handoff/orbit-launcher.ts +142 -0
- package/extensions/whats-new/index.ts +98 -0
- package/lessons/LICENSE +17 -0
- package/lessons/README.md +117 -0
- package/lessons/SCHEMA.md +187 -0
- package/lessons/build-snapshot.mjs +311 -0
- package/lessons/data/downloaded-file-is-not-what-its-extension-says.md +61 -0
- package/lessons/galaxy-api/403-history-is-a-hard-stop.md +57 -0
- package/lessons/galaxy-api/collection-into-single-dataset-input.md +61 -0
- package/lessons/galaxy-api/connectedvalue-in-command-line.md +62 -0
- package/lessons/galaxy-api/hid-is-not-an-id.md +59 -0
- package/lessons/galaxy-api/invoke-workflow-inputs-not-params.md +60 -0
- package/lessons/galaxy-api/repeat-param-pipe-keys.md +63 -0
- package/lessons/galaxy-api/run-tool-returns-on-submit.md +61 -0
- package/lessons/galaxy-tools/reference-index-not-on-server.md +62 -0
- package/lessons/log.md +42 -0
- package/lessons/reproduction/input-population-mismatch.md +59 -0
- package/lessons/reproduction/methods-text-vs-executed-parameters.md +62 -0
- package/lessons/snapshot.json +1004 -0
- package/lessons/stats/de-contrast-direction-and-sample-labels.md +63 -0
- package/lessons/stats/na-coerced-to-zero-in-filters.md +59 -0
- package/lessons/validate.mjs +1219 -0
- package/package.json +103 -5
- package/shared/agent-prompt.d.ts +8 -0
- package/shared/agent-prompt.js +15 -0
- package/shared/approval-prompt.d.ts +4 -0
- package/shared/approval-prompt.js +61 -0
- package/shared/brain-env.d.ts +14 -0
- package/shared/brain-env.js +108 -0
- package/shared/brain-exit.d.ts +20 -0
- package/shared/brain-exit.js +149 -0
- package/shared/capability-profile.d.ts +16 -0
- package/shared/capability-profile.js +75 -0
- package/shared/config-source.d.ts +13 -0
- package/shared/config-source.js +17 -0
- package/shared/confusables.d.ts +3 -0
- package/shared/confusables.js +93 -0
- package/shared/custom-provider.d.ts +45 -0
- package/shared/custom-provider.js +169 -0
- package/shared/dashboard-contract.d.ts +123 -0
- package/shared/dashboard-contract.js +560 -0
- package/shared/dashboard-layout-store.d.ts +44 -0
- package/shared/dashboard-layout-store.js +281 -0
- package/shared/feedback-contract.d.ts +61 -0
- package/shared/feedback-contract.js +146 -0
- package/shared/galaxy-artifact-links.d.ts +30 -0
- package/shared/galaxy-artifact-links.js +166 -0
- package/shared/galaxy-credentials.d.ts +26 -0
- package/shared/galaxy-credentials.js +71 -0
- package/shared/galaxy-destructive.d.ts +21 -0
- package/shared/galaxy-destructive.js +269 -0
- package/shared/galaxy-guidance.d.ts +2 -0
- package/shared/galaxy-guidance.js +53 -0
- package/shared/galaxy-live-contract.d.ts +92 -0
- package/shared/galaxy-live-contract.js +180 -0
- package/shared/galaxy-page-cells.d.ts +2 -0
- package/shared/galaxy-page-cells.js +22 -0
- package/shared/galaxy-tool-family.d.ts +5 -0
- package/shared/galaxy-tool-family.js +27 -0
- package/shared/galaxy-url.d.ts +1 -0
- package/shared/galaxy-url.js +48 -0
- package/shared/gtn.d.ts +31 -0
- package/shared/gtn.js +253 -0
- package/shared/handled-prompt.d.ts +3 -0
- package/shared/handled-prompt.js +26 -0
- package/shared/known-provider.d.ts +11 -0
- package/shared/known-provider.js +89 -0
- package/shared/lesson-hint-marker.d.ts +7 -0
- package/shared/lesson-hint-marker.js +32 -0
- package/shared/lesson-rules.d.ts +150 -0
- package/shared/lesson-rules.js +203 -0
- package/shared/malformed-object-ids.d.ts +1 -0
- package/shared/malformed-object-ids.js +37 -0
- package/shared/markdown-sections.d.ts +10 -0
- package/shared/markdown-sections.js +118 -0
- package/shared/notebook-fences.d.ts +12 -0
- package/shared/notebook-fences.js +53 -0
- package/shared/observation-contract.d.ts +91 -0
- package/shared/observation-contract.js +544 -0
- package/shared/orbit-config.d.ts +226 -0
- package/shared/orbit-config.js +189 -0
- package/shared/orbit-env.d.ts +13 -0
- package/shared/orbit-env.js +124 -0
- package/shared/orbit-shell-contract.d.ts +74 -0
- package/shared/orbit-shell-contract.js +30 -0
- package/shared/page-content-hash.d.ts +1 -0
- package/shared/page-content-hash.js +13 -0
- package/shared/pi-default-model.d.ts +7 -0
- package/shared/pi-default-model.js +41 -0
- package/shared/prompt-blocks.d.ts +87 -0
- package/shared/prompt-blocks.js +898 -0
- package/shared/provider-auth-caps.d.ts +22 -0
- package/shared/provider-auth-caps.js +57 -0
- package/shared/random.d.ts +2 -0
- package/shared/random.js +15 -0
- package/shared/record-excerpt.d.ts +4 -0
- package/shared/record-excerpt.js +16 -0
- package/shared/redirect-guard.d.ts +36 -0
- package/shared/redirect-guard.js +235 -0
- package/shared/skills-pin.d.ts +8 -0
- package/shared/skills-pin.js +9 -0
- package/shared/skills-router.d.ts +17 -0
- package/shared/skills-router.js +63 -0
- package/shared/sra-import.d.ts +34 -0
- package/shared/sra-import.js +206 -0
- package/shared/state-dir.d.ts +21 -0
- package/shared/state-dir.js +240 -0
- package/shared/team-dispatch-contract.d.ts +28 -0
- package/shared/team-dispatch-contract.js +1 -0
- package/shared/truncate-middle.d.ts +11 -0
- package/shared/truncate-middle.js +68 -0
- package/shared/version-compare.d.ts +10 -0
- package/shared/version-compare.js +74 -0
- package/shared/whats-new.d.ts +31 -0
- package/shared/whats-new.js +83 -0
- package/shared/wsl.d.ts +10 -0
- package/shared/wsl.js +24 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workflow-reports
|
|
3
|
+
description: Use this skill when asked to create, draft, or write a Galaxy workflow report template for the Workflow Editor's Report tab. Triggers on requests like "create a report for this workflow", "draft a workflow report template", "write a Galaxy report for workflow <id/url>".
|
|
4
|
+
metadata:
|
|
5
|
+
surfaces: [loom]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Galaxy Workflow Report Templates
|
|
9
|
+
|
|
10
|
+
Draft reusable Galaxy markdown report templates for the Workflow Editor's **Report** tab.
|
|
11
|
+
|
|
12
|
+
## Required Input
|
|
13
|
+
|
|
14
|
+
**This skill requires the full workflow definition.** Two equivalent options:
|
|
15
|
+
|
|
16
|
+
**Option A — `.ga` file** (preferred for local/IWC workflows):
|
|
17
|
+
Read the `.ga` file directly. It is a JSON object with the same structure as the API response. The `report.markdown` field is what this skill writes — it defaults to a minimal template (`invocation_inputs`, `invocation_outputs`, `workflow_display`) that should be replaced.
|
|
18
|
+
|
|
19
|
+
**Option B — Galaxy API**:
|
|
20
|
+
```
|
|
21
|
+
GET https://<instance>/api/workflows/<id>/download?style=editor
|
|
22
|
+
```
|
|
23
|
+
> **Critical:** Use the `/download?style=editor` endpoint — not `/api/workflows/<id>`. The regular endpoint does **not** return `step.label` or `workflow_outputs`, which are essential for writing directives. Without them, no `output="..."`, `input="..."`, or `step="..."` references will work.
|
|
24
|
+
|
|
25
|
+
If the user provides a browser URL like `https://usegalaxy.eu/workflows/run?id=abc123`, extract the ID and construct the download URL yourself.
|
|
26
|
+
|
|
27
|
+
**Output:** The drafted report markdown is written into the `report.markdown` field of the `.ga` file (with user confirmation), or presented as a code block for pasting into the Workflow Editor's Report tab.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Core Philosophy
|
|
32
|
+
|
|
33
|
+
Reports are **templates** — they are written before knowing what inputs the user will provide or whether the run will succeed. Never assume:
|
|
34
|
+
- Inputs are valid, in the expected format, or of the expected type
|
|
35
|
+
- The run completed successfully or produced expected outputs
|
|
36
|
+
- Biological/scientific meaning of results (the same workflow can be used in different contexts)
|
|
37
|
+
|
|
38
|
+
Use conditional, descriptive language throughout:
|
|
39
|
+
- Summary: "is designed to", "expects", "should produce"
|
|
40
|
+
- Output sections: "if the run completed successfully, this should show..."
|
|
41
|
+
- Column descriptions: what a column *measures*, not what it *means*
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Step 1 — Parse the workflow
|
|
46
|
+
|
|
47
|
+
From the JSON response, extract:
|
|
48
|
+
|
|
49
|
+
**Inputs** — steps where `type` is `data_input` or `data_collection_input`:
|
|
50
|
+
- `steps[N].label` → used in `input="..."` directives
|
|
51
|
+
- `steps[N].annotation` → describes what data is expected (use for prose, not directives)
|
|
52
|
+
- `steps[N].type` → `data_input` (single dataset) vs `data_collection_input` (list/paired collection)
|
|
53
|
+
|
|
54
|
+
**Workflow outputs** — steps where `steps[N].workflow_outputs` is a non-empty array:
|
|
55
|
+
- `steps[N].workflow_outputs[].label` → used in `output="..."` directives
|
|
56
|
+
- `steps[N].label` → the step's short name, used in `step="..."` for `job_parameters`
|
|
57
|
+
- `steps[N].annotation` → use for prose about what this output represents
|
|
58
|
+
|
|
59
|
+
> **Important distinction:** `steps[N].label` is the short identifier (e.g. `"Color Deconvolution"`) used in directives. `steps[N].annotation` is a longer description useful only for prose. Do not confuse them.
|
|
60
|
+
|
|
61
|
+
**Top-level metadata**: `name` (report title), `annotation` (primary source for Summary prose), `tags` (domain context), `license`, `creator`
|
|
62
|
+
|
|
63
|
+
If working from a `.ga` file, also check for a co-located `README.md` in the same directory — IWC workflows often have one with richer descriptions than the `annotation` field.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Step 2 — Select which outputs to feature
|
|
68
|
+
|
|
69
|
+
Not every `workflow_outputs` entry deserves its own section. Apply these rules:
|
|
70
|
+
|
|
71
|
+
**Always include:**
|
|
72
|
+
- The final/terminal tabular output (primary quantitative result)
|
|
73
|
+
- Any output that is the direct basis for the quantitative result (e.g. the binary mask an area measurement is computed from)
|
|
74
|
+
|
|
75
|
+
**Include selectively:**
|
|
76
|
+
- Intermediate images that help the user understand whether the pipeline worked correctly (e.g. a segmentation mask is more informative than a raw deconvolved channel)
|
|
77
|
+
- Prefer outputs closest to the end of the pipeline over early intermediates
|
|
78
|
+
|
|
79
|
+
**Skip or collapse:**
|
|
80
|
+
- Purely intermediate outputs that are only inputs to subsequent steps
|
|
81
|
+
- Outputs that duplicate information already shown
|
|
82
|
+
|
|
83
|
+
**When in doubt:** ask yourself — if the run produced unexpected results, which output would a user look at first to debug it? That's the one to feature.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Step 3 — Classify selected outputs
|
|
88
|
+
|
|
89
|
+
| Output type | Directive |
|
|
90
|
+
|-------------|-----------|
|
|
91
|
+
| Image (TIFF, PNG, JPEG) | `history_dataset_as_image(output="<label>")` |
|
|
92
|
+
| Collection of images | `history_dataset_as_image(output="<label>")` — same directive, works for collections too |
|
|
93
|
+
| Tabular / TSV / CSV | `history_dataset_as_table(output="<label>", show_column_headers=true, compact=true)` + `history_dataset_link(output="<label>", label="Download ...")` |
|
|
94
|
+
| HTML / text | `history_dataset_embedded(output="<label>")` |
|
|
95
|
+
| Unknown | `history_dataset_display(output="<label>")` |
|
|
96
|
+
|
|
97
|
+
For image-type **inputs**, use `history_dataset_as_image(input="<input label>")`.
|
|
98
|
+
For non-image inputs or a general input listing, use `invocation_inputs()`.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Step 4 — Build the report
|
|
103
|
+
|
|
104
|
+
### Required sections
|
|
105
|
+
|
|
106
|
+
**1. Title + run timestamp**
|
|
107
|
+
|
|
108
|
+
````
|
|
109
|
+
# <Workflow Name>
|
|
110
|
+
|
|
111
|
+
```galaxy
|
|
112
|
+
invocation_time()
|
|
113
|
+
```
|
|
114
|
+
````
|
|
115
|
+
|
|
116
|
+
**2. Summary**
|
|
117
|
+
- One paragraph: what the workflow is designed to do, what inputs it expects, what outputs it should produce.
|
|
118
|
+
- Use the top-level `annotation` and step annotations to inform the prose — do not copy them verbatim.
|
|
119
|
+
- End the section with `workflow_image()`.
|
|
120
|
+
|
|
121
|
+
**3. Inputs**
|
|
122
|
+
- Brief prose describing what the input(s) represent and what format/type is expected.
|
|
123
|
+
- For image inputs: `history_dataset_as_image(input="<label>")`.
|
|
124
|
+
- For non-image or multiple inputs: `invocation_inputs()`.
|
|
125
|
+
|
|
126
|
+
**4. Key output sections** (one subsection per selected output)
|
|
127
|
+
- Brief prose: what this output represents and how it was produced — phrased conditionally.
|
|
128
|
+
- The appropriate directive immediately follows.
|
|
129
|
+
- For processed images (masks, segmentations): explain the visual encoding conditionally ("in a successful run, white pixels should represent...").
|
|
130
|
+
|
|
131
|
+
**5. Results** (when tabular outputs exist)
|
|
132
|
+
- A markdown table of expected columns: name and description (factual/definitional only) — this goes **before** the directive so the reader understands the columns before seeing the live data.
|
|
133
|
+
- Then `history_dataset_as_table(...)` followed by `history_dataset_link(...)`.
|
|
134
|
+
|
|
135
|
+
**6. Reproducibility**
|
|
136
|
+
|
|
137
|
+
```galaxy
|
|
138
|
+
history_link()
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Optional sections
|
|
142
|
+
|
|
143
|
+
- `job_parameters(step="<label>", collapse="Show <step> parameters")` — for analytical steps where the chosen parameters significantly affect interpretation
|
|
144
|
+
- `invocation_outputs()` — useful when the workflow has many outputs and a full listing helps
|
|
145
|
+
- `workflow_display(collapse="Show full workflow details")`
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Directive Syntax Rules
|
|
150
|
+
|
|
151
|
+
**Block syntax only — no exceptions:**
|
|
152
|
+
|
|
153
|
+
```galaxy
|
|
154
|
+
directive_name(arg=value)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
One directive per fenced block. Never stack multiple directives in one block. The `${galaxy ...}` inline syntax does **not** work.
|
|
158
|
+
|
|
159
|
+
**Abstract references in workflow templates** (never hardcode IDs):
|
|
160
|
+
- `input="<label>"` — workflow input by its label
|
|
161
|
+
- `output="<label>"` — marked workflow output by its label
|
|
162
|
+
- `step="<label>"` — step by its label
|
|
163
|
+
|
|
164
|
+
Quotes are required when the value contains spaces.
|
|
165
|
+
|
|
166
|
+
See `references/directives.md` for the full directive reference (synced from upstream Galaxy via `make sync-directives`).
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Gotchas
|
|
171
|
+
|
|
172
|
+
| Issue | What to do |
|
|
173
|
+
|-------|-----------|
|
|
174
|
+
| `step.label` is null for many steps | Only use `job_parameters(step=...)` for steps that have a non-null `label`. Silently skip others. |
|
|
175
|
+
| `workflow_outputs` is empty for a step that should be an output | Flag to the user: they must open the step in the Workflow Editor, star the output, and save. Then the `output="..."` directive can reference it. |
|
|
176
|
+
| An important terminal output isn't marked (e.g. a final column-computation step) | Flag it specifically — name the step and describe what it produces. Don't silently omit it or use a less complete upstream output as a substitute without noting the limitation. |
|
|
177
|
+
| Step annotations are very long | Use them to inform prose — do not copy them verbatim into the report. |
|
|
178
|
+
| Multiple image outputs at different pipeline stages | Prefer the output closest to the final result. Intermediate outputs can be omitted or mentioned in prose only. |
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## After drafting
|
|
183
|
+
|
|
184
|
+
Present the template in a code block ready to paste into the Workflow Editor's Report tab.
|
|
185
|
+
|
|
186
|
+
Also explicitly flag:
|
|
187
|
+
1. Any important steps whose output is **not** marked as a `workflow_output` — name the step, what it produces, and instruct the user to star it in the editor.
|
|
188
|
+
2. Any steps referenced in prose that have no `label` and therefore cannot be used with `job_parameters`.
|
|
189
|
+
|
|
190
|
+
See `examples/histology-staining.md` for a complete worked example.
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Example: Histological Staining Area Quantification
|
|
2
|
+
|
|
3
|
+
A complete worked example of applying the workflow-reports skill to a real imaging analysis workflow.
|
|
4
|
+
|
|
5
|
+
## Workflow Metadata
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
|-------|-------|
|
|
9
|
+
| Name | histology-stain-area-quantification |
|
|
10
|
+
| Instance | usegalaxy.eu |
|
|
11
|
+
| ID | `e429074ee0a47cb3` |
|
|
12
|
+
| Download URL | `https://usegalaxy.eu/api/workflows/e429074ee0a47cb3/download?style=editor` |
|
|
13
|
+
| Purpose | Quantify staining area in brightfield histological images using colour deconvolution and automated thresholding |
|
|
14
|
+
| Compatible stainings | IHC (DAB chromogen), Masson's Trichrome |
|
|
15
|
+
|
|
16
|
+
## Extracted Data
|
|
17
|
+
|
|
18
|
+
### Inputs
|
|
19
|
+
|
|
20
|
+
| Step | Label | Type | Annotation |
|
|
21
|
+
|------|-------|------|-----------|
|
|
22
|
+
| 0 | `ROI image for staining analysis` | `data_collection_input` | Brightfield TIFF images, RGB, one ROI per element |
|
|
23
|
+
|
|
24
|
+
### Workflow Outputs
|
|
25
|
+
|
|
26
|
+
| Step | Step label | Output label | Type |
|
|
27
|
+
|------|-----------|--------------|------|
|
|
28
|
+
| 3 | `Color Deconvolution` | `Deconvolved Image` | Multi-channel image |
|
|
29
|
+
| 5 | `Split Image Channels for Staining Detection` | `Collection: Individual Deconvolved Channels` | Image collection |
|
|
30
|
+
| 8 | `Collection: Extract Stain Channel from Sub-Collections` | `Selected Stain Channel` | Image collection |
|
|
31
|
+
| 11 | `Threshold Stain Channel Collection` | `Selected Stain Channel Thresholded` | Image collection (binary mask) |
|
|
32
|
+
| 13 | `Extract Image Features` | `Collection of Tabular: Staining Quantification Results` | Tabular collection |
|
|
33
|
+
| 25 | `Tabular: Staining Feature Results` | `Tabular File: Staining Feature Results` | Tabular (TSV) |
|
|
34
|
+
|
|
35
|
+
**Note:** Step 27 (`Percent area computation`) computes the `percent_area` column but its output is **not marked as a workflow output**. The marked output (`Tabular File: Staining Feature Results`, step 25) is the pre-percent-area table. To include `percent_area` in the embedded table, the step 27 output must be starred in the Workflow Editor.
|
|
36
|
+
|
|
37
|
+
### Key Step Labels (for `job_parameters`)
|
|
38
|
+
|
|
39
|
+
- `Color Deconvolution`
|
|
40
|
+
- `Threshold Stain Channel Collection`
|
|
41
|
+
- `Extract Image Features`
|
|
42
|
+
|
|
43
|
+
### Output Columns (`Tabular File: Staining Feature Results`)
|
|
44
|
+
|
|
45
|
+
| Column | Description |
|
|
46
|
+
|--------|-------------|
|
|
47
|
+
| `sample_id` | Identifier derived from the input image filename |
|
|
48
|
+
| `label` | Region label assigned by the thresholding step |
|
|
49
|
+
| `mean_intensity` | Average pixel intensity within the detected region |
|
|
50
|
+
| `area` | Pixel count of the positively stained region |
|
|
51
|
+
| `area_filled` | Stained area with internal holes filled |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Resulting Report Template
|
|
56
|
+
|
|
57
|
+
````markdown
|
|
58
|
+
# Histological Staining Area Quantification
|
|
59
|
+
|
|
60
|
+
```galaxy
|
|
61
|
+
invocation_time()
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Summary
|
|
67
|
+
|
|
68
|
+
This workflow is designed to quantify the area and intensity of a specific stain in brightfield
|
|
69
|
+
histological images. It takes a collection of input images, applies H-E-DAB colour deconvolution
|
|
70
|
+
to separate the target stain channel from the haematoxylin counterstain, then uses automated
|
|
71
|
+
thresholding to segment positive-staining pixels. Per-sample measurements are collated into a
|
|
72
|
+
single tabular output.
|
|
73
|
+
|
|
74
|
+
Compatible staining types include immunohistochemistry (IHC) with a DAB chromogen and Masson's
|
|
75
|
+
Trichrome (MT). The workflow expects RGB TIFF images — one region of interest (ROI) per
|
|
76
|
+
collection element.
|
|
77
|
+
|
|
78
|
+
```galaxy
|
|
79
|
+
workflow_image()
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Input Images
|
|
85
|
+
|
|
86
|
+
The input to this workflow is a list collection of brightfield microscopy images. Each element
|
|
87
|
+
should represent one region of interest from a tissue section. The images provided for this
|
|
88
|
+
run are shown below.
|
|
89
|
+
|
|
90
|
+
```galaxy
|
|
91
|
+
history_dataset_as_image(input="ROI image for staining analysis")
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Staining Mask
|
|
97
|
+
|
|
98
|
+
If the run completed successfully, each input image will have been converted into a binary mask
|
|
99
|
+
via colour deconvolution and automated thresholding. In a successful run, white pixels represent
|
|
100
|
+
regions classified as positively stained and black pixels represent background. This mask is
|
|
101
|
+
what the quantification measurements are derived from.
|
|
102
|
+
|
|
103
|
+
```galaxy
|
|
104
|
+
history_dataset_as_image(output="Selected Stain Channel Thresholded")
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Results
|
|
110
|
+
|
|
111
|
+
If the workflow completed successfully, the table below shows per-sample staining measurements —
|
|
112
|
+
one row per input image. The expected columns are described below.
|
|
113
|
+
|
|
114
|
+
| Column | Description |
|
|
115
|
+
|--------|-------------|
|
|
116
|
+
| `sample_id` | Identifier derived from the input image filename |
|
|
117
|
+
| `label` | Region label assigned by the thresholding step |
|
|
118
|
+
| `mean_intensity` | Average pixel intensity within the detected region |
|
|
119
|
+
| `area` | Pixel count of the positively stained region |
|
|
120
|
+
| `area_filled` | Stained area with internal holes filled |
|
|
121
|
+
|
|
122
|
+
```galaxy
|
|
123
|
+
history_dataset_as_table(output="Tabular File: Staining Feature Results", title="Staining Feature Results", show_column_headers=true, compact=true)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```galaxy
|
|
127
|
+
history_dataset_link(output="Tabular File: Staining Feature Results", label="Download results (TSV)")
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Reproducibility
|
|
133
|
+
|
|
134
|
+
```galaxy
|
|
135
|
+
history_link()
|
|
136
|
+
```
|
|
137
|
+
````
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Notes
|
|
142
|
+
|
|
143
|
+
- The `history_dataset_as_image` directive works for both single images and collections — no special handling needed.
|
|
144
|
+
- `Selected Stain Channel Thresholded` was chosen over `Deconvolved Image` or `Selected Stain Channel` as the primary visual output because it directly represents what the quantification is based on.
|
|
145
|
+
- The Methods / `job_parameters` blocks were omitted from this template to keep it focused. They can be added as collapsible sections for workflows where parameter choices significantly affect interpretation.
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Example: End-to-End Tissue Microarray Analysis
|
|
2
|
+
|
|
3
|
+
A complete worked example of applying the workflow-reports skill to a multiplex tissue image analysis pipeline.
|
|
4
|
+
|
|
5
|
+
## Workflow Metadata
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
|-------|-------|
|
|
9
|
+
| Name | End-to-End Tissue Microarray Analysis |
|
|
10
|
+
| Source | `.ga` file |
|
|
11
|
+
| Path | `workflows/imaging/tissue-microarray-analysis/tissue-microarray-analysis/tissue-micro-array-analysis.ga` |
|
|
12
|
+
| Purpose | Complete MTI analysis pipeline for TMA data: illumination correction, stitching, dearray, segmentation, quantification, phenotyping, and interactive visualisation |
|
|
13
|
+
|
|
14
|
+
## Extracted Data
|
|
15
|
+
|
|
16
|
+
### Inputs
|
|
17
|
+
|
|
18
|
+
| Step | Label | Type |
|
|
19
|
+
|------|-------|------|
|
|
20
|
+
| 0 | `Raw cycle images` | `data_collection_input` (list of TIFF/OME-TIFF, ordered by cycle) |
|
|
21
|
+
| 1 | `markers.csv` | `data_input` (CSV with columns: round, channel, marker_name) |
|
|
22
|
+
| 2 | `PhenotypeWorkflow` | `data_input` (Scimap-formatted phenotype workflow CSV) |
|
|
23
|
+
|
|
24
|
+
### Workflow Outputs
|
|
25
|
+
|
|
26
|
+
| Step | Step label | Output label | Selected for report |
|
|
27
|
+
|------|-----------|--------------|---------------------|
|
|
28
|
+
| 3 | `Illumination correction with Basic` | `DFP images`, `FFP images` | No — early intermediates |
|
|
29
|
+
| 4 | `Stitching and registration with Ashlar` | `Registered image` | No — intermediate |
|
|
30
|
+
| 5 | `TMA dearray with UNetCoreograph` | `Dearray images`, `Dearray masks`, `TMA dearray map` | `TMA dearray map` only — most informative for verifying dearray |
|
|
31
|
+
| 6 | `Nuclear segmentation` | `Nuclear mask` | Yes — direct basis for quantification |
|
|
32
|
+
| 7 | `Convert dearray images to OME-TIFF` | `Converted image` | No — format conversion intermediate |
|
|
33
|
+
| 8 | `Cell feature quantification with MC-Quant` | `Primary Mask Quantification` | Yes — primary quantitative result |
|
|
34
|
+
| 9 | `Rename OME-TIFF channels` | `Renamed image` | No — intermediate |
|
|
35
|
+
| 10 | `Convert to Anndata` | `Anndata feature table` | No — superseded by phenotyped output |
|
|
36
|
+
| 11 | `Scimap phenotyping` | `Phenotyped feature table` | Yes — enriched final result |
|
|
37
|
+
| 12 | `Create a Vitessce dashboard` | `Vitessce dashboard`, `Vitessce Dashboard Config` | `Vitessce dashboard` only — config is auxiliary |
|
|
38
|
+
|
|
39
|
+
### Step Labels Available for `job_parameters`
|
|
40
|
+
|
|
41
|
+
All steps have labels. Key ones used: `Nuclear segmentation`.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Resulting Report Template
|
|
46
|
+
|
|
47
|
+
````markdown
|
|
48
|
+
# End-to-End Tissue Microarray Analysis
|
|
49
|
+
|
|
50
|
+
```galaxy
|
|
51
|
+
invocation_time()
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Summary
|
|
55
|
+
|
|
56
|
+
This workflow is designed to perform a complete multiplex tissue image (MTI) analysis pipeline
|
|
57
|
+
for tissue microarray (TMA) data imaged using cyclic immunofluorescence. It expects a
|
|
58
|
+
round-ordered collection of raw cycle images (TIFF or OME-TIFF), a CSV markers file with
|
|
59
|
+
channel names in the third column, and a Scimap-formatted phenotype workflow file.
|
|
60
|
+
|
|
61
|
+
Starting from raw images, the pipeline applies illumination correction (BaSiC), stitches and
|
|
62
|
+
registers cycles into a single whole-slide OME-TIFF (ASHLAR), and segments TMA cores into
|
|
63
|
+
individual image crops (UNetCoreograph). Each core image then undergoes nuclear segmentation
|
|
64
|
+
(Mesmer), per-cell feature quantification (MCQUANT), cell phenotyping (Scimap), and interactive
|
|
65
|
+
visualisation (Vitessce). If the run completes successfully, it should produce pyramidal
|
|
66
|
+
OME-TIFF images, nuclear segmentation masks, a quantified feature table, a phenotype-annotated
|
|
67
|
+
AnnData object, and an interactive Vitessce dashboard.
|
|
68
|
+
|
|
69
|
+
```galaxy
|
|
70
|
+
workflow_image()
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Inputs
|
|
74
|
+
|
|
75
|
+
The workflow expects three inputs:
|
|
76
|
+
|
|
77
|
+
- **Raw cycle images** — a list collection of raw fluorescence cycle images (TIFF or OME-TIFF)
|
|
78
|
+
ordered by acquisition cycle (e.g. `cycle_1.tiff`, `cycle_2.tiff`, ...).
|
|
79
|
+
- **markers.csv** — a comma-separated file with columns `round`, `channel`, and `marker_name`.
|
|
80
|
+
The marker names in the third column are assigned as channel names during stitching.
|
|
81
|
+
- **PhenotypeWorkflow** — a Scimap-formatted phenotype workflow CSV that maps hierarchical
|
|
82
|
+
cell phenotypes to marker combinations.
|
|
83
|
+
|
|
84
|
+
```galaxy
|
|
85
|
+
invocation_inputs()
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## TMA Dearray Map
|
|
89
|
+
|
|
90
|
+
After stitching and registration, UNetCoreograph segments individual TMA cores and produces a
|
|
91
|
+
map image showing the detected core positions overlaid on the whole-slide image. If dearray
|
|
92
|
+
completed successfully, this image should show each TMA core outlined or labelled within the
|
|
93
|
+
tissue array. It is useful for verifying that the expected number of cores was detected and
|
|
94
|
+
that core boundaries are correct before proceeding with per-core batch analysis.
|
|
95
|
+
|
|
96
|
+
```galaxy
|
|
97
|
+
history_dataset_as_image(output="TMA dearray map")
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Nuclear Segmentation Masks
|
|
101
|
+
|
|
102
|
+
Mesmer performs nuclear segmentation on each dearrayed core image and produces a collection of
|
|
103
|
+
labelled nuclear mask TIFFs. If segmentation completed successfully, each mask should show
|
|
104
|
+
individual nuclei as distinct integer-labelled regions against a black background — each unique
|
|
105
|
+
integer corresponds to one segmented nucleus. These masks are the basis for cell boundary
|
|
106
|
+
delineation used in feature quantification.
|
|
107
|
+
|
|
108
|
+
```galaxy
|
|
109
|
+
history_dataset_as_image(output="Nuclear mask")
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```galaxy
|
|
113
|
+
job_parameters(step="Nuclear segmentation", collapse="Show nuclear segmentation parameters")
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Cell Feature Quantification
|
|
117
|
+
|
|
118
|
+
MCQUANT quantifies per-cell features from each core image using the nuclear masks, producing a
|
|
119
|
+
CSV table where each row represents one segmented cell and columns contain mean marker
|
|
120
|
+
intensities, spatial coordinates, and morphological measurements.
|
|
121
|
+
|
|
122
|
+
| Column | Description |
|
|
123
|
+
|--------|-------------|
|
|
124
|
+
| `CellID` | Unique integer identifier for each segmented cell |
|
|
125
|
+
| `X_centroid` | X coordinate of the cell centroid in pixels |
|
|
126
|
+
| `Y_centroid` | Y coordinate of the cell centroid in pixels |
|
|
127
|
+
| `<marker>_mean` | Mean fluorescence intensity of the named marker channel within the cell mask |
|
|
128
|
+
| `Area` | Area of the segmented cell nucleus in pixels |
|
|
129
|
+
| `MajorAxisLength` | Length of the major axis of the fitted ellipse |
|
|
130
|
+
| `MinorAxisLength` | Length of the minor axis of the fitted ellipse |
|
|
131
|
+
| `Eccentricity` | Eccentricity of the fitted ellipse (0 = circle, 1 = line) |
|
|
132
|
+
| `Solidity` | Ratio of cell area to convex hull area |
|
|
133
|
+
| `Extent` | Ratio of cell area to bounding box area |
|
|
134
|
+
| `Orientation` | Angle of the major axis relative to the x-axis |
|
|
135
|
+
|
|
136
|
+
```galaxy
|
|
137
|
+
history_dataset_as_table(output="Primary Mask Quantification", show_column_headers=true, compact=true)
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
```galaxy
|
|
141
|
+
history_dataset_link(output="Primary Mask Quantification", label="Download quantification table (CSV)")
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Phenotyped Feature Table
|
|
145
|
+
|
|
146
|
+
Scimap performs automated GMM-based cell phenotyping using the provided phenotype workflow and
|
|
147
|
+
appends cell type annotations to the quantification data. The output is an AnnData (h5ad)
|
|
148
|
+
object compatible with single-cell and spatial analysis packages. Note that GMM-based
|
|
149
|
+
thresholding works best for highly abundant markers with a strong bimodal distribution;
|
|
150
|
+
results should be reviewed carefully before downstream interpretation.
|
|
151
|
+
|
|
152
|
+
```galaxy
|
|
153
|
+
history_dataset_link(output="Phenotyped feature table", label="Download phenotyped AnnData (h5ad)")
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Interactive Vitessce Dashboard
|
|
157
|
+
|
|
158
|
+
Vitessce combines the renamed OME-TIFF core images, nuclear segmentation masks, and phenotyped
|
|
159
|
+
AnnData into an interactive dashboard. If the run completed successfully, the dashboard should
|
|
160
|
+
allow linked exploration of spatial image data alongside single-cell scatter plots and cell
|
|
161
|
+
type visualisations.
|
|
162
|
+
|
|
163
|
+
```galaxy
|
|
164
|
+
history_dataset_embedded(output="Vitessce dashboard")
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Reproducibility
|
|
168
|
+
|
|
169
|
+
```galaxy
|
|
170
|
+
history_link()
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```galaxy
|
|
174
|
+
workflow_display(collapse="Show full workflow details")
|
|
175
|
+
```
|
|
176
|
+
````
|