現在まで,いろいろな化合物表記法を見てきました.その中で,前2回分で出てきた表記法つまりInChI,InChIKey,SMILESは線形表記法(簡単に言うと,ここでは一行で表すという意味で良いと思います)というものに入ります.
一方で,SDF (Structure Data File)やMOLと呼ばれる形式は,行列表記法と呼ばれるものです.だいたい,MOLファイルとSDFファイルの2つさえ覚えておけば問題ないと思います.MOLとSDFの違いは,
1.MOLは1ファイル1化合物しか記述できない(というより,コンピューターが認識しない)のに対して,SDFは複数化合物情報を記載できる.
2.SDFでは,> <Tag…>とフィールドを定義することで,化合物構造情報に加えて付加情報が記載できる
の2点かと思います.
復習ですが,L-Alanineに関して,
線形表記法
InChI: InChI=1S/C3H7NO2/c1-2(4)3(5)6/h2H,4H2,1H3,(H,5,6)/t2-/m0/s1
InChIKey: QNAYBMKLOCPYGJ-REOHCLBHSA-N
Canonical SMILES: CC(C(=O)O)N
でした.
そしてSDFは以下です.
5950
-OEChem-12231402252D
13 12 0 1 0 0 0 0 0999 V2000
5.1350 -0.2500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
4.2690 1.2500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
2.5369 0.2500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
3.4030 -0.2500 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
3.4030 -1.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
4.2690 0.2500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
3.4030 0.3700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
2.7830 -1.2500 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
3.4030 -1.8700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
4.0230 -1.2500 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
2.0000 -0.0600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
2.5369 0.8700 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
5.6720 0.0600 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
1 6 1 0 0 0 0
1 13 1 0 0 0 0
2 6 2 0 0 0 0
4 3 1 6 0 0 0
3 11 1 0 0 0 0
3 12 1 0 0 0 0
4 5 1 0 0 0 0
4 6 1 0 0 0 0
4 7 1 0 0 0 0
5 8 1 0 0 0 0
5 9 1 0 0 0 0
5 10 1 0 0 0 0
M END
> <PUBCHEM_COMPOUND_CID>
5950
> <PUBCHEM_COMPOUND_CANONICALIZED>
1
> <PUBCHEM_CACTVS_COMPLEXITY>
61.8
> <PUBCHEM_CACTVS_HBOND_ACCEPTOR>
3
> <PUBCHEM_CACTVS_HBOND_DONOR>
2
> <PUBCHEM_CACTVS_ROTATABLE_BOND>
1
> <PUBCHEM_CACTVS_SUBSKEYS>
AAADcYBCMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAQCAAACCjBgAQCCABAAgAIAACQCAAAAAAAAAAAAIGAAAACAAAAAAAAQAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
> <PUBCHEM_IUPAC_OPENEYE_NAME>
(2S)-2-aminopropanoic acid
> <PUBCHEM_IUPAC_CAS_NAME>
(2S)-2-aminopropanoic acid
> <PUBCHEM_IUPAC_NAME>
(2S)-2-aminopropanoic acid
> <PUBCHEM_IUPAC_SYSTEMATIC_NAME>
(2S)-2-azanylpropanoic acid
> <PUBCHEM_IUPAC_TRADITIONAL_NAME>
(2S)-2-aminopropionic acid
> <PUBCHEM_IUPAC_INCHI>
InChI=1S/C3H7NO2/c1-2(4)3(5)6/h2H,4H2,1H3,(H,5,6)/t2-/m0/s1
> <PUBCHEM_IUPAC_INCHIKEY>
QNAYBMKLOCPYGJ-REOHCLBHSA-N
> <PUBCHEM_XLOGP3>
-3
> <PUBCHEM_EXACT_MASS>
89.047678
> <PUBCHEM_MOLECULAR_FORMULA>
C3H7NO2
> <PUBCHEM_MOLECULAR_WEIGHT>
89.09318
> <PUBCHEM_OPENEYE_CAN_SMILES>
CC(C(=O)O)N
> <PUBCHEM_OPENEYE_ISO_SMILES>
C[C@@H](C(=O)O)N
> <PUBCHEM_CACTVS_TPSA>
63.3
> <PUBCHEM_MONOISOTOPIC_WEIGHT>
89.047678
> <PUBCHEM_TOTAL_CHARGE>
0
> <PUBCHEM_HEAVY_ATOM_COUNT>
6
> <PUBCHEM_ATOM_DEF_STEREO_COUNT>
1
> <PUBCHEM_ATOM_UDEF_STEREO_COUNT>
0
> <PUBCHEM_BOND_DEF_STEREO_COUNT>
0
> <PUBCHEM_BOND_UDEF_STEREO_COUNT>
0
> <PUBCHEM_ISOTOPIC_ATOM_COUNT>
0
> <PUBCHEM_COMPONENT_COUNT>
1
> <PUBCHEM_CACTVS_TAUTO_COUNT>
1
> <PUBCHEM_COORDINATE_TYPE>
1
5
255
> <PUBCHEM_BONDANNOTATIONS>
4 3 6
$$$$
上記SDFはL-AlanineをPubChemで検索して,ダウンロードしてきたものなので,いろいろなPubChem付加情報がいっぱいついてきていますね.実際に構造情報を格納しているのは,途中のM Endまでです.じーっと見ていたらなんとなくわかると思うのですが,SDFは各原子の二次元座標(もしくは三次元)と,各原子の結合情報が行列データとして格納されています.
細かな説明は,以下のサイトがわかりやすいと思います.
http://www.chem-station.com/blog/2012/04/sdf.html
管理人は,あまり三次元座標を格納したSDFは使いません.なんか,三次元座標情報は,使うソフトウェアによって結構変わるので…(「タンパク質の立体構造を,アミノ酸配列から決定するのが困難である」という事実を思い出していただければ,二次元表記から三次元表記には大きな壁があることを認識していただけると思います.)
ちなみに,SDFファイルは,「ダブルクリック」では開けません.Wordpadやメモ帳など,とりあえずなんらかのテキストエディターを開いて,それにドラッグアンドドロップでSDFを落としてもらうと上記のような情報を見ることができると思います.
ただ,このようなSDFの記法だけ見てもほとんどの人は意味ないと思います.ですので,専用のブラウザをPCにインストールするのが良いかと思います.管理人は,ChemAxonを使っています.大学機関に属している方は,Academic licenseを取得できますので,多種にわたる機能を使うこともできますよ.Licenseがなくとも,SDFを見ることや,構造を描くといった最低限のことはできます.ぜひ,一度ダウンロードして使ってみてください.
ChemAxon: http://www.chemaxon.com/
(ただ,ダウンロードまでの道のりが意外にややこしいので,がんばってください)
化合物のSDFをどうやって手に入れるか?ですが,管理人は基本的に2つの方法を用いています.
1.PubChem SDFダウンロードサイトから,PubChem CIDをもとに一括ダウンロード:https://pubchem.ncbi.nlm.nih.gov/pc_fetch/pc_fetch-help.html
2.自分で作成したSMILESコードを,SDFにソフトウェアで変換.
(1)に関しては,化合物のPubChem CIDを自分で管理しておく必要がありますが,前に紹介したChemical Translation Service(http://cts.fiehnlab.ucdavis.edu/)や,MetaboAnalyst(http://www.metaboanalyst.ca/MetaboAnalyst/)で,必要な情報を集めることができると思います.
(2)に関しては,管理人はChemAxonのコマンドラインで動作するMolConvertを使っています.
https://docs.chemaxon.com/display/FF/Molecule+File+Conversion+with+MolConverter
コマンドラインでの扱いが難しい方は,OpenBabel(http://openbabel.org/docs/dev/index.html)などを使うと良いと思います.
ChemAxonもOpenBabelも,SMILESコードを一括処理することができます.ただ,管理人が確認したところによると,ChemAxonのほうが安定に動く気がします…
すみません,上記,あまりに情報量が多すぎて困ってしまうと思うので,次回以降でぼちぼちフォーカスして取りあげていこうと思いますので,今はあまり気にせず読み飛ばしてください.
前置きが長くなりましたが(いつものことですが),SDFは何が良いのか?ということですが,それは,
「コンピューターに安定に認識させることができる」
「上記により,Molecular Descriptor, Fingerprintが安定に計算できる」
に尽きると思います.SDFはSMILESに比べて,人間が認識しづらい構造をしていますが,一方コンピューターは認識しやすい構造になっています.化合物のプロパティ(Molecular Descriptor)を計算させようとする場合,実際にはSMIELSからも直接計算させることができるのですが,少なくとも管理人は「SMILESから直接計算させるのは不安定だよ」って習っているので,必ずSDFに変換してから計算させるようにしています.
先に述べたように,SMILESは表記ゆれが存在しますので.また,InChIやInChIKeyは化合物を一義的に定義できるので,これが一番安定で簡単なのでは?と思うかもですが,特にInChIKeyは直接化合物構造を保有しているわけではないので,直接PCに認識させることができません.
InChIやInChIKeyを読み込むことができるソフトウェアは,実際にはオンラインでSDFを検索して,情報を交換しながら計算させていくことになるので,オンライン環境にないと計算させることができないと思います(たぶん).
というわけで,化合物のプロパティ計算を行わせるためにはSDFを手にいれることが必須になるわけで,その手に入れ方は上記紹介したPubChemを介する方法か自分でSMILESを使ってそれをSDFにコンバートするやり方になってくると思います.
以上,今日はここまでです.これで,このコラムの目的であった「化合物表記法を学ぶ」ということは一通り終えました.次のコラムは,この化合物表記方法の知識があるという前提で,Molecular Descriptorの解説を行っていきたいと思います.