An enhanced software package for automated protein side-chain placement. It predicts accurate side-chain conformations using rotamer libraries and a flat-bottom potential strategy. By leveraging statistical rotamer libraries and a flat-bottom potential to balance accuracy and computational efficiency, it significantly enhances the reliability of protein-ligand interaction modeling—making it a key component in modern drug discovery workflows.
nbth
Check their projects out: Simple Jockie music-bot, coderx, anime dubbing cli tool, Docker Container Manager Panel, LLM Study Helper, LLama Bot
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
Improved CONECT record handling for compatibility, updated DATA_URL, enhanced documentation across core, engine, workflows, and CLI modules with detailed user and developer guides, architectural overviews, workflow and forcefield explanations, and improved algorithmic clarity; included new CLI usage docs in release artifacts; fixed bond connectivity representation and updated configuration templates for clarity.
Major refactor: CLI configuration system now supports zero-config execution with new file-based config structs and utility functions; improved progress reporting in engine and workflows; core and engine modules made crate-visible; extensive documentation added for data models, molecular system, forcefields, energy calculations, optimization, rotamers, and engine utilities; dependency updates and version bump to 0.5.0-beta.1.
Introduced EnergyGrid for efficient energy calculations and parallel optimization; added SystemView for transactional molecular system management; streamlined atom querying, selection, and energy evaluation; improved modularity and test coverage; enhanced placement workflow and doublet optimization using EnergyGrid and improved parallel processing.
Improved scoring and physical accuracy: added forcefield weight maps for energy scaling, introduced EnergyWeights and EnergyComponentWeights for configuration, enhanced AtomRole parsing, and fixed/expanded flat-bottom and Buckingham potential boundary logic. Updated tests and data references, and bumped version to 0.4.0-alpha.1.
Hydrogen-bond calculation fixed and parameterization improved; rotamer library gains internal energy fields; EL and interaction energy calculations refined (including internal energy); CLI and workflows updated for ligand selection and topology overrides; data URLs/version bumps to alpha.1/.2/.3; expanded tests and logging.
!!!NEW VERSION RELEASED: v0.2.0-alpha.1!!!
https://github.com/caltechmsc/screampp/releases/tag/v0.2.0-alpha.1
Refactors the core energy model to calculate absolute total system energy, moving away from a relative optimization score. This is achieved by introducing a new fixed_energy task that computes a constant energy offset from all non-optimizable parts of the system (e.g., static backbone, environment, fixed sidechains). The final energy of any solution is now the sum of this fixed offset, the pre-computed EL energy, and the pairwise interaction energy. This change provides more physically meaningful energy values.
This refactoring also significantly streamlines the parameterization and data loading pipeline. Topology information is now managed by a dedicated TopologyRegistry, loaded from a single file, which decouples rotamer placement logic from the rotamer library itself. Consequently, the forcefield and rotamer libraries are now simpler and more focused.
Engine and workflows refactored for clarity, performance, and parallelism in energy calculations; Solution and OptimizationState structures improved; placement workflow, simulated annealing, and progress reporting enhanced; CLI output formatting and documentation updated; tests expanded for coverage; dependencies updated.
Streamlined rotamer parameterization and atom role assignment in core and engine; improved CLI support for topology registry; refactored energy calculation logic (EL and interaction energy) and test setups; removed unused/obsolete fields and errors, and optimized atom/residue handling throughout modules.
Major refactor and feature update for atom roles, residue topology, and placement logic: introduced AtomRole enum and role-based atom queries, enhanced residue and system caching, replaced PlacementInfo with TopologyRegistry throughout engine/core/workflows, streamlined error handling and parameterization, and improved unit tests for topology, parameterization, and placement. Updated configuration structs and test infrastructure for better clarity and maintainability.
!!!FIRST VERSION RELEASED: v0.1.0-alpha.1!!!
https://github.com/caltechmsc/screampp/releases/tag/v0.1.0-alpha.1
Enhanced atom name mapping, output formatting, and progress/UI management; improved sidechain placement, error handling, and CI/release workflows; unified force field file naming and introduced robust logging, templating, and state management for CLI and workflows.
<name>-<version>
Introduced initial CLI structure for SCREAM++ with robust command/argument parsing, error handling, data management, and logging; enhanced logical name resolution, progress handling, configuration loading/merging, and side-chain placement integration. Updated dependencies, improved maintainability and test coverage, and fixed core/engine logic for interaction energy and residue selection.
Refactored and enhanced rotamer and topology handling, streamlined rotamer deduplication and bond logic, improved sidechain placement, and updated tests for new structure and workflows.
Refactored core and engine modules for improved van der Waals parameterization, residue and atom ID consistency, and file parsing; introduced atom sorting and enhanced error handling, removed unused serial parameters, and updated tests for clarity and correctness.
Improved accessibility, consistency, and optimization logic in engine and core; enhanced placement, scoring, and simulated annealing workflows with robust neighbor exclusions and convergence controls.
Enhanced engine and core modules for ligand selection, optimization, energy calculation, sampling, and configuration; improved error handling, builder patterns, and test coverage.
Implemented robust side-chain placement, energy, and clash detection infrastructure in engine; enhanced error handling and configurability; refactored core energy terms and residue display.
Removed charge, topology, and incorrect force field parameter files from data; added new DREIDING 0.3/0.4 Lennard-Jones 12-6 and Buckingham Exp-6 parameter files. Refactored core to eliminate charge and topology parameter logic from Forcefield and related tests. Restructured engine with new global and placement configuration using builder patterns, introduced OptimizationConfig and enhanced design configuration, implemented EngineError and context/optimization management structs, and added comprehensive unit tests for configuration, context, solution, and optimization logic.
Added and refactored engine module with configuration, context, and error handling: introduced and revised file/path management (InputPaths, InputFiles), placement and target selection enums, task and configuration structs, and ScreamContext initialization logic. Developed ScreamError enum for robust error handling, implemented default traits, and added comprehensive unit tests. Initialized the engine module structure with config, context, and error submodules, and added the tracing crate as a development dependency.
Added rotamer libraries (amber, amber-n, charmm, charmm-n, qeq, qeq-n) and placement configurations to the data module. Implemented Rotamer data structures and RotamerLibrary for managing and retrieving rotamer data, added PlacementInfo for atom placement, and enhanced parameterization methods for atom properties and hydrogen bonds. Improved error handling with custom error enums, introduced loading functions for rotamer and placement data, and developed comprehensive unit tests for all new features. Integrated a dedicated rotamers module into the core structure.
Upgraded toml dependency, added bond angle calculation and corresponding tests, enhanced Parameterizer with deltasfactor, implemented EnergyCalculator for van der Waals, Coulomb, and hydrogen bond energy computations, introduced getbondedneighbors in MolecularSystem, and developed a scoring module with Scorer, InteractionEnergy, and error handling. Added comprehensive tests for new energy and scoring features, and structured codebase with a dedicated forcefield module.
Implemented core forcefield functionality, including potential functions (Lennard-Jones, Buckingham Exp-6, Coulomb, DREIDING hydrogen bond, flat-bottom), error handling, and parameter structures for van der Waals, hydrogen bond, delta, charge, topology, and global parameters. Developed a unified Forcefield struct, added TOML/CSV-based parameter loading, and integrated a Parameterizer with methods for system, topology, charge, non-bonded, and delta parameterization, as well as peptide bond construction. Refactored and cleaned up parameter structures and error enums, improved numerical stability and readability, and added comprehensive unit tests for all new features.
Added charge data (amber, amber-n, charmm, charmm-n, qeq, qeq-n) as CSVs, included topology files for 28 amino acids, imported all delta parameters for RMSD range, and integrated DREIDING forcefield parameters (Buckingham Exp-6 and Lennard-Jones 12-6).
Renamed AminoAcidType to ResidueType with parsing and conversion utilities, updated Residue and add_residue to support optional ResidueType for flexible residue handling, refactored and simplified identifiers and core structures, improved error handling in hydrogen generation, removed unused AtomFlags and bitflags, and added comprehensive unit tests for new and updated features.
Added geometric and chemical utilities to core, including functions for bond geometry (CbCreationParams, CB/HN position calculations, SP3 hydrogen generation), vector and rotation math (rotationtoalign, rotationfromaxis_angle), and RMSD/deviation calculations. Introduced amino acid type enumeration and identifiers module, improved geometric utils tests, moved dihedral angle logic, and updated dependencies for data structure support.
Refactored core data structures to use slotmap-based IDs for Atom, Residue, and Chain entities, updated all related models (Atom, Residue, Chain, Bond, MolecularSystem) for new ID types and improved data management, enhanced file I/O with BufWriter and public module visibility, removed unused fields and modules, streamlined residue and bond management, improved atom removal safety, replaced builder pattern with direct usage, and added comprehensive unit tests for all affected components.
Implemented and refactored core file I/O structures and error handling (especially for BGF format), enhanced and tested Atom and MolecularSystem models, introduced custom error types, improved chain type handling and parsing logic, added lookup maps for efficient access, and updated CI, dependencies, and project scaffolding.