schrodinger.application.matsci.packmol module

Utilities for working with packmol.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.matsci.packmol.PDBdata(pdbname, pdbres, resnum, chain_name, order)

Bases: tuple

chain_name

Alias for field number 3

order

Alias for field number 4

pdbname

Alias for field number 0

pdbres

Alias for field number 1

resnum

Alias for field number 2

class schrodinger.application.matsci.packmol.SurfactantInfo(st, name, packing_pct, number, layer, hydrophilic_idxs, hydrophobic_idxs, cion_st, cion_name)

Bases: tuple

cion_name

Alias for field number 8

cion_st

Alias for field number 7

hydrophilic_idxs

Alias for field number 5

hydrophobic_idxs

Alias for field number 6

layer

Alias for field number 4

name

Alias for field number 1

number

Alias for field number 3

packing_pct

Alias for field number 2

st

Alias for field number 0

class schrodinger.application.matsci.packmol.SolventInfo(st, name, packing_pct, number, layer)

Bases: tuple

layer

Alias for field number 4

name

Alias for field number 1

number

Alias for field number 3

packing_pct

Alias for field number 2

st

Alias for field number 0

class schrodinger.application.matsci.packmol.PackmolKw(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: schrodinger.StrEnum

Enum to hold packmol keywords.

OUTPUT = 'output'
FILETYPE = 'filetype'
COMMENT = '#'
STRUCTURE = 'structure'
NUMBER = 'number'
END = 'end'
ATOMS = 'atoms'
RADIUS = 'radius'
INSIDE = 'inside'
BOX = 'box'
FIXED = 'fixed'
SIDEMAX = 'sidemax'
FSCALE = 'fscale'
SHORT_RADIUS = 'short_radius'
SHORT_RADIUS_SCALE = 'short_radius_scale'
schrodinger.application.matsci.packmol.get_cuboid_vol(st)

Return the cuboid volume of the given structure.

Parameters

st (schrodinger.structure.Structure) – the structure

Return type

float

Returns

the cuboid volume in Ang.^3

schrodinger.application.matsci.packmol.get_idxs(idxs_str)

Return integer indices from the given string of indices.

Parameters

idxs_str (str) – the string of indices

Return type

tuple

Returns

the integer indices

schrodinger.application.matsci.packmol.get_class_map()

Return the class map.

Return type

dict

Returns

the class map

schrodinger.application.matsci.packmol.get_pdb_data(pdbname, pdbres, resnum=None, chain_name=None, order=None)

Return a PDBdata.

Parameters
  • pdbname (str) – the PDB atom name

  • pdbres (str) – the PDB residue name

  • resnum (int or None) – the PDB residue number if needed

  • chain_name (str or None) – the PDB chain name if needed

  • order (int or None) – a bond order to be used when bonding to the atom corresponding to this object

Return type

PDBdata

Returns

the PDB data

schrodinger.application.matsci.packmol.get_cg_radii_lines(st)

Return the coarse-grained radii body.

Parameters

st (schrodinger.structure.Structure) – the structure

Return type

list[str]

Returns

list of the coarse-grain radii body lines

schrodinger.application.matsci.packmol.get_atom_radii_lines(st, allow_ring_spears=False, penalty_factor_ring_spears=10, radius_factor_ring_spears=1, tolerance=2, batch_size=5)

Return the atom radii body.

Parameters
  • st (schrodinger.structure.Structure) – the structure

  • allow_ring_spears (bool) – if True then allow ring-spears

  • penalty_factor_ring_spears (float) – the penalty factor for ring-spears

  • radius_factor_ring_spears (float) – the radius factor for ring-spears

  • tolerance (float) – the distance tolerance in Angstrom

  • batch_size (int) – the number of atom indices per atom block

Return type

list[str]

Returns

list of the atom radii body lines

class schrodinger.application.matsci.packmol.StdInJob(cmd, subdir=None, log_name=None)

Bases: schrodinger.application.matsci.jobutils.LoggingSubprocessJob

Manage a subprocess job with stdin and that sends stdout to a log file.

doCommand(*args, **kwargs)

See parent class for documentation.

postCommand()

See parent class for documentation.

schrodinger.application.matsci.packmol.run(input_files, max_failures=None)

Run.

Parameters
  • input_files (list) – packmol input files

  • max_failures (int) – Total number of allowed subjob failures before JobDJ exits. See schrodinger.job.queue.py::JobDJ for more docs.

Return type

dict

Returns

keys are input files, values are structure output files

class schrodinger.application.matsci.packmol.PDBWriter(filename, reorder_by_sequence=False, first_occ=False, translate_pdb_resnames=True)

Bases: schrodinger.structure._io.PDBWriter

write(ct)

See parent class for documentation.

schrodinger.application.matsci.packmol.set_unique_pdb_atom_names(st)

Set unique PDB atom names on the given structure.

Parameters

st (schrodinger.structure.Structure) – the structure

schrodinger.application.matsci.packmol.has_imperfect_packing(log_fn)

Return True if the given packmol log file name indicates a solution with imperfect packing.

Parameters

log_fn (str) – the packmol log file name

Return type

bool

Returns

True if there is imperfect packing

schrodinger.application.matsci.packmol.set_pbc(st, a_len, b_len, c_len, expand_pbc=False, pbc_buffer=2, logger=None)

Set the PBC on the given structure.

Parameters
  • st (schrodinger.structure.Structure) – the structure on which to set the PBC

  • a_len (float) – the PBC length of the a-vector in Ang.

  • b_len (float) – the PBC length of the b-vector in Ang.

  • c_len (float) – the PBC length of the c-vector in Ang.

  • expand_pbc (bool) – if True then expand the PBC due to packmol imperfect packing

  • pbc_buffer (float) – if the given PBC can not be used then determine it from the given structure and then add this buffer length

  • logger (logging.Logger or None) – output logger or None if there isn’t one

schrodinger.application.matsci.packmol.add_atom_properties(pdb_st, mae_structs, props=('b_matsci_hydrophilic', 'b_matsci_hydrophobic', 'b_matsci_polymer_head_atom', 'b_matsci_polymer_tail_atom'))

Transfer the given properties from the mae structures to the structure created from pdb

Parameters
schrodinger.application.matsci.packmol.check_ring_spears(sts, logger=None)

Check for ring-spears.

Parameters
  • sts (dict) – keys are input files, values are schrodinger.structure.Structure

  • logger (logging.Logger or None) – output logger or None if there isn’t one

Raises

RuntimeError – if there is a problem

Return type

dict, dict

Returns

the first and second are w/o and w/ ring-spears, respectively, keys are input files, values are schrodinger.structure.Structure

schrodinger.application.matsci.packmol.add_ring_spear_dummies(st, logger=None)

Return a copy of the given structure with dummy atoms added to the rings for the purposes of preventing ring-spears.

Parameters
Return type

schrodinger.structure.Structure

Returns

the structure with the dummy atoms added

schrodinger.application.matsci.packmol.remove_ring_spear_dummies(st)

Return a copy of the given structure with ring-spear dummy atoms removed from the rings.

Parameters

st (schrodinger.structure.Structure) – the structure

Return type

schrodinger.structure.Structure

Returns

the structure with the dummy atoms removed

schrodinger.application.matsci.packmol.get_cells(input_files, sts, allow_ring_spears=False, logger=None)

Return cells.

Parameters
  • input_files (dict) – keys are packmol input files, values are tuples of the 3 box lengths (Angstrom) defining the PBC

  • sts (dict) – keys are file names (referenced in the given packmol input files), values are schrodinger.structure.Structure

  • allow_ring_spears (bool) – if True then allow ring-spears

  • logger (logging.Logger or None) – output logger or None if there isn’t one

Raises

RuntimeError – if there is a problem

Return type

dict, dict

Returns

the first and second are all (good and bad) and just bad cells, respectively, keys are input files, values are schrodinger.structure.Structure

schrodinger.application.matsci.packmol.write_desmond_cells(input_files, sts, force_field=None, water_force_field='SPC', cg_ff_loc_type='local', allow_ring_spears=False, logger=None)

Write Desmond cells.

Parameters
  • input_files (dict) – keys are packmol input files, values are tuples of the 3 box lengths (Angstrom) defining the PBC

  • sts (dict) – keys are file names (referenced in the given packmol input files), values are schrodinger.structure.Structure

  • force_field (str) – name of FF to apply

  • water_force_field (str) – name of the water force field to apply, options are available in desmondutils

  • cg_ff_loc_type (str) – specifies the location to which to look for coarse-grained force field files, one of parserutils.INSTALLED_CG_FF_LOCATION_TYPE or parserutils.LOCAL_CG_FF_LOCATION_TYPE

  • allow_ring_spears (bool) – if True then allow ring-spears

  • logger (logging.Logger or None) – output logger or None if there isn’t one

Raises

RuntimeError – if there is a problem with the input

Return type

dict, dict

Returns

the first and second are all (good and bad) and just bad output files, respectively, keys are input files, values are names of written Desmond *cms files

schrodinger.application.matsci.packmol.set_unique_pdb_res_names(st)

Set unique PDB residue names on the given structure.

Raises

RuntimeError – if there is a problem with the input

Parameters

st (schrodinger.structure.Structure) – the structure

schrodinger.application.matsci.packmol.unset_unique_pdb_res_names(st)

Unset unique PDB residue names on the given structure.

Parameters

st (schrodinger.structure.Structure) – the structure

schrodinger.application.matsci.packmol.group_infos_by_layer(infos)

Group the given information objects into a dictionary keyed by layer.

Parameters

infos (list[SurfactantInfo] or list[SolventInfo]) – contains surfactant or solvent infos

Return type

dict

Returns

the information objects keyed by layer

schrodinger.application.matsci.packmol.get_max_distance_btw_groups(st, idxs, jdxs)

Return the maximum distance (Angstrom) between the given groups of atom indices.

Parameters
Return type

float

Returns

the maximum distance in Angstrom

exception schrodinger.application.matsci.packmol.PackmolInputFileException

Bases: Exception

class schrodinger.application.matsci.packmol.PackmolInputFile(tolerance=2, filetype='pdb', output_base_name='packmol', comment='', general_body='', allow_ring_spears=False, penalty_factor_ring_spears=10, radius_factor_ring_spears=1)

Bases: object

Manage a packmol input file.

IN_EXT = '.inp'
__init__(tolerance=2, filetype='pdb', output_base_name='packmol', comment='', general_body='', allow_ring_spears=False, penalty_factor_ring_spears=10, radius_factor_ring_spears=1)

Create an instance.

Parameters
  • tolerance (float) – the distance tolerance in Angstrom

  • filetype (str) – the file type to use for all structure files, pdb, tinker, xyz, or moldy

  • output_base_name (str) – the base name to use for the packmol output structure file

  • comment (str) – a comment placed at the top of the the packmol input file, include preceeding ‘#’

  • general_body (str) – the general body, should contain newlines, this is for any additional top level parameters that do not have to do with structures

  • allow_ring_spears (bool) – if True then allow ring-spears

  • penalty_factor_ring_spears (float) – the penalty factor for ring-spears

  • radius_factor_ring_spears (float) – the radius factor for ring-spears

addStructureBody(base_name, body)

Add a structure body to the input file.

Parameters
  • base_name (str) – the base name of the input structure file

  • body (str) – the body, should contain indentation and newlines

addStructureBodies()

Add structure bodies to the input file.

Raises

PackmolInputFileException – if there is an issue with the input

write(input_base_name='packmol')

Write the packmol input file.

Parameters

input_base_name (str) – the base name to use for the packmol input file

Raises

PackmolInputFileException – if there is an issue with the input

Return type

str

Returns

the packmol input file name

class schrodinger.application.matsci.packmol.StructuredLiquidInputFile(*args, **kwargs)

Bases: schrodinger.application.matsci.packmol.PackmolInputFile

Manage a structured liquid input file.

__init__(*args, **kwargs)

See parent class for documentation.

check()

Check cell lengths.

Raises

PackmolInputFileException – if there is an issue with the input

prepare(cell_lengths, surfactant_infos, solvent_infos, layer_sep=1, packing_f=0.8, min_constraint_window_surfactant_idxs=25)

Prepare.

Parameters
  • cell_lengths (tuple) – the cell lengths of the output structure file

  • surfactant_infos (list) – contains SurfactantInfo

  • solvent_infos (list) – contains SolventInfo

  • layer_sep (float) – the layer separation in Angstrom

  • packing_f (float) – a packing efficiency factor used to control the density of surfactant and solvent molecules

  • min_constraint_window_surfactant_idxs (float) – this is the minimum window length for constraining surfactant hydrophilic and hydrophobic indices as a percentage of the surfactant length, should be in (0, 50)

Raises

PackmolInputFileException – if there is an issue with the input

getMaxDists(all_infos)

Return a dictionary of maximum distances (Ang.) among the structures in each layer of the given all_infos.

Parameters

all_infos (dict) – keys are layers, values are lists containing either SurfactantInfo or SolventInfo

Return type

dict

Returns

keys are layers, values are maximum distances

getBoxSliceVol(cmin, cmax)

Return the box slice volume.

Parameters
  • cmin (float) – the lower bound on the layer in Angstrom

  • cmax (float) – the upper bound on the layer in Angstrom

Return type

float

Returns

the box slice volume in Ang.^3

getSphereSliceVol(rmin, rmax)

Return the sphere slice volume.

Parameters
  • rmin (float) – the lower bound on the layer in Angstrom

  • rmax (float) – the upper bound on the layer in Angstrom

Return type

float

Returns

the sphere slice volume in Ang.^3

getOutsideSphereVol(radius)

Return the box volume less the sphere volume.

Parameters

radius (float) – the radius of the sphere in Angstrom

Return type

float

Returns

the box volume less the sphere volume in Ang.^3

getCylinderSliceVol(rmin, rmax, length)

Return the cylinder slice volume.

Parameters
  • rmin (float) – the lower bound on the layer in Angstrom

  • rmax (float) – the upper bound on the layer in Angstrom

  • length (float) – the length of the cylinder in Angstrom

Return type

float

Returns

the cylinder slice volume in Ang.^3

getOutsideCylinderVol(radius, length)

Return the box volume less the cylinder volume.

Parameters
  • radius (float) – the radius of the cylinder in Angstrom

  • length (float) – the length of the cylinder in Angstrom

Return type

float

Returns

the box volume less the cylinder volume in Ang.^3

getEllipsoidSliceVol(rmin, rmax)

Return the ellipsoid slice volume.

Parameters
  • rmin (float) – the lower bound on the layer in Angstrom

  • rmax (float) – the upper bound on the layer in Angstrom

Return type

float

Returns

the ellipsoid slice volume in Ang.^3

getOutsideEllipsoidVol(radius)

Return the box volume less the ellipsoid volume.

Parameters

radius (float) – the radius of the ellipsoid in Angstrom, this is half the length of the minor axis

Return type

float

Returns

the box volume less the ellipsoid volume in Ang.^3

getNumber(info, amin, amax)

Return the number of surfactant or solvent molecules to add for the given info.

Parameters
  • info (SurfactantInfo or SolventInfo) – the info object for this layer

  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float or None) – the upper bound on the layer in Angstrom or None if there isn’t one in which case the remaining outermost space of the cell will be used

