You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Algoritmos<br />
Métodos basados en grafos<br />
Carlos Aguirre Maeso<br />
Carlos.Aguirre@uam.es<br />
Escuela Politécnica Superior<br />
Universidad Autónoma <strong>de</strong> Madrid
Introducción.<br />
La teoría <strong>de</strong> grafos ha sido utilizada recientemente<br />
para:<br />
• Clasificación automática <strong>de</strong> secuencias <strong>de</strong> proteínas.<br />
• Detección <strong>de</strong> jerarquías <strong>de</strong> proteínas.<br />
• Análisis <strong>de</strong> re<strong>de</strong>s genéticas.<br />
• Reconstrucción <strong>de</strong> re<strong>de</strong>s genéticas gran<strong>de</strong>s obtenidas<br />
mediante modificación <strong>de</strong> genes.
<strong>Teoría</strong> <strong>de</strong> grafos.<br />
Un grafo G es un par <strong>de</strong> conjuntos (V,E)<br />
• V={v1,v2,....vn} es el conjunto <strong>de</strong> vértices<br />
• E={(vi,vj),(vi’,vj’)......} es un conjunto <strong>de</strong> pares no<br />
or<strong>de</strong>nados <strong>de</strong> elementos <strong>de</strong> V.<br />
• E se <strong>de</strong>nomina conjunto <strong>de</strong> ramas <strong>de</strong>l grafo<br />
• El numero <strong>de</strong> nodos se <strong>de</strong>nomina or<strong>de</strong>n <strong>de</strong>l grafo.<br />
• El número <strong>de</strong> ramas se <strong>de</strong>nomina tamaño <strong>de</strong>l grafo.
Ejemplo <strong>de</strong> grafo (Or<strong>de</strong>n 8 y tamaño 11).<br />
v2<br />
v3<br />
V={v1,v2,v3,v4,v5,v6,v7,v8}<br />
v1<br />
v4<br />
v5<br />
E={(v1,v2),(v1,v3),(v2,v4),(v3,v5),(v4,v6),<br />
(v5,v7),(v6,v8),(v7,v8),(v2,v5),(v4,v5),(v6,v7)}<br />
v6<br />
v7<br />
v8
Bucles y ramas paralelas.<br />
Un bucle es una rama que empieza y termina en el<br />
mismo nodo (vi,vi).<br />
Cuando dos ramas conectan el mismo par <strong>de</strong><br />
vértices se <strong>de</strong>nominan paralelas.<br />
Un grafo con bucles se <strong>de</strong>nomina pseudografo.<br />
Un grafo con ramas paralelas pero sin bucles se<br />
<strong>de</strong>nomina multigrafo.<br />
Un grafo sin bucles ni ramas paralelas se <strong>de</strong>nomina<br />
grafo simple.
Bucles y ramas paralelas.<br />
Ramas paralelas<br />
Bucle<br />
v1<br />
v2<br />
v3<br />
v4<br />
v5<br />
v6<br />
v8<br />
v7
<strong>Grafos</strong> dirigidos.<br />
Se pue<strong>de</strong> consi<strong>de</strong>rar que los enlaces entre nodos son<br />
dirigidos (vi,vj) = (vj,vi).<br />
Los grafos dirigidos se <strong>de</strong>nominan también digrafos.<br />
v1<br />
v2<br />
v3<br />
v4<br />
v5<br />
v6<br />
v8<br />
v7
<strong>Grafos</strong> pon<strong>de</strong>rados.<br />
A cada rama <strong>de</strong>l grafo se le pue<strong>de</strong> asociar un<br />
número.<br />
El número asociado a cada rama pue<strong>de</strong> indicar entre<br />
otras cosas una distancia, una capacidad, un valor<br />
temporal, etc…<br />
v1<br />
v2<br />
v6 v4<br />
v7 v8 2 1 5 7<br />
-1 6 10 4 12 9 2<br />
v5 v3
<strong>Grafos</strong> dirigidos y pon<strong>de</strong>rados.<br />
Los grafos dirigidos y pon<strong>de</strong>rados poseen ramas<br />
dirigidas a las que se asocia un número.<br />
v1<br />
v2<br />
v6 v4<br />
v7 v8 2 1 5 7<br />
-1 6 10 4 12 9 2<br />
v5 v3
Grado <strong>de</strong> un nodo.<br />
Dos nodos <strong>de</strong> un grafo son vecinos o adyacentes si<br />
existe una rama que los conecta.<br />
El grado <strong>de</strong> un nodo es el número vecinos que tiene<br />
dicho nodo.<br />
En los grafos dirigidos se calcula el grado <strong>de</strong> entrada<br />
y el grado <strong>de</strong> salida.<br />
En los grafos pon<strong>de</strong>rados, el grado se pue<strong>de</strong><br />
promediar por el número asociado a las ramas.<br />
Un grafo se dice que es regular si todos los nodos<br />
tienen el mismo grado.
Grado <strong>de</strong>l nodo V2.<br />
Grado 3<br />
Grado <strong>de</strong> salida 1<br />
Grado <strong>de</strong> entrada 2<br />
v1<br />
v1<br />
v2<br />
v2<br />
v3<br />
v3<br />
v4<br />
v4 v5<br />
v5<br />
v6<br />
v6 v7 v8<br />
v8<br />
v7
Subgrafos.<br />
Un grafo G’=(V’,E’) es un sugrafo <strong>de</strong> un grafo<br />
G=(V,E) si V’ es un subconjunto <strong>de</strong> V y E’ es un<br />
subconjunto <strong>de</strong> E..<br />
v1<br />
v2<br />
v3<br />
G<br />
v4<br />
v5<br />
G’<br />
v6 v8 v2<br />
v3 v5<br />
v7<br />
v6 v8 v7
v1<br />
Subgrafos.<br />
Un subgrafo G’=(V’,E’) <strong>de</strong> un grafo G=(V,E) se dice<br />
que es abarcador si V=V’.<br />
v2<br />
v3<br />
G<br />
v4<br />
v5<br />
v6 v8 v7<br />
G’<br />
v2 v1 v4<br />
v5 v3<br />
v6 v8 v7
Paseos, caminos, circuitos y ciclos.<br />
Un paseo <strong>de</strong> un nodo u a un nodo v es una secuencia<br />
<strong>de</strong> vértices {v0,v1,....vk} con v1=u vk=v y (vi-1,vi) rama<br />
<strong>de</strong>l grafo.<br />
El número <strong>de</strong> ramas <strong>de</strong>l paseo es su longitud.<br />
Un paseo en el cual no se repiten ramas se<br />
<strong>de</strong>nomina rastro.<br />
Un paseo en el cual todos los vertices {v0,v1,....vk}<br />
son distintos se <strong>de</strong>nomina camino.<br />
Un camino mínimo entre dos nodos es aquel <strong>de</strong><br />
menor longitud <strong>de</strong> entre todos los posibles caminos<br />
entre ambos nodos.
Paseo<br />
Rastro<br />
v1<br />
v1<br />
C={v1,v2,v5,v3,v1,v2,v4,v6,v7,v8} k=9<br />
v8<br />
v2<br />
v3<br />
v2<br />
v3<br />
v4<br />
v5<br />
v4<br />
v5<br />
v6<br />
v7<br />
C={v1,v3,v5,v2,v4,v5,v7,v8} k=7<br />
v8<br />
v6<br />
v7
Camino<br />
Camino mínimo<br />
v1<br />
v1<br />
C={v1,v2,v5,v4,v6,v7,v8} k=6<br />
v8<br />
v2<br />
v3<br />
v2<br />
v3<br />
v4<br />
v5<br />
v4<br />
v5<br />
v6<br />
v7<br />
C={v1,v2,v4,v6,v8} k=4<br />
v8<br />
v6<br />
v7
Paseos, caminos, circuitos y ciclos.<br />
Un paseo cerrado es un paseo {v0,v1,....vk} tal que<br />
v0=vk.<br />
Un paseo cerrado en el que no se repiten ramas es<br />
un circuito.<br />
Un ciclo es un circuito en el que no se repiten<br />
vértices.
Paseos, caminos, circuitos y ciclos.<br />
Ciclo<br />
v2<br />
v3<br />
v4<br />
v5<br />
v6<br />
v7<br />
v8<br />
C={v1,v2,v4,v6,v8,v7,v5,v3,v1} k=7<br />
v1
Conexidad.<br />
Un grafo es conexo si para cada par <strong>de</strong> nodos <strong>de</strong>l<br />
grafo existe al menos un camino que los une.<br />
Grafo conexo Grafo no conexo<br />
v1<br />
v3<br />
v2 v5<br />
v4<br />
v1<br />
v3<br />
v2 v5<br />
v4
Conexidad.<br />
Una componente conexa <strong>de</strong> un grafo es cada uno<br />
<strong>de</strong> los subgrafos maximales conexos<br />
Componentes conexas<br />
v1<br />
v3<br />
v2 v5<br />
v4
Conexidad.<br />
Un punto <strong>de</strong> articulación es un nodo que<br />
<strong>de</strong>sconecta un grafo conexo.<br />
Un corte es un conjunto <strong>de</strong> ramas que <strong>de</strong>sconecta<br />
un grafo conexo,<br />
Si un corte esta compuesto por una única rama, se<br />
<strong>de</strong>nomina puente.<br />
Un corte mínimo <strong>de</strong> un grafo es el mínimo número<br />
<strong>de</strong> ramas que al ser eliminadas <strong>de</strong>sconectan el<br />
grafo.
Conexidad.<br />
v3 v4 v5 v7<br />
v1 v2 v6<br />
Corte<br />
Puente<br />
Punto <strong>de</strong><br />
v8<br />
articulación
Bosques y árboles.<br />
Un grafo sin ciclos (acíclico) se <strong>de</strong>nomina bosque.<br />
Un arbol es un grafo acíclico conexo.<br />
Cada componente conexa <strong>de</strong> un bosque, es un árbol.
Bosques y árboles.<br />
G<br />
v2 v1 v4<br />
v5 v3<br />
v6 v8 v7<br />
G<br />
v5<br />
v3<br />
v4<br />
v1 v2<br />
v6<br />
v7<br />
v8
Bosques y árboles.<br />
Un subgrafo abarcador acíclico <strong>de</strong> un grafo G se<br />
<strong>de</strong>nomina un bosque abarcador.<br />
Un subgrafo abarcador conexo acíclico <strong>de</strong> un grafo G<br />
se <strong>de</strong>nomina un arbol abarcador.
v1<br />
Bosques y árboles.<br />
v2<br />
v3<br />
G<br />
v4<br />
v5<br />
v6 v1<br />
Árbol abarcador<br />
v2<br />
v3<br />
v8 v7<br />
G’<br />
v4<br />
v5<br />
v6 v8 v7
Representación <strong>de</strong> grafos<br />
Hay dos formas estándar <strong>de</strong> representar un grafo en<br />
un or<strong>de</strong>nador.<br />
• Matriz <strong>de</strong> adyacencia.<br />
• Lista <strong>de</strong> adyacencia.
Matriz <strong>de</strong> adyacencia<br />
v2<br />
v3<br />
0 1 1 0 0 0 0 0<br />
1 0 0 1 1 0 0 0<br />
1 0 0 0 1 0 0 0<br />
0 1 0 0 1 1 0 0<br />
v1<br />
0 1 1 1 0 0 1 0<br />
0 0 0 1 0 0 1 1<br />
0 0 0 0 1 1 0 1<br />
0 0 0 0 0 1 1 0<br />
v4<br />
v5<br />
Lista <strong>de</strong> adyacencia 3 5 2<br />
v6 v8 v7<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
45 2 5 6 1<br />
3 4 7 4 7 8 5 6 2<br />
7 8<br />
6
Matriz <strong>de</strong> Adyacencia<br />
Consume mucha memoria.<br />
Fácil <strong>de</strong> añadir o eliminar<br />
ramas<br />
Fácil saber si existe la rama<br />
(a,b).<br />
Lento enumerar los vecinos<br />
<strong>de</strong> un nodo.<br />
Lista <strong>de</strong> adyacencia<br />
Consumo limitado <strong>de</strong><br />
memoria.<br />
Costoso añadir o eliminar<br />
ramas.<br />
Costoso saber si existe la<br />
rama (a,b).<br />
Rápido enumerar los vecinos<br />
<strong>de</strong> un nodo.
Clasificación <strong>de</strong> grafos<br />
Los grafos se clasifican en función <strong>de</strong> unas <strong>de</strong>terminadas<br />
métricas topológicas.<br />
Las métricas mas empleadas son:<br />
• Tamaño |E| y or<strong>de</strong>n |V|<br />
• Dispersión (|E|/|V|)<br />
• Distribución <strong>de</strong>l grado <strong>de</strong> los nodos<br />
• Grado medio ()<br />
• Coeficiente <strong>de</strong> agrupamiento (C)<br />
• Camino carácteristico (L)
Coeficiente <strong>de</strong> agrupamiento<br />
El coeficiente <strong>de</strong> agrupamiento (C) es un valor métrico local<br />
que mi<strong>de</strong> el nivel <strong>de</strong> agrupamiento <strong>de</strong> los nodos.<br />
Cálculo <strong>de</strong> C<br />
• Para cada nodo v <strong>de</strong>l grafo se obtiene su vencidario, es <strong>de</strong>cir, el<br />
cojunto <strong>de</strong> nodos que son vecinos <strong>de</strong> v, el tamaño <strong>de</strong>l vecindario<br />
coinci<strong>de</strong> con el grado <strong>de</strong> v (kv)<br />
• Se calcula el coeficiente Nv/(kv(kv-1)) don<strong>de</strong> Nves el numero <strong>de</strong> ramas<br />
que hay entre los vecinos <strong>de</strong> v.<br />
• El valor anterior se promedia entre todos los nodos <strong>de</strong>l grafo<br />
v<br />
Cv= 6/(4*3)=1/2
Camino característo<br />
El camino característico (L) es un valor métrico global que<br />
mi<strong>de</strong> el nivel grado <strong>de</strong> separacion <strong>de</strong> los nodos.<br />
Cálculo <strong>de</strong> C<br />
• Para cada nodo v se calcula la distancia promedio a todos los <strong>de</strong>mas<br />
nodos <strong>de</strong>l grafo, Lv= Σk=1d(v,vk)/(|V|-1)<br />
• Se calcula el promedio <strong>de</strong>l valor anterior entre todos los nodos <strong>de</strong>l<br />
grafo L= Lv/|V| .|V| |V|<br />
Σv=1
Algunas topologias.<br />
Las topologías mas frecuentes son:<br />
• <strong>Grafos</strong> aleatorios<br />
• <strong>Grafos</strong> regulares<br />
• Mundo pequeño<br />
• <strong>Grafos</strong> libres <strong>de</strong> escala
<strong>Grafos</strong> aleatorios<br />
Fueron estudiados principalmente<br />
por Erdos y Renyi en los años 50.<br />
Cada rama <strong>de</strong>l grafo existe con<br />
una <strong>de</strong>terminada probabilidad p.<br />
Erdos y Renyi estudiaron los<br />
valores <strong>de</strong> las metricas<br />
topológicas para diferentes<br />
valores <strong>de</strong> $p$.<br />
Para la grafos dispersos (p<br />
pequeña) se pue<strong>de</strong> comprobar<br />
que tanto C (aproximadamente 0)<br />
como L (aproximadamemte<br />
Ln(|V|) son pequeños
<strong>Grafos</strong> Regulares<br />
Son los mejor conocidos <strong>de</strong> forma<br />
analítica<br />
Existen expresiones cerradas para<br />
todas las métricas.<br />
Para la grafos dispersos se pue<strong>de</strong><br />
comprobar que tanto C<br />
(aprximadamente 0.75) como L<br />
(aproximadamente |V|/) son<br />
gran<strong>de</strong>s
Mundo pequeño (Watts y Strogatz 1998)<br />
Son grafos que presentan altos<br />
valores <strong>de</strong> C (aprox .8) y bajos<br />
valores <strong>de</strong> L (aprox ln(|V|).<br />
Se obtienen introduciendo<br />
pequeño número <strong>de</strong> “atajos” en<br />
un grafo regular<br />
Representan bien un gran número<br />
<strong>de</strong> re<strong>de</strong>s tales como re<strong>de</strong>s<br />
sociales.
Libre <strong>de</strong> escala (Albert y Barabasi 1999)<br />
Son grafos que presentan bajos valores <strong>de</strong> C (aprox 0) y bajos valores <strong>de</strong><br />
L (aprox ln(|V|).<br />
Se obtienen mediante crecimiento <strong>de</strong> la red y enlace preferencial<br />
Cuando la distribución <strong>de</strong> los nodos se dibuja en escala log-log aparece<br />
una línea recta.<br />
Representan bien un gran número <strong>de</strong> re<strong>de</strong>s tales como internet o re<strong>de</strong>s<br />
<strong>de</strong> reacciones químicas.
Metricas<br />
|V|=2000 k=8<br />
3.89 Aleatorio 0.0186 3.409 Libre<strong>de</strong> escala 0.626 14.2 MundoPequeño 0.643 125.438 AnilloRegular<br />
0.004
Algorítmos sobre grafos<br />
El algoritmo <strong>de</strong> búsqueda en anchura permite calcular un<br />
camino mínimo entre dos nodos <strong>de</strong> un grafo.<br />
Dijkstra es una versión <strong>de</strong>l algoritmo anterior para grafos<br />
pon<strong>de</strong>rados.<br />
Ambos algoritmos funcionan tanto en grafos dirigidos como<br />
no dirigidos.<br />
Los algoritmos nos permiten calcular las métricas sobre el<br />
grafo.
BusquedaAnchura(V,E,s)<br />
Para cada vertice u en V-s<br />
visitado[u]=FALSE, d[u]=infinito,p[u]=NIL<br />
visitado[s]=TRUE,d[s]=0,p[s]=NIL<br />
Encueue(Q,s)<br />
While(NoVacia(Q))<br />
u=Head(Q)<br />
para cada v en adj(u)<br />
if visitado[v]=FALSE<br />
d[v]=d[u]+1,p[v]=u<br />
Enqueue(Q,v)<br />
visitado[v]=TRUE<br />
Dequeue(Q)
1<br />
1<br />
2<br />
3<br />
4<br />
5<br />
2<br />
3<br />
4<br />
5<br />
3 4 2 35 1 2 5 3 4<br />
21<br />
ii TFFFF NNNNN d visitado p1<br />
0ii U=1 1 2 3 4 5<br />
Q
1<br />
1<br />
2<br />
3<br />
4<br />
5<br />
2<br />
3<br />
4<br />
5<br />
3 4 2 35 1 2 5 3 4<br />
21<br />
ii TTFFF N1NNN d visitado p12<br />
01i U=1 1 2 3 4 5<br />
Q
1<br />
1<br />
2<br />
3<br />
4<br />
5<br />
2<br />
3<br />
4<br />
5<br />
3 4 2 35 1 2 5 3 4<br />
21<br />
ii N11NN visitado p12<br />
011 U=1 1 d 2 3 4 5<br />
3 TTTFF Q
1<br />
1<br />
1<br />
2<br />
3<br />
4<br />
5<br />
2<br />
3<br />
4<br />
5<br />
3 4 2 35 1 2 5 3 4<br />
21<br />
2i TTTTF N112N d visitado p23<br />
011 U=2 1 2 3 4 5<br />
Q
1<br />
1<br />
1<br />
2<br />
3<br />
4<br />
5<br />
2<br />
3<br />
4<br />
5<br />
3 4 2 35 1 2 5 3 4<br />
21<br />
2i N112N visitado p23<br />
011 U=2 1 d 2 3 4 5<br />
4 TTTTF Q
1<br />
1<br />
1<br />
2<br />
3<br />
4<br />
5<br />
2<br />
3<br />
4<br />
5<br />
3 4 2 35 1 2 5 3 4<br />
21<br />
22 N1123 visitado p34<br />
011 U=2 1 d 2 3 4 5<br />
5 TTTTT Q
1<br />
1<br />
2<br />
3<br />
4<br />
5<br />
2<br />
3<br />
4<br />
5<br />
3 4 2 35 1 2 5 3 4<br />
21<br />
22 TTTTT N1123 d visitado p45<br />
011 U=3 1 2 3 4 5<br />
Q
1<br />
1<br />
2<br />
3<br />
4<br />
5<br />
2<br />
3<br />
3 4 2 35 1 2 5 3 4<br />
21<br />
4<br />
5<br />
visitado pQ<br />
d<br />
22 TTTTT N1123 1 U=3 1 2 3 4 5 01
1 n = rows[w] 2 ci= 0 3 fori = 1 ton CLUSTERING-COEFFICIENT(w)<br />
do neighbor[i]= 0 5 fori = 1 ton 6 do k = 0 7 forj = 1 ton 4<br />
do ifW[i][j] = 1 9 thenneighbor[k]= j 10 k = k + 1 8<br />
12 realedges= 0 13 forp = 0 tok − 2 14 do forq = p + 1 tok − 1 11<br />
do ifw[neighbor[p]][neighbor[q]] = 1 16 thenrealedges= realedges+ 1 17 18 15<br />
totaledges= k(k− 1)/2 20 ci= ci+ realedges/totaledges 21 ci= ci/n 19<br />
22 returnci
DEGREE-DISTRIBUTION(w)<br />
1 n = rows[w]<br />
2 for i = 1 to n<br />
3 do dist[i] = 0<br />
4 for i = 1 to n<br />
5 do numedges = 0<br />
6 for j = 1 to n<br />
7 do if w[i][j] = 1 and i != j<br />
8 then numedges numedges + 1<br />
9<br />
10 distnumedges = distnumedges + 1<br />
11 for i = 1 to n<br />
12 do disti = disti/n<br />
13 return dist
El algoritmo <strong>de</strong> Búsqueda en profundidad permite<br />
calcular puntos <strong>de</strong> articulación <strong>de</strong> un grafo.<br />
El algoritmo <strong>de</strong> Ford-Fulkerson permite calcular<br />
cortes mínimos.
Aplicaciones<br />
Las técnicas basadas en grafos se utilizan para el análisis o<br />
clasificación <strong>de</strong> ca<strong>de</strong>nas <strong>de</strong> datos<br />
La técnica suele consistir en la construcción <strong>de</strong> un grafo<br />
don<strong>de</strong> los nodos son cada uno <strong>de</strong> los datos obtenidos y las<br />
ramas posibles relaciones entre los datos y la aplicación <strong>de</strong><br />
algún algoritmo conocido sobre este grafo.
Click<br />
Click (Sharan & Shamir) es un algoritmo <strong>de</strong> clustering<br />
aplicado al análisis <strong>de</strong> expresiones genéticas (gene<br />
expressions).<br />
Click también ha sido utilizado para clustering <strong>de</strong> conjuntos<br />
<strong>de</strong> datos <strong>de</strong> proteínas (ProtoMap).
El problema <strong>de</strong> clustering consiste en partir un<br />
conjunto V en k conjuntos disjuntos V1,V2,....Vktal<br />
que la unión <strong>de</strong> todos ellos es V.<br />
Para comprobar la calidad <strong>de</strong>l clustering se <strong>de</strong>finen<br />
dos medidas<br />
• Separación entre clusters<br />
• Homogeneidad <strong>de</strong> cada cluster
Click(G)<br />
si V(G)={u}<br />
Aña<strong>de</strong> {u} al conjunto <strong>de</strong> vertices aislados<br />
si G es un cluster<br />
Añadir G a la lista <strong>de</strong> clusters<br />
en otro caso<br />
H, H’ = CorteMínimo(G)<br />
Click(H)<br />
Click(H)’
Click se ha utilizado para clustering <strong>de</strong> expresiones<br />
genéticas don<strong>de</strong> cada nodo es una expresión.<br />
Dos nodos se conectan si un coeficiente <strong>de</strong> similitud<br />
entre ambas expresiones genéticas es mayor que un<br />
cierto umbral.
Resultados <strong>de</strong> click cuando se aplica al conjunto <strong>de</strong> datos<br />
<strong>de</strong> la respuesta <strong>de</strong> los fibroblastos humanos al suero
ProtoMap<br />
ProtoMap es un proyecto <strong>de</strong>dicado a la clasificación <strong>de</strong><br />
secuencias <strong>de</strong> proteínas y jerarquización <strong>de</strong> familias <strong>de</strong><br />
proteínas.<br />
Cada vértice es una secuencia y el peso <strong>de</strong> cada rama es un<br />
coeficiente <strong>de</strong> similitud entre las proteínas.
Los clusters se obtienen buscando grupos <strong>de</strong> nodos<br />
altamente conectados entre sí.<br />
Los autores aplicaron el método a la base <strong>de</strong> datos<br />
SWISS-PROT.<br />
Los resultados se pue<strong>de</strong>n consultar en<br />
http://www.protomap.cs.huji.ac.il
Re<strong>de</strong>s <strong>de</strong> interacción<br />
Tong et al. analizan re<strong>de</strong>s <strong>de</strong> interacción <strong>de</strong> proteínas.<br />
Cada nodo <strong>de</strong>l grafo es una proteína.<br />
Una rama significa una interacción entre ambas proteínas.
Un k-core <strong>de</strong> un grafo G es un subgrafo G’ tal que el<br />
grado <strong>de</strong> cada nodo <strong>de</strong> G’ es al menos k.<br />
Este algoritmo produce una jerarquía <strong>de</strong> subgrafos<br />
basandose en el k <strong>de</strong> los k-cores obtenidos para<br />
cada posible k.
Dominio SH3 (|V|=206 |E|=394)
6-Core <strong>de</strong>l dominio SH3
Cliff<br />
Cliff (Xing & Karp) ha sido utilizado para clustering <strong>de</strong> datos<br />
con un número alto <strong>de</strong> dimensiones.<br />
De nuevo cada nodo es una expresión genética (muy larga) y<br />
las ramas un coeficiente <strong>de</strong> similitud entre nodos.<br />
Cliff usa cortes mínimos y técnicas bayesianas para <strong>de</strong>finir<br />
los clusters.