This repository was archived by the owner on Mar 10, 2026. It is now read-only.
Conversation
…ogical name parsing
…nt registry support
… rotamer libraries, forcefields, delta params, and placement registries
…eorganize dependencies
…ty and log file support
…g CLI arguments in PartialPlacementConfig
…ging with CLI arguments
…thods for setting custom paths
…d update test assertions
…ove event handling
26 tasks
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a comprehensive command-line interface (scream-cli) for the scream-core library, enabling users to execute protein side-chain placement with rich configuration options, parallel execution, and interactive progress reporting. The implementation follows a robust architectural pattern with asynchronous task management, sophisticated configuration merging, and a local data management system.
- Implements the core
placesubcommand with extensive CLI arguments and configuration file support - Establishes a local data management system with download capabilities and file resolution
- Integrates an interactive terminal UI with progress bars and real-time status updates
Reviewed Changes
Copilot reviewed 27 out of 32 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
crates/scream-core/src/workflows/place.rs |
Updates to workflow signatures and parameterization integration |
crates/scream-core/src/engine/progress.rs |
Enhanced progress reporting with new event types |
crates/scream-core/src/core/models/residue.rs |
Improved atom name handling for duplicate atoms |
crates/scream-core/src/engine/placement.rs |
Better error handling and atom pool management |
crates/scream-cli/src/main.rs |
Async application framework with UI management |
crates/scream-cli/src/cli.rs |
Comprehensive CLI argument parsing and validation |
…arity and consistency
…tency in test cases
1da8480 to
214cf4e
Compare
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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:
Introduces a comprehensive command-line interface (
scream-cli) to drive the corescream-coreworkflows. The centerpiece is theplacesubcommand, which provides a rich set of options for protein sidechain placement, configuration overrides, and parallel execution. The CLI is built on a robust framework that includes asynchronous execution with Tokio, a sophisticated configuration merging system, a local data manager for handling forcefields and rotamer libraries, and an interactive terminal UI for progress reporting.Changes:
Implemented
placeSubcommand:placesubcommand usingclapto execute the core placement workflow.--input,--output, and--config.--s-factor,--num-solutions,--no-refinement, and a generic--set KEY=VALUEoption.Developed a Sophisticated Configuration System:
amber@rmsd-1.0) into actual file paths using theDataManager.Created a Local Data Management System:
dataSubcommand: Implemented a new command to manage local data, includingdownload,path,set-path, andreset-path.DataManager: A struct responsible for handling the default data directory, downloading data packs from a remote source, and resolving logical names to file paths.Introduced an Interactive Terminal UI:
UiManager: Developed an asynchronous UI manager usingtokioandindicatif.tracingfor log output without corrupting the progress display.ProgressReportercallback system fromscream-core, decoupling the core logic from its presentation.Established CLI Application Framework:
main.rs: Set up an asynchronoustokioruntime to manage the UI and workflow tasks concurrently.logging.rs: Implemented atracingsetup that directs logs to both a file and theUiManagerfor console display.error.rs: Defined a centralCliErrorenum for structured and user-friendly error handling.cli,commands,config,data,ui, etc.