ifs.parameter_overrides["download_format"] = {"hidden": True} ifs.parameter_overrides["limit"] = {"hidden": True} element_filter = FilterBrI('element_filter') # Conformer generation confgenCube = ParallelGenerateStartingConfs('confgenCube') confgenCube.promote_parameter('max_confs', required=True) confgenCube.promote_parameter('rms_cutoff', required=True) confgenCube.parameter_overrides["energy_window"] = {"hidden": True} confgenCube.parameter_overrides["split_output"] = {"hidden": True} confgen_failure = OEMolOStreamCube('confgen_failure') confgen_failure.promote_parameter('data_out', promoted_name='confgen_failure', title='Conformer Generation Failures', description='Conformer Generation Failures', default='confgen_failures') confgen_failure.promote_parameter('buffered', default=False) confgen_failure.parameter_overrides["buffered"] = {"hidden": True} # Search torsions & select best conformer for each torsgenCube = ParallelGenerateTorsionalConfs('torsional_conf_gen') torsgenCube.promote_parameter( 'num_points', required=True, title='Number of torsional conformers to generate.', description="""The number of evenly spaced torsion angles to sample when generating torsional conformers.""") torsgenCube.parameter_overrides["split_confs"] = {"hidden": True} torsgenCube.parameter_overrides["best_conf"] = {"hidden": True}
ifs = OEMolIStreamCube('ifs') ifs.promote_parameter('data_in', promoted_name='ifs') ifs.parameter_overrides["download_format"] = {"hidden": True} ifs.parameter_overrides["limit"] = {"hidden": True} # Conformer generation confgenCube = ParallelGenerateStartingConfs('confgenCube') confgenCube.promote_parameter('max_confs', required=True) confgenCube.promote_parameter('rms_cutoff', required=True) confgenCube.parameter_overrides["energy_window"] = {"hidden": True} confgenCube.parameter_overrides["split_output"] = {"hidden": True} confgen_failure = OEMolOStreamCube('confgen_failure') confgen_failure.promote_parameter('data_out', promoted_name='confgen_failure', title='Conformer Generation Failures', description='Conformer Generation Failures', default='confgen_failures') confgen_failure.promote_parameter('buffered', default=False) confgen_failure.parameter_overrides["buffered"] = {"hidden": True} # Search torsions & select best conformer for each torsgenCube = ParallelGenerateTorsionalConfs('torsional_conf_gen') torsgenCube.promote_parameter( 'num_points', required=True, title='Number of torsional conformers to generate.', description="""The number of evenly spaced torsion angles to sample when generating torsional conformers.""") torsgenCube.parameter_overrides["split_confs"] = {"hidden": True} torsgenCube.parameter_overrides["best_conf"] = {"hidden": True}
b3lyp631gCube = HiddenParamParallelPsi4EnergyCalculation('b3lyp631g_precalc') b3lyp631gCube.set_parameters(spe_method='B3LYP', spe_basis='6-31G', opt_method='B3LYP', opt_basis='6-31G', geom_maxiter=200) # Full QM optimization & SP for energy psi4EnergyCube = ParallelPsi4EnergyCalculation('parallel_psi4_energy_calculation') psi4EnergyCube.set_parameters(geom_maxiter=200) psi4EnergyCube.promote_parameter('spe_method', required=True) psi4EnergyCube.promote_parameter('spe_basis', required=True) psi4EnergyCube.promote_parameter('molden_output', required=True) psi4EnergyCube.promote_parameter('opt_method', required=True) psi4EnergyCube.promote_parameter('opt_basis', required=True) # hf3c failure handling failFastQM = OEMolOStreamCube('fail_fast_QM') failFastQM.promote_parameter('data_out', promoted_name='fast_qm_fail', title='fast_qm_fail', description="fast QM Failures", default='fast_QM_failures') failFastQM.promote_parameter('buffered', default=False) failFastQM.parameter_overrides["buffered"] = {"hidden": True} # final molecular output ofs = OEMolOStreamCube('ofs') ofs.promote_parameter('data_out', promoted_name='ofs', description='Floe output', default='output', title='Successes') ofs.promote_parameter('buffered', default=False) ofs.parameter_overrides["buffered"] = {"hidden": True} # psi4 cube failures failfs2 = OEMolOStreamCube('failfs2')
""" job.classification =[["YANK", "Binding free energies", "OpenMM", "choderalab"]] job.tags = [tag for lists in job.classification for tag in lists] ifs = OEMolIStreamCube("ifs") ifs.promote_parameter("data_in", promoted_name="molecules", description="Input molecules") yank_cube = YankBindingCube('yank_binding', title = 'Yank for binding free energies') for parameter_name in ['receptor', 'solvent', 'temperature', 'pressure', 'nsteps_per_iteration', 'simulation_time', 'timestep', 'minimize', 'verbose']: promoted_name = parameter_name description = yank_cube.parameters()[parameter_name].description yank_cube.promote_parameter(parameter_name, promoted_name=promoted_name, description=description) success_ofs = OEMolOStreamCube("success_ofs") success_ofs.promote_parameter("data_out", promoted_name="success", description="Output molecules") failure_ofs = OEMolOStreamCube("failure_ofs") failure_ofs.promote_parameter("data_out", promoted_name="failure", description="Failed molecules") cubes = [ifs, yank_cube, success_ofs, failure_ofs] job.add_cubes(*cubes) ifs.success.connect(yank_cube.intake) yank_cube.success.connect(success_ofs.intake) yank_cube.failure.connect(failure_ofs.intake) if __name__ == "__main__": job.run()
ifs.promote_parameter('data_in', promoted_name='ifs') confgenCube = SerialGenerateStartingConfs('starting_conf_gen') confgenCube.promote_parameter( 'max_confs', title='Maximum Alternate Starting Conformers', description= 'Maximum number of starting conformations to use in QM torsion driving experiment. ' + 'NOTE: If you do not want to generate starting conformations, set this to 1.' ) confgen_failure = OEMolOStreamCube('confgen_failure') confgen_failure.promote_parameter('data_out', promoted_name='confgen_failure', title='Conformer Generation Failures', description='Conformer Generation Failures', default='confgen_failures') torsgenCube = SerialGenerateTorsionalConfs('torsional_conf_gen') torsgenCube.promote_parameter( 'num_points', title='Number of torsional conformers to generate.', description="""The number of evenly spaced torsion angles to sample when generating torsional conformers.""") # geometry optimization using smaller basis set (e.g. 6-31G) psi4EnergyCube1 = ParallelPsi4EnergyCalculation( 'parallel_psi4_energy_calculation1') psi4EnergyCube1.title = 'Psi4_Cube1' psi4EnergyCube1.opt_basis = '6-31G'