Skip to content

Instantly share code, notes, and snippets.

@ptosco
Created October 31, 2016 18:10
Show Gist options
  • Save ptosco/02af3456720d54c37ffc488056df02d4 to your computer and use it in GitHub Desktop.
Save ptosco/02af3456720d54c37ffc488056df02d4 to your computer and use it in GitHub Desktop.
PartialChargeSDF
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import sys\n",
"from rdkit import Chem\n",
"from rdkit.Chem import AllChem\n",
"from rdkit.Chem.Draw import IPythonConsole"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"mol = Chem.MolFromSmiles('OCCC[NH3+]')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x2304d4bdbc0>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mol"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"molH = Chem.AddHs(mol)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AllChem.EmbedMolecule(molH, useExpTorsionAnglePrefs = True, useBasicKnowledge = True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"pyMP = AllChem.MMFFGetMoleculeProperties(molH)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ff = AllChem.MMFFGetMoleculeForceField(molH, pyMP)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ff.Minimize()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"for i in range(molH.GetNumAtoms()):\n",
" molH.GetAtomWithIdx(i).SetProp('molFileAlias',\n",
" '{0:.4f}'.format(pyMP.GetMMFFPartialCharge(i)))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"w = Chem.SDWriter(sys.stdout)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" RDKit 3D\n",
"\n",
" 15 14 0 0 0 0 0 0 0 0999 V2000\n",
" 0.8465 1.3583 0.5245 O 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1.0925 0.6902 -0.7163 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" -0.1140 -0.1779 -1.0655 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" -0.5226 -1.1083 0.0712 C 0 0 0 0 0 0 0 0 0 0 0 0\n",
" -0.9860 -0.3087 1.2288 N 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1.5476 2.0426 0.5988 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1.9938 0.0799 -0.6035 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1.2620 1.4385 -1.4968 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0.1148 -0.7673 -1.9603 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" -0.9630 0.4718 -1.3125 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" -1.3518 -1.7604 -0.2166 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 0.3188 -1.7164 0.4171 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" -0.2997 0.4605 1.3833 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" -1.0521 -0.8525 2.0955 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" -1.8870 0.1496 1.0524 H 0 0 0 0 0 0 0 0 0 0 0 0\n",
" 1 2 1 0\n",
" 2 3 1 0\n",
" 3 4 1 0\n",
" 4 5 1 0\n",
" 1 6 1 0\n",
" 2 7 1 0\n",
" 2 8 1 0\n",
" 3 9 1 0\n",
" 3 10 1 0\n",
" 4 11 1 0\n",
" 4 12 1 0\n",
" 5 13 1 0\n",
" 5 14 1 0\n",
" 5 15 1 0\n",
"M CHG 1 5 1\n",
"A 1\n",
"-0.6800\n",
"A 2\n",
"0.2800\n",
"A 3\n",
"0.0000\n",
"A 4\n",
"0.5030\n",
"A 5\n",
"-0.8530\n",
"A 6\n",
"0.4000\n",
"A 7\n",
"0.0000\n",
"A 8\n",
"0.0000\n",
"A 9\n",
"0.0000\n",
"A 10\n",
"0.0000\n",
"A 11\n",
"0.0000\n",
"A 12\n",
"0.0000\n",
"A 13\n",
"0.4500\n",
"A 14\n",
"0.4500\n",
"A 15\n",
"0.4500\n",
"M END\n",
"$$$$\n"
]
}
],
"source": [
"w.write(molH)\n",
"w.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment