OLC Assembler

Assemble one or more consensus contigs from DNA fragments that may repeat, differ, or come from either strand — Sanger reads, cloned inserts, or Oxford Nanopore R9/R10 reads in FASTQ.

Overlap–layout–consensus assembly in the browser, modelled on CAP3 (Huang & Madan, Genome Research 9:868, 1999). Fragments are seeded by shared k-mers, aligned pairwise with a banded affine-gap algorithm, laid out greedily, and finally stacked into a column-wise multiple alignment from which the consensus is called.

Fragments that repeat. Two reads that share only an interspersed repeat align across the repeat and then diverge, leaving a large unmatched overhang on both sides. Rejecting overlaps by overhang — not by length or identity alone — is what stops repeated regions from collapsing into a single contig. Every rejection is listed in the report, so an ambiguous join is visible rather than silent. The worked example (Load Example) carries a 150 bp element shared by its two loci, so its Rejected overlaps table shows exactly this.

Fragments that differ. Divergence has two causes and the consensus caller separates them: an isolated disagreement is sequencing error and is out-voted, while a minority base seen in several independent reads is real polymorphism and is written into the consensus as an IUPAC ambiguity code — R (A/G), Y (C/T), S, W, K, M, and B/D/H/V/N for three or more alleles.

Nanopore reads. The engine is an independent implementation and goes beyond its model here: it reads FASTQ directly, so Oxford Nanopore R9 and R10 amplicon reads — a few hundred full-length reads of each PCR product, several kilobases long — assemble without conversion. Deep products are seeded without being mistaken for repeats, tiled amplicons are joined although their shared ends look repeated, and reads that carry two molecules (fold-backs, adapter-joined pairs) are set aside. The quality line is not needed: the consensus is called by vote across the reads. See Oxford Nanopore reads in the instructions.

Upload local sequence file — plain FASTA, multi-FASTA, FASTQ (e.g. Oxford Nanopore R9/R10 reads), or sequences
Optional PHRED quality values, one FASTA record per fragment, matched by name (or by order). Whitespace-separated integers, one value per base. Supplying them lets the consensus weight each vote by its base quality and lets poor read ends be clipped automatically.
Download:
Overlap detection
Shortest alignment accepted as evidence of a join.
Lower it for noisy reads, raise it to keep paralogues apart.
The repeat filter. Raise it only if true joins are being rejected.
Smaller k finds more overlaps in noisy data, and is slower.
0 = off. Needs the Quality tab.
Consensus and polymorphism
0 = off. Ramps a base's vote down near a read end.
A column becomes an IUPAC code only when all three thresholds are met. At a 1–2 % error rate, seeing the same wrong base in ≥2 reads at the same column is already improbable; requiring a quarter of the column makes it negligible, while a true 50/50 heterozygote is caught comfortably. Insertions and deletions have no IUPAC letter, so they are listed in the report as indel variants instead.
Performance
Pairwise alignment dominates the runtime and is the only stage that parallelises cleanly, so it — and only it — is spread across Web Workers. Everything else runs on the page in short slices, so the tab stays responsive either way. Small jobs stay single-threaded because the hand-off would cost more than it saves, and a page opened directly from disk (file://), where Workers cannot start, falls back automatically. The assembly is identical either way.
Need details? Input formats, every parameter, the repeat filter and the polymorphism rule are documented in Help: Sequence Assembly · Help: Troubleshooting
Next steps: check a contig against a database, align contigs in MSA, or design primers on the consensus in Primer Design.
Method after CAP3 / PCAP by Xiaoqiu Huang · independent in-browser JavaScript implementation for teaching and exploratory analysis; nothing is uploaded.