- jupyter-notebookを使っている
- RDKitで複数化合物が含まれるSDFデータをPandasTools.LoadSDFで読み込んだときROMolに画像が表示されないのをなんとかした
- 自分の環境は下記
- MacOSX 10.15.2 Catalina
- 下記を参考にしてAnacondaでRDKit環境を構築した
- anaconda3-5.3.1のPython 3.7.5を利用
- rdkit version: 2019.09.2
- pandas version: 0.25.3
下記サイトを参考にRDKitを練習してた
RDKitでケモインフォマティクスに入門 | 化学の新しいカタチ
複数分子の読み込みのところでSDFファイルをpandasのDataFrame形式で読み込んだあと表示させてみたところ、ROMolのところに画像が表示されず <img data-content="rdkit/molecule" src="data:i...
みたいなカラムになっていた (下記画像)
下記issueによると、どうやら、pandas 0.25.0 より上のバージョンだと起こってるっぽい
たしかに、自分の場合pandasのバージョンは0.25.3だった
import pandas as pd
print('pandas version: ', pd.__version__)
#=> pandas version: 0.25.3
解決策としては pandasのバージョンを0.25.0まで戻すかも考えられたが
めんどかったので他に方法が無いか探した
画像で表示されたほうが便利な部分もあるのでissueたどったり検索してみたりすると
HTMLのライブラリ使うようにってのがあったので
Molecules not rendered in Pandas DF in Jupyter Lab · Issue #2825 · rdkit/rdkit
下記のようにやってみたらできた(sdfファイルはダウンロード済み、ライブラリはimport済みとする)
df = PandasTools.LoadSDF('./sdf/somesdffile.sdf')
from IPython.display import HTML
HTML(df.to_html())
画像がちゃんと出てきたら成功
ひとまず、画像があったほうがわかりやすいときはこうやればちゃんと出てくる