Solution Builder ================ Create Solution Builder project ------------------------------- To begin, you must first have a :doc:`pdbreader` 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)