Heme is a Rust library for working with proteins
Heme can read PDB files and construct a Pose
object (named after
the similar concept from Rosetta).
use io::parse_pdb;
use conformation::Pose;
let atoms = parse_pdb(&contents);
let pose = Pose::from_atoms(atoms);
The pose
object has some useful functions, aside from being a container
Pose
object representing a protein structureAtom
object that represents a single atom- both
Pose
andAtom
have methods that are useful for calculating structural features, such as the distance between two atoms, or the residues within some cutoff of a provided atom
Heme is a fast way to featurize protein structures for use with machine learning models
heme featurize path/to/pdbs --output-format json --output-file dataset.json
Heme includes an implementation of force-field based molecular modeling in the Rust language. It's a work in progress that's helping me learn Rust. I hope that it will eventually be useful, but right now it's not. (For good implementations of force-field based molecular modeling, see the OpenMM or Lumol projects.)
- Heme 0.4.0 (planned)
- implement fast featurization for structure transformer
- featurization for ProteinMPNN/LigandMPNN compatibility
- Heme 0.3.2
- handle ligands, metal ions, etc
- Heme 0.2.0
- basic geometric operations
- basic force field implementation
- Heme 0.1.0
- basic PDB parsing
Atom
andRecord
objects