Source code for molsysmt.form.openmm_PDBFile.extract

from molsysmt._private.digestion import digest
from molsysmt._private.variables import is_all

[docs] @digest(form='openmm.PDBFile') def extract(item, atom_indices='all', structure_indices='all', copy_if_all=True, skip_digestion=False): if is_all(atom_indices) and is_all(structure_indices): if copy_if_all: from copy import deepcopy tmp_item = deepcopy(item) else: tmp_item = item else: from . import to_openmm_Topology from . import get_coordinates_from_atom, get_box_from_atom from ..openmm_Topology import to_openmm_PDBFile as openmm_Topology_to_openmm_PDBFile tmp_item = to_openmm_Topology(item, atom_indices=atom_indices, skip_digestion=True) coordinates = get_coordinates_from_atom(tmp_item, atom_indices=atom_indices, skip_digestion=True) box = get_box_from_atom(tmp_item, skip_digestion=True) tmp_item = openmm_Topology_to_openmm_PDBFile(tmp_item, coordinates=coordinates, box=box, skip_digestion=True) return tmp_item