def overlap_check(): """ BUGS TO REPORT: * Even if epsilon = 0, energy of two overlapping atoms is 'nan'. * Periodicity in 'nan' if dr = 0.1 even in nonperiodic system """ # Create a reference system. logger.info("Creating Lennard-Jones cluster system...") #[reference_system, positions] = testsystems.LennardJonesFluid() #receptor_atoms = [0] #ligand_atoms = [1] system_container = testsystems.LysozymeImplicit() (reference_system, positions) = system_container.system, system_container.positions receptor_atoms = range(0,2603) # T4 lysozyme L99A ligand_atoms = range(2603,2621) # p-xylene unit = positions.unit positions = units.Quantity(np.array(positions / unit), unit) factory = AbsoluteAlchemicalFactory(reference_system, ligand_atoms=ligand_atoms) alchemical_state = AlchemicalState(0.00, 0.00, 0.00, 1.0) # Create the perturbed system. logger.info("Creating alchemically-modified state...") alchemical_system = factory.createPerturbedSystem(alchemical_state) # Compare energies. timestep = 1.0 * units.femtosecond logger.info("Computing reference energies...") integrator = openmm.VerletIntegrator(timestep) context = openmm.Context(reference_system, integrator) context.setPositions(positions) state = context.getState(getEnergy=True) reference_potential = state.getPotentialEnergy() del state, context, integrator logger.info(reference_potential) logger.info("Computing alchemical energies...") integrator = openmm.VerletIntegrator(timestep) context = openmm.Context(alchemical_system, integrator) dr = 0.1 * units.angstroms # TODO: Why does 0.1 cause periodic 'nan's? a = receptor_atoms[-1] b = ligand_atoms[-1] delta = positions[a,:] - positions[b,:] for k in range(3): positions[ligand_atoms,k] += delta[k] for i in range(30): r = dr * i positions[ligand_atoms,0] += dr context.setPositions(positions) state = context.getState(getEnergy=True) alchemical_potential = state.getPotentialEnergy() logger.info("%8.3f A : %f " % (r / units.angstroms, alchemical_potential / units.kilocalories_per_mole)) del state, context, integrator return
def tooslow_obcgbsa_complex(): # This test is too slow for travis-ci. logger.info("Creating T4 lysozyme system...") system_container = testsystems.LysozymeImplicit() (reference_system, positions) = system_container.system, system_container.positions receptor_atoms = range(0,2603) # T4 lysozyme L99A ligand_atoms = range(2603,2621) # p-xylene alchemical_factory_check(reference_system, positions, receptor_atoms, ligand_atoms) #benchmark(reference_system, positions, receptor_atoms, ligand_atoms) logger.info("")