Ipynb idioms

From DISI
Jump to navigation Jump to search

These are idioms for iPython Notebooks, also generally python.

top of every ipynb

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import requests
import urllib

set up to use ZINC API

(hint ask john for credentials)

urlroot = 'http://zinc15.docking.org'
format = 'txt'

execute a command, with optional limits

R = requests.get(cmd + '?count=10000')
lines = list(R.iter_lines())
print len(lines)
print R.text

setup

from rdkit.Chem.Draw import IPythonConsole
import rdkit.Chem.Draw as D
import rdkit.Chem as C
import rdkit.Chem.Descriptors as CD
from rdkit.Chem import SmilesMolSupplier

activate zinc api

import zinc.api
api=zinc.api.make_api()

Display mols

path = '/nfs/home/jji/ipynb/data/test.smi'
mols = SmilesMolSupplier(path, titleLine=False)
D.MolsToGridImage( mols, legends=[m.GetProp('_Name') for m in mols])

drill down on mol

s1 =api.substances.get(110341849)
[(ci.supplier_code,ci.catalog.name) for ci in s1.catalog_items]

stuff about sets

from sets import Set

https://docs.python.org/2/library/sets.html

employees = engineers | programmers | managers           # union
engineering_management = engineers & managers            # intersection
fulltime_management = managers - engineers - programmers # difference
engineers.add('Marvin')                                  # add element


working with results

cmd3 = urlroot + '/' + table1 + '/txt:best_purchasable,best_catalog/substance.sub_id={0}'
cmd4 = urlroot + '/' + table1 + '/txt:best_purchasable,best_catalog/substance.sub_id in {0}'
def getPurchasability(sub_id):
   R1 = requests.get(cmd3.format(sub_id))
   purch,cat = R1.text.splitlines()[1].split('\t')
   return int(purch),cat
def getPurchasability2(*sub_ids):
   R1 = requests.get(cmd4.format(','.join(map(str, sub_ids))))
   data_lines = [line.split('\t') for line in R1.text.splitlines()[1:]]
   print data_lines
   return [(int(purch), cat) for purch, cat in data_lines]
def to_sub_id(zinc_id):
   return int(zinc_id.lower().replace('zinc', ))