Module 1: Data Import & Quality Control

Understanding your genomic data

Why Genomics in Plant Breeding?

Before we dive into the software, let’s understand why we’re doing this.

The Traditional Breeding Challenge

Plant breeders have always faced the same problem: you can’t see genes. Historically, breeders had to:

  1. Make crosses
  2. Grow plants to maturity
  3. Measure traits (yield, disease resistance, etc.)
  4. Select the best individuals
  5. Repeat for many generations

This works, but it’s slow and expensive — especially for traits that take years to measure (like tree fruit quality) or require destroying the plant (like root characteristics).

What Genomic Data Gives Us

With genomic markers (SNPs), we can:

  • See inside the genome — Identify which genetic variants each individual carries
  • Predict performance — Estimate breeding value before measuring the trait
  • Select earlier — Make decisions at the seedling stage
  • Understand relationships — See how individuals are related genetically
TipThe bottom line

Genomic data lets us make better breeding decisions, faster.

What is a SNP?

A SNP (Single Nucleotide Polymorphism) is a position in the genome where individuals differ by a single DNA base.

Individual 1: ...ATCGATCG[A]TCGATCG...
Individual 2: ...ATCGATCG[G]TCGATCG...
                          ^
                         SNP

When we “genotype” plants, we’re measuring thousands of these SNPs across the genome. This gives us a genomic fingerprint for each individual.


Getting Started with BIGapp

Open BIGapp

Go to: big-demo.shinyapps.io/bigapp-main

You should see the BIGapp welcome screen:

Screenshot of BIGapp welcome page

BIGapp welcome screen

The Interface

BIGapp is organized into sections in the left sidebar:

Animated GIF showing the sidebar navigation

BIGapp navigation
Section What it does
Dosage Calling Convert raw read counts to genotype calls
Filtering Quality control for SNPs and samples
Summary Stats Calculate marker statistics (MAF, PIC, etc.)
PCA / DAPC Visualize population structure
GWAS Find marker-trait associations
Genomic Prediction Predict breeding values

Loading Data

What Data Do You Need?

At minimum, you need genotype data — a matrix showing which alleles each individual carries at each SNP.

SNP1 SNP2 SNP3 …
Plant_001 0 1 2 …
Plant_002 1 1 0 …
Plant_003 2 0 1 …

The numbers represent dosage — how many copies of the alternate allele:

  • 0 = homozygous reference (AA)
  • 1 = heterozygous (AB)
  • 2 = homozygous alternate (BB)
NotePolyploids

For polyploid crops (potato, blueberry, alfalfa, etc.), dosage can be higher: 0, 1, 2, 3, 4 for a tetraploid.

What is a VCF File?

VCF (Variant Call Format) is the standard file format for storing genetic variation data. When you get genotyping results back from a sequencing facility, they’re usually in VCF format.

A VCF file has two main parts:

