Skip to content

Instantly share code, notes, and snippets.

@aschreyer
Created June 1, 2011 15:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aschreyer/1002627 to your computer and use it in GitHub Desktop.
Save aschreyer/1002627 to your computer and use it in GitHub Desktop.
Implementation of RESTful web services for CREDO
import json
from urllib import urlopen
# GET A CHEMICAL COMPONENT
response = urlopen('http://0.0.0.0:8000/credo/rest/chemcomps/sti').read()
# PARSE JSON INTO PYTHON DICTIONARY
sti = json.loads(response)
# COLUMN DATA/ATTRIBUTES ARE CONVERTED TO DICTIONARY KEYS
print sti['het_id'], sti['ism']
'STI' 'Cc1ccc(cc1Nc2nccc(n2)c3cccnc3)NC(=O)c4ccc(cc4)C[NH+]5CC[NH+](CC5)C'
# GET ALL CHEMICAL COMPONENTS THAT HAVE A SPECIFIED SUBSTRUCTURE
url = 'http://0.0.0.0:8000/credo/rest/chemcomps?substruct=c1cc(cnc1)c2ccncn2'
response = urlopen(url).read()
data = json.loads(response)
for hit in data['chemcomps']: print hit['het_id'], hit['ism']
'AK8' 'Cc1cc(ccc1Oc2c(cccn2)c3ccnc(n3)NC)NC(=O)Nc4cccc(c4)C(F)(F)F'
'BZ9' 'Cc1cc(c2ccccc2c1Oc3c(cccn3)c4ccnc(n4)NC)Nc5[nH]c6ccccc6n5'
'K11' 'CNc1nccc(n1)c2cccnc2Oc3ccc(c4c3cccc4)Nc5[nH]c6cc(ccc6n5)C(F)(F)F'
'L1E' 'Cc1ccc2c(c1Nc3c(cccn3)c4c5c(nc[nH]5)ncn4)ccnc2Nc6ccc(cc6)Cl'
'LJE' 'Cc1cc(ccc1Oc2c(cccn2)c3ccncn3)NC(=O)c4cccc(c4)C(F)(F)F'
'LJF' 'C=Nc1ncc(c(n1)c2cccnc2Oc3ccc(cc3)NC(=O)c4ccccc4Nc5ccccc5)F'
'MPZ' 'C[NH+]1CC[NH+](CC1)Cc2ccc(cc2)C(=O)Nc3cccc(c3)Nc4nccc(n4)c5cccnc5'
'MR9' 'Cc1ccc(cc1Oc2c(cccn2)c3ccnc(n3)NC)C(=O)Nc4cc(ccc4N5CCOCC5)C(F)(F)F'
'MUH' 'Cc1ccc(cc1Nc2c(cccn2)c3ccncn3)NC(=O)c4cccc(c4)C(F)(F)F'
'NIL' 'Cc1ccc(cc1Nc2nccc(n2)c3cccnc3)C(=O)Nc4cc(cc(c4)n5cc(nc5)C)C(F)(F)F'
'PRC' 'Cc1ccc(cc1Nc2nccc(n2)c3cccnc3)NC(=O)c4cccnc4'
'PZF' 'COc1ccc(cn1)c2cc(ncn2)[N@@]3C[C@@H]([C@H](C3)[NH3+])c4cc(c(cc4F)F)F'
'RAJ' 'Cc1ccc(cc1Nc2c(cccn2)c3ccncn3)C(=O)Nc4cc(cc(c4)C(F)(F)F)CCC[NH+](C)C'
'STI' 'Cc1ccc(cc1Nc2nccc(n2)c3cccnc3)NC(=O)c4ccc(cc4)C[NH+]5CC[NH+](CC5)C'
'XDK' 'c1cc(cnc1)c2ccnc(n2)N'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment