Paired Ends / live assembly
Type anything. This page encodes it as a circular DNA molecule, sequences it into short reads with 1% errors, and rebuilds it twice from the same reads. The only difference between the two results is whether the assembler is told which reads came from the same fragment. Nothing is precomputed. It all runs in your browser when you press the button.
Each line is one fragment of your sentence: 32 bases read from the left end, 32 from the right, and an unread gap between. Highlighted bases are errors the sequencer made. The assembler sees only these letters and which two reads share a line.
Each byte of your text became four bases, two bits per base. A fixed 24-base origin was added and the ends joined into a circle, the way a plasmid is built.
The sequencer cut random fragments from that circle and read 32 bases from each end, miscalling about one base in a hundred. The reads were counted as 21-mers. A 21-mer seen only once or twice is almost always an error, so reads containing one were repaired or dropped.
The surviving 21-mers form a de Bruijn graph. Wherever your sentence repeats five or more characters, the graph forks, and reads alone cannot say which branch follows which. The top result stops at every fork and reports the pieces.
The bottom result walks the same graph but keeps every fork alive as a competing path, then scores each path by how many read pairs land the right distance apart. The path that explains the most pairs wins.