1. Header lines (start with #) — metadata about the file:

##fileformat=VCFv4.2
##reference=Cmaxima_HZAU_T2T
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
#CHROM  POS     ID      REF  ALT  QUAL  FILTER  INFO  FORMAT  Sample1  Sample2  Sample3

2. Data lines — one row per SNP, with genotypes for each sample:

Chr01   1234567   SNP_001   A    G    .     PASS    .     GT:DP:AD    0/0:25:25,0   0/1:30:15,15   1/1:28:0,28

The GT Field: Genotypes to Dosage

The GT (Genotype) field shows which alleles each sample has:

GT Value Meaning Dosage
0/0 Homozygous reference (e.g., AA) 0
0/1 Heterozygous (e.g., AG) 1
1/1 Homozygous alternate (e.g., GG) 2
TipConnecting VCF to the dosage matrix

Remember the dosage table above? BIGapp converts VCF genotypes to dosage automatically. A 0/1 in the VCF becomes a 1 in the dosage matrix.

Other common FORMAT fields you might see:

  • DP — Read depth (how many times this position was sequenced)
  • AD — Allelic depth (reads supporting each allele, e.g., 15,15 means 15 reads for REF, 15 for ALT)

For this workshop, BIGapp handles the VCF parsing — you just upload the file!


How Data Loading Works in BIGapp

Unlike some tools with a central data loading area, each BIGapp module has its own file upload section. This means you’ll upload your VCF and phenotype files within each analysis module as needed.

Animated GIF showing how to load data in BIGapp

Loading data in BIGapp

Uploading a VCF File

When you open an analysis module (like VCF Filtering), you’ll see a “Choose VCF File” input:

  1. Click the “Browse…” button
  2. Select your VCF file from the file picker (atlantic_giant_pumpkin_diversity.vcf.gz)
  3. Click Open
  4. Wait for the “Upload complete” message to appear below the input

Uploading a Phenotype/Trait File

When you upload a phenotype CSV file, a Trait File Options modal will appear:

  1. Click “Browse…” next to the trait file input
  2. Select your phenotype CSV file (atlantic_giant_pumpkin_diversity_phenotypes.csv)
  3. Click Open
  4. In the modal that appears:
    • Missing Data Value: Select how missing data is coded in your file (typically NA)
    • Sample ID Column: Choose which column contains sample identifiers (select Sample_ID)
    • Review the File Preview to verify your data looks correct
  5. Click Save to confirm
NoteFile Preview

The modal shows the first 5 rows of your data so you can verify the columns are being read correctly before proceeding.

Try It Yourself

Let’s practice by loading data in the VCF Filtering module:

  1. Go to VCF Filtering in the sidebar
  2. Upload the pumpkin VCF file using the steps above
  3. Verify you see “Upload complete”

Once you see “Upload complete” beneath the file input, your VCF is loaded and ready for filtering. The histogram on the right will populate once you run the filtering step.


Quality Control: Why It Matters

Raw genomic data almost always has problems:

  • Bad markers — Some SNPs don’t amplify well or are in repetitive regions
  • Bad samples — Some DNA extractions fail or get contaminated
  • Missing data — Not every marker works for every sample

If we don’t filter these out, our downstream analyses will be unreliable.

Key Quality Metrics

For SNPs (markers):

Metric What it means Typical filter
Call rate % of samples with data for this SNP Keep if > 80%
MAF Minor allele frequency — how common is the rare allele? Keep if > 5%
HWE Hardy-Weinberg equilibrium test Remove extreme deviations

For Samples:

Metric What it means Typical filter
Call rate % of SNPs with data for this sample Keep if > 80%
Heterozygosity How heterozygous is this individual? Remove outliers
TipWhy filter by MAF?

A SNP where 99% of individuals have the same allele doesn’t tell us much — there’s not enough variation to be useful for breeding decisions.

Demo: Filtering in BIGapp

Watch how to apply quality filters:

Animated GIF showing the filtering interface

Applying filters in BIGapp

Steps:

  1. Go to “SNP Filtering” in the sidebar
  2. Set Minimum MAF to 0.05 (5%)
  3. Set Maximum missing rate to 0.20 (20%)
  4. Click Apply Filters
  5. Note how many SNPs remain

Try It Yourself

  1. Apply MAF filter of 0.05
  2. Apply missing rate filter of 0.50 (50%)
  3. How many SNPs remain after filtering?

You should see the number of markers decrease from 1,200 to approximately 1,000. The pumpkin dataset includes ~100 low-MAF SNPs and ~100 high-missing SNPs specifically for this QC demonstration!


Summary Statistics

After filtering, let’s look at what we have.

Minor Allele Frequency Distribution

Go to Summary Stats → MAF Distribution

Histogram showing MAF distribution after filtering

MAF distribution plot

A healthy MAF distribution should be relatively flat — if it’s highly skewed toward low values, you may need stricter filtering.

Sample Heterozygosity

This shows how heterozygous each sample is. Look for:

  • Outliers — Samples that are way more or less heterozygous than others might be mislabeled, contaminated, or have poor DNA quality
  • Expected patterns — Inbred lines should be less heterozygous than F1 hybrids

Exercise

Using the pumpkin dataset:

  1. Load the VCF file
  2. Apply filters: MAF > 0.05, missing rate < 0.50
  3. Check the summary statistics
  4. Question: What percentage of markers were removed by filtering?

Starting with 1,200 markers, after filtering you should have ~1,000 remaining. That’s about 17% removed (200 ÷ 1,200 = 0.167).


Key Takeaways

✅ Genomic markers (SNPs) let us “see” genetic variation

✅ Quality control is essential — garbage in, garbage out

✅ Filter on MAF, call rate, and heterozygosity

✅ Check your data before running analyses


Next: Module 2: Population Structure & PCA — Understanding how your samples are related