VMD で作成した画像の背景を透明にしたい

[VMD](http://www.ks.uiuc.edu/Research/vmd/)（Visual Molecular Dynamics）は、イリノイ大学アーバナ・シャンペーン校のグループによって開発されている、オープンソースな分子ビューアです。同じグループが開発している分子動力学ソフトウェア [NAMD](http://www.ks.uiuc.edu/Research/namd/) と共に、計算生物物理学の研究者の多くに利用されています。本稿では、 VMD によって作成した画像の背景を透明にする方法をまとめます。
# デフォルトの状態で画像を作成するとどうなるか
SARS-CoV-2 のスパイク蛋白質の構造（PDB: 6XLU）を例にとります。VMD でスナップショットの画像を作成するには、メインのウィンドウで File -> Render と進みます。すると、
![tmp1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/34fd843b-08e3-a62d-6bc6-016c23b8ad8e.png)
上のようなサブウィンドウが表示されます。このまま "Start Rendering" を押すと、
![vmdscene.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/e31b8d48-7b69-2384-607b-bab4f3001cc5.png)
のような画像ファイル（vmdscence.tga）が生成されます（注：Qiita への TGA 形式ファイルのアップロードは何故か失敗するので、ここでは vmdscence.tga を PNG 形式に変換したファイルを表示しています）。
ビューアの背景はデフォルトでは黒なので、生成されたスナップショットの画像も黒のままです。このままでは、他の画像と組み合わせたりするのに不便ですね。"VMD transparent background" 等でググると、POV-Ray を使用して背景を透明にする方法が見つかりますが、システムに POV-Ray をインストールするのはやはり面倒ですね。というわけで、今回は [GIMP](https://www.gimp.org/) もしくは [Affinity Designer](https://affinity.serif.com/ja-jp/designer/) で、 vmdscence.tga の背景を透明にする方法を紹介します。
（GIMP をインストールするのと POV-Ray をインストールするのにそんなに違いがあるのか、とか、Linux では動かない Affinity Designer なんか参考になりませんとか、言わないでね）

# GIMP
Mac 用の GIMP-2.10 で vmdscence.tga を読み込むと以下のようなウィンドウになります。
![tmp2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/8bda1d63-d900-7c74-55c1-9f11a7d33b8d.png)
背景を透明にするには、まず、メニューで、　レイヤー -> 透明部分 -> アルファチャンネルの追加 の順にクリックします。その後、同じくメニューから、 選択 -> 色域を選択 の順にクリックします。するとマウスカーソルが変化するので、背景の黒い部分をクリックします。すると、以下の図のように黒い部分が選択された状態になります。
![tmp4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/48c7c9a2-e782-3847-65ac-c666973ddb26.png)
ここで、メニューから 編集 -> 消去 の順にクリックすると、以下のように背景が消去されます。
![tmp5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/2a8e3c47-1bf4-95d0-7268-ae8f66113e3d.png)
あとは、透明な背景をサポートしている PNG 等のファイル形式で出力するだけです（ちなみに TGA も透明な背景をサポートしています）。

# Affinity Designer
Mac 用の Affinity Designer 1.9.0 で vmdscence.tga を読み込むと以下のようなウィンドウが表示されます。
![tmp6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/146c49a0-99ff-36ae-9c47-43321f3c2300.png)
背景を透明にするには、まず、「デザイナーペルソナ」の状態で ファイル -> ドキュメント設定 と進み、「カラー」のタブで「透明な背景」にチェックが入っていることを確認します。確認できたら、「ピクセルペルソナ」を選択し、 選択 -> サンプリングされたカラーを選択 の順にクリックします。するとマウスカーソルが変化するので、透明にしたい背景の部分をクリックします。こうすることで、透明にしたい背景部分が選択された状態になります。
背景を透明にするには、メニューから 編集 -> 削除 の順にクリックします。以下のように、背景が透明になります。
![tmp8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/8d1c4284-4175-3993-7c35-de3efe91045c.png)
ところで、「サンプリングされたカラーを選択」をクリックした時に、以下のようなウィンドウが表示されます。
![tmp7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/69022a8f-9860-2d8e-027c-41da8c402a79.png)
この「許容量」については、[公式のウェブサイト](https://affinity.help/designer/en-US.lproj/index.html?page=pages/Selections/selections_sampled.html?title=Sampled%20color%20pixel%20selections)で以下のように説明されています。
>Tolerance—determines how closely pixels must match the selected color to be included in the selection. For lower tolerance settings, pixels must be very close in value to the clicked pixel. For higher tolerance settings, pixel color can vary widely from the clicked pixel. Drag the slider to set the value.

つまり、この数値が低いほど、選択された色に十分近い色のみが選択領域に取り込まれます。試しに 1% と 50% の値を比較してみました。
![percent1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/c907eabd-b506-881c-a4b4-7188f420aa30.png)![percent50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453431/186fe9f5-6f90-bf54-ca60-77ab2ad72b7f.png)
左が 1% で、右が 50% の結果です。数値が低いほど、選択した背景色（RGB で 0 0 0）に十分近い色のみが削除されています。