DOI: 10.5061/dryad.rxwdbrvmw
title: Designing epigenetic clocks for wildlife research

description: The potential applications of epigenetic clocks are expanding in wildlife
 conservation and management. The pace at which they are being adopted
 highlights the need for field-specific design best practices. Epigenetic
 clocks were originally developed for human studies, presenting challenges
 for their adoption in wildlife research. Most notably, the estimated ages
 of sampled wildlife can be unreliable, and sampling restrictions limit the
 number and variety of available samples, which can reduce the accuracy of
 epigenetic clocks for wildlife. In this article, we present a detailed
 workflow for designing, validating, and applying wildlife epigenetic
 clocks in a way that accounts for sampling constraints. We provide
 recommendations for two main applications of wildlife epigenetic clocks:
 estimating unknown ages and assessing cumulative biological aging. Our
 simulations and analyses, applied to an extensive polar bear dataset from
 across the Canadian Arctic, demonstrate that accurate epigenetic clocks
 for wildlife can be constructed and validated with limited samples,
 accommodating projects with small budgets and sampling constraints. With
 our workflow and examples, we hope to make epigenetic clocks more
 accessible and widespread in wildlife conservation and management.
description: We compiled an extensive DNA methylation dataset from polar bears
 across the Canadian Arctic to assess whether sampling biases, data
 pre-processing, and validation influence wildlife clock performance. Our
 dataset includes DNA from 10 distinct subpopulations, each with different
 proportions of blood, skin, and muscle tissue, from male and female bears,
 and representing ages across the typical lifespan of a wild polar bear
 from age 0 to 30. Scripts for processing the data are
 available from the GitHub repository
 https://github.com/ljnewediuk/how_to_clocks.git.
description: # Designing epigenetic clocks for wildlife research Dataset DOI:
 [10.5061/dryad.rxwdbrvmw](10.5061/dryad.rxwdbrvmw) ## Description of the
 data and file structure The data include sample sheets, raw idat files,
 and quality-control information that can be used to process the DNA
 methylation data into a suitable format for developing epigenetic clocks.
 ### Files and variables #### File: low\_qc\_positions.csv
 **Description:** Low-quality detection p-values (high values indicate
 quality issues) for screening samples. ##### Variables * position: chip
 position * chip.ID.loc: chip IDs corresponding to the name of the position
 (corresponds to chip.ID_stripe columns from the sample sheets) *
 detection_p: detection p-value; &gt; 0.05 is high * batch_no: Identifier
 ranging from 1-8 #### File: full\_sibs.txt **Description:** Individual
 sample IDs (corresponding to sampleId in sample sheets) with siblings in
 the dataset. These individuals are normally excluded from clock design
 because of potential bias due to genetic relatedness. #### File:
 PB\_aligned\_cpgs.txt **Description:** Names of cpg sites (corresponding
 to sites from Horvath Mammal Array in idat files) that align with the
 polar bear genome. #### File: sample\_sheets.zip **Description:** Contains
 files with biological information about the samples and technical
 information about sample locations on the arrays. *
 **PB_arrayXX_sample_sheetXX.rds**: Data frame with information about the
 array location corresponding to each sample in *batchXX_samples.rds*. *
 Sample_Name: Unique sample name (corresponds to sampleId
 in *batchXX_samples.rds*) * Sample_Well: Location on 96-well plate *
 Sample_Plate: Identifies the plate for batches with multiple plates *
 chip.No: Unique identifier for the chip (four per array) * chip.ID:
 Numeric identifier for the chip (four per array) * stripe: Row and column
 position of the sample on the chip (RXX = rows 1-6, CXX = columns 1-2) *
 row: Row identifier for 96-well plate (8 rows, a-h) * column: Column
 identifier for 96-well plate (12 rows, numbered) *
 **batchXX_samples.rds**: Data frame with biological sample information
 corresponding to each sample in the sample sheets. Note: NA indicates
 missing values. Missing values in the ID column indicate bears that were
 not assigned an individual bear ID at the time of sampling. This happened
 when bears were sampled as part of necropsies, meaning they did not
 require an identifier for future sampling. For some of these necropsied
 bears, ages were also unknown, resulting in missing values in the age and
 Born columns. * sampleId: Unique sample name * id: ID for individual bear
 (might be multiple sampleIds/bear) * Population: Population code (SB =
 Southern Beaufort, NB = Northern Beaufort, GB = Gulf of Boothia, LS =
 Lancaster Sound, MC = Mc'Clintock Channel, FB = Foxe Basin, WH =
 Western Hudson Bay, SH = Southern Hudson Bay, DS = Davis Strait, BB =
 Baffin Bay) * Spec: Tissue type (blood, skin, muscle) * YMD:
 Year-month-day of sample * sex: Sex of individual (F = female, M = male) *
 age: Age (in years) of the individual at the time of the sample * Born:
 Birth year of the individual #### File: iscans.zip
 **Description:** Contains idat files arranged in folders labeled with
 batches corresponding to numbered sample sheet files, each containing
 folders corresponding to chip.ID columns in the sample sheets, containing
 red and green channel .idat files named with chip position (stripe column
 in sample sheet files). ## Code/software All code was run in R v4.3.1 and
 runs on macOS Monterey v12.7.3 **CRAN Package versions**: * tidyverse
 v2.0.0 * cowplot v1.1.3 * glmnet v4.1-8 * limma v1.1.3 * BiocManager
 v1.30.22 **Developmental Package versions**: *
 packages/HorvathMammalMethylChip40anno.test.unknown_0.2.2.tar.gz *
 packages/HorvathMammalMethylChip40manifest_0.2.2.tar.gz Note that both
 package versions were downloaded and are available from
 [https://github.com/shorvath/MammalianMethylationConsortium](https://github.com/shorvath/MammalianMethylationConsortium) ## Access information Other publicly accessible locations of the data: * [https://github.com/ljnewediuk/how_to_clocks.git](https://github.com/ljnewediuk/how_to_clocks.git)