Mishima.syk #3やりました

発表者の方、参加者の方お疲れ様でした。

RedmineのLTのは生々しいのでpandasの話だけslideshareにあげてあります。

今回新しく試したことはQuestantを使ったアンケートを用意したことかな。あと、一次会の予約が通ってなくて(あの店はあるあるなので気にしないw)ちょっと狭い部屋になったけど、懇親の密度があがって結果オーライですね(二次会の分くらいまで飲んでたしw)

次回もよろしくお願いします☆

三島バルあたりにぶつけられればと考えていますw

ProductName Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理
Wes McKinney
オライリージャパン / 3780円 ( 2013-12-26 )


RDKitでFatal Python error: PyThreadState_Get: no current thread

homebrewのRDKit入れたらこんなエラーに遭遇

$ python mkdesc.py 
Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6

調べたらboost関連らしい

brew rm boost
brew install --with-icu --build-from-source boost
brew uninstall rdkit
brew install rdkit

で動くようになったけど brew installで再度boostのインストールを始めたので2番目のboostのインストールは必要ないかもしれない

土曜日はpython-ggplotの話もします

ChEMBLからデータを取ってきて、活性が強いほど色が濃くなってドットのサイズも大きくなるようにしてみた。python-ggplotを使うと数行で描くことができるので調子いいですみたいな話をします。

あとはscikit-learnとrdkitで予測モデルを作ったりクラスタリングをしたりといった話もできればなーと考えているので、 興味があれば参加して下さい。

import pandas as pd
from ggplot import *
import numpy as np

d = pd.read_csv("syk.csv")
d["pIC50"] = 9 - np.log10(d["IC50"])
print d

p = ggplot(aes(x='MWT', y='ALOGP', color="pIC50", size="pIC50"), data=d) + geom_point()
#print p
ggsave("2dplot.png", p)

1404120520

今週末はMishima.sykです

ただいま、絶賛スライド作成中です。

なんというかscikit-learnのインストールではまっていたw。というより色々やっているうちにpipが壊れてわけがわからんようになったのでsofを見ながら治した。治療w

brew install python --build-from-source
sudo pip install numpy --upgrade
sudo pip install matplotlib --upgrade
sudo pip install scikit-learn --upgrade
sudo pip install ggplot --upgrade
sudo pip install psycopg2 --upgrade
sudo pip install pychembldb --upgrade

/usr/bin/pythonを使うならScipy Superpackでいいんだけどね。homebrewのpythonで使うならこっちを見ながら。

ちなみに

brew install gfortran

のところは

brew install gcc

でいいです(今はgfortranはgccに含まれているので)

RDKitのアップグレード

久々にRDKitをアップグレードしようかなと、

brew upgrade rdkit

したら

Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

というエラーが出たのでここ見て対処。

尚、RDKit次回の勉強会で@iwatobipenに紹介してもらえるので、興味があれば参加すればいいと思います。(というより、こういう場でないとRDKitの話は聞けないのでは…)

僕はpythonでinformaticsとか機械学習するためのライブラリの話をします。そして@y_samaがpythonを楽しく学ぶためのサイトを紹介するので、みんなpythonistaまっしぐらですねw

静岡中部はGoにちょっと食われつつあるけど、東部のあたりをPythonで染めてバランスをとればいいですねw (最近Haskell書いてない…)

  • 13:00 - 13:30 準備と自己紹介など
  • 13:30 - 13:45 DBCLSの紹介 @bonohu
  • 13:45 - 14:00 統合TV統計とRedmine導入記 @h_ono
  • 14:00 - 14:05 統合TVのなかで創薬に役立つ番組の紹介 @bg7860
  • 14:05 - 14:10 RedMine (タスクかくにん!よかった♡(仮)) @No_6
  • 14:10 - 14:15 Redmineの話2 @kzfmix
  • 14:15 -14:30 休憩
  • 14:30 - 14:45 メドケム的な話 @hironagasue
  • 14:45-15:00 RDKitの話 @iwatobipen
  • 15:00 - 15:15 休憩
  • 15:15 - 15:45 pandas, ggplot, scikit-learnを熱く語る的な(仮) @kzfmix
  • 15:45 - 16:15 check.io ハンズオン @y_sama
  • 16:15 - 16:45 ハンズオン続き(または予備)
  • 16:45 - 17:00 後片付け->懇親会へ移動

最近静岡の勉強会に行けてないので、そろそろ参加したいところ…

pychembldbをATCに対応させた

ちょっと作業したのでついでにドキュメントも更新して0.3.4にした。

ATC分類でレベル1がAつまり消化管と代謝作用の分子を探してみる。

::: python
>>> from pychembldb import *
>>> for c in chembldb.query(AtcClassification).filter_by(level1="A"):
...   for mol in c.molecules:
...     print mol.pref_name
... 
SODIUM FLUORIDE
SODIUM MONOFLUOROPHOSPHATE
OLAFLUR
SODIUM FLUORIDE
HYDROGEN PEROXIDE
CHLORHEXIDINE
AMPHOTERICIN B

