An algorithm which extracts paths from De Bruijn graph for genome assembly. EPGA uses a score function to evaluate extension candidates based on the distributions of reads and insert size. The distribution of reads can solve problems caused by sequencing errors and short repetitive regions. Through assessing the variation of the distribution of insert size, EPGA can solve problems introduced by some complex repetitive regions. EPGA2 updates some modules in EPGA which can improve memory efficiency in genome asssembly.