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')
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
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')
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([
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'),