'pedantics' is a set of tools for facilitating power and sensitivity analyses of quantitative genetic studies of natural populations. Some analyses may require using only one of the individual functions, and other problems may require several. In many situations in which multiple pedantics functions will be needed, the output from one function can serve as input to others.

pedantics is available as an R package from cran (external link)

The main pedantics web page is (external link)

The framework for power and sensitivity analyses that pedantics facilitates is described in M.B. Morrissey, A.J. Wilson, J.M. Pemberton, and M.M. Ferguson. 2007. A framework for power and sensitivity analyses for quantitative genetic studies of natural populations, and case studies in Soay sheep (Ovis aries). Journal of Evolutionary Biology 20: 2309-2321. This paper is available here (external link).

The recent update, expansion, and repackaging of pedantics as an R package is described in an in press paper in Molecular Ecology Resources,  (external link)

The tutorial for pedantics and the pedantics manual are available in pdf format.

The major functions in pedantics include:

rpederrsimulates plausible true pedigrees from uncertain pedigrees
rpederrBirdsimulates plausible true pedigrees from uncertain avian pedigrees
fpederrsimulates plausible uncertain pedigrees from complete and true pedigrees
phensimsimulates a range of user-defined, infinitesimal model-based genetic architectures across general pedigrees
genomesimsimulates discrete locus based genetic architectures, potentially in conjunction with multi-locus marker genotypes, across general pedigrees
fixPedigreeadds complete parental records and orders pedigrees, as required by many analytical programs
drawPedigreeprovides flexible visualizations of pedigrees especially in manners suitable in a quantitative genetic context
pedigreeStatsautomates the calculation of a range of summary statistics of pedigrees, especially those useful for describing pedigrees for quantitative genetic studies

Automated compilation of pedigree statistics with pedantics

At WAMBAM 2009, we agreed that we could start to report statistics of pedigrees in more informative ways. Some of the new capabilities of pedantics were added specifically for this purpose. One of the most important features, and so a theme that runs through all the calculations, is that we should strive to report statistics of those portions of pedigrees that are informative with respect to a given analysis - thanks especially to Jarrod Hadfield for pointing this out. For example, in an exercise to estimate heritability, any individuals that are either (1) not phenotyped or (2) not related to two or more phenotyped individuals contain no information about either the phenotypic or genetic variance. For pedigrees with many missing links and for traits with many unphenotyped individuals in any given system, very many individuals may be uninformative.

I'll go through a bit of pedigree drawing first, to show (a) some of the pedigree drawing capabilities of the pedantics module 'drawPedigree' and (b) to begin to illustrate the importance of reporting statistics of pedigrees that have been pruned down to only informative records.

A pedigree of Gryphons is supplied with pedantics. Plotting the full pedigree is accomplished by:






This generates a pedigree very similar to what can be produced with pedigree viewer:

drawPedigree plot maternal links in red and paternal links in blue, by default. This does not give much of the pedigree structure. The extent to which individuals are clustered near the top gives some idea of how much ancestry information there is (or rather isn't), but beyond that there is little here. We can get better idea of the pedigree structure by plotting by cohort, rather than by pedigree depth:


Moving on to the description of pedigree structure...what if we went out this year and collected data on a phenotype never before measured in this system? How much joint phenotype-pedigree information would we have for, for example, animal modeling? In a long term study system, this is very similar to asking the question: what if we had collected the data last year? We can visualize the answer this way:


In this case it would be obvious that reporting statistics of the whole pedigree would not give an adequate description of the pedigree structure with respect to a trait measured on a single cohort. However, in other cases it is less obvious. For example in Soay sheep, about 15% of the records are informative with respect to a maternal genetic effect for birth weight (Morrissey and Wilson, in press).

Numerical representations of pedigree structure can be obtained with the pedantics function 'pedigreeStats'. In its simplest form:

stats.g<-pedigreeStats(ped.g, graphicalReport='n')

This would produce a list of pedigree statistics including, numbers of relatives of different categories, metrics of pedigree completeness, and distributions of relatedness and inbreeding coefficients. You can run pedigree stats without setting 'graphicalReport='n'', and some simple graphical representations of the pedigree statistics will be printed to the console. Trying to view the list returned by pedigreeStats will just result in a lot of numbers scrolling by very fast, at least for most pedigrees. You can see what types of statistics are contained in the list:

> names(stats.g)
 [1] "totalSampleSize"           "totalMaternities"         
 [3] "totalPaternities"          "totalFullSibs"            
 [5] "totalMaternalSibs"         "totalPaternalSibs"        
 [7] "totalMaternalGrandmothers" "totalMaternalGrandfathers"
 [9] "totalPaternalGrandmothers" "totalPaternalGrandfathers"
[11] "pedigreeDepth"             "inbreedingCoefficients"   
[13] "Amatrix"                   "maternalSibships"         
[15] "paternalSibships"          "cumulativeRelatedness"    
[17] "relatednessCategories"     "analyzedPedigree"

If you can think of other statistics that would be useful, either to you or generally, please suggest them to me, email: michael.morrissey {at}

Statistics of the portion of the pedigree that is informative for the hypothetical trait measured in a single generation can be obtained by:


Another pedantics function 'pedStatSummary' can give an overview of the data in one or two of the list objects generated by pedigreeStats:

> pedStatSummary(stats.g,stats.g.pruned)
                              Pedigree 1   Pedigree 2
records                     4.918000e+03 486.00000000
maternities                 2.435000e+03 389.00000000
paternities                 1.156000e+03 211.00000000
full sibs                   8.600000e+01   9.00000000
maternal sibs               6.957000e+03 326.00000000
maternal half sibs          6.871000e+03 317.00000000
paternal sibs               6.138000e+03 390.00000000
paternal half sibs          6.052000e+03 381.00000000
maternal grandmothers       1.503000e+03 271.00000000
maternal grandfathers       8.890000e+02 153.00000000
paternal grandmothers       5.070000e+02 101.00000000
paternal grandfathers       3.540000e+02  63.00000000
maximum pedigree depth      6.000000e+00   6.00000000
founders                    2.483000e+03  66.00000000
mean maternal sibsip size   4.183849e+00   2.06914894
mean paternal sibsip size   3.853333e+00   2.77631579
non-zero F                  2.300000e+01   3.00000000
F > 0.125                   7.000000e+00   0.00000000
mean pairwise relatedness   8.580691e-02   0.12161316
pairwise relatedness>=0.125 3.309669e-01   0.43120972
pairwise relatedness>=0.25  1.272125e-01   0.23512643
pairwise relatedness>=0.5   2.350472e-02   0.07560734

The size of the pedigree that is meaningful with respect to the inheritance of the hypothetical trait is clearly very small. However, the relatedness withing this pedigree is much higher.


Main Menu

Recently visited pages