Solution Builder

Create Solution Builder project

To begin, you must first have a PDB Reader project. E.g.:

# alt: pdbreader_project_id = pdbreader.projectId
pdbreader_project_id = '78080ec8-bfcd-4141-8f22-f0ae805374ff'

sbuilder = molcube.create_solution_builder_project()
assert sbuilder.create_project(title="my_solution_project",
   pdbreader_project_id=pdbreader_project_id)

We will combine the individual components to build the system for molecular dynamics (MD) simulation. The following arguments are available for the method:

  • boxShape (str): System box shape (default: cubic)

  • margin (float): Box margin around the solute, dynamically applied based on solute size (default: 10.0).

  • boxSize (float, optional): Fixed box size in Å. When specified, overrides margin-based sizing (default: None).

  • ions (str): Type of ions to use (default: “kcl”).

  • ionConc (float): Ion concentration (default: 0.15).

  • neutralize (bool): Whether to neutralize the system (ion-related option) (default: False).

  • temperature (float): Temperature for the system in Kelvin (default: 310.0).

  • useHmr (bool): Whether to use hydrogen mass repartitioning (default: False).

  • mdEngines (list[str]): List of molecular dynamics engines to use (default: [‘openmm’]).

The available options for ions and mdengine are as follows:

  • boxShape: [‘cubic’, ‘truncated_octahedron’]

  • ions: [‘kcl’, ‘nacl’, ‘cacl2’]

  • mdEngines: [‘openmm’, ‘amber’, ‘gromacs’, ‘namd’, ‘genesis’, ‘desmond’]

Note: Both margin and boxSize are box sizing options, but only one will be applied:

  • margin: Creates a box that dynamically fits the solute with the specified margin around it

  • boxSize: Sets a fixed box size regardless of solute dimensions

  • If boxSize is provided, it takes precedence and margin is ignored

mdEngines = ['openmm', 'gromacs']
assert sbuilder.generate_system(mdEngines=mdEngines)