0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rdkconf: ChimeraXでSMILESを扱う方法

0
Last updated at Posted at 2024-12-08

ChimeraXでSMILESを扱う

ChimeraXでSMILES等の分子表記から3D構造を生成する方法を紹介します。

ChimeraXの標準機能(open smiles:

ChimeraXにはSMILESから3D構造を生成する機能が標準で備わっています。

open smiles:CCO
open smiles:c1ccccc1 resName benzene

GUIからは Tools → Structure Editing → Build Structure → Start Structure → SMILES string でも同様のことができます。

ただし、この方法にはいくつかの制約があります。

  • NCI(National Cancer Institute)のWebサービスに依存しており、インターネット接続が必須
  • 3D座標生成の品質を制御できない
  • SMILES以外の分子表記(InChI、配列等)は別コマンドが必要

chimerax-rdkit-conformer(rdkconf)

これらの制約を解決するために、RDKitを使ったChimeraXバンドル chimerax-rdkit-conformer を作りました。

当初はChimeraXの環境を汚さないよう、外部のuvを使ってサブプロセスでRDKitを実行する方式(後述のOption C)を考えていました。しかし実際に試してみると、ChimeraXのPythonにpip installで直接RDKitを入れても問題なく動作したため、シンプルな直接インストール方式(Option A)も用意しています。

特徴:

  • ローカル完結 — ネットワーク不要
  • RDKit ETKDGv3 による高品質な3D座標生成
  • SMILES以外にも InChI、ペプチド配列、DNA/RNA、FASTA、HELM に対応
  • 複数コンフォーマーの一括生成
  • MMFF最適化、ChimeraXのminimize連携

前提知識: ChimeraXでpip installできる

意外と知られていないのですが、ChimeraXには独自のPython環境が内蔵されており、コマンドラインからpip installでPyPIのパッケージをインストールできます。

# ChimeraXのコマンドラインで
pip install rdkit

pip_install_rdkit.png

これだけでChimeraXのPython内にRDKitが入ります。ターミナルからも実行可能です。

# ターミナルから
chimerax --nogui --exit --cmd 'pip install rdkit'

ターミナルからchimeraxコマンドが使えない場合は、シンボリックリンクかaliasを設定してください。

# シンボリックリンクの場合(バージョンに合わせてパスを変更)
ln -s /Applications/ChimeraX-1.11.1.app/Contents/bin/ChimeraX /usr/local/bin/chimerax

# aliasの場合(.zshrc / .bashrc に追加)
alias chimerax='/Applications/ChimeraX-1.11.1.app/Contents/bin/ChimeraX'

ChimeraXのPython環境にパッケージを追加するため、環境が汚染される点には注意してください。Option B/Cではこの問題を回避できます。

インストール

3つのインストール方法があります。用途に応じて選択してください。

Option A: Direct RDKit(シンプルでおすすめ)

RDKitをChimeraXのPythonに直接インストールする方法です。

# ChimeraXのコマンドラインで
pip install rdkit
cd /path/to/chimerax-rdkit-conformer/bundle-direct
devel install .

Option B: uv subprocess(ChimeraXへの環境汚染を最小限に)

uv をChimeraXにインストールし、RDKitは PEP 723 でスクリプト実装し、これをsubprocessで実行します。
ChimeraXのPython環境にはuvのみが追加されます。

uvとPEP723についてはこちらの記事が参考になります。

# ChimeraXのコマンドラインで
pip install uv
cd /path/to/chimerax-rdkit-conformer/bundle-uv
devel install .

Option C: uv subprocess(ゼロ汚染)

ChimeraXの環境を一切汚染したくない場合、システムにインストール済みのuvを直接指定することで回避できます。

# まずシステムのuvのパスを確認
which uv
# 例: /Users/username/.local/bin/uv
# ChimeraXのコマンドラインで
cd /path/to/chimerax-rdkit-conformer/bundle-uv
devel install .
rdkconf uvPath /Users/username/.local/bin/uv  # which uv で確認したパスを指定

uvPathは一度設定すれば永続化されます。

devel installはバンドルのディレクトリ内で実行する必要があります。cdしてからdevel install .としてください。

使い方

SMILES

rdkconf CCO                        # エタノール
rdkconf c1ccccc1                   # ベンゼン
rdkconf "CC(=O)Oc1ccccc1C(=O)O"   # アスピリン

smiles_asprin.png

InChI

InChIはInChI=プレフィクスで自動検出されます。

rdkconf "InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3"

ペプチド・核酸配列

formatキーワードで配列の種類を指定します。

rdkconf GGG format sequence        # ペプチド配列
rdkconf ACGT format dna            # DNA配列
rdkconf ACGU format rna            # RNA配列
rdkconf ">seq\nGGG" format fasta   # FASTA形式

triG.png

HELM

rdkconf "PEPTIDE1{G.G.G}$$$$" format helm

オプション

rdkconf CCO name EtOH              # 残基名を指定
rdkconf CCO hydrogen false         # 水素原子を非表示
rdkconf CCO optimize true          # RDKit MMFF最適化
rdkconf CCO minimize true          # ChimeraX minimize(1.11+)
rdkconf CCO optimize true minimize true  # 両方実行
rdkconf c1ccccc1 conformers 5      # 5つのコンフォーマーを生成

optimizeはRDKitのMMFF力場、minimizeはChimeraXのAmber力場でエネルギー最小化を行います。組み合わせることでより安定した構造が得られます。

triG_fmtseq_opt_min.png

minimizeはChimeraX 1.11以降でのみ使用可能です。また、詳細なminimizeの設定が必要な場合はrdkconfminimizeオプションではなく、ChimeraXのminimizeコマンドを別途実行することを推奨します。

複数コンフォーマーの生成例(メラトニン):

rdkconf "CC(=O)NCCc1c[nH]c2ccc(OC)cc12" conformers 5 name melatonin

melatonin_muticonf.png

キーワード デフォルト 説明
name UNK 残基名
hydrogen true 水素原子の表示
optimize false RDKit MMFF力場で最適化
minimize false ChimeraXのminimizeで最適化(1.11+)
conformers 1 生成するコンフォーマーの数
format smiles 入力フォーマット

対応フォーマット一覧

フォーマット formatキーワード 自動検出
SMILES smiles(デフォルト) Yes(フォールバック)
InChI inchi Yes(InChI=プレフィクス)
ペプチド配列 sequence No
DNA配列 dna No
RNA配列 rna No
FASTA fasta No
HELM helm No

標準機能との比較

open smiles: rdkconf
ネットワーク 必要(NCI依存) 不要
3D生成エンジン NCI Web service RDKit ETKDGv3
対応フォーマット SMILES, IUPAC SMILES, InChI, 配列, FASTA, HELM
コンフォーマー 1つのみ 複数対応
力場最適化 なし MMFF / ChimeraX minimize
オフライン 不可 可能

まとめ

今回紹介したように、ChimeraXではpip installでPyPIのパッケージをインストールできます。意外と知られていませんが、これを活用すればChimeraXの機能を大幅に拡張できます。

rdkconfはその一例で、RDKitを使ってローカルで高品質な3D構造生成を実現しています。ぜひ試してみてください。

また、本記事のOption B/Cで紹介したuvPEP 723を組み合わせれば、ChimeraXの環境を汚さずにPythonスクリプトから外部ライブラリを利用することも可能です。ChimeraXのrunscriptコマンドと組み合わせると、さらに色々なことができそうですね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?