ここでは化合物データとして PubChem の一部を登録してみます。
使用するデータは
Compound_000000001_000025000.sdf.gz
*ftp.ncbi.nlm.nih.gov から取得(2016/08/01版)。$$$$の件数で23,238件

まずは、データ格納用のSQLテーブルを作成します。

データ登録RDKit/Cartridge/PubChem/登録

テーブル作成

化合物情報を収録するSQLテーブルpubchemを作ってみる

取得したCompound_000000001_000025000.sdf.gzファイルを見ると構造式情報の他に各種のプロパティーが書かれている。

なので、sdfのMDL MOL部分はMDLMOLフィールドに記載して、他の各種プロパティーはそのプロパティー名をもつフィールドを用意した。

RDKitは構造式検索、プロパティー演算にsmilesを使用する。一応PubChemのデータにはこのsmilesが入っているが、RDKitから作られるsmilesを入れるフィールド(RDKit_smiles)も用意した。

フィールド名制約備考
MDLMOLtextM ENDまでの構造式(MDL MOL形式)
RDKit_smilesmolRDKitによりMDLMOLから作成
PUBCHEM_COMPOUND_CIDintegerprimary key主キー
PUBCHEM_COMPOUND_CANONICALIZEDboolean
PUBCHEM_CACTVS_COMPLEXITYsmallint
PUBCHEM_CACTVS_HBOND_ACCEPTORsmallint
PUBCHEM_CACTVS_HBOND_DONORsmallint
PUBCHEM_CACTVS_ROTATABLE_BONDsmallint
PUBCHEM_CACTVS_SUBSKEYStext
PUBCHEM_IUPAC_OPENEYE_NAMEtext
PUBCHEM_IUPAC_CAS_NAMEtext
PUBCHEM_IUPAC_NAMEtext
PUBCHEM_IUPAC_SYSTEMATIC_NAMEtext
PUBCHEM_IUPAC_TRADITIONAL_NAMEtext
PUBCHEM_IUPAC_INCHItext
PUBCHEM_IUPAC_INCHIKEYtext
PUBCHEM_XLOGP3_AAnumeric(20,10)
PUBCHEM_XLOGP3numeric(20,10)
PUBCHEM_EXACT_MASSnumeric(20,10)
PUBCHEM_MOLECULAR_FORMULAvarchar(30)
PUBCHEM_MOLECULAR_WEIGHTnumeric(20,10)
PUBCHEM_OPENEYE_CAN_SMILEStext
PUBCHEM_OPENEYE_ISO_SMILEStext
PUBCHEM_CACTVS_TPSAnumeric(20,10)
PUBCHEM_MONOISOTOPIC_WEIGHTnumeric(20,10)
PUBCHEM_TOTAL_CHARGEsmallint
PUBCHEM_HEAVY_ATOM_COUNTsmallint
PUBCHEM_ATOM_DEF_STEREO_COUNTsmallint
PUBCHEM_ATOM_UDEF_STEREO_COUNTsmallint
PUBCHEM_BOND_DEF_STEREO_COUNTsmallint
PUBCHEM_BOND_UDEF_STEREO_COUNTsmallint
PUBCHEM_ISOTOPIC_ATOM_COUNTsmallint
PUBCHEM_COMPONENT_COUNTsmallint
PUBCHEM_CACTVS_TAUTO_COUNTsmallint
PUBCHEM_NONSTANDARDBONDtext ARRAY
PUBCHEM_COORDINATE_TYPEsmallint ARRAY
PUBCHEM_BONDANNOTATIONStext ARRAY

*RDKit_smilesのデータ型は、RDKitで付与されたmol型である

RDKitは smiles を土台として構造式検索や各種のプロパティーを算出する。
そのため実際にはIDとsmilesさえあれば事が足りる。
でも原子の座標情報がないので、webに構造式を表示するにはこのsmilesから二次元座標を作る必要がある。

一応、smilesから二次元座標、三次元座標を作るツールはあるけど、もし登録するデータがMDL MOL/SDFなら、その座標情報から構造式の絵を作るのが望ましい。
*smilesから座標を作ると間違ってはいないが、見慣れない形で表示されてしまう時がある

