Metadata-Version: 2.4
Name: rs-stardust
Version: 0.0.1
Summary: Losses and tools for coordinate refinement
Author: RS-Station
License: Apache-2.0
Project-URL: Homepage, https://github.com/rs-station/stardust
Project-URL: Repository, https://github.com/rs-station/stardust
Project-URL: Issues, https://github.com/rs-station/stardust/issues
Keywords: crystallography,refinement,machine-learning
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24.0
Requires-Dist: torch>=2.0.0
Requires-Dist: gemmi>=0.6.0
Requires-Dist: mdtraj>=1.9.7
Requires-Dist: loguru>=0.7.0
Requires-Dist: tqdm>=4.65.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: SFcalculator-torch>=0.3.1
Provides-Extra: tests
Requires-Dist: pytest>=7.0.0; extra == "tests"
Requires-Dist: pytest-cov>=4.0.0; extra == "tests"
Requires-Dist: pytest-xdist>=3.0.0; extra == "tests"
Provides-Extra: wandb
Requires-Dist: wandb>=0.22.3; extra == "wandb"
Provides-Extra: ci
Requires-Dist: ruff; extra == "ci"
Requires-Dist: pre-commit>=4.0.0; extra == "ci"
Requires-Dist: mypy>=1.20.1; extra == "ci"
Dynamic: license-file

# Stardust: Modular Coordinate Refinement Library

Stardust is a modular library supporting coordinate refinement against experimental data: cryo-EM maps, crystallographic structure factors, and beyond.

Stardust is based on pytorch.


## Structure and Vision

Stardust implements two primary abstractions:

1. **losslab.** These are likelihood functions that compute the probability of some structure given a set of experimental data: `p(x|D)`. A common interface to these losses is enforced by an abstract base class, `BaseLoss`.

2. The **refinementlogger**, a gradient decent manager and logger. Many of the outputs of refinement are common to all refinement strategies: structures as a function of iteration, compute metrics, etc. The `RefinementEngine` class implements these common features and provides a foundation which specific refinement implementations can extend.

3. A **structure** module that helps manage topology, coordinate, B-factor, and occupancy information. It contains a powerful `Structure` object in its own right, as well as code that is crucial for converting and interoperating with different coordinate representations in use.


## Out of scope

Stardust does not generate or sample structures/coordinates. Stardust simply provides a likelihood (and, via torch, likelihood gradients) and a generic system for tracking progress as one seeks to optimize that likelihood.

Stardust assumes your are working with a discrete list of cartesian coordinates that represent atomic positions. Models that use densities, continous distributions, _etc._ are out of scope.
