OWSum: predicción algorítmica de olores y comprensión de las relaciones estructura-olor | Revista de quimioinformática

El algoritmo descrito aquí sirve para utilizar las características estructurales de las moléculas para inferir su calidad de olor más relevante. Se utilizó un conjunto de métodos estadísticos, incluida la validación de nuestros resultados, como se describe en la siguiente sección.

El algoritmo de clasificación OWSum

El algoritmo OWSum se estructuró en tres pasos:

  1. 1.

    Selección de características

  2. 2.

    Cálculo de la influencia de las características respecto a las clases

  3. 3.

    Clasificación

Para aclarar la descripción del algoritmo OWSum, describimos los pasos 2 y 3 antes de la selección de características. Como OWSum no solo se puede aplicar para la predicción de olores, sino también para muchos problemas de clasificación, primero describimos el algoritmo en general antes de especificarlo para la predicción de olores. Para familiarizar al lector con las variables, índices y ecuaciones utilizados, en la Fig. 5 se muestra una descripción general esquemática. En la Fig. 1 se muestra una descripción general esquemática aplicada para la predicción de olores con un ejemplo simplificado.

Figura 5
Figura 5

Descripción general del algoritmo de clasificación OWSum. A Matriz de entrada: Objetos Ok puede tener diferentes características Fj y pertenecen a una o más clases Ci. Si una característica le ocurre a un objeto o si el objeto pertenece a una clase, los valores de las celdas son 1, de lo contrario, 0. B Cálculo de los valores de influencia utilizando las Ecs. 1 y 2 y el valor tf-idf (Ec. 3) como factor de ponderación (comparar paso 2) C Cálculo de la puntuación en la que se basa la predicción (Ec. 4, comparar el paso 3)

Paso 2: Cálculo de la influencia de las características respecto a las clases. OWSum se basó en la idea de que cada característica de los objetos tiene una influencia especial en una clase. Para calcular esta influencia de una característica, usamos la probabilidad condicional del valor de la característica dada la clase. Más específicamente, para una característica (_) y una clase (_)la probabilidad de que (_) ocurrió bajo la condición (_)fue calculado por (Prizquierda(_|_derecha)) y se llamaba el peso (_) (Ec. 1).

$$G_ = Pr(F_ |C_ ) = frac$$

(1)

$$G_ = $$

$$F_ = $$

$$C_ = $$

Para agregar información adicional y por lo tanto mejorar el rendimiento de OWSum, un factor de ponderación (_) se puede multiplicar por el peso (_). Esto dio un valor único llamado influencia. (_) de una característica (_) para una clase especial (_) (Ec. 2). Si se usó el OWSum con la misma ponderación, todos los factores de ponderación (_) se establecieron en 1.

$$I_ = a_ cdot G_$$

(2)

$$I_ = $$

$$a_ = $$

$$G_ = $$

Otro enfoque fue considerar la relevancia de una característica como factor de ponderación en la clasificación. Por lo tanto, podríamos usar el valor tf-idf que se usa principalmente para sistemas de recuperación de información y formalización de documentos. [54]. El valor tf-idf es la multiplicación del término frecuencia tf y la frecuencia inversa del documento idf (Ec. 3). Usando el valor tf, las características con mayor frecuencia se ponderaron como más importantes que las características con menor frecuencia. El valor idf consideraba que una característica era más importante si era específica y no estaba distribuida en muchas clases.

$$tf – idf_ = frac cdot left( right)$$

(3)

(_) = característica j

(_)= clase i

(izquierda|Cderecha|) = número de clases

(_)= clase n

Si usamos los valores de tf-idf como factores de ponderación, llamamos a esta variación del algoritmo OWSum ponderado por tf-idf.

Paso 3: Clasificación. Para predecir la clase de un objeto, teníamos que considerar todas las características que ocurren en ese objeto. Por lo tanto, para todas las características de ese objeto Oktodas las influencias (_) para una clase (_) se agregaron a una puntuación (_) (Ec. 4).

$$S_ = sum I_$$

(4)

(_)= puntuación para que el k-ésimo objeto pertenezca a la clase i

(_)= característica j

() = objeto k

(_) = influencia de la característica j-ésima para la clase i.

