Combine parameterization functions and tests.

This commit is contained in:
Nathan Baker
2020-06-28 15:45:03 -07:00
parent 4cb18b166f
commit 405a8596a1
6 changed files with 538 additions and 550 deletions

View File

@@ -10,19 +10,42 @@ assert sys.version_info >= (3, 5)
# TODO - this belongs in a configuration file somewhere other than here.
# PARSE radii data for C, N, O, S, H, Br, F, P are from Sitkoff et al's paper:
#
# Sitkoff D, Sharp KA, Honig B. Accurate Calculation of Hydration Free
# Energies Using Macroscopic Solvent Models. J Phys Chem 98 (7) 1978-88,
# 1994. J. Phys. Chem. 1994, 98, 7, 19781988
#
# See also the AMBER mailing list: http://amber.ch.ic.ac.uk/archive/.
#
# The van der Waals radius is used for chlorine.
PARSE_RADII = {
"C": 1.70, "N": 1.50, "O": 1.40, "S": 1.85, "H": 1.00, "Br":2.50,
"F": 1.20, "P": 1.90, "Cl": 1.75}
# When using these tables, the most specific Sybyl atom type should be used
# first and then the generic element should be used
RADII = {
# NOTE - these are not the original PARSE radii but they are the ones
# included in the previous version of PDB2PKA so I'm preserving them for
# posterity. There's a claim they came from
# http://amber.ch.ic.ac.uk/archive/ but that link no longer works.
"not parse - do not use": {
"C": 1.70, "N": 1.50, "O": 1.40, "S": 1.85, "H": 1.00, "Br": 2.50,
"F": 1.20, "P": 1.90, "Cl": 1.75},
# These are the PARSE radii from Table 4 of
# http://doi.org/10.1021/j100058a043
"parse": {
"C.1": 2.00, "C.2": 2.00, "C.3": 2.00, "C": 1.70, "H": 1.00,
"O": 1.40, "N": 1.50, "S": 1.85},
# These are the ZAP radii from Table 2 of
# http://doi.org/10.1021/jm070549%2B. Bondi radii should be used for
# atoms not found in this table.
"zap9": {
"C": 1.87, "H": 1.10, "O.co2": 1.76, "N": 1.40, "S": 2.15, "F": 2.40,
"Cl": 1.82, "I": 2.65},
# These are the Bondi radii from Table 2 of
# http://doi.org/10.1021/jm070549%2B
"bondi-zap": {
"C": 1.7, "H": 1.20, "O.co2": 1.52, "N": 1.55, "S": 1.80, "F": 1.47,
"Cl": 1.75, "I": 1.98},
# These are the Bondi radii from Table I of
# http://doi.org/10.1021/j100785a001. NOTE - there are some variations to
# the halogens in Table V that we might want to consider in the future.
"bondi": {
"H": 1.20, "He": 1.40, "C": 1.70, "N": 1.55, "O": 1.52, "F": 1.47,
"Ne": 1.54, "Si": 2.10, "P": 1.80, "S": 1.80, "Cl": 1.75, "Ar": 1.88,
"As": 1.85, "Se": 1.90, "Br": 1.85, "Kr": 2.02, "Te": 2.06, "I": 1.98,
"Xe": 2.16}
}
# Numbers of valence electrons for the groups of the periodic table
VALENCE_BY_GROUP = {1: 1, 2: 2, 13: 3, 14: 4, 15: 5, 16: 6, 17: 7, 18: 8}

View File

@@ -8,7 +8,9 @@ from collections import OrderedDict
from itertools import combinations
from numpy import array
from numpy.linalg import norm
from . import peoe
from . import VALENCE_BY_ELEMENT, NONBONDED_BY_TYPE
from . import RADII
_LOGGER = logging.getLogger(__name__)
@@ -105,6 +107,35 @@ class Mol2Atom:
)
return pdb_fmt.format(a=self)
def assign_radius(self, primary_dict, secondary_dict):
"""Assign radius to atom.
TODO - it seems inconsistent that this function pulls radii from a
dictionary and the protein routines use force field files.
Args:
primary_dict: primary dictionary of radii indexed by atom type or
element
secondary_dict: backup dictionary for radii not found in primary
dictionary
"""
radius = None
for rdict in [primary_dict, secondary_dict]:
if radius is not None:
break
for key in [self.type, self.element]:
if key in rdict:
radius = rdict[key]
break
if radius is not None:
self.radius = radius
else:
err = (
"Unable to find radius parameter for self of type {type} in "
"radius dictionary: {ff}").format(
type=self.type, ff=primary_dict)
raise KeyError(err)
@property
def coords(self):
"""Return coordinates as numpy vector."""
@@ -219,6 +250,38 @@ class Mol2Molecule:
self.res_name = None
self.res_seq = None
def assign_parameters(
self, primary_dict=RADII["zap9"], secondary_dict=RADII["bondi"]):
"""Assign charges and radii to atoms in molecule.
Args:
primary_dict: primary dictionary of radii indexed by atom type or
element
secondary_dict: backup dictionary for radii not found in primary
dictionary
"""
self.assign_radii(primary_dict, secondary_dict)
self.assign_charges()
def assign_radii(
self, primary_dict, secondary_dict):
"""Assign radii to atoms in molecule.
Args:
primary_dict: primary dictionary of radii indexed by atom type or
element
secondary_dict: backup dictionary for radii not found in primary
dictionary
"""
for atom in self.atoms.values():
atom.assign_radius(primary_dict, secondary_dict)
def assign_charges(self):
"""Assign charges to atoms in molecule."""
for atom in self.atoms.values():
atom.charge = atom.formal_charge
peoe.equilibrate(self.atoms.values())
def find_atom_torsions(self, start_atom):
"""Set the torsion angles that start with this atom (name).

View File

@@ -1,52 +0,0 @@
"""Calculating and assigning ligand charges and radii."""
import logging
from .mol2 import Mol2Molecule
from .peoe import equilibrate
from . import PARSE_RADII
from ..forcefield import ForcefieldAtom
from ..forcefield import ForcefieldResidue
_LOGGER = logging.getLogger(__name__)
class ParameterizedMolecule(Mol2Molecule):
"""Ligand with charge and radius assignments."""
def __init__(self):
super().__init__()
self.ligand_properties = {}
def update(self, ligand):
"""Update self with latest version of ligand (if needed).
Args:
ligand: latest version of ligand
"""
prev_atom_names = set(self.ligand_properties)
curr_atom_names = set(self.atoms)
if len(prev_atom_names ^ curr_atom_names) > 0:
self.reparameterize(ligand)
def reparameterize(self, ligand):
"""Reassign parameters given new ligand.
Args:
ligand: latest version of ligand
"""
self.ligand_properties = {}
for atom in ligand.atoms.values():
atom.charge = atom.formal_charge
equilibrate(ligand.atoms.values())
for atom in ligand.atoms.values():
elem = atom.element.capitalize()
charge = atom.charge
try:
radius = PARSE_RADII[elem]
atom.radius = radius
except KeyError:
raise KeyError(
"Unable to assign radius for element %s in atom %s" % (
elem, atom))
self.ligand_properties[atom.name] = {
"charge": charge, "radius": radius}

View File

@@ -20,7 +20,7 @@ from . import hydrogens
from . import forcefield
from . import protein as prot
from . import input_output as io
from .ligand.parameterize import ParameterizedMolecule
from .ligand.mol2 import Mol2Molecule
from . import input_output as io
from .config import VERSION, TITLE_FORMAT_STRING, CITATIONS, FORCE_FIELDS
from .config import REPAIR_LIMIT
@@ -263,7 +263,7 @@ def setup_molecule(pdblist, definition, ligand_path):
ligand: ligand object (may be None)
"""
if ligand_path is not None:
ligand = ParameterizedMolecule()
ligand = Mol2Molecule()
with open(ligand_path, "rt", encoding="utf-8") as ligand_file:
ligand.read(ligand_file)
raise NotImplementedError("Where do initial ligand charges come from?")

View File

