 
 
 
 
 
 
 
  
Podemos considerar três passos para a montagem:
 G} geradas como saída do shotgun. Espera-se que cada um destes fragmentos se sobreponha a um certo número de outras seqüências. Este número, porém, deve ser bem menor do que 500.
G} geradas como saída do shotgun. Espera-se que cada um destes fragmentos se sobreponha a um certo número de outras seqüências. Este número, porém, deve ser bem menor do que 500. 
A comparação por Sim(X, Y) é bastante cara em termos de tempo de processamento, pois o algoritmo é O(mn). Se os 500 fragmentos tiverem comprimento em torno de 600 bases cada um, o custo da comparação dois a dois seria 
 !
!
Torna-se necessário um meio mais barato de comparação, tendo como objetivo indicar para os algoritmos da próxima fase quais são os fragmentos que valem a pena serem analisados por Sim(X, Y), isto é, os fragmentos que têm uma semelhança mínima entre si de modo a valer a pena compará-los por programação dinâmica.
O objetivo desta fase será, portanto, gerar um grafo G=(V, E) onde cada vértive  representa um fragmento de entrada e só existe uma aresta
representa um fragmento de entrada e só existe uma aresta  se e somente há uma semelhança mínima entre os fragmentos representados por u e v.
se e somente há uma semelhança mínima entre os fragmentos representados por u e v. 
 .
Para cada aresta
.
Para cada aresta  ,
chamamos Sim(s[u], s[v]). Se a similaridade entre os fragmentos estiver acima de um mínimo pré-estabelecido, a aresta (u, v) é mantida. Caso contrário, removemos (u, v) de E.
,
chamamos Sim(s[u], s[v]). Se a similaridade entre os fragmentos estiver acima de um mínimo pré-estabelecido, a aresta (u, v) é mantida. Caso contrário, removemos (u, v) de E.
Após o refinamento, um algoritmo para cálculo de árvores geradoras máximas é utilizado no grafo G, gerando uma árvore A=(VA, EA). A idéia é manter um conjunto minimal de arestas que resultam na maior similaridade total.
 tal que v = filho[u], geramos um vértice w tal que s[w] seja a seqüência consenso entre s[u] e s[v]. Para cada aresta oriunda do vértice u, isto é, da forma
tal que v = filho[u], geramos um vértice w tal que s[w] seja a seqüência consenso entre s[u] e s[v]. Para cada aresta oriunda do vértice u, isto é, da forma 
 ,
criamos uma aresta correspondente (w, z). Redefinimos 
A=(VA*, EA*) onde:
,
criamos uma aresta correspondente (w, z). Redefinimos 
A=(VA*, EA*) onde:

e

sendo:e

Repetimos este processo até restar um único vértice r na árvore A. A seqüência s[r] será nosso consenso geral, ou seja, a molécula original.
Nas próximas seções detalharemos melhor cada uma destas fases.
 
 
 
 
 
 
