def run_afe(): system = System(prefix='systems/dov-wt') afe = Simulation() afe.system = system afe.engine = 'namd' afe.cores = 2 afe.numminsteps = 10 afe.numsteps = 10 afe.add_input_file(Afe.step0, is_executable_argument=True) afe.add_input_file('inputs/restraint.in', is_executable_argument=False) afe.add_ensemble('replica', range(2)) afe.add_ensemble('lambdawindow', [0.0, 1.0]) afe.cutoff = 12.0 afe.switchdist = 10.0 afe.pairlistdist = 13.5 afe.k1 = 10 afe.k2 = 500 ht = Runner(comm_server=('two.radical-project.org', 33146)) ht.add_protocol(afe) ht.run(walltime=1000)
def run_rfe(): pdb = AbFile('systems/ptp1b-l1-l2-complex.pdb', tag='pdb') top = AbFile('systems/ptp1b-l1-l2-complex.top', tag='topology') tag = AbFile('systems/ptp1b-l1-l2-tags.pdb', tag='alchemicaltags') cor = AbFile('systems/ptp1b-l1-l2-complex.inpcrd', tag='coordinate') system = System(name='ptp1b-l1-l2', files=[pdb, top, tag, cor]) p = Protocol(clone_settings=False) for step, numsteps in zip(Rfe.steps, [5000, 50000]): rfe = Simulation() rfe.system = system rfe.engine = 'namd_mpi' rfe.cores = 32 rfe.cutoff = 12.0 rfe.switchdist = 10.0 rfe.pairlistdist = 13.5 rfe.numminsteps = 5000 rfe.numsteps = numsteps rfe.add_input_file(step, is_executable_argument=True) rfe.add_ensemble('replica', range(1)) # to increase the number of EnTK tasks: change the lambdawindow parameter rfe.add_ensemble('lambdawindow', [1.]) p.append(rfe) ht = Runner('bw_aprun', comm_server=('two.radical-project.org', 33158)) ht.add_protocol(p) ht.run(walltime=480, queue='high')
def test_simulation_component(): s0 = Simulation(name='minimizer') s0.engine = 'titan_orte' s0.processes = 1 s0.threads_per_process = 16 s0.add_ensemble('replica', range(5)) pdb = AbFile('systems/ptp1b-l1-l2-complex.pdb', tag='pdb') top = AbFile('systems/ptp1b-l1-l2-complex.top', tag='topology') tag = AbFile('systems/ptp1b-l1-l2-tags.pdb', tag='alchemicaltags') cor = AbFile('systems/ptp1b-l1-l2-complex.inpcrd', tag='coordinate') system = System(name='ptp1b-l1-l2', files=[pdb, top, tag, cor]) s0.system = system assert s0.name == 'minimizer' assert s0.engine == 'titan_orte' assert s0.system.name == 'ptp1b-l1-l2' assert s0._processes == 1 assert s0._threads_per_process == 16 len_ensemble = reduce(mul, (len(v) for v in s0._ensembles.itervalues()), 1) assert s0.cpus == s0.threads_per_process * s0._processes * len_ensemble assert s0.shared_data == [ 'systems/ptp1b-l1-l2-complex.pdb', 'systems/ptp1b-l1-l2-complex.top', 'systems/ptp1b-l1-l2-tags.pdb', 'systems/ptp1b-l1-l2-complex.inpcrd' ] s1 = Simulation(name='equilibrate')
def run_rfe(s, steps, proc): pdb = AbFile('{}.pdb'.format(s), tag='pdb') top = AbFile('{}.prmtop'.format(s), tag='topology') tag = AbFile('{}_tags.pdb'.format(s), tag='alchemicaltags') cor = AbFile('{}.inpcrd'.format(s), tag='coordinate') system = System(name='1z3f-intercalator-complex', files=[pdb, top, tag, cor]) p = Protocol(RFE.minimize(), RFE.simulation(), RFE.simulation(), RFE.simulation(), RFE.simulation(), RFE.simulation(), RFE.simulation(), DataAggregate(extension=".alch")) step_counts = [1000, 500, 500, 1000, 1000, 10000, steps] for rfe, numsteps in zip(p.simulations(), step_counts): rfe.system = system rfe.engine = 'namd' rfe.processes = proc rfe.threads_per_process = 1 rfe.cutoff = 10.0 rfe.switchdist = 8.0 rfe.pairlistdist = 11.5 rfe.numsteps = numsteps rfe.watermodel = 'tip3' rfe.add_ensemble('replica', range(5)) rfe.add_ensemble('lambdawindow', [ 0.0, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 1.0 ]) ht = Runner('bw_aprun', comm_server=('two.radical-project.org', 33227)) ht.add_protocol(p) ht.run(walltime=1440, queue='high')
def run_rfe(): pdb = AbFile('systems/ptp1b-l1-l2-complex.pdb', tag='pdb') top = AbFile('systems/ptp1b-l1-l2-complex.top', tag='topology') tag = AbFile('systems/ptp1b-l1-l2-tags.pdb', tag='alchemicaltags') cor = AbFile('systems/ptp1b-l1-l2-complex.inpcrd', tag='coordinate') system = System(name='ptp1b-l1-l2', files=[pdb, top, tag, cor]) p = RFE() p.append(DataAggregate(extension=".alch")) # Protocol `p` is made up of 3 steps: # minimize -> simulate -> aggregate data for sim, numsteps in zip(p.simulations(), [5000, 2000000]): sim.system = system sim.engine = 'namd' sim.processes = 32 sim.threads_per_process = 1 sim.cutoff = 12.0 sim.switchdist = 10.0 sim.pairlistdist = 13.5 sim.watermodel = "tip3" sim.numsteps = numsteps sim.add_ensemble('replica', range(5)) sim.add_ensemble('lambdawindow', [1.0, 0.95, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.05, 0.0]) ht = Runner('bw_aprun', comm_server=('two.radical-project.org', 33048)) ht.add_protocol(p) ht.run(walltime=720, queue='low')
def test_replica_systems_simulation(): s1 = System(prefix='nilotinib-e255k') s2 = System(prefix='nilotinib-e255v') sim = EnsembleSimulation() sim.config = 'simple.conf' sim.engine = engine sim.add_ensemble('system', [s1, s2]) sim.add_ensemble('replica', range(2)) ht = Runner(resource=resource) ht.rabbitmq_config(**rabbit_mq) ht.add_protocol(sim) ht.run(**run_conf)
def test_protocol(): s1 = System(prefix='nilotinib-e255k') s2 = System(prefix='nilotinib-e255v') sim1 = EnsembleSimulation() sim1.config = 'protocol_1.conf' sim1.engine = engine sim1.cores = 2 sim1.add_ensemble('system', [s1, s2]) sim1.add_ensemble('replica', range(2)) sim1.add_placeholder('numsteps', 10) sim1.add_placeholder('cutoff', 10.0) sim1.add_placeholder('switchingdist', 8.0) sim1.add_placeholder('pairlistdist', 11.5) sim1.add_placeholder('water_model', 'tip4') sim2 = EnsembleSimulation() sim2.config = 'protocol_2.conf' sim2.engine = engine sim2.cores = 2 sim2.add_placeholder('numsteps', 10) sim2.add_placeholder('cutoff', 10.0) sim2.add_placeholder('switchingdist', 8.0) sim2.add_placeholder('pairlistdist', 11.5) sim2.add_placeholder('water_model', 'tip4') p = Protocol() p.add_simulation(sim1) p.add_simulation(sim2) ht = Runner(resource=resource) ht.rabbitmq_config(**rabbit_mq) ht.add_protocol(p) ht.run(**run_conf)
def test_single_simulation(): system = System(prefix='nilotinib-e255k') sim = BaseSimulation() sim.system = system sim.config = 'simple.conf' sim.engine = engine ht = Runner(resource=resource) ht.rabbitmq_config(**rabbit_mq) ht.add_protocol(sim) ht.run(**run_conf)
def test_configurable_simulation(): s1 = System(prefix='nilotinib-e255k') sim = BaseSimulation() sim.system = s1 sim.config = 'configurable.conf' sim.engine = engine sim.add_placeholder('numsteps', 1000) sim.add_placeholder('cutoff', 10.0) sim.add_placeholder('switchingdist', 8.0) sim.add_placeholder('pairlistdist', 11.5) sim.add_placeholder('water_model', 'tip4') ht = Runner(resource=resource) ht.rabbitmq_config(**rabbit_mq) ht.add_protocol(sim) ht.run(**run_conf)
def run_rfe(): pdb = AbFile('complex.pdb', tag='pdb') top = AbFile('complex.prmtop', tag='topology') tag = AbFile('tags.pdb', tag='alchemicaltags') cor = AbFile('complex.inpcrd', tag='coordinate') system = System(name='1z3f-l08-l11', files=[pdb, top, tag, cor]) p = Protocol(clone_settings=False) min, run = Rfe.steps for step, numsteps in zip([min, run, run, run, run, run], [100, 500, 1000, 1000, 1000, 10000, 8000000]): rfe = Simulation() rfe.system = system rfe.engine = 'namd' rfe.processes = 8 rfe.threads_per_process = 16 rfe.cutoff = 10.0 rfe.switchdist = 8.0 rfe.pairlistdist = 11.5 rfe.numsteps = numsteps rfe.watermodel = 'tip4' rfe.add_input_file(step, is_executable_argument=True) rfe.add_ensemble('replica', range(3)) # to increase the number of EnTK tasks: change the lambdawindow parameter rfe.add_ensemble('lambdawindow', np.linspace(0, 1, 13)) p.append(rfe) ht = Runner('titan_aprun') ht.add_protocol(p) ht.run(walltime=720)
from htbac import Runner, Protocol, Simulation, System, AbFile from htbac.analysis import GradientBoostClassifier # Step 0: load system files. coord = AbFile('systems/nilotinib-e255k-complex.inpcrd', tag='coordinate') top = AbFile('systems/nilotinib-e255k-complex.top', tag='topology') system = System(name='nilotinib-e255k', files=[top, coord]) # Step 1: create a Simulation sim = Simulation() sim.engine = 'openmm' sim.system = system sim.processes = 1 sim.threads_per_process = 32 sim.numsteps = 1000 sim.add_input_file('inputs/benchmark.py', is_executable_argument=True) # Step 2: Hyperparameter optimization using HyperSpace Gradient Boost Classifier # analysis = GradientBoostClassifier() # analysis.hyperparameters = 4 # analysis.data_path = '/pylon5/mc3bggp/dakka/hyperspace_data/constellation/constellation/data/fashion' # analysis.optimization_file = '/home/jdakka/hyperspace/constellation/constellation/gbm/space4/optimize.py' # analysis.results_dir = '/pylon5/mc3bggp/dakka/hyperspace_data/results_space_4' ht = Runner('xsede.bridges_gpu',
from htbac import Runner, Protocol, Simulation, System, AbFile, DataAggregate, TiesAnalysis, AdaptiveQuadrature # define system pdb = AbFile('systems/54353507-54150798/54353507-54150798-complex.pdb', tag='pdb') top = AbFile('systems/54353507-54150798/54353507-54150798-complex.top', tag='topology') tag = AbFile('systems/54353507-54150798/54353507-54150798-tags.pdb', tag='alchemicaltags') cor = AbFile('systems/54353507-54150798/54353507-54150798-complex.crd', tag='coordinate') cons = AbFile('systems/54353507-54150798/54353507-54150798-cons.pdb', tag='constraint') fep = AbFile('systems/54353507-54150798/54353507-54150798-fep.tcl', tag='source') system = System(name='54353507-54150798', files=[pdb, top, tag, cor, cons, fep]) # Create simulation steps for relative free energy protocol # define protocol: p0 = Protocol() # define step 0: s0 = Simulation(name='minimizer') s0.engine = 'namd' s0.processes = 32 s0.threads_per_process = 1 s0.add_ensemble('replica', range(5)) s0.add_ensemble('lambdawindow', [1.00, 0.50, 0.00]) s0.add_input_file("default_configs/rfe/54353507-54150798/eq0.conf", is_executable_argument=True)
# Import HTBAC modules from htbac import Protocol, Simulation, System # Import built in simulation protocol configurations # like relative free energy calculations, or esmacs from htbac.protocols import Rfe, Afe, Esmacs # Step 0: load system files. system = System(prefix='systems/ptp1b-l1-l2') # Step 1: create the container protocol p = Protocol() # Step 2: create a simulation that minimizes and equilibrate the system s0 = Simulation(name='minimizer') s0.system = system
name = "{}-{}".format(s, r) folder = "{}/{}-{}/build/".format(prefix, s, r) rest_folder = "{}/{}-{}/restraints/".format(prefix, s, r) pdb = AbFile(folder + "complex.pdb", tag='pdb').with_prefix(name) top = AbFile(folder + "complex.prmtop", tag='topology').with_prefix(name) coord = AbFile(folder + "complex.rst7", tag='coordinate').with_prefix(name) rest = AbFile(rest_folder + "restraint_1.0.in", tag='restraint', needs_copying=True).with_prefix(name) tags = AbFile(folder + "tags.pdb", tag='alchemicaltags').with_prefix(name).with_prefix(name) systems.append(System(name, files=[pdb, top, coord, rest, tags])) sim = Simulation() sim.engine = 'dummy' # This *forces* the core count to 1, non mpi. sim.cutoff = 12.0 sim.pairlistdist = 13.5 sim.switchdist = 10.0 sim.numsteps = Afe.numsteps[0] sim.add_ensemble('replica', values=range(5)) sim.add_ensemble('system', values=systems) sim.add_ensemble( 'lambdawindow', values=[0.0, 0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0])
from htbac import Runner, Protocol, Simulation, System, AbFile, DataAggregate from htbac.protocols import RFE, ESMACS # Allows users to utilize pre-defined protocols # define system pdb = AbFile('systems/ptp1b-l1-l2-complex.pdb', tag='pdb') top = AbFile('systems/ptp1b-l1-l2-complex.top', tag='topology') tag = AbFile('systems/ptp1b-l1-l2-tags.pdb', tag='alchemicaltags') cor = AbFile('systems/ptp1b-l1-l2-complex.inpcrd', tag='coordinate') system = System(name='ptp1b-l1-l2', files=[pdb, top, tag, cor]) # Create simulation steps for relative free energy protocol # define protocol: p = Protocol() # define step 0: s0 = Simulation(name='minimizer') s0.engine = 'namd' s0.processes = 1 s0.threads_per_process = 16 s0.add_ensemble('replica', range(5)) s0.add_ensemble('lambdawindow', [1.0, 0.5, 0.0]) s0.add_input_file("default_configs/rfe/ties-0.conf", is_executable_argument=True) s0.system = system s0.cutoff = 12.0 s0.switchdist = 10.0 s0.pairlistdist = 13.5 s0.numsteps = 5000 s0.watermodel = "tip3"
from htbac import Runner, Protocol, Simulation, System, AbFile, DataAggregate # define system pdb = AbFile('systems/esmacs-pde2-4d08-l1/esmacs-pde2-4d08-l1-complex.pdb', tag='pdb') top = AbFile('systems/esmacs-pde2-4d08-l1/esmacs-pde2-4d08-l1-complex.top', tag='topology') cons = AbFile('systems/esmacs-pde2-4d08-l1/esmacs-pde2-4d08-l1-f4.pdb', tag='constraint') cor = AbFile('systems/esmacs-pde2-4d08-l1/esmacs-pde2-4d08-l1-complex.crd', tag='coordinate') fep = AbFile('systems/esmacs-pde2-4d08-l1/esmacs-pde2-4d08-l1-fep.tcl', tag='source') system = System(name='esmacs-pde2-4d08-l1', files=[pdb, top, cons, cor, fep]) # Create simulation steps for relative free energy protocol # define protocol: p = Protocol() # define step 0: s0 = Simulation(name='stage-0') s0.engine = 'namd' s0.processes = 32 s0.threads_per_process = 1 s0.add_ensemble('replica', range(25)) s0.add_input_file( "default_configs/esmacs/esmacs-pde2-4d08-l1/esmacs-stage-0.conf", is_executable_argument=True) s0.system = system