LoginSignup
13
12

More than 3 years have passed since last update.

タンパク質3Dモデリングでかっこいい画像を作る Pymol+Blender

Last updated at Posted at 2019-07-30

個人的に大仕事をしたので、メモを兼ねてはじめてQiitaに書きます。
Blenderを使い始めて3週間ほどのペーペーです。

こういうかっこいい画像を作りたい

alt
(画像はリンク先より引用)http://dmnfarrell.github.io/bioinformatics/proteins-blender

環境

  • Windows10 64bit
  • メモリ8GB, グラボなし

やること

  • Anacondaのインストール
  • Pymolのインストール
  • Blenderのインストール
  • PDBから必要なタンパク質モデルをダウンロード
  • Pymolでプレ加工してwrlファイルでエクスポート
  • Blenderでかっこよく加工

必要なもののインストール

AnacondaとPymolに関してはこちら
https://qiita.com/tonets/items/1927058e4297fc1c060d
Pymolはcp36mなどバージョンを確認しないとインストール時エラーが出ます。
https://qiita.com/hnishi/items/5e5e1fd4902fbe809e73

私の会社用Windows10はどうしてもAnacondaをインストールできず(OSをクリーンインストールしてもダメ)
VirtualBoxにUbuntuを入れてやるという力業で進めました。
自宅のWin機では問題なくできたので、以下の話はubuntu環境に限りません。

Blenderのバージョンで罠にはまる

Blenderは無料で利用できる高機能3Dモデリングソフトです。
https://www.blender.org/
Blenderはちょうど大きなバージョンアップの最中で、もうすぐ2.80が正式リリースされます。

ここで注意していただきたいこととして、
Pymolで表示する "stick" をBlenderに取り込むには、旧バージョン2.79である必要があります。
私は2.80で操作を覚えてきたため、2.79で取り込んだ後2.80で編集するという方法で進めました。

PDBファイルのPymol描画

alt
流行りのPD-1のデータをダウンロードしてみます。(http://www.rcsb.org/structure/6RPG)
検索して一番最近アップされたものを適当に選びました。

1.PNG

Pymolを開き、file → open でダウンロードしたPDBファイルを開きます。

Screenshot from 2019-07-30 17-50-38.png

allのH - Everuthing で全て消した後、6rpgのS - Surface を表示します。
Screenshot from 2019-07-30 17-51-44.png

Screenshot from 2019-07-30 17-52-00.png

かっこいい・・・。 同様に H - EverythingのあとS - cartoon, C - ssでこのようになります。
Screenshot from 2019-07-30 17-52-55.png

今回はsurfaceのみ表示させたあと、コマンドラインに set surface_quality,1 として画質の調整をします。
file → save image as VRML2 で wrlファイルを作成します。
前述のとおり、ここで S - stick として表示させたあとwrlファイルを作成しても
Blender 2.80ではインポート時にエラーとなります。stickで取り込みたい場合は2.79を使用してください。
(これに気づくのに3日かかった)
surface, cartoonについては2.80でも直接いけました。

それと私の場合はPymolで追加のペプチドを作りました。作成にはbuilderを使っています。
参考 https://pymolwiki.org/index.php/Builder
作成しただけのペプチドからエクスポートしたwrlファイルは、PDBからダウンロードしたファイルと違い
3D位置情報を含みません。例えば酵素に基質が結合するような形状を作りたい場合は、
別途位置情報のシミュレーション等をする必要があると思われます。

Blenderにインポートして加工

Blender 2.80を開いて、x で最初のオブジェクトを削除。
ファイル → インポート → X3D extensible 3D で先ほどのwrlファイルをインポート。

blend2.PNG

巨大なメッシュオブジェクトが開かれるので s で適当なサイズに縮小して位置を調整。
見てのとおりまだカクカクです。

通常メッシュをなめらかにするにはモディファイヤーでサブディビジョンサーフェスを使いますが、
PDBから落としてきたファイルには通用しません。謎の斑点になります。あと重い。。

blend4.PNG

どうすればいいのか色々といじくりまわした結果、モディファイヤーからリメッシュで解決しました。
深度8、モード:スムーズ、スムーズシェーディングにチェック、とするとご覧の通り。

blend6.PNG

あとは好みの加工をしていくことになります。
メッシュをクリックしてマテリアルを新規追加。ベースカラーを紫、粗さを0.3。
3dビューのシェーディングをオンにすればあっというまに生々しい(グロテスクな?)モデルができます。

blend7.PNG

今回は以下に並べるような加工を施してみました。

  • 位置を上にずらして、平面メッシュを追加(床の作成)
  • エリアのライトを3つほど設置して明るさの調整
  • ポイントのライトをオブジェクトの中心付近に置いて色と明るさの調整
  • レンダー → 「プルーム」、「スクリーンスペース反射」とその中の「屈折」にチェック
  • カメラ位置を調整してレンダリング(F12)

blend5.PNG

完成したものがこちら!
untitled.png

まとめ

Blenderのバージョン違いと、リメッシュに気づかなかったことでだいぶ時間がかかりました。
インストール系を除けば、これらの加工は20分程度でできます。
冒頭に挙げたような画像もほとんどこの流れで作れるはずです。
あとは位置情報を含むPDBファイルをシミュレートで作るところが難しそう。
サイエンスイラストレーション楽しい!

参考

http://www.protein.osaka-u.ac.jp/rcsfp/supracryst/suzuki/jpxtal/Katsutani/index.php
https://pymolwiki.org/index.php/2._Translucent_Surfaces

13
12
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
13
12