In previous section, we discussed de Bruijn graph-based genome assembly procedure from error-free reads. Read errors make the assembly process challenging in three ways. Firstly, they change the structure of de Bruijn graph by introducing bubbles, tips and cross-links. Secondly, they add spurious nodes and vastly increase memory requirement for assembly. Thirdly, non-uniformity in sequencing across the genome changes how de Bruijn graph structure changes from one region of genome to another. In this section, we will look at those issues closely.