Automating purchasability

From DISI
Jump to navigation Jump to search
It seems you're out of the loop. Have you heard of the new purchasability report? http://zinc15.docking.org/substances/shopping-list/

You can paste in ZINC IDs here (we've done upwards of 1000 at a time) and see/assign the compounds to vendors.

Also, I just pushed an updated version of the getposes.py script in the trunk version of DOCK37 that (with the -z flag) can retrieve some interesting information about the compounds from ZINC and directly annotate the mol2 files, and the view it using Chimera ViewDOCK

As a consequence of the above feature, I've just started writing a client-size wrapper around the ZINC REST API. The skeleton of this is currently living in DOCK37/analysis/zincapi.py

It's tailored for quick scripting, not efficiency, but makes it so you can do things like this:

>>> import zincapi
>>> zinc = zincapi.ZINCAPI()
>>> morphine = zinc.substances.get('ZINC3812983', fields=('zinc_id', 'smiles', 'purchasability', 'vendor_catalogs', 'protomers', 'ecfp4_fp.as_bits'))
>>> print morphine.purchasability
Premier

>>>  for protomer in morphine.protomers:
    print protomer['net_charge'], protomer['smiles']
1 C[N@@H+]1CC[C@@]23c4c5c(O)ccc4C[C@@H]1[C@@H]2C=C[C@H](O)[C@@H]3O5
1 C[N@H+]1CC[C@@]23c4c5c(O)ccc4C[C@@H]1[C@@H]2C=C[C@H](O)[C@@H]3O5

>>>for vendor, items in morphine.vendor_catalogs.items():
    print vendor, ' '.join(items)
tocris 5158
tetrahedronbb TS61669
trc M652290
akos AKOS015966554
bocscibb 6055-06-7
aurorabb A17.877.034 A17.877.225 A17.902.521 A18.034.760
sialbb 1448005|USP 44179|SIGMA-ALDRICH M005|CERILLIAN M8777|SIGMA M9524|SIGMA-ALDRICH Y0000452|SIGMA-ALDRICH Y0000830|SIGMA-ALDRICH Y0001471|SIGMA-ALDRICH

Lastly, if you have a file that is a bunch of ZINC IDs, you can simply do this to get their purchasability

curl http://zinc15.docking.org/substances.txt:zinc_id+smiles+purchasability -F zinc_id-in=@test.id -F count=all

or this to simply filter those that are for sale

curl http://zinc15.docking.org/substances/subsets/for-sale.txt -F zinc_id-in=@test.id -F count=all

Hopefully that hasn't scared you away!