Tengo un conjunto de modelos de homología de una proteína, y ahora deseo eliminar aquellos modelos que tienen colisiones en la columna vertebral. Obviamente podría comprobarlo a simple vista, pero esto es subjetivo y probablemente no será aceptado para su publicación.
¿Cuál es el mejor método (reproducible) para determinar si un modelo de proteína en particular contiene un choque de columna vertebral?
La forma de verificar el choque estérico entre dos átomos cualesquiera, la columna vertebral o de otro tipo, es calcular su distancia euclidiana. Si a
y b
representan dos átomos ( a_x
siendo la coordenada X del átomo a
, etc.), puede calcular su distancia euclidiana de la siguiente manera.
d(a, b) = sqrt( (a_x - b_x)^2 + (a_y - b_y)^2 + (a_z - b_z)^2) )
Entonces, esencialmente, la idea sería calcular la distancia por pares entre cada uno de los átomos de la columna vertebral. Para cualquier par de átomos, existe un choque estérico si la distancia entre ellos cae por debajo de cierto umbral. Si no recuerdo mal, este umbral es la suma de los radios de van der Waals de los dos átomos.
arpista
Daniel Standage
a
yb
son vectores tridimensionales, cada uno de los cuales contiene las coordenadas X, Y y Z de los dos átomos. Sin embargo, el valor dentro desqrt()
siempre será no negativo ya que cada una de las tres diferencias se eleva al cuadrado, por lo que obtener un valor indefinido no debería ser un problema. He actualizado la respuesta.