Struct mmtf::mmtf::Mmtf
[−]
[src]
pub struct Mmtf { pub mmtf_version: String, pub mmtf_producer: String, pub unit_cell: Option<Vec<f64>>, pub space_group: Option<String>, pub structure_id: Option<String>, pub title: Option<String>, pub deposition_date: Option<String>, pub release_date: Option<String>, pub ncs_operator_list: Option<Vec<[f32; 16]>>, pub bio_assembly_list: Option<Vec<BioAssembly>>, pub entity_list: Option<Vec<Entity>>, pub experimental_methods: Option<Vec<String>>, pub resolution: Option<f64>, pub r_free: Option<f32>, pub r_work: Option<f64>, pub num_bonds: i32, pub num_atoms: i32, pub num_groups: i32, pub num_chains: i32, pub num_models: i32, pub group_list: Vec<GroupType>, pub bond_atom_list: Vec<i32>, pub bond_order_list: Option<Vec<i8>>, pub x_coord_list: Vec<f32>, pub y_coord_list: Vec<f32>, pub z_coord_list: Vec<f32>, pub b_factor_list: Option<Vec<f32>>, pub atom_id_list: Option<Vec<i32>>, pub alt_loc_list: Option<Vec<char>>, pub occupancy_list: Option<Vec<f32>>, pub group_id_list: Vec<i32>, pub group_type_list: Vec<i32>, pub sec_struct_list: Option<Vec<i8>>, pub ins_code_list: Option<Vec<char>>, pub sequence_index_list: Option<Vec<i32>>, pub chain_id_list: Vec<String>, pub chain_name_list: Option<Vec<String>>, pub groups_per_chain: Vec<i32>, pub chains_per_model: Vec<i32>, }
MMTF Fields
Fields
mmtf_version: String
The version number of the specification the file adheres to.
mmtf_producer: String
The name and version of the software used to produce the file. For development versions it can be useful to also include the checksum of the commit. The main purpose of this field is to identify the software that has written a file, for instance because it has format errors.
unit_cell: Option<Vec<f64>>
Array of six values defining the unit cell. The first three entries are the length of the sides a, b, and c in Å. The last three angles are the alpha, beta, and gamma angles in degree.
space_group: Option<String>
The Hermann-Mauguin space-group symbol.
structure_id: Option<String>
An ID for the structure, for example the PDB ID if applicable. If not in conflict with the format of the ID, it must be given in uppercase.
title: Option<String>
A short description of the structural data included in the file.
deposition_date: Option<String>
A date that relates to the deposition of the structure in a database, e.g. the wwPDB archive. Type: String with the format YYYY-MM-DD
release_date: Option<String>
A date that relates to the release of the structure in a database, e.g. the wwPDB archive.
Type: String
with the format YYYY-MM-DD
ncs_operator_list: Option<Vec<[f32; 16]>>
Array of arrays representing 4x4 transformation matrices that are stored linearly in row major order. Thus, the translational component comprises the 4th, 8th, and 12th element. The transformation matrices describe noncrystallographic symmetry operations needed to create all molecules in the unit cell.
bio_assembly_list: Option<Vec<BioAssembly>>
Vec
of BioAssembly objects.
entity_list: Option<Vec<Entity>>
Vec
of unique molecular entities within the structure.
experimental_methods: Option<Vec<String>>
The array of experimental methods employed for structure determination.
resolution: Option<f64>
The experimental resolution in Angstrom. If not applicable the field must be omitted.
r_free: Option<f32>
The R-free value. If not applicable the field must be omitted.
r_work: Option<f64>
The R-work value. If not applicable the field must be omitted.
num_bonds: i32
The overall number of bonds. This number must reflect both the
bonds given in bond_atom_list
and the bonds given in the GroupType.bond_atom_list
entries in group_list
num_atoms: i32
The overall number of atoms in the structure. This also includes atoms at alternate locations (alt_loc_list).
num_groups: i32
The overall number of groups in the structure. This also includes extra groups due to micro-heterogeneity.
num_chains: i32
The overall number of chains in the structure.
num_models: i32
The overall number of models in the structure.
group_list: Vec<GroupType>
Vec
of GroupType
objects.
bond_atom_list: Vec<i32>
Pairs of values represent indices of covalently bonded atoms. The indices point to the Atom data arrays. Only covalent bonds may be given.
bond_order_list: Option<Vec<i8>>
Array of bond orders for bonds in bond_atom_list
.
Note: Must be values between 1 and 4, defining single, double, triple, and quadruple bonds.
x_coord_list: Vec<f32>
Array of x atom coordinates, in Å. One entry for each atom and coordinate.
y_coord_list: Vec<f32>
Array of y atom coordinates, in Å. One entry for each atom and coordinate.
z_coord_list: Vec<f32>
Array of z atom coordinates, in Å. One entry for each atom and coordinate.
b_factor_list: Option<Vec<f32>>
Array of atom B-factors in in Å^2. One entry for each atom.
atom_id_list: Option<Vec<i32>>
Vec
of atom serial numbers. One entry for each atom.
alt_loc_list: Option<Vec<char>>
Vec
of alternate location labels, one for each atom.
The lack of an alternate location label must be denoted by a 0 byte.
occupancy_list: Option<Vec<f32>>
Vec
of atom occupancies, one for each atom.
group_id_list: Vec<i32>
Vec
of group (residue) numbers. One entry for each group/residue.
group_type_list: Vec<i32>
Vec
of pointers to GroupType
entries
in group_list
by their keys.
One entry for each residue, thus the number of residues
is equal to the length of this field.
sec_struct_list: Option<Vec<i8>>
Array of secondary structure assignments coded according to the following table, which shows the eight different types of secondary structure the DSSP algorithm distinguishes. If the field is included there must be an entry for each group (residue) either in all models or only in the first model.
Code | Name |
---|---|
0 | pi helix |
1 | bend |
2 | alpha helix |
3 | extended |
4 | 3-10 helix |
5 | bridge |
6 | turn |
7 | coil |
-1 | undefined |
ins_code_list: Option<Vec<char>>
Array of insertion codes, one for each group (residue). The lack of an insertion code must be denoted by a 0 byte.
sequence_index_list: Option<Vec<i32>>
Array of indices that point into the sequence
property of an Entity
object in the entity_list
field that
is associated with the chain the group belongs to (i.e. the index of the chain is
included in the chain_index_list
of the entity
).
There is one entry for each group (residue). It must be set to -1 when a group entry has no associated entity
(and thus no sequence), for example water molecules.
chain_id_list: Vec<String>
Vec
of chain IDs, for storing data from mmCIF
files.
This field should contain the value from the label_asym_id
mmCIF
data item
and the chain_name_list
the auth_asym_id
mmCIF
data item.
In PDB files there is only a single name/identifier for chains that corresponds
to the auth_asym_id
item. When there is only a single chain identifier available
it must be stored in the chain_id_list
field.
chain_name_list: Option<Vec<String>>
Vec
of chain names. This field allows to specify an additional set of labels/names
for chains.
For example, it can be used to store both, the label_asym_id
(in chain_id_list
) and the auth_asym_id
(in chain_name_list
) from mmCIF files.
groups_per_chain: Vec<i32>
Vec
of the number of groups (aka residues) in each chain.
The number of chains is thus equal to the length of the
groups_per_chain
field.
In conjunction with chains_per_model
,
the array allows looping over all chains
chains_per_model: Vec<i32>
The number of models in a structure is equal to the length of the
chains_per_model
field.
The chains_per_model
field also defines which chains belong to each model.
Methods
impl Mmtf
[src]
pub fn from<R: Read>(r: R) -> Result<Self, Error>
[src]
Deserialize a MMTF
from given file
Examples
use std::fs::File; use mmtf::Mmtf; let mmtf_file = File::open(&file_path).unwrap(); let mmtf = Mmtf::from(&mmtf_file).unwrap(); assert_eq!("1.0.0", mmtf.mmtf_version);