Return type

int

Returns

the number of molecules

getLayerVolume(amin, amax, buffer_len=0)

Return the volume of this layer.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float or None) – the upper bound on the layer in Angstrom or None if there isn’t one in which case the remaining outermost space of the cell will be used

  • buffer_len (float) – a buffer length in Angstrom

Return type

int

Returns

the volume in Ang.^3

addLayer(info, amin, amax, hydrophilic_at_max=False, number=None, add_cion=False)

Add a layer.

Parameters
  • info (SurfactantInfo or SolventInfo) – the info object for this layer

  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float or None) – the upper bound on the layer in Angstrom or None if there isn’t one in which case the remaining outermost space of the cell will be used

  • hydrophilic_at_max (bool) – if info is SurfactantInfo whether the hydrophilic atoms are to be located at the maximum

  • number (int or None) – the number of molecules to add, if None it will be determined

  • add_cion (bool) – if info is SurfactantInfo whether the layer is for the counter-ion

getTotalSurfactantThickness(layers_are_bilayers=True)

Return the total surfactant thickness in Angstrom.

Parameters

layers_are_bilayers (bool) – whether layers are bilayers

Return type

float

Returns

the total surfactant thickness in Angstrom

getTotalCIonThickness()

Return the total counter-ion thickness in Angstrom.

