Skip to main content

Agentbx

Project description

Agentbx: A Redis-Based Crystallographic Agent System

Python Version License: MIT

Read the documentation at https://agentbx.readthedocs.io/ Tests Coverage

pre-commit Black

Overview

Agentbx is a Python-based system for managing crystallographic & electron microscopy computing workflows using a Redis-backed agent architecture. It's designed to handle complex calculations using best-in-class algorithms (like structure factor calculation) through modular, single-responsibility agents that communicate via persistent data bundles.

Vision & Motivation

A key motivation for this architecture is to enable seamless integration between AI models and traditional crystallographic/EM toolkits. By using Redis as middleware and implementing clear separation of concerns, Agentbx allows:

  • Technology Stack Independence: AI models (PyTorch, TensorFlow, etc.) can run independently from crystallographic toolkits (CCTBX, Phenix, etc.)
  • Event-Driven Architecture: Agents react to status messages placed on Redis queues, enabling asynchronous processing
  • Modular Integration: New AI models or crystallographic tools can be added as agents without modifying existing code
  • Scalable Workflows: Complex pipelines can be orchestrated across different computational resources

This design enables researchers to combine cutting-edge AI predictions (protein structure prediction, electron density interpretation) with established crystallographic refinement workflows, all coordinated through Redis as the central nervous system.

Core Architecture

1. Agent System

  • SinglePurposeAgent: Base class for agents with one clear responsibility
  • StructureFactorAgent: Calculates structure factors from atomic models
  • TargetAgent: Computes target functions for refinement
  • GradientAgent: Calculates gradients for optimization
  • ExperimentalDataAgent: Handles experimental data processing
  • AI Model Agents: Future agents for protein structure prediction, density interpretation, etc.

2. Redis Manager

  • Persistent Storage: Stores data bundles with TTL and metadata
  • Message Queues: Status messages and workflow coordination
  • Serialization: Handles complex CCTBX objects via pickle/JSON
  • Connection Pooling: Robust Redis connections with health monitoring
  • Caching: Built-in caching for expensive computations

3. Bundle System

  • Data Containers: Bundles hold related crystallographic data assets
  • Metadata: Creation time, checksums, provenance information
  • Validation: Built-in validation for bundle contents
  • Type Safety: Strong typing for different bundle types

4. Utility Framework

  • File Handling: PDB/MTZ file reading and validation
  • Data Analysis: Complex number analysis, miller array statistics
  • Workflow Management: Multi-step workflow orchestration
  • CLI Tools: Command-line interface for common operations

Key Features

Modular Design

Each agent does ONE thing well:

  • StructureFactorAgent: Only calculates structure factors
  • TargetAgent: Only computes target functions
  • AI Model Agents: Only handle AI predictions
  • No mixing of concerns between agents

Technology Stack Separation

  • AI Models: Can run on GPU clusters with PyTorch/TensorFlow
  • Crystallographic Tools: Run on CPU clusters with CCTBX/Phenix
  • Redis Middleware: Coordinates between different computational resources
  • Event-Driven: Agents react to status messages, enabling asynchronous processing

Persistent Data Flow

  • Redis stores all intermediate results
  • Agents can be restarted without losing data
  • Data persists between workflow runs
  • Unique bundle IDs for tracking

Crystallographic Integration

  • Native CCTBX support for crystallographic calculations
  • Handles real PDB/MTZ files
  • Structure factor calculations with bulk solvent
  • R-factor computation and validation

Scalable Architecture

  • Redis enables distributed processing
  • Multiple agents can work on same data
  • Easy to add new agent types
  • Workflow orchestration for complex pipelines

Example Workflow

  1. Download Data: PDB structure + MTZ reflections
  2. Create Bundle: Package atomic model data
  3. Store in Redis: Persistent storage with metadata
  4. Run Agent: StructureFactorAgent processes data
  5. Store Results: Structure factors saved back to Redis
  6. Analyze: Comprehensive data analysis and statistics

Future AI Integration Workflows

AI-Assisted Structure Determination

  1. AI Model Agent: Predicts initial protein structure from sequence
  2. StructureFactorAgent: Calculates structure factors from AI prediction
  3. TargetAgent: Computes target function comparing to experimental data
  4. RefinementAgent: Optimizes structure using gradients
  5. ValidationAgent: Assesses structure quality

AI-Enhanced Electron Density Interpretation

  1. ExperimentalDataAgent: Processes experimental data
  2. AI Density Agent: Interprets electron density using deep learning
  3. StructureFactorAgent: Calculates structure factors
  4. ComparisonAgent: Validates AI interpretation against experimental data

Use Cases

Crystallographic Refinement

  • Structure factor calculation from atomic models
  • Target function computation for refinement
  • Gradient calculation for optimization
  • Experimental data integration

AI-Crystallography Integration

  • Protein structure prediction integration
  • Electron density interpretation with AI
  • Automated structure validation
  • AI-assisted model building

Data Pipeline Management

  • Persistent storage of intermediate results
  • Workflow orchestration for complex calculations
  • Data validation and quality control
  • Reproducible research workflows

Distributed Computing

  • Multiple agents working on same dataset
  • Redis as central data store
  • Scalable architecture for large datasets
  • Fault tolerance and recovery

Requirements

  • Python 3.10+: Core language
  • Redis: Data persistence, caching, and message queues
  • CCTBX: Crystallographic calculations
  • Pydantic: Data validation and serialization
  • Click: Command-line interface
  • Poetry: Dependency management
  • Future: PyTorch/TensorFlow for AI model agents

Installation

You can install Agentbx via pip from PyPI:

$ pip install agentbx

Or install with Redis support:

$ pip install agentbx[redis-agents]

Quick Start

1. Start Redis Server

redis-server

2. Download Test Data

python examples/download_pdb_data.py 1ubq

3. Run Structure Factor Calculation

python examples/redis_structure_factor_example.py

4. Use CLI Tools

# Validate files
python -m agentbx.utils.cli validate examples/input.pdb examples/input.mtz

# Analyze a bundle
python -m agentbx.utils.cli analyze bundle_id_here

# Run workflow
python -m agentbx.utils.cli workflow examples/input.pdb examples/input.mtz

Code Organization

Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the MIT license, Agentbx is free and open source software.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Credits

This project was generated from @cjolowicz's Hypermodern Python Cookiecutter template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentbx-1.0.3.tar.gz (40.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentbx-1.0.3-py3-none-any.whl (50.4 kB view details)

Uploaded Python 3

File details

Details for the file agentbx-1.0.3.tar.gz.

File metadata

  • Download URL: agentbx-1.0.3.tar.gz
  • Upload date:
  • Size: 40.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for agentbx-1.0.3.tar.gz
Algorithm Hash digest
SHA256 5486920c3764c9075d42b4681179415e2882413e984f8b350c4d195ebaa5ac70
MD5 7c12b0453d79829a1f77dc1de9dd5b87
BLAKE2b-256 ec8ed27c75ffc64929752fd16d8b34187a2107b0d5c09963f824f3eab941f5ab

See more details on using hashes here.

File details

Details for the file agentbx-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: agentbx-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 50.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for agentbx-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c9804abcc9727c6869cb4d065e144559cc3c7edeaeb2550b74c110c84843daaf
MD5 52becc30d4e223618bb6e732396e3e7f
BLAKE2b-256 5d96abef4e8e68ef7dbd17fc5ef9a8e42b28077c96164669fd74ad2cbf1d2610

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page