FASTQ to FASTA Converter

Strip the per-base quality lines from FASTQ reads and get clean FASTA — with optional length, mean-quality, wrap, rename and N-read filters. Runs entirely in your browser, nothing is uploaded.

Try:
FASTA output

What this tool does

Convert FASTQ sequencing reads to FASTA instantly, right in your browser. Each FASTQ read is four lines — a header, the sequence, a + separator, and the per-base quality string. This tool drops the + and quality lines, rewrites the @ header as >, and (optionally) filters or reformats the reads. Nothing is uploaded: it runs locally, works offline, and needs no sign-up.

Paste one or more reads, tune the options, and copy the FASTA out.

FASTQ vs FASTA

FormatLines per recordCarries quality?
FASTQ4 — @id, sequence, +, qualityYes (per-base Phred)
FASTA2 — >id, sequenceNo

Options

OptionWhat it does
Min read lengthDrop reads shorter than N bases. 0 = keep all.
Min mean qualityDrop reads whose mean Phred quality is below the threshold. 0 = no quality filter.
Quality offsetHow to decode quality characters: Phred+33 (Sanger / Illumina 1.8+, the modern default) or Phred+64 (old Illumina 1.3–1.5). Only matters when a quality filter is active.
Wrap widthSplit each output sequence into fixed-width lines (e.g. 60 or 70). 0 = one line per sequence.
Rename headersReplace every header with a sequential number (>1, >2, …).
Discard reads with NDrop any read whose sequence contains an ambiguous N base.
UppercaseUppercase the sequence bases (acgtACGT).

Worked example

Input (two reads):

@read1 sample
ACGTACGTNN
+
IIIIIIII##
@read2
ACGT
+
!!!!

Default conversion (no filters) → the quality lines are gone and @ becomes >:

>read1 sample
ACGTACGTNN
>read2
ACGT

Now set Min mean quality to 20 (offset Phred+33). The ! character is Phred 0, so read2 (mean 0) is dropped, while read1 (mean ≈ 26) survives:

>read1 sample
ACGTACGTNN

Limits and edge cases

FAQ

What is the difference between FASTQ and FASTA?

FASTQ stores four lines per read — a header, the sequence, a + separator, and a per-base quality string — while FASTA stores just a header and the sequence. This tool removes the quality information and keeps the sequence, converting @ headers into > headers.

Which quality offset should I pick?

Use Phred+33 for anything modern (Sanger and Illumina 1.8 or newer) — this is the default. Use Phred+64 only for legacy Illumina 1.3–1.5 data. The offset only affects the mean-quality filter; if you leave that filter off, the setting is ignored.

How is the mean quality calculated?

Each quality character is decoded to a Phred score as ord(char) - offset, and the scores are averaged across the read. A read is dropped when that average is below your Min mean quality threshold. ! decodes to 0 (offset 33), I to 40.

Does the tool discard reads containing N?

Not by default — N-containing reads are kept so the conversion is loss-free. Turn on Discard reads with N to drop any read whose sequence contains an ambiguous N (or n) base.

Is my data uploaded anywhere?

No. The conversion runs entirely in your browser using WebAssembly. Your reads never leave your device, and the page keeps working offline once it has loaded.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool fastq-to-fasta "@read1 sample
ACGTACGTNN
+
IIIIIIII##"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/fastq-to-fasta/?fastq=%40read1%20sample%0AACGTACGTNN%0A%2B%0AIIIIIIII%23%23&min_length=0&min_quality=0&quality_offset=33&wrap=0&rename=true&strip_n=true&uppercase=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.