Return type

float

Returns

the total counter-ion thickness in Angstrom

getTotalNonSurfactantThickness()

Return the total non-surfactant thickness in Angstrom.

Return type

float

Returns

the total non-surfactant thickness in Angstrom

addSurfactantBodies(start_dist, start_hydrophilic_at_max=False, layers=None, layers_are_bilayers=True)

Add surfactant bodies to the input file.

Parameters
  • start_dist (float) – start adding surfactants at this distance in Angstrom

  • start_hydrophilic_at_max (bool) – specifies whether the hydrophilic atoms for the starting layer are to be located at the maximum

  • layers (list or None) – the surfactant layers to add, if None then all will be added

  • layers_are_bilayers (bool) – whether layers are bilayers

Return type

float, bool

Returns

surfactants stopped being added at this distance in Angstrom, whether the hydrophilic atoms for the final layer are located at the maximum

addCIonBodies(start_dist, stop_dist, layers=None, factor=1)

Add counter-ion bodies to the input file.

Parameters
  • start_dist (float) – start adding counter-ions at this distance in Angstrom

  • stop_dist (float) – stop adding counter-ions at this distance in Angstrom

  • layers (list or None) – the counter-ion layers to add, if None then all will be added

  • factor (float) – multiplies the corresponding number of surfactant molecules to set the number of counter-ions in the given region

