Ejemplo n.º 1
0
    def testProteinLigand(self):
        from htmd.builder.solvate import solvate
        from htmd.parameterization.fftype import fftype, FFTypeMethod
        from htmd.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=FFTypeMethod.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')
Ejemplo n.º 2
0
    def _get_prmtop(self, mol, prm):
        from htmd.parameterization.writers import writeFRCMOD, getAtomTypeMapping
        from tempfile import TemporaryDirectory
        from subprocess import call
        from simtk.openmm import app

        with TemporaryDirectory() as tmpDir:
            frcFile = os.path.join(tmpDir, 'mol.frcmod')
            mapping = getAtomTypeMapping(prm)
            writeFRCMOD(mol, prm, frcFile, typemap=mapping)
            mol2 = mol.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
Ejemplo n.º 3
0
    def testProteinLigand(self):
        from htmd.builder.solvate import solvate
        from htmd.parameterization.fftype import fftype, FFTypeMethod
        from htmd.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=FFTypeMethod.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')
Ejemplo n.º 4
0
            sys.exit(0)

    molFile = os.path.join(home('building-protein-ligand'), 'benzamidine.mol2')
    refDir = home(dataDir='test-fftype/benzamidine')
    mol = Molecule(molFile)
    mol = canonicalizeAtomNames(mol)
    mol, equivalents, all_dihedrals = getEquivalentsAndDihedrals(mol)

    with TemporaryDirectory() as tmpDir:

        parameters, mol = fftype(mol, method=FFTypeMethod.CGenFF_2b6)
        writeRTF(mol, parameters, 0, os.path.join(tmpDir, 'cgenff.rtf'))
        writePRM(mol, parameters, os.path.join(tmpDir, 'cgenff.prm'))

        parameters, mol = fftype(mol, method=FFTypeMethod.GAFF)
        writeFRCMOD(mol, parameters, os.path.join(tmpDir, 'gaff.frcmod'))

        parameters, mol = fftype(mol, method=FFTypeMethod.GAFF2)
        writeFRCMOD(mol, parameters, os.path.join(tmpDir, 'gaff2.frcmod'))

        for testFile in os.listdir(refDir):
            print(testFile)
            with open(os.path.join(refDir, testFile)) as refFile:
                with open(os.path.join(tmpDir, testFile)) as tmpFile:
                    # The line order for antechamber is unstable, so the files are sorted.
                    # Also, it get rids of HTMD version string
                    refData = sorted([
                        line for line in refFile.readlines()
                        if not re.search('HTMD', line)
                    ])
                    tmpData = sorted([
Ejemplo n.º 5
0
from htmd.builder.solvate import solvate
from htmd.parameterization.fftype import fftype
from htmd.parameterization.writers import writeFRCMOD
from moleculekit.molecule import Molecule
from htmd.builder.amber import defaultParam, build

# Test protein ligand building with parametrized ligand
refdir = home(dataDir=join('test-amber-build', 'protLig'))
tmpdir = './protLig'

mol = Molecule(join(refdir, '3ptb_mod.pdb'))
mol.center()
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'
lig.center()

from moleculekit.util import maxDistance
D = maxDistance(mol, 'all')
D += 6
lig.moveBy([0, 0, D])

newmol = Molecule()
newmol.append(lig)
newmol.append(mol)
smol = solvate(newmol, posz=3)

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