@Ag_smith 先生が書かれたこちら↓↓↓の記事のChimeraX版を作ってみました!
ChimeraXのダウンロード・インストールは↓↓↓から
本記事のChimeraXのversion: ChimeraX-1.9
他のバージョンでの動作やコマンドは確認していません。
拡張機能(toolshed) のインストール
ChimeraXでは、有志のユーザーが作成したtoolshed(拡張機能)をインストールして使用することができます。
[Tools] -> [more Tools...]を選択することで、インストールのサイトに飛びます。
コマンドの場合は、toolshed showでインストールサイトを表示できます。
toolshed show
インストールサイトから便利そうなtoolshedを探して、[install]ボタンを押すことでtoolshedをインストールすることができます。
おすすめのtoolshed
色々なtoolshedがありますが、今回は一つだけおすすめを紹介します。
clix (コマンド自動補完)
主な機能(公式ページから引用)
- 構文ハイライト表示
- コマンド/キーワード/ファイルパス/カラー/モデルID/チェーンIDなどの自動補完と提案機能
- 入力中の履歴との一致部分をインラインで表示
- 強力な履歴検索機能
- 複数行にわたるコマンドの一括実行
- コマンドヘルプを表示するツールチップ機能
- アプリケーション操作のクイック検索
- 最近使用したファイルのクイック検索
コード補完だけでもとても便利な上にいろんな機能がついてて入れて損はない拡張機能です。コマンドの勉強にもなります。
環境設定 (preferences)
[UCSF ChimeraX] -> [Preferences...] (もしくはショートカットキー: cmd⌘ + ,)で環境設定を開いて様々な設定ができる。pymolでいうところの.pymolrcみたいな感じです。
Background: 背景色の設定
Backgroundではデフォルトの背景色を設定できます。モデルだけをみる時は黒のが見やすいです。しかし、スライド用の画像を作る時は背景を白にしておいた方が、実際のスライドと同じ感じになるので便利な場合があります。
Window: ウィンドウの設定
Windowの内、Resize graphics window on session restoreにチェックを入れておくと、ChimeraXセッションを再開した際に保存した画像のサイズを一定に保つことができます。特に論文用の図版をレンダリングし直す場合に有効です。
Startup
Startup: 起動時に実行するコマンド/よく使うコマンドをpresetsとしてを設定 を参照
その他の設定
その他にも様々な設定ができます。詳しくは公式のドキュメントを参照してください。
Startup: 起動時に実行するコマンド/よく使うコマンドをpresetsとしてを設定
StartupではChimeraX起動時に実行するコマンドや、よく使うコマンドをpresetsとして登録することができます。
起動時のコマンドを登録する
StarupのExecute these commands at startup欄に起動時に実行したいコマンド書いてsaveすると、次回ChimeraXを起動する際に書き込んだコマンドが実行されるようになります。
例として、先ほどインストールしたtoolshed: Clixを起動時に表示するようにui tool show clixを登録しておきましょう。
saveボタンを押して、再起動するとclixが開くと思います。
よく使うコマンドをpresetsとして登録する
Starupと同じように、よく使うコマンドなどをpresetsとして事前に設定することができます。こちらは起動時にはコマンド自体は実行されませんが、解析中に[Presets]からコマンドを呼び出せるようになるのでとても便利です。
presetsを登録するには任意の場所にpresets用のフォルダを作る必要があります。適当な場所にフォルダを作ってください(フォルダ名もなんでもOK)。今回はホームディレクトリ以下にchimerax_presetsというフォルダを作りました。このフォルダを適当なエディターで開いて、登録したいコマンドを.cxcファイルに書き込みます。
今回は @Ag_smith 先生の記事: AlphaFold予測構造についてのpLDDTカラーリングコマンドを参考にAFで予測した構造をplddtカラーに色付けするコマンドをchimerax_presetsにplddt.cxcを作成して書き込みましょう。
color @@bfactor<100 #0053D6
color @@bfactor<90 #65CBF3
color @@bfactor<70 #FFDB13
color @@bfactor<50 #FF7D45
作成したpresetsのフォルダchimerax_presetsへの絶対パスをStartupウィンドウのCustom presets folderに書き込んでsaveをしましょう。