addSolventBodies(start_dist, stop_dist, layers=None, layer_sep=None)

Add solvent bodies to the input file.

Parameters
  • start_dist (float) – start adding solvents at this distance in Angstrom

  • stop_dist (float) – stop adding solvents at this distance in Angstrom

  • layers (list or None) – the solvent layers to add, if None then all will be added

  • layer_sep (float) – the layer separation in Angstrom

getSurfactantLayers()

Return a list of surfactant layers.

Return type

list

Returns

the surfactant layers

getSolventLayers()

Return a list of solvent layers.

Return type

list

Returns

the solvent layers

getConstraintType(parameter)

Return the constraint type.

Parameters

parameter (float) – the parameter in Angstrom

Return type

str

Returns

the constraint type

class schrodinger.application.matsci.packmol.MonolayerInputFile(*args, **kwargs)

Bases: schrodinger.application.matsci.packmol.StructuredLiquidInputFile

Manage a monolayer input file.

SURFACTANT_TOP_ATOM_CONSTRAINT = 'over'
SURFACTANT_BOTTOM_ATOM_CONSTRAINT = 'below'
CONSTRAINT_TYPE = 'plane 0 0 1 {parameter}'
getMinCellLengths()

Return the minimum cell lengths.

Return type

tuple

Returns

