OSCR

Identification and classification of repeated whistle types from free-ranging rough-toothed dolphins (Steno bredanensis).

Code ↔ Paper

2 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 2 matches · all tie a paragraph to a whole file without given lines: weak matches, whose lines are not tinted
  1. [1] § Methods › Automatic classification ↔ ARTwarp_cli_mode.m, the whole file · a weak match · score 0.54 · neural network, Warp factor, MATLAB, dynamic, Interactive, Max · Report a mismatch
  2. [2] § Methods › Automatic classification ↔ ARTwarp_cli_mode.m, the whole file · a weak match · score 0.54 · neural network, Warp factor, MATLAB, dynamic, Interactive, Max · Report a mismatch

Paper

Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

MATLAB · 144 lines · 5.4 KB · LGPL-3.0 · 1 match

  1. function ARTwarp_cli_mode(varargin)
  2. % PARSE INPUT ARGUMENTS
  3. % Instantiate an inputParser object to manage inputs
  4. p = inputParser;
  5. % Add required positional arguments for:
  6. % The path to the folder containing the contours to categorise
  7. addRequired(p, 'inputFolder', @isfolder);
  8. % The warp factor level
  9. validationFcn = @(x) (x > 1) && mod(x,1)==0 && isnumeric(x) && isscalar(x);
  10. addRequired(p, 'warpFactorLevel', validationFcn);
  11. % The vigilance percentage
  12. validationFcn = @(x) (x >= 1) && (x <= 99) && isnumeric(x) && isscalar(x);
  13. addRequired(p, 'vigilance', validationFcn);
  14. % The maximum number of categories / number of contours
  15. validationFcn = @(x) (x >= 1) && mod(x,1)==0 && isnumeric(x) && isscalar(x);
  16. addRequired(p, 'maxNumCategories', validationFcn);
  17. % The maximum number of iterations
  18. validationFcn = @(x) (x >= 1) && mod(x,1)==0 && isnumeric(x) && isscalar(x);
  19. addRequired(p, 'maxNumIterations', validationFcn);
  20. % --- Optional parameters ---
  21. % The bias, default = 0.000001 (optional)
  22. validationFcn = @(x) (x >= 0) && (x <= 1) && isnumeric(x) && isscalar(x);
  23. addParameter(p, 'bias', 1e-6, validationFcn);
  24. % The learning rate, default = 0.1 (optional)
  25. validationFcn = @(x) (x > 0) && (x <= 1) && isnumeric(x) && isscalar(x);
  26. addParameter(p, 'learningRate', 0.1, validationFcn);
  27. % Whether the contours should be resampled before categorisation (1 for yes,)
  28. % 0 for no
  29. % default is 1 for yes to resample
  30. validationFcn = @(x) (x==0 || x==1) && isnumeric(x) && isscalar(x);
  31. addParameter(p, 'resample', 1, validationFcn);
  32. % The resampling interval, default = 0.01s (10ms)
  33. validationFcn = @(x) isnumeric(x) && isscalar(x);
  34. addParameter(p, 'sampleInterval', 0.01, validationFcn);
  35. % Optional argument to update weights according to warped contours, 1 =
  36. % update according to warped, 0 = update normally according to original.
  37. % Default is 0
  38. addParameter(p, 'compareWarped', 0, @(x) (x==0 || x==1) && isnumeric(x) && isscalar(x));
  39. % Optional argument to try to recategorise single-contour category
  40. % contours at the end of each iteration, 1 = try to recategorise, 0 = do
  41. % not try to recategorise. Default is 0
  42. addParameter(p, 'recatSingleCats', 0, @(x) (x==0 || x==1) && isnumeric(x) && isscalar(x));
  43. % Optional output folder name argument, default is empty
  44. addParameter(p, 'outputFolder', "", @(x) isstring(x) || ischar(x) || isempty(x));
  45. % If number of parameters is below expected,
  46. % print usage, example usage, and end the program
  47. if nargin == 0
  48. fprintf("\nYou did not specify input parameters. Now you can enter them interactively:\n")
  49. run('ARTwarp_cli_builder.m')
  50. return
  51. elseif nargin > 0 && nargin < 5
  52. fprintf("\nUsage: ARTwarp_cli_mode('<input_folder_name>', <warp_factor>, <vigilance>, <number_of_contours>, <max_num_of_iterations>)\n");
  53. fprintf("For example: ARTwarp_cli_mode('ctr', 3, 95, 100, 100)\n");
  54. return
  55. end
  56. % Parse and validate the input arguments (folder paths given must be to
  57. % folders, file path given must be to a file)
  58. parse(p, varargin{:});
  59. % Get the values of valid input arguments
  60. % (note inputFolder must be converted to char class for usage in
  61. % ARTwarp_Load_Data.m)
  62. inputFolder = char(p.Results.inputFolder);
  63. warpFactorLevel = p.Results.warpFactorLevel;
  64. vigilance = p.Results.vigilance;
  65. bias = p.Results.bias;
  66. learningRate = p.Results.learningRate;
  67. maxNumCategories = p.Results.maxNumCategories;
  68. maxNumIterations = p.Results.maxNumIterations;
  69. resample = p.Results.resample;
  70. sampleInterval = p.Results.sampleInterval;
  71. compareWarped = p.Results.compareWarped;
  72. recatSingleCats = p.Results.recatSingleCats;
  73. outputFolder = char(p.Results.outputFolder);
  74. % If the input folder does not exist, raise an error
  75. if isempty(inputFolder)
  76. error('No input folder specified');
  77. end
  78. if isempty(outputFolder)
  79. % Name the output folder based on the input folder, vigilance and warp factor
  80. outputFolder = [inputFolder '_' num2str(vigilance) '_' num2str(warpFactorLevel)];
  81. end
  82. if ~exist(outputFolder, 'dir')
  83. % If a folder with this name doesn't exist yet, make a
  84. % new folder with the name specified by outputFolder
  85. mkdir(outputFolder);
  86. end
  87. % PUT NETWORK PARAMETERS INTO A DICTIONARY
  88. params = dictionary("warpFactorLevel", warpFactorLevel, "vigilance",...
  89. vigilance, "bias", bias, "learningRate", learningRate,...
  90. "maxNumCategories", maxNumCategories, "maxNumIterations",...
  91. maxNumIterations, "resample", resample, "sampleInterval",...
  92. sampleInterval, "compareWarped", compareWarped, "recatSingleCats",...
  93. recatSingleCats);
  94. % Print all parameters so user is aware of the input
  95. fprintf('\n--- INPUT PARAMETERS ---\n');
  96. fprintf('\ninputFolder : %s\n', inputFolder);
  97. fprintf('warpFactorLevel : %g\n', warpFactorLevel);
  98. fprintf('vigilance : %g\n', vigilance);
  99. fprintf('maxNumCategories : %d\n', maxNumCategories);
  100. fprintf('maxNumIterations : %d\n', maxNumIterations);
  101. fprintf('bias : %g\n', bias);
  102. fprintf('learningRate : %g\n', learningRate);
  103. fprintf('resample : %g\n', resample);
  104. fprintf('sampleInterval : %g\n', sampleInterval);
  105. fprintf('compareWarped : %d\n', compareWarped);
  106. fprintf('recatSingleCats : %d\n', recatSingleCats);
  107. fprintf('outputFolder : %s\n', outputFolder);
  108. drawnow; % forces MATLAB to flush output immediately
  109. % LOAD DATA FROM SPECIFIED INPUT FOLDER
  110. ARTwarp_Load_Data(true, inputFolder);
  111. % RUN CATEGORISATION (INCLUDING NEURAL NETWORK AND DYNAMIC TIME WARPING)
  112. % AND SAVE TO SPECIFIED OUTPUT FOLDER
  113. ARTwarp_Run_Categorisation(true, params, outputFolder)
  114. end

ARTwarp_cli_mode.m at commit e256a33, under LGPL-3.0 · at the source

Overview

Authors: Laura Redaelli1,2,3, Vincent M Janik4, Filipe Alves1,2, Julie N Oswald4, Marc Fernandez1,2, Eliette Hamard1,2, Laela S Sayigh5, Manuel E dos Santos3, Ana Dinis1,2, Francesco Caruso6
  1. MARE – Marine and Environmental Sciences Centre, ARNET – Aquatic Research Network, Regional Agency for The Development of Research, Technology and Innovation (ARDITI), Funchal, Madeira, Portugal
  2. Faculty of Life Sciences, University of Madeira, Funchal, Portugal
  3. MARE – Marine and Environmental Sciences Centre, ISPA – Instituto Universitário, Lisbon, Portugal
  4. Sea Mammal Research Unit, Scottish Oceans Institute, School of Biology, University of St. Andrews, Fife, UK
  5. Biology Department, Woods Hole Oceanographic Institution, Woods Hole, MA USA
  6. Department of Marine Animal Conservation and Public Engagement, Stazione Zoologica Anton Dohrn, Naples, Italy
Journal: Scientific reports, volume 16, issue 1, article 14327
Dates: received 7 November 2025; accepted 16 March 2026; published online 20 March 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1038/s41598-026-44853-2 · PMID 41862657 · PMCID PMC13144356 · OpenAlex W7138988917
Open access: gold, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Categories: other (organism)
Methods: Spectral & time-frequency, Smoothing, state filtering, decompositions, Preprocessing
Keywords: Acoustic, Communication, Madeira Island, Marine mammal, Delphinid, Neural network, Ecology, Evolution, Neuroscience, Zoology
MeSH: Bottle-Nosed Dolphin*, Dolphins*, Vocalization, Animal*, Acoustics, Animals, Social Behavior, Sound Spectrography, Stereotyped Behavior (* major topic)
Topic: Marine animal studies overview (Ecology, Environmental Science), according to OpenAlex
Funding: Fundação para a Ciência e a Tecnologia (2023.08949.CEECIND/CP2851/CT0001 ((https://doi.org/10.54499/2023.08949.CEECIND/CP2851/CT0001), UI/BD/154079/2022 (https://doi.org/10.54499/UI/BD/154079/2022), UIDB/04292/2020); INTERREG Atlantic Area (EAPA\_0004/2022)
Citations: not cited yet (Europe PMC); 71 references in the paper

Abstract

Acoustic communication is vital for marine mammals. Many delphinids rely on frequency-modulated tonal signals – known as whistles – used during social communication. Among these, individually distinctive “signature whistles” have been extensively studied in bottlenose dolphins (Tursiops truncatus) over the past 60 years. These stereotyped whistles convey individual identity and motivational information. Recent studies have identified similar stereotyped whistles in other delphinids, including a rehabilitated rough-toothed dolphin (Steno bredanensis). However, the function, occurrence, time–frequency characteristics, and degree of stereotypy of whistles in free-ranging individuals of this species remain unexplored. This study analysed acoustic recordings from three encounters with rough-toothed dolphins in summer 2023 off Madeira Island (Eastern North Atlantic). Of 4928 whistles analysed, 1015 were identified as repeated whistles and classified into 25 categories based on frequency modulation contours using visual inspection. Visual classification was verified using an inter-observer reliability test and compared to results from an unsupervised neural network (ARTwarp), employing both sequential and global analyses. The results revealed repeated contour types, with the degree of stereotypy varying across categories and generally lower than that reported for other well-studied delphinid species. Like other delphinids, rough-toothed dolphins exhibit a fission–fusion social structure, where repeated signals may help maintain group cohesion, potentially functioning as individual- or group-level calls. Future research incorporating detailed contextual and behavioral information will be crucial to investigate the function, occurrence and social relevance of repeated calls in rough-toothed dolphin whistle repertoires.

Supplementary Information: The online version contains supplementary material available at 10.1038/s41598-026-44853-2.

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

Repositories

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

Zenodo 7713614

License: LGPL-3.0
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: the references
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 30 September 2026: the link answers (HTTP 200)
  • 30 September 2026: the link answers (HTTP 200)
41 files
At the source:

dolphin-acoustics-vip/artwarp

License: LGPL-3.0
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: e256a3342c7e7d8292ff2c0089675925d559e789, 19 August 2026
Languages: MATLAB (39)
Size: 51 files, 39 scripts
Software Heritage: archived
Found in: the Zenodo archive record
Holds: README, license file, CITATION.cff, continuous integration
Not found: environment file, tests, documentation
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
41 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:

  • 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 78 scripts, each with its path and the digest of its content;
  • 2 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

No dataset and no data link were found in the paper.

Data availability

The datasets generated during the current study are available in the Supplementary Information of this manuscript. The raw acoustic data analysed during this study are available from the corresponding author upon request.

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

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, 30 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 10 authors, 10 keywords, 8 MeSH terms, 2 funders, 59 references.

Cite

This paper

Redaelli, L., Janik, V. M., Alves, F., Oswald, J. N., Fernandez, M., Hamard, E., Sayigh, L. S., dos Santos, M. E., Dinis, A., & Caruso, F. (2026). Identification and classification of repeated whistle types from free-ranging rough-toothed dolphins (Steno bredanensis). Scientific reports, 16(1), 14327. https://doi.org/10.1038/s41598-026-44853-2

BibTeX

@article{redaelli2026identification,
author = {Redaelli, Laura and Janik, Vincent M and Alves, Filipe and Oswald, Julie N and Fernandez, Marc and Hamard, Eliette and Sayigh, Laela S and dos Santos, Manuel E and Dinis, Ana and Caruso, Francesco},
title = {{Identification and classification of repeated whistle types from free-ranging rough-toothed dolphins (Steno bredanensis)}},
journal = {Scientific reports},
year = {2026},
month = mar,
volume = {16},
number = {1},
pages = {14327},
publisher = {Nature Publishing Group},
issn = {2045-2322},
doi = {10.1038/s41598-026-44853-2},
url = {https://doi.org/10.1038/s41598-026-44853-2},
pmid = {41862657},
pmcid = {PMC13144356}
}

RIS

TY - JOUR
AU - Redaelli, Laura
AU - Janik, Vincent M
AU - Alves, Filipe
AU - Oswald, Julie N
AU - Fernandez, Marc
AU - Hamard, Eliette
AU - Sayigh, Laela S
AU - dos Santos, Manuel E
AU - Dinis, Ana
AU - Caruso, Francesco
TI - Identification and classification of repeated whistle types from free-ranging rough-toothed dolphins (Steno bredanensis)
T2 - Scientific reports
J2 - Sci Rep
PY - 2026
DA - 2026/03/20
VL - 16
IS - 1
SP - 14327
SN - 2045-2322
PB - Nature Publishing Group
DO - 10.1038/s41598-026-44853-2
UR - https://doi.org/10.1038/s41598-026-44853-2
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41598-026-44853-2",
"type": "article-journal",
"title": "Identification and classification of repeated whistle types from free-ranging rough-toothed dolphins (Steno bredanensis)",
"container-title": "Scientific reports",
"author": [
{
"family": "Redaelli",
"given": "Laura"
},
{
"family": "Janik",
"given": "Vincent M"
},
{
"family": "Alves",
"given": "Filipe"
},
{
"family": "Oswald",
"given": "Julie N"
},
{
"family": "Fernandez",
"given": "Marc"
},
{
"family": "Hamard",
"given": "Eliette"
},
{
"family": "Sayigh",
"given": "Laela S"
},
{
"family": "dos Santos",
"given": "Manuel E"
},
{
"family": "Dinis",
"given": "Ana"
},
{
"family": "Caruso",
"given": "Francesco"
}
],
"container-title-short": "Sci Rep",
"volume": "16",
"issue": "1",
"page": "14327",
"DOI": "10.1038/s41598-026-44853-2",
"PMID": "41862657",
"PMCID": "PMC13144356",
"ISSN": "2045-2322",
"publisher": "Nature Publishing Group",
"URL": "https://doi.org/10.1038/s41598-026-44853-2",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
20
]
]
}
}

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.1007/s10071-023-01804-y
Inter-group alliance dynamics in Indo-Pacific bottlenose dolphins (Tursiops aduncus).
Journal: Animal cognition
In common: other, 2 references
[2] doi:10.1371/journal.pcbi.1014024 [code]
Social familiarity strengthens neural and vocal responses to conspecific calls in zebra finches.
Journal: PLoS computational biology
In common: other, 1 reference
[3] doi:10.1242/jeb.247452 [code]
Gekko gecko as a model organism for understanding aspects of laryngeal vocal evolution.
Journal: The Journal of experimental biology
In common: other, 1 reference
[4] doi:10.1016/j.cub.2023.06.044 [code]
Wild nightingales flexibly match whistle pitch in real time.
Journal: Current biology : CB
In common: other, 1 reference
[5] doi:10.1371/journal.pone.0323617
Lateralized cerebellar connectivity differentiates auditory pathways in echolocating and non-echolocating whales.
Journal: PloS one
In common: other, 1 reference
[6] doi:10.1242/jeb.251857 [code]
Female olfactory sensitivity is temporally asynchronous with male courtship in a butterfly.
Journal: The Journal of experimental biology
In common: other, 1 reference
[7] doi:10.1038/s42003-024-07185-3 [code]
Vibrational noise disrupts Nezara viridula communication, irrespective of spectral overlap.
Journal: Communications biology
In common: other, 1 reference
[8] doi:10.1038/s41467-024-51887-5 [code]
A framework for the emergence and analysis of language in social learning agents.
Journal: Nature communications
In common: 1 reference
[9] doi:10.3390/life14010048
Evolution of Consciousness.
Journal: Life (Basel, Switzerland)
In common: 1 reference
[10] doi:10.1038/s44271-025-00270-1 [code]
Decoding words during sentence production with ECoG reveals syntactic role encoding and structure-dependent temporal dynamics.
Journal: Communications psychology
In common: 1 reference

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.

Add the badge to the code's README

OSCR: the badge of this paper

If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.

Markdown
<!-- oscr-badge:start -->
[![OSCR](https://openscicode.org/badge/doi/10.1038/s41598-026-44853-2.svg)](https://openscicode.org/badge/doi/10.1038/s41598-026-44853-2)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.1038/s41598-026-44853-2.svg
   :target: https://openscicode.org/badge/doi/10.1038/s41598-026-44853-2
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1038/s41598-026-44853-2"><img src="https://openscicode.org/badge/doi/10.1038/s41598-026-44853-2.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->

On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".

If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge 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: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.

Report a mismatch between the code and the paper · Report a code error (signed in)

Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.

Report a reproduction failure (signed in)

Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.

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