Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def mol_to_parmed(mol):
""" Convert MDT Molecule to parmed Structure
Args:
mol (moldesign.Molecule):
Returns:
parmed.Structure
"""
import parmed
struc = parmed.Structure()
struc.title = mol.name
pmedatoms = []
for atom in mol.atoms:
pmedatm = parmed.Atom(atomic_number=atom.atomic_number,
name=atom.name,
mass=atom.mass.value_in(u.dalton),
number=utils.if_not_none(atom.pdbindex, -1))
pmedatm.xx, pmedatm.xy, pmedatm.xz = atom.position.value_in(u.angstrom)
pmedatoms.append(pmedatm)
struc.add_atom(pmedatm,
resname=utils.if_not_none(atom.residue.resname, 'UNL'),
resnum=utils.if_not_none(atom.residue.pdbindex, -1),
chain=utils.if_not_none(atom.chain.name, ''))
for bond in mol.bonds:
struc.bonds.append(parmed.Bond(pmedatoms[bond.a1.index],
pmedatoms[bond.a2.index],
order=bond.order))
return struc
def createStructureFromResidue(residue):
# Create ParmEd structure for residue.
structure = parmed.Structure()
for a in residue.atoms():
if a.element is None:
atom = parmed.ExtraPoint(name=a.name)
else:
atom = parmed.Atom(atomic_number=a.element.atomic_number, name=a.name, mass=a.element.mass)
structure.add_atom(atom, residue.name, residue.index, 'A')
atommap[a] = atom
for a1, a2 in topology.bonds():
structure.bonds.append(Bond(atommap[a1], atommap[a2]))
return structure