マクロ分子の線形表記 HELMについて調べた話
先日@iwatobipen先生のブログ記事「Create macrocyclic mol object from sequence」を読み、RDKitでペプチドが取り扱えることに感動しました!*1
配列をそのまま原子レベルのオブジェクトに変換できるってすごい!
で、「もうちょっとこの辺りの話知りたいなー」となったので、「そもそも生物っぽい分子の表現ってどうなんですかね?」ということで調べてみることにしました。
とりあげるのはマクロ分子の表現方法、HELM!
こちらのレビュー(J. Cheminform. 2020(12)56)の中で取り上げられていました。*2
歴史やら表記のルールやら、だらだら書いていきますよ!
HELM?
HELMはHierarchical Editing Language for macromolelucesの略です。 雑にまとめると、「マクロ分子を原子レベルかつ簡潔に表現できる線形表記」といった感じで、 複雑な生物学的分子を単一の表記で記載することができます。
ペプチドやタンパク質、オリゴヌクレオチドといった生物学的な分子の線形表記というと、まずは配列、 アミノ酸や塩基といった(限られた)ユニットを表す文字の組み合わせが思い浮かびます。
対してHELEMはSMILESをベースとしており、配列だけではなく細かな化学構造も表すことができるため、 構造修飾や特殊なユニットといった、より豊かな表現が可能です。
つまり抗体+低分子のADCや修飾核酸医薬といった複合的な構造もきっちりと表現できます。
また、その表現力により表記とマクロ分子の構造とを1対1で対応させることができるので、 データベースへの格納といった厳密さが必要となる場面でも利用できます。
まさにNew Modality時代に必須の表現!!デファクトスタンダードとなるポテンシャルを持つ表現なのだ!!
・・・知らんけど。
歴史
元を辿ると2008年Pfizer社内でアルゴリズムの開発が始まったHELMですが、 2010年前後からPistoia Allianceという非営利のコンソーシアムの支援を受けてさらに開発が進みました。*4
2012年にオープンなものとしてリリースされ無料で利用できるようになりました。 同年、Pfizerより論文も発表されています。*5
HELM: A Hierarchical Notation Language for Complex Biomolecule Structure Representation
Zhang, T. et. al., J. Chem. Inf. Model. 2012, 52, 10, 2796–2806
2014年にはChEMBLがHELMの採用を公表し、2015年にはChemAxonがHELM toolkitのMarvinBeans 5.0ライセンスを無料化、 また、RDKitでもHELMが利用できるようになったりと、データベース・ツールともにHELMへのアクセスが広がり、 順調にデファクトスタンダードとしての地位を築きつつあります。*6
Pistoia Alliance
Pistoia Allianceはグローバル製薬企業(AstraZeneca、GSK、Novartis、Pfizer)の代表によって2007年構想、2009年設立された組織で、 2020年現在、100を超える企業・団体がメンバーとなっています。日本からは武田薬品が参加しているみたい。*8
組織の目的はR&Dイノベーションを妨げる共通の課題を協力して解決し、効率をあげることです。 具体的にはデータの収集、アクセス、共有方法といった、R&Dに必須でありながら、各社それぞればらばらに取り組んでいた課題があげられます。
規制当局と協力して新しい標準化を取り入れたり、法的な枠組みを提供することで、各社が競争する前の「場」をまずは整備しましょう、ということみたいです。
ちなみにPistoiaは会合が開かれたイタリアの都市の名前だそうです。ミニマルなデザインのロゴにトスカーナの風を感じますね!・・・知らんけど。
脱線しますが、個人的にとても良いな、と思ったのはPistoia Alliance Chemical Safety Libraryという取り組みです。
実際のラボ実験の経験にもとづき、危険な化学実験のリスクについて情報共有を行おうとするもので、CASと協力してオープンアクセスのプラットフォームChemical Safety Library の公開に至っています。*9
企業間の垣根を超えてノウハウを共有し、安全性の向上をめざしていこうというのはすごく良いですよね。推せるぞ!Pistoia!
HELM表記の構造と表現方法
背景がわかったところで具体的なHELMの中身について見ていきましょう。 Pistoia Allianceホームページの図表が非常に分かりやすいので、先のPfizerの論文を参照しつつ眺めていきます。
以下、特段の記載の限り図表はこちらのURL を引用させていただいています。
HELMの階層構造
Hierarchical Editing Language for macromolelucesという名前が示す通り、HELMは階層構造を持った表現です。
① Complex polymer、② Simple polymer、③ Monomer、④ Atomの4階層で構成されています。
階層構造であることにより、文脈に応じて異なるレベルで構造の解析と描画を行うことができます。 また、高次の階層は低次の階層の表現をもちいて表すことができます。
Complex polymer
では、まず、一番高次のComplex Polymerから。この階層はマクロ分子全体の化学構造の情報を表現します。
下図の通り、構成要素であるsimple polymerとそれらをつなぐ接続(connection)によって表すことができます。
Simple polymer
Simple polymerは同じpolymerタイプのmonomerから構成されています。
複雑さを避けるため単一の直鎖(single linear chain)として定義されています。 従って分岐(branching)や環状(cyclization)といった構造はこの階層では扱いません。
また、特定のpolymerタイプにはmonomer間の接続(connection)のルールが明示的に定義されており、 接続の位置とルールによってmonomer配列の方向性が表せるようになっています (ex. ペプチド:N末端→C末端)。
Monomer
Monomerは原子(atom)と結合(bond)から構成されており、MolfileやSMILESといったフォーマットで表すことができます。 ペプチドにおけるアミノ酸の表記(ex. A, G)と同様に、各monomerには単一のID(unique ID)が与えられており、 IDを使ってsimple polymerを表すことができます。
また、monomerの定義の中には接続の位置(attachment point)も含まれています。
monomerはsimple polymerのビルディングブロックとしても、複数のpolymer間をつなぐ接続要素としても用いることができます。
Atom
以上がHELMの階層構造でした。
各階層のプロパティと表記のルール
続いて、各階層のより具体的な表記方法、特徴を見ていきます。最終的にこんな感じの表記が理解できるようになりたい!
Monomer definition
HELMの表現の簡潔さはMonomerを単一のIDで表せることによるところが大きいと思われます。
従って、各Monomerがしっかりと定義されていることが重要となります。例えばChEMBLではHELM表現と一緒にMonomerの辞書(monomer library)も提供されていたりします。
ではそのMonomerがどのようなプロパティをもっているのか?先の図を拡大して見てみましょう。
プロパティの① ~ ③はこんな感じ。Attachment pointがちょっと細かい。
後半④ ~ ⑦はこんな感じ。
文字ばっかりの説明になってしまいました。
イメージを掴むために論文からFig.2を引用させていただきましょう。
ペプチド鎖のHELM表記の中で、monomerはこんな感じででてきます。
Attachment pointにおけるCapping groupや、 非天然のアミノ酸とNatural analogの表記の比較がイメージしやすいですね。
Simple Polymer の記載の仕方
Simple polymerの表記はmonomerの定義に基づいています。
特にプロパティの⑥ monomer typeと ③ attachment point が大事で、タイプによってR1、R2、R3の意味合いが変わってきます。
backboneであればR1、R2は別のbackbone monomerと接続して主鎖が伸びる場所で、 branchingであればR1はbackboneのR3のと接続する場所となります。
先のアラニンのmonomer定義でプロパティのSMILES表記は以下のようになっていました。伸張の方向性(N末からC末)からattachment pointがR1、R2となっているのが分かりやすいですね。
で、具体的な線形表記のルールですが、SMILESと非常に類似しています。こんな感じ、、、
適当に比較例をつくってみました。分岐や特殊なユニットの表し方といった文法が似てますね!
Simple Polymer Type の分類
ざっくりこんなタイプにわかれます。
RNA TYPEのmonomerを3つの部分(sugar、base、linker)に分けて定義しているのは、 まとめて定義すると組み合わせごとに別の定義が必要になり、膨大な数になってしまうからだそうです。
またNonespecificなCHEM TYPEでは、モノマー間の接続が定義されていないので、 モノマー1つずつを別々のsimple CHEM polymerとして扱います。
従ってCHEMでは複数モノマーの表現がcomplex polymer notationの範疇で取り扱われる事になります。
Complex Polymer Notation Specification
複数のsimple polymerの組み合わせからなるcomplex polymerには、 Conjugated Polymers (ex. protein-drug conjugate)、 Cross-linked polymers (ex. antisense oligonucleoide dimers)、 Polymer mixtures (ex. siRNA) といったものがあります。
表記の特徴はこんな感じ・・・
各セクションは以下のようになっています。
また、simple polymerは一本鎖なので、環状構造(Cycles)や分岐鎖(Branches)はsimple polymer間を接続する事で表現されます。
環状構造の具体例として、ペプチドホルモンオキシトシンのPubChem上の表記を見てみましょう。 2つのシステイン残基がジスルフィド結合で繋がれています。
以上でHELMの各階層の表記方法の説明はおしまいです。
HELMの表記例
表記方法が大体わかったので例をもう少し見て見ましょう。
以下はいずれもPistoia Alliance HPに記載の例です。Complex polymerのグラフ表現とHELM表記とが並んでいます。
グラフは見慣れない図ですが、monomerをベースにした表現で、HELM web editor を使って同様の図を作成できます。*11
まずは直鎖のオリゴヌクレオチド…。塩基も糖もリン酸も修飾が入ったゴリゴリした例です。
続いて環状ペプチド。HELM表記は先にみたオキシトシンと同様に解釈できます。 monomerを1文字表記したグラフ表現はPubChemで見た構造式と比べてより簡潔な表現になっているように見えます。
・・・赤色背景に黒字はColor Blind Friendlyじゃ無いので読むのがつらいです。。。カラーユニバーサルデザインでお願いします。。。
つぎはsiRNA、塩基対で水素結合を形成し2本鎖となっています。Hydrogen bond list、Attribute listの参考例としてどうぞー
最後はオリゴヌクレオチドとペプチドのコンジュゲートです。
異なるPolymer typeの組み合わせの例。Non-specific polymerのCHEMも使われています。
以上、具体例でした。
HELMのバージョン
ここまでHELMの階層構造と表記方法について見てきましたが、HELMのバージョンについても触れておきます。
現在2つのバージョンがあり、新しいHELM2ではHELM1よりもさらに表現の幅が広がっています。*12
HELM1では自由にmonomerの定義を加えていく事で非天然のモノマーを含めていくことができました。 HELM2ではさらに定義可能な範囲が広がり、混合物のような曖昧さのある構造も表現可能となっています。
ChEMBLとRDKitにおけるHELM
オープンソース化されたマクロ分子の表記HELM。オープンなものとしてやっぱりChEMBLとRDKitは外せないですよね!
ChEMBLでは2015年リリースのChEMBL 20からHELMを含めるようになったようです。*13 ちなみに2020年10月現在のバージョンはChEMBL 27です。
PubChemでも検索してみたオキシトシンを調べてみましょう。
疲れた心と体に幸せホルモンを!!*14
ID CHEMBL395429でヒットしました。 Compound Report Cardをスクロールしていくと「HELM Notation」という項目があります。
PubChemと比較すると、わずかに異なるHELM表記となっていました。ChEMBLではconnection listのSourceとTargetが反対となっています(「6:R3-1:R3」)。
分子内ジスルフィド結合なのでどちらでも良いですが、個人的にはPubChemの数字が小さい方を先にする書き方の方が好きです。
また、monomerの定義はXML形式でダウンロードすることもできます。サイズ 3.9MBもある。。。
続いてRDKit!
現在の所、ペプチドだけサポートされているみたいです。まずはHELMからMolオブジェクトを作ってみましょう!
ライブラリをインポート・・・
from rdkit import rdBase, Chem from rdkit.Chem import Draw, rdDepictor from rdkit.Chem.Draw import IPythonConsole print('rdkit version: ', rdBase.rdkitVersion) # rdkit version: 2020.03.2
SMILESからMolオブジェクトをつくるときと同じノリでMolFromHELM( )
とすればOKです!
Oxytocin_mol = Chem.MolFromHELM('PEPTIDE1{C.Y.I.Q.N.C.P.L.G.[am]}$PEPTIDE1,PEPTIDE1,1:R3-6:R3$$$')
Oxytocin_mol
Molオブジェクトが無事生成されました! でももっと可愛く! *16
rdDepictor.SetPreferCoordGen(True)
Oxytocin_mol
CoordGen良い!! 幸せホルモン分泌された!
逆にMolオブジェクトからHELM表記を生成してみます。こっちもいつものノリでMolToHELM( )
とすればOKです!
Oxytocin_helm = Chem.MolToHELM(Oxytocin_mol) print("Generated HELM Notation: ", Oxytocin_helm)
「Generated HELM Notation: PEPTIDE1{C.Y.I.Q.N.C.P.L.G.[am]}$PEPTIDE1,PEPTIDE1,1:R3-6:R3$$$」と出力されました。
バッチリっすね! もうMolToHELMキャンペーンしたいくらい!
まとめ
以上、マクロ分子の線形表記 HELMついてでした。相変わらず大事なポイントを絞れないので無駄に長くなってしまいました。。。 まぁ、なんとなく表記の読み方もわかるようになったのでいいや。
さてHELMですが、原子数がべらぼうに多い巨大な分子でも簡潔に線形表記できてしまうところが素敵と思いました。
J.Cheminformのレビューでは、HELMのような表現は生物と化学の融合地点としてのBiocheminformatics的表現といったことが書かれていました(雰囲気意訳)。
冒頭にも書きましたが、化学修飾された生物学的分子を表現できることで、技術発展が著しいモダリティ分野をインフォマティクスの観点からもっと取り扱えるようになりそうです。
っていうか、もうできてるのか!知らなかったの私だけだったのか!!
無知を晒しついでの感想ですが、私はケモインフォを齧り始めて、「コンピューターに分子を認識させるのってこんなに難しいことだったのか!」とびっくりしました。
正直SMILESやら今回のHELMやら「なぜそれで一意に構造に対応させられるか?」といったことや、「どうやってこのルールに絞り込んだのか?」みたいなことはさっぱり分かりません。
ですが賢い人々が考えた表記方法を調べてみると新しい言葉を習う感じの面白さがあります。
ロゴスはロジックだから!・・・知らんけど!
適当に調べたことを書いているので色々と間違いがあると思います。ご指摘いただけると幸いです。
*1:関連するレビューを読んだりRDKit UGMをみたりしたところだったので、タイミングが良すぎてとても突き刺さりました。いや、本当に。
*2: こっちの記事でその他の表現とまとめているのでよろしければどうぞー
*3:図はHELM wiki、J. Cheminform. 2020(12)56のFigureを元に作成
*4:1. Whit Is HELM?(Scilligence blog記載より) 2. Hierarchical editing language for macromolecules (Wikipedia)
*5:J. Chem. Inf. Model. 2012(52)2796
*6:The Pistoia Alliance HELM project announces free MarvinBeans 5.0 licenses and integration of HELM with the RDKit cheminformatics suite(Pistoia Alliance HPより)
*7:https://www.pistoiaalliance.org より
*8:ABOUT THE PISTOIA ALLIANCE (Pistoia Alliance HPより)
*9:Oct. 19th 2020 CAS Release情報より
*10: https://pubchem.ncbi.nlm.nih.gov/compound/439302
*14:突然漂う不穏な空気
*15:https://www.ebi.ac.uk/chembl/compound_report_card/CHEMBL395429/
*16:化学の新しいカタチ「RDKitと二次元構造式:CoordGenで大員環化合物を綺麗に描画」を参考