def get_mass(item, atom_indices, forcefield=['AMBER99SB-ILDN', 'TIP3P']): from molsysmt import get_form form_in = get_form(item) mass = [] if form_in in ["openmm.Modeller", "openmm.System", "pdbfixer.PDBFixer"]: if form_in in ["openmm.Modeller", "pdbfixer.PDBFixer"]: from openmm.app import ForceField forcefield_openmm = _digest_forcefields(forcefield) system = ForceField(*forcefield_openmm).createSystem(item.topology) elif form_in == "openmm.System": system = item atom_indices = set(atom_indices) for particle_index in range(system.getNumParticles()): if particle_index in atom_indices: mass.append(system.getParticleMass(particle_index)) return mass else: raise NotImplementedError
def get_net_mass(item, atom_indices, forcefield=['AMBER99SB-ILDN', 'TIP3P']): from molsysmt import get_form form_in = get_form(item) if form_in in ["openmm.Modeller", "openmm.System", "pdbfixer.PDBFixer"]: if form_in in ["openmm.Modeller", "pdbfixer.PDBFixer"]: from openmm.app import ForceField forcefield_openmm = _digest_forcefields(forcefield) system = ForceField(*forcefield_openmm).createSystem(item.topology) elif form_in == "openmm.System": system = item atom_indices = set(atom_indices) net_mass = 0.0 * _unit.amu for particle_index in range(system.getNumParticles()): if particle_index in atom_indices: net_mass += system.getParticleMass(particle_index) return net_mass.in_units_of( _unit.gram / _unit.mole) / _unit.AVOGADRO_CONSTANT_NA else: raise NotImplementedError
def replace_HETATM_by_ATOM_in_terminal_cappings(molecular_system): from molsysmt import get_form form_in = get_form(molecular_system) if form_in == 'string:pdb': tmp_molecular_system = re.sub( r'HETATM+(\s+\d+\s+\w+\s+(ACE||NME)+\s+\w+\s)', r'ATOM \1', molecular_system) elif form_in == 'file:pdb': with open(molecular_system, 'r+') as f: text = f.read() out = re.sub(r'HETATM+(\s+\d+\s+\w+\s+(ACE||NME)+\s+\w+\s)', r'ATOM \1', text) f.seek(0) f.write(out) f.truncate() tmp_molecular_system = molecular_system return tmp_molecular_system
def test_file_gro_to_mdtraj_Trajectory(): import warnings warnings.filterwarnings('ignore') molsys = msm.demo['nglview']['1u19.gro'] molsys = msm.convert(molsys, to_form='mdtraj.Trajectory') warnings.resetwarnings() form = msm.get_form(molsys) assert 'mdtraj.Trajectory' == form
def test_convert_file_gro_and_file_xtc_to_molsysmt_MolSys(): import warnings warnings.filterwarnings('ignore') molsys_1 = msm.demo['nglview']['1u19.gro'] molsys_2 = msm.demo['nglview']['1u19.xtc'] molsys = msm.convert([molsys_1, molsys_2], to_form='molsysmt.MolSys') warnings.resetwarnings() form = msm.get_form(molsys) assert 'molsysmt.MolSys'==form
def test_string_pdb_text_to_openmm_Topology(): molsys = msm.convert(msm.demo['T4 lysozyme L99A']['181l.pdb'], to_form='string:pdb_text') molsys = msm.convert(molsys, to_form='openmm.Topology', selection='molecule_type=="protein"') is_composed_of = msm.is_composed_of(molsys, proteins=1) form = msm.get_form(molsys) assert ('openmm.Topology' == form) and (is_composed_of == True)
def test_view_molsyst_MolSys_with_NLGView_1(): import nglview as nv molsys = msm.demo['T4 lysozyme L99A']['181l.pdb'] molsys = msm.convert(molsys, to_form='molsysmt.MolSys') molsys_2 = nv.show_molsysmt(molsys) check = ('nglview.NGLWidget'==msm.get_form(molsys_2)) check_n_elements = msm.compare(molsys, molsys_2, comparison='n_elements') check_n_molecules = msm.compare(molsys, molsys_2, comparison='n_molecules') check_n_structures = msm.compare(molsys, molsys_2, comparison='n_structures') assert check and check_n_elements and check_n_molecules and check_n_structures
def test_file_msmpk_to_nglview_NGLWidget(): molsys = msm.demo['T4 lysozyme L99A']['vacuum.msmpk'] molsys_ref = msm.convert(molsys, to_form='molsysmt.MolSys') molsys = msm.convert(molsys, to_form='nglview.NGLWidget') check = ('nglview.NGLWidget' == msm.get_form(molsys)) check_n_elements = msm.compare(molsys, molsys_ref, comparison='n_elements') check_n_molecules = msm.compare(molsys, molsys_ref, comparison='n_molecules') check_n_structures = msm.compare(molsys, molsys_ref, comparison='n_structures') assert check and check_n_elements and check_n_molecules and check_n_structures
def test_merge_molsysmt_MolSys_1(): molsys_1 = msm.convert(msm.demo['proline dipeptide']['vacuum.msmpk'], to_form='molsysmt.MolSys') molsys_2 = msm.convert(msm.demo['valine dipeptide']['vacuum.msmpk'], to_form='molsysmt.MolSys') molsys_3 = msm.convert(msm.demo['lysine dipeptide']['vacuum.msmpk'], to_form='molsysmt.MolSys') n_atoms_1 = msm.get(molsys_1, target='system', n_atoms=True) n_atoms_2 = msm.get(molsys_2, target='system', n_atoms=True) n_atoms_3 = msm.get(molsys_3, target='system', n_atoms=True) molsys = msm.merge([molsys_1, molsys_2, molsys_3]) n_atoms, n_structures = msm.get(molsys, target='system', n_atoms=True, n_structures=True) check = ('molsysmt.MolSys' == msm.get_form(molsys)) check_n_atoms = (n_atoms == n_atoms_1 + n_atoms_2 + n_atoms_3) check_n_structures = (n_structures == 1) assert check and check_n_atoms and check_n_structures
def get_degrees_of_freedom(item, forcefield=['AMBER99SB-ILDN', 'TIP3P']): from molsysmt import get_form form_in = get_form(item) if form_in in ["openmm.Modeller", "openmm.System", "pdbfixer.PDBFixer"]: if form_in in ["openmm.Modeller", "pdbfixer.PDBFixer"]: from openmm.app import ForceField forcefield_openmm = _digest_forcefields(forcefield) system = ForceField(*forcefield_openmm).createSystem(item.topology) elif form_in == "openmm.System": system = item return 3 * system.getNumParticles() - system.getNumConstraints() else: raise NotImplementedError
def add(self, item, selection='all', structure_indices='all', syntaxis='MolSysMT'): from molsysmt import convert, get_form, select if get_form(item) != 'molsysmt.MolSys': tmp_item = convert(item, selection=selection, structure_indices=structure_indices, to_form='molsysmt.MolSys', syntaxis=syntaxis) self.topology.add(tmp_item.topology) self.structures.add(tmp_item.trajectory) else: atom_indices = select(item, selection=selection, syntaxis=syntaxis) self.topology.add(item.topology, selection=atom_indices) self.structures.add(item.structures, selection=atom_indices, structure_indices=structure_indices)
def test_append_structures_molsysmt_MolSys(): molsys_1 = msm.convert(msm.demo['proline dipeptide']['vacuum.msmpk'], to_form='molsysmt.MolSys') molsys_2 = msm.structure.translate( molsys_1, translation='[0.1, 0.1, 0.1] nanometers') molsys_3 = msm.structure.translate( molsys_1, translation='[0.2, 0.2, 0.2] nanometers') n_atoms_1, n_structures_1 = msm.get(molsys_1, target='system', n_atoms=True, n_structures=True) n_structures_2 = msm.get(molsys_2, target='system', n_structures=True) n_structures_3 = msm.get(molsys_3, target='system', n_structures=True) msm.append_structures(molsys_1, [molsys_2, molsys_3]) n_atoms, n_structures = msm.get(molsys_1, target='system', n_atoms=True, n_structures=True) check = ('molsysmt.MolSys' == msm.get_form(molsys_1)) check_n_atoms = (n_atoms == n_atoms_1) check_n_structures = (n_structures == n_structures_1 + n_structures_2 + n_structures_3) assert check and check_n_atoms and check_n_structures
def test_string_pdb_text_2(): fff=open(msm.demo['T4 lysozyme L99A']['181l.pdb'],'r') molsys = fff.read() fff.close() output = msm.get_form(molsys) assert output == 'string:pdb_text'
def test_string_pdb_text(): molsys = msm.demo['benzamidine']['benzamidine.pdb'] molsys = msm.convert(molsys, 'string:pdb_text') molsys = 'pdb_text:'+molsys output = msm.get_form(molsys) assert output == 'string:pdb_text'
def test_string_aminoacids1_automatic_detection(): molsys = 'ALYDERRRT' output = msm.get_form(molsys) assert output == 'string:aminoacids1'
def test_string_aminoacids1(): molsys = 'aminoacids1:ALYDERRRT' output = msm.get_form(molsys) assert output == 'string:aminoacids1'
def test_string_aminoacids3_automatic_detection(): molsys = 'ACEALAGLYVALNME' output = msm.get_form(molsys) assert output == 'string:aminoacids3'
def test_molsysmt_MolSys(): molsys = msm.demo['chicken villin HP35']['vacuum.msmpk'] molsys = msm.convert(molsys, to_form='molsysmt.MolSys') output = msm.get_form(molsys) assert output == 'molsysmt.MolSys'
def test_file_mmtf_to_molsysmt_MolSys_2(): molsys = msm.demo['chicken villin HP35']['1vii.mmtf'] molsys = msm.convert(molsys, to_form='molsysmt.MolSys') form = msm.get_form(molsys) assert 'molsysmt.MolSys' == form
def test_string_pdb_automatic_detection(): molsys = msm.demo['benzamidine']['benzamidine.pdb'] molsys = msm.convert(molsys, 'string:pdb_text') output = msm.get_form(molsys) assert output == 'string:pdb_text'
def test_file_xyznpy(): molsys = msm.demo['4 particles']['traj.xyznpy'] output = msm.get_form(molsys) assert output == 'file:xyznpy'
def test_file_inpcrd_prmtop(): molsys1 = msm.demo['pentalanine']['pentalanine.inpcrd'] molsys2 = msm.demo['pentalanine']['pentalanine.prmtop'] output = msm.get_form([molsys1, molsys2]) assert output == ['file:inpcrd', 'file:prmtop']
def test_file_mmtf(): molsys = msm.demo['chicken villin HP35']['1vii.mmtf'] output = msm.get_form(molsys) assert output == 'file:mmtf'
def test_nglview_NGLWidget(): molsys = msm.demo['chicken villin HP35']['vacuum.msmpk'] molsys = msm.convert(molsys, to_form='molsysmt.MolSys') molsys = msm.view(molsys) output = msm.get_form(molsys) assert output == 'nglview.NGLWidget'
def test_class_XYZ(): molsys = np.zeros(shape=[10,4,3])*msm.puw.unit('nanometers') output = msm.get_form(molsys) assert output == 'XYZ'
def test_string_pdb_id(): molsys = 'pdb_id:1VII' output = msm.get_form(molsys) assert output == 'string:pdb_id'
def test_file_mmtf_to_molsysmt_MolSys_1(): molsys = msm.demo['T4 lysozyme L99A']['181l.mmtf'] molsys = msm.convert(molsys, to_form='molsysmt.MolSys') form = msm.get_form(molsys) assert 'molsysmt.MolSys' == form
def test_string_pdb_id_automatic_detection(): molsys = '1VII' output = msm.get_form(molsys) assert output == 'string:pdb_id'
def test_file_msmpk(): molsys = msm.demo['chicken villin HP35']['vacuum.msmpk'] output = msm.get_form(molsys) assert output == 'file:msmpk'
def test_string_aminoacids3(): molsys = 'aminoacids3:ACEALAGLYVALNME' output = msm.get_form(molsys) assert output == 'string:aminoacids3'