A BreedingExperiment keeps everything a quantitative-genetic analysis needs
in one object: marker genotypes, the phenotypes and design variables of the
individuals, the pedigree, and the position of every marker on the genome.
Value
A class definition, so nothing is returned by the class itself. The
constructor BreedingExperiment() returns a BreedingExperiment object,
and the show method is called for the summary it prints, returning
object invisibly.
Details
The class extends
SummarizedExperiment::RangedSummarizedExperiment, so markers are rows
and individuals are columns, and the familiar accessors work as usual:
assay() returns the genotype matrix, rowRanges() the marker coordinates
as a GenomicRanges::GRanges, and colData() the phenotypes. Because
marker positions are genomic ranges, a breeding data set can be subset by
region, overlapped with annotation, and otherwise handled with the standard
Bioconductor vocabulary.
One slot is added to the parent class:
pedigreeA S4Vectors::DataFrame with columns
id,sireanddam, giving the parents of each individual. Unknown parents areNA. It may contain ancestors that were never genotyped, which is what makes single-step analysis possible.
Genotypes are stored as allele dosages: 0, 1 or 2 copies of the counted
allele, with NA for missing calls.
Construction
Use BreedingExperiment(); see its help page for examples.
Display
The show method prints the size of the object, the assays it holds, the
phenotype columns, the sequences the markers lie on, and a summary of the
pedigree including how many individuals are genotyped.
Examples
data(demoBreeding)
demoBreeding
#> class: BreedingExperiment
#> markers: 900 individuals genotyped: 120
#> assays(1): genotype
#> phenotypes(6): generation sex yield stature trueBV_yield trueBV_stature
#> sequences(10): chr1 chr2 chr3 chr4 chr5 chr6
#> pedigree: 180 individuals (120 genotyped, 60 not; 30 founders)