2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
Juliaを用いたタンパク質のエントロピー計算(全1記事)
リンクをコピー
記事をブックマーク
omi_dev氏(以下、omi_dev):では『Juliaを用いたタンパク質のエントロピー計算』という題で発表させていただきます。サトウタカアキと申します。
Twitterはomi_devというアカウントでいろいろやってまして。今大学院のM1です。先ほど発表されたサトウさんのラボ見学に行ったら「Juliaはいいぞ」と言われてJuliaを始めました。
やっていることとして、研究は生物物理です。主にタンパク質のシミュレーションとか、あとは趣味で競技プログラミングを多少やっていて。今度のコドフェスの本選に出場が決定いたしました。
今回発表するテーマが、下のほうの細々した論文のエントロピーを解析するので、理論だけ載ってるから実装してくれ、ということで実装します。
したものがこちらになります。ちょっと出すと時間があれなんですけど。GitHubで大文字でBILABって検索していただければたぶん出るんじゃないかなと思います。
私が書いたんですけど助教に渡したら助教がコミットしました。
(会場笑)
なにをしたかと言うと、エントロピー計算って非常にガバガバな部分が多くて。今までのやり方はいろいろと改善手法があったんですが、どれも温度安定性が非常に良くないという問題がありました。今回めちゃくちゃいい方法が出たのでそれをやってみます。
どこが画期的だったかと言うと、シミュレーションって三次元で行うので、当たり前ですが三次元座標で出てきます。それをタンパク質の内部座標、つまり結合の長さと角度と二面角で表すと、系全体としての並進・回転以外の3n-六次元をキープできます。
結果として、物理的にある程度正しい座標計を導入することができるというのが、タンパク質業界で内部座標と表現されます。ここからエントロピーの式にぶち込んで計算すると良いよっていう話でした。
ところがこれをJuliaでやろうとすると非常に大変です。なんでかと言うと、そのシミュレーションの結果が100ギガくらいあって、前処理かましてもギガバイト単位から落ちません。
このパーサを書きたくないので、PythonのライブラリにMDAnalysisというのがありまして、こちらをPyCall経由で使ってJuliaを数値型で無理やり持ってきました。
ではなぜわざわざJuliaで書いたのか、Pythonで書かなかったのかと言うと、1つにはやはり競技プログラミングの趣味に由来します。
使えなくはないんですよ。Juliaが存在するところがあって。ところが制限時間2秒なんですね。Juliaを起動すると1秒ちょっとかかるので、わりと無理です。
(会場笑)
なので今回論文を読んでみてちょっと競プロ的なことを使えそうだな。例えばBFSやったりとか。累積和を書いてたんですけど、なんか気づいたら消えてたんですけど。ここらへんをJuliaで書きたかったというのが趣味のほう。
実益としましては、やはり内積外積の計算が山ほどあって、それをサクサク書ける。あとはforループを回してもPythonとは違ってわりと早いです。
あと1番びっくりしたのが、対称行列の行列式のlogという補正項の部分が2行で書ける。
上の行でSymmetricでパタンってやって、下の行でlogabsdetっていう行列式の内部関数を使って行列式のlogのほうだけを持ってくるみたいなことを。ただこの2行がたぶん1番重い部分ですね。
結果としましては、ごめんなさい、まだ論文が出てないので具体的な数値が一切書けないんですけど。とりあえず動きました。
手法からして内部座標使ったりしてぜんぜん違ったんですけど、普通に2、3倍速くらい速くて、BILAB一同かなり驚きました。Juliaはすばらしいと。
ただ1番大事な妥当性なんですが、既存手法よりはマシで、最初の図で出しましたここの1番いいほうで1パーセント切るくらいの誤差っていうところまではちょっと再現しきれなくて。
いろいろ見てみたんですが、補正する項がうまくいってないと。バージョン0.6だと動いてたんですけど、0.7以降でここが0に飛んじゃうっていうのが潰せてなくて。たぶんここを潰せばもうちょいマシになるのですが、まだ手がつけられてない状況です。
まとめとしましてはJuliaの売りである数値計算の速さというのを自分の研究のうえで役立たせることができました。
ただ、こういう非常にマイナーな、とりあえず実装するみたいなのは誰もやっていないことなので欲しけりゃ自分でやるしかないな、っていうのは実務上でも体感した次第です。
以上です。ありがとうございました。
(会場拍手)
関連タグ:
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略