アミノ酸の性質

このページでは,タンパク質の研究やソフトウェアの開発に利用する目的で,アミノ酸の性質をまとめる.
ウェブで公開されているデータ,PSI4 を使った密度汎関数法による側鎖の性質の予測値,RDKit を使ったフィンガープリント法による分子の類似性予測を掲載した.

下記の利用ができそうであるが,他にないか考え中である.
2024 年中盤頃までをデータの作成期間とし,それ以降はプログラミングによる検討期間とする,予定である.


アミノ酸の性質

このセクションでは,以下のデータをまとめた.

密度汎関数法による計算について

分子モデル

計算に使った分子モデルは,Builcule で作成した.
側鎖のみの値を得るために,主鎖のアミノ基およびカルボキシル基を水素に置き換えた.α 炭素を残したのは,Gly の値を計算するためである.
Gly はメタンの Ala はエタンの計算値ということになる.Pro は,n-ブタンの計算値を充てた.

計算条件

一覧表:アミノ酸の性質

-AlaArgAsnAspCysGlnGluGlyHisIleLeuLysMetPheProSerThrTrpTyrVal
分子量(a)89.09174.2132.12133.1121.16146.14147.1375.07155.15131.17131.17146.19149.21165.19115.13105.09119.12204.22181.19117.15
XLogP3(a)-3-4.2-3.4-2.8-2.5-3.1-3.7-3.2-3.2-1.7-1.5-3-1.9-1.5-2.5-3.1-2.9-1.1-2.3-2.3
極性表面積(a)63.312810610164.310610163.39263.363.389.388.663.349.383.683.679.183.663.3
complexity(a)61.817613413375.314614542.91511031011069715310372.693.324517690.4
水素結合供与体数(a)24333332322322233332
水素結合受容体数(a)34454453433443344343
回転可能結合数(a)15332441333543122332
溶解度(b)16418229.45.3927741.38.5724945.634.421.5100056.626.9162.04259713.40.47958.5
LogP(b)-2.85-4.2-3.82-3.89-2.49-3.64-3.69-3.21-3.32-1.7-1.52-3.05-1.87-1.38-2.54-3.07-2.94-1.06-2.26-2.26
pKa1(b)2.342.182.021.921.712.172.192.341.782.362.382.182.281.83-2.212.632.382.202.30
pKa2(b)9.699.098.803.878.33 9.134.259.605.979.689.618.959.219.13-9.1510.43 9.399.11-
pKa3(b)-13.2-9.8710.78-9.67-8.97--10.53------10.07(c)-
双極子(非解離型)(d)03.07173.5891.67211.82773.49094.13490.00013.87230.06060.06021.50481.78950.279801.67421.61592.07711.35380.0853
双極子(解離型)(d)-7.809-5.2099--7.5005-3.821--11.657--------
HOMO(非解離型)(d)-0.340089-0.221844-0.244394-0.271215-0.234916-0.244338-0.270841-0.38904-0.214577-0.308888-0.308888-0.226844-0.215215-0.235739-0.317547-0.263034-0.261131-0.193312-0.211472-0.317681
HOMO(解離型)(d)--0.439306--0.037663---0.039663--0.432101---0.439814--------
LUMO-HOMO(非解離型)(d)0.444870.2832270.27740.2804440.2630850.2765370.3891410.5069550.248560.3952940.3952670.3096430.2621450.240950.4124450.3388260.3347380.1919460.2347520.403703
LUMO-HOMO(解離型)(d)-0.283838-0.168538--0.151379-0.233325--0.272363--------
      (a) PubChem から入手した計算値.述語の意味は,Glossary - PubChem を参照していただきたい.
      溶解度は,g/L at 25 °C の値.
      極性表面積:Topological Polar Surface Area.
      回転可能結合数:Rotatable Bond Count の私訳.
      (b) PubChem から入手した測定値.述語の意味は,Glossary - PubChem を参照していただきたい.
      (c) フェノール性ヒドロキシ基の値.
      (d) 密度汎関数法による計算値.

