Skip to content

feat(model): Implement Core Data Models and CI Pipeline#2

Merged
TKanX merged 14 commits intomainfrom
feature/1-architect-core-data-models-and-unified-system-representation-for-dreid-forge
Dec 6, 2025
Merged

feat(model): Implement Core Data Models and CI Pipeline#2
TKanX merged 14 commits intomainfrom
feature/1-architect-core-data-models-and-unified-system-representation-for-dreid-forge

Conversation

@TKanX
Copy link
Copy Markdown
Member

@TKanX TKanX commented Dec 6, 2025

Summary:

Implemented the foundational architecture for the dreid-forge project, establishing the core data models for molecular representation. This includes systems for atoms, bonds, topology potentials, and biological metadata, fulfilling the requirements for a unified system representation. Additionally, a Continuous Integration (CI) pipeline has been configured to ensure code quality and stability from the start.

Changes:

  • Implemented Core Types and Elements:

    • Added a comprehensive Element enum covering atomic numbers 1-118.
    • Implemented methods for retrieving atomic mass, atomic number, and symbol parsing.
    • Added BondOrder enum with value support and string parsing.
  • Developed Molecular Data Structures:

    • Created Atom struct to handle elemental identity and spatial coordinates.
    • Implemented Bond struct with canonical index ordering and deduplication logic.
    • Developed System class as the central container for atoms, bonds, and periodic box vectors.
  • Added Topology and Potentials:

    • Defined comprehensive potential energy data structures (BondPotential, AnglePotential, DihedralPotential, ImproperPotential).
    • Implemented Non-bonded potential definitions (VdwPairPotential, HBondPotential).
    • Created ForgedSystem to aggregate system data with atom types and forcefield parameters.
  • Integrated Biological Metadata:

    • Implemented BioMetadata and AtomResidueInfo to support PDB-style data (residue names, chain IDs, insertion codes).
  • Established CI Pipeline:

    • Added .github/workflows/ci.yml to automate building, formatting checks (cargo fmt), linting (clippy), testing (cargo test), and documentation checks.
  • Documentation and Testing:

    • Added comprehensive unit tests for all models, parsers, and physics parameters to ensure data integrity.

@TKanX TKanX self-assigned this Dec 6, 2025
@TKanX TKanX added the enhancement ✨ New feature or request label Dec 6, 2025
Copilot AI review requested due to automatic review settings December 6, 2025 23:18
@TKanX TKanX linked an issue Dec 6, 2025 that may be closed by this pull request
47 tasks
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR establishes the foundational data models for the dreid-forge molecular modeling library, implementing comprehensive type systems for chemical elements, molecular structures, topology potentials, and biological metadata. It also sets up a CI pipeline to maintain code quality through automated testing and linting.

Key Changes:

  • Implemented complete periodic table support via Element enum (atomic numbers 1-118) with atomic mass and symbol lookup
  • Created molecular data structures (Atom, Bond, System) with canonical bond ordering for efficient deduplication
  • Defined extensible topology potential types (harmonic, Morse, Lennard-Jones, etc.) with ForgedSystem as the unified container
  • Added PDB-compatible biological metadata structures (BioMetadata, AtomResidueInfo)
  • Configured GitHub Actions CI workflow for automated building, formatting, linting, and testing

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
src/model/types.rs Core types including Element enum (118 elements) with atomic masses, BondOrder enum with parsing support, and custom error types
src/model/atom.rs Atom struct representing an element with 3D coordinates
src/model/system.rs Bond struct with canonical ordering (i ≤ j) and System container for atoms, bonds, box vectors, and metadata
src/model/metadata.rs PDB-style biological metadata structures (AtomResidueInfo, BioMetadata) for residue information
src/model/topology.rs Comprehensive potential energy types (bond, angle, dihedral, improper, VdW, H-bond) and ForgedSystem aggregator
src/model/mod.rs Module declarations for the model components
src/lib.rs Library root exposing the model module
.github/workflows/ci.yml CI pipeline configuration with format checking, clippy linting, testing, and documentation generation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/model/atom.rs
Comment thread src/model/types.rs
Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml
Comment thread src/model/topology.rs Outdated
Comment thread src/model/metadata.rs
Comment thread src/model/system.rs
Comment thread src/model/topology.rs
Comment thread src/model/types.rs
Comment thread src/model/topology.rs Outdated
@TKanX TKanX force-pushed the feature/1-architect-core-data-models-and-unified-system-representation-for-dreid-forge branch from c85b9d3 to cdd1751 Compare December 6, 2025 23:33
@TKanX TKanX merged commit 68ae818 into main Dec 6, 2025
2 checks passed
@TKanX TKanX deleted the feature/1-architect-core-data-models-and-unified-system-representation-for-dreid-forge branch December 6, 2025 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement ✨ New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Architect Core Data Models and Unified System Representation for dreid-forge

2 participants