Data and code from: Coyote density, demography, and genetic structure across North Carolina's barrier islands
Data files
Sep 29, 2026 version files 290.03 MB
-
obx_coyote_capture_histories.csv
1.77 KB
-
obx_coyote_island_covariates.csv
87 B
-
obx_coyote_island_key.csv
152 B
-
obx_coyote_jags_output.rds
290 MB
-
OuterBanksCoyote_MarkRecapture_Script_for_dryad.R
22.23 KB
-
README.md
4.86 KB
Abstract
This dataset supports a study of coyote (Canis latrans) population dynamics on seven barrier islands of North Carolina's Outer Banks, where recently established coyotes depredate protected shorebird and sea turtle nests and have been subject to sustained lethal removal by federal agencies. We surveyed for coyote scat across all seven islands over three primary sampling periods (Winter 2024, Summer 2024, Winter 2025), with four secondary survey occasions per island per period. Individuals were identified by microsatellite genotyping of fecal DNA, yielding 62 unique coyotes. The archive contains the individual capture histories, the per-island survey-effort and covariate (predator management and road-survey detection) files, and the annotated R script that builds and fits a Bayesian multistate robust-design mark-recapture model in JAGS via the R package jagsUI. The model estimates island-specific abundance, apparent survival, per-capita recruitment, inter-island movement, and detection probability. The fitted model object, including the full posterior chains, is also included. Together, these files allow full reproduction of the reported demographic estimates and can support comparative work on noninvasive genetic mark-recapture of island populations.
This archive contains the data and analysis code for a multi-season robust-design mark-recapture study of coyotes (Canis latrans) across seven barrier islands on North Carolina Outer Banks. Individuals were identified from noninvasive fecal DNA. A Bayesian multistate Jolly-Seber model, fit in JAGS via the R package jagsUI, estimates island-specific abundance, apparent survival, per-capita recruitment, inter-island movement, and derived population metrics across three primary periods (Winter 2024, Summer 2024, and Winter 2025).
Contents
- OuterBanksCoyote_MarkRecapture_Script_for_dryad.R - analysis script in R
- obx_coyote_jags_output.rds - fitted model object with full posterior chains
Data
- obx_coyote_capture_histories.csv - individual capture histories
- obx_coyote_island_key.csv - per island survey effort by primary period
- obx_coyote_island_covariates.csv - per island management and detection covariates
Running the script also writes the JAGS model definition to RobustDesign_OuterBanksCoyotes_PerCapitaRecruitment.txt in the working directory.
Island Coding
Islands are numbered 1-7 throughout the data and code:
| Code | Island |
|---|---|
| 1 | Bodie |
| 2 | Pea |
| 3 | Hatteras |
| 4 | Ocracoke |
| 5 | North Core |
| 6 | South Core |
| 7 | Shackleford |
Primary periods: w1 = Winter 2024, s1 = Summer 2024, w2 = Winter 2025. Each primary period consisted of four secondary sampling occasions.
File Descriptions
OuterBanksCoyote_MarkRecapture_Script_for_dryad.R: This file contains the complete analysis. Sections: (1) loads data in; (2) defines indices and summarizes; (3) builds and writes the JAGS model; (4) formats the data, sets initial values, and MCMC settings; (5) runs JAGS; (6) summarizes the posterior, checks convergence, and saves outputs. Expects the three input files in a data/ subdirectory of the working directory.
data/obx_coyote_capture_histories.csv: This file contains one row per uniquely genotyped individual (62 rows) plus a header with 13 columns:
- recapture_id: unique individual identifier (genotype-based)
- w11-w14, s11-s14, w21-w24: the 12 secondary occasions, four within each of the three primary periods (w1, s1, w2). Each cell provides an island code (1-7) detailing which island the individual was detected on during that occasion, or 0 if the individual was not detected on that occasion.
One individual (recapture_id = “HH”) was detected on both North Core (5) and Ocracoke (4) within a single primary period. Her off-island (Ocracoke) detection was removed before the analysis so that the model's assumption of no inter-island movement within a primary period holds. So in this file HH appears on North Core only.
data/obx_coyote_island_key.csv: One row per island (7 rows) plus a header with five columns:
- island: island code (1-7)
- w1, s1, w2: survey-effort indicator for each primary period; 1 if the island was surveyed during that primary period, 0 if it was not. Bodie (w1 = 0) was not surveyed in the first primary period.
- island_name: island name.
data/obx_coyote_island_covariates.csv: One row per island (7 rows) plus a header with four columns:
- island: island code (1-7)
- t1, t2: predator-management covariate on apparent survival for the two survival intervals (interval 1 = Winter 2024 to Summer 2024; interval 2 = Summer 2024 to Winter 2025). 1 = island managers engaged in lethal removals of coyotes during that interval, 0 = not.
- roads_det: detection covariate; 1 if road-based scat surveys were conducted on that island, 0 if not.
Software
R version: 4.3.2
jagsUI version: 1.6.2
JAGS version: 4.3.1
Operating system: Windows 10 (64-bit)
Running the analysis
- Place the three CSV files in a data subdirectory of the working directory.
- Install JAGS and the R package jagsUI.
- Run OuterBanksCoyote_MarkRecapture_Script_for_dryad.R
The script sets set.seed(20240724) and assigns a distinct reproducible RNG seed to each MCMC chain, so a run can reproduce our same results given the same JAGS and jagsUI versions. The full run uses 3 chains, 40,000 adaptation iterations, 200,000 burn-in iterations, and 1,000,000 post-burn-in iterations per chain, thinned by 10. This is computationally intensive and is set to run on a multi-core machine, as parallel is set to TRUE.
Outputs produced when the script is run
- obx_coyote_jags_output.rds: the fitted model object with full posterior chains.
- obx_coyote_jags_summary.csv: posterior summary (mean, SD, quantiles, Rhat, and effective sample size) for all monitored parameters.
- obx_coyote_jags_output.RData: the same fitted model object saved in R's native.RData format
