schrodinger.application.desmond.gcmc_utils module

schrodinger.application.desmond.gcmc_utils.add_inactive_solvent_file(ifile: str, solvent_file: str, ofile: str, **kwargs)

Opens the input file, calls add_inactive_solvent, and writes the result to a new file.

Parameters:
  • ifile (str) – the input filename
  • solvent_file (str) – the solvent filename
  • ofile (str) – the output filename
  • kwargs – keyword arguments passed to add_inactive_solvent
schrodinger.application.desmond.gcmc_utils.add_inactive_solvent(model: schrodinger.application.desmond.cms.Cms, solvent_model: schrodinger.application.desmond.cms.Cms, num_copies: int = 2000, copy: bool = False)

Appends num_copies copies of the molecules in the supplied solvent model to either system’s solvent CT if it exists or otherwise a new solvent CT. These changes are propagated to the fullsystem CT as well.

Parameters:
  • model (cms.Cms) – the model to add inactive solvent to
  • solvent_model – a cms model containing a solvent CT, can be the same

as model. NOTE - if solvent_model contains different PBC’s than model, these PBC’s will not be honored, which could lead to ‘broken’ molecules. :type solvent_model: cms.Cms

Parameters:
  • num_copies (int) – the number of inactive solvent molecules to add
  • copy – whether or not to return a copy of the input structure.

Otherwise the input may be modified. :type copy: bool

Returns:the input model with solvent added
Return type:cms.Cms
schrodinger.application.desmond.gcmc_utils.remove_inactive_solvent_file(ifile: str, ofile: str)

Calls remove_inactive_solvent on a file and writes the result to a new file

Parameters:
  • ifile (str) – the input filename
  • ofile (str) – the output filename
schrodinger.application.desmond.gcmc_utils.remove_inactive_solvent(model: schrodinger.application.desmond.cms.Cms, copy_if_gcmc: bool = False)

Remove inactive solvent from the full system CT and the component CTs such that afterward the comp_atom_total will equal the active_total.

Parameters:
  • model (cms.Cms) – the Cms object from which to remove inactive solvent atoms
  • copy_if_gcmc – whether or not to return a copy of the input structure

to avoid side effects (ie, the removal of inactive solvent molecules). If the input model does not contain inactive solvent, it is always returned uncopied. :type copy_if_gcmc: bool

Returns:the same Cms object or a copy with its inactive solvent atoms removed
Return type:cms.Cms
schrodinger.application.desmond.gcmc_utils.tag_gcmc_ligand_file(ifile: str, ofile: str, **kwargs)

Calls tag_gcmc_ligand on the input file and writes the results to the output file.

Parameters:
  • ifile (str) – the input filename
  • ofile (str) – the output filename
  • kwargs – keyword arguments passed to tag_gcmc_ligand
schrodinger.application.desmond.gcmc_utils.tag_gcmc_ligand(model: schrodinger.application.desmond.cms.Cms, tag_only_mutated: bool = False)

Finds the atoms of the ‘ligand molecule(s)’ and sets the ‘i_gcmc_ligand’ property to 1. The ‘ligand molecule(s)’ is(are) defined as the molecule containing the first atom of the ligand ct(s), in order to exclude alchemical ions/water. If no ligand is found, or if atoms in the system contain the ‘i_gcmc_ligand` property already, the system is returned unchanged. For FEP systems, both the reference and mutant ligands are tagged.

Parameters:
  • model (cms.Cms) – The input cms object
  • tag_only_mutated – If false (default), all atoms in the cms model’s

FEP cts are tagged. Otherwise, only atoms in the FEP cts which are mapped to dummy atoms are tagged. The case of mutated atoms that map to each other rather than to dummy atoms is not supported.

Returns:The modified input cms object
Return type:cms.Cms
schrodinger.application.desmond.gcmc_utils.tag_gcmc_near_ligand_file(ifile: str, ofile: str, lig_file: str, cutoff_distance: float)

Calls tag_gcmc_near_ligand on the input file and writes it to the output file, using the given ligand file and cutoff distance.

Parameters:
  • ifile (str) – the input file
  • ofile (str) – the output file
  • lig_file (str) – the file containing the ligand model
  • cutoff_distance – atoms within this distance of any ligand atom will

be tagged :type cutoff_distance: float

schrodinger.application.desmond.gcmc_utils.tag_gcmc_near_ligand(model: schrodinger.application.desmond.cms.Cms, ligand_model: schrodinger.application.desmond.cms.Cms, cutoff_distance: float)

Tags solute atoms in the model that are within the cutoff distance of any atom in the ligand model by setting the ‘i_gcmc_ligand’ atom property to 1.

Parameters:
  • model (cms.Cms) – the input cms model
  • ligand_model (structure.Structure) – the input ligand model
  • cutoff_distance – solute atoms within this distance of any ligand

atom will be tagged :type cutoff_distance: float

Returns:the modified input model
Return type:cms.Cms
schrodinger.application.desmond.gcmc_utils.ffio_delete_atoms(ffio_ct: schrodinger.application.desmond.ffiostructure.FFIOStructure, num_atoms: int)

Deletes the given number of atoms and a proportional number of pseudoatoms from the input CT.

Parameters:
  • ffio_ct (cms.ffiostructure.FFIOStructure) – The input ffio CT
  • num_atoms (int) – the number of atoms to delete
schrodinger.application.desmond.gcmc_utils.ffio_extend_ct(ffio_ct: schrodinger.application.desmond.ffiostructure.FFIOStructure, other_ffio_ct: schrodinger.application.desmond.ffiostructure.FFIOStructure)

Extends an ffio CT with the atoms and pseudoatoms of another ffio CT. The CTs should each only contain copies of the same single molecule.

Parameters:
  • ffio_ct (cms.ffiostructure.FFIOStructure) – The input ffio CT
  • other_ffio_ct (cms.ffiostructure.FFIOStructure) – The ffio CT to extend the input CT with
schrodinger.application.desmond.gcmc_utils.equalize_number_waters(struc_files: List[str])

Deletes the waters from the marked component CTs of the structure files until each has the same number of waters.

Parameters:struc_files ({str: (int, int)}) – a dictionary mapping the filenames of cms files to a tuple containing the index of their solvent CT and the total number of atoms in the system.