13 votos

Encontrar las mejores características de los modelos de interacción

Tengo la lista de las proteínas con sus valores de la característica. Una tabla de ejemplo se parece a esto:

...............Feature1...Feature2...Feature3...Feature4  
Protein1  
Protein2  
Protein3  
Protein4  

Las filas son las proteínas y las columnas son características.

También tengo una lista de proteínas que interactúan; por ejemplo

Protein3, Protein4  
Protein1, Protein2  
Protein4, Protein1  

Problema: Para un análisis preliminar quiero saber que características de contribuir a la mayoría de las interacciones de la proteína.

Mi entendimiento es que normalmente los árboles de decisión podría ser utilizado para la obtención de la característica más importante basado en la entropía, pero no estoy seguro de cómo extender a pares de proteínas (es decir, interacciones medicamentosas). Hay un método para tal fin?

26voto

ripper234 Puntos 39314

Real de la receta para resolver el problema presentado (una posible solución)

Es sencillo para resolver este problema con mi favorito de la máquina-herramienta de aprendizaje, vowpal wabbit que apoya cuadrática (cruz) características a través de su -p opción.

vowpal wabbit fondo

Antes de entrar en los detalles de uso. vowpal wabbit es un rápido y escalable en línea de la máquina de aprendizaje de software para la clasificación y regresión. Puedo obtener de aprendizaje (formación) tasas de alrededor de 5 millones de características por segundo en mi escritorio sin límite de datos de tamaño (cantidad de ejemplos), ya que, como una herramienta de aprendizaje en línea que no requiere la carga de la totalidad de los datos en la memoria. Tiene muchas otras características interesantes: soporte para diferentes algoritmos de aprendizaje, múltiples pérdida de las funciones, dispersas características, mezcla de tipos de entidad, y más, que están más allá del alcance de esta pregunta.

Aquí están los 3 pasos para resolver el problema con el comentario:

Paso 0: Descarga y construir vowpal wabbit desde github (véase la nota en la parte inferior en entornos compatibles)

Paso 1: Preparar un entrenamiento de conjunto, donde cada línea tiene este aspecto:

1.0 protein1/protein2|A p1_feature1 p1_feature2 ... |B p2_feature1 ...
...

explicación de la formación-formato de conjunto:

El número a la izquierda, 1.0, es la etiqueta (interacción de la fuerza, que puede ser cualquier valor numérico), la segunda cadena 'protein1/protein2' es una etiqueta para dar la línea de una identidad, IOW: "esta línea representa la interacción entre protein1 y protein2"; es opcional, y usted puede pensar en esto como un comentario. Esta etiqueta de cadena también se hicieron eco de las predicciones de los modelos para identificar que la predicción a la que pertenece el ejemplo, pero no estamos prediciendo aquí, sólo estamos de modelado y estudio de nuestro modelo. Luego viene la función de entrada de nombre de espacio para protein1 |A (se debe definir un nombre de espacio para que podamos cruzar entre los diferentes nombre-espacios, no tiene que ser A, puede ser cualquier palabra, de hecho, pero la primera letra tiene que diferenciar entre los espacios de nombre para que podamos cruzar en el comando de llamada), seguido por la lista de características de entrada para protein1 p1_.... El último viene el nombre de espacio para protein2: |B , seguido por la función-los nombres de los protein2 p2_....

Una de las bellezas de vowpal wabbit es que se puede utilizar arbitraria cadenas de nombres de características (se le hash internamente, pero no importa). La única caracteres especiales en el conjunto de entrenamiento son:

  • espacios (obviamente)
  • |, para el prefijo de las características de entrada y el nombre de los espacios, y
  • : separar la función de los nombres de sus valores

El : no se utiliza aquí, porque se supone que cada proteína nombre de la característica representa un valor booleano (existencia) de manera que sus valores por defecto a 1 y no necesitan valores explícitos.

