この記事では、2023年3月リリースのv.2.0.4を使用し、バージョン2から追加された機能強化を含むalvaMoleculeのいろいろな機能を実際のデータを使って説明していきます。
3回に分けて取り上げていくトピックスは、分子の各種表示と構造チェック(前編)、構造の標準化(中編)、分子記述子と物理化学的特性の計算、スキャフォールド分析、重複分析、グラフ表示、データコンバージョンとエクスポート(後編)となります。
【ツール】
今回使用するツールは、
・alvaMolecule 2.0.4:分子データセットのキュレーション
です。
尚、Alvascience社ソフトウェアスイートに含まれる他のツールについて、弊社ブログに記事がありますので併せてご覧ください。
・「Alvascience社Software
Suite: alvaBuilder 1.0.8の新機能「モデルルール」を使ったde novo 分子生成 -alvaModelとalvaBuilderの連携使用-(前後編)」
https://www.affinity-science.org/2022/12/alvasciencesoftware-suite-alvabuilder.html
・「Alvascience社Software
Suite:alvaDesc/alvaModel/alvaRunnerの連携使用(前後編)」
https://www.affinity-science.org/2022/06/alvasciencesoftware-suitealvadescalvamo.html
【データセット】
・キュレーションを行う対象の分子データセットとして、米国環境保護庁(EPA)のCompTox Chemical Dashbordから入手できる”40 CFR
116.4 Designation of Hazardous Substance List”をベースに、TOX21やChEMBLなどからいくつかの化合物を追加し、327個の分子データセットを作成しました。
alvaMolecule_tutorial_data.txt (ヘッダー付きSMILESファイル)
-
40 CFR 116.4 Designation of
Hazardous Substance List(Chemical List
40CFR1164-2023-03-16.csv)
Ø 連邦水質汚濁防止法に関連する有害物質リスト
https://comptox.epa.gov/dashboard/chemical-lists/40CFR1164
Ø CSV形式でダウンロードした333分子が入ったファイルから、SMILESのデータがない分子31個や単一原子6個を削除、更に不要なフィールドを削除した上で、SMILES列を先頭列に移動しタブ区切りテキストファイルに変換しました。
-
TOX21(TOX21.csv)
Ø 米国国立環境健康科学研究所(NIEHS)や米国食品医薬品局(FDA)などがコラボするToxicology in the 21st Century(TOX21)による、12の生物学的標的に対する定性的毒性測定のデータ。MoleculeNetから入手し、いくつかの分子をピックアップしました。
https://deepchemdata.s3-us-west-1.amazonaws.com/datasets/tox21.csv.gz
-
ChEMBL database
Ø 生理活性分子についてのドラッグライクな特性を提示する、人力でキュレートされたデータベース。現在最新版はChEMBL 31ですが、alvaBuilderの記事に使用したChEMBL22のサブセットからいくつかの分子をピックアップしました。
https://www.affinity-science.org/2022/12/alvasciencesoftware-suite-alvabuilder.html
【データセットの入力と表示】
alvaMoleculeを立上げ、ファイルメニューから用意した分子データセットを入力します。今回はヘッダー付きSMIELSテキストファイルで準備しましたが、alvaMoleculeは次のような各種フォーマットを入力に使用することができます。
- Sybylファイル(.ml2, .mol, .sm2, .mol2, .sy2)、MDLファイル(.mol, .mdl, .sdf, .sd)、HyperChemファイル(.hin)、SMILESファイル(.smi, .smiles)、ヘッダー付きSMILESファイル(.txt)、CMLファイル(.cml)、Macromodelファイル(.mmd, .mmod)、XYZデカルト座標フォーマットで記述されたファイル(.xyz)
データセットを入力するとMolecule Gridという形で分子の2次元描画像が一覧表示されます。グリッドの行数、列数は変更できますが、見やすさのために今回は4x4にしてあります。[図1]
alvaMoleculeは、分子データを入力した時点で構造チェックの機能がバックグラウンドで走っているようです。後で試していく構造チェックの機能を使わなくとも、[View > Highlights > Warnings] から構造的なワーニングを赤く表示させることができます。[図2]
ワーニングを示す赤丸にマウスオーバーすると、ワーニングの内容が表示されます。[図3]
この場合、6番目の分子に於いて、マウスオーバーしているOが荷電原子であることが示されています。
また、各分子の二次元描画が小さくて詳細が見えない場合、行数・列数を変えてセルの大きさを変えなくても、拡大したい分子をクリックで指定し [View > Single molecule mode] で拡大表示させることができます。[図4]
ビューメニューには他にも便利な機能があります。[View > Highlights > Substructure] から開く入力ウィンドウにSMARTSで部分構造を指定し、その部分構造が検索することができます。
試しに、[Cl;X1][c;X3]([c;X3])[c;X3]([O;X2][C;X4])[c;X3][c;X3]
という部分構造を検索してみます。[図5]
検索した結果、ヒットした部分構造が緑色で表示されます。[図6]
また、リングシステム、サイドチェーン、リンカーに分けてBemis-Murcko featuresをハイライトさせることもできます。[図7]
これは、alvaMoleculeが分子入力の時点で、Bemis-Murckoのルール*1に従って分子をこれら3つの部分構造に分解し認識していることを示しています。
*1 Bemis,
G. W., & Murcko, M. A. (1996). The Properties of Known Drugs. 1. Molecular
Frameworks. Journal of Medicinal Chemistry, 39(15), 2887–2893. https://doi.org/10.1021/jm9602928
【構造チェック】
それでは、いよいよalvaMoleculeのメイン機能の一つである構造チェック(Check structures)について見ていきます。
先ほどのハイライト機能で個々の分子の構造に対するワーニングがわかりましたが、このCheck structuresから実行するチェッカーは、分子セット全体での統計情報や、個別の分子に対するチェッカーの結果情報を教えてくれます。それらの情報を、出力・保存することもできます。
[Structure
> Check structures..] からチェッカーの設定ウィンドウが開きますので、特に外したいチェッカーがなければ、10のチェッカー全部が選ばれたデフォルト状態のままで実行します。[図8]
チェッカーが走り、結果の統計情報が表示されます。[図9]
この結果を見ると、投入した327個の分子の中で、リジェクトされた分子(Rejected molecules)が12個、ワーニングがあった分子(Warned molecules)が197個でした。
また、197個のワーニングの内訳は、
・Multiple
structures(複数構造:塩、混合物、イオン液体など):134
・Unusual
valence atoms(通常の原子価ではない原子):25
・Covalent/Ionic
bonds(共有結合/イオン結合:窒素/酸素/硫黄原子とアルカリ金属/アルカリ土類金属の間の異常な共有結合):3
・Total
charge(全電荷:過剰な電荷):22
・Isotopes(同位体:最も豊富にある同位体に属さない原子を含む分子):4
・Charged
atoms(荷電原子:形式電荷が0でない原子):152
・No
carbon atoms(炭素原子なし:炭素原子を1つも含まない分子):124
・Non-standard
atoms(非標準原子:標準原子セット〔H,B,C,N,O,P,S,F,Cl,Br,I〕に含まれない原子が1つでもある分子):131
・Aromaticity(芳香族性:間違った芳香族性結合の割り当て):18
・Radical
atoms(ラジカル原子):0
であったことがわかります。1つの分子で複数のワーニングが出ることがあるため、ワーニング数の合計は、ワーニングが出た分子の数より多くなっています。
また、これらのワーニングは、変則的な分子や誤りを含み得る分子を検出するだけでなく、”標準的な”分子と比べた場合に構造的な特徴を持つ分子を洗い出すこともできる機能という位置づけになります。
これからチェッカーの結果を見て行きますが、これまで表示させてきた分子グリッドでは作業ができませんので、[View > Grid > Molecule worksheet] で分子ワークシートのビューに変更します。
分子ワークシートはソートやフィルター、列の非表示や固定などの機能を持ったスプレッドシート表示で、左端の2次元描画像の次の2つがデフォルトで表示されるNameとFile nameで、その次にユーザーの入力フィールド、更にチェッカーの結果や記述子の計算結果などが入ります。
ちなみに、フッターを見ると[v: 3][c: 12] とありますが、[v: 3]はNameフィールド以外のユーザー入力フィールド数が3、[c: 12]はチェッカーの結果フィールドが12あることを示しています。[図10]
まず、リジェクトを検討します。分子データの出所について述べましたように、ここで使用しているデータは公的機関などがパブリッシュしているものであり、alvaMoleculeがリジェクトするものが12個もあるのは何か変だと思われます。
そこで、この状態でワークシートを右方向にスクロールし、REJECTEDのタイトルで右クリックし、出てくるメニューから[Filter if
> Equals...] を選び、数値1を入力しリジェクトされた12分子を探します。[図11]
その結果、却下されたNo.37、No.47やNo.52など12つの分子がフィルターされました。分子の描画像が表示される場所には「molecule-error」と表示されています。[図12]
alvaMoleculeには、[Edit > Copy as …]から各分子の情報をSMILESや描画像のBMPなど色々な形でコピーできる機能があるのですが、その中に”Copy as Source”という選択肢があります。入力したファイルに立ち戻って確認しなくても、入力したデータをそのままコピーしメモ帳などにペーストすれば中身がわかるので便利です。molecule-errorとなったものにはSource以外の選択肢は無いのですが、この機能を使ってNo.37とNo.47の分子のソースをコピーしました。(表示の分かり易さのためにタブを→で示しています。)
No.37:"C*.CCCCCCCOC(=O)COC1=C(Cl)C=C(Cl)C(Cl)=C1 |c:13,20,t:16,lp:9:2,11:2,13:2,16:3,19:3,21:3,m:1:3.4.5.6.7.8|" → CompTox37 → "2,4,5-T isooctyl ester"→ 25168-15-4
No.47:"C*.C*.OC1=CC=CC=C1 |c:5,7,t:3,lp:4:2,m:1:9.10,3:6.7.8.9|" → CompTox47→Dimethylphenol → 1300-71-6
タブで区切られた最初の項目が” ”(ダブルクォーテーション)で囲まれており、その中身は、SMILESの拡張表現であるCXSMILES(ChemAxon Extended SMILES)を使い、分子の特徴をバーティカルバーで囲んで追記したもののようです。また、この追記情報と前半のSMILES列の間には空白が入っていることがわかります。
alvaMoleculeはCXSMILESを読み込めないものの、通常のSMILESとして読込むのであれば空白以降は読み飛ばされるはずですので、問題はダブルクォーテーションということになります。(SMILESパーサーによっては、空白以降をコメントとして扱うものもあります。)
No.37やNo.47などCompTox由来のデータは、CSVでダウンロードしたものを整形してタブ区切りテキストファイルに変換しただけなので、個々のセルの内容に手は加えていません。整形作業をしたCSVファイルを見ると、それらのSMILESはSMILESフィールドの1つのセル中に入っています。
これらのことより、Excelを使ってCSVからタブ区切りテキストファイルに変換させた時、Excelが空白を含む1つのセルの内容を”
“で囲むことにより1つのテキストとして保持し、タブ区切りが正しく解釈されるよう変換したのではないかと推測されました。名称(Preferred name)の列でも空白が含まれる場合にダブルクォーテーションで囲まれています。その場合、もともとテキストデータですので問題はないのですが、SMILESのような記号の場合には定義されていない記号となってしまいますので、CSVからタブ区切りテキストファイルへの変換には注意が必要のようです。
alvaMoleculeは分子ワークシート上でNameやユーザー入力フィールドの内容をダブルクリックして編集、保存する機能はありますが、入力したソースデータそのものを編集して置換える機能はありません。従って、このダブルクォーテーションを消すため、一旦alvaMoleculeから離れ、データセットをメモ帳アプリで開き、置換え機能で全てのダブルクォーテーションを一括削除して保存しました。
この手動キュレーションしたファイルは、alvaMoleculeで何の問題もなく読込むことができ、再度チェッカーを走らせるとリジェクトは0となりました。[図13]
ワーニングは197から209へと増えていますが、クォーテーションがついていて読み込めなかった12個の分子全てがワーニングだったということになります。
先ほどはリジェクトされた分子を探すため、分子ワークシートのフィルター機能を使いましたが、同様に、ワーニングが出た分子やワーニング内容毎の分子チェックにフィルター機能を使うことができます。
例えば、チェッカーの結果に”Covalent/Ionic bonds (3)”と示されている、異常な共有結合を含む分子を表示するには、COV_IONICの列でequal=1のフィルターをかけます。ハイライトでワーニングを表示させておくと、マウスオーバーによりどの原子間の結合が異常となったのかがわかります。[図14]
また、最も豊富にある同位体でない同位体原子を含む分子4つを表示させる場合、COV_IONICでかけたフィルターをクリアして、ISOTOPEでフィルタをかけます。
フィルターを複数適用することはできますが、同時に複数のフィルターをかけるとAND条件になってしまいますので、別のフィルターをかけたい場合は一回クリアする必要があります。また、先ほどと同様に、マウスオーバーすると同位体原子の種類が表示されます。[図15]
⦅前編終わり⦆