icolos.core.workflow_steps.pmx package#

Submodules#

icolos.core.workflow_steps.pmx.abfe module#

class icolos.core.workflow_steps.pmx.abfe.StepPMXabfe(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Setup files for an ABFE calculation.

execute()[source]#

This step manages the setup of a pmx ABFE run for a set of compounds and a protein target. Expects: - docked compounds provided as an sdf file - protein apo structure - directory containing mdp files

icolos.core.workflow_steps.pmx.assemble_systems module#

class icolos.core.workflow_steps.pmx.assemble_systems.StepPMXAssembleSystems(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Executes the assemble_systems.py script, edges are parallelized over available cores

boxd: float#
boxshape: str#
conc: float#
execute()[source]#
ff: str#
mdp_prefixes: Dict#
nname: str#
pname: str#
run_type: str#
sim_types: List#
states: List#
therm_cycle_branches: List#
water: str#

icolos.core.workflow_steps.pmx.atomMapping module#

class icolos.core.workflow_steps.pmx.atomMapping.StepPMXatomMapping(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Ligand alchemy: map atoms for morphing.

boxd: float#
boxshape: str#
conc: float#
execute()[source]#
ff: str#
mdp_prefixes: Dict#
nname: str#
pname: str#
run_type: str#
sim_types: List#
states: List#
therm_cycle_branches: List#
water: str#

icolos.core.workflow_steps.pmx.base module#

class icolos.core.workflow_steps.pmx.base.StepPMXBase(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepBase, BaseModel

Base class containing shared methods for Non-equilibrium free energy calculations Additional settings (these apply to any step that inherits StepPMXBase) :str run_type: specify absolute or relative mode, default = rbfe :str boxshape: specify the boxshape to use in calculation setup, deafult = dodecahedron :float boxd: spefify solvent box buffer dimention, default = 1.5 :str water: specify water model, default = tip3p :float conc: specify salt concentration, default=0.15

boxd: float#
boxshape: str#
conc: float#
ff: str#
get_edges()[source]#

Inspect the map object passed to the step and extract the edge info

get_hub_conformer(hub_conf_path) Conformer[source]#
Return _type_:

_description_

get_nodes()[source]#

return the nodes attached to the perturbation map

mdp_prefixes: Dict#
nname: str#
pname: str#
run_type: str#
sim_types: List#
states: List#
therm_cycle_branches: List#
water: str#

icolos.core.workflow_steps.pmx.box_water_ions module#

class icolos.core.workflow_steps.pmx.box_water_ions.StepPMXBoxWaterIons(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Take the prepared structure files and prepare the system, runs editconf, solvate, genion and grompp for each system to be simulated

boxWaterIons(jobs: List[str])[source]#
boxd: float#
boxshape: str#
conc: float#
data: StepData#
execute()[source]#
execution: StepExecutionParameters#
ff: str#
input: StepInputParameters#
mdp_prefixes: Dict#
nname: str#
pname: str#
run_type: str#
settings: StepSettingsParameters#
sim_types: List#
states: List#
step_id: str#
therm_cycle_branches: List#
type: str#
water: str#
work_dir: str#
writeout: List[StepWriteoutParameters]#

icolos.core.workflow_steps.pmx.doublebox module#

class icolos.core.workflow_steps.pmx.doublebox.StepPMXdoublebox(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Place two input structures into a single box.

boxd: float#
boxshape: str#
conc: float#
data: StepData#
execute()[source]#
execution: StepExecutionParameters#
ff: str#
input: StepInputParameters#
mdp_prefixes: Dict#
nname: str#
pname: str#
run_type: str#
settings: StepSettingsParameters#
sim_types: List#
states: List#
step_id: str#
therm_cycle_branches: List#
type: str#
water: str#
work_dir: str#
writeout: List[StepWriteoutParameters]#

icolos.core.workflow_steps.pmx.genlib module#

class icolos.core.workflow_steps.pmx.genlib.StepPMXgenlib(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Generate pmx ff library.

boxd: float#
boxshape: str#
conc: float#
data: StepData#
execute()[source]#
execution: StepExecutionParameters#
ff: str#
input: StepInputParameters#
mdp_prefixes: Dict#
nname: str#
pname: str#
run_type: str#
settings: StepSettingsParameters#
sim_types: List#
states: List#
step_id: str#
therm_cycle_branches: List#
type: str#
water: str#
work_dir: str#
writeout: List[StepWriteoutParameters]#

icolos.core.workflow_steps.pmx.gentop module#

class icolos.core.workflow_steps.pmx.gentop.StepPMXgentop(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Fill hybrid topology with B states.

boxd: float#
boxshape: str#
conc: float#
data: StepData#
execute()[source]#
execution: StepExecutionParameters#
ff: str#
input: StepInputParameters#
mdp_prefixes: Dict#
nname: str#
pname: str#
run_type: str#
settings: StepSettingsParameters#
sim_types: List#
states: List#
step_id: str#
therm_cycle_branches: List#
type: str#
water: str#
work_dir: str#
writeout: List[StepWriteoutParameters]#

icolos.core.workflow_steps.pmx.ligandHybrid module#

class icolos.core.workflow_steps.pmx.ligandHybrid.StepPMXligandHybrid(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Ligand alchemy: hybrid structure/topology.

boxd: float#
boxshape: str#
conc: float#
data: StepData#
execute()[source]#
execution: StepExecutionParameters#
ff: str#
input: StepInputParameters#
mdp_prefixes: Dict#
nname: str#
pname: str#
run_type: str#
settings: StepSettingsParameters#
sim_types: List#
states: List#
step_id: str#
therm_cycle_branches: List#
type: str#
water: str#
work_dir: str#
writeout: List[StepWriteoutParameters]#

icolos.core.workflow_steps.pmx.mutate module#

class icolos.core.workflow_steps.pmx.mutate.StepPMXmutate(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

This is the de facto entrypoint for a protein FEP workflow

This step does the legwork for setting up the output dir structure, similar to pmx_setup for the small molecule case

boxd: float#
boxshape: str#
conc: float#
data: StepData#
execute()[source]#
execution: StepExecutionParameters#
ff: str#
input: StepInputParameters#
mdp_prefixes: Dict#
nname: str#
pname: str#
run_type: str#
settings: StepSettingsParameters#
sim_types: List#
states: List#
step_id: str#
therm_cycle_branches: List#
type: str#
water: str#
work_dir: str#
writeout: List[StepWriteoutParameters]#

icolos.core.workflow_steps.pmx.prepare_simulations module#

class icolos.core.workflow_steps.pmx.prepare_simulations.StepPMXPrepareSimulations(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Prepare the tpr file for either equilibration or production simulations

boxd: float#
boxshape: str#
conc: float#
data: StepData#
execute()[source]#
execution: StepExecutionParameters#
ff: str#
input: StepInputParameters#
mdp_prefixes: Dict#
nname: str#
pname: str#
prepare_simulation(jobs: List[Union[Edge, Compound]]) None[source]#
run_type: str#
settings: StepSettingsParameters#
sim_types: List#
states: List#
step_id: str#
therm_cycle_branches: List#
type: str#
water: str#
work_dir: str#
writeout: List[StepWriteoutParameters]#

icolos.core.workflow_steps.pmx.prepare_transitions module#

class icolos.core.workflow_steps.pmx.prepare_transitions.StepPMXPrepareTransitions(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Prepare transitions: extract snapshots from equilibrium simulations, prepare .tpr files for each

boxd: float#
boxshape: str#
conc: float#
data: StepData#
execute()[source]#
execution: StepExecutionParameters#
ff: str#
input: StepInputParameters#
mdp_prefixes: Dict#
nname: str#
pname: str#
prepare_transitions(jobs: List[str])[source]#
run_type: str#
settings: StepSettingsParameters#
sim_types: List#
states: List#
step_id: str#
therm_cycle_branches: List#
type: str#
water: str#
work_dir: str#
writeout: List[StepWriteoutParameters]#

icolos.core.workflow_steps.pmx.run_analysis module#

class icolos.core.workflow_steps.pmx.run_analysis.StepPMXRunAnalysis(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None, results_summary: ~pandas.core.frame.DataFrame = None, results_all: ~pandas.core.frame.DataFrame = None)[source]#

Bases: StepPMXBase, BaseModel

Analyses map, returns both a summary and a full results dataframe, written to top level of work_dir, and attaches properties to the compound

class Config[source]#

Bases: object

arbitrary_types_allowed = True#
analysis_summary(edges: List[Edge])[source]#
compute_exp_ddG(lig1: str, lig2: str, node_data: DataFrame, exp_data: DataFrame) float[source]#

Compute the ddG between two ligands from experimental data

execute()[source]#
results_all: DataFrame#
results_summary: DataFrame#
run_analysis(jobs: List[str])[source]#

icolos.core.workflow_steps.pmx.run_simulations module#

class icolos.core.workflow_steps.pmx.run_simulations.StepPMXRunSimulations(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None, sim_type: str = '')[source]#

Bases: StepPMXBase, BaseModel

Runs md simulations, unwraps into pool of individual jobs, parallelized over available GPUs

execute()[source]#
get_mdrun_command(tpr=None, ener=None, confout=None, mdlog=None, trr=None)[source]#
sim_type: str#

icolos.core.workflow_steps.pmx.setup_workpath module#

class icolos.core.workflow_steps.pmx.setup_workpath.StepPMXSetup(*, step_id: str, work_dir: str = None, type: str = None, data: ~icolos.core.step_utils.input_preparator.StepData = StepData(compounds=[], generic=<icolos.core.containers.generic.GenericContainer object>, gmx_state=Gromacs Topology object: System: [] | Molecules: [] | FF: amber03 | itp files: [] | posre files []), input: ~icolos.core.step_utils.input_preparator.StepInputParameters = StepInputParameters(compounds=[], generic=[], gmx_state={}, perturbation_map=None, merge=StepMerge(compounds=True, enumerations=False, merge_compounds_by=<StepBaseEnum.INPUT_MERGE_BY_NAME: 'name'>, merge_enumerations_by=<StepBaseEnum.INPUT_MERGE_BY_ID: 'id'>), work_dir=None), writeout: ~typing.List[~icolos.core.step_utils.step_writeout.StepWriteoutParameters] = [], execution: ~icolos.core.workflow_steps.step.StepExecutionParameters = StepExecutionParameters(prefix_execution=None, binary_location=None, pipe_input=None, parallelization=StepExecutionParallelizationParameters(jobs=1, max_length_sublists=None), failure_policy=StepFailurePolicyParameters(n_tries=1, retry_wait_seconds=10), check_backend_availability=False, resources=StepExecutionResourceParameters(partition=<ExecutionPlatformEnum.CORE: 'core'>, time='12:00:00', gres=None, tasks=None, mem=None, cores=None, modules=[], other_args={}, additional_lines=[]), platform=<ExecutionPlatformEnum.LOCAL: 'local'>), settings: ~icolos.core.workflow_steps.step.StepSettingsParameters = StepSettingsParameters(arguments=StepSettingsArgsParameters(flags=[], parameters={}), additional={}), sim_types: ~typing.List = None, states: ~typing.List = None, therm_cycle_branches: ~typing.List = None, run_type: str = None, ff: str = None, boxshape: str = None, boxd: float = None, water: str = None, conc: float = None, pname: str = None, nname: str = None, mdp_prefixes: ~typing.Dict = None)[source]#

Bases: StepPMXBase, BaseModel

Create the directory tree structure. Requires the pmx workflow to be executing using the single_dir running mode Operates on the perturbation map object, runs acpype on the written structures to produce the amber-compatible itp files Additional settings: :param int replicas: number of replicas to run for each edge, default=3 :param str charge_method: partial charge type, must be recognised by antechamber :param str boxshape: specify the boxshape to use in calculation setup, deafult = dodecahedron :param float boxd: spefify solvent box buffer dimention, default = 1.5 :param str water: specify water model, default = tip3p :param float conc: specify salt concentration, default=0.15 :param str forcefield: specify the forcefield for protein parametrisation. Must be findable in $GMXLIB :param str topology: specify perturbation map topology, default = “normal”

execute()[source]#

Module contents#