@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
色覚特性に配慮した、知覚的に均一なカラーパレット
他にも探せば色々あると思います。これらの設定を参考に自分用にカスタマイズして自分なりの設定やスクリプトを作成してみましょう!!