Source code for simbad.core.lattice_score

"""Class to store Lattice scores"""

__author__ = "Adam Simpkin & Felix Simkovic"
__date__ = "05 Mar 2017"
__version__ = "0.1"

from simbad.core import ScoreBase


[docs]class LatticeSearchResult(ScoreBase): """A basic lattice parameter scoring class""" __slots__ = ('pdb_code', 'pdb_path','alt', 'unit_cell', 'volume_difference', 'total_penalty', 'length_penalty', 'angle_penalty', 'probability_score') def __init__(self, pdb_code, pdb_path, alt, unit_cell, volume_difference, total_penalty, length_penalty, angle_penalty, probability_score): self.pdb_code = pdb_code self.pdb_path = pdb_path self.alt = alt self.unit_cell = unit_cell self.volume_difference = volume_difference self.total_penalty = total_penalty self.length_penalty = length_penalty self.angle_penalty = angle_penalty self.probability_score = probability_score def __repr__(self): template = "{name}(pdb_code={pdb_code} pdb_path={pdb_path} alt={alt} unit_cell={unit_cell} " \ "volume_difference={volume_difference} total_penalty={total_penalty} " \ "length_penalty={length_penalty} angle_penalty={angle_penalty} " \ "probability_score={probability_score})" return template.format(name=self.__class__.__name__, **{k: getattr(self, k) for k in self.__class__.__slots__}) def _as_dict(self): """Convert the :obj:`_LatticeParameterScore <simbad.score.lattice_score.LatticeParameterScore>` object to a dictionary""" dictionary = {} for k in self.__slots__: if k == 'unit_cell': for k, v in zip(['a', 'b', 'c', 'alpha', 'beta', 'gamma'], self.unit_cell): dictionary[k] = v else: dictionary[k] = getattr(self, k) return dictionary