Key Points

Introduction to IGV


  • A genome browser lets you visually explore genomic data in the context of a reference genome, which helps you spot problems and build intuition that raw files alone do not give you.
  • IGV is a free, desktop genome browser that runs locally and supports many genomics file formats, including FASTA, BED, BAM, TDF, and VCF.
  • IGV can display many types of data as tracks, including epigenomic signal, aligned sequencing reads, RNA-seq coverage/junctions, and variant genotypes.

IGV Basics


  • Load a reference genome first, then load data tracks with File > Load from Server… or File > Load from File…; use Genomes > More… to add other hosted genomes beyond the default.
  • IGV supports four broad zoom levels: whole genome, chromosome, region, and base-pair resolution; drag on the ruler, double-click a track, or use the search box to move between them.
  • The sequence track shows the reference genome and, optionally, a 3-frame translation; the gene track shows exons, introns, and UTRs, and can be displayed collapsed, expanded, or squished.
  • Tools > Combine Data Tracks lets you add, subtract, multiply, or divide two numeric tracks into a new derived track.

Loading Your Own Genome


  • Load a custom genome sequence with Genomes > Load Genome from File…; load additional annotation tracks (genes, features) with File > Load from File….
  • A genome loaded from a bare FASTA file has no gene names or cytoband ideogram until you add that information yourself as separate tracks.

Viewing Alignments and SNPs


  • Aligned reads are stored in SAM/BAM format; recognizing terms like insert size, mapping quality, and CIGAR string helps you interpret what IGV shows you.
  • Load a BAM file with File > Load from File…; IGV finds its .bai index automatically as long as it is named correctly and kept alongside the BAM file.
  • Sorting and coloring aligned reads (by base, by base quality shading, or by read strand) helps you distinguish a real variant from a sequencing or alignment artifact.
  • Warning signs of a false-positive variant include low base quality and a mismatch that only appears on reads from one strand when it should not.
  • Tools > BLAT… (or right-click a read and choose BLAT read sequence) checks whether a read aligns uniquely or is a multi-mapping artifact from a repetitive region.

Precomputing Coverage with igvtools


  • IGV computes BAM coverage on the fly at high zoom levels, but does not attempt this at low zoom levels for performance reasons.
  • Use Tools > Run igvtools… > Count to precompute a .tdf coverage summary file for a BAM file.
  • Attach a precomputed .tdf file to a coverage track via right-click > Load pre-computed coverage data….

Viewing RNA-seq Data


  • RNA-seq reads come from spliced mRNA (introns already removed), so a read spanning two exons aligns back to the intron-containing genome as a gapped, “split” alignment.
  • Enable the splice junction track (via View > Preferences > Alignments) to see, as arcs, which exons are spliced together in RNA-seq data.
  • Compare coverage and junction tracks across samples or tissues to spot alternative splicing.
  • A Sashimi plot combines exon coverage (peaks) and junction reads (arcs) in one view, and read-count filtering helps focus on well-supported junctions.

Viewing Variants and Genotypes


  • A VCF track in IGV has a variant sites panel and a per-sample genotypes panel; a sample information color bar (driven by an auxiliary tab-delimited file) can show sample metadata such as population.
  • Variant sites are colored blue (reference allele) / red (alternate allele); genotypes are colored grey (homozygous reference) / blue (heterozygous) / cyan (homozygous alternate).
  • Search for a variant using gene:protein-change syntax (e.g. APOL1:S342G) as well as by coordinate or gene name.
  • Grouping genotypes by a sample attribute (e.g. population) makes it easy to compare variant patterns across groups of samples.

Viewing Structural Variants


  • IGV can color read pairs by inferred insert size or by orientation, which reveals deletions, insertions, inter-chromosomal fusions, and inversions without running a dedicated SV caller.
  • A deletion shows up as pairs with a larger-than-expected insert size (colored red) and a coverage drop between two breakpoints.
  • A fusion shows up as reads colored by an unexpected mate chromosome, clustered at the fusion junction.
  • An inversion shows up as same-strand (forward-forward or reverse-reverse) discordant pairs at its two breakpoints; right-click View as pairs to see this clearly.

Viewing Long-Read Sequencing Data


  • Long reads (PacBio, Oxford Nanopore) trade a higher per-read error rate for much greater length than short Illumina reads.
  • IGV’s quick consensus mode and indel-hiding thresholds (View > Preferences > Alignments) filter raw long-read noise so consensus signal is easier to see.
  • A read’s MAPQ score (0–255) reflects alignment confidence; low MAPQ is a warning sign for any variant called from that read.
  • File > Load from URL… streams a remote BAM/CRAM directly from a server (finding its index automatically), without downloading the whole file first.
  • Link supplementary alignments connects a single long read’s split pieces on one row; combined with Color alignments by > Read strand (pink = forward, purple = reverse), this reveals an inversion directly within individual reads.
  • A single long read can directly reveal a structural variant by splitting across its breakpoint, without needing paired-end evidence.
  • Coloring and grouping reads by haplotype (HP) tag separates two alleles for direct comparison, useful for phased variants and repeat expansions — and for telling a heterozygous structural variant (one haplotype) apart from a homozygous one (both haplotypes).

Wrap Up


  • The core IGV workflow — load a genome and tracks, navigate to a region of interest, then use track-specific sort/color/display options — applies broadly across data types.
  • IGV has many features beyond this lesson, including a web-embeddable sibling (igv.js) and batch scripting.