fix: repair moldb-enumerate-mols workflow and correct enumeration count#17
Merged
Conversation
enumerate_mols.nf was wired to nf-processes/rdkit/enumerate.nf, which wraps the top-level enumerate.py (SDF-only output). The downstream load_enum process (moldb.load_enums) expects tab-delimited smiles/id/code .cxsmi records, which moldb/enumerate.py already knows how to produce via its --output *.cxsmi mode, but no Nextflow process wrapped it. Added nf-processes/moldb/enumerate.nf to fill that gap and repointed the include. Also fixes two multi-channel-output call sites in enumerate_mols.nf (load_enum(enumerate.out) and enumerate.out.subscribe) that needed explicit [0]/[1] indices, matching the convention used elsewhere in this repo's .nf files. With the pipeline actually running end-to-end for the first time, the moldb-count-rows "enumeration" test's hardcoded expected count (514) turned out to be stale. Verified across 3 independent fresh-database runs that the real, reproducible count is 529, and updated the test. Verified with jote against a real Postgres instance: all 12 tests in manifest-moldb.yaml now pass end-to-end (previously blocked at test 5/12). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This was referenced Jul 20, 2026
Closed
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
moldb/enumerate_mols.nfwired itsenumerateprocess tonf-processes/rdkit/enumerate.nf, which wraps the top-levelenumerate.py— that script only ever writes real SDF blocks. The downstreamload_enumprocess (moldb.load_enums) expects tab-delimitedsmiles\tid\tcode.cxsmirecords instead, causingIndexError: list index out of rangeat runtime.moldb/enumerate.py(a separate, moldb-specific script) already supports exactly that.cxsmioutput mode, but no Nextflow process wrapped it. Addednf-processes/moldb/enumerate.nf(following the existingnf-processes/moldb/filter.nfpattern) and repointed theincludeinenumerate_mols.nf.enumerate_mols.nf(load_enum(enumerate.out)andenumerate.out.subscribe) that needed explicit[0]/[1]indices — same convention already used everywhere else in this repo's.nffiles (e.g.le_conformers.nf,frag-merge-pharmacophore.nf).moldb-count-rows'senumerationtest turned out to have a stale hardcoded expected count (514). Verified across 3 independent fresh-database runs that the real, reproducible count is 529 (not RDKit embedding randomness — identical every run), and updated the test accordingly.Test plan
jote --manifest data-manager/manifest-moldb.yamlagainst a real Postgres instance: all 12 tests now pass end-to-end (previously the run-group aborted at test 5/12, and even after the first fix, at test 6/12)🤖 Generated with Claude Code