Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
flat_waters_within_distance = [item for sublist in self.waters_within_distance for item in sublist]
num_atoms = system.getNumParticles()
for atom in range(num_atoms):
if atom in flat_waters_all and atom not in flat_waters_within_distance:
system.setParticleMass(atom, 0*unit.daltons)
else:
pass
if self.freeze_protein:
#if active freezes protein residues beyond a certain cutoff
res_list = []
for traj in self.binding_mode_traj:
lig_pos = traj.openmm_positions(0)
structure.positions = lig_pos
mask = parmed.amber.AmberMask(self.structure,"((:HOH)|(:%s<:%f))&!(:%s)" % ('LIG', self.freeze_protein, 'NA,CL'))
site_idx = [i for i in mask.Selected()]
res_list = res_list + site_idx
res_list = list(set(res_list))
num_atoms = system.getNumParticles()
for atom in range(num_atoms):
if self.freeze_waters > 0:
if atom in res_list or atom in flat_waters_within_distance:
pass
else:
system.setParticleMass(atom, 0*unit.daltons)
else:
if atom in res_list:
pass
else:
system.setParticleMass(atom, 0*unit.daltons)
structure : parmed.Structure()
Structure of the system, used for atom selection.
selection : str
AmberMask selection that gets converted to a list of atom indices.
Returns
-------
mask_idx : list of int
List of atom indices.
References
----------
.. [amber-syntax] J. Swails, ParmEd Documentation (2015). http://parmed.github.io/ParmEd/html/amber.html#amber-mask-syntax
"""
mask = parmed.amber.AmberMask(structure, str(selection))
mask_idx = [i for i in mask.Selected()]
return mask_idx
structure : parmed.Structure()
Structure of the system, used for atom selection.
selection : str
AmberMask selection that gets converted to a list of atom indices.
Returns
-------
mask_idx : list of int
List of atom indices.
References
----------
.. [amber-syntax] J. Swails, ParmEd Documentation (2015). http://parmed.github.io/ParmEd/html/amber.html#amber-mask-syntax
"""
mask = parmed.amber.AmberMask(structure, str(selection))
mask_idx = [i for i in mask.Selected()]
return mask_idx
structure : parmed.Structure()
Structure of the system, used for atom selection.
selection : str
AmberMask selection that gets converted to a list of atom indices.
Returns
-------
mask_idx : list of int
List of atom indices.
References
----------
.. [amber-syntax] J. Swails, ParmEd Documentation (2015). http://parmed.github.io/ParmEd/html/amber.html#amber-mask-syntax
"""
mask = parmed.amber.AmberMask(structure, str(selection))
mask_idx = [i for i in mask.Selected()]
return mask_idx
suggest valid residues or atoms.
Parameters
----------
structure : parmed.Structure
The structure of the simulated system
selection : str
The selection string uses Amber selection syntax to select atoms to be
restrained/frozen during simulation.
logger : logging.Logger
Records information or streams to terminal.
"""
try:
mask = parmed.amber.AmberMask(structure, str(selection))
mask_idx = [i for i in mask.Selected()]
except:
mask_idx = []
if not mask_idx:
if ':' in selection:
res_set = set(residue.name for residue in structure.residues)
logger.error("'{}' was not a valid Amber selection. \n\tValid residue names: {}".format(
selection, res_set))
elif '@' in selection:
atom_set = set(atom.name for atom in structure.atoms)
logger.error("'{}' was not a valid Amber selection. Valid atoms: {}".format(selection, atom_set))
return False
else:
return True