Beispiel #1
0
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')
Beispiel #4
0
"""

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()
Beispiel #5
0
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'