Description:
This task represents the evolution of dreid-forge from a core library into a versatile command-line utility for DREIDING force field parameterization. The objective is to build a user-friendly CLI that exposes the parameterization engine through two primary workflows: bio for biomolecular structures (PDB/mmCIF) and chem for small molecules (MOL2/SDF).
The implementation will introduce a new binary target at src/bin/dreidforge.rs, organized into a modular architecture under src/bin/cli/. The CLI will utilize clap for robust argument parsing, anyhow for top-level error handling, and indicatif for progress feedback during parameterization. The I/O layer must abstract away file vs. stdin/stdout differences, enabling seamless integration with existing computational chemistry workflows.
Tasks:
Description:
This task represents the evolution of
dreid-forgefrom a core library into a versatile command-line utility for DREIDING force field parameterization. The objective is to build a user-friendly CLI that exposes the parameterization engine through two primary workflows:biofor biomolecular structures (PDB/mmCIF) andchemfor small molecules (MOL2/SDF).The implementation will introduce a new binary target at
src/bin/dreidforge.rs, organized into a modular architecture undersrc/bin/cli/. The CLI will utilizeclapfor robust argument parsing,anyhowfor top-level error handling, andindicatiffor progress feedback during parameterization. The I/O layer must abstract away file vs. stdin/stdout differences, enabling seamless integration with existing computational chemistry workflows.Tasks:
Phase 1: Project Scaffolding
Cargo.toml:clap,anyhow,indicatif,is-terminal.[[bin]] name = "dreidforge" path = "src/bin/dreidforge.rs".src/bin/cli/mod.rs.Clistruct with global arguments:-i, --input: Input path (defaults to stdin if missing).-o, --output: Output path(s) (defaults to stdout if missing).--out-format: Force output format.-q, --quiet: Suppress progress output.Phase 2: I/O Abstraction Layer
.data+.in.settings).Phase 3: Subcommand Implementation
cli/bio.rs):--no-water,--no-ions,--no-hetero,--keep,--remove.--no-protonate,--ph,--his(hid/hie/random/network).--solvate,--solv-margin,--cation,--anion.--hetero-templateand--ss-cutoff.cli/chem.rs):--charge(none/qeq) with QEq solver options.--bond,--angle,--vdw.--params,--rules.Phase 4: User Interface Polish
Phase 5: Testing and Documentation