PDCAと成果主義
なんとなく思ったので、書いておく。
PDCAサイクルってありますね。Plan - Do - Check - Actionというあれです。
創薬もアジャイル開発なのでPDCAをどんだけ早く快適にまわすかってのは重要なわけです。
創薬的にはこんな感じ
- P: 合成計画を立てる
- D: 合成する
- C: アッセイする
- A: 分析する、解析する
- P: (解析結果をもとに、よりより)合成計画を立てる
個人的には量子化学的な手法をSBDDに組み込むっていうのが興味があって色々やっているわけですが、ああいう手法って解析の部分には非常に貢献する(見えなかった相互作用が明確に理解できたりとか)のだけど、じゃぁ、その知見を「合成計画に反映させる」となると、とたんに難しくなったりして、結局、解釈で終わってしまうことが多々あるわけです。
僕自身は、そういうことを積み重ねていって段々とPlanのほうにも貢献していくようにノロマなプロセスを踏むしかない(というか踏む)のがいいのかなと思っているのだけど、成果主義的な観点だと「結果的に貢献してないから何もしてないと同義」的な扱われ方をしますよね。
と、よくある成果主義批判っぽいことを書いているだけなんですけど、それがダメっていいたいわけじゃなくて、そこんとこをうまくバランスとっていく術ってないのかなぁと。
そういう例が知りたい。
構造最適化シミュレーションをCytoscapeで
以前、おもむろに思いついたLeadOptimizationのシミュレーターで、networkxはgml出力できてCytoscapeでimportすればいいじゃんということに気づいてヤル気が出た。
ついでにコードもちょっと直して、活性はpIC50とかそういうレンジにしてみて、μMオーダーから上げていくようにした。

エッジは世代を表していて、黄色から緑にむけてすすんでいく。ノードの色は活性を表していて黒から赤になるにしたがって活性が向上する。最初の方は活性が振れるけど段々向上していって安定するようにしてみた。
リードホッピングとは選択されなかったより良い未来を選択しなおすことであるとするならばそのような希望はLO初期のあたりに存在すると思うのだ。
以下、書いたコード
from random import random
import networkx as nx
class Branch(object):
"""LeadOptimization flow
potency: pIC50 or such
weight : range for activity
"""
count = -1
@classmethod
def inc_count(cls):
cls.count = cls.count + 1
return cls.count
@classmethod
def get_count(cls): return cls.count
def __init__(self,potency,weight):
self.id = Branch.inc_count()
self.potency = potency
self.weight = weight
self.activity = self.potency + self.weight * random()
def make_child(self,num_childs,potency,weight):
return [Branch(self.potency + self.weight * (random()-0.5)*2,self.weight * 0.5) for i in range(num_childs)]
if __name__ == "__main__":
max_comps = 500 # total compounds
initial_branches = 1 # number of lead compounds
lead_potency = 5 # lead activity
generation = 0
G=nx.Graph()
heads = [Branch(lead_potency,2) for i in range(initial_branches)]
map(lambda b: G.add_node(b.id, activity=b.activity),heads)
while Branch.get_count() < max_comps:
new_heads = []
generation += 1
for branch in heads[:int(2+5*random())]:
for new_comp in branch.make_child(int(40*random()),branch.potency,branch.weight):
G.add_node(new_comp.id, activity=new_comp.activity)
G.add_edge(branch.id, new_comp.id, genneration=generation)
if new_comp.activity > 7:
new_heads.append(new_comp)
heads = new_heads
heads.sort(key=lambda x:x.activity)
heads.reverse()
nx.write_gml(G,"test.gml")
スーパーマリオギャラクシー 2
ここのとこ、毎日夕食後にゲームに付き合わされていて、且つ家が暑いのでなにもヤル気がおきない。
で、今夜はStage2を超えてあたらしいギャラクシーに行けたのでちょっと嬉しい。
あとタテタカコを聴くのも日課
ライブいいんだろーなー
卑怯者 / タテタカコ
くろ麦
山水閣でお食事
最大回避ヒープ
最大回避ヒープ。この章ではjoinの仕方を色々工夫する。他にラウンドロビンヒープとかねじれヒープなどがある。
data Ord a => Tree a = Null | Fork Int a (Tree a) (Tree a) deriving (Show)
isEmpty :: Ord a => Tree a -> Bool
isEmpty Null = True
isEmpty (Fork n x a b) = False
minElem :: Ord a => Tree a -> a
minElem (Fork n x a b) = x
deleteMin :: Ord a => Tree a -> Tree a
deleteMin (Fork n x a b) = merge a b
insert :: Ord a => a -> Tree a -> Tree a
insert x a = merge (Fork 1 x Null Null) a
merge :: Ord a => Tree a -> Tree a -> Tree a
merge a Null = a
merge Null b = b
merge a b
| minElem a <= minElem b = join a b
| otherwise = join b a
join (Fork n x a b) c = Fork (n + size c) x aa (merge bb cc)
where (aa,bb,cc) = orderBySize a b c
orderBySize a b c
| size a == biggest = (a,b,c)
| size b == biggest = (b,a,c)
| size c == biggest = (c,a,b)
where
biggest = size a `max` size b `max` size c
size Null = 0
size (Fork n x a b) = n
いきなり最初の章から面白い。
*Main> insert 5 $ insert 4 $ insert 3 $ insert 2 $ insert 1 Null Fork 5 1 (Fork 2 3 (Fork 1 4 Null Null) Null) (Fork 2 2 (Fork 1 5 Null Null) Null)
Senior / Royksopp
予約したもの
「スマートグリッド革命」を読んだ
スマートグリッドってのは今の電力網に毛が生えたようなもんかなと思ってたけど、全然違った。今後電力は再生可能エネルギーの割合が増えていって、プロシューマーという生産者と消費者が一緒になったような状態(ネットでいえばP2Pみたいにサーバー的なものがない感じか)での電力を有効に機能させる仕組みみたいなものなのね。となるとIPv6が前提か。
文章が硬くて読みにくかったけど、一通り読めた(普通の内容だったら飽きるけど)
- 供給が一方的に需要に合わせるという従来の電力ネットワークの考え方は受給双方に負担を強いる
- ユーエネルギー
- ピークオイルの近未来での到達
- エコポイントは、利子を生まないので保有メリットがないうえに、有効期限がある
- メトカーフの「エナーネット」
- 電気自動車は破壊的イノベーション
- スマイルカーブ現象
- グーグルパワーメーター
- Hohm
- テスラ・モーターズ
電力をうまく貯めるために、バッファとしての電気自動車の電池は有効。本書では太陽光発電ばかりが取り上げられていたが、屋根とか庭に風車があるとかもいいんじゃないか。
あと知りたいのはスマートグリッドとコンパクトシティ構想は補完すんのか?とかそういうあたり。
これも読めばいいのかな。
「関数プログラミングの楽しみ」を読み始めた
プログラミングHaskell 9章の練習問題やってないとかいいつつなぜか関数プログラミングの楽しみが手元にあるのであった。



スーパーマリオギャラクシー 2(「はじめてのスーパーマリオギャラクシー 2」同梱)
裏界線
そら









関数プログラミングの楽しみ
Senior
AR三兄弟の企画書
スマートグリッド革命――エネルギー・ウェブの時代
グーグルのグリーン戦略=グリーン・ニューディールからスマートグリッドまで=