Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Cheminformatics and molecular retrieval (RDKit)

Dernière mise à jour :Aug 19, 2026

Le plug-in RDKit ajoute des fonctionnalités de chémoinformatique à ApsaraDB RDS for PostgreSQL, notamment le stockage de molécules, la recherche par similarité à l'aide des coefficients Tanimoto et Dice, la recherche de sous-structures ainsi que l'indexation GiST pour les grandes bibliothèques de composés.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une instance RDS exécutant PostgreSQL 12

Types de données

RDKit introduit des types de données pour manipuler les données moléculaires.

Type Description Format d'entrée Exemple
mol Molécule SMILES (simplified molecular input line entry specification) 'c1ccccc1'::mol (benzène)
fp Empreinte moléculaire Format binaire bytea
bfp Empreinte sous forme de vecteur de bits Accepté par tanimoto_sml, dice_sml
sfp Empreinte sous forme de vecteur de comptage clairsemé Accepté par tanimoto_sml, dice_sml
qmol Molécule de requête avec fonctionnalités SMARTS SMARTS 'c1cccc[c,n]1'::qmol

Pour obtenir la liste complète des instructions SQL prises en charge, consultez RDKit SQL.

Activer le plug-in RDKit

Exécutez la commande suivante pour créer l'extension :

postgres=# CREATE EXTENSION rdkit;
CREATE EXTENSION

Configurer les seuils de similarité

Les opérateurs % et # comparent la similarité moléculaire selon des seuils GUC configurables. La valeur par défaut est 0.5 pour les deux.

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

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

Paramètres GUC

Paramètre Description Valeur par défaut
rdkit.tanimoto_threshold Seuil de similarité Tanimoto pour l'opérateur % 0.5
rdkit.dice_threshold Seuil de similarité Dice pour l'opérateur # 0.5

Créer des index

Choisissez un type d'index selon l'opération prévue.

Les index B-tree et hash prennent en charge les opérations de comparaison sur les colonnes mol et fp :

CREATE INDEX molidx ON pgmol (mol);
CREATE INDEX molidx ON pgmol (fp);

Les index GiST prennent en charge les opérateurs de recherche par similarité et par sous-structure (mol % mol, mol # mol, mol @> mol, mol <@ mol, fp % fp, fp # fp) :

CREATE INDEX molidx ON pgmol USING gist (mol);

Opérateurs

Opérateurs de similarité

Opérateur **Renvoie true lorsque**
mol % mol, fp % fp Similarité Tanimoto < rdkit.tanimoto_threshold
mol # mol, fp # fp Similarité Dice < rdkit.dice_threshold

Opérateurs de sous-structure

Opérateur **Renvoie true lorsque**
mol @> mol L'opérande de gauche contient l'opérande de droite en tant que sous-structure
mol <@ mol L'opérande de droite contient l'opérande de gauche en tant que sous-structure

Fonctions

tanimoto_sml

Calcule la similarité Tanimoto entre deux empreintes et renvoie une valeur double precision comprise entre 0 et 1.

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_sml

Calcule la similarité Dice entre deux empreintes et renvoie une valeur double precision comprise entre 0 et 1.

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

Renvoie true si le deuxième argument est une sous-structure du premier.

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)

Remarques d'utilisation

  • L'entrée et la sortie mol utilisent le format SMILES.

  • L'entrée et la sortie fp utilisent le format binaire bytea.