Como resultado, para un problema de clasificación n-dimensional obtuvimos n puntajes. OWSum hizo la predicción seleccionando la(s) clase(s) con la puntuación más alta. Si un objeto pertenecía a más de una clase y OWSum predecía correctamente un subconjunto de estas, la predicción se aceptaba como correcta. Si OWSum predijo todas las clases posibles, consideramos este objeto como impredecible ya que no se podía dar ninguna predicción valiosa. Por lo tanto, no solo teníamos predicciones verdaderas y falsas, sino también objetos no predecibles.

Paso 1: Selección de características. Podríamos mejorar la precisión de OWSum aplicando la selección de características como primer paso. Para nuestro caso, usamos la selección de características basada en valores idf (comparar Ec. 3, segundo factor). Esto eliminó todas las características que tenían un valor idf igual a cero. Estas características ocurrieron en todas las clases y, por lo tanto, no fueron lo suficientemente específicas como para contribuir a la predicción.

Validación de OWSum

Para la validación del algoritmo, calculamos las precisiones, los valores ROC AUC y MCC con validación cruzada de cinco veces.

Precisión: La precisión general fue la proporción de predicciones correctas entre el número total de casos examinados (Ec. 5). También calculamos la precisión prevista, que era la proporción de predicciones correctas entre el número total de casos en los que OWSum hizo una predicción (Ec. 6). La precisión predicha es un mejor enfoque si estuviéramos interesados ​​en cuántas moléculas se habían predicho incorrectamente.

$$precisión,predicha= frac$$

(5)

$$exactitud,general=frac$$

(6)

AUC y MCC de ROC: como puede haber varios descriptores por objeto, pero OWSum solo predice un descriptor, calculamos dos versiones de los valores de AUC de ROC uno contra el resto: si una molécula tiene más de un descriptor (p. ej., la molécula A huele a perfume y a flores). ) y se pronosticó uno de ellos (por ejemplo, floral), el valor ROC AUC para este descriptor (floral, etiqueta 1) contra el resto (etiqueta 0) se calcula usando una etiqueta verdadera de 1 y una etiqueta pronosticada de 1. Sin embargo, si se calcula el ROC AUC para otro de esos descriptores (p. ej., perfumería), se usa una etiqueta verdadera de 1 y una predicha de 0 (“ROC AUC subestimada” que es un límite inferior). En este caso, la predicción se trata como una predicción falsa, incluso si OWSum predijo otro descriptor correcto. Por lo tanto, los valores ROC AUC resultantes subestiman el rendimiento predictivo de OWSum. Una alternativa es asignar una etiqueta verdadera de 0 (clase restante) a la molécula (esto también es correcto, ya que al menos un descriptor está en la clase restante), el valor predicho es nuevamente 0 (“AUC ROC sobreestimado” que es un límite superior). Sin embargo, esto sobrestima el rendimiento predictivo para este descriptor específico. Proporcionamos curvas ROC por descriptor para la variante de mejor rendimiento de OWSum en el archivo adicional 1. Análogamente a lo anterior, calculamos valores de MCC de uno contra el resto subestimados y sobreestimados. Si el vector de predicción y la verdad básica solo consistían en ceros, usamos la estrategia definida en [55], donde en tal situación, el MCC se establece en 1, lo que nos proporciona un valor de límite superior para esta métrica. Esto solo ocurrió para los valores de MCC sobreestimados.

OWSum para la predicción de olores

Cuando se usa OWSum como un algoritmo de clasificación para predecir el olor de las moléculas, una clase representa un olor olfativo. descriptor, los objetos se refieren a las moléculas y las características son patrones estructurales dentro de estas moléculas. Estos patrones estructurales fueron extraídos de la estructura química de las moléculas. Las moléculas se codificaron como especificación de entrada de línea de entrada molecular simplificada (SMILES) [56, 57] y las funciones se codificaron como SMILES ARbitrary Target Specification (SMARTS) [58]. Como las características no eran exclusivas sino organizadas en una estructura jerárquica, el número de ocurrencias de una característica se almacenaba indirectamente a través de la ocurrencia de otra característica superior en esa molécula (por ejemplo, que tiene una cadena más larga o elementos adicionales). OWSum solo consideró si una característica ocurría en una molécula, no su frecuencia. Esto evitó una representación excesiva de características pequeñas. La Figura 1 muestra el flujo de trabajo de OWSum utilizando un ejemplo simplificado. Para probar el rendimiento y la solidez de OWSum, utilizamos una validación cruzada de cinco veces.