@@ -88,483 +88,439 @@ FORMAL_CHARGE_RESULTS = {
"tetramethylammonium.mol2": 4*[0] + [1] + 12*[0]
}
PARTIAL_CHARGE_RESULTS = {
PARAMETER_RESULTS = {
"1HPX-ligand.mol2": [
{'name': 'C1', 'charge': -0.043081773453678196},
{'name': 'N1', 'charge': -0.35678069534508244},
{'name': 'O1', 'charge': -0.5711988943947174},
{'name': 'S1', 'charge': -0.36230725415046},
{'name': 'C2', 'charge': -0.07546448002333427},
{'name': 'N2', 'charge': -0.703336840791423},
{'name': 'O2', 'charge': -0.5909676444057169},
{'name': 'S2', 'charge': -0.31326568130416904},
{'name': 'C3', 'charge': 0.012184036151037315},
{'name': 'N3', 'charge': -0.7139711103762134},
{'name': 'O3', 'charge': -0.2919660371248733},
{'name': 'C4', 'charge': -0.024891112570323084},
{'name': 'N4', 'charge': -0.7120419698971743},
{'name': 'O4', 'charge': -0.2689251910425875},
{'name': 'C5', 'charge': -0.02721768449096584},
{'name': 'N5', 'charge': -0.7179288700589408},
{'name': 'O5', 'charge': -0.2884010361503686},
{'name': 'C6', 'charge': 0.0753432557874654},
{'name': 'O6', 'charge': -0.2912545916584642},
{'name': 'C7', 'charge': -0.06673754373256466},
{'name': 'C8', 'charge': -0.11391059914410395},
{'name': 'C9', 'charge': -0.10324637080138911},
{'name': 'C10', 'charge': 0.0955779782243598},
{'name': 'C11', 'charge': 0.13325937240601735},
{'name': 'C12', 'charge': -0.007454479991213576},
{'name': 'C13', 'charge': 0.1300074666489752},
{'name': 'C14', 'charge': 0.03316079200653884},
{'name': 'C15', 'charge': 0.1162788489650129},
{'name': 'C16', 'charge': -0.05012048448800629},
{'name': 'C17', 'charge': 0.17629988149001455},
{'name': 'C18', 'charge': 0.1273124481017021},
{'name': 'C19', 'charge': 0.009718364614545697},
{'name': 'C20', 'charge': 0.05373224349483613},
{'name': 'C21', 'charge': 0.14236781888812639},
{'name': 'C22', 'charge': -0.018858356195459093},
{'name': 'C23', 'charge': -0.08872387572707603},
{'name': 'C24', 'charge': -0.08872387572707603},
{'name': 'C25', 'charge': -0.08872387572707603},
{'name': 'C26', 'charge': 0.10593153852032608},
{'name': 'C27', 'charge': -0.05782750620937734},
{'name': 'C28', 'charge': -0.09940049289330599},
{'name': 'C29', 'charge': -0.11788247675515531},
{'name': 'C30', 'charge': -0.12669321002628098},
{'name': 'C31', 'charge': -0.12840215383108972},
{'name': 'C32', 'charge': -0.12669321002628098},
{'name': 'C33', 'charge': -0.11788247675515531},
{'name': 'HN2', 'charge': 0.47365062709293504},
{'name': 'HN3', 'charge': 0.46813799183459115},
{'name': 'HN5', 'charge': 0.4699450251195792},
{'name': 'HO2', 'charge': 0.4135083335659837},
{'name': 'H1', 'charge': 0.1930651515377243},
{'name': 'H2', 'charge': 0.14930498376978826},
{'name': 'H5', 'charge': 0.2004887586723136},
{'name': 'H7', 'charge': 0.1568207646303434},
{'name': 'H8', 'charge': 0.13234810374569977},
{'name': 'H9', 'charge': 0.13832988708343302},
{'name': '1H10', 'charge': 0.2090610332096663},
{'name': '2H10', 'charge': 0.2090610332096663},
{'name': '1H12', 'charge': 0.12111462041395545},
{'name': '2H12', 'charge': 0.12111462041395545},
{'name': 'H14', 'charge': 0.1675599590015787},
{'name': 'H15', 'charge': 0.22760838606623204},
{'name': '1H16', 'charge': 0.0852867334715187},
{'name': '2H16', 'charge': 0.0852867334715187},
{'name': 'H18', 'charge': 0.24317031751195953},
{'name': '1H19', 'charge': 0.12776560931027464},
{'name': '2H19', 'charge': 0.12776560931027464},
{'name': '1H20', 'charge': 0.19565330098691133},
{'name': '2H20', 'charge': 0.19565330098691133},
{'name': '1H23', 'charge': 0.05671902293773316},
{'name': '2H23', 'charge': 0.05671902293773316},
{'name': '3H23', 'charge': 0.05671902293773316},
{'name': '1H24', 'charge': 0.05671902293773316},
{'name': '2H24', 'charge': 0.05671902293773316},
{'name': '3H24', 'charge': 0.05671902293773316},
{'name': '1H25', 'charge': 0.05671902293773316},
{'name': '2H25', 'charge': 0.05671902293773316},
{'name': '3H25', 'charge': 0.05671902293773316},
{'name': 'H26', 'charge': 0.21276929701184144},
{'name': '1H27', 'charge': 0.0838296767957033},
{'name': '2H27', 'charge': 0.0838296767957033},
{'name': '3H27', 'charge': 0.0838296767957033},
{'name': 'H29', 'charge': 0.1344214537548114},
{'name': 'H30', 'charge': 0.12944135663694809},
{'name': 'H31', 'charge': 0.12895177093126134},
{'name': 'H32', 'charge': 0.12944135663694809},
{'name': 'H33', 'charge': 0.1344214537548114}],
{'name': 'C1', 'type': 'C.ar', 'charge': -0.043081773453678196, 'radius': 1.87},
{'name': 'N1', 'type': 'N.ar', 'charge': -0.35678069534508244, 'radius': 1.4},
{'name': 'O1', 'type': 'O.3', 'charge': -0.5711988943947174, 'radius': 1.52},
{'name': 'S1', 'type': 'S.3', 'charge': -0.36230725415046, 'radius': 2.15},
{'name': 'C2', 'type': 'C.ar', 'charge': -0.07546448002333427, 'radius': 1.87},
{'name': 'N2', 'type': 'N.am', 'charge': -0.703336840791423, 'radius': 1.4},
{'name': 'O2', 'type': 'O.3', 'charge': -0.5909676444057169, 'radius': 1.52},
{'name': 'S2', 'type': 'S.3', 'charge': -0.31326568130416904, 'radius': 2.15},
{'name': 'C3', 'type': 'C.ar', 'charge': 0.012184036151037315, 'radius': 1.87},
{'name': 'N3', 'type': 'N.am', 'charge': -0.7139711103762134, 'radius': 1.4},
{'name': 'O3', 'type': 'O.2', 'charge': -0.2919660371248733, 'radius': 1.52},
{'name': 'C4', 'type': 'C.ar', 'charge': -0.024891112570323084, 'radius': 1.87},
{'name': 'N4', 'type': 'N.am', 'charge': -0.7120419698971743, 'radius': 1.4},
{'name': 'O4', 'type': 'O.2', 'charge': -0.2689251910425875, 'radius': 1.52},
{'name': 'C5', 'type': 'C.ar', 'charge': -0.02721768449096584, 'radius': 1.87},
{'name': 'N5', 'type': 'N.am', 'charge': -0.7179288700589408, 'radius': 1.4},
{'name': 'O5', 'type': 'O.2', 'charge': -0.2884010361503686, 'radius': 1.52},
{'name': 'C6', 'type': 'C.ar', 'charge': 0.0753432557874654, 'radius': 1.87},
{'name': 'O6', 'type': 'O.2', 'charge': -0.2912545916584642, 'radius': 1.52},
{'name': 'C7', 'type': 'C.ar', 'charge': -0.06673754373256466, 'radius': 1.87},
{'name': 'C8', 'type': 'C.ar', 'charge': -0.11391059914410395, 'radius': 1.87},
{'name': 'C9', 'type': 'C.ar', 'charge': -0.10324637080138911, 'radius': 1.87},
{'name': 'C10', 'type': 'C.3', 'charge': 0.0955779782243598, 'radius': 1.87},
{'name': 'C11', 'type': 'C.2', 'charge': 0.13325937240601735, 'radius': 1.87},
{'name': 'C12', 'type': 'C.3', 'charge': -0.007454479991213576, 'radius': 1.87},
{'name': 'C13', 'type': 'C.2', 'charge': 0.1300074666489752, 'radius': 1.87},
{'name': 'C14', 'type': 'C.3', 'charge': 0.03316079200653884, 'radius': 1.87},
{'name': 'C15', 'type': 'C.3', 'charge': 0.1162788489650129, 'radius': 1.87},
{'name': 'C16', 'type': 'C.3', 'charge': -0.05012048448800629, 'radius': 1.87},
{'name': 'C17', 'type': 'C.2', 'charge': 0.17629988149001455, 'radius': 1.87},
{'name': 'C18', 'type': 'C.3', 'charge': 0.1273124481017021, 'radius': 1.87},
{'name': 'C19', 'type': 'C.3', 'charge': 0.009718364614545697, 'radius': 1.87},
{'name': 'C20', 'type': 'C.3', 'charge': 0.05373224349483613, 'radius': 1.87},
{'name': 'C21', 'type': 'C.2', 'charge': 0.14236781888812639, 'radius': 1.87},
{'name': 'C22', 'type': 'C.3', 'charge': -0.018858356195459093, 'radius': 1.87},
{'name': 'C23','type': 'C.3', 'charge': -0.08872387572707603, 'radius': 1.87},
{'name': 'C24', 'type': 'C.3', 'charge': -0.08872387572707603, 'radius': 1.87},
{'name': 'C25', 'type': 'C.3', 'charge': -0.08872387572707603, 'radius': 1.87},
{'name': 'C26', 'type': 'C.3', 'charge': 0.10593153852032608, 'radius': 1.87},
{'name': 'C27', 'type': 'C.3', 'charge': -0.05782750620937734, 'radius': 1.87},
{'name': 'C28', 'type': 'C.ar', 'charge': -0.09940049289330599, 'radius': 1.87},
{'name': 'C29', 'type': 'C.ar', 'charge': -0.11788247675515531, 'radius': 1.87},
{'name': 'C30', 'type': 'C.ar', 'charge': -0.12669321002628098, 'radius': 1.87},
{'name': 'C31', 'type': 'C.ar', 'charge': -0.12840215383108972, 'radius': 1.87},
{'name': 'C32', 'type': 'C.ar', 'charge': -0.12669321002628098, 'radius': 1.87},
{'name': 'C33', 'type': 'C.ar', 'charge': -0.11788247675515531, 'radius': 1.87},
{'name': 'HN2', 'type': 'H', 'charge': 0.47365062709293504, 'radius': 1.1},
{'name': 'HN3', 'type': 'H', 'charge': 0.46813799183459115, 'radius': 1.1},
{'name': 'HN5', 'type': 'H', 'charge': 0.4699450251195792, 'radius': 1.1},
{'name': 'HO2', 'type': 'H', 'charge': 0.4135083335659837, 'radius': 1.1},
{'name':'H1', 'type': 'H', 'charge': 0.1930651515377243, 'radius': 1.1},
{'name': 'H2', 'type': 'H', 'charge': 0.14930498376978826, 'radius': 1.1},
{'name': 'H5', 'type': 'H', 'charge': 0.2004887586723136, 'radius': 1.1},
{'name': 'H7', 'type': 'H', 'charge': 0.1568207646303434, 'radius': 1.1},
{'name': 'H8', 'type': 'H', 'charge': 0.13234810374569977, 'radius': 1.1},
{'name': 'H9', 'type': 'H', 'charge': 0.13832988708343302, 'radius': 1.1},
{'name': '1H10', 'type': 'H', 'charge': 0.2090610332096663, 'radius': 1.1},
{'name': '2H10', 'type': 'H', 'charge': 0.2090610332096663, 'radius': 1.1},
{'name': '1H12', 'type': 'H', 'charge': 0.12111462041395545, 'radius': 1.1},
{'name': '2H12', 'type': 'H', 'charge': 0.12111462041395545, 'radius': 1.1},
{'name': 'H14', 'type': 'H', 'charge': 0.1675599590015787, 'radius': 1.1},
{'name': 'H15', 'type': 'H', 'charge': 0.22760838606623204, 'radius': 1.1},
{'name': '1H16', 'type': 'H', 'charge': 0.0852867334715187, 'radius': 1.1},
{'name': '2H16', 'type': 'H', 'charge': 0.0852867334715187, 'radius': 1.1},
{'name': 'H18', 'type': 'H', 'charge': 0.24317031751195953, 'radius': 1.1},
{'name': '1H19', 'type': 'H', 'charge': 0.12776560931027464, 'radius': 1.1},
{'name': '2H19', 'type': 'H', 'charge': 0.12776560931027464, 'radius': 1.1},
{'name': '1H20', 'type': 'H', 'charge': 0.19565330098691133, 'radius': 1.1},
{'name': '2H20', 'type': 'H', 'charge': 0.19565330098691133, 'radius': 1.1},
{'name': '1H23', 'type': 'H', 'charge': 0.05671902293773316, 'radius': 1.1},
{'name': '2H23', 'type': 'H', 'charge': 0.05671902293773316, 'radius': 1.1},
{'name': '3H23', 'type': 'H', 'charge': 0.05671902293773316, 'radius': 1.1},
{'name': '1H24', 'type': 'H', 'charge': 0.05671902293773316, 'radius': 1.1},
{'name': '2H24', 'type': 'H', 'charge': 0.05671902293773316, 'radius': 1.1},
{'name': '3H24', 'type': 'H', 'charge': 0.05671902293773316, 'radius': 1.1},
{'name': '1H25', 'type': 'H', 'charge': 0.05671902293773316, 'radius': 1.1},
{'name': '2H25', 'type': 'H', 'charge': 0.05671902293773316, 'radius': 1.1},
{'name': '3H25', 'type': 'H', 'charge': 0.05671902293773316, 'radius': 1.1},
{'name': 'H26', 'type': 'H', 'charge': 0.21276929701184144, 'radius': 1.1},
{'name': '1H27', 'type': 'H', 'charge': 0.0838296767957033, 'radius': 1.1},
{'name': '2H27', 'type': 'H', 'charge': 0.0838296767957033, 'radius': 1.1},
{'name': '3H27', 'type': 'H', 'charge': 0.0838296767957033, 'radius': 1.1},
{'name': 'H29', 'type': 'H', 'charge': 0.1344214537548114, 'radius': 1.1},
{'name': 'H30', 'type': 'H', 'charge': 0.12944135663694809, 'radius': 1.1},
{'name': 'H31', 'type': 'H', 'charge': 0.12895177093126134, 'radius': 1.1},
{'name': 'H32', 'type': 'H', 'charge': 0.12944135663694809, 'radius': 1.1},
{'name': 'H33', 'type': 'H', 'charge': 0.1344214537548114, 'radius': 1.1}],
"1QBS-ligand.mol2": [
{'name': 'C1', 'charge': 0.2819290256115998},
{'name': 'C3', 'charge': 0.044938629062860544},
{'name': 'C4', 'charge': 0.029905546428555488},
{'name': 'C5', 'charge': 0.029905546428555488},
{'name': 'C6', 'charge': 0.044938629062860544},
{'name': 'C20', 'charge': 0.02388740859601932},
{'name': 'C21', 'charge': -0.06923087776665914},
{'name': 'C22', 'charge': -0.10856468032765192},
{'name': 'C23', 'charge': -0.11036338907520785},
{'name': 'C24', 'charge': -0.08244776383718133},
{'name': 'C25', 'charge': -0.11036338907520785},
{'name': 'C26', 'charge': -0.10856468032765192},
{'name': 'C27', 'charge': -0.021297911008685094},
{'name': 'C30', 'charge': -0.04323885537049762},
{'name': 'C31', 'charge': -0.09772541979676261},
{'name': 'C32', 'charge': -0.11774626937995367},
{'name': 'C33', 'charge': -0.12668933876013122},
{'name': 'C34', 'charge': -0.12840215383108972},
{'name': 'C35', 'charge': -0.12668933876013122},
{'name': 'C36', 'charge': -0.11774626937995367},
{'name': 'C60', 'charge': -0.04323885537049762},
{'name': 'C61', 'charge': -0.09772541979676261},
{'name': 'C62', 'charge': -0.11774626937995367},
{'name': 'C63', 'charge': -0.12668933876013122},
{'name': 'C64', 'charge': -0.12840215383108972},
{'name': 'C65', 'charge': -0.12668933876013122},
{'name': 'C66', 'charge': -0.11774626937995367},
{'name': 'C70', 'charge': 0.02388740859601932},
{'name': 'C71', 'charge': -0.06923087776665914},
{'name': 'C72', 'charge': -0.10856468032765192},
{'name': 'C73', 'charge': -0.11036338907520785},
{'name': 'C74', 'charge': -0.08244776383718133},
{'name': 'C75', 'charge': -0.11036338907520785},
{'name': 'C76', 'charge': -0.10856468032765192},
{'name': 'C77', 'charge': -0.021297911008685094},
{'name': 'N2', 'charge': -0.7121260761527837},
{'name': 'N7', 'charge': -0.7121260761527837},
{'name': 'O1', 'charge': -0.19835509547371977},
{'name': 'O4', 'charge': -0.6060823059727466},
{'name': 'O5', 'charge': -0.6060823059727466},
{'name': 'O27', 'charge': -0.6190964861641765},
{'name': 'O77', 'charge': -0.6190964861641765},
{'name': 'H1', 'charge': 0.1939484454048374},
{'name': 'H2', 'charge': 0.1783837779801701},
{'name': 'H3', 'charge': 0.1783837779801701},
{'name': 'H4', 'charge': 0.1939484454048374},
{'name': 'H5', 'charge': 0.1660607436631621},
{'name': 'H6', 'charge': 0.1660607436631621},
{'name': 'H7', 'charge': 0.13696512588510704},
{'name': 'H8', 'charge': 0.13656070949143695},
{'name': 'H9', 'charge': 0.13656070949143695},
{'name': 'H10', 'charge': 0.13696512588510704},
{'name': 'H11', 'charge': 0.1336796298532153},
{'name': 'H12', 'charge': 0.1336796298532153},
{'name': 'H13', 'charge': 0.08892832134853815},
{'name': 'H14', 'charge': 0.08892832134853815},
{'name': 'H15', 'charge': 0.13442892363549896},
{'name': 'H16', 'charge': 0.12944135663694809},
{'name': 'H17', 'charge': 0.12895177093126134},
{'name': 'H18', 'charge': 0.12944135663694809},
{'name': 'H19', 'charge': 0.13442892363549896},
{'name': 'H20', 'charge': 0.08892832134853815},
{'name': 'H21', 'charge': 0.08892832134853815},
{'name': 'H22', 'charge': 0.13442892363549896},
{'name': 'H23', 'charge': 0.12944135663694809},
{'name': 'H24', 'charge': 0.12895177093126134},
{'name': 'H25', 'charge': 0.12944135663694809},
{'name': 'H26', 'charge': 0.13442892363549896},
{'name': 'H27', 'charge': 0.1660607436631621},
{'name': 'H28', 'charge': 0.1660607436631621},
{'name': 'H29', 'charge': 0.13696512588510704},
{'name': 'H30', 'charge': 0.13656070949143695},
{'name': 'H31', 'charge': 0.13656070949143695},
{'name': 'H32', 'charge': 0.13696512588510704},
{'name': 'H33', 'charge': 0.1336796298532153},
{'name': 'H34', 'charge': 0.1336796298532153},
{'name': 'H35', 'charge': 0.4089032076940611},
{'name': 'H36', 'charge': 0.4089032076940611},
{'name': 'H37', 'charge': 0.40353983279195227},
{'name': 'H38', 'charge': 0.40353983279195227}],
{'name': 'C1', 'type': 'C.2', 'charge': 0.2819290256115998, 'radius': 1.87},
{'name': 'C3', 'type': 'C.3', 'charge': 0.044938629062860544, 'radius': 1.87},
{'name': 'C4', 'type': 'C.3', 'charge': 0.029905546428555488, 'radius': 1.87},
{'name': 'C5', 'type': 'C.3', 'charge': 0.029905546428555488, 'radius': 1.87},
{'name': 'C6', 'type': 'C.3', 'charge': 0.044938629062860544, 'radius': 1.87},
{'name': 'C20', 'type': 'C.3', 'charge': 0.02388740859601932, 'radius': 1.87},
{'name': 'C21', 'type': 'C.ar', 'charge': -0.06923087776665914, 'radius': 1.87},
{'name': 'C22', 'type': 'C.ar', 'charge': -0.10856468032765192, 'radius': 1.87},
{'name': 'C23', 'type': 'C.ar', 'charge': -0.11036338907520785, 'radius': 1.87},
{'name': 'C24', 'type': 'C.ar', 'charge': -0.08244776383718133, 'radius': 1.87},
{'name': 'C25', 'type': 'C.ar', 'charge': -0.11036338907520785, 'radius': 1.87},
{'name': 'C26', 'type': 'C.ar', 'charge': -0.10856468032765192, 'radius': 1.87},
{'name': 'C27', 'type': 'C.3', 'charge': -0.021297911008685094, 'radius': 1.87},
{'name': 'C30', 'type': 'C.3', 'charge': -0.04323885537049762, 'radius': 1.87},
{'name': 'C31', 'type': 'C.ar', 'charge': -0.09772541979676261, 'radius': 1.87},
{'name': 'C32', 'type': 'C.ar', 'charge': -0.11774626937995367, 'radius': 1.87},
{'name': 'C33', 'type': 'C.ar', 'charge': -0.12668933876013122, 'radius': 1.87},
{'name': 'C34', 'type': 'C.ar', 'charge': -0.12840215383108972, 'radius': 1.87},
{'name': 'C35', 'type': 'C.ar', 'charge': -0.12668933876013122, 'radius': 1.87},
{'name': 'C36', 'type': 'C.ar', 'charge': -0.11774626937995367, 'radius': 1.87},
{'name': 'C60', 'type': 'C.3', 'charge': -0.04323885537049762, 'radius': 1.87},
{'name': 'C61', 'type': 'C.ar', 'charge': -0.09772541979676261, 'radius': 1.87},
{'name': 'C62', 'type': 'C.ar', 'charge': -0.11774626937995367, 'radius': 1.87},
{'name': 'C63', 'type': 'C.ar', 'charge': -0.12668933876013122, 'radius': 1.87},
{'name': 'C64', 'type': 'C.ar', 'charge': -0.12840215383108972, 'radius': 1.87},
{'name': 'C65', 'type': 'C.ar', 'charge': -0.12668933876013122, 'radius': 1.87},
{'name': 'C66', 'type': 'C.ar', 'charge': -0.11774626937995367, 'radius': 1.87},
{'name': 'C70', 'type': 'C.3', 'charge': 0.02388740859601932, 'radius': 1.87},
{'name': 'C71', 'type': 'C.ar', 'charge': -0.06923087776665914, 'radius': 1.87},
{'name': 'C72', 'type': 'C.ar', 'charge': -0.10856468032765192, 'radius': 1.87},
{'name': 'C73', 'type': 'C.ar', 'charge': -0.11036338907520785, 'radius': 1.87},
{'name': 'C74', 'type': 'C.ar', 'charge': -0.08244776383718133, 'radius': 1.87},
{'name': 'C75', 'type': 'C.ar', 'charge': -0.11036338907520785, 'radius': 1.87},
{'name': 'C76', 'type': 'C.ar', 'charge': -0.10856468032765192, 'radius': 1.87},
{'name': 'C77', 'type': 'C.3', 'charge': -0.021297911008685094, 'radius': 1.87},
{'name': 'N2', 'type': 'N.am', 'charge': -0.7121260761527837, 'radius': 1.4},
{'name': 'N7', 'type': 'N.am', 'charge': -0.7121260761527837, 'radius': 1.4},
{'name': 'O1', 'type': 'O.2', 'charge': -0.19835509547371977, 'radius': 1.52},
{'name': 'O4', 'type': 'O.3', 'charge': -0.6060823059727466, 'radius': 1.52},
{'name': 'O5', 'type': 'O.3', 'charge': -0.6060823059727466, 'radius': 1.52},
{'name': 'O27', 'type': 'O.3', 'charge': -0.6190964861641765, 'radius': 1.52},
{'name': 'O77', 'type': 'O.3', 'charge': -0.6190964861641765, 'radius': 1.52},
{'name': 'H1', 'type': 'H', 'charge': 0.1939484454048374, 'radius': 1.1},
{'name': 'H2', 'type': 'H', 'charge': 0.1783837779801701, 'radius': 1.1},
{'name': 'H3', 'type': 'H', 'charge': 0.1783837779801701, 'radius': 1.1},
{'name': 'H4', 'type': 'H', 'charge': 0.1939484454048374, 'radius': 1.1},
{'name': 'H5', 'type': 'H', 'charge': 0.1660607436631621, 'radius': 1.1},
{'name': 'H6', 'type': 'H', 'charge': 0.1660607436631621, 'radius': 1.1},
{'name': 'H7', 'type': 'H', 'charge': 0.13696512588510704, 'radius': 1.1},
{'name': 'H8', 'type': 'H', 'charge': 0.13656070949143695, 'radius': 1.1},
{'name': 'H9', 'type': 'H', 'charge': 0.13656070949143695, 'radius': 1.1},
{'name': 'H10', 'type': 'H', 'charge': 0.13696512588510704, 'radius': 1.1},
{'name': 'H11', 'type': 'H', 'charge': 0.1336796298532153, 'radius': 1.1},
{'name': 'H12', 'type': 'H', 'charge': 0.1336796298532153, 'radius': 1.1},
{'name': 'H13', 'type': 'H', 'charge': 0.08892832134853815, 'radius': 1.1},
{'name': 'H14', 'type': 'H', 'charge': 0.08892832134853815, 'radius': 1.1},
{'name': 'H15', 'type': 'H', 'charge': 0.13442892363549896, 'radius': 1.1},
{'name': 'H16', 'type': 'H', 'charge': 0.12944135663694809, 'radius': 1.1},
{'name': 'H17', 'type': 'H', 'charge': 0.12895177093126134, 'radius': 1.1},
{'name': 'H18', 'type': 'H', 'charge': 0.12944135663694809, 'radius': 1.1},
{'name': 'H19', 'type': 'H', 'charge': 0.13442892363549896, 'radius': 1.1},
{'name': 'H20', 'type': 'H', 'charge': 0.08892832134853815, 'radius': 1.1},
{'name': 'H21', 'type': 'H', 'charge': 0.08892832134853815, 'radius': 1.1},
{'name': 'H22', 'type': 'H', 'charge': 0.13442892363549896, 'radius': 1.1},
{'name': 'H23', 'type': 'H', 'charge': 0.12944135663694809, 'radius': 1.1},
{'name': 'H24', 'type': 'H', 'charge': 0.12895177093126134, 'radius': 1.1},
{'name': 'H25', 'type': 'H', 'charge': 0.12944135663694809, 'radius': 1.1},
{'name': 'H26', 'type': 'H', 'charge': 0.13442892363549896, 'radius': 1.1},
{'name': 'H27', 'type': 'H', 'charge': 0.1660607436631621, 'radius': 1.1},
{'name': 'H28', 'type': 'H', 'charge': 0.1660607436631621, 'radius': 1.1},
{'name': 'H29', 'type': 'H', 'charge': 0.13696512588510704, 'radius': 1.1},
{'name': 'H30', 'type': 'H', 'charge': 0.13656070949143695, 'radius': 1.1},
{'name': 'H31', 'type': 'H', 'charge': 0.13656070949143695, 'radius': 1.1},
{'name': 'H32', 'type': 'H', 'charge': 0.13696512588510704, 'radius': 1.1},
{'name': 'H33', 'type': 'H', 'charge': 0.1336796298532153, 'radius': 1.1},
{'name': 'H34', 'type': 'H', 'charge': 0.1336796298532153, 'radius': 1.1},
{'name': 'H35', 'type': 'H', 'charge': 0.4089032076940611, 'radius': 1.1},
{'name': 'H36', 'type': 'H', 'charge': 0.4089032076940611, 'radius': 1.1},
{'name': 'H37', 'type': 'H', 'charge': 0.40353983279195227, 'radius': 1.1},
{'name': 'H38', 'type': 'H', 'charge': 0.40353983279195227, 'radius': 1.1}],
"1US0-ligand.mol2": [
{'name': 'C2', 'charge': -0.011692507946738866},
{'name': 'C3', 'charge': -0.07564532850595106},
{'name': 'C4', 'charge': 0.0995106215449818},
{'name': 'C5', 'charge': 0.087912610051304},
{'name': 'C6', 'charge': -0.06822502752899269},
{'name': 'C7', 'charge': 0.071206877934909},
{'name': 'BR8', 'charge': -0.1781415724110881},
{'name': 'F9', 'charge': -0.24609828999108224},
{'name': 'C11', 'charge': 0.01969593460035858},
{'name': 'C13', 'charge': -0.012644223822613768},
{'name': 'F14', 'charge': -0.24298404863346873},
{'name': 'O15', 'charge': -0.564853763228142},
{'name': 'S16', 'charge': -0.08677321834382315},
{'name': 'N17', 'charge': -0.5406144014197267},
{'name': 'C20', 'charge': 0.11379374529001238},
{'name': 'C24', 'charge': -0.025165867794008426},
{'name': 'C25', 'charge': 0.05247378966494793},
{'name': 'C26', 'charge': -0.09820934352177407},
{'name': 'C27', 'charge': 0.09943434454444673},
{'name': 'C28', 'charge': -0.030058244343191105},
{'name': 'C29', 'charge': -0.08190135488592247},
{'name': 'C32', 'charge': 0.13523301177634597},
{'name': 'O33', 'charge': -0.6823845278785808},
{'name': 'O34', 'charge': -0.6823845278785808},
{'name': 'H1', 'charge': 0.1785741592725812},
{'name': 'H2', 'charge': 0.1460165676666413},
{'name': 'H3', 'charge': 0.15178137252163487},
{'name': 'H4', 'charge': 0.12305674443192938},
{'name': 'H5', 'charge': 0.12305674443192938},
{'name': 'H6', 'charge': 0.3361191041929824},
{'name': 'H7', 'charge': 0.21824692354069947},
{'name': 'H8', 'charge': 0.21824692354069947},
{'name': 'H9', 'charge': 0.13902103205782942},
{'name': 'H10', 'charge': 0.16785538090669733},
{'name': 'H11', 'charge': 0.14654036016275432}],
{'name': 'C2', 'type': 'C.ar', 'charge': -0.011692507946738866, 'radius': 1.87},
{'name': 'C3', 'type': 'C.ar', 'charge': -0.07564532850595106, 'radius': 1.87},
{'name': 'C4', 'type': 'C.ar', 'charge': 0.0995106215449818, 'radius': 1.87},
{'name': 'C5', 'type': 'C.ar', 'charge': 0.087912610051304, 'radius': 1.87},
{'name': 'C6', 'type': 'C.ar', 'charge': -0.06822502752899269, 'radius': 1.87},
{'name': 'C7', 'type': 'C.ar', 'charge': 0.071206877934909, 'radius': 1.87},
{'name': 'BR8', 'type': 'Br', 'charge': -0.1781415724110881, 'radius': 1.85},
{'name': 'F9', 'type': 'F', 'charge': -0.24609828999108224, 'radius': 2.4},
{'name': 'C11', 'type': 'C.2', 'charge': 0.01969593460035858, 'radius': 1.87},
{'name': 'C13', 'type': 'C.3', 'charge': -0.012644223822613768, 'radius': 1.87},
{'name': 'F14', 'type': 'F', 'charge': -0.24298404863346873, 'radius': 2.4},
{'name': 'O15', 'type': 'O.3', 'charge': -0.564853763228142, 'radius': 1.52},
{'name': 'S16', 'type': 'S.3', 'charge': -0.08677321834382315, 'radius': 2.15},
{'name': 'N17', 'type': 'N.pl3', 'charge': -0.5406144014197267, 'radius': 1.4},
{'name': 'C20', 'type': 'C.3', 'charge': 0.11379374529001238, 'radius': 1.87},
{'name': 'C24', 'type': 'C.ar', 'charge': -0.025165867794008426, 'radius': 1.87},
{'name': 'C25', 'type': 'C.ar', 'charge': 0.05247378966494793, 'radius': 1.87},
{'name': 'C26', 'type': 'C.ar', 'charge': -0.09820934352177407, 'radius': 1.87},
{'name': 'C27', 'type': 'C.ar', 'charge': 0.09943434454444673, 'radius': 1.87},
{'name': 'C28', 'type': 'C.ar', 'charge': -0.030058244343191105, 'radius': 1.87},
{'name': 'C29', 'type': 'C.ar', 'charge': -0.08190135488592247, 'radius': 1.87},
{'name': 'C32', 'type': 'C.2', 'charge': 0.13523301177634597, 'radius': 1.87},
{'name': 'O33', 'type': 'O.co2', 'charge': -0.6823845278785808, 'radius': 1.76},
{'name': 'O34', 'type': 'O.co2', 'charge': -0.6823845278785808, 'radius': 1.76},
{'name': 'H1', 'type': 'H', 'charge': 0.1785741592725812, 'radius': 1.1},
{'name': 'H2', 'type': 'H', 'charge': 0.1460165676666413, 'radius': 1.1},
{'name': 'H3', 'type': 'H', 'charge': 0.15178137252163487, 'radius': 1.1},
{'name': 'H4', 'type': 'H', 'charge': 0.12305674443192938, 'radius': 1.1},
{'name': 'H5', 'type': 'H', 'charge': 0.12305674443192938, 'radius': 1.1},
{'name': 'H6', 'type': 'H', 'charge': 0.3361191041929824, 'radius': 1.1},
{'name': 'H7', 'type': 'H', 'charge': 0.21824692354069947, 'radius': 1.1},
{'name': 'H8', 'type': 'H', 'charge': 0.21824692354069947, 'radius': 1.1},
{'name': 'H9', 'type': 'H', 'charge': 0.13902103205782942, 'radius': 1.1},
{'name': 'H10', 'type': 'H', 'charge': 0.16785538090669733, 'radius': 1.1},
{'name': 'H11', 'type': 'H', 'charge': 0.14654036016275432, 'radius': 1.1}],
"acetate.mol2": [
{'name': 'OAC', 'charge': -0.6920003959699945},
{'name': 'CAB', 'charge': 0.08786702981704235},
{'name': 'OAD', 'charge': -0.6920003959699945},
{'name': 'CAA', 'charge': -0.007013553584021696},
{'name': 'HAB', 'charge': 0.10104910523565629},
{'name': 'HAC', 'charge': 0.10104910523565629},
{'name': 'HAA', 'charge': 0.10104910523565629}],
{'name': 'OAC', 'type': 'O.co2', 'charge': -0.6920003959699945, 'radius': 1.76},
{'name': 'CAB', 'type': 'C.2', 'charge': 0.08786702981704235, 'radius': 1.87},
{'name': 'OAD', 'type': 'O.co2', 'charge': -0.6920003959699945, 'radius': 1.76},
{'name': 'CAA', 'type': 'C.3', 'charge': -0.007013553584021696, 'radius': 1.87},
{'name': 'HAB', 'type': 'H', 'charge': 0.10104910523565629, 'radius': 1.1},
{'name': 'HAC', 'type': 'H', 'charge': 0.10104910523565629, 'radius': 1.1},
{'name': 'HAA', 'type': 'H', 'charge': 0.10104910523565629, 'radius': 1.1}],
"acetonitrile.mol2": [
{'name': 'NAC', 'charge': -0.3658493397941428},
{'name': 'CAB', 'charge': 0.047166532439326746},
{'name': 'CAA', 'charge': 0.0031209482290866543},
{'name': 'HAB', 'charge': 0.10518728637524313},
{'name': 'HAC', 'charge': 0.10518728637524313},
{'name': 'HAA', 'charge': 0.10518728637524313}],
{'name': 'NAC', 'type': 'N.1', 'charge': -0.3658493397941428, 'radius': 1.4},
{'name': 'CAB', 'type': 'C.1', 'charge': 0.047166532439326746, 'radius': 1.87},
{'name': 'CAA', 'type': 'C.3', 'charge': 0.0031209482290866543, 'radius': 1.87},
{'name': 'HAB', 'type': 'H', 'charge': 0.10518728637524313, 'radius': 1.1},
{'name': 'HAC', 'type': 'H', 'charge': 0.10518728637524313, 'radius': 1.1},
{'name': 'HAA', 'type': 'H', 'charge': 0.10518728637524313, 'radius': 1.1}],
"acetylcholine.mol2": [
{'name': 'CAI', 'charge': -0.008419213752965279},
{'name': 'HAK', 'charge': 0.09728030818644891},
{'name': 'HAL', 'charge': 0.09728030818644891},
{'name': 'HAM', 'charge': 0.09728030818644891},
{'name': 'CAH', 'charge': 0.1545682666391745},
{'name': 'OAB', 'charge': -0.27967627950752316},
{'name': 'OAG', 'charge': -0.5429502778137623},
{'name': 'CAF', 'charge': 0.037889841506971396},
{'name': 'HAI', 'charge': 0.1710371780188628},
{'name': 'HAJ', 'charge': 0.1710371780188628},
{'name': 'CAE', 'charge': 0.0572339093088662},
{'name': 'HAG', 'charge': 0.16582144135089144},
{'name': 'HAH', 'charge': 0.16582144135089144},
{'name': 'NAD', 'charge': -0.6101582744216567},
{'name': 'CAJ', 'charge': 0.016251330821632083},
{'name': 'HAO', 'charge': 0.13079998580857152},
{'name': 'HAP', 'charge': 0.13079998580857152},
{'name': 'HAN', 'charge': 0.13079998580857152},
{'name': 'CAA', 'charge': 0.016251330821632083},
{'name': 'HAB', 'charge': 0.13079998580857152},
{'name': 'HAC', 'charge': 0.13079998580857152},
{'name': 'HAA', 'charge': 0.13079998580857152},
{'name': 'CAC', 'charge': 0.016251330821632083},
{'name': 'HAE', 'charge': 0.13079998580857152},
{'name': 'HAF', 'charge': 0.13079998580857152},
{'name': 'HAD', 'charge': 0.13079998580857152}],
{'name': 'CAI', 'type': 'C.3', 'charge': -0.008419213752965279, 'radius': 1.87},
{'name': 'HAK', 'type': 'H', 'charge': 0.09728030818644891, 'radius': 1.1},
{'name': 'HAL', 'type': 'H', 'charge': 0.09728030818644891, 'radius': 1.1},
{'name': 'HAM', 'type': 'H', 'charge': 0.09728030818644891, 'radius': 1.1},
{'name': 'CAH', 'type': 'C.2', 'charge': 0.1545682666391745, 'radius': 1.87},
{'name': 'OAB', 'type': 'O.2', 'charge': -0.27967627950752316, 'radius': 1.52},
{'name': 'OAG', 'type': 'O.3', 'charge': -0.5429502778137623, 'radius': 1.52},
{'name': 'CAF', 'type': 'C.3', 'charge': 0.037889841506971396, 'radius': 1.87},
{'name': 'HAI', 'type': 'H', 'charge': 0.1710371780188628, 'radius': 1.1},
{'name': 'HAJ', 'type': 'H', 'charge': 0.1710371780188628, 'radius': 1.1},
{'name': 'CAE', 'type': 'C.3', 'charge': 0.0572339093088662, 'radius': 1.87},
{'name': 'HAG', 'type': 'H', 'charge': 0.16582144135089144, 'radius': 1.1},
{'name': 'HAH', 'type': 'H', 'charge': 0.16582144135089144, 'radius': 1.1},
{'name': 'NAD', 'type': 'N.3', 'charge': -0.6101582744216567, 'radius': 1.4},
{'name': 'CAJ', 'type': 'C.3', 'charge': 0.016251330821632083, 'radius': 1.87},
{'name': 'HAO', 'type': 'H', 'charge': 0.13079998580857152, 'radius': 1.1},
{'name': 'HAP', 'type': 'H', 'charge': 0.13079998580857152, 'radius': 1.1},
{'name': 'HAN', 'type': 'H', 'charge': 0.13079998580857152, 'radius': 1.1},
{'name': 'CAA', 'type': 'C.3', 'charge': 0.016251330821632083, 'radius': 1.87},
{'name': 'HAB', 'type': 'H', 'charge': 0.13079998580857152, 'radius': 1.1},
{'name': 'HAC', 'type': 'H', 'charge': 0.13079998580857152, 'radius': 1.1},
{'name': 'HAA', 'type': 'H', 'charge': 0.13079998580857152, 'radius': 1.1},
{'name': 'CAC', 'type': 'C.3', 'charge': 0.016251330821632083, 'radius': 1.87},
{'name': 'HAE', 'type': 'H', 'charge': 0.13079998580857152, 'radius': 1.1},
{'name': 'HAF', 'type': 'H', 'charge': 0.13079998580857152, 'radius': 1.1},
{'name': 'HAD', 'type': 'H', 'charge': 0.13079998580857152, 'radius': 1.1}],
"adp.mol2": [
{'name': 'O2B', 'charge': -0.9292599002864984},
{'name': 'PB', 'charge': 0.2901422925812394},
{'name': 'O3B', 'charge': -0.15563495903544203},
{'name': 'O1B', 'charge': -0.10031235497346548},
{'name': 'O3A', 'charge': -0.22961271227927002},
{'name': 'PA', 'charge': 0.20924046046691175},
{'name': 'O2A', 'charge': -0.9415448332469695},
{'name': 'O1A', 'charge': -0.11862974402094492},
{'name': "O5'", 'charge': -0.46621302263040854},
{'name': "C5'", 'charge': 0.0798878056064067},
{'name': "H5'", 'charge': 0.18839134309240957},
{'name': 'H5S', 'charge': 0.18839134309240957},
{'name': "C4'", 'charge': 0.0695445224862847},
{'name': "H4'", 'charge': 0.20776211836320221},
{'name': "O4'", 'charge': -0.5870759018169631},
{'name': "C3'", 'charge': 0.03852622354001534},
{'name': "H3'", 'charge': 0.17992130819444715},
{'name': "O3'", 'charge': -0.6050957763635193},
{'name': 'H8L', 'charge': 0.408917570005205},
{'name': "C2'", 'charge': 0.04785444900747468},
{'name': "H2'", 'charge': 0.18698431697045484},
{'name': "O2'", 'charge': -0.6030269458228865},
{'name': 'H8M', 'charge': 0.40956200683924104},
{'name': "C1'", 'charge': 0.1072884172431409},
{'name': "H1'", 'charge': 0.25190824252954014},
{'name': 'N9', 'charge': -0.32267909962343944},
{'name': 'C8', 'charge': 0.03749022549830809},
{'name': 'H8', 'charge': 0.24861896888732188},
{'name': 'N7', 'charge': -0.2902489369083555},
{'name': 'C5', 'charge': 0.15701292932781932},
{'name': 'C4', 'charge': 0.16341092847650182},
{'name': 'N3', 'charge': -0.28837259982632546},
{'name': 'C2', 'charge': 0.00966560470099504},
{'name': 'H2', 'charge': 0.23340110948012485},
{'name': 'N1', 'charge': -0.3751603212355695},
{'name': 'H1', 'charge': 0.2881016272229071},
{'name': 'C6', 'charge': 0.10850097968415028},
{'name': 'N6', 'charge': -0.46957750571325696},
{'name': 'H6', 'charge': 0.3719198204868037}],
{'name': 'O2B', 'type': 'O.3', 'charge': -0.9292599002864984, 'radius': 1.52},
{'name': 'PB', 'type': 'P.3', 'charge': 0.2901422925812394, 'radius': 1.8},
{'name': 'O3B', 'type': 'O.3', 'charge': -0.15563495903544203, 'radius': 1.52},
{'name': 'O1B', 'type': 'O.2', 'charge': -0.10031235497346548, 'radius': 1.52},
{'name': 'O3A', 'type': 'O.3', 'charge': -0.22961271227927002, 'radius': 1.52},
{'name': 'PA', 'type': 'P.3', 'charge': 0.20924046046691175, 'radius': 1.8},
{'name': 'O2A', 'type': 'O.3', 'charge': -0.9415448332469695, 'radius': 1.52},
{'name': 'O1A', 'type': 'O.2', 'charge': -0.11862974402094492, 'radius': 1.52},
{'name': "O5'", 'type': 'O.3', 'charge': -0.46621302263040854, 'radius': 1.52},
{'name': "C5'", 'type': 'C.3', 'charge': 0.0798878056064067, 'radius': 1.87},
{'name': "H5'", 'type': 'H', 'charge': 0.18839134309240957, 'radius': 1.1},
{'name': 'H5S', 'type': 'H', 'charge': 0.18839134309240957, 'radius': 1.1},
{'name': "C4'", 'type': 'C.3', 'charge': 0.0695445224862847, 'radius': 1.87},
{'name': "H4'", 'type': 'H', 'charge': 0.20776211836320221, 'radius': 1.1},
{'name': "O4'", 'type': 'O.3', 'charge': -0.5870759018169631, 'radius': 1.52},
{'name': "C3'", 'type': 'C.3', 'charge': 0.03852622354001534, 'radius': 1.87},
{'name': "H3'", 'type': 'H', 'charge': 0.17992130819444715, 'radius': 1.1},
{'name': "O3'", 'type': 'O.3', 'charge': -0.6050957763635193, 'radius': 1.52},
{'name': 'H8L', 'type': 'H', 'charge': 0.408917570005205, 'radius': 1.1},
{'name': "C2'", 'type': 'C.3', 'charge': 0.04785444900747468, 'radius': 1.87},
{'name': "H2'", 'type': 'H', 'charge': 0.18698431697045484, 'radius': 1.1},
{'name': "O2'", 'type': 'O.3', 'charge': -0.6030269458228865, 'radius': 1.52},
{'name': 'H8M', 'type': 'H', 'charge': 0.40956200683924104, 'radius': 1.1},
{'name': "C1'", 'type': 'C.3', 'charge': 0.1072884172431409, 'radius': 1.87},
{'name': "H1'", 'type': 'H', 'charge': 0.25190824252954014, 'radius': 1.1},
{'name': 'N9', 'type': 'N.ar', 'charge': -0.32267909962343944, 'radius': 1.4},
{'name': 'C8', 'type': 'C.ar', 'charge': 0.03749022549830809, 'radius': 1.87},
{'name': 'H8', 'type': 'H', 'charge': 0.24861896888732188, 'radius': 1.1},
{'name': 'N7', 'type': 'N.ar', 'charge': -0.2902489369083555, 'radius': 1.4},
{'name': 'C5', 'type': 'C.ar', 'charge': 0.15701292932781932, 'radius': 1.87},
{'name': 'C4', 'type': 'C.ar', 'charge': 0.16341092847650182, 'radius': 1.87},
{'name': 'N3', 'type': 'N.ar', 'charge': -0.28837259982632546, 'radius': 1.4},
{'name': 'C2', 'type': 'C.ar', 'charge': 0.00966560470099504, 'radius': 1.87},
{'name': 'H2', 'type': 'H', 'charge': 0.23340110948012485, 'radius': 1.1},
{'name': 'N1', 'type': 'N.ar', 'charge': -0.3751603212355695, 'radius': 1.4},
{'name': 'H1', 'type': 'H', 'charge': 0.2881016272229071, 'radius': 1.1},
{'name': 'C6', 'type': 'C.ar', 'charge': 0.10850097968415028, 'radius': 1.87},
{'name': 'N6', 'type': 'N.2', 'charge': -0.46957750571325696, 'radius': 1.4},
{'name': 'H6', 'type': 'H', 'charge': 0.3719198204868037, 'radius': 1.1}],
"anthracene.mol2": [
{'name': 'CAB', 'charge': -0.10948195185220932},
{'name': 'HAB', 'charge': 0.13718781330297145},
{'name': 'CAC', 'charge': -0.05951797220652635},
{'name': 'CAD', 'charge': -0.090739817012503},
{'name': 'HAD', 'charge': 0.14537539214857495},
{'name': 'CAE', 'charge': -0.05951797220652635},
{'name': 'CAF', 'charge': -0.10948195185220932},
{'name': 'HAF', 'charge': 0.13718781330297145},
{'name': 'CAG', 'charge': -0.1252004685570065},
{'name': 'HAG', 'charge': 0.12969479174473472},
{'name': 'CAN', 'charge': -0.1252004685570065},
{'name': 'HAN', 'charge': 0.12969479174473472},
{'name': 'CAM', 'charge': -0.10948195185220932},
{'name': 'HAM', 'charge': 0.13718781330297145},
{'name': 'CAL', 'charge': -0.05951797220652635},
{'name': 'CAK', 'charge': -0.090739817012503},
{'name': 'HAK', 'charge': 0.14537539214857495},
{'name': 'CAJ', 'charge': -0.05951797220652635},
{'name': 'CAI', 'charge': -0.10948195185220932},
{'name': 'HAI', 'charge': 0.13718781330297145},
{'name': 'CAH', 'charge': -0.1252004685570065},
{'name': 'HAH', 'charge': 0.12969479174473472},
{'name': 'CAA', 'charge': -0.1252004685570065},
{'name': 'HAA', 'charge': 0.12969479174473472}],
"crown-ether.mol2": [
{'name': 'CAB', 'charge': -0.0020089927963956975},
{'name': 'HAB', 'charge': 0.1571150829116664},
{'name': 'HAC', 'charge': 0.1571150829116664},
{'name': 'OAA', 'charge': -0.6244423460538743},
{'name': 'CAH', 'charge': -0.002008992796395719},
{'name': 'HAJ', 'charge': 0.1571150829116664},
{'name': 'HAK', 'charge': 0.1571150829116664},
{'name': 'CAJ', 'charge': -0.0020089927963956975},
{'name': 'HAN', 'charge': 0.1571150829116664},
{'name': 'HAO', 'charge': 0.1571150829116664},
{'name': 'OAL', 'charge': -0.6244423460538743},
{'name': 'CAM', 'charge': -0.002008992796395719},
{'name': 'HAR', 'charge': 0.1571150829116664},
{'name': 'HAS', 'charge': 0.1571150829116664},
{'name': 'CAN', 'charge': -0.0020089927963956975},
{'name': 'HAT', 'charge': 0.1571150829116664},
{'name': 'HAU', 'charge': 0.1571150829116664},
{'name': 'OAO', 'charge': -0.6244423460538743},
{'name': 'CAP', 'charge': -0.002008992796395719},
{'name': 'HAV', 'charge': 0.1571150829116664},
{'name': 'HAW', 'charge': 0.1571150829116664},
{'name': 'CAQ', 'charge': -0.0020089927963956975},
{'name': 'HAX', 'charge': 0.1571150829116664},
{'name': 'HAY', 'charge': 0.1571150829116664},
{'name': 'OAR', 'charge': -0.6244423460538743},
{'name': 'CAK', 'charge': -0.002008992796395719},
{'name': 'HAP', 'charge': 0.1571150829116664},
{'name': 'HAQ', 'charge': 0.1571150829116664},
{'name': 'CAI', 'charge': -0.0020089927963956975},
{'name': 'HAL', 'charge': 0.1571150829116664},
{'name': 'HAM', 'charge': 0.1571150829116664},
{'name': 'OAG', 'charge': -0.6244423460538743},
{'name': 'CAF', 'charge': -0.002008992796395719},
{'name': 'HAH', 'charge': 0.1571150829116664},
{'name': 'HAI', 'charge': 0.1571150829116664},
{'name': 'CAE', 'charge': -0.0020089927963956975},
{'name': 'HAF', 'charge': 0.1571150829116664},
{'name': 'HAG', 'charge': 0.1571150829116664},
{'name': 'OAD', 'charge': -0.6244423460538743},
{'name': 'CAC', 'charge': -0.002008992796395719},
{'name': 'HAE', 'charge': 0.1571150829116664},
{'name': 'HAD', 'charge': 0.1571150829116664}],
"cyclohexane.mol2": [
{'name': 'CAA', 'charge': -0.10295775116564801},
{'name': 'HAA', 'charge': 0.051478875582824005},
{'name': 'HAB', 'charge': 0.051478875582824005},
{'name': 'CAB', 'charge': -0.10295775116564801},
{'name': 'HAC', 'charge': 0.051478875582824005},
{'name': 'HAD', 'charge': 0.051478875582824005},
{'name': 'CAC', 'charge': -0.10295775116564801},
{'name': 'HAE', 'charge': 0.051478875582824005},
{'name': 'HAF', 'charge': 0.051478875582824005},
{'name': 'CAF', 'charge': -0.10295775116564801},
{'name': 'HAK', 'charge': 0.051478875582824005},
{'name': 'HAL', 'charge': 0.051478875582824005},
{'name': 'CAE', 'charge': -0.10295775116564801},
{'name': 'HAI', 'charge': 0.051478875582824005},
{'name': 'HAJ', 'charge': 0.051478875582824005},
{'name': 'CAD', 'charge': -0.10295775116564801},
{'name': 'HAH', 'charge': 0.051478875582824005},
{'name': 'HAG', 'charge': 0.051478875582824005}],
{'name': 'CAB', 'type': 'C.ar', 'charge': -0.10948195185220932, 'radius': 1.87},
{'name': 'HAB', 'type': 'H', 'charge': 0.13718781330297145, 'radius': 1.1},
{'name': 'CAC', 'type': 'C.ar', 'charge': -0.05951797220652635, 'radius': 1.87},
{'name': 'CAD', 'type': 'C.ar', 'charge': -0.090739817012503, 'radius': 1.87},
{'name': 'HAD', 'type': 'H', 'charge': 0.14537539214857495, 'radius': 1.1},
{'name': 'CAE', 'type': 'C.ar', 'charge': -0.05951797220652635, 'radius': 1.87},
{'name': 'CAF', 'type': 'C.ar', 'charge': -0.10948195185220932, 'radius': 1.87},
{'name': 'HAF', 'type': 'H', 'charge': 0.13718781330297145, 'radius': 1.1},
{'name': 'CAG', 'type': 'C.ar', 'charge': -0.1252004685570065, 'radius': 1.87},
{'name': 'HAG', 'type': 'H', 'charge': 0.12969479174473472, 'radius': 1.1},
{'name': 'CAN', 'type': 'C.ar', 'charge': -0.1252004685570065, 'radius': 1.87},
{'name': 'HAN', 'type': 'H', 'charge': 0.12969479174473472, 'radius': 1.1},
{'name': 'CAM', 'type': 'C.ar', 'charge': -0.10948195185220932, 'radius': 1.87},
{'name': 'HAM', 'type': 'H', 'charge': 0.13718781330297145, 'radius': 1.1},
{'name': 'CAL', 'type': 'C.ar', 'charge': -0.05951797220652635, 'radius': 1.87},
{'name': 'CAK', 'type': 'C.ar', 'charge': -0.090739817012503, 'radius': 1.87},
{'name': 'HAK', 'type': 'H', 'charge': 0.14537539214857495, 'radius': 1.1},
{'name': 'CAJ', 'type': 'C.ar', 'charge': -0.05951797220652635, 'radius': 1.87},
{'name': 'CAI', 'type': 'C.ar', 'charge': -0.10948195185220932, 'radius': 1.87},
{'name': 'HAI', 'type': 'H', 'charge': 0.13718781330297145, 'radius': 1.1},
{'name': 'CAH', 'type': 'C.ar', 'charge': -0.1252004685570065, 'radius': 1.87},
{'name': 'HAH', 'type': 'H', 'charge': 0.12969479174473472, 'radius': 1.1},
{'name': 'CAA', 'type': 'C.ar', 'charge': -0.1252004685570065, 'radius': 1.87},
{'name': 'HAA', 'type': 'H', 'charge': 0.12969479174473472, 'radius': 1.1}],
"cyclohexane.mol2": [
{'name': 'CAA', 'type': 'C.3', 'charge': -0.10295775116564801, 'radius': 1.87},
{'name': 'HAA', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'HAB', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'CAB', 'type': 'C.3', 'charge': -0.10295775116564801, 'radius': 1.87},
{'name': 'HAC', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'HAD', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'CAC', 'type': 'C.3', 'charge': -0.10295775116564801, 'radius': 1.87},
{'name': 'HAE', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'HAF', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'CAF', 'type': 'C.3', 'charge': -0.10295775116564801, 'radius': 1.87},
{'name': 'HAK', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'HAL', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'CAE', 'type': 'C.3', 'charge': -0.10295775116564801, 'radius': 1.87},
{'name': 'HAI', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'HAJ', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'CAD', 'type': 'C.3', 'charge': -0.10295775116564801, 'radius': 1.87},
{'name': 'HAH', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1},
{'name': 'HAG', 'type': 'H', 'charge': 0.051478875582824005, 'radius': 1.1}],
"ethanol.mol2": [
{'name': 'CAA', 'charge': -0.09830853015557071},
{'name': 'HAA', 'charge': 0.04965533009730527},
{'name': 'HAB', 'charge': 0.04965533009730527},
{'name': 'HAC', 'charge': 0.04965533009730527},
{'name': 'CAB', 'charge': -0.05333201263132795},
{'name': 'HAD', 'charge': 0.1136006498229285},
{'name': 'HAE', 'charge': 0.1136006498229285},
{'name': 'OAC', 'charge': -0.6256712436819194},
{'name': 'HAF', 'charge': 0.4011444965310452}],
{'name': 'CAA', 'type': 'C.3', 'charge': -0.09830853015557071, 'radius': 1.87},
{'name': 'HAA', 'type': 'H', 'charge': 0.04965533009730527, 'radius': 1.1},
{'name': 'HAB', 'type': 'H', 'charge': 0.04965533009730527, 'radius': 1.1},
{'name': 'HAC', 'type': 'H', 'charge': 0.04965533009730527, 'radius': 1.1},
{'name': 'CAB', 'type': 'C.3', 'charge': -0.05333201263132795, 'radius': 1.87},
{'name': 'HAD', 'type': 'H', 'charge': 0.1136006498229285, 'radius': 1.1},
{'name': 'HAE', 'type': 'H', 'charge': 0.1136006498229285, 'radius': 1.1},
{'name': 'OAC', 'type': 'O.3', 'charge': -0.6256712436819194, 'radius': 1.52},
{'name': 'HAF', 'type': 'H', 'charge': 0.4011444965310452, 'radius': 1.1}],
"fatty-acid.mol2": [
{'name': 'OAA', 'charge': -0.6905415761361866},
{'name': 'CAB', 'charge': 0.09491530638614049},
{'name': 'OAL', 'charge': -0.6905415761361866},
{'name': 'CAC', 'charge': 0.012573264939255872},
{'name': 'HAC', 'charge': 0.11848768797200306},
{'name': 'HAD', 'charge': 0.11848768797200306},
{'name': 'CAD', 'charge': -0.07742980670292797},
{'name': 'HAE', 'charge': 0.06140059278092227},
{'name': 'HAF', 'charge': 0.06140059278092227},
{'name': 'CAE', 'charge': -0.076959643935905},
{'name': 'HAG', 'charge': 0.07285165771612633},
{'name': 'HAH', 'charge': 0.07285165771612633},
{'name': 'CAF', 'charge': -0.24236491728150775},
{'name': 'HAI', 'charge': 0.16485599597989423},
{'name': 'CAG', 'charge': -0.2426026937449157},
{'name': 'HAJ', 'charge': 0.1648388876026803},
{'name': 'CAH', 'charge': -0.07965667787077134},
{'name': 'HAK', 'charge': 0.07232360507910963},
{'name': 'HAL', 'charge': 0.07232360507910963},
{'name': 'CAI', 'charge': -0.09862724378017657},
{'name': 'HAM', 'charge': 0.05403847507524275},
{'name': 'HAN', 'charge': 0.05403847507524275},
{'name': 'CAJ', 'charge': -0.10608184708836539},
{'name': 'HAO', 'charge': 0.04966180988232633},
{'name': 'HAP', 'charge': 0.04966180988232633},
{'name': 'CAK', 'charge': -0.11173869603286389},
{'name': 'HAR', 'charge': 0.04061118893012504},
{'name': 'HAS', 'charge': 0.04061118893012504},
{'name': 'HAQ', 'charge': 0.04061118893012504}],
{'name': 'OAA', 'type': 'O.co2', 'charge': -0.6905415761361866, 'radius': 1.76},
{'name': 'CAB', 'type': 'C.2', 'charge': 0.09491530638614049, 'radius': 1.87},
{'name': 'OAL', 'type': 'O.co2', 'charge': -0.6905415761361866, 'radius': 1.76},
{'name': 'CAC', 'type': 'C.3', 'charge': 0.012573264939255872, 'radius': 1.87},
{'name': 'HAC', 'type': 'H', 'charge': 0.11848768797200306, 'radius': 1.1},
{'name': 'HAD', 'type': 'H', 'charge': 0.11848768797200306, 'radius': 1.1},
{'name': 'CAD', 'type': 'C.3', 'charge': -0.07742980670292797, 'radius': 1.87},
{'name': 'HAE', 'type': 'H', 'charge': 0.06140059278092227, 'radius': 1.1},
{'name': 'HAF', 'type': 'H', 'charge': 0.06140059278092227, 'radius': 1.1},
{'name': 'CAE', 'type': 'C.3', 'charge': -0.076959643935905, 'radius': 1.87},
{'name': 'HAG', 'type': 'H', 'charge': 0.07285165771612633, 'radius': 1.1},
{'name': 'HAH', 'type': 'H', 'charge': 0.07285165771612633, 'radius': 1.1},
{'name': 'CAF', 'type': 'C.2', 'charge': -0.24236491728150775, 'radius': 1.87},
{'name': 'HAI', 'type': 'H', 'charge': 0.16485599597989423, 'radius': 1.1},
{'name': 'CAG', 'type': 'C.2', 'charge': -0.2426026937449157, 'radius': 1.87},
{'name': 'HAJ', 'type': 'H', 'charge': 0.1648388876026803, 'radius': 1.1},
{'name': 'CAH', 'type': 'C.3', 'charge': -0.07965667787077134, 'radius': 1.87},
{'name': 'HAK', 'type': 'H', 'charge': 0.07232360507910963, 'radius': 1.1},
{'name': 'HAL', 'type': 'H', 'charge': 0.07232360507910963, 'radius': 1.1},
{'name': 'CAI', 'type': 'C.3', 'charge': -0.09862724378017657, 'radius': 1.87},
{'name': 'HAM', 'type': 'H', 'charge': 0.05403847507524275, 'radius': 1.1},
{'name': 'HAN', 'type': 'H', 'charge': 0.05403847507524275, 'radius': 1.1},
{'name': 'CAJ', 'type': 'C.3', 'charge': -0.10608184708836539, 'radius': 1.87},
{'name': 'HAO', 'type': 'H', 'charge': 0.04966180988232633, 'radius': 1.1},
{'name': 'HAP', 'type': 'H', 'charge': 0.04966180988232633, 'radius': 1.1},
{'name': 'CAK', 'type': 'C.3', 'charge': -0.11173869603286389, 'radius': 1.87},
{'name': 'HAR', 'type': 'H', 'charge': 0.04061118893012504, 'radius': 1.1},
{'name': 'HAS', 'type': 'H', 'charge': 0.04061118893012504, 'radius': 1.1},
{'name': 'HAQ', 'type': 'H', 'charge': 0.04061118893012504, 'radius': 1.1}],
"glycerol.mol2": [
{'name': 'OAB', 'charge': -0.6193219106971865},
{'name': 'HAG', 'charge': 0.4033320347133161},
{'name': 'CAA', 'charge': -0.025227212803925057},
{'name': 'HAA', 'charge': 0.1316040991547254},
{'name': 'HAB', 'charge': 0.1316040991547254},
{'name': 'CAC', 'charge': -0.00300604112002907},
{'name': 'HAC', 'charge': 0.16288785945019288},
{'name': 'OAD', 'charge': -0.6115908338990877},
{'name': 'HAD', 'charge': 0.4077267965256133},
{'name': 'CAE', 'charge': -0.025227212803925054},
{'name': 'HAE', 'charge': 0.1316040991547254},
{'name': 'HAF', 'charge': 0.1316040991547254},
{'name': 'OAF', 'charge': -0.6193219106971865},
{'name': 'HAH', 'charge': 0.4033320347133161}],
{'name': 'OAB', 'type': 'O.3', 'charge': -0.6193219106971865, 'radius': 1.52},
{'name': 'HAG', 'type': 'H', 'charge': 0.4033320347133161, 'radius': 1.1},
{'name': 'CAA', 'type': 'C.3', 'charge': -0.025227212803925057, 'radius': 1.87},
{'name': 'HAA', 'type': 'H', 'charge': 0.1316040991547254, 'radius': 1.1},
{'name': 'HAB', 'type': 'H', 'charge': 0.1316040991547254, 'radius': 1.1},
{'name': 'CAC', 'type': 'C.3', 'charge': -0.00300604112002907, 'radius': 1.87},
{'name': 'HAC', 'type': 'H', 'charge': 0.16288785945019288, 'radius': 1.1},
{'name': 'OAD', 'type': 'O.3', 'charge': -0.6115908338990877, 'radius': 1.52},
{'name': 'HAD', 'type': 'H', 'charge': 0.4077267965256133, 'radius': 1.1},
{'name': 'CAE', 'type': 'C.3', 'charge': -0.025227212803925054, 'radius': 1.87},
{'name': 'HAE', 'type': 'H', 'charge': 0.1316040991547254, 'radius': 1.1},
{'name': 'HAF', 'type': 'H', 'charge': 0.1316040991547254, 'radius': 1.1},
{'name': 'OAF', 'type': 'O.3', 'charge': -0.6193219106971865, 'radius': 1.52},
{'name': 'HAH', 'type': 'H', 'charge': 0.4033320347133161, 'radius': 1.1}],
"naphthalene.mol2": [
{'name': 'CAB', 'charge': -0.10985826436427909},
{'name': 'HAB', 'charge': 0.13714843913419308},
{'name': 'CAC', 'charge': -0.06352790423000582},
{'name': 'CAD', 'charge': -0.10985826436427909},
{'name': 'HAD', 'charge': 0.13714843913419308},
{'name': 'CAE', 'charge': -0.12522022371734542},
{'name': 'HAE', 'charge': 0.1296940010624343},
{'name': 'CAJ', 'charge': -0.12522022371734542},
{'name': 'HAJ', 'charge': 0.1296940010624343},
{'name': 'CAI', 'charge': -0.10985826436427909},
{'name': 'HAI', 'charge': 0.13714843913419308},
{'name': 'CAH', 'charge': -0.06352790423000582},
{'name': 'CAG', 'charge': -0.10985826436427909},
{'name': 'HAG', 'charge': 0.13714843913419308},
{'name': 'CAF', 'charge': -0.12522022371734542},
{'name': 'HAF', 'charge': 0.1296940010624343},
{'name': 'CAA', 'charge': -0.12522022371734542},
{'name': 'HAA', 'charge': 0.1296940010624343}],
{'name': 'CAB', 'type': 'C.ar', 'charge': -0.10985826436427909, 'radius': 1.87},
{'name': 'HAB', 'type': 'H', 'charge': 0.13714843913419308, 'radius': 1.1},
{'name': 'CAC', 'type': 'C.ar', 'charge': -0.06352790423000582, 'radius': 1.87},
{'name': 'CAD', 'type': 'C.ar', 'charge': -0.10985826436427909, 'radius': 1.87},
{'name': 'HAD', 'type': 'H', 'charge': 0.13714843913419308, 'radius': 1.1},
{'name': 'CAE', 'type': 'C.ar', 'charge': -0.12522022371734542, 'radius': 1.87},
{'name': 'HAE', 'type': 'H', 'charge': 0.1296940010624343, 'radius': 1.1},
{'name': 'CAJ', 'type': 'C.ar', 'charge': -0.12522022371734542, 'radius': 1.87},
{'name': 'HAJ', 'type': 'H', 'charge': 0.1296940010624343, 'radius': 1.1},
{'name': 'CAI', 'type': 'C.ar', 'charge': -0.10985826436427909, 'radius': 1.87},
{'name': 'HAI', 'type': 'H', 'charge': 0.13714843913419308, 'radius': 1.1},
{'name': 'CAH', 'type': 'C.ar', 'charge': -0.06352790423000582, 'radius': 1.87},
{'name': 'CAG', 'type': 'C.ar', 'charge': -0.10985826436427909, 'radius': 1.87},
{'name': 'HAG', 'type': 'H', 'charge': 0.13714843913419308, 'radius': 1.1},
{'name': 'CAF', 'type': 'C.ar', 'charge': -0.12522022371734542, 'radius': 1.87},
{'name': 'HAF', 'type': 'H', 'charge': 0.1296940010624343, 'radius': 1.1},
{'name': 'CAA', 'type': 'C.ar', 'charge': -0.12522022371734542, 'radius': 1.87},
{'name': 'HAA', 'type': 'H', 'charge': 0.1296940010624343, 'radius': 1.1}],
"pyrrole.mol2": [
{'name': 'CAE', 'charge': -0.02725132001441914},
{'name': 'HAE', 'charge': 0.104834463409739},
{'name': 'HAF', 'charge': 0.104834463409739},
{'name': 'CAD', 'charge': -0.19753848158167037},
{'name': 'HAD', 'charge': 0.18534981863154645},
{'name': 'CAA', 'charge': -0.1112561716335608},
{'name': 'HAA', 'charge': 0.2699321111667989},
{'name': 'NAB', 'charge': -0.44475473234270757},
{'name': 'CAC', 'charge': -0.13358085588726296},
{'name': 'HAC', 'charge': 0.24943070484179752}],
{'name': 'CAE', 'type': 'C.3', 'charge': -0.02725132001441914, 'radius': 1.87},
{'name': 'HAE', 'type': 'H', 'charge': 0.104834463409739, 'radius': 1.1},
{'name': 'HAF', 'type': 'H', 'charge': 0.104834463409739, 'radius': 1.1},
{'name': 'CAD', 'type': 'C.2', 'charge': -0.19753848158167037, 'radius': 1.87},
{'name': 'HAD', 'type': 'H', 'charge': 0.18534981863154645, 'radius': 1.1},
{'name': 'CAA', 'type': 'C.2', 'charge': -0.1112561716335608, 'radius': 1.87},
{'name': 'HAA', 'type': 'H', 'charge': 0.2699321111667989, 'radius': 1.1},
{'name': 'NAB', 'type': 'N.2', 'charge': -0.44475473234270757, 'radius': 1.4},
{'name': 'CAC', 'type': 'C.2', 'charge': -0.13358085588726296, 'radius': 1.87},
{'name': 'HAC', 'type': 'H', 'charge': 0.24943070484179752, 'radius': 1.1}],
"tetramethylammonium.mol2": [
{'name': 'CAA', 'charge': 0.013840200623221964},
{'name': 'HAA', 'charge': 0.12997929051575582},
{'name': 'HAB', 'charge': 0.12997929051575582},
{'name': 'HAC', 'charge': 0.12997929051575582},
{'name': 'NAC', 'charge': -0.6151122886819584},
{'name': 'CAB', 'charge': 0.013840200623221978},
{'name': 'HAE', 'charge': 0.12997929051575582},
{'name': 'HAF', 'charge': 0.12997929051575582},
{'name': 'HAD', 'charge': 0.12997929051575582},
{'name': 'CAE', 'charge': 0.013840200623221978},
{'name': 'HAK', 'charge': 0.12997929051575582},
{'name': 'HAL', 'charge': 0.12997929051575582},
{'name': 'HAJ', 'charge': 0.12997929051575582},
{'name': 'CAD', 'charge': 0.013840200623221978},
{'name': 'HAH', 'charge': 0.12997929051575582},
{'name': 'HAI', 'charge': 0.12997929051575582},
{'name': 'HAG', 'charge': 0.12997929051575582}]
{'name': 'CAA', 'type': 'C.3', 'charge': 0.013840200623221964, 'radius': 1.87},
{'name': 'HAA', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'HAB', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'HAC', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'NAC', 'type': 'N.3', 'charge': -0.6151122886819584, 'radius': 1.4},
{'name': 'CAB', 'type': 'C.3', 'charge': 0.013840200623221978, 'radius': 1.87},
{'name': 'HAE', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'HAF', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'HAD', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'CAE', 'type': 'C.3', 'charge': 0.013840200623221978, 'radius': 1.87},
{'name': 'HAK', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'HAL', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'HAJ', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'CAD', 'type': 'C.3', 'charge': 0.013840200623221978, 'radius': 1.87},
{'name': 'HAH', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'HAI', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1},
{'name': 'HAG', 'type': 'H', 'charge': 0.12997929051575582, 'radius': 1.1}]
}

