F08 La siguiente pregunta: el acoplamiento ha funcionado durante más de 20 años sin modelos de difusión
En F08 hablamos de cómo DiffDock redefine el acoplamiento mediante un modelo de difusión. Sin embargo, hay un malentendido que debe evitarse. Mucho antes del surgimiento de DiffDock, y en este mismo momento, la mayoría de los flujos de trabajo de cribado en el desarrollo de fármacos siguen recurriendo a herramientas de acoplamiento tradicionales como AutoDock Vina, Glide y Rosetta. La razón es sencilla: son rápidos, están validados y permiten inspeccionar qué se está calculando. En esta sección, analizaremos directamente ese enfoque tradicional que mencionamos brevemente en F08 al decir que "el acoplamiento se redefine con modelos generativos".
Principio: el acoplamiento es, en última instancia, "función de puntuación + exploración"
Composición de la función de puntuación empírica
El software de acoplamiento (1) genera múltiples posturas y (2) asigna una puntuación a cada postura. La función de puntuación base de AutoDock Vina no es un campo de fuerzas que calcule cantidades físicas directamente, sino una función empírica ajustada por regresión basada en características de pares atómicos dependientes de la distancia y en penalizaciones por enlaces rotacionales.
El significado de cada término es el siguiente:
| Término | Significado físico |
|---|---|
| Términos de contacto Gaussianos con diferentes anchos y distancias | |
| Penalización estérica cuando los átomos se superponen | |
| Término de contacto entre pares de átomos hidrofóbicos | |
| Término para pares de átomos capaces de formar puentes de hidrógeno | |
| Penalización por flexibilidad según el número de enlaces rotacionales |
Los pesos se ajustaron en función de datos experimentales. No se deben mezclar los términos de electrostática y desolvatación del AutoDock4 clásico con la composición de términos de la función base de Vina. Glide y Rosetta también combinan múltiples términos, pero sus funciones objetivo y parametrizaciones difieren, por lo que no son equivalentes a "la misma fórmula que Vina".
Exploración: algoritmos genéticos y optimización local
Como vimos en el cálculo manual de F08, explorar todo el espacio de posturas de unión mediante una cuadrícula aumenta combinatoriamente. AutoDock Vina resuelve este problema mediante optimización global estocástica combinada con búsqueda local. El flujo aproximado es el siguiente:
- Generar aleatoriamente varias posturas iniciales.
- Se mueve ligeramente en la dirección que mejora localmente la función de puntuación alrededor de cada conformación (optimización local basada en gradientes, serie BFGS).
- De entre varias soluciones óptimas locales, se selecciona como resultado final aquella con la puntuación más alta.
Este proceso no garantiza matemáticamente una solución global óptima. Dado que conserva la limitación fundamental de la optimización local —la posibilidad de converger a diferentes mínimos locales dependiendo del punto de inicio—, en la práctica es habitual ejecutar el mismo ligando varias veces (aumentando el parámetro de exhaustividad) para verificar la consistencia de los resultados.
Ejemplo de cálculo manual: ¿cuán sensible es el término de van der Waals a la distancia?
Si aproximamos las interacciones de van der Waals mediante una forma simplificada de Lennard-Jones, obtenemos lo siguiente:
Colocando y , comparemos . La distancia corresponde a la energía potencial cero, el punto mínimo está en y allí .
Al acercarse la distancia de a , la energía aumenta aproximadamente a 3.07 kcal/mol; al acercarse otros 0.5 Å, la energía se dispara hasta aproximadamente 39.33 kcal/mol. Este es un ejemplo de Lennard-Jones para proporcionar intuición física sobre el choque estérico, y no representa un cálculo numérico directo del término repulsion real de Vina.
Práctica: acoplamiento de moléculas pequeñas con proteínas mediante AutoDock Vina
# Ejecutar en Colab. Instalar AutoDock Vina + OpenBabel!apt-get -qq install -y openbabel!pip install -q vina meeko
# 1. Convertir SMILES del ligando a PDBQT 3D (usando Meeko)python3 << 'EOF'from meeko import MoleculePreparation, PDBQTWriterLegacyfrom rdkit import Chemfrom rdkit.Chem import AllChem
# Ejemplo de aspirinamol = Chem.MolFromSmiles("CC(=O)Oc1ccccc1C(=O)O")mol = Chem.AddHs(mol)AllChem.EmbedMolecule(mol, randomSeed=42)AllChem.MMFFOptimizeMolecule(mol)
preparator = MoleculePreparation()setups = preparator.prepare(mol)pdbqt_string, is_ok, error_msg = PDBQTWriterLegacy.write_string(setups[0])assert is_ok, error_msgwith open("ligand.pdbqt", "w") as f: f.write(pdbqt_string)EOF
# 2. Asumiendo que el receptor (proteína) ya está en formato PDBQT, ejecutar el acoplamiento especificando las coordenadas del centro del sitio de uniónpython3 << 'EOF'from vina import Vina
v = Vina(sf_name='vina')v.set_receptor('receptor.pdbqt')v.set_ligand_from_file('ligand.pdbqt')
# Coordenadas del centro del sitio de unión (x, y, z) y tamaño de la caja de búsqueda (Å)v.compute_vina_maps(center=[10.0, 5.0, 15.0], box_size=[20, 20, 20])
v.dock(exhaustiveness=8, n_poses=10)v.write_poses('docked_poses.pdbqt', n_poses=5, overwrite=True)
energies = v.energies(n_poses=5)for i, e in enumerate(energies): print(f"Posición {i+1}: Valor predicho de energía libre de unión = {e[0]:.2f} kcal/mol")EOFexhaustiveness es un parámetro que define el número de iteraciones de la búsqueda local. Aumentar este valor mejora la estabilidad de los resultados, pero también incrementa proporcionalmente el tiempo de cálculo. Si no se conocen las coordenadas del centro del sitio de unión, primero se deben identificar candidatos a sitios de unión mediante herramientas de detección de cavidades (como fpocket).
Correspondencia de conceptos
- Función de puntuación empírica: La estructura que combina linealmente varias características interpretables para generar una única predicción comparte la misma filosofía de diseño que los modelos tradicionales de aprendizaje automático basados en regresión lineal e ingeniería de características.
- Optimización mediante búsqueda local: La estrategia de repetir la optimización local desde múltiples puntos de inicio y seleccionar el mejor resultado pertenece a la familia de heurísticas, como la búsqueda local con múltiples puntos de inicio o el algoritmo basin hopping, que se utilizan para aproximar soluciones óptimas globales en problemas de optimización combinatoria.
- Contraste entre representación y aprendizaje de puntuaciones: El módulo de regresión de afinidad aprendido de Boltz-2, que se describe en F07, y la función de puntuación física diseñada manualmente mediante una suma ponderada, que se presenta aquí, constituyen un buen ejemplo del contraste en el eje clásico entre la ingeniería de características y el aprendizaje de representaciones: ¿las características las diseñan los humanos o se aprenden a partir de los datos?
Errores comunes
- Estimación imprecisa del centro del sitio de unión: Si el centro del sitio de unión es inexacto, la caja de búsqueda puede salirse de la cavidad real, lo que hace que el acoplamiento sea irrelevante. Si no se conoce un sitio de unión, primero se debe realizar la etapa de detección de cavidades.
- Confiar en resultados con un valor de exhaustividad bajo: Reducir excesivamente el valor de exhaustividad para ahorrar tiempo de cálculo puede impedir que la optimización local converja adecuadamente, lo que podría dar como resultado posturas y puntuaciones completamente diferentes al volver a ejecutar el mismo ligando.
- Comparar directamente la puntuación de acoplamiento con el valor experimental de : Los valores absolutos de las funciones de puntuación empíricas a menudo no coinciden cuantitativamente con los valores experimentales entre diferentes series de compuestos. Es más seguro utilizarlas principalmente para comparar el orden relativo dentro de la misma diana y serie de compuestos similares.
Para profundizar
El texto ha sido reconstruido directamente por el equipo de investigación de BPD. Para obtener más información, consulte el artículo original y los recursos oficiales.
- Artículo original de AutoDock Vina: Trott & Olson (2010), AutoDock Vina: Improving the speed and accuracy of docking, J. Comput. Chem. 31(2).
- Documentación oficial de AutoDock Vina:
vina.scripps.edu— Descripción de todos los términos y parámetros de la función de puntuación. - Artículo sobre la metodología Glide: Friesner et al. (2004), Glide: A New Approach for Rapid, Accurate Docking and Scoring, J. Med. Chem. 47(7).
En el siguiente capítulo, F10, se aborda la pregunta que surge después del acoplamiento: ¿cómo evoluciona el complejo unido con el tiempo? Esto se realiza mediante simulaciones de dinámica molecular (GROMACS·OpenMM).