First step

Before anything else,look at the reads

FastQC runs a fixed set of checks over a FASTQ file and produces one HTML report. It is the cheapest hour you will spend on a sequencing run.

It is fast and free

A few minutes per file, no configuration, and it runs straight over gzipped FASTQ.

It catches the obvious

Adapter read-through, a failed cycle, a contaminated library — all visible before you align anything.

It saves machine hours

Aligning a bad library costs real money. Ten minutes here prevents a day of downstream confusion.

Running it

It runswithout a window

FastQC has a desktop mode nobody uses. On a machine you run it from a shell, over as many files as you have.

fastqc

$ fastqc -t 8 -o qc/ reads/*.fastq.gz

$ multiqc qc/ -o qc/summary

-o, and make the directoryFastQC will not create the output directory itself. It errors out instead, which catches everyone once.
-t for threadsOne file per thread, not threads per file. Useful only when you pass several files at once.
--extractUnzip the report directory so you can read the raw data text rather than the HTML.
--contaminants, --adaptersPoint at your own lists when working with a library FastQC's defaults do not know about.
Reading it

The modulesthat actually matter

FastQC runs eleven checks. Three of them are worth acting on, several are informational, and a couple go red on perfectly good data.

Per-base sequence quality

The first plot to read. Quality drops towards the 3′ end; how early it drops decides your trimming.

Adapter content

Read-through from short fragments. If this rises, trim before aligning rather than after.

Overrepresented sequences

Often names the contaminant outright — an adapter, ribosomal RNA, or a primer dimer.

Per-sequence GC content

A second peak usually means a second organism in the library. Worth chasing before anything else.

Per-base sequence quality is the one to read first: quality falling away at the 3′ end is normal, and the question is only how far in it starts. Adapter content tells you whether to trim and with what. Overrepresented sequences usually names the contaminant outright, which saves a great deal of guessing.

Do not panic

Red is notalways a failure

FastQC's thresholds assume whole-genome shotgun data. Several library types trip them by design.

DuplicationRNA-seqexpected, not a problem
CompositionAmpliconnot random, so it fails by design
MultiQCMany filesone report, outliers obvious

RNA-seq fails duplication because highly expressed transcripts are genuinely abundant. Amplicon and bisulphite libraries fail per-base composition because they are not random. A red module means look at it, not throw the run away — and the right comparison is always against another run of the same library type, not against the tool's defaults.

For more than a handful of files, run MultiQC over the FastQC output directory afterwards. One report across every sample makes the outlier obvious in a way that opening forty HTML files never does.

On a machine

FastQC isalready built

Nothing here needs compiling. Pick a machine, and these two commands put it on there.

hub://fastqc

$ dxflow workflow create --identity fastqc hub://fastqc

$ dxflow workflow start fastqc

Read it, then run itPrepaid and by the hour, on a machine that is yours about a minute after you ask.