Hugo:分子の構造データを読み込んで表示するときのお手軽ショートコード
- 分子の構造データを読み込んで立体表示したいとき、次のような shortcode 機能を使うと、お手軽にできます
shortcode
- 次のようなショートコードを
layout/shortcode
にmolview.html
として保存します
molview.html
{{ $file := .Get "file" }}
{{ $type := .Get "type" | default "pdb" }}
{{ $zoomto := .Get "zoomto" }}
{{ $rand := delimit (seq 9 | shuffle) "" }}
{{ with $file }}
<div
class='viewer_3Dmoljs'
style='height:100%; width:400px;'
data-href='{{ . }}'
data-type='{{ $type }}'
data-backgroundcolor='#fff'
data-style1='cartoon'
{{ with $zoomto }}data-zoomto='{{ $zoomto }}'{{ end }}
data-spin='axis:vy;speed:0.5'
/></div>
{{ end }}
<head>
- ヘッダーの部分に、次のように追記します。
head.html
<script src="https://3Dmol.org/build/3Dmol-min.js"></script>
使い方
{{< molview file="/path/to/構造データ.pdb" >}}
Tips
- タンパク質など、読み込む構造データのサイズが大きいときには、水素を除去しておいた方が良いかもしれません
構造データ.pdb (1.1 MB)
ATOM 1 N ASP 1 68.187 60.503 45.161 1.00 0.00 N
ATOM 2 H1 ASP 1 69.050 60.619 44.639 1.00 0.00 H
ATOM 3 H2 ASP 1 67.471 60.208 44.504 1.00 0.00 H
ATOM 4 H3 ASP 1 67.943 61.404 45.540 1.00 0.00 H
ATOM 5 CA ASP 1 68.357 59.506 46.237 1.00 0.00 C
ATOM 6 HA ASP 1 69.276 59.724 46.784 1.00 0.00 H
ATOM 7 CB ASP 1 67.185 59.591 47.233 1.00 0.00 C
ATOM 8 HB2 ASP 1 67.149 60.604 47.638 1.00 0.00 H
ATOM 9 HB3 ASP 1 66.253 59.408 46.701 1.00 0.00 H
ATOM 10 CG ASP 1 67.295 58.605 48.401 1.00 0.00 C
ATOM 11 OD1 ASP 1 68.375 57.991 48.549 1.00 0.00 O
ATOM 12 OD2 ASP 1 66.303 58.459 49.154 1.00 0.00 O
grep -v " H " 構造データ.pdb > 構造データ_noH.pdb
構造データ_noH.pdb (521 KB)
ATOM 1 N ASP 1 68.187 60.503 45.161 1.00 0.00 N
ATOM 5 CA ASP 1 68.357 59.506 46.237 1.00 0.00 C
ATOM 7 CB ASP 1 67.185 59.591 47.233 1.00 0.00 C
ATOM 10 CG ASP 1 67.295 58.605 48.401 1.00 0.00 C
ATOM 11 OD1 ASP 1 68.375 57.991 48.549 1.00 0.00 O
ATOM 12 OD2 ASP 1 66.303 58.459 49.154 1.00 0.00 O
- 占有率や温度因子などを削除すると、もっと軽くなりますね
構造データ_noH_simple.pdb (321 KB)
ATOM 1 N ASP 1 68.187 60.503 45.161
ATOM 5 CA ASP 1 68.357 59.506 46.237
ATOM 7 CB ASP 1 67.185 59.591 47.233
ATOM 10 CG ASP 1 67.295 58.605 48.401
ATOM 11 OD1 ASP 1 68.375 57.991 48.549
ATOM 12 OD2 ASP 1 66.303 58.459 49.154