極性表面積をみると,Ala,Gly,Ile,Leu,Phe,および Val が同じ値 63.3 で,Pro が最小値49.3 となっている.つまりこれらは主鎖の値である.

回転可能結合数とは,分子から水素と水素の共有結合を除き,残りの共有結合数から,末端の共有結合数,環を成す共有結合数,アミド C-N 結合数を除いた残りの数である.分子の「ぐにゃぐにゃ度」を表す指標の一つ.Gly,Ala,および Pro の値が 1 であるのは,Cα-C 結合のみ残るから.

一覧表の列をアミノ酸の性質を表現するベクトルとみなすと,それらを正規化して求めた内積はアミノ酸の類似度を表すことになる.
行の重み付け(例えば,分子量や XLogP3 にどのような計数を掛けるか)は,ディープラーニングで計算すればよさそうである.
当サイトにはタンパク質のデータベースがないので,この手段は採れないのであるが.


アミノ酸の類似度

このセクションは,Python-RDKit で計算した.
Python の環境構築法は,Python アプリケーションのインストールで紹介している.
また,Python を使った RDKit の勉強法は,Python による RDKIT 練習ノートで紹介している.

どの類似性指標を使うかは,今後の検討課題である.
ノートとして,類似性の計算法を記しておく.

アミノ酸の類似性の計算例

下は,アミノ酸の類似性を計算するサンプルコードである.
Ala と Arg の類似性を,トポロジカルフィンガープリントの類似性を Tanimoto 係数を使って計算している.
Ala と Arg は,Builcule で作成した.MOL 形式でエクスポートしたものをコードと同じディレクトリに置いてある,という設定である.
非電荷型のアミノ酸で計算した(執筆時点で電荷がある場合の計算方法がわからないので).

コードの青色の箇所がフィンガープリントの生成に係る.赤色の箇所が類似性の計算に係る.


from rdkit import Chem
from rdkit.Chem.Fingerprints import FingerprintMols
from rdkit import DataStructs

ala = Chem.MolFromMolFile("ala.mol")  #MOL 形式の Ala を開く
ala_fp = FingerprintMols.FingerprintMol(ala)  #Ala のフィンガープリントの作成

arg = Chem.MolFromMolFile("arg.mol")  #MOL 形式の Arg を開く
arg_fp = FingerprintMols.FingerprintMol(arg)  #Arg のフィンガープリントの作成

#類似性の計算
similarlity = DataStructs.FingerprintSimilarity(ala_fp, arg_fp,
  metric = DataStructs.TanimotoSimilarity)  #類似性指標を引数オプションとして与える

print(similarlity)

実行したら,
0.5454545454545454
と出力された.

アミノ酸の類似性の一覧表

上と同じ条件で計算した結果を一覧表にした.

