Unidade 2 / 11

Representação Molecular e Estrutura Química: Validação com SMILES, InChI e RDKit

Ganhos:

  • Capacidade de identificar moléculas não pelo nome, mas pela representação da estrutura (SMILES com humanos, InChI/InChIKey com banco de dados)
  • Capacidade de detectar estruturas inválidas ou incorretas analisando, validando e canonizando cada SMILES fornecido por inteligência artificial com RDKit
  • Ser capaz de compreender que quantidades determinísticas como peso molecular e fórmula devem ser obtidas a partir da ferramenta baseada em regras, e não do modelo de linguagem.

A primeira condição para usar a IA com segurança na química é escrever a molécula em uma linguagem que tanto a máquina quanto o ser humano possam entender. Você diz "fenol", a IA acerta; mas quando você diz “ácido” existem milhares de possibilidades. Os nomes são ambíguos; as representações da estrutura são precisas. Nesta unidade aprenderemos as duas notações básicas que traduzem a molécula em texto (SMILES e InChI) e a ferramenta que as verifica deterministicamente (RDKit). Nosso objetivo: entregar a molécula à IA de uma forma que ela nunca interprete mal e confirmar a estrutura produzida pela IA com uma ferramenta.

O que é SORRISOS?

SMILES (Simplified Molecular-Input Line-Entry System) é um formato de escrita de uma molécula em uma única linha de texto. Os átomos são representados por letras, as ligações por símbolos e os anéis por números. Exemplos:

  • Etanol: CCO (carbono-carbono-oxigênio; hidrogênios implícitos).
  • Benzeno: c1ccccc1 ("c" minúsculo indica carbono aromático; 1 fecha o anel).
  • Aspirina: CC(=O)Oc1ccccc1C(=O)O.
  • Cafeína: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

O poder do SMILES é que ele carrega toda a estrutura do link em uma única linha; Seu ponto fraco é que a mesma molécula pode ter vários SMILES válidos (isso é chamado de não canonicidade). Resolveremos isso com o RDKit em um momento.

Dica: O "SMILES canônico" para uma molécula é a grafia única e padrão para essa molécula. Para ver se dois SMILES são a mesma molécula, canonize-os e compare-os; Eles não deveriam ser iguais textualmente, mas deveriam ser moléculas iguais.

O que é o InChi?

InChI (International Chemical Identifier) ​​​​é um identificador padrão desenvolvido pela IUPAC. A diferença do SMILES é que a mesma molécula dá sempre o mesmo InChI; isto é, é de natureza canônica. É longo e difícil de ler, mas é ideal para correspondência de bancos de dados. O abreviado "InChIKey" (resumo de 27 caracteres) é usado para pesquisa.

  • Aspirina InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Regra: As pessoas falam SMILES (ler), máquinas e bancos de dados correspondem a InChI/InChIKey (exato). Dê SMILES para a IA; Confirme no banco de dados com InChIKey.

RDKit: mecanismo de verificação determinística

RDKit é uma biblioteca de quimioinformática de código aberto. Ao contrário do modelo de linguagem, ele é baseado em regras: analisa SMILES, calcula o peso molecular, gera SMILES canônico, retorna InChI/InChIKey, desenha a molécula. Portanto, o RDKit “calcula” o que a IA “prevê”. Este é o coração do fluxo de trabalho: a IA gera, o RDKit verifica.

Um fluxo de verificação básico:

from rdkit import Chemfrom rdkit.Chem import Descritores, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Fórmula molecular:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Peso molecular:", round(Descriptors.MolWt(mol), 2), "g/mol") imprimir("InChIKey:", Chem.MolToInchiKey(mol))

Se MolFromSmiles retornar None, a IA forneceu uma molécula inválida; Isto por si só é um aviso muito valioso. Se for válido, você não precisa mais perguntar ao modelo de linguagem o peso molecular; Está em suas mãos de forma determinística.

Passo a passo: interoperação AI + RDKit

  1. Identifique a molécula: Dê o nome à IA, peça SMILES. Por exemplo, “verifique SMILES canônicos para paracetamol”.
  2. Verifique: analise SMILES recebidos com MolFromSmiles. Se nenhum, rejeite.
  3. Canonicalizar: recupere a ortografia canônica com MolToSmiles; Sempre use isso de agora em diante.
  4. Calcule números: obtenha peso molecular, fórmula, número de anéis, número de doadores/aceitadores de ligações de hidrogênio, etc. do RDKit, não do AI.
  5. Fix ID: Gere InChIKey, pesquise no banco de dados (PubChem), confirme se a molécula é realmente o composto que você deseja.

Quatro modelos copiáveis

1) Solicitando SMILES (do substantivo à estrutura):

Tarefa: Forneça os SMILES canônicos para o seguinte composto. Composto: paracetamol (acetaminofeno). Regra: Forneça apenas a string SMILES e InChIKey, não adicione mais explicações. Se não tiver certeza, escreva "INSURE", não invente.

2) Solicitação de validação do SMILES (da estrutura ao controle):

Examine os SMILES abaixo: CC(=O)Nc1ccc(O)cc1Perguntas:1) Este é um SMILES válido?2) A que composto corresponde (nome comum)?3) Qual é a fórmula molecular?Nota: calcularei o peso molecular exato com RDKit; Você apenas dá a interpretação da sua estrutura.

