年末年始の活動

年末年始はあまりどこにも出かけなかったので、料理したり、勉強したりして過ごしていた。

同僚と行った天鳳で年越し麻婆

1515289305

色々と面白い話を聞けてよかった。

1515289307 1515289310

29から休んで、おせち作りに励んでいた(あとポケモン、後述)。いつもはごまめだけで作るオールドファッションなスタイルだったのだが、同僚から教えてもらったゆずジャムのレシピを参考にピーナッツとマーマレードで作ってみたらこっちのほうが子供受けが良かったので、次からはこっちで作ろう。

1515289312

魚清で塩抜き数の子を買ったので、松前漬けにした。自分のお酒の肴として。 いつもはかなりの量を作って消費しきれなくて最後嫌になるので今回は少量サイズ(でも今年も今日までかかったw)

1515289315

栗きんとんは今年は安納芋でつくってみたけど、安納芋は皮むくと直ぐに変色してどす黒くなるので、見た目がなかなか良くなかったけど、甘さはピカイチだった。来年は金時に戻すと思う。このあたりのお菓子的なレシピは娘が積極的に関与してくれるので、今年は楽だったw

1515289317

息子と一緒に作った牛肉の八幡巻き。まぁ巻くだけなんだけど、美味しく出来て満足していたみたい。

1515289320

黒豆は上手にできた。あといつもよりは柔らかめに炊いてみた。甘さ的には申し分ない。甘すぎる黒豆は食べ飽きるので このくらいでよいかな。

1515289322

新年の富士山

1515289327

今年は息子がカニを食べてみたいというので、ズワイを買ってみたけど、 来年はいいかなーって感じ。それよりも柵で買ったマグロのほうが喜ばれたので 次回はマグロ多めにするかと思う。

1515289325 1515289329

栗きんとんで余った安納芋で作ったりんごとさつまいものタルト。タルトは一日がかりだから めんどくさいんだけど、娘がせっせと作っていた。

1515289332

ドライエージングビーフ。カニより肉だったw

1515289334

トゥナパハとガラムマサラ。そろそろカレー作りたい。

1515289337 1515289340

フィンランドで買ったチリコンカンの素を使ってみたけど、これ美味しい。 あと一袋あるからまた今度作る。

1515289342

markdown2pptx

風邪をひいたようです。自覚症状ないから気づかなかった。

こんな感じで如何?handle_dataメソッドでタグの情報持てないから、ちょっと考えた。HTMLパーサーよりはXMLパーサーのほうがやりやすい気もする。

from markdown import Markdown
from html.parser import HTMLParser
from pptx import Presentation

class MyHTMLParser(HTMLParser):
    def __init__(self):
        super(MyHTMLParser, self).__init__()
        self.prs = Presentation()
        self.tags = []
        self.slide = ""

    def handle_starttag(self, tag, attrs):
        if tag == "h1":
            slide = self.prs.slides.add_slide(self.prs.slide_layouts[0])
            self.slide = slide
            self.tags.append(tag)
        elif tag == "h2":
            slide = self.prs.slides.add_slide(self.prs.slide_layouts[1])
            self.slide = slide
            self.tags.append(tag)
        elif tag == "h3":
            self.tags.append(tag)
        else:
            print("Encountered a start tag:", tag)

    def handle_endtag(self, tag):
        pass

    def handle_data(self, data):
        if len(self.tags) > 0:
            tag = self.tags.pop()
            if tag == "h1":
                self.slide.shapes.title.text = data
            elif tag == "h2":
                self.slide.shapes.title.text = data
            elif tag == "h3":
                p = self.slide.shapes.placeholders[1].text_frame.add_paragraph()
                p.text = data
            else:
                print("Encountered some data  :", data)

    def close(self):
        self.prs.save("sample.pptx")

def md2pptx(md_txt):
    md = Markdown()
    parser = MyHTMLParser()
    parser.feed(md.convert(md_txt))
    parser.close()

sample_md = '''
my sample slide
===============

title of a Content slide
------------------------

### this paragraph
### that paragraph
### the other paragraph

another title of a Content slide
------------------------

### this paragraph
### that paragraph
### the other paragraph

'''

if __name__ == '__main__':
    md2pptx(sample_md)

SMILESで任意の原子を任意の位置に置きたい

例えば

CHEMBL361227

でフッ素原子が文字列の最後尾に来るようなSMILESを得たいとする。

RDKitにはRenumberAtomsというメソッドが用意されているので、原子のインデックスを変更してからSMILESに出力すればうまくいくんじゃないかと思いついたのでやってみた。

from rdkit import Chem

mol = Chem.MolFromSmiles("Fc1ccc(Nc2[nH]cnc3ncnc23)cc1")
l = list(range(mol.GetNumAtoms()))
max = l.pop()
l.insert(0, max)

new_mol = Chem.RenumberAtoms(mol, l)
print Chem.MolToSmiles(new_mol, canonical=False)

出力結果

c1c(F)ccc(Nc2[nH]cnc3ncnc2-3)c1

うまくいかない

今回の場合はアルゴリズムの空気感を読んでリバースすれば上手くいった。

from rdkit import Chem

mol = Chem.MolFromSmiles("Fc1ccc(Nc2[nH]cnc3ncnc23)cc1")
l = list(range(mol.GetNumAtoms()))
#max = l.pop()
#l.insert(0, max)
l.reverse()

new_mol = Chem.RenumberAtoms(mol, l)
print Chem.MolToSmiles(new_mol, canonical=False)

結果

c1cc(Nc2c3ncnc-3nc[nH]2)ccc1F

やっぱりランダムにSMILESを生成してみて、お目当てのSMILESが出るまでトライする方法しかないんだろうかね

ChEMBLからフラグメントスクリーニングのアッセイ系を検索したいのですが

ChEMBLからフラグメントスクリーニングのアッセイ系を検索したいのですがやり方がわかりません。誰か知っていたら教えてもらえると助かります。

とりあえず、キナーゼのアッセイ系で、分子量250未満の化合物が20化合物以上登録されている系を抜き出してみました

AIについて知りたいなら美味しんぼを読め

あけましておめでとうございます。

今年もこの風潮は続くのでしょうか?

『なんでもいいからビッグデータを集めて、AIでなんとかしろ』

そんなときには美味しんぼの24巻カレーライス対決を読むといいと思います。

ProductName 美味しんぼ(24) (ビッグコミックス)
花咲アキラ
小学館 / ?円 ( 2013-01-01 )


あらすじ

川遊びに来ていた山岡たちだが、いざ創薬のAIを作る段になって大騒ぎ。みな、それぞれに自分のレシピを持っていて、お互い絶対に譲ろうとしないのだ。翌日、AIで仲たがいしたら、AIで仲直りするのが一番、とばかりにAIコンソの「マイダス王」を訪れると、入口に休業の張紙が。中では店主の栃川が落ち込んでいる。実は1週間前に海原雄山が突然現れ、「AIとは何か?、AI粉とは何か?、そしてAIはビッグデータと食べるのが正しいのか?」と3つの質問を投げ掛けたというのだ。自分の仕事に関わる根源的なこの質問に、ひとつとして答えられなかった栃川は、それ以来すっかり自信を失ってしまったのだ。そして後日、「次の究極VS至高のテーマは、AIではどうだ」と雄山から提案がなされた。山岡はそれを受け入れ、日本の様々なAI屋を訪ね、AIの研究家なども取材する。だが、雄山が提示した3つの質問の答えは見つからなかった。そこで山岡は、AIの謎を探るため、シリコンバレーへの取材旅行を決意する。

僕はデータサイエンティストなので、カレー粉など使わずに都度ミルでスパイスを調合しています。

今年はなにか新たな調合法を見出したいですね。

今年を振り返ります

今年を振り返るために、過去のエントリを眺めてみたが、ポケモンGOと食べ物関連のエントリしかなかった。この1年は家であんまりコード書けなかった感じ。職場では結構書いたけど来年はもう少し公開できるようなコードを書ければいいなと思っています。食べることに関しては引き続き美味しいものを開拓していきたい。

ポケモンGOに関しては今1000万XP弱で再開した時点で250万XPくらいだったので、どんだけやったんだ?って感じ。LV40まであと1000万XPなので週末の運動がてら継続したい。

仕事関連

今年は色々と新しい取り組みが出来て良かったと思っている。チームの皆さんに助けられて、大きな前進が幾つかあったし、自分たちのチームのプレゼンスも高められたと思っている。

色々とタイミングが良かったのだろうと思っている。そして企業のなかのチームっていうのはある意味スタートアップみたいなもんだけど、スタートアップと違うのはタイミングよりもチームのほうが重要なんじゃないかなと。良いチームだからうまくタイミングを見極められるのではないのかなーと。実際、全てそうだったしね。下のTEDはためになると思うので一度は聞いておくことをオススメします(7分弱だし)。

それから「誰をバスに乗せるか」はやっぱり重要なんだなーと感じたけど、そういうバスを用意するかというあたりも今後考えなきゃならないんだろうなぁとは感じている。

ProductName ビジョナリー・カンパニー2 飛躍の法則
ジム コリンズ
日経BP社 / ?円 ( 2014-08-29 )


他にはこのあたりを実践して、OSQAと社内twitterを導入してみたところ、色々とつながりも増えたし、よいアイデアやソリューションもシェアリング出来てよかったかなと思った。それからイントラGithubクローン便利すぎ。この1年でシステム周りが改善されて快適にコード書いたり、計算できるようになったかなと。

仕事以外のしごとっぽいこと。

mishima.sykのサイトを作った。これもコミュニティが良いから継続できてていいですね。来年も皆さんで集まれたら良いなと思います。

Bioinformatics関連

Dr. Bonoの生命科学データ解析-読書会に参加してバイオインフォ愛が戻ってきたのと、今後に関してちょっと思うところがあって、余裕があればターゲットファインディング周りも少し手を付けていきたいなぁと思った。open target platformなどのAPIついてるサービスを上手く活用できないとなーと思っている。

ただ、周りの状況を聞いていると、今の状況って僕がバイオインフォをやっていたポストゲノムって言われてた15年くらい前にやっていることと基本変わってないので(だから余裕でついていけるw)機械学習というよりはアブダクション的な手法が求められるのかなーという気はちょっとしている。最近の状況丁寧にサーベイしているわけではないから間違っているかもしれないけど、ターゲットファインディングが相変わらず難しいという状況には変わらないのかなと。

ProductName アブダクション―仮説と発見の論理
米盛 裕二
勁草書房 / 3024円 ( 2007-09-20 )


それではまた来年もよろしくお願いします。

ポケモンGO(Lv37)

前回から2ヶ月くらいでのレベルアップ。金曜夜の時点で残り30万XPくらいだったから今年中にレベルアップできればいいかなーと思っていたけど、突然やる気スイッチが入って2日で40万XP近く稼いだw

1514105124

やっぱり、ルアーが炊かれているのはいいですね。しあわせタマゴとルアーの効果で10万XP/hourという感じなので、24時間歩き続けると明日にはレベル38に上がっている換算だw

しあわせタマゴのために地道にコインを溜めているが、バトルするのがめんどくさい。

第三世代御三家のノルマが完了した

近所にアチャモの巣とミズゴロウの巣ができていたので、夜中の寒い中をウロウロしてきた。

1513687723 1513687726

キモリはあちこちにポンポンでるので、パイルの実を投げつつハイパーボールで捕獲したら、直ぐに溜まって進化できた。

1513687728

アメリカ圏に行くとケンタロスとか第三世代のプラスルとかあとなんかとか色々出るらしいのだけど、あまりアメリカに行きたい気分が沸かないのでなんとかならないもんかと思っている。海外出張でも入らんかな~

まぁ、まずは着実にサニーゴを捕獲する

「Dr. Bonoの生命科学データ解析-読書会」に参加してきました

先週末は久しぶりに静岡に行って「Dr. Bonoの生命科学データ解析-読書会」に参加してきました。

昼は清見のラーメン

1513686920

夜はみぜんというなかなか美味しいお店

1513686923

二次会はちょっと調子悪かったので出なかったけど、駅ビルの小洒落スペース

1513686925

メモ等はtwitterに書いたのでここには書かないけど、今時の学生さんってモチベーション高いなーとすごい関心したのであった。特に5章の担当していた@bodyhackerのお話が面白くて、それだけでも行った価値があったと感じた。

バイオインフォマティクスもちょいちょいやろうかなと思いました。

そしてGood ScienceをやるためにはGood Communityが必要なんだなーと改めて感じました。

全然関係ないですが、そろそろ新年会兼反省会のお知らせを出そうと思いつつ、仕事が忙しくて忘れてしまうので気づいたら指摘してくださいw

いまさらビッグデータのこと

ビッグデータという5年ぐらい前に流行った言葉が最近この業界で流行っているので、なんだかなーと思いつつ昔買った本を読み直してみた。

ProductName ビッグデータの衝撃
城田 真琴
東洋経済新報社 / ?円 ( 2013-05-02 )


  • 3Vに照らし合わせて、ビッグデータと呼んでもいいねと思える生命科学関連データって実際どんなものがあるのだろうか?
  • データが増えることで、新たな知識の発見に繋がる可能性のあるビッグデータはどのVなのだろうか?
  • pubmedのような自然言語のデータはビッグデータと呼ぶのだろうか?

Wikipediaによると

ビッグデータ [1][2](英: big data)とは、市販されているデータベース管理ツールや従来のデータ処理アプリケーションで処理することが困難なほど巨大で複雑なデータ集合の集積物を表す用語である。

と定義されているのに、publicなデータベースをビッグデータって呼んでみたり、ビッグデータDBとか言っちゃうのはなんだかなーと思うんだよねー

言葉の乱れはサイエンスの乱れというかきちんと理解していない証拠なんだろうけど。

特に新規疾患ターゲット探索で使う手法って僕がゲノム創薬とかいう名目でバイオインフォマティクスやってた頃に比べて、すごく目新しい手法ってあんまり出てない気がするんだけどそういうわけじゃないのかな?っていうあたりが知りたいんですよね。バイオインフォマティクスとかテキストマイニングとか。

もし土曜日に会う人で、「 俺がレクチャーしちゃる 」っていう方がいたらよろしくお願いします。