pychembldbを使うための手順

今週末の勉強会の内容です。ChEMBLダンプのimportに時間がかかるので、pythonラッパー弄りたい人はChEMBLを予め入れてから参加するといいでしょう。

当日行う手順を記しておきます。

Pythonのインストール

2.7.xを入れます。OSXは標準でインストール済みです。WIndowsの場合はここからインストーラをダウンロードしてインストールしてください。

pipのインストール

pipはPythonのパッケージ管理ツールです。

ez_setup.pyをダウンロードして実行します

sudo python ez_setup.py

その後get-pip.pyをダウンロードして実行

sudo python get-pip.py

pychembldbのインストール

最初にPostgreSQLのアダプタであるpsycopg2をインストールし、続いてORマッパーをインストールし、最後にChEMBLdbインターフェースをインストールします。

sudo pip install psycopg2
sudo pip install sqlalchemy
sudo pip install pychembldb

pychembldbの設定

pychembldbはデフォルトでMySQLを使うようになっているので.bashrcに以下のように記述しておきます。

export CHEMBL_URI="postgresql+psycopg2://localhost/chembl_17"

編集したら、新しいタブを開くかsource .bashrcをしてください(source効くのかな?)

(注)

例えばuserがpostgresでパスワードがsakeと設定している場合は

export CHEMBL_URI="postgresql+psycopg2://postgres:sake@localhost/chembl_17"

と記述します

使ってみる

python 対話環境を起動します

python

pythonコードを実行します(select pref_name from target_dictionary をpythonで実行)。

>>> from pychembldb import *
>>> for target in chembldb.query(Target).all():
...   print target.pref_name

ターゲット名がずらずらと表示されればOKです。

OSXにChEMBLを入れる

今週末の勉強会の内容です。ChEMBLダンプのimportに時間がかかるので、pythonラッパー弄りたい人はChEMBLを予め入れてから参加するといいでしょう。

当日行う手順を記しておきます。

Homebrewのインストール

パッケージ管理システムです(WIndowsユーザーは飛ばしてください)。

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

こんだけ。

PostgreSQLのインストール

brewを入れてあればインストールは下のコマンドを打つだけ。(WIndowsユーザーはここから最新版のインストーラをダウンロードしてください)

brew install postgresql

インストール後にデータベースを初期化します

initdb /usr/local/var/postgres

サーバー起動

postgres -D /usr/local/var/postgres

別のターミナルから動いているか確認をします

psql -l

(エラーになる場合)

Lionだと標準でPostgreSQLがインストールされているようで、/usr/bin/psqlが存在します。homebrewでインストールする場合には/usr/local/bin/psqlなので、

which psql
/usr/local/bin/psql

とならない場合はPATHを通すか

/usr/local/bin/psql -l

と打ってください

環境変数に設定する場合は~/.bashrcに以下の行を追加します

export PATH=/usr/local/bin:$PATH

その後新しいターミナルを立ち上げた後、

psql -l

ChEMBLを入れる

ChEMBLのftpサイトから最新版(chembl_17_postgresql.tar.gz)をダウンロードします。

展開します

tar xvfz chembl_17_postgresql.tar.gz
cd chembl_17_postgresql

PostgreSQLにChEMBL用のデータベースを用意します

psql postgres
postgres=# create database chembl_17;
#Ctrl-D で抜けます

ダンプをインポートします

psql chembl_17 < chembl_17.pgdump.sql

数時間待ちます。(MBAの2013バージョンだと1.5hくらいかかったそうです)

僕のMBAではこのような結果でした。(ERRORは特に問題ありません)

ALTER TABLE
ALTER TABLE
REVOKE
ERROR:  role "postgres" does not exist
ERROR:  role "postgres" does not exist
GRANT

real    44m46.001s
user    0m10.153s
sys 0m13.130s

動作確認

$ psql chembl_17
psql (9.2.4)
Type "help" for help.

chembl_17=# select pref_name from target_dictionary;

と打ってターゲット名が表示されればきちんと動いています。

来週末は三島で創薬系の勉強会兼新年会です

タイムテーブルと懇親会会場が決まりました。それからQAを追加しておきました。

ChEMBLはPostgres,MySQL,OracleのSQLダンプが配布されているので、データベースの構築は非常に簡単に行えます。構築を実際にやってみようというのが今回のメインです。

あわせてPythonでアクセスする方法や、イントラにWeb(REST)インターフェースを実装する方法なんかもお話できればと。

細かい話は後でまた書きますが、楽しいので興味があればお気軽に参加されるといいと思います。

The PubChemQC project

中田さんが興味深い試みを始めていた

