Skip to content

Fix Nextflow pipeline wiring bugs blocking end-to-end runs - #7

Draft
m-crown wants to merge 1 commit into
v2from
fix/pipeline-wiring-bugs
Draft

Fix Nextflow pipeline wiring bugs blocking end-to-end runs#7
m-crown wants to merge 1 commit into
v2from
fix/pipeline-wiring-bugs

Conversation

@m-crown

@m-crown m-crown commented Aug 9, 2026

Copy link
Copy Markdown
Member

Summary

  • Fixes 8 pipeline-wiring bugs found while trying to run the Nextflow pipeline end-to-end: undefined variables, missing CLI flags, output filename mismatches between main.nf and the Python scripts it calls, a Neo4j import mislabel, a silent-data-loss missing comma, a hardcoded conda path, and a stale Zenodo version reference.
  • One item (three possibly-dead files: produce_minimal_neo4j_files.py, produce_flat_files.py, import_neo4j_data_minimal.sh) is intentionally left unresolved pending a decision on whether they're dead code or an undocumented minimal-install path.

Test plan

  • Run the pipeline end-to-end on a small test set and confirm it completes without the previously-blocking errors
  • Confirm Neo4j import uses the corrected label

🤖 Generated with Claude Code

Implements docs/fix_plan.md items 1-7. Fixing items 1-3 (PRODUCE_NEO4J_FILES
and PROCESS_ALL_CONTACTS wiring) surfaced several more bugs in the same two
processes beyond the original review's scope, found by diffing each
process's declared Nextflow inputs/outputs/script args against what the
underlying Python scripts' argparse and to_csv() calls actually expect:

- PRODUCE_NEO4J_FILES: removed bogus --interpro_domain_ownership flag,
  added missing --superfamily_domain_ownership/--gene3dsa_domain_ownership/
  --scop2_sf_domain_ownership/--scop2_fa_domain_ownership flags, added
  missing scop2_domains_info/scop2_domains_description inputs required by
  produce_neo4j_files.py, and corrected its entire 58-entry output block
  (wrong .csv.gz extension throughout, several renamed files, 13 files
  missing entirely) to match the script's actual 71 output files -
  cross-verified against import_neo4j_data.sh, which already referenced
  the correct filenames.
- PROCESS_ALL_CONTACTS: fixed --contacts -> --contacts_file flag name,
  added missing --scop2_descriptions_file flag and its input/channel
  wiring, and fixed two output filename mismatches (gene3dsa_ not g3dsa_,
  scop2_fa/scop2_sf not scop2b_fa/scop2b_sf).
- process_pdb_contacts.py: fixed missing comma silently merging "SCOP2"
  "Pfam" into "SCOP2Pfam" in a domain filter, dropping real SCOP2/Pfam
  annotations with no error.
- import_neo4j_data.sh: fixed copy-pasted IS_IN_SCOP_CLASS relationship
  type used as the SCOP class node label instead of scopClass.
- nextflow.config: added missing params.scop2_descriptions_file.
- main.nf: replaced hardcoded author-specific Arpeggio conda env path
  with the portable ${workflow.projectDir} pattern used elsewhere.
- docs/installation.md: updated stale Zenodo record/version reference to
  match what the setup scripts actually download.

Item 8 (possible dead code: produce_minimal_neo4j_files.py,
produce_flat_files.py, import_neo4j_data_minimal.sh) intentionally left
untouched - needs an author decision, not a mechanical fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@m-crown
m-crown changed the base branch from main to v2 August 9, 2026 18:15
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