Determinar si un modelo de proteína contiene un choque de columna vertebral

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?

Respuestas (1)

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 ay brepresentan dos átomos ( a_xsiendo 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.

Supongo que las variables a y b representan radios atómicos de los dos átomos respectivos. ¿Entonces a_x es el radio atómico de a * la coordenada x? ¿Esta ecuación no devolverá un error si trato de sacar la raíz cuadrada de un número -ve? Para determinar un choque estérico, sumo los radios de los átomos a y b y si este valor es mayor que el valor de la ecuación, ¿tengo un choque?
Sí, ay bson vectores tridimensionales, cada uno de los cuales contiene las coordenadas X, Y y Z de los dos átomos. Sin embargo, el valor dentro de sqrt()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.