とりあえずテーブルpubchemを作成します

[root@c ~]# psql -U caster -d chemdb
psql (9.2.15)
"help" でヘルプを表示します.

chemdb=> CREATE TABLE pubchem(
  MDLMOL                          text,                --- MDL MOL形式
  RDKit_smiles                    mol,                 --- RDKitのデータ型
  PUBCHEM_COMPOUND_CID            integer primary key, --- ID
  PUBCHEM_COMPOUND_CANONICALIZED  boolean,
  PUBCHEM_CACTVS_COMPLEXITY       smallint,
  PUBCHEM_CACTVS_HBOND_ACCEPTOR   smallint,
  PUBCHEM_CACTVS_HBOND_DONOR      smallint,
  PUBCHEM_CACTVS_ROTATABLE_BOND   smallint,
  PUBCHEM_CACTVS_SUBSKEYS         text,
  PUBCHEM_IUPAC_OPENEYE_NAME      text,
  PUBCHEM_IUPAC_CAS_NAME          text,
  PUBCHEM_IUPAC_NAME              text,
  PUBCHEM_IUPAC_SYSTEMATIC_NAME   text,
  PUBCHEM_IUPAC_TRADITIONAL_NAME  text,
  PUBCHEM_IUPAC_INCHI             text,
  PUBCHEM_IUPAC_INCHIKEY          text,
  PUBCHEM_XLOGP3_AA               numeric(20,10),
  PUBCHEM_XLOGP3                  numeric(20,10),
  PUBCHEM_EXACT_MASS              numeric(20,10),
  PUBCHEM_MOLECULAR_FORMULA       varchar(30),
  PUBCHEM_MOLECULAR_WEIGHT        numeric(20,10),
  PUBCHEM_OPENEYE_CAN_SMILES      text,
  PUBCHEM_OPENEYE_ISO_SMILES      text,
  PUBCHEM_CACTVS_TPSA             numeric(20,10),
  PUBCHEM_MONOISOTOPIC_WEIGHT     numeric(20,10),
  PUBCHEM_TOTAL_CHARGE            smallint,
  PUBCHEM_HEAVY_ATOM_COUNT        smallint,
  PUBCHEM_ATOM_DEF_STEREO_COUNT   smallint,
  PUBCHEM_ATOM_UDEF_STEREO_COUNT  smallint,
  PUBCHEM_BOND_DEF_STEREO_COUNT   smallint,
  PUBCHEM_BOND_UDEF_STEREO_COUNT  smallint,
  PUBCHEM_ISOTOPIC_ATOM_COUNT     smallint,
  PUBCHEM_COMPONENT_COUNT         smallint,
  PUBCHEM_CACTVS_TAUTO_COUNT      smallint,
  PUBCHEM_NONSTANDARDBOND         text     ARRAY,
  PUBCHEM_COORDINATE_TYPE         smallint ARRAY,
  PUBCHEM_BONDANNOTATIONS         text     ARRAY
);
NOTICE:  CREATE TABLE / PRIMARY KEYはテーブル"pubchem"に暗黙的なインデックス"pubchem_pkey"を作成します
CREATE TABLE
chemdb=>
chemdb=>
chemdb=> \dti+
                               リレーションの一覧
 スキーマ |     名前     |      型      | 所有者 | テーブル |   サイズ   | 説明
----------+--------------+--------------+--------+----------+------------+------
 public   | pubchem      | テーブル     | caster |          | 8192 bytes |
 public   | pubchem_pkey | インデックス | caster | pubchem  | 8192 bytes |
(2 行)

chemdb=>
chemdb=> \q
[postgres@c ~]$

次にデータを登録してみます RDKit/Cartridge/PubChem/登録

最新の60件
2026-06-08 2026-06-06 2026-06-05 2026-06-04 2026-06-03 2026-05-31 2026-05-28 2026-05-26 2026-05-23 2026-05-22 2026-05-21 2026-05-20 2026-05-19 2026-05-18 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-03 2026-04-30 2026-04-29 2026-04-28 2026-04-27 2026-04-25 2026-04-24 2026-04-22 2026-04-21 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-09-25 (日) 11:52:28