a triple containing float and/or None, float is a minimum cell length in Angstrom, None indicates that there is no minimum

check()

Check cell lengths.

Raises

PackmolInputFileException – if there is an issue with the input

getVol(amin, amax)

Return the volume.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float) – the upper bound on the layer in Angstrom

Return type

float

Returns

the volume in Ang.^3

getSurfactantConstraints(amin, amax)

Return the surfactant constraints.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float) – the upper bound on the layer in Angstrom

Return type

str

Returns

the surfactant constraints

getSolventConstraints(amin, amax)

Return the solvent constraints.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float) – the upper bound on the layer in Angstrom

Return type

str

Returns

the solvent constraints

addStructureBodies()

See parent class for documentation.

class schrodinger.application.matsci.packmol.BilayerInputFile(*args, **kwargs)

Bases: schrodinger.application.matsci.packmol.MonolayerInputFile

Manage a bilayer input file.

getMinCellLengths()

Return the minimum cell lengths.

Return type

tuple

Returns

a triple containing float and/or None, float is a minimum cell length in Angstrom, None indicates that there is no minimum

check()

Check cell lengths.

Raises

PackmolInputFileException – if there is an issue with the input

addStructureBodies()

See parent class for documentation.

class schrodinger.application.matsci.packmol.MicelleInputFile(*args, **kwargs)

