Algoritmo de Kabsch


El algoritmo de Kabsch , que lleva el nombre de Wolfgang Kabsch , es un método para calcular la matriz de rotación óptima que minimiza la RMSD ( desviación cuadrática media ) entre dos conjuntos de puntos emparejados. Es útil en gráficos, quimioinformática para comparar estructuras moleculares y también bioinformática para comparar estructuras de proteínas (en particular, consulte la desviación de la raíz cuadrada 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 en realidad se realizan tanto la traslación como la rotación, el algoritmo a veces se denomina superposición parcial de Procrustes (ver también el problema de Procrustes ortogonales ).

El algoritmo para la rotación de P en Q comienza con dos conjuntos de puntos emparejados, P y Q . Cada conjunto de puntos se puede representar como una matriz N × 3 . La primera fila son las coordenadas del primer punto, la segunda fila son las coordenadas del segundo punto, la N- ésima fila son las coordenadas del N- ésimo punto.

El algoritmo funciona en tres pasos: una traducción, el cálculo de una matriz de covarianza y el cálculo de la matriz de rotación óptima.

Ambos conjuntos de coordenadas deben trasladarse primero, de modo que su centroide coincida con el origen del sistema de coordenadas . Esto se hace restando de las coordenadas de los puntos del centroide respectivo.

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 una inversa).