Exemple #1
0
    def testProteinLigand(self):
        from htmd.builder.solvate import solvate
        from parameterize.parameterization.fftype import fftype
        from parameterize.parameterization.writers import writeFRCMOD

        # Test protein ligand building with parametrized ligand
        refdir = home(dataDir=join('test-amber-build', 'protLig'))
        tmpdir = os.path.join(self.testDir, 'protLig')
        os.makedirs(tmpdir)

        mol = Molecule(join(refdir, '3ptb_mod.pdb'))
        lig = Molecule(join(refdir, 'benzamidine.pdb'),
                       guess=('bonds', 'angles', 'dihedrals'))
        prm, lig = fftype(lig, method='GAFF2')
        writeFRCMOD(lig, prm, join(tmpdir, 'mol.frcmod'))
        lig.segid[:] = 'L'

        # params =
        newmol = Molecule()
        newmol.append(lig)
        newmol.append(mol)
        smol = solvate(newmol)

        params = defaultParam() + [
            join(tmpdir, 'mol.frcmod'),
        ]

        _ = build(smol, outdir=tmpdir, param=params, ionize=False)

        refdir = home(dataDir=join('test-amber-build', 'protLig', 'results'))
        _TestAmberBuild._compareResultFolders(refdir, tmpdir, '3PTB')
Exemple #2
0
    def _get_prmtop(self):
        from parameterize.parameterization.writers import (
            writeFRCMOD,
            getAtomTypeMapping,
        )

        with TemporaryDirectory() as tmpDir:
            frcFile = os.path.join(tmpDir, "mol.frcmod")
            mapping = getAtomTypeMapping(self._parameters)
            writeFRCMOD(self.molecule,
                        self._parameters,
                        frcFile,
                        typemap=mapping)
            mol2 = self.molecule.copy()
            mol2.atomtype[:] = np.vectorize(mapping.get)(mol2.atomtype)
            molFile = os.path.join(tmpDir, "mol.mol2")
            mol2.write(molFile)

            with open(os.path.join(tmpDir, "tleap.inp"), "w") as file:
                file.writelines((
                    "loadAmberParams %s\n" % frcFile,
                    "MOL = loadMol2 %s\n" % molFile,
                    "saveAmberParm MOL mol.prmtop mol.inpcrd\n",
                    "quit",
                ))

            with open(os.path.join(tmpDir, "tleap.out"), "w") as out:
                call(("tleap", "-f", "tleap.inp"), cwd=tmpDir, stdout=out)

            prmtop = app.AmberPrmtopFile(os.path.join(tmpDir, "mol.prmtop"))

        return prmtop