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

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

データ登録[[RDKit/Cartridge/PubChem/登録]]
&size(10){データ登録[[RDKit/Cartridge/PubChem/登録]]};

***テーブル作成 [#s70889dd]
化合物情報を収録するSQLテーブル&color(orangered){pubchem};を作ってみる

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

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

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


|BGCOLOR(YELLOW):フィールド名|BGCOLOR(YELLOW):型|BGCOLOR(YELLOW):制約|BGCOLOR(YELLOW):備考|
|&color(darkgreen){''MDLMOL''};|text||M  ENDまでの構造式(MDL MOL形式)|
|&color(magenta){''RDKit_smiles''};|&color(magenta){mol};||RDKitにより&color(darkgreen){MDLMOL};から作成|
|PUBCHEM_COMPOUND_CID|integer|primary key|主キー|
|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|||


&color(red){*};&size(10){&color(magenta){RDKit_smiles};のデータ型は、RDKitで付与された&color(magenta){mol};型である};



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

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

とりあえずテーブル&color(orangered){pubchem};を作成します
#code(nonumber,nooutline,noblock,nomenu){{
[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/登録]]
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS