El algoritmo de Kabsch , también conocido como algoritmo de Kabsch-Umeyama , [ 1 ] nombrado en honor a Wolfgang Kabsch y Shinji Umeyama, es un método para calcular la matriz de rotación óptima que minimiza la desviación cuadrática media ( RMSD ) entre dos pares de conjuntos de puntos. Es útil para el registro de conjuntos de puntos en gráficos por computadora , y en quimioinformática y bioinformática para comparar estructuras moleculares y proteicas (en particular, véase desviación cuadrática media (bioinformática) ).
El algoritmo solo calcula la matriz de rotación, pero también requiere el cálculo de un vector de traslación. Cuando se realizan tanto la traslación como la rotación, el algoritmo se denomina a veces superposición parcial de Procrustes (véase también problema de Procrustes ortogonal ).
Descripción
Sean P y Q dos conjuntos, cada uno con N puntos en. Queremos encontrar la transformación de Q a P . Para simplificar, consideraremos el caso tridimensional (Los conjuntos P y Q pueden representarse cada uno mediante matrices de N × 3, donde la primera fila contiene las coordenadas del primer punto, la segunda fila las coordenadas del segundo punto, y así sucesivamente, como se muestra en esta matriz:
El algoritmo funciona en tres pasos: una traslación, el cálculo de una matriz de covarianza y el cálculo de la matriz de rotación óptima.
Traducción
Ambos conjuntos de coordenadas deben trasladarse primero, de modo que su centroide coincida con el origen del sistema de coordenadas . Esto se logra restando las coordenadas del centroide a las coordenadas del punto.
Cálculo de la matriz de covarianza
El segundo paso consiste en calcular una matriz H. En notación matricial,
o, utilizando la notación de sumatoria,
que es una matriz de covarianza cruzada cuando P y Q se consideran matrices de datos .
Cálculo de la matriz de rotación óptima
Es posible calcular la rotación óptima R basándose en la fórmula matricial.
pero implementar una solución numérica a esta fórmula se vuelve complicado cuando se tienen en cuenta todos los casos especiales (por ejemplo, el caso de que H no tenga inversa).
Si se dispone de rutinas de descomposición en valores singulares (SVD), la rotación óptima, R , se puede calcular utilizando el siguiente algoritmo.
Primero, calcule la SVD de la matriz de covarianza H ,
donde U y V son ortogonales yes diagonal. A continuación, registre si las matrices ortogonales contienen una reflexión,
Finalmente, calculamos nuestra matriz de rotación óptima R como
Esta R minimiza, dóndeyson filas en Q y P respectivamente.
Alternativamente, la matriz de rotación óptima también puede evaluarse directamente como un cuaternión . [ 2 ] [ 3 ] [ 4 ] [ 5 ] Esta descripción alternativa se ha utilizado en el desarrollo de un método riguroso para eliminar los movimientos de cuerpo rígido de las trayectorias de dinámica molecular de moléculas flexibles. [ 6 ] En 2002 también se propuso una generalización para la aplicación a distribuciones de probabilidad (continuas o no). [ 7 ]
Generalizaciones
El algoritmo se describió para puntos en un espacio tridimensional. La generalización a D dimensiones es inmediata.
Enlaces externos
Este algoritmo SVD se describe con más detalle en https://web.archive.org/web/20140225050055/http://cnx.org/content/m11608/latest/
Una función de Matlab está disponible en http://www.mathworks.com/matlabcentral/fileexchange/25746-kabsch-algorithm
Un script de Python está disponible en https://github.com/charnley/rmsd . Otra implementación se puede encontrar en SciPy .
Un plugin gratuito de PyMol que implementa fácilmente Kabsch es. (Esto estaba vinculado previamente a CEalign, pero este utiliza el algoritmo de Extensión Combinatoria (CE).) VMD utiliza el algoritmo de Kabsch para su alineación.
El conjunto de herramientas de modelado FoldX incorpora el algoritmo de Kabsch para medir la desviación cuadrática media (RMSD) entre las estructuras de proteínas de tipo salvaje y mutadas.
Véase también
Referencias
- ↑ Lawrence, Jim; Bernal, Javier; Witzgall, Christoph (09-10-2019). "Una justificación puramente algebraica del algoritmo de Kabsch-Umeyama" ( PDF) . Journal of Research of the National Institute of Standards and Technology . 124 : 124028. doi : 10.6028/jres.124.028 . ISSN 2165-7254 . PMC 7340555. PMID 34877177 .
- ↑ Horn, Berthold KP (1987-04-01). "Solución en forma cerrada de la orientación absoluta usando cuaterniones unitarios". Journal of the Optical Society of America A . 4 (4): 629. Bibcode : 1987JOSAA...4..629H . CiteSeerX 10.1.1.68.7320 . doi : 10.1364/josaa.4.000629 . ISSN 1520-8532 . S2CID 11038004 .
- ↑ Kneller, Gerald R. (1991-05-01). "Superposición de estructuras moleculares mediante cuaterniones". Simulación molecular . 7 ( 1– 2): 113– 119. doi : 10.1080/08927029108022453 . ISSN 0892-7022 .
- ↑ Coutsias, EA; Seok, C.; Dill, KA (2004). "Uso de cuaterniones para calcular RMSD". J. Comput. Chem . 25 (15): 1849– 1857. doi : 10.1002/jcc.20110 . PMID 15376254. S2CID 18224579 .
- ↑ Petitjean, M. (1999). "Sobre la raíz cuadrática media de las medidas cuantitativas de quiralidad y simetría" (PDF) . J. Math. Phys . 40 (9): 4587– 4595. Bibcode : 1999JMP....40.4587P . doi : 10.1063/1.532988 .
- ↑ Chevrot, Guillaume; Calligari, Paolo; Hinsen, Konrad; Kneller, Gerald R. (2011-08-24). "Enfoque de mínima restricción para la extracción de movimientos internos a partir de trayectorias de dinámica molecular de macromoléculas flexibles". J. Chem. Phys . 135 (8): 084110. Bibcode : 2011JChPh.135h4110C . doi : 10.1063/1.3626275 . ISSN 0021-9606 . PMID 21895162 .
- ↑ Petitjean, M. (2002). "Mezclas quirales" (PDF) . J. Math. Phys . 43 (8): 4147– 4157. Bibcode : 2002JMP....43.4147P . doi : 10.1063/1.1484559 . S2CID 85454709 .
- Kabsch, Wolfgang (1976). "Una solución para la mejor rotación que relaciona dos conjuntos de vectores". Acta Crystallographica . A32 (5): 922. Bibcode : 1976AcCrA..32..922K . doi : 10.1107/S0567739476001873 .
- Lin, Ying-Hung; Chang, Hsun-Chang; Lin, Yaw-Ling (15-17 de diciembre de 2004). Estudio sobre herramientas y algoritmos para la alineación y comparación de estructuras proteicas tridimensionales . Simposio Internacional de Informática. Taipéi, Taiwán.
- Umeyama, Shinji (1991). "Estimación por mínimos cuadrados de parámetros de transformación entre dos patrones de puntos". IEEE Trans. Pattern Anal. Mach. Intell . 13 (4): 376– 380. doi : 10.1109/34.88573 .
- Algoritmos bioinformáticos