From FASTQ to Results: The File Formats Behind Every Sequencing Analysis
You followed the tutorial. You pasted the command. It ran — then it broke on the next sample, or the output looked wrong, and suddenly you're lost, because nobody ever told you what the files actually are.
Here's the secret every bioinformatician knows and rarely says out loud: a sequencing analysis is not really a list of commands. It's a chain of files, where each step reads one format and writes another. Understand the files, and the commands become obvious. Memorise the commands without the files, and you're one error message away from being stuck.
So let's ignore the commands entirely. This is a field guide to the files themselves — what each one holds, where it comes from, and where it goes next.
The whole pipeline, on one line
Almost every DNA/RNA sequencing analysis — RNA-seq, variant calling, ChIP-seq, ATAC-seq — is a variation on this exact flow. Watch the file formats on the arrows, not the tools:
Every arrow is a tool. Every box is a file format. Debugging almost always means asking: which box did the data go wrong in, and does its file still look the way it should?
The eight formats worth actually knowing
You will meet these again and again. For each: what it is, a real peek inside, where it comes from, and where it goes.
Raw reads straight off the sequencer. Every read is 4 lines: an ID, the DNA sequence, a + separator, and a quality string — one character per base saying how confident the machine was.
@SRR123.1 read identifier GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCC + !''*((((***+))%%%++)(%%%%).1***-+*''))** ← quality per base
Sequences without quality scores. The reference genome, a set of gene sequences, or protein sequences. Just a > header line followed by the letters.
>chr1 reference sequence for chromosome 1
NNNNNNNNNNNNTAACCCTAACCCTAACCCTAACCCTAACC
CTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAAC
Your reads after they've been placed onto the genome. Each line says: this read sat here, on this chromosome, matching this well. SAM is the human-readable text version; BAM is the same thing compressed (binary); CRAM is smaller still.
The differences between your sample and the reference. One row per variant: the position, what the reference base was, what your sample had instead, and how confident the caller is.
#CHROM POS REF ALT QUAL chr1 14653 C T 212 ← a SNP: C became T chr7 117559 ATG A 340 ← a deletion
The genome's table of contents. FASTA tells you the letters; GTF/GFF tells you what those letters mean — where each gene, exon, and transcript starts and ends.
A simple list of genomic regions. Three columns is enough: chromosome, start, end. Used for peaks (ChIP/ATAC-seq), target regions, or "these are the spots I care about."
The output of RNA-seq, and the input to your statistics. A plain table: rows are genes, columns are samples, each cell is "how many reads landed in this gene, in this sample."
gene ctrl_1 ctrl_2 treat_1 treat_2
TP53 842 910 1503 1620
GAPDH 9931 9820 9905 9877
A count matrix, but for thousands of cells at once. Too big and too sparse to be a plain CSV, so single-cell data gets packed into container formats that bundle the matrix plus per-cell and per-gene metadata in one file.
The mental model to keep
You don't need to memorise flags. You need to be able to answer four questions at any point in a pipeline: What file am I holding? What's supposed to be inside it? What made it? What's it feeding next?
When something breaks, one of those four answers will be wrong — an empty FASTQ, a BAM that never got indexed, a GTF from the wrong genome build, a count matrix with a shifted column. That's the whole game. The command was never the hard part.
Rule of thumb: if you can't say what a file should look like before you open it, you're not ready to trust what comes out of it.
FASTQ and BAM files are huge. BioTransfer sends them encrypted, browser-to-storage, with no size headaches — free.
Try BioTransfer →Part of the Bioinformatics Tutorials series · more explainers on workflows and formats coming next.