Source code for nanome.api.structure.chain

from nanome._internal.structure.models import _Chain
from nanome.util import Logs
from . import Base
from ._deprecated import ChainDeprecated


[docs]class Chain(_Chain, ChainDeprecated, Base): """ | Represents a Chain. Contains residues. Molecules contains chains. """
[docs] def add_residue(self, residue): """ | Add a residue to this chain :param residue: Residue to add to the chain :type residue: :class:`~nanome.structure.Residue` """ residue.index = -1 self._add_residue(residue)
[docs] def remove_residue(self, residue): """ | Remove a residue from this chain :param residue: Residue to remove from the chain :type residue: :class:`~nanome.structure.Residue` """ residue.index = -1 self._remove_residue(residue)
# region Generators: @property def residues(self): """ | The list of residues that this chain contains """ for residue in self._residues: yield residue @residues.setter def residues(self, residue_list): self._residues = residue_list @property def atoms(self): """ | The list of atoms that this chain's residues contain """ for residue in self.residues: for atom in residue.atoms: yield atom @property def bonds(self): """ | The list of bonds within this chain """ for residue in self.residues: for bond in residue.bonds: yield bond # endregion # region connections @property def molecule(self): """ | Molecule that this chain is in """ return self._molecule @property def complex(self): """ | Complex that this chain is in """ return self._complex # endregion # region all fields @property def name(self): """ | Represents the name of the chain :type: :class:`str` """ return self._name @name.setter def name(self, value): if type(value) is not str: value = str(value) self._name = value
# endregion _Chain._create = Chain