Ahora usted puede ejecutar vowpal_wabbit (el nombre del ejecutable es vw) con -q AB a auto-creación de la cruz-características (aka términos de interacción) entre todos los posibles pares de características donde uno es seleccionado a partir de protein1 (nombre del espacio de partida con A) y el otro de protein2 (nombre-espacio de partida con B). vowpal_wabbit leer los datos, de aprender y de crear un modelo con los pesos para cada función de la combinación que resulta en algún tipo de interacción entre el par de proteínas. Aquí, en lugar de ejecutar vw directamente, vamos a ejecutar a través de la vw-varinfo utilidad contenedora, que viene con vowpal wabbit, como último paso. vw-varinfo pistas vw para crear el modelo, y vuelca el modelo en forma legible.

Paso 3: llamada vw-varinfo como este:

vw-varinfo -q AB -c --passes 20 your_data_set_file

vw-varinfo pasará todas las opciones (-q ... -c --passes ...) a vw. Sólo el -q AB para el cruce de los dos nombre de la característica-espacios es esencial. He añadido una opción más arriba (ejecutar varios pases), que creo que daría mejores resultados.

Este comando se llame vowpal wabbit (vw) para entrenar en el conjunto de datos e imprimir el resultado creo que usted está buscando: todos los de la característica de las interacciones en el orden de fuerza y sus pesos relativos.

Ejemplo de entrada y salida

Suponga que la entrada, prot.dat, incluye una 3-forma de interacción entre las 3 proteínas:

1.0 protein1/protein2|A a b |B k m
0.6 protein2/protein3|A k m |B b c d
2.2 protein1/protein3|A a b |B b c d

Este es deliberadamente una muy minimalista ejemplo. vw no debería tener ningún problema con mucho más grandes conjuntos de datos (por ejemplo, millones de filas, cientos de características), también, he variado la interacción con la fuerza de las etiquetas de los ejemplos. Si en su caso la interacción es un booleano "sí" o "no", simplemente use 0 (sin interacción) o 1 (interacción existe) como el 1 de campo de cada línea.

Ejecutando:

vw-varinfo -q AB -c --passes 20 prot.dat

Daría todas las interacciones posibles (ignore el nombre de espacios- A y B en la salida) y sus ponderaciones:

FeatureName        HashVal   MinVal   MaxVal    Weight   RelScore
A^k                 220268     0.00     1.00   +0.3804    100.00%
A^k^B^k             254241     0.00     0.00   +0.3804    100.00%
A^k^B^m              93047     0.00     0.00   +0.3804    100.00%
B^k                 178789     0.00     1.00   +0.1011     26.58%
B^m                  17595     0.00     1.00   +0.1011     26.58%
[... trimmed for brevity ...]
A^m^B^m             141879     0.00     0.00   +0.0000      0.00%
Constant            116060     0.00     0.00   +0.1515      0.00%
A^b                 139167     0.00     1.00   -0.0641    -16.86%
A^b^B^k             204424     0.00     0.00   -0.1233    -32.43%
A^b^B^m              43230     0.00     0.00   -0.1233    -32.43%

Mostrando que en este los datos de los más fuertes de los contribuyentes a las interacciones en general son: 1) la mera presencia de la k característica, 2) el k característica de interactuar con ella misma (suponiendo que ambas proteínas tienen), y 3) k interactuar con m. mientras que los más débiles (contribución negativa a la interacción de la proteína) son el b característica emparejado con m característica.

Aquí hay un HOWTO en vw-varinfo

vowpal wabbit se construye a partir de la fuente (ver enlace arriba) y se ejecuta en Linux (y posiblemente otros unix), Mac OS X y Windows.

HTH

1voto

Jeff Hengesbach Puntos 1639

Redes de interacción de proteínas puede ser representado por un grafo gráficos, con las proteínas que forman los nodos y sus interacciones en los bordes. Si la interacción de la proteína es un fenómeno binario, los bordes son también binario (cero o uno), de lo contrario, usted puede utilizar un número real. Se puede representar numéricamente este gráfico como una matriz cuadrada y simétrica de uno en particular. Para encontrar las características más importantes que usted puede mantener a aquellos que tienen el mayor proyección a lo largo de los vectores propios de la interacción de la matriz.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X