Skip to contents

wild pedigree explorerR is an R package designed to simplify the analysis of wild pedigree data. The package was primarily developed to work with pedigree data generated by COLONY pedigree reconstruction software. However, it can also accommodate pedigree data from other sources. By combining the reconstructed pedigree with genetic sample metadata, wpeR creates visual and tabular representations of the pedigree, allowing the user to interpret the pedigree in spatial and temporal terms. The main goal of the package is to provide an efficient solution for the analysis of complex wild pedigree data and to help the user to gain valuable insights into genetic relationships within wild animal populations.

Installation

devtools::install_github("GR3602/wpeR")

Key Features

  • Pedigree import and formatting
  • Individual observation timeframe identification
  • Family organization
  • Temporal pedigree visualization
  • Geographic pedigree visualization and GIS output
  • Integration with other R packages

Input Data

The wpeR package requires two main input datasets for analysis: Pedigree and Genetic samples metadata.

Basic workflow

Function
call
order
Function Description
1a get_colony() Organizes COLONY output
1b get_ped() Organizes pedigree data
2 anim_timespan() Get dates of individuals first and last sample
3 org_fams() Organizes animals into families and expands pedigree data
4 plot_table() Prepares pedigree data for plotting and spatial representation
5.1 ped_satplot() Temporal plot of pedigree
5.2 ped_spatial() Get files for spatial representation of pedigree
####DATA PREPARATION####
# Define the path to the pedigree data file.
path <- paste0(system.file("extdata", package = "wpeR"), "/wpeR_samplePed")

# Retrieve the pedigree data from the get_colony function.
ped_colony <- get_colony(path, sampledata, rm_obsolete_parents = TRUE, out = "FamAgg")


# Get animal timespan data using the anim_timespan() function.
animal_ts <- anim_timespan(wolf_samples$AnimalRef,
                           wolf_samples$Date,
                           wolf_samples$SType,
                           dead = c("Tissue"))

# Add animal timespan to the sampledata
sampledata <- merge(wolf_samples, animal_ts, by.x = "AnimalRef", by.y = "ID", all.x = TRUE)

# Organize families and expand pedigree data using the org_fams function.
## families data frame
fams <- org_fams(ped_colony, sampledata, output = "fams")
## extended pedigree data frame
ped <- org_fams(ped_colony,sampledata, output = "ped")


# The example show just one family 
## Prepare data for plotting.
pt <- plot_table(plot_fams = 1,
                 org_tables$fams,
                 org_tables$ped,
                 sampledata,
                 deadSample = c("Tissue"))
                 

####VISUALIZATION####                 
## Get a temporal pedigree plot.
ped_satplot(plottable = pt)
image
image

EXAMPLE Visualization using kinship2 package

# optional pedigre plot pedigree plot from kinship2
### extract parent codes
parents1 = strsplit(fams[fams$FamID == 1,]$parents, "_")[[1]]
### filter the family from pedigre
Fam1 = ped[(ped$FamID == 1 | ped$id %in% parents1),]
### plot using kinship2 
plot(kinship2::pedigree(Fam1$id, Fam1$father, Fam1$mother, Fam1$sex))
image
image
## Create spatial files
<!-- ps <- ped_spatial(pt) -->
summary(ps)
Object Name Description
mother… Rpoints POINT object representing reference samples of each animal. Reference sample for parents is their first sample, reference sample for the offspring is their last sample within the user defined time frame.
father…
offspring…
mother… MovePoints POINT object representing all samples of a particular animal.
father…
offspring…
maternity… Lines LINESTRING object connecting reference samples of mothers or fathers with reference samples of their offspring.
paternity…
mother… MoveLines LINESTRING object connecting all samples of an individual in chronological order, showcasing the movement or changes in location over time for the specific animal.
father…
offspring…
mother… MovePolygon POLYGON object representing a convex hull that encloses all the samples of an individual. It provides a graphical representation of the spatial extent or range covered by the animal based on its sample locations.
father…


EXAMPLE Using spatial files together with ggplot2, basemaps and ggsflabel for spatial visualization.

image
Spatial representation using mother/father/offspringRpoints and maternety/paternitylines
!image
Spatial representation using mother/fatherRpoints/MovePoints/MoveLines