ATC分類と認証日を表示させる

>>> for p in chembldb.query(Product).limit(10):
...   for m in p.molecules:
...     for c in m.atc_classifications:
...       print m.pref_name, p.approval_date, c.level1
... 
SULFAPYRIDINE 1982-01-01 J
HEPARIN SODIUM 1982-01-01 C
HEPARIN SODIUM 1982-01-01 C
HEPARIN SODIUM 1982-01-01 B
HEPARIN SODIUM 1982-01-01 B
HEPARIN SODIUM 1982-01-01 S

pychembldbをChEMBL18に対応させた

chemblのpythonインターフェースであるpychembldbをchemblの最新リリース(18)に対応させました。

ついでに前回の勉強会でクラス名がわかりにくいと指摘されたので、その部分をちょっと修正。

これでスキーマ図を見ながらクエリを組み立て易くなっていると思います。

尚、クラスの名前付けルールは

具体的には以下のクラスは別名をつけてあります。

Cell = CellDictionary
Target = TargetDictionary
Molecule = MoleculeDictionary
Curation = CurationLookup
DataValidity = DataValidityLookup
ActivityStd = ActivityStdLookup
ConfidenceScore = ConfidenceScoreLookup

ChemblId = ChemblIdLookup

さぁ、コレでもなぞるかと思ったらリレーションが定義されてなかった。

修正しなきゃ

それから来月の5日に勉強会やります。発表内容を更新しました。

  • Check.IOのハンズオン @y_sama
  • DBCLSでのRedmineの使われ方の話 @h_ono
  • RDKitの話 @iwatobipen
  • メドケム的な話 @hironagasue
  • (15min) DBCLSの紹介 @bonohu
  • (5min) 統合TVのなかで創薬に役立つ番組の紹介 @bg7860
  • (5min) RedMineの話 @No_6
  • (5min) Redmineの話2 @kzfmix

エンタルピックな要素がメインの結合には量子化学計算を

中田さんのPubChemQC Projectのスライドを見ながら、「あー、昔chembl版欲しいなと思っていたけど今だとsurechembl版が欲しいなぁ」と思った。

ついでに、もっとインタラクションよりのデータがあればなーという方向に妄想は膨らんだ。つまり、PDBでリガンド入りの複合体結晶構造のPIEDAのデータベースあれば嬉しいなぁと思った。

Mishima.syk #3やります

いわしかくにん、よかった♡ (画像はイメージです)

1386150217

今回は

Redmineの事例はLT含めると3演題くらいになると思います。カルチャーの違いで何が受けるか分からない(うちはスクラムダメだったw)ので試行錯誤の共有化ができればいいなと思っています。

Check.IOは初心者向けのハンズオンになると思うので、ちょっとプログラミングにも興味あるんだけどなーという方は参加するとPythonを楽しみながら学べると思います。

時間に余裕があればggplot,pandas,scikit-learnなんかもやれればいいなと思っています。

皆様の参加をお待ちしています☆

Mishima.syk開催しました

Mishima.syk無事に終わりました。参加者の皆様お疲れ様でした。プロジェクターの手配ができないというトラブルがありましたが、ハンズオンで皆さんパソコン持ち込んでいるので別にプロジェクターなくても良かったという。

今回、セミナールームが確保できずに畳の和室しか借りられなかったのですが、結果いい感じのワイガヤになって楽しく進められて良かったですね。室料もかなり安いので次回も同じ所を借りるかも。

後半の発表もみなさんかなり突っ込んだ話をされていて、質疑も盛り上がったし、色々勉強になってよかった。が、うちのカルチャーに根付かせるにはエバンジェリスト的な立ち位置のケミストが必要で、それは(プロジェクトにコミットししない立ち位置の)僕ではできないんだろうなーと漠然と思い、ちょっと残念だった。

前回の反省をふまえて、今回はアンケートをきちんと取って次回に生かそうと思っていたのですが、直前バタバタしたためまたもや取りそこねてしまった。もし、次回やりたいなーとか聞きたいなーと考えている話がありましたら最寄りの管理者までリクエストしておいてください。RDKitなんかいいんじゃないかなーと思うけど、まぁみんなPPでやるからなー。

資料はconnpassにおいてあります。

補足的な内容

pychembldbを使うメリットは?

chembldbを入れればSQLですべてのデータにアクセスできます。

単に、データを取りたいだけだったら別にこれで構いません。pychembldbを使うと、複雑なSQL文を発行しなくてもわかりやすくデータにアクセス出来るのが一点、もう一点はお題5,6のようにblaskt等の他のサービスと連携させやすくなるというあたりですね。

pychembledbでテーブル名とクラス名が一致しない物がある

MoleculeDictionaryではなくMoleculeになっていたりするのは、命名がださいという理由で変えてしまっていますが、ERDみながらクエリを組み立てて行くときにはまるので、次回のバージョンのときに両方でアクセス出来るようにしておきます。

尚、テーブルは複数形になっていますが、クラス名は単数形に統一してあります。