AlaArgAsnAspCysGlnGluGlyHisIleLeuLysMetPheProSerThrTrpTyrVal
Ala1.00.5450.5880.60.6820.5450.5770.6670.4760.5450.5660.60.5660.4840.50.8330.6520.4690.4760.652
Arg0.5451.00.5110.4920.4380.6860.6220.3640.4790.5810.6140.6090.50.3930.570.4460.5840.3970.4050.598
Asn0.5880.5111.00.580.5120.5680.5680.3920.4440.5280.5440.580.5080.3790.4730.4150.5570.3640.370.607
Asp0.60.4920.581.00.4520.4760.5090.40.3830.5620.5520.5330.5270.3430.4230.4810.6270.3280.3590.602
Cys0.6820.4380.5120.4521.00.4380.4760.4550.3950.4710.4810.5390.50.4660.4680.5860.4870.3910.4540.521
Gln0.5450.6860.5680.4760.4381.00.7210.3640.4530.5280.6250.6340.4720.3820.5670.4630.6020.3780.380.544
Glu0.5770.6220.5680.5090.4760.7211.00.3850.4260.5910.660.670.4920.3580.5220.4680.6510.3330.3580.552
Gly0.6670.3640.3920.40.4550.3640.3851.00.3170.3640.3770.40.3770.3230.3330.5560.4350.3120.3170.435
His0.4760.4790.4440.3830.3950.4530.4260.3171.00.4340.3780.3980.4040.2920.5280.3390.5040.4180.3160.5
Ile0.5450.5810.5280.5620.4710.5280.5910.3640.4341.00.6890.6510.5040.3920.5110.4290.5840.3620.3890.782
Leu0.5660.6140.5440.5520.4810.6250.660.3770.3780.6891.00.7160.5050.3450.5460.4360.6020.3180.3460.637
Lys0.60.6090.580.5330.5390.6340.670.40.3980.6510.7161.00.5410.3430.5420.4730.6670.3220.330.641
Met0.5660.50.5080.5270.50.4720.4920.3770.4040.5040.5050.5411.00.3750.4610.4220.580.3550.3740.671
Phe0.4840.3930.3790.3430.4660.3820.3580.3230.2920.3920.3450.3430.3751.00.380.3620.4510.3830.8510.473
Pro0.50.570.4730.4230.4680.5670.5220.3330.5280.5110.5460.5420.4610.381.00.3830.5410.460.420.568
Ser0.8330.4460.4150.4810.5860.4630.4680.5560.3390.4290.4360.4730.4220.3620.3831.00.6670.3280.3550.515
Thr0.6520.5840.5570.6270.4870.6020.6510.4350.5040.5840.6020.6670.580.4510.5410.6671.00.4920.4530.653
Trp0.4690.3970.3640.3280.3910.3780.3330.3120.4180.3620.3180.3220.3550.3830.460.3280.4921.00.4320.477
Tyr0.4760.4050.370.3590.4540.380.3580.3170.3160.3890.3460.330.3740.8510.420.3550.4530.4321.00.474
Val0.6520.5980.6070.6020.5210.5440.5520.4350.50.7820.6370.6410.6710.4730.5680.5150.6530.4770.4741.0

フィンガープリントの生成法や類似性の計算法にはいくつかのバリエーションがあるが,コードを少し書き換えればよい.
これらの関数には,オプションがたくさんある.頻繁に使うのでなければ,都度 Python API Reference — The RDKit 2023.09.4 documentation を参照すればよさそうである.

トポロジカルフィンガープリント

この方法は,サンプルコードで利用した.
フィンガープリントを作成するには,インポート文を
from rdkit.Chem.Fingerprints import FingerprintMols
として
FingerprintMols.FingerprintMol()
関数を呼び出せばよい.

類似性指標は,以下が使用できた(上のサンプルコードのオプション引数 DataStructs.TanimotoSimilarity を書き換える).

MACCS キー

このフィンガープリントを作成するには,サンプルコードのインポート文を
from rdkit.Chem import MACCSkeys
として
MACCSkeys.GenMACCSKeys()
関数を呼び出せばよい.

類似性指標は,トポロジカルフィンガープリントとおなじものが使用できた

アトムペア記述子

フィンガープリントを作成するには,サンプルコードのインポート文を
from rdkit.Chem.AtomPairs import Pairs として
Pairs.GetAtomPairFingerprint()
関数を呼び出せばよい.

類似性の計算は,
DataStructs.FingerprintSimilarity()
関数を置き換える.

DataStructs.DiceSimilarity()
または
DataStructs.TanimotoSimilarity()
または
DataStructs.TverskySimilaritySimilarity()
を呼び出す.
TverskySimilaritySimilarity() 関数には,指標の計算に使う分母のパラメータを与える必要がある.

トポロジカルトーション

フィンガープリントを作成するには,サンプルコードのインポート文を
from rdkit.Chem.AtomPairs import Torsions
として
Torsions.GetTopologicalTorsionFingerprintAsIntVect()
関数を呼び出せばよい.

類似性の計算は,アトムペア記述子と同じ.

Morganフィンガープリント

フィンガープリントを作成するには,サンプルコードのインポート文を
from rdkit.Chem import AllChem
として
AllChem.GetMorganFingerprint()
関数を呼び出せばよい.
引数にグラフの半径を与える必要がある.

類似性の計算は,アトムペア記述子と同じ.


参考書の検索