Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minimal changes to use new SystemGenerator for relative free energy calculations #616

Merged
merged 24 commits into from
Jan 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
7f25bfe
Start of minimal changes necessary for relative free energy calculati…
jchodera Jan 6, 2020
c2ff150
Merge remote-tracking branch 'origin/master' into minimal-systemgener…
jchodera Jan 7, 2020
783e203
Clean up CDK2 repex example.
jchodera Jan 8, 2020
adb7d3e
More debugging
jchodera Jan 8, 2020
2256c33
Use relative path for debugging
jchodera Jan 8, 2020
0d7510b
generating unique atom names for oemols
hannahbrucemacdonald Jan 8, 2020
2a3704d
Fix build_system errors
jchodera Jan 8, 2020
8812b50
Comment out stacktraces for warnings
jchodera Jan 8, 2020
f10076b
Add JSON cache
jchodera Jan 8, 2020
b27bf95
Install openmm-forcefields via pip for now
jchodera Jan 10, 2020
5fb24e9
Merge branch 'master' into minimal-systemgenerator-update
hannahbrucemacdonald Jan 10, 2020
8b1f2bf
adding logger comments
hannahbrucemacdonald Jan 11, 2020
f4cf435
removing de- and re- protonation of protein
hannahbrucemacdonald Jan 11, 2020
26b5bd1
minor logger changes
hannahbrucemacdonald Jan 11, 2020
3e219d3
fixing barostat/cutoff for vacuum phase
hannahbrucemacdonald Jan 11, 2020
994b983
Fix travis by installing prerequisites for openmm-forcefields
jchodera Jan 12, 2020
26b5ace
Fix test failure
jchodera Jan 12, 2020
caea523
Fix test.smi path
jchodera Jan 14, 2020
58c56ed
Fix temporary directory issues
jchodera Jan 15, 2020
2a65fb0
Update enter_temp_directory
jchodera Jan 15, 2020
96663ab
Add test.smi
jchodera Jan 15, 2020
6985bbb
Fix failing tests
jchodera Jan 15, 2020
27caad3
commenting out printing of intermediate pdb file for testing
hannahbrucemacdonald Jan 15, 2020
046d59f
Merge branch 'minimal-systemgenerator-update' of github.com:choderala…
hannahbrucemacdonald Jan 15, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,13 @@ script:
- conda install --yes --use-local ${PACKAGENAME}-dev
# Install testing dependencies
- conda install --yes --quiet nose nose-timer
# Install openmm-forcefields via pip (until available via omnia)
- conda install --yes tinydb "openforcefield>=0.6.0" "openforcefields>=1.0.0"
- pip install git+https://github.com/openmm/openmm-forcefields.git
# Workaround for https://github.com/openmm/openmm/pull/2511
# TODO: Remove this when OpenMM builds including https://github.com/openmm/openmm/pull/2511 are released
- echo "Overwriting OpenMM forcefield.py with fix from https://github.com/openmm/openmm/pull/2511"
- wget -q https://raw.githubusercontent.com/openmm/openmm/4f48402f1be3e0f049ae0e8595db638d297b0d75/wrappers/python/simtk/openmm/app/forcefield.py -O `python -c "from simtk.openmm.app import forcefield; print(forcefield.__file__)"`
# Install desired OpenMM version
- if [ "$OPENMM" == "latest" ]; then echo "Using latest release OpenMM."; conda install --yes -c omnia openmm; fi
- if [ "$OPENMM" == "beta" ]; then echo "Using OpenMM beta"; conda install --yes -c omnia/label/beta openmm; fi
Expand All @@ -69,7 +76,6 @@ script:
env:
global:
- ORGNAME="omnia"
- OE_LICENSE="$HOME/oe_license.txt"
hannahbrucemacdonald marked this conversation as resolved.
Show resolved Hide resolved
- PACKAGENAME="perses"
# Location of decrypted OpenEye license file
- OE_LICENSE="$HOME/oe_license.txt"
Expand Down
1 change: 1 addition & 0 deletions devtools/conda-recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ requirements:
- progressbar2
- parmed
- tqdm
#- openmm-forcefields # uncomment once openmm-forcefields package is pushed to conda

about:
home: https://github.com/choderalab/perses
Expand Down
184 changes: 147 additions & 37 deletions perses/app/relative_setup.py