Bases: schrodinger.application.matsci.packmol.StructuredLiquidInputFile

Manage a micelle input file.

SURFACTANT_TOP_ATOM_CONSTRAINT = 'outside'
SURFACTANT_BOTTOM_ATOM_CONSTRAINT = 'inside'
CONSTRAINT_TYPE = 'sphere 0 0 0 {parameter}'
getMinCellLengths()

Return the minimum cell lengths.

Return type

tuple

Returns

a triple containing float and/or None, float is a minimum cell length in Angstrom, None indicates that there is no minimum

check()

Check cell lengths.

Raises

PackmolInputFileException – if there is an issue with the input

getRadius()

Return the radius.

Return type

float

Returns

the radius in Ang.

getVol(amin, amax)

Return the volume.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float) – the upper bound on the layer in Angstrom

Return type

float

Returns

the volume in Ang.^3

getOutsideVol()

Return the outside volume.

Return type

float

Returns

the outside volume in Ang.^3

getSurfactantConstraints(amin, amax)

Return the surfactant constraints.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float) – the upper bound on the layer in Angstrom

Return type

str

Returns

the surfactant constraints

getSolventConstraints(amin, amax)

Return the solvent constraints.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float) – the upper bound on the layer in Angstrom

Return type

str

Returns

the solvent constraints

addStructureBodies()

See parent class for documentation.

class schrodinger.application.matsci.packmol.LiposomeInputFile(*args, **kwargs)

Bases: schrodinger.application.matsci.packmol.MicelleInputFile

Manage a liposome input file.

prepare(*args, **kwargs)

See parent class for documentation.

Parameters

radius (float) – the radius of the liposome in Ang.

getMinRadius()

Return the minimum radius.

Return type

float

Returns

the minimum radius in Angstrom

check()

Check cell lengths.

Raises

PackmolInputFileException – if there is an issue with the input

getRadius()

Return the radius.

Return type

float

Returns

the radius in Ang.

getInnerRadius()

Return the inner radius.

Return type

float

Returns

the inner radius in Ang.

getSolventConstraints(amin, amax)

Return the solvent constraints.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float or None) – the upper bound on the layer in Angstrom or None if there isn’t one in which case the remaining outermost space of the cell will be used

Return type

str

Returns

the constraints

addStructureBodies()

See parent class for documentation.

class schrodinger.application.matsci.packmol.WormlikeMicelleInputFile(*args, **kwargs)

Bases: schrodinger.application.matsci.packmol.MicelleInputFile

Manage a wormlike micelle input file.

CONSTRAINT_TYPE = 'cylinder 0 0 {bottom} 0 0 1 {parameter} {length}'
getMinCellLengths()

Return the minimum cell lengths.

Return type

tuple

Returns

a triple containing float and/or None, float is a minimum cell length in Angstrom, None indicates that there is no minimum

getVol(amin, amax)

Return the volume.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float) – the upper bound on the layer in Angstrom

Return type

float

Returns

the volume in Ang.^3

getOutsideVol()

Return the outside volume.

Return type

float

Returns

the outside volume in Ang.^3

getConstraintType(parameter)

Return the constraint type.

Parameters

parameter (float) – the parameter in Angstrom

Return type

str

Returns

the constraint type

class schrodinger.application.matsci.packmol.ElongatedMicelleInputFile(*args, **kwargs)

Bases: schrodinger.application.matsci.packmol.MicelleInputFile

Manage an elongated micelle input file.

CONSTRAINT_TYPE = 'ellipsoid 0 0 0 {parameter} {parameter} {parameter_p} 1'
prepare(*args, **kwargs)

See parent class for documentation.

Parameters

factor (float) – the scale factor for the principal axis

getMinCellLengths()

Return the minimum cell lengths.

Return type

tuple

Returns

a triple containing float and/or None, float is a minimum cell length in Angstrom, None indicates that there is no minimum

