Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Quimioinformática e recuperação molecular (RDKit)

Última atualização: Jun 26, 2026

O plug-in RDKit adiciona recursos de quimioinformática ao ApsaraDB RDS for PostgreSQL, incluindo armazenamento molecular, busca por similaridade com coeficientes de Tanimoto e Dice, busca por subestrutura e indexação GiST para grandes bibliotecas de compostos.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância RDS executando PostgreSQL 12

Tipos de dados

O RDKit introduz tipos de dados para manipulação de informações moleculares.

Tipo

Descrição

Formato de entrada

Exemplo

mol

Molécula

SMILES (especificação simplificada de entrada linear molecular)

'c1ccccc1'::mol (benzeno)

fp

Fingerprint molecular

Formato binário bytea

—

bfp

Fingerprint de vetor de bits

—

Aceito por tanimoto_sml, dice_sml

sfp

Fingerprint de vetor de contagem esparsa

—

Aceito por tanimoto_sml, dice_sml

qmol

Molécula de consulta com recursos SMARTS

SMARTS

'c1cccc[c,n]1'::qmol

Para obter a lista completa de instruções SQL compatíveis, consulte RDKit SQL.

Ative o plug-in RDKit

Execute o comando a seguir para crie a extensão:

postgres=# CREATE EXTENSION rdkit;
CREATE EXTENSION

Configure os limiares de similaridade

Os operadores % e # comparam a similaridade molecular com base em limiares GUC configuráveis. O valor padrão para ambos é 0.5.

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

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

Parâmetros GUC

Parâmetro

Descrição

Padrão

rdkit.tanimoto_threshold

Limiar de similaridade de Tanimoto para o operador %

0.5

rdkit.dice_threshold

Limiar de similaridade de Dice para o operador #

0.5

Crie índices

Escolha um tipo de índice conforme a operação que pretende execute.

Índices B-tree e hash aceitam operações de comparação em colunas mol e fp:

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

Índices GiST aceitam operadores de busca por similaridade e subestrutura (mol % mol, mol # mol, mol @> mol, mol <@ mol, fp % fp, fp # fp):

CREATE INDEX molidx ON pgmol USING gist (mol);

Operadores

Operadores de similaridade

Operador

**Retorna true quando**

mol % mol, fp % fp

Similaridade de Tanimoto < rdkit.tanimoto_threshold

mol # mol, fp # fp

Similaridade de Dice < rdkit.dice_threshold

Operadores de subestrutura

Operador

**Retorna true quando**

mol @> mol

O operando à esquerda contém o da direita como subestrutura

mol <@ mol

O operando à direita contém o da esquerda como subestrutura

Funções

tanimoto_sml

Calcula a similaridade de Tanimoto entre dois fingerprints e retorna um valor double precision entre 0 e 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

Calcula a similaridade de Dice entre dois fingerprints e retorna um valor double precision entre 0 e 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

Retorna true se o segundo argumento for uma subestrutura do primeiro.

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)

Notas de uso

  • A entrada e a saída de mol usam SMILES.

  • A entrada e a saída de fp usam o formato binário bytea.