ご注文はリード化合物ですか?〜医薬化学録にわ〜

自分の勉強や備忘録などを兼ねて好き勝手なことを書いていくブログです。

ケモインフォマティクス

RDKit の基本的な使い方

RDKit はケモインフォマティクスを行う上で、必要不可欠なツールです。 大体のことは RDKit で出来てしまうのですが、公式ドキュメントがめちゃくちゃわかりにくいという致命的な欠点があります。 私が使った範囲で、RDKit の機能についてメモを示します。 R…

小ネタ:Fingerprint の算出方法

RDKit にはさまざまな fingerprint が実装されています。 おそらく最もよく使われている fingerprint は Morgan fingerprint (ECFP)ですが、他にも MACCS Key や SMILES extended-connectivity fingerprint (SECFP)、MinHash fingerprint (MHFP) などの計…

グラフ畳み込みニューラルネットワークによる回帰モデル:Deep Graph Library(DGL)の使い方

グラフ畳み込みニューラルネットワークのコードの例です。 R2 は -0.05 ぐらいと低いですが、計算自体は行えます。 (解説は近日追記) import numpy as np import pandas as pd import torch import torch.nn as nn import torch.nn.functional as F from t…

とりあえず PyTorch: 最低限これで動く

ニューラルネットワーク(深層学習)ブームは 2022 年現在も続いており、毎日新しい研究がニュースや SNS で話題となっています。ケモインフォマティクス分野でも例外ではなく、QSAR モデルや構造生成器、逆合成解析を始めとして様々な深層学習を用いた研究…

決定木で AD を算出:Isolation forest

予測モデルを扱う際に、applicability domain (AD) を考慮することは重要です。AD を算出する方法としては k 最近傍法や one-class SVM、アンサンブル法などが代表的です。 決定木と言えば Light GBM や XGBoost、ランダムフォレストなどでお馴染みですが、…

小ネタ:RDKit による分子記述子の算出

RDKit はケモインフォマティクスをやるのに欠かせないライブラリです。 分子の描写など、色々できますが、分子記述子を算出することもできます。 ちなみに、Mordred も、RDKit をベースに記述子を計算しています。aimedchem.hatenablog.comRDKit で分子記述…

小ネタ:RDKit の update

新年、明けましておめでとうございます。 今年の目標として、技術力向上を掲げているので、きちんと勉強して積極的にブログを更新していこうと思います。リハビリを兼ねて小ネタですが、RDKit の最新バージョンへの upgrade は conda で一発でできます。 con…

Shapley 値によるモデルの解釈

以前の記事で、ランダムフォレスト(RF)による記述子の特徴量解釈について、少し触れました。aimedchem.hatenablog.com予測に関する記述子の役割をより深く考察するのに、shapley 値を用いた SHAP というものがあります。 Shapley 値はゲーム理論に基づき算…

その予測モデル、ちゃんと予測できてますか?〜applicability domain の考慮〜

機械学習モデルを研究や開発の現場で活用しようとする試みが盛んですが、様々な要因で難航しているのではないでしょうか。 その一つとして、折角苦労して作ったモデルが役に立たない、ということが挙げられます。機械学習モデルを作ることが目的ではなく、(…

小ネタ:Mordred で算出した記述子の欠損値処理

ケモインフォマティクスにおける Mordred は、化学構造から簡便に記述子を算出してくれる便利なライブラリです。aimedchem.hatenablog.comしかし、どんな分子でも記述子を計算してくれる訳ではなく、時々計算が出来ずにエラーを吐き出します。 エラーの種類…

小ネタ:ランダムフォレストの実装 + モデルの保存方法 + プロット作成の基本

ケモインフォマティクスでは回帰問題、あるいは判別問題をよく扱います。様々な機械学習モデルがあると思いますが、最も使いやすいモデルとして、ランダムフォレスト(RF)があります。RF の数学的原理を解説しているサイトは多数あるので、ここでは触れませ…

グラフィカルユーザーインターフェース(GUI)の作り方入門

ケモインフォマティクスと聞くと、機械学習的なアプローチを思い浮かべる人も多いかと思いますが、伝統的には、解析ツールを化学者に提供する、というのも重要な役割です。例えば Gaussian や GAMESS は有用な量子化学計算ソフトウェアですが、そのグラフィ…

Python で量子化学計算

明けましておめでとうございます。 今年も、創薬化学、ケモインフォマティクス を中心にブログを更新していこうと思います。量子化学計算といえば、Gaussian や GAMESS を利用している方も多いと思いますが、Python には量子化学計算をしてくれるライブラリ…

化学構造生成器 Chemical VAE の使い方

この記事は創薬 (dry) Advent Calendar 2020 の 12 日目の記事です。 一週間以上遅刻してすみません・・・(というか早く wet の方も書かねば)。 adventar.orgケモインフォマティクスで盛んに研究されているものの一つに、構造生成器というものがあります。…

Deep Graph Library によるグラフ畳み込みネットワークの基本(追記予定)

最近、論文を書いてたり会議が増えたり人事関連で色々あったり投資を始めたりごちうさを観たりで忙しく、中々記事を書けていませんでしたが、久々にブログを更新しました。AI ブーム、深層学習ブームは化学分野でも続いていますが、化学者としては、構造式を…

生物活性物質データベース ChEMBL の使い方

QSAR モデルを構築するためには、多くのデータが必要です。 化合物とその生物活性についてまとめられたデータベースは色々ありますが、よく使われるものの一つに ChEMBL というデータベースがあります。 www.ebi.ac.uk アルツハイマー病治療薬であるドネペジ…

新しい化合物の表記法 SELFIES

色々と書きたいことは多いのですがサボり癖が強く忙しかったり疲れてたり、少し考えて文章を書きたかったりで、少し久々の更新ですが、新しい知識を最近得たのでシェアも兼ねて記事を書きます。 化合物を扱うとき、我々化学者は構造式を使うことが一般的です…

Jupiyter Notebook 上での構造式描写

ケモインフォマティクスと他の情報分野との最大の差異は、構造式を扱うことであると思います。 有機化学にとって構造式は切っても切れない関係にあり、それはプログラミング上においても例外ではありません。 構造式の情報を確認するのにも、RDKit は有用な…

実践的(?)線形重回帰

Python を使って機械学習をしてみたい、という実験系化学者の方も多いと思います。 しかし、ググってみても機械学習の方法論とかは出てくるけど、痒いところに手が届かない、という事例は多いはずです(私もそうです)。 そこで、線形重回帰分析による LogS …

小ネタ:塩を除去する関数

化合物データを機械学習に用いるとき、前処理で塩を除去する操作を行います。 例えば、酢酸ナトリウム塩のナトリウムを除いて、酢酸にする、といった具合です。 RDKit には Chem.SaltRemover という関数があるのですが、個人的にこれは使いにくいと思ってい…

分子記述子算出ライブラリ Mordred

機械学習でデータを解析する際、入力するデータは数字である必要があります。一方、化合物は化学者にとって分かりやすい構造式として表記されることが多いです。そのため、構造式を数字に落とし込む必要があります。構造式の数字表現としては色々ありますが…

ケモインフォマティクス とは?/化学構造データを読み込もう

このブログはケモインフォマティクスも一応テーマにしているので、その内容も少しずつ書いていこうと思います。 偉大なる先人のブログを見れば事足りそうですが・・・ こことか datachemeng.com こことか future-chem.com こことか iwatobipen.wordpress.com…