GAM discovers and align similar sequences by using the positions of placed reads. An order sequence of reads contiguous on the same contig is called frame. When the same frame is shared by both original assemblies, GAM dubs it block.


block

GAM deduces block orders from assembly read orders and, by using them, builds a graph of assemblies whose nodes represent blocks and whose edges represents block order. Since cycles in the graph of assemblies denote conflicting block order in assemblies, GAM avoid to merge sequences containing blocks belonging to them.

cycle


For above reason, GAM distinguishes between a master assembly, which cannot be contradicted, and a slave assembly, which is used to extend and orient master sequences. One cycles are removed from graph, GAM uses block information to align and weave both contig and supercontig of the two input assemblies.

weaving

A more detailed (but still partial) description of the implemented algorithms can be found in the publications concerning GAM.