%load_ext autoreload
%autoreload 2
import molsysmt as msm
import numpy as np
import matplotlib.pyplot as plt

Wrap to PBC#

molsys = msm.convert(msm.systems['two LJ particles']['traj_two_lj_particles.trjpk'],
                     to_form='molsysmt.StructuresDict')
for particle, coordinate in [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]:
    plt.scatter(molsys['time'], molsys['coordinates'][:, particle, coordinate], s=1, color='gray', marker='.')
plt.show()
/home/diego/Myopt/miniconda3/envs/MolSysMT@uibcdf_3.12/lib/python3.12/site-packages/numpy/ma/core.py:2820: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
  _data = np.array(data, dtype=dtype, copy=copy,
../../../../_images/37d741e3eef00711f3c49287edbe20d2dcf2bf666b139e4ba69f7a98a050ca6a.png
distance = msm.structure.get_distances(molsys, selection=0, selection_2=1, pbc=False)
plt.scatter(molsys['time'], distance[:,0,0], s=1, color='gray', marker='.')
plt.show()
../../../../_images/cd52a589224b6541633684010691daa84a81a4f21e7beeeccbd7530ebcfa9c0d.png
msm.get(molsys, box=True)
Magnitude
[[[3.0 0.0 0.0]  [0.0 3.0 0.0]  [0.0 0.0 3.0]] [[3.0 0.0 0.0]  [0.0 3.0 0.0]  [0.0 0.0 3.0]] [[3.0 0.0 0.0]  [0.0 3.0 0.0]  [0.0 0.0 3.0]] ... [[3.0 0.0 0.0]  [0.0 3.0 0.0]  [0.0 0.0 3.0]] [[3.0 0.0 0.0]  [0.0 3.0 0.0]  [0.0 0.0 3.0]] [[3.0 0.0 0.0]  [0.0 3.0 0.0]  [0.0 0.0 3.0]]]
Unitsnanometer
distance = msm.structure.get_distances(molsys, selection=0, selection_2=1, pbc=True)
plt.scatter(molsys['time'], distance[:,0,0], s=1, color='gray', marker='.')
plt.show()
../../../../_images/b1343299e9b8bb4ae1f412b637f8cf0e3c1ee5f8ddd58c532f9ceff8bdb6b288.png
molsys_wrapped = msm.pbc.wrap_to_pbc(molsys)
for particle, coordinate in [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]:
    plt.scatter(molsys_wrapped['time'], molsys_wrapped['coordinates'][:, particle, coordinate], s=1, color='grey', marker='.')
plt.show()
/home/diego/Myopt/miniconda3/envs/MolSysMT@uibcdf_3.12/lib/python3.12/site-packages/numpy/ma/core.py:2820: UnitStrippedWarning: The unit of the quantity is stripped when downcasting to ndarray.
  _data = np.array(data, dtype=dtype, copy=copy,
../../../../_images/e27aa31dfec6e34abc63f28f20f66f66624f1fbc83eb9e8bd0b31ba75f3170d2.png
distance_wrapped = msm.structure.get_distances(molsys_wrapped, selection=0, selection_2=1, pbc=True)
np.allclose(distance[:,:,:], distance_wrapped[:,:,:])
True
molecular_system = msm.convert('pdb_id:1vii', to_form='molsysmt.MolSys')
molecular_system = msm.remove(molecular_system, selection='atom_type=="H"')
molecular_system = msm.build.add_missing_terminal_cappings(molecular_system, N_terminal='ACE', C_terminal='NME')
molecular_system = msm.build.add_missing_hydrogens(molecular_system, pH=7.4)
molecular_system = msm.build.solvate(molecular_system, box_shape='truncated octahedral',
                         clearance='14.0 angstroms', engine='PDBFixer')
molecular_system = msm.pbc.wrap_to_pbc(molecular_system, center_of_selection='molecule_type=="peptide"')
msm.view(molecular_system, standard=True, with_water_as='surface')