View File

@@ -5,15 +5,15 @@ from pathlib import Path
import pytest
import pandas as pd
from numpy.testing import assert_almost_equal
from pdb2pqr.ligand import parameterize
from pdb2pqr.ligand.mol2 import Mol2Molecule
from pdb2pqr.ligand import RADII
import common
from ligand_results import TORSION_RESULTS, RING_RESULTS
from ligand_results import FORMAL_CHARGE_RESULTS, PARTIAL_CHARGE_RESULTS
from ligand_results import FORMAL_CHARGE_RESULTS, PARAMETER_RESULTS
_LOGGER = logging.getLogger(__name__)
_LOGGER.warning("Need functional and regression test coverage for --ligand")
_LOGGER.error("Still haven't figured out radii")
ALL_LIGANDS = set(TORSION_RESULTS) | set(RING_RESULTS)
@@ -24,46 +24,44 @@ ALL_LIGANDS = sorted(list(ALL_LIGANDS))
@pytest.mark.parametrize("input_mol2", ALL_LIGANDS)
def test_parameterization(input_mol2):
def test_assign_parameters(input_mol2):
"""Testing basic aspects of code breaking."""
ligand = parameterize.ParameterizedMolecule()
ligand = Mol2Molecule()
mol2_path = Path("tests/data") / input_mol2
with open(mol2_path, "rt") as mol2_file:
ligand.read(mol2_file)
old_total_charge = 0
for atom in ligand.atoms.values():
atom.charge = atom.formal_charge
old_total_charge += atom.charge
atom.old_charge = atom.charge
ligand.update(ligand)
old_total_charge += atom.formal_charge
ligand.assign_parameters()
new_total_charge = 0
test_results = []
for atom in ligand.atoms.values():
test_row = {
"name": atom.name, "charge": atom.charge}
"name": atom.name, "type": atom.type, "charge": atom.charge,
"radius": atom.radius}
test_results.append(test_row)
new_total_charge += atom.charge
_LOGGER.debug("Test results: %s", test_results)
test_results = pd.DataFrame(test_results)
test_results = test_results.set_index("name")
_LOGGER.debug("Test results:\n%s", test_results)
# _LOGGER.debug("Test results:\n%s", test_results.to_string())
_LOGGER.info(
"Total charge: %5.2f -> %5.2f", old_total_charge, new_total_charge)
expected_results = pd.DataFrame(PARTIAL_CHARGE_RESULTS[input_mol2])
expected_results = pd.DataFrame(PARAMETER_RESULTS[input_mol2])
expected_results = expected_results.set_index("name")
diff_results = test_results - expected_results
_LOGGER.debug(
"Difference between test and expected results:\n%s",
diff_results.to_string())
assert_almost_equal(
test_results["charge"].to_numpy(),
expected_results["charge"].to_numpy())
assert_almost_equal(
test_results["radius"].to_numpy(),
expected_results["radius"].to_numpy(), verbose=True)
@pytest.mark.parametrize("input_mol2", ALL_LIGANDS)
def test_formal_charge(input_mol2):
"""Testing formal charge calculation."""
ligand = parameterize.ParameterizedMolecule()
ligand = Mol2Molecule()
mol2_path = Path("tests/data") / input_mol2
with open(mol2_path, "rt") as mol2_file:
ligand.read(mol2_file)
@@ -91,7 +89,7 @@ def test_formal_charge(input_mol2):
@pytest.mark.parametrize("input_mol2", TORSION_RESULTS)
def test_torsions(input_mol2):
"""Test assignment of torsion angles."""
ligand = parameterize.ParameterizedMolecule()
ligand = Mol2Molecule()
mol2_path = Path("tests/data") / input_mol2
with open(mol2_path, "rt") as mol2_file:
ligand.read(mol2_file)
@@ -125,7 +123,7 @@ def test_torsions(input_mol2):
@pytest.mark.parametrize("input_mol2", ALL_LIGANDS)
def test_rings(input_mol2):
"""Test assignment of torsion angles."""
ligand = parameterize.ParameterizedMolecule()
ligand = Mol2Molecule()
mol2_path = Path("tests/data") / input_mol2
with open(mol2_path, "rt") as mol2_file:
ligand.read(mol2_file)