from psikit import Psikit
from rdkit import Chem
from rdkit.Chem.Draw import IPythonConsole
from IPython.display import SVG
from rdkit.Chem.Draw import rdMolDraw2D
pk = Psikit()
pk.read_from_smiles("CC(=O)[O-]")
pk.optimize()
pk.resp_charge
Optimizer: Optimization complete!
{'Electrostatic Potential Charges': array([-0.3384504 , 0.9525741 , -0.85518224, -0.86392646, 0.0387593 , 0.03824675, 0.02797894]), 'Restrained Electrostatic Potential Charges': array([-0.19605235, 0.87815436, -0.83637101, -0.84554228, 0.00486571, 0.00417476, -0.00922919])}
drawer = rdMolDraw2D.MolDraw2DSVG(400,200)
opts = drawer.drawOptions()
for i, atom in enumerate(pk.mol.GetAtoms()):
opts.atomLabels[i] = "{0:.3f}".format(float(atom.GetProp("RESP_C")))
drawer.DrawMolecule(pk.mol)
drawer.FinishDrawing()
svg = drawer.GetDrawingText().replace('svg:','')
SVG(svg)
pk.read_from_smiles("CC1=NN=N[N-]1")
pk.mol
pk.optimize()
pk.resp_charge
Optimizer: Optimization complete!
{'Electrostatic Potential Charges': array([-0.98211149, 1.18464533, -0.67803762, -0.21994535, -0.19810641, -0.6954824 , 0.19644875, 0.19970103, 0.19288816]), 'Restrained Electrostatic Potential Charges': array([-0.78229709, 1.09017898, -0.65778538, -0.22054976, -0.19647406, -0.67770262, 0.14870634, 0.15198418, 0.1439394 ])}
drawer = rdMolDraw2D.MolDraw2DSVG(400,200)
opts = drawer.drawOptions()
for i, atom in enumerate(pk.mol.GetAtoms()):
opts.atomLabels[i] = "{0:.3f}".format(float(atom.GetProp("RESP_C")))
drawer.DrawMolecule(pk.mol)
drawer.FinishDrawing()
svg = drawer.GetDrawingText().replace('svg:','')
SVG(svg)