3) Comparando duas representações:

Tenho dois SMILES:A) OCCB) CCOTarefa: São a mesma molécula ou diferentes? Escreva seu raciocínio. Observação: verificarei sua resposta canonizando-a no RDKit.

4) Explicação da estrutura (para fins de aprendizagem):

SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTarsa: Leia este SMILES peça por peça e explique o que cada símbolo significa (átomo, ligação, anel, aromatização) em turco simples. Diga também qual é o composto.

Alerta fraco / Alerta forte

Fraco:

Dê as propriedades do paracetamol.

“Recurso” é vago; A IA gera números aleatórios desde o peso molecular até o ponto de fusão, alguns dos quais estarão errados.

Forte:

Composto: paracetamol.1) Canonical SMILES e InChIKey ver.2) Forneça a fórmula molecular.Regra: NÃO DÊ valores NUMÉRICOS como peso molecular, ponto de fusão, etc.; Vou obtê-los com RDKit/PubChem. Basta fornecer o ID da compilação.

Diferença: direcionamos a IA para aquilo em que ela é forte (identidade de estrutura) e para longe daquilo em que ela é fraca (números experimentais).

Comparação de impressões

recurso

SORRISOS

InChI / InChIKey

Legibilidade

Alto (amigável às pessoas)

Baixo (amigável à máquina)

canonicidade

Sujeito a alterações (precisa de canonização)

naturalmente solteiro

Uso

comunicação humana, desenho, entrada

Correspondência de banco de dados, identidade

estereoquímica

Suportes (@ símbolos)

Suportes (em camadas)

para dar à IA

ideal

Ideal para confirmação

mini-casos

Caso 1 — Dois nomes, uma molécula. Um estudante pensou que “N-acetil-para-aminofenol” e “paracetamol” eram compostos diferentes e planejou dois experimentos separados. Quando canonizados seus SMILES no RDKit, ambos acabaram sendo CC(=O)Nc1ccc(O)cc1; Era a mesma molécula. Perdido: meio dia de planejamento; ganho: poderia ter sido evitado com uma verificação de canonização de 2 minutos.

Caso 2 — Captura SMILES inválida. A IA retornou CC(=O)Nc1ccc(O)cc1C( para uma variante (colchetes não fechados). O aluno executou MolFromSmiles, retornou None, viu imediatamente o erro e solicitou SMILES corrigido. Sem verificação, a estrutura defeituosa teria se espalhado para todas as contas.

Caso 3 — Peso molecular incorreto. YZ disse “peso molecular 214,3 g/mol” para ibuprofeno (C13H18O2). O cálculo do RDKit deu 206,28 g/mol. Diferença para 0,1 mol: 21,43 g com YZ, na verdade 20,63 g. Essa diferença de 3,9% atrapalharia a estequiometria e o cálculo do rendimento. Trouxe cálculo determinístico.

Erros comuns

  • Dando o nome à molécula. Sinônimos/nomes comerciais são confusos. Sempre inclua SMILES ou InChI.
  • Comparar SMILES sem canonizá-lo. OCC e CCO são diferentes no texto, mas iguais nas moléculas.
  • Perguntando o peso molecular ao modelo da língua. Este é um cálculo determinístico; Isso é feito a partir do RDKit ou manualmente a partir da fórmula.
  • Não perceber SMILES inválidos. Não verificando o retorno do MolFromSmiles None e continuando com a estrutura errada.
  • Negligenciando a estereoquímica. Os dois enantiômeros (isômeros de imagem espelhada) podem exibir diferentes efeitos biológicos; Ignorando os sinais @/@@ em SMILES.
Atenção: A mesma fórmula molecular não significa moléculas diferentes. C2H6O é etanol (CCO) e éter dimetílico (COC). Igualdade de fórmula não é igualdade de identidade; Use InChIKey para identificação.

Em resumo

  • Identifique moléculas por notação de estrutura, não por nome: SMILES com humano, InChI/InChIKey com banco de dados.
  • RDKit é determinístico; A IA prevê, o RDKit calcula e verifica.
  • Analise cada AI SMILES com MolFromSmiles e verifique se há Nenhum, depois canonize.
  • Obtenha números como peso molecular e fórmula do RDKit, não do modelo de linguagem.
  • Igualdade de fórmulas não significa identidade molecular; Use InChIKey para identificação.

Tarefa de aplicativo

Escolha três compostos (por exemplo, cafeína, ibuprofeno, glicina). Peça à IA SMILES canônicos para cada um. Em seguida, escreva um script RDKit (use o modelo acima) e gere: SMILES canônicos, fórmula molecular, peso molecular, InChIKey. Quantos dos SMILES dados pela IA eram válidos? Se YZ também forneceu o peso molecular, calcule a diferença em porcentagem com o valor do RDKit. Coloque suas descobertas em uma pequena tabela.

lista de verificação

  • [ ] Eu sei o que são SMILES e InChI/InChIKey e quando usá-los.
  • [] Eu verifico todos os SMILES dados pela IA com MolFromSmiles.
  • [ ] Canonizo SMILES antes de compará-los.
  • [] Estou obtendo o peso molecular e a fórmula do RDKit, não do modelo de linguagem.
  • [] Confirmo a identidade da molécula no banco de dados com InChIKey.
  • [ ] Conheço situações em que a estereoquímica é importante.