Data from: Developmental behavioural plasticity and DNA methylation patterns in response to predation stress in Trinidadian guppies
Abstract
Early-life experiences can predict the environments experienced later in life, giving individuals an opportunity to develop adaptive behaviour appropriate to a likely future environment. Epigenetic mechanisms such as DNA methylation (DNAm) have been implicated in developmental behavioural plasticity, however, studies investigating this possibility are limited in taxonomic breadth and ecological relevance. We investigated the impact of early-life exposure to predation stress on behaviour and DNAm in the brains of Trinidadian guppies (Poecilia reticulata). We exposed guppies throughout development to either alarm cue (conspecific skin extract), inducing predation stress, or a control cue (water) for eight weeks and then raised them to adulthood under identical conditions. We then conducted two behavioural assays, an open-field and a grouping test, before performing whole-genome bisulfite sequencing on whole brains. Guppies exposed to alarm cue during development exhibited increased grouping (shoaling) in adulthood compared to those exposed to the control treatment, but there were no detectable impacts on activity, boldness, or exploratory behaviour. We also identified stable shifts in brain DNAm in response to developmental alarm cue exposure in genes involved in behavioural regulation. Some differentially methylated sites were significantly associated with shoaling propensity in both males and females. Additionally, males and females differed in the magnitude of DNAm responses and the genes impacted, suggesting distinct roles for DNAm between the sexes. This study shows how early-life predation stress can induce behavioural changes in adulthood and that shifts in neural DNAm could be an underlying mechanism responsible for these changes.
https://doi.org/10.5061/dryad.dbrv15fch
Description of the data and file structure
Data and code associated with paper: Developmental behavioural plasticity and DNA methylation patterns in response to predation stress in Trinidadian guppies
Experiment Summary: Juvenile guppies were exposed to either alarm cue or control cue throughout development three times a week for eight weeks. After a 22-week period without exposure to cue guppies went through behavioural assays (open field and shoaling). Immediately following behavioural assays, we dissected out brains for whole genome bisulfite sequencing .
File structure: Clean and raw behavioural and weight data files are provided within the data.zip file. Sequencing data are stored on SRA (BioProject ID: PRJNA1220133). Analysis scripts are provided with separate folders for each analysis type (01_behavioural_analysis and 02_methylation_analysis). Within each folder, each script should be run in order of the numbering.
All variables and abbreviations are defined below. Missing data = NA.
All required packages and functions are listed at the top of each script.
Files and variables
File: data.zip
Description: zip file including all raw and clean datasets. Raw data are included so that it is clear how clean data was generated (using the data cleaning scripts), however all analysis scripts are run on clean data only. Clean datasets are described below.
File: clean_size_gupEpi_2024.csv
Description: Clean data sheet of fish size data
Variables
- ID: fish identification number
- weight_g: weight in grams
- sl_cm: standard length in centimetres
- tl_cm: total length in centimetres
- tank: which home tank was the fish stored in during cue exposures
- cue: which cue was the fish exposed to (AC: alarm cue, C: control cue)
File: clean_shoaling_gupEpi_2024.csv
Description: Clean data sheet of shoaling data
Variables
- ID: fish identification number
- cue: which cue was the fish exposed to (AC: alarm cue, C: control cue)
- sex: what sex the fish was (F: female, M: male)
- tank: which home tank was the fish stored in during cue exposures
- shoal_side: which size of the tank was the shoal on (L: left, R: right)
- int_L_s: time spent interacting with the container on the left side (seconds)
- int_L_lat_s: latency to interact with the container on the left side (seconds)
- int_R_s: time spent interacting with the container on the right side (seconds)
- int_R_lat_s: latency to interact with the container on the right side (seconds)
- tight_L_s: time spent tight shoaling with the container on the left side (seconds)
- tight_L_lat_s: latency to tight shoal with the container on the left side (seconds)
- tight_R_s: time spent tight shoaling with the container on the right side (seconds)
- tight_r_lat_s: latency to tight shoal with the container on the right side (seconds)
- lse_L_s: time spent loose shoaling with the container on the left side (seconds)
- lse_L_lat_s: latency to loose shoal with the container on the left side (seconds)
- lse_R_s: time spent loose shoaling with the container on the right side (seconds)
- lse_R_lat_s: latency to loose shoal with the container on the right side (seconds)
- int_shoal_s: time spent interacting with container containing shoal (seconds)
- int_shoal_lat_s: latency to interact with container containing shoal (seconds)
- int_emp_s: time spent interacting with empty container (seconds)
- int_emp_lat_s: latency to interact with empty container (seconds)
- tight_shoal_s: time spent tight shoaling with container containing shoal (seconds)
- tight_shoal_lat_s: latency to tight shoal with container containing shoal (seconds)
- tight_emp_s: time spent tight shoaling with empty container (seconds)
- tight_emp_lat_s: latency to tight shoal with empty container (seconds)
- lse_shoal_s: time spent loose shoaling with container containing shoal (seconds)
- lse_shoal_lat_s: latency to loose shoal with container containing shoal (seconds)
- lse_emp_s: time spent loose shoaling with empty container (seconds)
- lse_emp_lat_s: latency to loose shoal with empty container (seconds)
- time.x: time of day for shoaling assay (AM: morning, PM: afternoon)
- time.y: time of day for open field assay (AM: morning, PM: afternoon)
File: clean_openfield_gupEpi_2024.csv
Description: Clean data sheet of open field data
Variables
- ID: fish identification number
- cue: which cue was the fish exposed to (AC: alarm cue, C: control cue)
- sex: what sex the fish was (F: female, M: male)
- tank: which home tank was the fish stored in during cue exposures
- dist_cm: total distance fish travelled (centimetres)
- veloc_cms: average velocity of fish (centimetres/second)
- moving_s: total time spent moving (seconds)
- frozen_s: total time spent frozen (seconds)
- avgdistshelt_cm: average distance from shelter (centimetres)
- maxdistshelt_cm: maximum distance from shelter (centimetres)
- time_shelter_s: time spent in shelter (seconds)
- lat_shelter_s: latency to enter shelter (seconds)
- per_shelt: percent time in shelter (%)
- time_outer_s: time spent in squares along outer edge of tank (seconds)
- lat_outer_s: latency to enter outer edge (seconds)
- per_outer: percent time spent in outer edge (%)
- S3_freq: Number of times fish entered square S3
- S4_freq: Number of times fish entered square S4
- S5_freq: Number of times fish entered square S5
- S6_freq: Number of times fish entered square S6
- S7_freq: Number of times fish entered square S7
- S8_freq: Number of times fish entered square S8
- S11_freq: Number of times fish entered square S11
- S12_freq: Number of times fish entered square S12
- S13_freq: Number of times fish entered square S13
- S14_freq: Number of times fish entered square S14
- S15_freq: Number of times fish entered square S15
- S16_freq: Number of times fish entered square S16
- S17_freq: Number of times fish entered square S17
- S18_freq: Number of times fish entered square S18
- S19_freq: Number of times fish entered square S19
- S20_freq: Number of times fish entered square S20
- S21_freq: Number of times fish entered square S21
- S22_freq: Number of times fish entered square S22
- S23_freq: Number of times fish entered square S23
- S24_freq: Number of times fish entered square S24
- S25_freq: Number of times fish entered square S25
- S26_freq: Number of times fish entered square S26
- S27_freq: Number of times fish entered square S27
- S28_freq: Number of times fish entered square S28
- S29_freq: Number of times fish entered square S29
- S30_freq: Number of times fish entered square S30
- S31_freq: Number of times fish entered square S31
- S32_freq: Number of times fish entered square S32
- S3_freq_3min: Number of times fish entered square S3 within first 3 minutes
- S4_freq_3min: Number of times fish entered square S4 within first 3 minutes
- S5_freq_3min: Number of times fish entered square S5 within first 3 minutes
- S6_freq_3min: Number of times fish entered square S6 within first 3 minutes
- S7_freq_3min: Number of times fish entered square S7 within first 3 minutes
- S8_freq_3min: Number of times fish entered square S8 within first 3 minutes
- S11_freq_3min: Number of times fish entered square S11 within first 3 minutes
- S12_freq_3min: Number of times fish entered square S12 within first 3 minutes
- S13_freq_3min: Number of times fish entered square S13 within first 3 minutes
- S14_freq_3min: Number of times fish entered square S14 within first 3 minutes
- S15_freq_3min: Number of times fish entered square S15 within first 3 minutes
- S16_freq_3min: Number of times fish entered square S16 within first 3 minutes
- S17_freq_3min: Number of times fish entered square S17 within first 3 minutes
- S18_freq_3min: Number of times fish entered square S18 within first 3 minutes
- S19_freq_3min: Number of times fish entered square S19 within first 3 minutes
- S20_freq_3min: Number of times fish entered square S20 within first 3 minutes
- S21_freq_3min: Number of times fish entered square S21 within first 3 minutes
- S22_freq_3min: Number of times fish entered square S22 within first 3 minutes
- S23_freq_3min: Number of times fish entered square S23 within first 3 minutes
- S24_freq_3min: Number of times fish entered square S24 within first 3 minutes
- S25_freq_3min: Number of times fish entered square S25 within first 3 minutes
- S26_freq_3min: Number of times fish entered square S26 within first 3 minutes
- S27_freq_3min: Number of times fish entered square S27 within first 3 minutes
- S28_freq_3min: Number of times fish entered square S28 within first 3 minutes
- S29_freq_3min: Number of times fish entered square S29 within first 3 minutes
- S30_freq_3min: Number of times fish entered square S30 within first 3 minutes
- S31_freq_3min: Number of times fish entered square S31 within first 3 minutes
- S32_freq_3min: Number of times fish entered square S32 within first 3 minutes
- S3_cumDur: Cumulative duration of time (seconds) fish is in square S3
- S4_cumDur: Cumulative duration of time (seconds) fish is in square S4
- S5_cumDur: Cumulative duration of time (seconds) fish is in square S5
- S6_cumDur: Cumulative duration of time (seconds) fish is in square S6
- S7_cumDur: Cumulative duration of time (seconds) fish is in square S7
- S8_cumDur: Cumulative duration of time (seconds) fish is in square S8
- S11_cumDur: Cumulative duration of time (seconds) fish is in square S11
- S12_cumDur: Cumulative duration of time (seconds) fish is in square S12
- S13_cumDur: Cumulative duration of time (seconds) fish is in square S13
- S14_cumDur: Cumulative duration of time (seconds) fish is in square S14
- S15_cumDur: Cumulative duration of time (seconds) fish is in square S15
- S16_cumDur: Cumulative duration of time (seconds) fish is in square S16
- S17_cumDur: Cumulative duration of time (seconds) fish is in square S17
- S18_cumDur: Cumulative duration of time (seconds) fish is in square S18
- S19_cumDur: Cumulative duration of time (seconds) fish is in square S19
- S20_cumDur: Cumulative duration of time (seconds) fish is in square S20
- S21_cumDur: Cumulative duration of time (seconds) fish is in square S21
- S22_cumDur: Cumulative duration of time (seconds) fish is in square S22
- S23_cumDur: Cumulative duration of time (seconds) fish is in square S23
- S24_cumDur: Cumulative duration of time (seconds) fish is in square S24
- S25_cumDur: Cumulative duration of time (seconds) fish is in square S25
- S26_cumDur: Cumulative duration of time (seconds) fish is in square S26
- S27_cumDur: Cumulative duration of time (seconds) fish is in square S27
- S28_cumDur: Cumulative duration of time (seconds) fish is in square S28
- S29_cumDur: Cumulative duration of time (seconds) fish is in square S29
- S30_cumDur: Cumulative duration of time (seconds) fish is in square S30
- S31_cumDur: Cumulative duration of time (seconds) fish is in square S31
- S32_cumDur: Cumulative duration of time (seconds) fish is in square S32
- time: time of day for open field assay (AM: morning, PM: afternoon)
Code/software
All required packages and functions are listed at the top of each script.
#Setup
1. Download project repository from Github or Dryad
2. Download data folders:
- Behavioural data: from Github or Dryad
- Sequencing data: from SRA (BioProject ID: PRJNA1220133)
#Code Runing
All code for analysis is provided in the Github repository or in scripts.zip file on Dryad. Each folder contains all scripts for a specific type of analysis (01_behavioural_analysis and 02_methylation_analysis) and the files within the folder should be run in order of numbering. Files with a and b lettering represent code paired with its slurm submission file. Note that any code with this pairing was written to be run on Compute Canada HPC system and may need to be adapted to your needs if you do not have access. All required software is commented at top of each script. Uncomment and run install lines if required. Analysis was originally run on R v4.3.2. The nf-core/methylseq pipeline v1.6.1 was used to process sequencing reads. Other details on versions of software used can be found in manuscript. Both raw and clean behavioural data is included, however, analysis scripts run on clean behavioural data only. Raw data is included so that you can see how data cleaning was done (using the data cleaning script) but is not required for analysis.
Access information
Other publicly accessible locations of the data:
- Sequencing data: SRA BioProject ID: PRJNA1220133
Juvenile guppies were exposed to either alarm cue or control cue throughout development three times a week for eight weeks. After a 22-week period without exposure to cue guppies went through behavioural assays.
Behavioural assays were carried out between 9:00 and 17:00 from May to September 2021. Fish were not fed on the day of behavioural assays. Arena tanks were 20 L rectangular glass tanks with the sides covered in white corrugated plastic sheets to prevent reflections. We filled tanks with fresh conditioned and heated (25 +/- 1oC) water to 6 cm of depth and loosely scattered light-coloured gravel along the bottom. For each assay, fish were allowed to habituate in the arena tank for three minutes in a transparent cylinder (diameter = 6 cm) placed at the center of the tank. We then slowly lifted the cylinder to release the fish and begin the assay. The experimenter hid behind a barrier for the duration of the assay. The assays lasted for five minutes and were recorded using a 1080P HD Model N5 webcam (HDZIYU, Shenzhen, China) positioned 60 cm above the tank. In the modified open field test, a 10 cm x 10 cm artificial lawn aquarium plant that fish could hide in was placed in one corner of the tank (Supplemental Figure 1). For five minutes, the fish was allowed to explore the tank or hide in the plant shelter. We used EthoVision XT v11.5 to quantify distance travelled (cm), time spent in the shelter (s), time spent in outer edge of tank (within the outer squares) (s), time spent moving (s), and time spent frozen (s). The last two measurements were only recorded while the fish was not in the shelter. Additionally, a virtual 4 x 8 grid was overlayed onto the arena video and we extracted the amount of time a fish spent within each unique square. A fish had to spend at least three seconds within a square for it to count as “explored”. ”. Immediately afterwards, we ran the shoaling test. Two identical glass cylinders with a 9 cm diameter were placed on each side of the tank - one empty, and the other containing a shoal of four, unfamiliar adult females from the Paria population. The fish was then allowed to move around the tank monitored for five minutes. The side of the tank that contained the shoal container was alternated between every assay to control for any effect of tank side. One observer blind to cue treatment used BORIS v7.12.2 to record time spent within four body lengths with each container (s). Data was cleaned to ensure labels match across datasheets and to add on data regarding time of behavioural assay.
Immediately following behavioural assays, we euthanized fish by immersion in ice water. Within three minutes, we measured fish mass and length and dissected out brains for whole genome bisulfite sequencing (data stored on SRA).
