protein_core/
structure.rs1pub mod anisou;
6pub use anisou::Anisou;
7pub mod atom;
8pub use atom::{Atom, AtomName}; pub mod element;
10pub use element::Element;
11pub mod model;
12pub use model::Model;
13pub mod secondary_structure;
14pub use secondary_structure::{Helix, HelixClass, Registration, Sense, Sheet, Strand};
15pub mod serial;
16pub use serial::*;
17pub mod residue;
18pub use residue::{
19 AminoAcid, ModifiedAminoAcid, ModifiedNucleotide, Molecule, Monomer, Nucleotide, Residue,
20 StandardAminoAcid, StandardNucleotide,
21};
22pub mod chain;
23pub use chain::Chain;
24
25pub type Connect = [AtomSerial; 2];
26
27use serde::Serialize;
28use std::collections::HashMap;
29
30use crate::metadata::Metadata;
31
32#[derive(Debug, Clone, Serialize)]
33pub struct Ssbond {
34 pub a: (char, ResidueSerial),
35 pub b: (char, ResidueSerial),
36}
37
38#[derive(Debug, Clone, Serialize, Default)]
39pub struct Structure {
40 pub chains_aa: Vec<Chain<AminoAcid>>,
41 pub chains_nuc: Vec<Chain<Nucleotide>>,
42 pub helices: Vec<Helix>,
43 pub sheets: Vec<Sheet>,
44 pub ssbonds: Vec<Ssbond>,
45 pub modified_aa: HashMap<String, ModifiedAminoAcid>,
46 pub modified_nuc: HashMap<String, ModifiedNucleotide>,
47 pub connect: Vec<Connect>,
48 pub models: Vec<Model>,
50 pub metadata: Option<Metadata>,
51}