31102015 chemoinformatics
前回の反省を踏まえて今回は早めに告知をw
僕はElectronの話をしようかなぁ。皆様の発表エントリをお待ちしています。
最近blogも放置気味なのでそろそろ更新頻度をあげていきたい(かも…)
31102015 chemoinformatics
26072015 三島 chemoinformatics q-chem
参加した皆様お疲れ様でした。色々と面白い話が聞けて楽しかったです。
僕は分子設計を軽くディスってきましたw 本当にもっと頑張って欲しいですね。リードオプティマイゼーションのスタンスからFMOを使っているんだけど、もっとアーリーな段階での使い方の議論は新鮮だったので今度試してみたい。
あとは告知の仕方に問題があったので改善したい。事前に知っていれば参加したのにと何人かのヒトに言われたので。twitterやれとしか言えないが、それも難しいでしょうからメールを送るとか考えないとあかんのかな…
懇親会で興味を伺ったらディプラーニングに注目しているヒトが多いようなので次回はそれ系のネタを集めようかなと思っています。
反省会は「鈴木屋」か「やごみ」でやりましょうw
21062015 chemoinformatics
今回は某WSの次の日にしました。
既に決まっている内容はOpenEye Toolokitの紹介(ハンズオンあり)とFMOの話(僕がします)なのでワンランクアップを狙うメディシナルケミスト(not ケミスト)には楽しいと思います。そしてSBDDerにとっても役立つと思います。
ケミストもSBDDerも自分の知識の中でファーマコフォアというものを解釈しがちで、(あっても弱いような微妙な角度の)水素結合を大事にしたり、Cl-πとかいう微妙な相互作用を強いものと認識したがったりしてアレなんだよねーっていう残念な思いをします。FMOで計算するとそのあたり定量的に数値が出るのでスッキリしますね。
14032015 三島 chemoinformatics
発表者の方、参加者の方お疲れ様でした。今回もとてもおもしろい話が聞けて満足でした。
先週の会の直前にingressのレベルがあがったので、次のレベルが上がるタイミングで更新しようとしたらちょうど一週間経ってしまった。現在レベル4…(二次会でingressの色々を聞いたので多少効率よくAP獲得できるようになったかなと。)
とはいえ、うちの近所は対立組織が強くて、なかなかCFつくったり出来なくてAP獲得率が良くないです…
お昼ごはんは五徹
懇親会は、「ごめんね青春」でチラチラ出てきたらしいところ
満足すぎるボリューム☆
04032015 三島 chemoinformatics
週末までには犬グレスはレベル3に上げておきたい(三島で破壊活動してみたいのでw)。
時間が余るようだったら 「あたらしいキーコンパウンドすいていのしかた」 という題で、patinformatics関連の発表でもしようかなと思っています。MMPネットワークからのキーコンパウンド推定のアイデアですが、個人的にはCSA(Molecular idle)とFOGをミックスした感じのアルゴリズムだろうなと感じているので、わりと面白いんじゃないかなーとは思っているんですが…
05022015 chemoinformatics
最近モンストばかりですが、Mishima.sykの次回の開催は3/7となりますので、参加をお待ちしています。
内容はまだ確定していませんがchemoinformaticsとbioinformaticsまわりになるのではないかと。
僕も何か話せればいいなと思っていますが、モンストしかしてないからなぁ…w
息子と阿修羅をやっつけにいくという冒険談くらいしかw
尚、先ほど二体目のハンターキングに神化させたので、ヤマタケソロで行けるかな?
ぬらりひょんも手に入れたのでイザナミはソロで行けそう。
26112014 chemoinformatics
26102014 chemoinformatics cytoscape
参加されたみなさんお疲れ様でした。
僕はNGSの解析の話が聞けたし、ネットワークまわりの色々なヒントが聞けて非常に勉強になりました
反省点
反省会は忘年会を兼ねてやればいいですかね(やごみで)…w
私のスライド
自分のスライドというかハンズオンのセッションは、Cytoscape以外に色々いれないといけない感じになってしまったので、予めサンプルを用意しておけばよかったかなぁと思った。
これからigraphを使ったネットワーク分析をしてみようと思う人が増えてもらえると嬉しいなと。
懇親会は(安定の?)香香飯店
二次会はワインバーみたいなとこ(名前忘れた)
21102014 chemoinformatics cytoscape
RDKItはインストールが面倒くさいのと、実務だとPipelinePIlotとかOpenEye使うだろうからさらっと流すかも。その分iGraphのいじり方を多めに説明するかもしれない。
まだスライドに手をつけてないからわからないけどw
iGraphを使えばノードとエッジに属性を簡単に付加できてgml形式で出力できる。このファイルはすぐにCytoscapeで開くことが出来て便利です。sifとかタブ区切りテキストは色々と面倒ですね。
from rdkit import Chem from rdkit.Chem import AllChem, DataStructs, MolToSmiles import numpy as np from igraph import Graph import numpy as np import logging logging.basicConfig(level=logging.DEBUG) threshold = 0.5 suppl = Chem.SDMolSupplier('syk.sdf') fps = [AllChem.GetMorganFingerprintAsBitVect(mol, 2) for mol in suppl] smiles = [MolToSmiles(mol) for mol in suppl] mat = [] for i in range(len(fps)): mat.append([DataStructs.FingerprintSimilarity(fps[i],fps[j]) for j in range(len(fps))]) sm = np.array(mat) def search_root(sm, remain): cand = None max_c = 0 for l in remain: num_c = len(np.where(sm[l] > threshold)[0].tolist()) if num_c > max_c: max_c = num_c cand = l return cand def check_edge(sm, current, root): cand = None max_c = 0 candidates = set(np.where(sm[root] > threshold)[0].tolist()) for c in candidates: if c in current: if sm[root, c] > max_c: max_c = sm[root, c] cand = c return cand edges = [] sim_edges = [] np.fill_diagonal(sm, 0) remain = set(range(len(sm[0]))) current = set() new = set() ith = 1 while remain: logging.debug("### {} th ###".format(ith)) ith += 1 root = search_root(sm, remain) if root is None: break logging.debug("root: {}".format(root)) cand = check_edge(sm, current, root) if cand: logging.debug("connect {} and {}".format(cand, root)) edges.append((cand, root)) current.remove(cand) sm[:, cand] = 0 remain.remove(root) sm[:, root] = 0 for i in np.where(sm[root] > threshold)[0].tolist(): if i in remain: edges.append((root, i)) sim_edges.append(sm[root, i]) new.add(i) logging.debug("new nodes: {}".format(new)) current |= new remain -= current new = set() g = Graph(edges) g.vs["smiles"] = smiles g.es["similarity"] = sim_edges g.save("test.gml")