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
Exemple #3
0
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)
Exemple #7
0
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
Exemple #8
0
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
Exemple #9
0
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
Exemple #11
0
    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)
Exemple #12
0
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
Exemple #13
0
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'
Exemple #14
0
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'
Exemple #15
0
def test_string_aminoacids1_automatic_detection():
    molsys = 'ALYDERRRT'
    output = msm.get_form(molsys)
    assert output == 'string:aminoacids1'
Exemple #16
0
def test_string_aminoacids1():
    molsys = 'aminoacids1:ALYDERRRT'
    output = msm.get_form(molsys)
    assert output == 'string:aminoacids1'
Exemple #17
0
def test_string_aminoacids3_automatic_detection():
    molsys = 'ACEALAGLYVALNME'
    output = msm.get_form(molsys)
    assert output == 'string:aminoacids3'
Exemple #18
0
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'
Exemple #19
0
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
Exemple #20
0
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'
Exemple #21
0
def test_file_xyznpy():
    molsys = msm.demo['4 particles']['traj.xyznpy']
    output = msm.get_form(molsys)
    assert output == 'file:xyznpy'
Exemple #22
0
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']
Exemple #23
0
def test_file_mmtf():
    molsys = msm.demo['chicken villin HP35']['1vii.mmtf']
    output = msm.get_form(molsys)
    assert output == 'file:mmtf'
Exemple #24
0
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'
Exemple #25
0
def test_class_XYZ():
    molsys = np.zeros(shape=[10,4,3])*msm.puw.unit('nanometers')
    output = msm.get_form(molsys)
    assert output == 'XYZ'
Exemple #26
0
def test_string_pdb_id():
    molsys = 'pdb_id:1VII'
    output = msm.get_form(molsys)
    assert output == 'string:pdb_id'
Exemple #27
0
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
Exemple #28
0
def test_string_pdb_id_automatic_detection():
    molsys = '1VII'
    output = msm.get_form(molsys)
    assert output == 'string:pdb_id'
Exemple #29
0
def test_file_msmpk():
    molsys = msm.demo['chicken villin HP35']['vacuum.msmpk']
    output = msm.get_form(molsys)
    assert output == 'file:msmpk'
Exemple #30
0
def test_string_aminoacids3():
    molsys = 'aminoacids3:ACEALAGLYVALNME'
    output = msm.get_form(molsys)
    assert output == 'string:aminoacids3'