ChEMBLだとSARもろなデータなので、こちらで同じことやるのも楽しそう。pybel+pygamessでスクリプト書けばよさげ。

正月休みに考えてみようかな。

ChEMBLといえば来月勉強会やるので興味があれば是非参加を。(懇親会のみでももちろん歓迎です☆)

aromantic factor

という、メディシナルケミストリーにとって非ロマンチックな指標を思いついでウキウキしてみたが、それって結局1-fsp3じゃないかと気付いてげんなりしたのであった

ProductName メディシナルケミストリー
Graham L. Patrick
丸善 / ?円 ( 2003-03 )


やごみ酒店

忘年会兼打ち合わせ

来年は1/18にやりますのでよろしくお願いします。懇親会は美味しいところにする予定です。

そしてやごみ酒店での打ち合わせは楽しかった

居酒屋っぽくない佇まい

1386150214

熱燗は将軍という銘柄らしい、冷だと英勲。

1386150215

いわし山盛り

1386150217

カレイも山盛り

1386150218

磯辺揚げ

1386150220

タコ

1386150221

スモークサーモンはちょっと塩気が強かった。

1386150222

一人あたり3KだったのCP高い。

また行きたい

Redmineのハンズオンは来週の土曜日です

プロジェクトの成功というのは個人のスキルの継続的な向上に加えて、チームのコミュニケーションを如何に円滑にするかにかかっているかと思う。

まぁ、それは創薬プロジェクトでも一緒なわけで。でコミュニケーションを円滑にするためにそれ用のツールに頼るのがいいかと。

  • レポート、ガントチャートが自動で作成される
  • 適切なワークフロー管理
  • トレーサビリティの向上
  • 他のツールとの連携(例えば化合物管理システムとかELNとか)

なんかができるのがいいかなと思っている。特に化合物管理システムについては5Wの最後のWHYを記録できないのが問題で、これを記録するような簡単な仕組みがないとコミュニケーションの円滑化につながらないような気がする。

  • WHO: OK
  • WHEN:OK
  • WHAT:OK
  • WHERE,HOW: OK(ELN)
  • WHY:NO

週に一度会議をするとかは一見良い案に見えるけど、現状把握だけで時間を取られるし、そのためのレポート作成時間もバカにならないし、結構コスト高なのではないかなと。

こういうあたりはredmineのようなITSで管理すれば、割りとうまく回りやすいのかなと思っている。というより一人で使っているけど、調子いい。

脱Excel! Redmineでアジャイル開発を楽々管理のフローは創薬のサイクルでも大体同じ流れですね。

flow

  • 合成案をだして
  • 担当者決めて合成
  • アッセイ結果をフィードバック

まぁPDCAサイクルまわすようなのは大体こんな感じかと。

バックログとしての合成案

AZは基本的にはこの考え方だと思います。

アジャイルな創薬ということを考えたらフィードバック結果で合成計画を柔軟に変更できないといけないから、バックログを持っていたほうがいいんだろうなと思う。今の日本だと、合成案考えたヒトが合成するみたいな風潮になっていて、間にレビューもおかないし、柔軟性が足りないし、ケミストの能力がそのままストレートに反映されるのでそれっていいのかなーと思ったりもする。あとは、合成案の批判=ケミストの人格批判みたいに受け取るヒトが多いというのも、案は案として客観的に評価できてない証拠だよねーと。

というわけで、こういったあたりに興味があれば参加してくださると嬉しいです。

(2013.09.27 追記) Redmineの操作に関してはプログラミングのスキルは必要ありませんのでお気軽に(Q&Aに追記しておきました)。

ちなみに懇親会は三島バルという飲み歩きイベントに便乗しまして、二次会どこかに集合してまったりやりたいなと考えています。

参考書籍

ProductName チケット駆動開発
小川 明彦
翔泳社 / 3444円 ( 2012-08-24 )


製薬やLS業界向けRedmineハンズオン+αの二日目を考えている

2日目のGit入門でFlaskでWiki作るやつにGitを絡めるか、Sphinx+Gitで文書管理みたいな方向にしたら良いのか悩んでいる。

これ聞きたいに投票するかコメント入れてもらえれば考慮します。

それから、10/5は三島バルとぶつかっていて懇親会のお店が取りにくいことが判明したのでバルに混ざって二次会どっか取るとか沼津に移動するかちょっと調整しているので少々お待ちください。まぁバル楽しいのでバルになるかと思いますがw

「製薬やLS業界向けRedmineハンズオン+α」の懇親会

懇親会のconnpassを用意しましたので参加される方はお早めに申込ください(多分後から追加できないところに予約することになると思うので)