すると、[Presets]の --Custom-- 以下に Plddt が追加されていると思います。
適当にAFで予測した構造を開いてPlddt presetを使ってみましょう。今回は適当にAFDBからファイルを取得しました(alphafold fetch {uniprotid}でAFDBから構造をfetchできます)。
いい感じにカラーリングできましたね!!
logを見てみるとpreset custom plddtが実行されています。コマンドラインから実行したい場合はpreset custom Plddtもしくはcustomを省略してpreset Plddtで実行できます。
ちなみに、alphafold fetch {uniprot_id} colorConfidence trueやcolor bfactor palett alphafoldのalphafoldパレットはAFDBのカラーリングとは微妙に違う(グラデーションになっている)
plddtカラーリングの他にも、
- 論文やスライドで使うFigを統一のフォーマットにするためのカラーやライティングセット
- よく行う解析フロー
などを登録しておくと解析や図の作成が捗ります。
presetsのtips
-
.cxcだけでなく.pyのpythonスクリプトでもOK - preset名は拡張子を除いたファイル名
plddt.cxc->plddt - 指定フォルダ内の第一階層のサブフォルダにあるファイルは、サブフォルダ名をカテゴリ名として分類される
chimerax_presets ├── hello_world │ └── hello_world.py └── plddt.cxc
- ファイル名・フォルダ名内のアンダースコア(_)は自動的にスペースに置換される
- フォルダ名を工夫することで新しいカテゴリを作成したり、既存(ビルトイン)のカテゴリ内にカスタムプリセットを配置することも可能
alias: 長いコマンドにalias(名前)をつける
aliasコマンドは任意のコマンドに alias(仮の名前)をつけることができます。よく使用する長いコマンドにaliasをつけておくと、解析中にいつでも呼び出すことができて、コマンドを書く手間が省けます。
先ほどのplddtカラーリングコマンドにplddtというaliasを以下のコマンドでつけてみましょう。
alias plddt color @@bfactor<100 #0053D6 ; color @@bfactor<90 #65CBF3 ; color @@bfactor<70 #FFDB13 ; color @@bfactor<50 #FF7D45
もしくは先ほど作ったpresetを利用してalias plddt preset PlddtとしてもOKです。
適当なAFのファイルを開いて、コマンドラインでplddtを実行すると…
color byattribute bfactor ...が実行されて、plddtカラーリングが実行されました!
Startup + alias コマンド
Startupとaliasは非常に相性がいいです。aliasを利用して、長いコマンドにaliasをつけてStartupに書いておけば起動時に実行されて、毎回aliasコマンドを実行する手間が省けます。
plddtカラーリングコマンドにplddtというaliasをつけてstartupに書き込んでおきましょう。
saveして、再起動するとalias plddt ...が実行されていると思います。AFのファイルを開いてコマンドラインでplddtを実行すると
いい感じにカラーリングできましたね!!
alias + runscript
先ほどのコマンドはそれほど長くなかったですが、もっと複数行に渡るような長いコマンドや複雑なコマンドにaliasをつけたい場面もあると思います。
そんな時は、alias "エイリアス名" runscript "スクリプトファイル(.cxc/.py)"を使うことで複数行のコマンドが書かれた.cxcやpythonスクリプトの実行にaliasをつけることができます。
ここでは先ほどpresetに使用したplddt.cxcファイルを応用して以下のようなスクリプトを書いてみました。
alphafold fetch $1
alphafold pae uniprotid $1
color @@bfactor<100 #0053D6
color @@bfactor<90 #65CBF3
color @@bfactor<70 #FFDB13
color @@bfactor<50 #FF7D45
このスクリプト(fetch_afdb.cxc)は、
- AlphaFold Databaseから引数
$1で指定した任意のUniProtIDの予測構造をalphafold fetch $1で取得 -
alphafold pae uniprotid $1で取得した予測構造のPAE plotを描画 - plddt カラーリング
を実行するスクリプトになっています。
fetch_afdb.cxcを任意のディレクトリに保存して絶対パスをコピーしておきます。このスクリプトを実行するコマンドにafdbというaliasをつけましょう。
コマンドライン上で
alias afdb runscript path/to/fetch_afdb.cxc $1
を実行します(引数$1を忘れずに)。
これで準備完了です、あとはafdbを実行してみましょう(AFDB内にあるものであればUniProtIDはなんでもOKです)。
afdb Q96SW2
スクリプトが実行されて、AFDBからの構造の取得・PAE plotの表示・plddtカラーリングが実行されました!
もちろんこれらのalias *** runscript scriptをStartupに書いておけば、起動毎にaliasを実行せずにコマンドを呼び出すことができます。
runscript + pythonスクリプト (alias不要)
pythonスクリプトも同様にrunscriptで実行できます。pythonスクリプトの場合chimerax.core.commandsのregister関数でコマンド登録できるため、aliasをつける必要がなくなります。
pythonスクリプトの細かい書き方に関しては今回は省略します(いつかその記事も書きたい)。
def hello_world(session):
session.logger.info("Hello world!")
def register_command(logger):
from chimerax.core.commands import register, CmdDesc
register("hello_world", CmdDesc(synopsis="hello world command"), hello_world, logger=logger)
register_command(session.logger)
このスクリプトをrunscriptで実行してhello_worldをコマンドラインで実行すると
スクリプトが実行されました。
これもStartupにrunscript path/to/hello_world.pyとしておけば起動時にhello_worldコマンドが登録されます。ChimeraXのpythonスクリプトはかなり癖がある上に、ドキュメントがわかりずらいので中々難しいですが、慣れると結構高度なものが作れます。
buttonpanel: ボタンパネルの作成
今まで、よく使うコマンドをpresetsやaliasをつけることで簡単にコマンドラインから呼び出せる方法を紹介しました。さらにbuttonpanelを使うと、任意のコマンドをGUIで呼び出せるようにできます。
buttonpanel タイトル [ rows N ] [ columns M ] [ fill rows | columns ]
buttonpanel タイトル add ボタン名 command ボタンコマンド [ row i ] [ column j ]
bottonpanel パネル名 row N columns Mでボタンパネルを作成して、buttonpanel パネル名 add ボタン名 command ボタンコマンド をすることで作成したパネルにボタンを追加できます。
4×4の "Shortcuts"ボタンを作ってみましょう
# ボタンパネルの作成
buttonpanel Shortcuts rows 2 columns 2
# 0,0 plddtカラーリング
buttonpanel Shortcuts add plddt_color command "preset custom plddt"
# 0,1 水分子の削除
buttonpanel Shortcuts add remove_water command "del :WAT:HOH:DOD"
# 1,0 electrostaticの表示
buttonpanel Shortcuts add electrostatic command "coulombic"
# 1,1 clix ui の表示
buttonpanel Shortcuts add show_clix command "ui tool show clix"
これをコマンドライン上で実行すると…
ショートカットボタンのウィンドウが出現しました(赤枠の部分)!
もちろん、ボタンも機能しています。
これもStartupに書いておけば起動時にウィンドウが表示されるようになるので便利ですね。
mousemode: マウスでのボタン操作の変更
mousemodeコマンドを使うことで、各マウスモードと修飾キーの組み合わせにChimeraXの各種機能を割り当てることができます(例えば、デフォルトだとホイールでzoomなど)。
mousemode [ control ] [ alt ] [ command ] [ shift ]
[ leftMode function ] [ middleMode function ] [ rightMode function ]
[ wheelMode function ] [ pauseMode function ]
例:
# Ctrl + 右クリック: ラベルの移動
mousemode control right 'move label'
# Alt + マウスホイール: 等値面(contour)調整
mousemode alt wheel contour
mousemode 割り当て可能な入力
| 種類 | 説明 | 割り当て可能な修飾キー |
|---|---|---|
| leftMode | 左クリック | Ctrl, Alt, Command, Shift |
| middleMode | 中クリック(Macでは Alt+左クリック) | Ctrl, Alt, Command, Shift |
| rightMode | 右クリック(Macでは Command+左クリック) | Ctrl, Alt, Command, Shift |
| wheelMode | スクロールホイール | Ctrl, Alt, Command, Shift |
| pauseMode | マウスカーソルを対象上で停止(クリックなし) | 修飾キーなし |
割り当てられるfunctionはドキュメントをご確認ください。様々な割り当てが可能です。
マウスとトラックパッド操作の関係は以下のようになっている。
| Mouse Mode | Mac トラックパッド操作 | Windows トラックパッド操作 | デフォルト割り当て |
|---|---|---|---|
| leftMode | 1本指クリック / ドラッグ | 1本指クリック / ドラッグ | rotate(モデル回転) |
| middleMode | ⌥(Alt)+ 1本指クリック / ドラッグ または3本指ドラッグ |
Ctrl+Alt + 1本指クリック / ドラッグ または3本指ドラッグ |
translate(平行移動) |
| rightMode | ⌘(Command)+ 1本指クリック または2本指クリック / ドラッグ |
Alt + 1本指クリック または2本指タップ / ドラッグ |
translate(平行移動) |
| wheelMode | 2本指ドラッグ(上下) またはピンチイン/アウト |
2本指ドラッグ(上下) | zoom(ズーム) |
| pauseMode | カーソルを対象上に停止(クリック不要) | カーソルを対象上に停止(クリック不要) | identify object(情報表示) |
トラックパッド関係はMac/Winで違ったり、PC自体の設定が影響したりするので、こちらも公式ドキュメントを要チェック!!
こちらもStartupに書いておけば、起動時に設定されるので便利!!
functionkey: ファンクションキーに任意のコマンドを割り当て
functionkeyコマンドを使うことで任意のコマンドをF1, F2などのファンクションキーにキーバインドすることができます。要するに先ほどのbuttonpanelのファンクションキー版です。
# functionkey キー [ コマンドリスト ]
functionkey f6 preset plddt
おすすめのStartupや便利なスクリプトをgithubで探す
ここまで様々なChimeraXの設定について書いてきました。ただ、結局どういう設定すればいいのかわからなかったり、1からスクリプトを作ったりするのは面倒です。
そういう時は、githubなどで有志の方が作られた設定方法やスクリプトを拾って、startup・presetsに登録しましょう!
検索方法はchimeraxと検索すればいろんな人が作ったリポジトリが出てきます。
いくつかおすすめをご紹介します。
chimerax-recipes
ChimeraX公式のレシピ集 (webサイト版)
chimerax-trimmings
Cryo-EM/結晶構造解析向けの設定集とスクリプト
chimerax_viridis
色覚特性に配慮した、知覚的に均一なカラーパレット
他にも探せば色々あると思います。これらの設定を参考に自分用にカスタマイズして自分なりの設定やスクリプトを作成してみましょう!!















