全部產品
Search
文件中心

ApsaraDB RDS:化學分子計算檢索(RDKit)

更新時間:Feb 28, 2024

RDS PostgreSQL提供RDKit外掛程式,支援化學分子計算、化學分子檢索等功能。

前提條件

執行個體版本為RDS PostgreSQL 12。

背景資訊

RDKit外掛程式支援mol資料類型(描述分子類型)和fp資料類型(描述分子指紋),在此基礎上支援比較運算、相似性計算(Tanimoto、Dice)和GiST索引。

更多RDKit外掛程式SQL操作請參見RDKit SQL

注意事項

  • mol資料類型的輸入、輸出函數遵循簡化分子線性輸入規範(SMILES)。
  • fp資料類型的輸入、輸出功能遵循bytea(儲存位元據的欄位類型)格式。

建立外掛程式

postgres=# create extension rdkit ;
CREATE EXTENSION

預設參數配置

postgres=# show rdkit.tanimoto_threshold ;
 rdkit.tanimoto_threshold 
--------------------------
 0.5
(1 row)

postgres=# show rdkit.dice_threshold;
 rdkit.dice_threshold 
----------------------
 0.5
(1 row)

索引支援

  • mol和fp的比較運算操作支援Btree索引、Hash索引。例如:
    CREATE INDEX molidx ON pgmol (mol);
    CREATE INDEX molidx ON pgmol (fp);
  • mol的%#@><@操作和fp結構的%#操作支援Gist索引。例如:
    CREATE INDEX molidx ON pgmol USING gist (mol);

函數樣本

  • tanimoto_smlFunction Computetanimoto相似性。
    postgres=# \df tanimoto_sml
                               List of functions
     Schema |     Name     | Result data type | Argument data types | Type 
    --------+--------------+------------------+---------------------+------
     public | tanimoto_sml | double precision | bfp, bfp            | func
     public | tanimoto_sml | double precision | sfp, sfp            | func
    (2 rows)
  • dice_smlFunction Computedice相似性。
    postgres=# \df dice_sml
                             List of functions
     Schema |   Name   | Result data type | Argument data types | Type 
    --------+----------+------------------+---------------------+------
     public | dice_sml | double precision | bfp, bfp            | func
     public | dice_sml | double precision | sfp, sfp            | func
    (2 rows)
  • substruct函數,當函數的第二個參數是第一個參數的子結構時,函數返回結果為TRUE。
    postgres=# \df substruct
                             List of functions
     Schema |   Name    | Result data type | Argument data types | Type 
    --------+-----------+------------------+---------------------+------
     public | substruct | boolean          | mol, mol            | func
     public | substruct | boolean          | mol, qmol           | func
     public | substruct | boolean          | reaction, reaction  | func
    (3 rows)

基礎操作說明

  • mol % molfp % fp

    當Tanimoto相似性計算結果小於GUC配置參數rdkit.tanimoto_threshold時,該操作返回結果為TRUE。

  • mol # molfp # fp

    當Dice相似性計算結果小於GUC配置參數rdkit.dice_threshold時,該操作返回結果為TRUE。

  • mol @> mol

    如果操作符@>左邊對象包含右邊對象,該操作返回結果為TRUE。

  • mol <@ mol

    如果操作符<@右邊對象包含左邊對象,該操作返回結果為TRUE。