フィンガープリントによる部分構造の可視化について
マテリアルズインフォマティクス (MI) において最も重要な要素のうちの一つとして、モデルの解釈が挙げられる。
モデルを解釈することで、ドメイン知識と照らし合わせてモデルの正しさを確認することや新たな知見を得ることができる。
化学構造とその化合物の性質を紐づけて解析を行う定量的構造物性相関 (Quantitative Structure-Property Relationship, QSPR) 手法のうちの一つとして、FingerPrintを説明変数、化合物の性質を目的変数として機械学習モデルを構築する方法がある。
この手法について調査したところ、FingerPrintが対応する部分構造とそれに紐づく寄与率を化学構造上に描画することで解釈を行う手法があることがわかった。
これについて検討を行い、実際に描画を行なった結果を以下に示す。
特別なソフトなしに化合物3Dモデルを動かしてもらう
特別なソフトを使わずに化合物の3次元構造を描画できるようにしたかった。
実際、世の中に化合物を描画するソフトはたくさんあるが、基本的に自分だけでなく見る相手にもそのソフトを使用してもらう必要がある場合がほとんどである。
一般に、会社のPCにソフトをインストールするためには複雑な申請が必要であるケースがある(特に大きな会社)。したがって、そういった会社でも使用できるようなブラウザで化合物の三次元構造をグリグリとマウスで動かしながら触れるような形で出力したいと思った。
shap.summary_plotでカラーバーが表示できない
shapで解析した結果を可視化しようとした際、よくわからないmatplotlibのエラーに遭遇した。
調べても出てこず、色々試した結果うまくいったのでエラーコードと共に対処法を示す。
バグなのか仕様変更なのかはわかっていない。
M1 MacのDocker上でのR studio環境構築
訳があってRをやらなくてはならなくなった。
環境構築をするにあたってローカルにインストールすることも考えたが、再現性やソフトの競合を避けるという意味でdockerコンテナ上に環境を構築することにした。
単にrstudioのイメージを使用して環境構築することができなかったが、いくつか工夫をすることで対処することが可能だった。
その方法をメモしておく。
Windowsではコードブロックのフォントを指定しないと見づらくなるという教訓
自分はコードブロックの表示のために、highlight.jsを利用している。
自分はPCがMac、スマホがAndroidなので、それらでWebサイトの表示を確認していた。
たまたまWindowsでこれを確認する機会があったのだが、システムデフォルトのフォントが適用され、個人的に苦手なフォントになっていた(Windowsのコマンドプロンプトのフォントみたいな感じ、見づらくないだろうか)。
これを改善するために配布されているオープンフォントをサブセット化、圧縮、アップロードを行なったので、その手順を残しておく。