El descriptor de métrica se superpone

Para cuantificar la superposición de dos descriptores, presentamos la nueva superposición de descriptores de métricas. La superposición de descriptores es la proporción del número de moléculas descritas por ambos descriptores al número de moléculas del descriptor más raro (Ec. 7). Se da un ejemplo en el archivo adicional 1: Figura S3.

$$descriptor,overlap left(desc1, desc2right)= frac$$

$$descriptor,superposición left(desc1, desc2right) in left[0, 1right]$$

(7)

$$, = $$

$$_ = $$

En términos de moléculas como objetos y descriptores olfativos, una alta superposición de descriptores es una indicación de que los dos descriptores se refieren al mismo olor o uno de los descriptores es más general que incluye al otro descriptor. Si el descriptor se superpone entre dos descriptores desc1 y desc2 es igual a uno y desc1 tiene más moléculas que desc2, todas las moléculas que huelen a desc2 también huelen a desc1. Una superposición de descriptores de cero significaría que ninguna molécula huele como los dos descriptores.

Base de datos

Para la predicción de olores y obtener información utilizando OWSum y la superposición de descriptores, usamos moléculas y sus descriptores del atlas de Dravnieks de perfiles de caracteres de olores. [50]. Para este propósito, binarizamos las características de las moléculas en el conjunto de datos calculando primero la subestructura común máxima entre cada par de moléculas en un corpus de moléculas de referencia para crear un conjunto de características de referencia. El corpus de referencia para nuestra tarea fue el conjunto de datos ZINC [59] con todas las moléculas con un peso molecular de 200 Da y como filtro adicional, solo se seleccionaron las moléculas marcadas como ‘en stock’. En total, había 263.921 moléculas en el conjunto de datos de referencia.

Como nos interesaban los olores característicos y más percibidos de una molécula, solo asignamos un descriptor a una molécula si su porcentaje de aplicabilidad era de al menos el 25%. Además, solo consideramos los descriptores que coincidían con al menos diez moléculas. Esto era importante para tener suficientes datos para el entrenamiento y prueba de OWSum. 97 moléculas de olor y once descriptores (‘aromático’, ‘floral’, ‘fragante’, ‘pesado’, ‘ligero’, ‘medicinal’, ‘repugnante’, ‘dulce’, ‘leñoso, resinoso’, ‘afrutado, distinto de cítricos’ y ‘perfumería’) permanecieron después de este paso de filtrado inicial. Para la predicción del olor, excluimos los descriptores con una superposición media de descriptores superior al 49 %, lo que sugiere una representación del olor no selectiva ni específica. Para optimizar aún más la elección de los descriptores, eliminamos ‘pesado’ y ‘ligero’: según Iatropoulus et al. [52]existe una alta inconsistencia entre los individuos que usan estos descriptores y generalmente no están asociados con el olfato [52]. Quedaron 64 moléculas y seis descriptores (‘floral’, ‘medicinal’, ‘repugnante’, ‘amaderado, resinoso’, ‘afrutado, distinto de cítricos’ y ‘perfumería’). En promedio, una molécula olía a 1,28 descriptores diferentes, lo que indica una extracción exitosa de descriptores olfativos únicos. Nuestro conjunto de datos resultante final consistió en 64 moléculas y sus características estructurales correspondientes, que usamos como entrada para OWSum.

Implementación

En términos de programación, OWSum y la superposición de descriptores se implementaron en Python 3.7. Para determinar el rendimiento de OWSum, realizamos una validación cruzada de cinco veces. Por lo tanto, además de calcular los valores ROC AUC y MCC, usamos scikit-learn 0.24.1 [60]. Para comparar OWSum con un clasificador de k-vecinos más cercanos multilabel (mlKNN), usamos k vecinos más cercanos multilabel de scikit-multilearn 0.2.0 [61]. Optimizamos k entre 1 y 10 usando GridSearchCV de scikit-learn. Adaptamos mlKNN para que prediga la(s) clase(s) con la máxima probabilidad en lugar de usar un umbral.

Fuente del artículo

Deja un comentario