Large diffs are not rendered by default.

27 changes: 20 additions & 7 deletions perses/app/setup_relative_calculation.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,19 @@ def getSetupOptions(filename):
if 'protocol-type' not in setup_options:
setup_options['protocol-type'] = 'default'

if 'small_molecule_forcefield' not in setup_options:
setup_options['small_molecule_forcefield'] = 'gaff-2.11'

if 'small_molecule_parameters_cache' not in setup_options:
setup_options['small_molecule_parameters_cache'] = None

# Not sure why these are needed
# TODO: Revisit these?
hannahbrucemacdonald marked this conversation as resolved.
Show resolved Hide resolved
if 'neglect_angles' not in setup_options:
setup_options['neglect_angles'] = False
if 'anneal_1,4s' not in setup_options:
setup_options['anneal_1,4s'] = False

if 'run_type' not in setup_options:
_logger.info(f"\t\t\trun_type is not specified; default to None")
setup_options['run_type'] = None
Expand Down Expand Up @@ -207,11 +220,11 @@ def getSetupOptions(filename):
if 'softcore_v2' not in setup_options:
setup_options['softcore_v2'] = False
_logger.info(f"\t'softcore_v2' not specified: default to 'False'")

_logger.info(f"\tCreating '{trajectory_directory}'...")
assert (not os.path.exists(trajectory_directory)), f'Output trajectory directory "{trajectory_directory}" already exists. Refusing to overwrite'
os.makedirs(trajectory_directory)

_logger.info(f"\ttrajectory_directory detected: {trajectory_directory}. making dir...")
if setup_options['run_type'] != 'anneal':
assert (os.path.exists(trajectory_directory) == False), 'Output trajectory directory already exists. Refusing to overwrite'
os.makedirs(trajectory_directory)

return setup_options

Expand Down Expand Up @@ -264,7 +277,7 @@ def run_setup(setup_options):

if "timestep" in setup_options:
timestep = setup_options['timestep'] * unit.femtoseconds
_logger.info(f"\ttimestep: {timestep}fs.")
_logger.info(f"\ttimestep: {timestep}.")
else:
timestep = 1.0 * unit.femtoseconds
_logger.info(f"\tno timestep detected: setting default as 1.0fs.")
Expand Down Expand Up @@ -318,8 +331,8 @@ def run_setup(setup_options):
protein_pdb_filename=protein_pdb_filename,
receptor_mol2_filename=receptor_mol2, pressure=pressure,
temperature=temperature, solvent_padding=solvent_padding_angstroms,
atom_map=atom_map, neglect_angles = setup_options['neglect_angles'], anneal_14s = setup_options['anneal_1,4s'])
_logger.info(f"\n\n\n")
atom_map=atom_map, neglect_angles = setup_options['neglect_angles'], anneal_14s = setup_options['anneal_1,4s'],
small_molecule_forcefield=setup_options['small_molecule_forcefield'], small_molecule_parameters_cache=setup_options['small_molecule_parameters_cache'])

