Saltar al contenido

Química – Pubchem, InChI, SMILES y singularidad

Nuestros programadores estrellas han agotado sus reservas de café, en su búsqueda a tiempo completo por la respuesta, hasta que Maya halló la solución en Beanstalk así que hoy la compartimos aquí.

Solución:

Solución 1:

Desafortunadamente, Pubchem tiene razón, las dos estructuras tienen el mismo InChI. string y key, ya que el estado de protonación es el mismo en el zwitterión y en la forma neutra. Así que la razón de la discrepancia es por diseño.
También siempre pensé que InChI fue diseñado para distinguir entre estas conformaciones, pero resulta ser solo una de las limitaciones del sistema. El tema se aborda en la sección 13.2 de las preguntas frecuentes técnicas del fideicomiso InChI:

Los diferentes estados de protonación del mismo compuesto tendrán InChIKeys que se diferencian solo por el indicador de protonación (a menos que ambos estados tengan un número de protones insertados/eliminados mayor que 12; en este caso, la bandera de protonación también será la misma, ‘A’).
Esto se ejemplifica a continuación mediante InChIKeys estándar, así como cadenas InChI estándar para estados neutros, zwitteriónicos, aniónicos y catiónicos de glicina (tenga en cuenta que los estados neutro y zwitteriónico no difieren en el número total de protones, por lo que tienen el mismo InChI/InChIKey estándar) :
InChI para glicina

Solución 2:

InChi es destinado ignorar las formas tautoméricas. Como indica Martin, esto también significa que los zwitteriones se consideran idénticos a la forma neutra.

A diferencia de usted y Martin, no estoy seguro de ver esto como un error, ya que predecir el tautómero o zwitterion/neutral más estable es un tema complicado.

Si desea realizar un seguimiento de los zwitteriones, creo que SMILES es un mejor formato, ya que puede especificar exactamente lo que desea en cuanto a hidrógenos y cargas explícitos. Deberá ceñirse a un conjunto de herramientas en particular para crear un orden canónico.

Además, existe una relación complicada entre los CID e InChI / InChI keys. Hay otro casos en los que PubChem tendrá registros separados para compuestos que podrían ser “iguales” bajo InChI.

  • Estereoquímica axial o no tradicional. Por ejemplo, el hexiheliceno (CID=98863) debería tener dos enantiómeros, pero el InChI no refleja estereoquímica.
  • Centros estéreo “extra”. PubChem toma declaraciones en formato de archivo SD, lo que permite la estereoquímica 2D en notación cuña/hash. Si toma la geometría 3D real, puede darse cuenta de que la cuña/hash se usó para la apariencia, no para indicar un centro estéreo (es decir, varios CID generan el mismo InChI de la molécula 3D completa).

También hay casos en los que PubChem indica un InChI key calculado a partir de la representación 2D en el archivo SD, pero faltan centros estéreo o no están definidos.

Entonces diría que debido a la estereoquímica incompleta y/o las inconsistencias en las representaciones, los CID de PubChem no siempre coincidirán con la “exclusividad estructural” y esto es así por diseño, tanto para PubChem como para InChI.

La moraleja de la historia, francamente, es que la química es complicada y encontrar identificadores únicos “perfectos” es increíblemente difícil.


Solución 3:

La respuesta de Martin me llevó a descubrir una extensión importante de InChI que permite la especificación de algunas identificaciones de tautómeros y zwitteriones.

  1. Identificadores InChi que comienzan con InChI=1S/... son estándar InChI. En InChI estándar, el identificador de InChI “debe ser el mismo para cualquier disposición de átomos de hidrógeno móviles”, con la cita de la Sección 6 de las Preguntas frecuentes técnicas de Inchi Trust.

  2. Sin embargo, también son posibles InChI no estándar. Estos comienzan con InChI=1/.... Tenga en cuenta la falta S. En InChI no estándar, puede haber una capa adicional que comience con /f que se llama la capa de hidrógeno fijo.

  3. Jugando con rdkit (a través de su API Python) pude producir un InChI no estándar que creo que corresponde al compuesto Pubchem 6925665.


from rdkit import Chem
zwitterion_phe_smiles = 'C1=CC=C(C=C1)CC(C(=O)[O-])[NH3+]'
zwitterion_phe_mol = Chem.MolFromSmiles(zwitterion_phe_smiles)

# produces "standard" InChI so not explicitly zwitterionic
print Chem.MolToInchi(zwitterion_phe_mol)

     InChI=1S/C9H11NO2/c10-8(9(11)12)6-7-4-2-1-3-5-7/h1-5,8H,6,10H2,(H,11,12)


# produces "non-standard" InChI with fixed-H layer so zwitterion can be IDed
print Chem.MolToInchi(zwitterion_phe_mol, options='/FixedH')

     InChI=1/C9H11NO2/c10-8(9(11)12)6-7-4-2-1-3-5-7/h1-5,8H,6,10H2,(H,11,12)/f/h10H


# going from respective InChIs to SMILES
## The standard InChI produces neutral SMILES
zwitterion_nonstandard_inchi = 'InChI=1/C9H11NO2/c10-8(9(11)12)6-7-4-2-1-3-5-7/h1-5,8H,6,10H2,(H,11,12)/f/h10H'
standard_inchi = 'InChI=1S/C9H11NO2/c10-8(9(11)12)6-7-4-2-1-3-5-7/h1-5,8H,6,10H2,(H,11,12)'

print Chem.MolToSmiles(Chem.MolFromInchi(zwitterion_nonstandard_inchi))
print Chem.MolToSmiles(Chem.MolFromInchi(standard_inchi))

     [NH3+]C(Cc1ccccc1)C(=O)[O-]
     NC(Cc1ccccc1)C(=O)O

Entonces, para los zwitteriones, los InChI tautoméricos son posibles. Sin embargo, es preocupante que algunos tipos de tautomerismo no sean manejados incluso por InChI no estándar, nuevamente citando la sección 6 de FAW:

En su estado actual, InChI reconoce la forma más común de migración de H (para ver la lista completa, consulte la Tabla 6, Sección IVb del Manual técnico de InChI). Sin embargo, varias formas de migración tautomérica que no son compatibles de forma predeterminada pueden parecer importantes para algunos químicos. En particular, estos son ceto-enol y tautomerismos de largo alcance.

No me queda del todo claro por qué Pubchem eligió enumerar InChI estándar en lugar de InChI no estándar. Supongo que es difícil averiguar mediante programación cuándo se requerirá InChI no estándar. Idealmente, supongo que Pubchem tendría InChI estándar y no estándar para cada una de sus moléculas, pero no estoy seguro de cuándo/si alguna vez harán ese cambio.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *