Skip to content

Commit e58a9eb

Browse files
committed
function to look for similar ligands in RCSB
1 parent 6e6da26 commit e58a9eb

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

mmtbx/wwpdb/rcsb_web_services.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,3 +482,48 @@ def get_emdb_id_for_pdb_id(pdb_id):
482482
if len(emdb_ids)==0:
483483
return None
484484
return emdb_ids
485+
486+
def get_similar_ligands_via_smiles(smiles, **kwds):
487+
# sub-struct-graph-relaxed-stereo
488+
# graph-relaxed-stereo
489+
similar_ligand_query = '''
490+
{
491+
"query": {
492+
"type": "terminal",
493+
"service": "chemical",
494+
"parameters": {
495+
"type": "descriptor",
496+
"value": "%s",
497+
"descriptor_type": "SMILES",
498+
"match_type": "sub-struct-graph-relaxed-stereo"
499+
}
500+
},
501+
"return_type": "mol_definition",
502+
"request_options": {
503+
"paginate": {
504+
"start": 0,
505+
"rows": 25
506+
},
507+
"results_content_type": [
508+
"experimental"
509+
],
510+
"sort": [
511+
{
512+
"sort_by": "score",
513+
"direction": "desc"
514+
}
515+
],
516+
"scoring_strategy": "combined"
517+
}
518+
}
519+
'''
520+
assert (3 <= len(smiles)), 'short SMILES "%s" return too many results' % smiles
521+
sqr = similar_ligand_query % (smiles)
522+
print(sqr)
523+
jsq = json.loads(sqr)
524+
return post_query(query_json=jsq, **kwds)
525+
526+
if __name__ == '__main__':
527+
rc=get_similar_ligands_via_smiles('N#C')
528+
# rc=get_similar_ligands_via_smiles('NCCC(O)=O')
529+
print(rc)

0 commit comments

Comments
 (0)