def __init__(self, input_structure_path: str, output_itp_path: str, input_ndx_path: str = None, properties: dict = None, **kwargs) -> None: properties = properties or {} # Call parent class constructor super().__init__(properties) # Input/Output files self.io_dict = { "in": {"input_structure_path": input_structure_path, "input_ndx_path": input_ndx_path}, "out": {"output_itp_path": output_itp_path} } # Properties specific for BB self.force_constants = str(properties.get('force_constants', '500 500 500')) self.restrained_group = properties.get('restrained_group', 'system') # Properties common in all GROMACS BB self.gmx_lib = properties.get('gmx_lib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Check the properties self.check_properties(properties)
def __init__(self, input_solute_gro_path: str, output_gro_path: str, input_top_zip_path: str, output_top_zip_path: str, input_solvent_gro_path: str = None, properties: dict = None, **kwargs) -> None: properties = properties or {} # Call parent class constructor super().__init__(properties) # Input/Output files self.io_dict = { "in": {"input_solute_gro_path": input_solute_gro_path, "input_solvent_gro_path": input_solvent_gro_path}, "out": {"output_gro_path": output_gro_path, "output_top_zip_path": output_top_zip_path} } # Should not be copied inside container self.input_top_zip_path = input_top_zip_path # Properties specific for BB self.shell = properties.get('shell') if not self.io_dict["in"].get('input_solvent_gro_path'): self.io_dict["in"]['input_solvent_gro_path'] = 'spc216.gro' # Properties common in all GROMACS BB self.gmx_lib = properties.get('gmx_lib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Check the properties self.check_properties(properties)
def __init__(self, input_structure_path: str, input_ndx_path: str, output_itp_path: str, properties: dict = None, **kwargs) -> None: properties = properties or {} # Input/Output files self.io_dict = { "in": { "input_structure_path": input_structure_path, "input_ndx_path": input_ndx_path }, "out": { "output_itp_path": output_itp_path } } # Properties specific for BB self.force_constants = str( properties.get('force_constants', '500 500 500')) self.restrained_group = properties.get('restrained_group', 'system') # container Specific self.container_path = properties.get('container_path') self.container_image = properties.get('container_image', 'gromacs/gromacs:latest') self.container_volume_path = properties.get('container_volume_path', '/data') self.container_working_dir = properties.get('container_working_dir') self.container_user_id = properties.get('container_user_id') self.container_shell_path = properties.get('container_shell_path', '/bin/bash') # Properties common in all GROMACS BB self.gmxlib = properties.get('gmxlib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Properties common in all BB self.can_write_console_log = properties.get('can_write_console_log', True) self.global_log = properties.get('global_log', None) self.prefix = properties.get('prefix', None) self.step = properties.get('step', None) self.path = properties.get('path', '') self.remove_tmp = properties.get('remove_tmp', True) self.restart = properties.get('restart', False) # Check the properties fu.check_properties(self, properties)
def __init__(self, input_tpr_path: str, output_trr_path: str, output_gro_path: str, output_edr_path: str, output_log_path: str, input_cpt_path: str = None, output_xtc_path: str = None, output_cpt_path: str = None, output_dhdl_path: str = None, properties: dict = None, **kwargs) -> None: properties = properties or {} # Call parent class constructor super().__init__(properties) # Input/Output files self.io_dict = { "in": {"input_tpr_path": input_tpr_path, "input_cpt_path": input_cpt_path}, "out": {"output_trr_path": output_trr_path, "output_gro_path": output_gro_path, "output_edr_path": output_edr_path, "output_log_path": output_log_path, "output_xtc_path": output_xtc_path, "output_cpt_path": output_cpt_path, "output_dhdl_path": output_dhdl_path} } # Properties specific for BB # general mpi properties self.mpi_bin = properties.get('mpi_bin') self.mpi_np = properties.get('mpi_np') self.mpi_flags = properties.get('mpi_flags') # gromacs cpu mpi/openmp properties self.num_threads = str(properties.get('num_threads', '')) self.num_threads_mpi = str(properties.get('num_threads_mpi', '')) self.num_threads_omp = str(properties.get('num_threads_omp', '')) self.num_threads_omp_pme = str(properties.get('num_threads_omp_pme', '')) # gromacs gpus self.use_gpu = properties.get('use_gpu', False) # Adds: -nb gpu -pme gpu self.gpu_id = str(properties.get('gpu_id', '')) self.gpu_tasks = str(properties.get('gpu_tasks', '')) # gromacs self.checkpoint_time = properties.get('checkpoint_time') # Not documented and not listed option, only for devs self.dev = properties.get('dev') # Properties common in all GROMACS BB self.gmx_lib = properties.get('gmx_lib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if (not self.mpi_bin) and (not self.container_path): self.gmx_version = get_gromacs_version(self.gmx_path) # Check the properties self.check_properties(properties)
def __init__(self, input_pdb_path: str, output_gro_path: str, output_top_zip_path: str, properties: dict = None, **kwargs) -> None: properties = properties or {} # Call parent class constructor super().__init__(properties) # Input/Output files self.io_dict = { "in": { "input_pdb_path": input_pdb_path }, "out": { "output_gro_path": output_gro_path, "output_top_zip_path": output_top_zip_path } } # Properties specific for BB self.internal_top_name = properties.get( 'internal_top_name', 'p2g.top') # Excluded from documentation for simplicity self.internal_itp_name = properties.get( 'internal_itp_name', 'posre.itp') # Excluded from documentation for simplicity self.water_type = properties.get('water_type', 'spce') self.force_field = properties.get('force_field', 'amber99sb-ildn') self.ignh = properties.get('ignh', False) self.his = properties.get('his', None) self.merge = properties.get('merge', False) # Properties common in all GROMACS BB self.gmx_lib = properties.get('gmx_lib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Check the properties self.check_properties(properties)
def __init__(self, input_tpr_path: str, output_gro_path: str, input_top_zip_path: str, output_top_zip_path: str, input_ndx_path: str = None, properties: dict = None, **kwargs) -> None: properties = properties or {} # Call parent class constructor super().__init__(properties) # Input/Output files self.io_dict = { "in": { "input_tpr_path": input_tpr_path, "input_ndx_path": input_ndx_path }, "out": { "output_gro_path": output_gro_path, "output_top_zip_path": output_top_zip_path } } # Should not be copied inside container self.input_top_zip_path = input_top_zip_path # Properties specific for BB self.output_top_path = properties.get( 'output_top_path', 'gio.top') # Not in documentation for clarity self.replaced_group = properties.get('replaced_group', 'SOL') self.neutral = properties.get('neutral', False) self.concentration = properties.get('concentration', 0.05) self.seed = properties.get('seed', 1993) # Properties common in all GROMACS BB self.gmx_lib = properties.get('gmx_lib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Check the properties self.check_properties(properties)
def __init__(self, input_structure_path: str, output_ndx_path: str, input_ndx_path: str = None, properties: dict = None, **kwargs) -> None: properties = properties or {} # Call parent class constructor super().__init__(properties) # Input/Output files self.io_dict = { "in": { "input_structure_path": input_structure_path, "input_ndx_path": input_ndx_path }, "out": { "output_ndx_path": output_ndx_path } } # Properties specific for BB self.selection = properties.get('selection', "a CA C N O") self.append = properties.get('append', False) # Properties common in all GROMACS BB self.gmx_lib = properties.get('gmx_lib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Check the properties self.check_properties(properties)
def __init__(self, input_gro_path: str, output_gro_path: str, properties: dict = None, **kwargs) -> None: properties = properties or {} # Call parent class constructor super().__init__(properties) # Input/Output files self.io_dict = { "in": { "input_gro_path": input_gro_path }, "out": { "output_gro_path": output_gro_path } } # Properties specific for BB self.distance_to_molecule = properties.get('distance_to_molecule', 1.0) self.box_type = properties.get('box_type', 'cubic') self.center_molecule = properties.get('center_molecule', True) # Properties common in all GROMACS BB self.gmx_lib = properties.get('gmx_lib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Check the properties self.check_properties(properties)
def __init__(self, input_pdb_path: str, output_gro_path: str, output_top_zip_path: str, properties: dict = None, **kwargs) -> None: properties = properties or {} # Input/Output files self.io_dict = { "in": { "input_pdb_path": input_pdb_path }, "out": { "output_gro_path": output_gro_path, "output_top_zip_path": output_top_zip_path } } # Properties specific for BB self.output_top_path = properties.get('output_top_path', 'p2g.top') self.output_itp_path = properties.get('output_itp_path', 'posre.itp') self.water_type = properties.get('water_type', 'spce') self.force_field = properties.get('force_field', 'amber99sb-ildn') self.ignh = properties.get('ignh', False) self.his = properties.get('his', None) # container Specific self.container_path = properties.get('container_path') self.container_image = properties.get('container_image', 'gromacs/gromacs:latest') self.container_volume_path = properties.get('container_volume_path', '/data') self.container_working_dir = properties.get('container_working_dir') self.container_user_id = properties.get('container_user_id') self.container_shell_path = properties.get('container_shell_path', '/bin/bash') # Properties common in all GROMACS BB self.gmxlib = properties.get('gmxlib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Properties common in all BB self.can_write_console_log = properties.get('can_write_console_log', True) self.global_log = properties.get('global_log', None) self.prefix = properties.get('prefix', None) self.step = properties.get('step', None) self.path = properties.get('path', '') self.remove_tmp = properties.get('remove_tmp', True) self.restart = properties.get('restart', False) # Check the properties fu.check_properties(self, properties)
def __init__(self, input_gro_path: str, input_top_zip_path: str, output_tpr_path: str, input_cpt_path: str = None, input_ndx_path: str = None, input_mdp_path: str = None, properties: dict = None, **kwargs) -> None: properties = properties or {} # Call parent class constructor super().__init__(properties) # Input/Output files self.io_dict = { "in": { "input_gro_path": input_gro_path, "input_cpt_path": input_cpt_path, "input_ndx_path": input_ndx_path, "input_mdp_path": input_mdp_path }, "out": { "output_tpr_path": output_tpr_path } } # Should not be copied inside container self.input_top_zip_path = input_top_zip_path # Properties specific for BB self.output_mdp_path = properties.get('output_mdp_path', 'grompp.mdp') self.output_top_path = properties.get('output_top_path', 'grompp.top') self.simulation_type = properties.get('simulation_type') self.maxwarn = str(properties.get('maxwarn', 0)) if self.simulation_type and self.simulation_type != 'index': self.maxwarn = str(properties.get('maxwarn', 10)) self.mdp = { k: str(v) for k, v in properties.get('mdp', dict()).items() } # container Specific self.container_path = properties.get('container_path') self.container_image = properties.get('container_image', 'gromacs/gromacs:latest') self.container_volume_path = properties.get('container_volume_path', '/data') self.container_working_dir = properties.get('container_working_dir') self.container_user_id = properties.get('container_user_id') self.container_shell_path = properties.get('container_shell_path', '/bin/bash') # Properties common in all GROMACS BB self.gmx_lib = properties.get('gmx_lib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Check the properties self.check_properties(properties)
def __init__(self, input_gro_path: str, input_top_zip_path: str, output_tpr_path: str, input_cpt_path: str = None, input_ndx_path: str = None, properties: dict = None, **kwargs) -> None: properties = properties or {} # Input/Output files self.io_dict = { "in": { "input_gro_path": input_gro_path, "input_cpt_path": input_cpt_path, "input_ndx_path": input_ndx_path }, "out": { "output_tpr_path": output_tpr_path } } # Should not be copied inside container self.input_top_zip_path = input_top_zip_path # Properties specific for BB self.input_mdp_path = properties.get('input_mdp_path', None) self.output_mdp_path = properties.get('output_mdp_path', 'grompp.mdp') self.output_top_path = properties.get('output_top_path', 'grompp.top') #TODO REVIEW: When select is implemented. self.maxwarn = str(properties.get('maxwarn', 10)) self.mdp = { k: str(v) for k, v in properties.get('mdp', dict()).items() } #TODO REVIEW: this two attributes self.nsteps = '' self.dt = '' # container Specific self.container_path = properties.get('container_path') self.container_image = properties.get('container_image', 'gromacs/gromacs:latest') self.container_volume_path = properties.get('container_volume_path', '/data') self.container_working_dir = properties.get('container_working_dir') self.container_user_id = properties.get('container_user_id') self.container_shell_path = properties.get('container_shell_path', '/bin/bash') # Properties common in all GROMACS BB self.gmxlib = properties.get('gmxlib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Properties common in all BB self.can_write_console_log = properties.get('can_write_console_log', True) self.global_log = properties.get('global_log', None) self.prefix = properties.get('prefix', None) self.step = properties.get('step', None) self.path = properties.get('path', '') self.remove_tmp = properties.get('remove_tmp', True) self.restart = properties.get('restart', False) # Check the properties fu.check_properties(self, properties)
def __init__(self, input_tpr_path: str, output_gro_path: str, input_top_zip_path: str, output_top_zip_path: str, properties: dict = None, **kwargs) -> None: properties = properties or {} # Input/Output files self.io_dict = { "in": { "input_tpr_path": input_tpr_path }, "out": { "output_gro_path": output_gro_path, "output_top_zip_path": output_top_zip_path } } # Should not be copied inside container self.input_top_zip_path = input_top_zip_path # Properties specific for BB self.output_top_path = properties.get('output_top_path', 'gio.top') self.replaced_group = properties.get('replaced_group', 'SOL') self.neutral = properties.get('neutral', False) self.concentration = properties.get('concentration', 0.05) self.seed = properties.get('seed', 1993) # container Specific self.container_path = properties.get('container_path') self.container_image = properties.get('container_image', 'gromacs/gromacs:latest') self.container_volume_path = properties.get('container_volume_path', '/data') self.container_working_dir = properties.get('container_working_dir') self.container_user_id = properties.get('container_user_id') self.container_shell_path = properties.get('container_shell_path', '/bin/bash') # Properties common in all GROMACS BB self.gmxlib = properties.get('gmxlib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if not self.container_path: self.gmx_version = get_gromacs_version(self.gmx_path) # Properties common in all BB self.can_write_console_log = properties.get('can_write_console_log', True) self.global_log = properties.get('global_log', None) self.prefix = properties.get('prefix', None) self.step = properties.get('step', None) self.path = properties.get('path', '') self.remove_tmp = properties.get('remove_tmp', True) self.restart = properties.get('restart', False) # Check the properties fu.check_properties(self, properties)
def __init__(self, input_tpr_path: str, output_trr_path: str, output_gro_path: str, output_edr_path: str, output_log_path: str, output_xtc_path: str = None, output_cpt_path: str = None, output_dhdl_path: str = None, properties: dict = None, **kwargs) -> None: properties = properties or {} # Input/Output files self.io_dict = { "in": { "input_tpr_path": input_tpr_path }, "out": { "output_trr_path": output_trr_path, "output_gro_path": output_gro_path, "output_edr_path": output_edr_path, "output_log_path": output_log_path, "output_xtc_path": output_xtc_path, "output_cpt_path": output_cpt_path, "output_dhdl_path": output_dhdl_path } } # Properties specific for BB self.num_threads = str(properties.get('num_threads', 0)) self.mpi_bin = properties.get('mpi_bin') self.mpi_np = properties.get('mpi_np') self.mpi_hostlist = properties.get('mpi_hostlist') self.use_gpu = properties.get('use_gpu', False) # container Specific self.container_path = properties.get('container_path') self.container_image = properties.get('container_image', 'gromacs/gromacs:latest') self.container_volume_path = properties.get('container_volume_path', '/tmp') self.container_working_dir = properties.get('container_working_dir') self.container_user_id = properties.get('container_user_id') self.container_shell_path = properties.get('container_shell_path', '/bin/bash') # Properties common in all GROMACS BB self.gmxlib = properties.get('gmxlib', None) self.gmx_path = properties.get('gmx_path', 'gmx') self.gmx_nobackup = properties.get('gmx_nobackup', True) self.gmx_nocopyright = properties.get('gmx_nocopyright', True) if self.gmx_nobackup: self.gmx_path += ' -nobackup' if self.gmx_nocopyright: self.gmx_path += ' -nocopyright' if (not self.mpi_bin) and (not self.container_path): self.gmx_version = get_gromacs_version(self.gmx_path) # Properties common in all BB self.can_write_console_log = properties.get('can_write_console_log', True) self.global_log = properties.get('global_log', None) self.prefix = properties.get('prefix', None) self.step = properties.get('step', None) self.path = properties.get('path', '') self.remove_tmp = properties.get('remove_tmp', True) self.restart = properties.get('restart', False) # Check the properties fu.check_properties(self, properties)