A sequencer reads short DNA fragments ("reads") from a sample. Each base call has a small chance of being wrong; that chance sets the base's Phred quality score, the same metric reported in real FASTQ files. Reads then pass a QC filter that discards fragments whose mismatch rate is too high before an aligner maps the survivors back onto the reference genome, building up a pileup — exactly what tools like BWA + IGV show.
Phred score: Q = -10 · log10(p_error)
Mismatch check (per base): mutate if rand() < p_error
QC pass: keep read if mismatches / length ≤ 10%
Coverage: mean depth = Σ(reads covering base i) / genome length
- Read length — how many bases (bins of 10bp) each fragment spans on the reference.
- Error rate — per-base probability of a miscall; drives the Phred quality score and read color (green = clean, red = error-heavy).
- Throughput — how many reads/second the sequencer emits into the pipeline.
- QC filter — toggles whether reads with >10% mismatches are rejected before alignment.
Real pipelines (e.g. FASTQC → Trimmomatic → BWA/Bowtie → GATK) follow this same generate → filter → align → call chain to turn raw reads into a variant-ready genome pileup.