Skip to content

chore: invoke migrated Jobs via the -i/-o short options - #27

Merged
tdudgeon merged 1 commit into
mainfrom
chore/canonical-io-option-spellings
Aug 11, 2026
Merged

chore: invoke migrated Jobs via the -i/-o short options#27
tdudgeon merged 1 commit into
mainfrom
chore/canonical-io-option-spellings

Conversation

@tdudgeon

Copy link
Copy Markdown
Collaborator

Closes the Job Definition half of InformaticsMatters/squonk2-jobs#39.

What changed

Seven Jobs invoke scripts that now build their I/O options from
rdkit_utils.add_common_molecule_io_args(). Their command blocks moved from
--input/--output to -i/-o, and their Job Definition versions are
bumped per docs/versioning.md.

File Job Script Version
rdkit.yaml generate-low-energy-conformers le_conformers.py 1.0.0 → 1.0.1
rdkit.yaml rdkit-molprops rdkit_props.py 1.0.0 → 1.0.1
rdkit.yaml rdkit-dedup rdkit_dedup.py 1.0.1 → 1.0.2
rdkit.yaml sa-score sa_score.py 1.0.0 → 1.0.1
rdkit.yaml similarity-screen-rdkit screen.py 1.0.0 → 1.0.1
rdkit.yaml cluster-butina cluster_butina.py 1.0.0 → 1.0.1
im-virtual-screening.yaml enumerate-candidates enumerate.py 1.0.0 → 1.0.1

Why the short forms, not --infile/--outfile

Issue #39 asked for the canonical long spellings. I tried that first and
jote failed 11 of 32 tests:

enumerate.py: error: the following arguments are required: -i/--input, -o/--output
rdkit_props.py: error: the following arguments are required: -i/--input

Every Job in this manifest pins tag: 'stable', and
informaticsmatters/vs-prep:stable was last published on 2024-06-10 — long
before the migration. It has no --infile/--outfile at all. So a definition
written with the long spellings cannot be loaded until a new image is published,
which turns a cosmetic change into a release-ordering problem.

-i and -o are canonical too, and they are the only spelling that works
against both the pre-migration image and the migrated code — and they survive
the eventual removal of the --input/--output aliases without a second pass.
They are also already how squonk2-desc-mordred, squonk2-desc-rdkit and
squonk2-train-test-split invoke their migrated scripts.

Verification

jote -m data-manager/manifest-im-virtual-screening.yaml, nextflow 22.10.0 to
match Dockerfile-nextflow:

  • against the published vs-prep:stablefound=32 passed=32 failed=0
  • against a locally built :latest carrying the migrated scripts, for the 7
    changed Jobs via --image-tag latestfound=11 passed=11 failed=0

The second run is the first time jote has exercised the migrated
virtual-screening scripts: the earlier post-migration run passed entirely on the
published 2024 image, so it validated the old code.

Deliberately unchanged

max_min_picker, le_conformers_for_mol, reactor, sucos, fail,
prepare_rdock, pharmacophore, convert_file, sdf_manip and the moldb
modules declare --input/--output themselves and never adopted the shared
group — renaming them would be a gratuitous breaking change. The
--input/--output on the two nextflow Jobs are params.input/params.output
for le_conformers.nf and enumerate.nf; both workflows already call their
scripts with -i/-o. cluster-butina's --output-fragment is its own flag.

Note that #39's scope table mislabels rdkit.yaml lines 1631–1632 as
cluster_butina.py; that command is python -m sdf_manip, which is out of
scope. The real scope was 7 Jobs, not 8.

🤖 Generated with Claude Code

Seven Jobs call scripts that now build their I/O options from
rdkit_utils.add_common_molecule_io_args(). Those scripts accept
-i/--infile/--input and -o/--outfile/--output; the long --input and
--output spellings are deprecated aliases that will be withdrawn.

Switch the affected command blocks to the -i/-o short forms rather than
the canonical long spellings. The short forms are canonical too, and they
are the only spelling that works against every image these Jobs can be
loaded against: informaticsmatters/vs-prep:stable — the tag all of these
Jobs pin — was last published in June 2024 and predates the migration, so
it has no --infile/--outfile at all. Writing --infile here would make the
definitions unloadable until a new image ships; -i/-o has no such ordering
dependency and survives the alias removal unchanged.

This also matches how squonk2-desc-mordred, squonk2-desc-rdkit and
squonk2-train-test-split already invoke their migrated scripts.

Job Definition versions are bumped, per docs/versioning.md.

Verified with jote against the main manifest:
  - published vs-prep:stable ..... found=32 passed=32 failed=0
  - locally built :latest ........ found=11 passed=11 failed=0
    (the 7 changed Jobs, via --image-tag latest)

Commands for scripts that never adopted the shared group are untouched:
max_min_picker, le_conformers_for_mol, reactor, sucos, fail,
prepare_rdock, pharmacophore, convert_file, sdf_manip and the moldb
modules all declare --input/--output themselves. The --input/--output on
the two nextflow Jobs are workflow params, not script options.

Refs InformaticsMatters/squonk2-jobs#39

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant