OSCR

Assessing patterns of extinction risk amongst mammal species in Nigeria: A comparative analysis of human impact.

Code ↔ Paper

7 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 7 matches
  1. [1] § Material and methods ↔ NIGMAL Scripts/Data_Cleaning.Rmd, lines 68–122 · score 0.91 · Extant Reintroduced, Possibly Extant, extant polygons, geographic area, extinct area, Geographic range
  2. [2] § Results ↔ NIGMAL Scripts/visualization.Rmd, lines 7–96 · score 0.78 · Residential Commercial Development, Human Intrusions, Agriculture Aquaculture, Biological Resource, Climate Change Severe, Brain Mass
  3. [3] § Results ↔ NIGMAL Scripts/visualization.Rmd, lines 7–96 · score 0.76 · Energy Production Mining, Transportation Service Corridors, Agriculture Aquaculture, Climate Change Severe, Weather, human
  4. [4] § Material and methods ↔ NIGMAL Scripts/model_outputs.Rmd, lines 7–120 · score 0.75 · logistic_MPLE, phylogenetic logistic regression, IUCN Red, pruned, Threats Model, phyloglm
  5. [5] § Results ↔ NIGMAL Scripts/model_fitting.Rmd, lines 41–80 · score 0.74 · Human Intrusions, Commercial Development, Agriculture Aquaculture, Severe Weather, Biological Resource, Climate Change
  6. [6] § Results ↔ NIGMAL Scripts/model_fitting.Rmd, lines 41–80 · score 0.72 · Service Corridors, Energy Production, Agriculture Aquaculture, Severe Weather, Climate Change, Mining
  7. [7] § Material and methods ↔ NIGMAL Scripts/model_outputs.Rmd, lines 7–120 · score 0.58 · phylogenetic logistic regression, IUCN threat categories, models

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

R Markdown · 238 lines · 6.9 KB · MIT · 2 matches

  1. ---
  2. title: "visualization"
  3. author: "Bernard Asanbe"
  4. date: "2025"
  5. ---
  6. ```{r}
  7. # Load required libraries
  8. library(ggplot2)
  9. library(dplyr)
  10. library(readr)
  11. library(scales)
  12. # Read the CSV file
  13. data <- read_csv("insert_file_path_here/Phyloglm_modelling_results.csv")
  14. # Filter out intercept rows
  15. data <- data %>% filter(Predictor != "(Intercept)")
  16. # Add significance labels: multiple asterisks based on p-values
  17. data <- data %>%
  18. mutate(Significance = case_when(
  19. Sig < 0.001 ~ "***",
  20. Sig < 0.01 ~ "**",
  21. Sig < 0.05 ~ "*",
  22. TRUE ~ ""
  23. ))
  24. # Order models, keeping "Total_Threat_Model" first
  25. models <- unique(data$Model)
  26. models <- c("Total_Threats_Model", setdiff(models, "Total_Threats_Model"))
  27. # Create a high-contrast color palette using varying luminance
  28. # Mix of dark and light tones for better contrast
  29. n_other <- length(models) - 1
  30. hues <- seq(15, 375, length.out = n_other + 1)[-1]
  31. luminances <- rep(c(40, 70), length.out = n_other) # alternate luminance for contrast
  32. colorful_palette <- hcl(h = hues, c = 100, l = luminances)
  33. # Assign black to Total Threat Model, add colorful palette to others
  34. colors <- c("Total_Threats_Model" = "black")
  35. colors <- c(colors, setNames(colorful_palette, models[-1]))
  36. # Set factor levels to control order
  37. data$Model <- factor(data$Model, levels = models)
  38. # Clean up Predictor labels (x-axis)
  39. data$Predictor <- recode(data$Predictor,
  40. "Scaled_CurrentByTotalArea_km2" = "Historical Range Contraction",
  41. "Scaled_Log_Brain_Mass_g" = "Brain Mass",
  42. "Scaled_Log_CurrentArea_km2" = "Current Area (km²)",
  43. "Scaled_Log_GenerationTime_d" = "Generation Time",
  44. "Scaled_Log_Mass_g" = "Body Mass",
  45. )
  46. # Clean up Model labels (legend)
  47. data$Model <- recode(as.character(data$Model),
  48. "Total_Threats_Model" = "Total Threats Model",
  49. "Agriculture_&_aquaculture" = "Agriculture & Aquaculture",
  50. "Biological_resource_use" = "Biological Resource Use",
  51. "Residential_&_commercial_development" = "Residential & Commercial Development",
  52. "Energy_production_&_mining" = "Energy Production & Mining",
  53. "Transportation_&_service_corridors" = "Transportation & Service Corridors",
  54. "Human_intrusions_&_disturbance" = "Human Intrusions & Disturbance",
  55. "Climate_change_&_severe_weather" = "Climate Change & Severe Weather",
  56. "Pollution" = "Pollution"
  57. )
  58. # Re-apply factor order after recoding (Total Threats must stay first)
  59. data$Model <- factor(data$Model, levels = c(
  60. "Total Threats Model",
  61. "Agriculture & Aquaculture",
  62. "Biological Resource Use",
  63. "Residential & Commercial Development",
  64. "Energy Production & Mining",
  65. "Transportation & Service Corridors",
  66. "Human Intrusions & Disturbance",
  67. "Climate Change & Severe Weather",
  68. "Pollution"
  69. ))
  70. # Update colors to match new model names
  71. colors <- c("Total Threats Model" = "black")
  72. colors <- c(colors, setNames(colorful_palette,
  73. c("Agriculture & Aquaculture",
  74. "Biological Resource Use",
  75. "Residential & Commercial Development",
  76. "Energy Production & Mining",
  77. "Transportation & Service Corridors",
  78. "Human Intrusions & Disturbance",
  79. "Climate Change & Severe Weather",
  80. "Pollution")))
  81. ```
  82. Plotting of Raw graph
  83. ```{r}
  84. # Compute vertical position for asterisks
  85. data <- data %>%
  86. mutate(asterisk_y = ifelse(Effect_size >= 0,
  87. Effect_size + SE + 0.05,
  88. Effect_size - SE - 0.1))
  89. # Build the final plot
  90. p1 <- ggplot(data, aes(x = Predictor, y = Effect_size, fill = Model)) +
  91. geom_bar(stat = "identity",
  92. position = position_dodge(width = 0.8),
  93. width = 0.7) +
  94. geom_errorbar(aes(ymin = Effect_size - SE,
  95. ymax = Effect_size + SE),
  96. position = position_dodge(width = 0.8),
  97. width = 0.25) +
  98. geom_text(aes(y = asterisk_y, label = Significance),
  99. position = position_dodge(width = 0.8),
  100. angle = 90,
  101. size = 6,
  102. fontface = "bold",
  103. color = "red3",
  104. hjust = -0.05) +
  105. labs(
  106. y = "Effect Size",
  107. x = "Predictor",
  108. fill = "Threat Models"
  109. ) +
  110. scale_fill_manual(values = colors) +
  111. theme_minimal(base_size = 18) +
  112. theme(
  113. axis.text.x = element_text(
  114. angle = 52,
  115. size = 14,
  116. hjust = 1,
  117. face = "plain"
  118. ),
  119. axis.line = element_line(color = "black"),
  120. axis.ticks = element_line(color = "black"),
  121. panel.grid.major.x = element_blank(),
  122. panel.grid.minor.x = element_blank(),
  123. legend.position = "right"
  124. )
  125. p1
  126. ggsave(
  127. "Fig1_raw_effects.jpeg",
  128. plot = p1,
  129. width = 14,
  130. height = 8,
  131. dpi = 300,
  132. )
  133. ```
  134. Plotting of Standardized (scaled) graph
  135. ```{r}
  136. # Compute vertical position for asterisks
  137. data <- data %>%
  138. mutate(asterisk_y = ifelse(Std_Effect_size >= 0,
  139. Std_Effect_size + SE + 0.05,
  140. Std_Effect_size - SE - 0.1))
  141. # Build the final plot
  142. p2 <- ggplot(
  143. data_std,
  144. aes(x = Predictor,
  145. y = Std_Effect_size,
  146. fill = Model)
  147. ) +
  148. geom_bar(
  149. stat = "identity",
  150. position = position_dodge(width = 0.8),
  151. width = 0.7
  152. ) +
  153. geom_errorbar(
  154. aes(
  155. ymin = Std_Effect_size - Std_SE,
  156. ymax = Std_Effect_size + Std_SE
  157. ),
  158. position = position_dodge(width = 0.8),
  159. width = 0.25
  160. ) +
  161. geom_text(
  162. aes(
  163. y = asterisk_y,
  164. label = Significance
  165. ),
  166. position = position_dodge(width = 0.8),
  167. angle = 90,
  168. size = 6,
  169. fontface = "bold",
  170. color = "red3",
  171. hjust = -0.05
  172. ) +
  173. labs(
  174. y = "Standardized Effect Size",
  175. x = "Predictor",
  176. fill = "Threat Models"
  177. ) +
  178. scale_fill_manual(values = colors) +
  179. theme_minimal(base_size = 18) +
  180. theme(
  181. axis.text.x = element_text(
  182. angle = 52,
  183. size = 14,
  184. hjust = 1,
  185. face = "plain"
  186. ),
  187. axis.line = element_line(color = "black"),
  188. axis.ticks = element_line(color = "black"),
  189. panel.grid.major.x = element_blank(),
  190. panel.grid.minor.x = element_blank(),
  191. legend.position = "right"
  192. )
  193. # Display plot
  194. p2
  195. # Save Figure 2
  196. ggsave(
  197. filename = "Fig2_std_effects.jpeg",
  198. plot = p2,
  199. width = 14,
  200. height = 8,
  201. dpi = 300,
  202. )
  203. ```
  204. ```{r}
  205. ```

visualization.Rmd, under MIT · at the source

Overview

Authors: Bernard Asanbe1
  1. University of Gothenburg, Göteborg, Sweden, University of Gothenburg, Göteborg, Sweden, https://ror.org/01tm6cn81
Institutions: University of Gothenburg (Sweden)
Journal: Biodiversity data journal, volume 14, article e191439
Dates: received 13 March 2026; accepted 15 June 2026; published online 21 August 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.3897/bdj.14.e191439 · PMID 42668897 · PMCID PMC13525407 · OpenAlex W7203953010
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: human (organism)
Methods: Machine learning, Preprocessing, Statistics, Physiology & signal measures
Keywords: brain mass, extinction risk, human impact, Nigerian mammals
Topic: Primate Behavior and Ecology (Social Psychology, Psychology), according to OpenAlex
Citations: not cited yet (Europe PMC); 44 references in the paper

Abstract

This study aimed to evaluate how biological traits influence extinction risk amongst mammal species in Nigeria and how these traits interact with specific anthropogenic threats, such as agriculture, urbanisation and climate change. Focusing on mammal species in Nigeria, we used phylogenetic logistic regression to test the influence of five biological traits: body mass, brain mass, generation time, current geographic range and historical range contraction, on extinction risk across nine IUCN threat categories. Standardised models were used to compare trait sensitivity across threats. Brain mass emerged as the most consistent and influential predictor of extinction risk across threat categories, including agriculture, biological resource use, urban development and, notably, climate change, where it was the strongest predictor of all models. Species with larger brains, often primates and carnivores, were highly vulnerable. Geographic range size was a strong negative predictor of risk across most models, with range-restricted species more susceptible to habitat loss and fragmentation. Generation time was positively associated with risk under direct human pressures, but inversely linked under climate threats. Body mass showed weak and inconsistent effects overall, though it was significantly and negatively associated with extinction risk under agriculture and aquaculture. The number of species affected was highest under direct human pressures, compared to indirect anthropogenic threats, such as climate change and pollution. Extinction risk in Nigerian mammals is shaped by intrinsic traits that interact predictably with human pressures. Species with large brains, small ranges and slow reproduction are at greatest risk. Trait-based models can improve conservation planning by identifying vulnerable species before population declines become critical, especially in regions facing intensive land-use change.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above, with 7 matches between paragraphs and lines of code.

Zenodo 20646160

License: MIT
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: the text, “Material and methods”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: tidyverse (3 files), car (1 file), ggplot2 (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
  • 27 September 2026: the link answers (HTTP 200)
5 files

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 4 scripts, each with its path and the digest of its content;
  • 7 matches between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

Datasets cited

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, pages, dates, 1 author, 4 keywords, 38 references.

Cite

This paper

Asanbe, B. (2026). Assessing patterns of extinction risk amongst mammal species in Nigeria: A comparative analysis of human impact. Biodiversity data journal, 14, e191439. https://doi.org/10.3897/bdj.14.e191439

BibTeX

@article{asanbe2026assessing,
author = {Asanbe, Bernard},
title = {{Assessing patterns of extinction risk amongst mammal species in Nigeria: A comparative analysis of human impact}},
journal = {Biodiversity data journal},
year = {2026},
month = aug,
volume = {14},
pages = {e191439},
publisher = {Pensoft Publishers},
issn = {1314-2828},
doi = {10.3897/bdj.14.e191439},
url = {https://doi.org/10.3897/bdj.14.e191439},
pmid = {42668897},
pmcid = {PMC13525407}
}

RIS

TY - JOUR
AU - Asanbe, Bernard
TI - Assessing patterns of extinction risk amongst mammal species in Nigeria: A comparative analysis of human impact
T2 - Biodiversity data journal
J2 - Biodivers Data J
PY - 2026
DA - 2026/08/21
VL - 14
SP - e191439
SN - 1314-2828
PB - Pensoft Publishers
DO - 10.3897/bdj.14.e191439
UR - https://doi.org/10.3897/bdj.14.e191439
LA - en
ER -

CSL-JSON

{
"id": "10.3897/bdj.14.e191439",
"type": "article-journal",
"title": "Assessing patterns of extinction risk amongst mammal species in Nigeria: A comparative analysis of human impact",
"container-title": "Biodiversity data journal",
"author": [
{
"family": "Asanbe",
"given": "Bernard"
}
],
"container-title-short": "Biodivers Data J",
"volume": "14",
"page": "e191439",
"DOI": "10.3897/bdj.14.e191439",
"PMID": "42668897",
"PMCID": "PMC13525407",
"ISSN": "1314-2828",
"publisher": "Pensoft Publishers",
"URL": "https://doi.org/10.3897/bdj.14.e191439",
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
21
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1038/s41598-026-53133-y [code]
Evolutionary stasis in synapsid encephalization during the end-permian mass extinction.
Journal: Scientific reports
In common: tidyverse, 2 references
[2] doi:10.1093/braincomms/fcag279 [code]
Network flexibility facilitates treatment-induced recovery in post-stroke aphasia.
Journal: Brain communications
In common: car, ggplot2, tidyverse
[3] doi:10.1093/braincomms/fcag351 [code]
Time-resolved aperiodic dynamics in event segmentation in attention-deficit/hyperactivity disorder.
Journal: Brain communications
In common: car, ggplot2, tidyverse
[4] doi:10.1126/sciadv.aec9291 [code]
Computational mechanisms of perception in autism revealed using games inspired by rodent operant tasks.
Journal: Science advances
In common: car, ggplot2, tidyverse
[5] doi:10.1162/imag.a.1363 [code]
Social approach-avoidance conflict: Behavioural, emotional, and neural correlates along a depression-social anxiety spectrum.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: car, ggplot2, tidyverse
[6] doi:10.1093/braincomms/fcag318 [code]
Antenatal maternal anaemia and infant brain structure: high-field (3 T) and ultra-low-field (64 mT) MRI findings from South Africa.
Journal: Brain communications
In common: car, ggplot2, tidyverse
[7] doi:10.1038/s41467-026-72845-3 [code]
The membrane-to-cortex distance regulates mDia1 activity to control cortical mechanics.
Journal: Nature communications
In common: car, ggplot2, tidyverse
[8] doi:10.1093/ageing/afag263 [code]
Cardiometabolic medication exposures and cognitive outcomes in Alzheimer's disease.
Journal: Age and ageing
In common: car, ggplot2, tidyverse
[9] doi:10.1093/brain/awag039 [code]
Mapping the causal chain from genetic risk variants to lipid dysmetabolism in Parkinson's disease.
Journal: Brain : a journal of neurology
In common: car, ggplot2, tidyverse
[10] doi:10.1186/s40478-026-02415-7 [code]
A standardized framework resolves ambiguity in motor neuron loss across neurodegenerative diseases.
Journal: Acta neuropathologica communications
In common: car, ggplot2, tidyverse

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.