_logger.info(f"\twriting pickle output...")
with open(os.path.join(os.getcwd(), trajectory_directory, setup_pickle_file), 'wb') as f:
Expand Down
15 changes: 15 additions & 0 deletions perses/data/cdk2-example/cdk2-cache.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"_default": {},
"gaff-2.11": {
"1": {
"ffxml": "<ForceField>\n <Info>\n <DateGenerated>2020-01-08</DateGenerated>\n </Info>\n <PeriodicTorsionForce>\n <Improper type1=\"ca\" type2=\"nb\" type3=\"nb\" type4=\"nh\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"cc\" type2=\"h5\" type3=\"na\" type4=\"nd\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"ca\" type4=\"ha\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"nb\" type4=\"os\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"ca\" type4=\"nd\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"na\" type2=\"ca\" type3=\"cc\" type4=\"hn\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"na\" type4=\"nb\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"nh\" type2=\"ca\" type3=\"ca\" type4=\"hn\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"ca\" type4=\"nh\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n </PeriodicTorsionForce>\n<Residues><Residue name=\"[H]c1c(c(c(c(c1[H])Br)[H])N([H])c2nc3c(c(n2)OC([H])([H])C4(C(C(C(C(C4([H])[H])([H])[H])([H])[H])([H])[H])([H])[H])[H])N=C(N3[H])[H])[H]\"><Atom name=\"C1\" type=\"ca\" charge=\"0.9380199955183061\"/><Atom name=\"C2\" type=\"cc\" charge=\"0.5029900098656933\"/><Atom name=\"C3\" type=\"c3\" charge=\"0.13049000565586533\"/><Atom name=\"C4\" type=\"c3\" charge=\"-0.06813999977094644\"/><Atom name=\"C5\" type=\"c3\" charge=\"-0.07626000754412668\"/><Atom name=\"C6\" type=\"c3\" charge=\"-0.07506000213790623\"/><Atom name=\"C7\" type=\"c3\" charge=\"-0.07825999668627928\"/><Atom name=\"C8\" type=\"c3\" charge=\"-0.07506000213790623\"/><Atom name=\"C9\" type=\"c3\" charge=\"-0.07626000754412668\"/><Atom name=\"C10\" type=\"ca\" charge=\"-0.10790000057982278\"/><Atom name=\"C11\" type=\"ca\" charge=\"-0.1262799942264854\"/><Atom name=\"C12\" type=\"ca\" charge=\"-0.007579997144742428\"/><Atom name=\"C13\" type=\"ca\" charge=\"-0.1115899974599122\"/><Atom name=\"N1\" type=\"nb\" charge=\"-0.8348100144479806\"/><Atom name=\"C14\" type=\"ca\" charge=\"0.7623299993683912\"/><Atom name=\"O1\" type=\"os\" charge=\"-0.4173700192976787\"/><Atom name=\"C15\" type=\"ca\" charge=\"-0.20807999270501196\"/><Atom name=\"N2\" type=\"nd\" charge=\"-0.5032399868142949\"/><Atom name=\"N3\" type=\"na\" charge=\"-0.7800700030242173\"/><Atom name=\"C16\" type=\"ca\" charge=\"0.6003999739508927\"/><Atom name=\"N4\" type=\"nb\" charge=\"-0.7764600477310883\"/><Atom name=\"N5\" type=\"nh\" charge=\"-0.7468699776284606\"/><Atom name=\"C17\" type=\"ca\" charge=\"0.17254000986738674\"/><Atom name=\"C18\" type=\"ca\" charge=\"-0.162819995678184\"/><Atom name=\"H1\" type=\"h5\" charge=\"0.0745200071410825\"/><Atom name=\"H2\" type=\"h1\" charge=\"0.06093000277936648\"/><Atom name=\"H3\" type=\"h1\" charge=\"0.06093000277936648\"/><Atom name=\"H4\" type=\"hc\" charge=\"0.06834000382538596\"/><Atom name=\"H5\" type=\"hc\" charge=\"0.045400005056444516\"/><Atom name=\"H6\" type=\"hc\" charge=\"0.045400005056444516\"/><Atom name=\"H7\" type=\"hc\" charge=\"0.04058000092725349\"/><Atom name=\"H8\" type=\"hc\" charge=\"0.04058000092725349\"/><Atom name=\"H9\" type=\"hc\" charge=\"0.03983000312894956\"/><Atom name=\"H10\" type=\"hc\" charge=\"0.03983000312894956\"/><Atom name=\"H11\" type=\"hc\" charge=\"0.04058000092725349\"/><Atom name=\"H12\" type=\"hc\" charge=\"0.04058000092725349\"/><Atom name=\"H13\" type=\"hc\" charge=\"0.045400005056444516\"/><Atom name=\"H14\" type=\"hc\" charge=\"0.045400005056444516\"/><Atom name=\"H15\" type=\"ha\" charge=\"0.13868999549173872\"/><Atom name=\"H16\" type=\"ha\" charge=\"0.14825999809448898\"/><Atom name=\"H17\" type=\"ha\" charge=\"0.16364000817867916\"/><Atom name=\"H18\" type=\"hn\" charge=\"0.47447997564164407\"/><Atom name=\"H19\" type=\"hn\" charge=\"0.46240002143510067\"/><Atom name=\"H20\" type=\"ha\" charge=\"0.13816000588895963\"/><Atom name=\"Br1\" type=\"br\" charge=\"-0.08859000311586836\"/><Bond atomName1=\"C1\" atomName2=\"N1\"/><Bond atomName1=\"C1\" atomName2=\"N4\"/><Bond atomName1=\"C1\" atomName2=\"N5\"/><Bond atomName1=\"C2\" atomName2=\"N2\"/><Bond atomName1=\"C2\" atomName2=\"N3\"/><Bond atomName1=\"C2\" atomName2=\"H1\"/><Bond atomName1=\"C3\" atomName2=\"C4\"/><Bond atomName1=\"C3\" atomName2=\"O1\"/><Bond atomName1=\"C3\" atomName2=\"H2\"/><Bond atomName1=\"C3\" atomName2=\"H3\"/><Bond atomName1=\"C4\" atomName2=\"C5\"/><Bond atomName1=\"C4\" atomName2=\"C9\"/><Bond atomName1=\"C4\" atomName2=\"H4\"/><Bond atomName1=\"C5\" atomName2=\"C6\"/><Bond atomName1=\"C5\" atomName2=\"H5\"/><Bond atomName1=\"C5\" atomName2=\"H6\"/><Bond atomName1=\"C6\" atomName2=\"C7\"/><Bond atomName1=\"C6\" atomName2=\"H7\"/><Bond atomName1=\"C6\" atomName2=\"H8\"/><Bond atomName1=\"C7\" atomName2=\"C8\"/><Bond atomName1=\"C7\" atomName2=\"H9\"/><Bond atomName1=\"C7\" atomName2=\"H10\"/><Bond atomName1=\"C8\" atomName2=\"C9\"/><Bond atomName1=\"C8\" atomName2=\"H11\"/><Bond atomName1=\"C8\" atomName2=\"H12\"/><Bond atomName1=\"C9\" atomName2=\"H13\"/><Bond atomName1=\"C9\" atomName2=\"H14\"/><Bond atomName1=\"C10\" atomName2=\"C11\"/><Bond atomName1=\"C10\" atomName2=\"C18\"/><Bond atomName1=\"C10\" atomName2=\"H15\"/><Bond atomName1=\"C11\" atomName2=\"C12\"/><Bond atomName1=\"C11\" atomName2=\"H16\"/><Bond atomName1=\"C12\" atomName2=\"C13\"/><Bond atomName1=\"C12\" atomName2=\"Br1\"/><Bond atomName1=\"C13\" atomName2=\"C17\"/><Bond atomName1=\"C13\" atomName2=\"H17\"/><Bond atomName1=\"N1\" atomName2=\"C14\"/><Bond atomName1=\"C14\" atomName2=\"O1\"/><Bond atomName1=\"C14\" atomName2=\"C15\"/><Bond atomName1=\"C15\" atomName2=\"N2\"/><Bond atomName1=\"C15\" atomName2=\"C16\"/><Bond atomName1=\"N3\" atomName2=\"C16\"/><Bond atomName1=\"N3\" atomName2=\"H18\"/><Bond atomName1=\"C16\" atomName2=\"N4\"/><Bond atomName1=\"N5\" atomName2=\"C17\"/><Bond atomName1=\"N5\" atomName2=\"H19\"/><Bond atomName1=\"C17\" atomName2=\"C18\"/><Bond atomName1=\"C18\" atomName2=\"H20\"/></Residue></Residues></ForceField>\n",
"iupac": "~{N}-(3-bromophenyl)-6-(cyclohexylmethoxy)-9~{H}-purin-2-amine",
"smiles": "[H]c1c(c(c(c(c1[H])Br)[H])N([H])c2nc3c(c(n2)OC([H])([H])C4(C(C(C(C(C4([H])[H])([H])[H])([H])[H])([H])[H])([H])[H])[H])N=C(N3[H])[H])[H]"
},
"2": {
"ffxml": "<ForceField>\n <Info>\n <DateGenerated>2020-01-08</DateGenerated>\n </Info>\n <PeriodicTorsionForce>\n <Improper type1=\"ca\" type2=\"nb\" type3=\"nb\" type4=\"nh\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"cc\" type2=\"h5\" type3=\"na\" type4=\"nd\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"ca\" type4=\"ha\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"nb\" type4=\"os\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"ca\" type4=\"nd\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"na\" type2=\"ca\" type3=\"cc\" type4=\"hn\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"na\" type4=\"nb\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"nh\" type2=\"ca\" type3=\"ca\" type4=\"hn\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n <Improper type1=\"ca\" type2=\"ca\" type3=\"ca\" type4=\"nh\" periodicity1=\"2\" phase1=\"3.141592653589793\" k1=\"4.6024\"/>\n </PeriodicTorsionForce>\n<Residues><Residue name=\"[H]c1c(c(c(c(c1[H])[H])N([H])c2nc3c(c(n2)OC([H])([H])C4(C(C(C(C(C4([H])[H])([H])[H])([H])[H])([H])[H])([H])[H])[H])N=C(N3[H])[H])[H])[H]\"><Atom name=\"C1\" type=\"ca\" charge=\"0.940720009377084\"/><Atom name=\"C2\" type=\"cc\" charge=\"0.5003000432150067\"/><Atom name=\"C3\" type=\"c3\" charge=\"0.13035999067384332\"/><Atom name=\"C4\" type=\"c3\" charge=\"-0.06669999746609903\"/><Atom name=\"C5\" type=\"c3\" charge=\"-0.07492000707974124\"/><Atom name=\"C6\" type=\"c3\" charge=\"-0.07463000067678004\"/><Atom name=\"C7\" type=\"c3\" charge=\"-0.07776000452779244\"/><Atom name=\"C8\" type=\"c3\" charge=\"-0.07463000067678004\"/><Atom name=\"C9\" type=\"c3\" charge=\"-0.07492000707974124\"/><Atom name=\"C10\" type=\"ca\" charge=\"-0.11158000079222616\"/><Atom name=\"C11\" type=\"ca\" charge=\"-0.1493899990855215\"/><Atom name=\"C12\" type=\"ca\" charge=\"-0.11158000079222616\"/><Atom name=\"C13\" type=\"ca\" charge=\"-0.15166999598739633\"/><Atom name=\"N1\" type=\"nb\" charge=\"-0.8346700777891322\"/><Atom name=\"C14\" type=\"ca\" charge=\"0.7609900136244427\"/><Atom name=\"O1\" type=\"os\" charge=\"-0.42016000107077534\"/><Atom name=\"C15\" type=\"ca\" charge=\"-0.20837000285898155\"/><Atom name=\"N2\" type=\"nd\" charge=\"-0.5049499935624883\"/><Atom name=\"N3\" type=\"na\" charge=\"-0.7809599740491758\"/><Atom name=\"C16\" type=\"ca\" charge=\"0.6021500150799053\"/><Atom name=\"N4\" type=\"nb\" charge=\"-0.7818800313580052\"/><Atom name=\"N5\" type=\"nh\" charge=\"-0.742069969380697\"/><Atom name=\"C17\" type=\"ca\" charge=\"0.16614000281177976\"/><Atom name=\"C18\" type=\"ca\" charge=\"-0.15166999598739633\"/><Atom name=\"H1\" type=\"h5\" charge=\"0.07525999745290168\"/><Atom name=\"H2\" type=\"h1\" charge=\"0.06003000135902299\"/><Atom name=\"H3\" type=\"h1\" charge=\"0.06003000135902299\"/><Atom name=\"H4\" type=\"hc\" charge=\"0.06889000444588278\"/><Atom name=\"H5\" type=\"hc\" charge=\"0.04262999761774103\"/><Atom name=\"H6\" type=\"hc\" charge=\"0.04262999761774103\"/><Atom name=\"H7\" type=\"hc\" charge=\"0.0412699984557519\"/><Atom name=\"H8\" type=\"hc\" charge=\"0.0412699984557519\"/><Atom name=\"H9\" type=\"hc\" charge=\"0.039019997650819725\"/><Atom name=\"H10\" type=\"hc\" charge=\"0.039019997650819725\"/><Atom name=\"H11\" type=\"hc\" charge=\"0.0412699984557519\"/><Atom name=\"H12\" type=\"hc\" charge=\"0.0412699984557519\"/><Atom name=\"H13\" type=\"hc\" charge=\"0.04262999761774103\"/><Atom name=\"H14\" type=\"hc\" charge=\"0.04262999761774103\"/><Atom name=\"H15\" type=\"ha\" charge=\"0.1329600048494636\"/><Atom name=\"H16\" type=\"ha\" charge=\"0.13350999180074835\"/><Atom name=\"H17\" type=\"ha\" charge=\"0.1329600048494636\"/><Atom name=\"H18\" type=\"ha\" charge=\"0.14020000214136588\"/><Atom name=\"H19\" type=\"hn\" charge=\"0.4749000010145257\"/><Atom name=\"H20\" type=\"hn\" charge=\"0.4592699944295195\"/><Atom name=\"H21\" type=\"ha\" charge=\"0.14020000214136588\"/><Bond atomName1=\"C1\" atomName2=\"N1\"/><Bond atomName1=\"C1\" atomName2=\"N4\"/><Bond atomName1=\"C1\" atomName2=\"N5\"/><Bond atomName1=\"C2\" atomName2=\"N2\"/><Bond atomName1=\"C2\" atomName2=\"N3\"/><Bond atomName1=\"C2\" atomName2=\"H1\"/><Bond atomName1=\"C3\" atomName2=\"C4\"/><Bond atomName1=\"C3\" atomName2=\"O1\"/><Bond atomName1=\"C3\" atomName2=\"H2\"/><Bond atomName1=\"C3\" atomName2=\"H3\"/><Bond atomName1=\"C4\" atomName2=\"C5\"/><Bond atomName1=\"C4\" atomName2=\"C9\"/><Bond atomName1=\"C4\" atomName2=\"H4\"/><Bond atomName1=\"C5\" atomName2=\"C6\"/><Bond atomName1=\"C5\" atomName2=\"H5\"/><Bond atomName1=\"C5\" atomName2=\"H6\"/><Bond atomName1=\"C6\" atomName2=\"C7\"/><Bond atomName1=\"C6\" atomName2=\"H7\"/><Bond atomName1=\"C6\" atomName2=\"H8\"/><Bond atomName1=\"C7\" atomName2=\"C8\"/><Bond atomName1=\"C7\" atomName2=\"H9\"/><Bond atomName1=\"C7\" atomName2=\"H10\"/><Bond atomName1=\"C8\" atomName2=\"C9\"/><Bond atomName1=\"C8\" atomName2=\"H11\"/><Bond atomName1=\"C8\" atomName2=\"H12\"/><Bond atomName1=\"C9\" atomName2=\"H13\"/><Bond atomName1=\"C9\" atomName2=\"H14\"/><Bond atomName1=\"C10\" atomName2=\"C11\"/><Bond atomName1=\"C10\" atomName2=\"C18\"/><Bond atomName1=\"C10\" atomName2=\"H15\"/><Bond atomName1=\"C11\" atomName2=\"C12\"/><Bond atomName1=\"C11\" atomName2=\"H16\"/><Bond atomName1=\"C12\" atomName2=\"C13\"/><Bond atomName1=\"C12\" atomName2=\"H17\"/><Bond atomName1=\"C13\" atomName2=\"C17\"/><Bond atomName1=\"C13\" atomName2=\"H18\"/><Bond atomName1=\"N1\" atomName2=\"C14\"/><Bond atomName1=\"C14\" atomName2=\"O1\"/><Bond atomName1=\"C14\" atomName2=\"C15\"/><Bond atomName1=\"C15\" atomName2=\"N2\"/><Bond atomName1=\"C15\" atomName2=\"C16\"/><Bond atomName1=\"N3\" atomName2=\"C16\"/><Bond atomName1=\"N3\" atomName2=\"H19\"/><Bond atomName1=\"C16\" atomName2=\"N4\"/><Bond atomName1=\"N5\" atomName2=\"C17\"/><Bond atomName1=\"N5\" atomName2=\"H20\"/><Bond atomName1=\"C17\" atomName2=\"C18\"/><Bond atomName1=\"C18\" atomName2=\"H21\"/></Residue></Residues></ForceField>\n",
"iupac": "6-(cyclohexylmethoxy)-~{N}-phenyl-9~{H}-purin-2-amine",
"smiles": "[H]c1c(c(c(c(c1[H])[H])N([H])c2nc3c(c(n2)OC([H])([H])C4(C(C(C(C(C4([H])[H])([H])[H])([H])[H])([H])[H])([H])[H])[H])N=C(N3[H])[H])[H])[H]"
}
}
}
Loading