getMajorRadius()

Return the major radius.

Return type

float

Returns

the major radius in Ang.

getVol(amin, amax)

Return the volume.

Parameters
  • amin (float) – the lower bound on the layer in Angstrom

  • amax (float) – the upper bound on the layer in Angstrom

Return type

float

Returns

the volume in Ang.^3

getOutsideVol()

Return the outside volume.

Return type

float

Returns

the outside volume in Ang.^3

getConstraintType(parameter)

Return the constraint type.

Parameters

parameter (float) – the parameter in Angstrom

Return type

str

Returns

the constraint type

schrodinger.application.matsci.packmol.get_writer(surfactant_infos, solvent_infos, base_name, seed, n_loop, cell_lengths, packing_f, model_type, allow_ring_spears, penalty_factor_ring_spears, radius_factor_ring_spears, **kwargs)

Get the writer.

Parameters
  • surfactant_infos (list[SurfactantInfo]) – contains surfactant infos

  • solvent_infos (list[SolventInfo]) – contains solvent infos

  • base_name (str) – base name used for output file naming

  • seed (int) – seed for random

  • n_loop (int) – the number of packmol loops

  • cell_lengths (tuple[float]) – the cell lengths in Angstrom

  • packing_f (float) – the packing factor

  • model_type (str) – the model type, a key in the class map

  • allow_ring_spears (bool) – if True then allow ring-spears

  • penalty_factor_ring_spears (float) – the penalty factor for ring-spears

  • radius_factor_ring_spears (float) – the radius factor for ring-spears

Return type

StructuredLiquidInputFile

Returns

the writer

schrodinger.application.matsci.packmol.get_parser(description, packmol_input=True)

Get the command line argument parser.

Parameters
  • description (str) – the description

  • packmol_input (bool) – whether the input is a packmol input file

Return type

parserutils.DriverParser

Returns

command line argument parser

schrodinger.application.matsci.packmol.get_job_spec_from_args(argv, description, program_name='Structured Liquid', default_job_name='structured_liquid', packmol_input=True)

Return a JobSpecification.

Parameters
  • argv (list) – command line arguments including the script name at [0]

  • description (str) – the description

  • program_name (str) – the program name

  • default_job_name (str) – the default job name

  • packmol_input (bool) – whether the input is a packmol input file

Return type

schrodinger.job.launchapi.JobSpecification

Returns

the JobSpecification

schrodinger.application.matsci.packmol.main(description, *args, default_job_name='structured_liquid')

Main function used by drivers to run packmol.

Parameters
  • description (str) – the parser description

  • default_job_name (str) – the default job name

schrodinger.application.matsci.packmol.get_surfactant_infos(slb_dict)

Return surfactant information from the given dictionary of structured liquid builder options. Maestro files referenced within must exist in the current working directory.

Parameters

slb_dict (dict) – contains structured liquid builder options

Raises

RuntimeError – if there is an issue

Return type

list[SurfactantInfo], list[str]

Returns

the surfactant information objects and any extra structure file flags

schrodinger.application.matsci.packmol.get_solvent_infos(slb_dict)

Return solvent information from the given dictionary of structured liquid builder options. Maestro files referenced within must exist in the current working directory.

Parameters

slb_dict (dict) – contains structured liquid builder options

Raises

RuntimeError – if there is an issue

Return type

list[SolventInfo]

Returns

the solvent information objects

schrodinger.application.matsci.packmol.write_packmol_input_file(slb_dict, box_lengths, allow_ring_spears=False, penalty_factor_ring_spears=10, radius_factor_ring_spears=1)

Write the packmol input file from the given dictionary of structured liquid builder options.

Parameters
  • slb_dict (dict) – contains structured liquid builder options

  • box_lengths (tuple[float]) – the cell lengths in Angstrom

  • allow_ring_spears (bool) – if True then allow ring-spears

  • penalty_factor_ring_spears (float) – the penalty factor for ring-spears

  • radius_factor_ring_spears (float) – the radius factor for ring-spears

Raises

RuntimeError – if there is an issue

Return type

str, list[str]

Returns

the packmol input file name and any extra structure file flags