Source code for molsysmt.form.mdtraj_HDF5TrajectoryFile.copy

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

[docs] @digest(form='mdtraj.HDF5TrajectoryFile') def copy(item, output_filename=None, progress_bar=False, skip_digestion=False): from .get import get_n_structures_from_system from ..mdtraj_Topology import extract as extract_mdtraj_Topology from mdtraj.formats import HDF5TrajectoryFile from tqdm import tqdm n_structures = get_n_structures_from_system(item) item.seek(0) tmp_item = HDF5TrajectoryFile(output_filename, 'w', force_overwrite=False, compression='zlib') if progress_bar: iterator = tqdm(range(n_structures)) else: iterator = range(n_structures) for ii in iterator: output = item.read(1, atom_indices=mdtraj_atom_indices) tmp_item.write(coordinates=output.coordinates, time=output.time, cell_lengths=output.cell_lengths, cell_angles=output.cell_angles, velocities=output.velocities, kineticEnergy=output.kineticEnergy, potentialEnergy=output.potentialEnergy, temperature=output.temperature, alchemicalLambda=output.alchemicalLambda) tmp_item.topology = item.topology return tmp_item