use molex::adapters::pdb::structure_file_to_coords;
use molex::types::entity::split_into_entities;
// Parse any PDB or mmCIF file
let coords = structure_file_to_coords("1ubq.pdb")?;
// Split into classified entities (protein, ligand, water, etc.)
let entities = split_into_entities(&coords);
for entity in &entities {
println!(
"Entity {}: {:?} ({} atoms)",
entity.entity_id,
entity.molecule_type,
entity.atom_count(),
);
}
use molex::ops::transform::{protein_only, extract_backbone_chains};
let protein_coords = protein_only(&coords);
let chains = extract_backbone_chains(&protein_coords);
for (i, chain) in chains.iter().enumerate() {
println!("Chain {}: {} CA positions", i, chain.len());
}
use molex::secondary_structure::dssp::from_entity;
let ss_types = from_entity(&entities[0]);
for (i, ss) in ss_types.iter().enumerate() {
println!("Residue {}: {:?}", i, ss);
}