Skip to content

Commit 141ada1

Browse files
author
Max Czapanskiy
committed
Fix references (add pkg versions) and finish revisions
1 parent f9c68ad commit 141ada1

File tree

6 files changed

+221
-49
lines changed

6 files changed

+221
-49
lines changed
5.38 KB
Loading

analysis/paper/paper.Rmd

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ output:
3232
- --lua-filter=../templates/author-info-blocks.lua
3333
- --lua-filter=../templates/pagebreak.lua
3434
bibliography: [zotero.bib,references.bib]
35-
csl: "../templates/the-journal-of-experimental-biology.csl"
35+
csl: "../templates/the-company-of-biologists.csl"
3636
abstract: |
3737
Physio-logging methods, which use animal-borne devices to record physiological variables, are entering a new era driven by advances in sensor development. However, existing datasets collected with traditional bio-loggers, such as accelerometers, still contain untapped eco-physiological information. Here we present a computational method for extracting heartrate from high-resolution accelerometer data using a ballistocardiogram. We validated our method with simultaneous accelerometer-electrocardiogram tag deployments in a controlled setting on a killer whale (*Orcinus orca*) and demonstrate the predictions correspond with previously observed cardiovascular patterns in a blue whale (*Balaenoptera musculus*), including the magnitude of apneic bradycardia and increase in heart rate prior to and during ascent. Our ballistocardiogram method may be applied to mine heart rates from previously collected accelerometery and expand our understanding of comparative cardiovascular physiology.
3838
keywords: |
@@ -72,11 +72,11 @@ Here we present a method for generating a BCG from bio-logger cranio-caudal acce
7272

7373
**Killer whale**
7474

75-
A 3868 kg adult female killer whale in managed care at SeaWorld of California, San Diego, CA was double-tagged with an archival Customized Animal Tracking Solutions IMU (CATS, www.cats.is) tag and a custom-built, archival ECG tag on August 16, 2021 as part of clinical animal cardiac evaluations under the SeaWorld USDA APHIS display permit. The ECG tag hardware and data processing procedures were previously described by @bickettHeartRatesHeart2019. Both tags were deployed by hand and attached with suction cups. We attached the CATS tag on the mid-lateral left chest posterior to the pectoral fin (Movie S1). The CATS tag recorded acceleration at 400 Hz, magnetometer and gyroscope at 50 Hz, pressure at 10 Hz, and video at 30 fps (*TODO: get tag 97 accelerometer accuracy/precision from Will G)*. All sensors were rotated from the tag's frame of reference to that of the whale using MATLAB (MathWorks, Inc., v2020b) tools for processing CATS data [@cadeToolsIntegratingInertial2021]. This rotation aligned the tag's x-, y-, and z- axes with the cranio-caudal, lateral, and dorso-ventral axes of the whale, respectively. We attached the ECG tag approximately midline on the ventral chest just caudal (posterior) to the axilla and we recorded the ECG at 100 Hz. Individual heart beats in the ECG record were identified from visually verified R-waves using a customized peak detection program (K. Ponganis; Origin 2017, OriginLab Co., Northampton, MA). ECG and IMU were recorded during a spontaneous breath hold while the whale rested at the surface.
75+
A 3868 kg adult female killer whale in managed care at SeaWorld of California, San Diego, CA was double-tagged with an archival Customized Animal Tracking Solutions IMU (CATS, www.cats.is) tag and a custom-built, archival ECG tag on August 16, 2021 as part of clinical animal cardiac evaluations under the SeaWorld USDA APHIS display permit. The ECG tag hardware and data processing procedures were previously described by @bickettHeartRatesHeart2019. Both tags were deployed by hand and attached with suction cups. We attached the CATS tag on the mid-lateral left chest posterior to the pectoral fin (Movie S1). The CATS tag recorded tri-axial acceleration at 400 Hz, tri-axial magnetometer and tri-axial gyroscope at 50 Hz, pressure at 10 Hz, and video at 30 fps. The IMU in the CATS tag was a MPU-9250 (InvenSense, San Jose, CA; www.invensense.com). The accelerometer had dynamic range of ±4 g, sensitivity of 8,192 LSB g^-1^, and accuracy of 6.1 × 10^-6^ g. All sensors were rotated from the tag's frame of reference to that of the whale using MATLAB (MathWorks, Inc., v2020b) tools for processing CATS data [@cadeToolsIntegratingInertial2021]. This rotation aligned the tag's x-, y-, and z- axes with the cranio-caudal, lateral, and dorso-ventral axes of the whale, respectively. We attached the ECG tag approximately midline on the ventral chest just caudal (posterior) to the axilla and we recorded the ECG at 100 Hz. Individual heart beats in the ECG record were identified from visually verified R-waves using a customized peak detection program (K. Ponganis; Origin 2017, OriginLab Co., Northampton, MA). ECG and IMU were recorded during a spontaneous breath hold while the whale rested at the surface.
7676

7777
**Blue whale**
7878

79-
A 24.5 m blue whale was tagged with an archival, suction-cup CATS IMU tag on September 5, 2018 in Monterey Bay, CA under permits MBNMS-MULTI-2017-007, NMFS 21678, and Stanford University IACUC 30123 [previously published by @goughScalingSwimmingPerformance2019]. We deployed the tag using a 4 m fiberglass pole from a 6.3 m rigid-hulled inflatable boat [as described by @goldbogen2006] The tag slid behind the left pectoral flipper, similar to the placement of the CATS tag on the killer whale. Tag configuration and data processing followed the same procedure as the killer whale, including sampling rates for inertial sensors and video. The 400 Hz acceleration data was used for ballistocardiography (see section **Signal processing**). We downsampled the multi-sensor data to 10 Hz for movement analysis using the MATLAB CATS tools [@cadeToolsIntegratingInertial2021].
79+
A 24.5 m blue whale was tagged with an archival, suction-cup CATS IMU tag on September 5, 2018 in Monterey Bay, CA under permits MBNMS-MULTI-2017-007, NMFS 21678, and Stanford University IACUC 30123 [previously published by @goughScalingSwimmingPerformance2019]. We deployed the tag using a 4 m fiberglass pole from a 6.3 m rigid-hulled inflatable boat [as described by @goldbogen2006] The tag slid behind the left pectoral flipper, similar to the placement of the CATS tag on the killer whale. Tag configuration and data processing followed the same procedure as the killer whale, including accelerometer specification and sampling rates for inertial sensors and video. The 400 Hz acceleration data was used for ballistocardiography (see section **Signal processing**). We downsampled the multi-sensor data to 10 Hz for movement analysis using the MATLAB CATS tools [@cadeToolsIntegratingInertial2021].
8080

8181
## Signal processing
8282

@@ -291,7 +291,7 @@ Here we presented a ballistocardiogram method for detecting resting apneic heart
291291

292292
# Acknowledgements
293293

294-
The authors are grateful to the SeaWorld of California Killer Whale training staff for their efforts and support. We also thank Anna Krystalli, Ben Marwick, Karthik Ram, Nicholas Tierney, and other members of the R community for developing tools and educational resources to facilitate open science practices. This is a SeaWorld Parks and Entertainment Technical Contribution number 2021-12.
294+
The authors are grateful to the SeaWorld of California Killer Whale training staff for their efforts and support. We also thank Anna Krystalli, Ben Marwick, Karthik Ram, Nicholas Tierney, and other members of the R community for developing tools and educational resources to facilitate open science practices. This is a SeaWorld Parks and Entertainment Technical Contribution number 2021-12. We thank Lucy Hawkes and two anonymous reviewers for comments on the manuscript.
295295

296296
# Footnotes
297297

@@ -657,7 +657,7 @@ pB <- ggplot(bpm_data, aes(dive_norm, bcg_bpm)) +
657657
pC <- ggplot(ecg_bpm, aes(ecg_bpm, bcg_bpm)) +
658658
geom_abline(slope = 1, intercept = 0, size = 1, linetype = "dashed") +
659659
geom_smooth(method = "lm", se = FALSE, size = 1) +
660-
geom_point(size = 0.5) +
660+
geom_point(shape = 21) +
661661
scale_x_continuous("ECG (bpm)", breaks = seq(55, 70, by = 5)) +
662662
scale_y_continuous("BCG (bpm)", breaks = seq(55, 70, by = 5)) +
663663
coord_fixed() +

analysis/paper/paper.docx

5.93 KB
Binary file not shown.

analysis/paper/references.bib

Lines changed: 49 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,139 +9,158 @@ @software{cetaceanbcgzenodo
99
url = {https://doi.org/10.5281/zenodo.5753233}
1010
}
1111

12-
@Manual{R-bookdown,
12+
@software{R-bookdown,
1313
title = {bookdown: Authoring Books and Technical Documents with R Markdown},
1414
author = {Yihui Xie},
1515
year = {2021},
1616
note = {R package version 0.22},
1717
url = {https://CRAN.R-project.org/package=bookdown},
18+
source = {R package},
1819
}
1920

20-
@Manual{R-cowplot,
21+
@software{R-cowplot,
2122
title = {cowplot: Streamlined Plot Theme and Plot Annotations for ggplot2},
2223
author = {Claus O. Wilke},
2324
year = {2020},
2425
note = {R package version 1.1.1},
2526
url = {https://wilkelab.org/cowplot/},
27+
source = {R package},
2628
}
2729

28-
@Manual{R-dplyr,
30+
@software{R-dplyr,
2931
title = {dplyr: A Grammar of Data Manipulation},
3032
author = {Hadley Wickham and Romain François and Lionel Henry and Kirill Müller},
3133
year = {2021},
3234
note = {R package version 1.0.7},
3335
url = {https://CRAN.R-project.org/package=dplyr},
36+
source = {R package},
3437
}
3538

36-
@Manual{R-ggdist,
39+
@software{R-ggdist,
3740
title = {ggdist: Visualizations of Distributions and Uncertainty},
3841
author = {Matthew Kay},
3942
year = {2021},
4043
note = {R package version 3.0.0},
4144
url = {https://CRAN.R-project.org/package=ggdist},
45+
source = {R package},
4246
}
4347

44-
@Manual{R-ggforce,
48+
@software{R-ggforce,
4549
title = {ggforce: Accelerating ggplot2},
4650
author = {Thomas Lin Pedersen},
4751
year = {2021},
4852
note = {R package version 0.3.3},
4953
url = {https://CRAN.R-project.org/package=ggforce},
54+
source = {R package},
5055
}
5156

52-
@Manual{R-gghalves,
57+
@software{R-gghalves,
5358
title = {gghalves: Compose Half-Half Plots Using Your Favourite Geoms},
5459
author = {Frederik Tiedemann},
5560
year = {2020},
5661
note = {R package version 0.1.1},
5762
url = {https://github.com/erocoar/gghalves},
63+
source = {R package},
5864
}
5965

60-
@Manual{R-ggplot2,
66+
@software{R-ggplot2,
6167
title = {ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics},
6268
author = {Hadley Wickham and Winston Chang and Lionel Henry and Thomas Lin Pedersen and Kohske Takahashi and Claus Wilke and Kara Woo and Hiroaki Yutani and Dewey Dunnington},
6369
year = {2021},
6470
note = {R package version 3.3.5},
6571
url = {https://CRAN.R-project.org/package=ggplot2},
72+
source = {R package},
6673
}
6774

68-
@Manual{R-here,
75+
@software{R-here,
6976
title = {here: A Simpler Way to Find Your Files},
7077
author = {Kirill Müller},
7178
year = {2020},
7279
note = {R package version 1.0.1},
7380
url = {https://CRAN.R-project.org/package=here},
81+
source = {R package},
7482
}
7583

76-
@Manual{R-lubridate,
84+
@software{R-lubridate,
7785
title = {lubridate: Make Dealing with Dates a Little Easier},
7886
author = {Vitalie Spinu and Garrett Grolemund and Hadley Wickham},
7987
year = {2021},
8088
note = {R package version 1.7.10},
8189
url = {https://CRAN.R-project.org/package=lubridate},
90+
source = {R package},
8291
}
8392

84-
@Manual{R-magrittr,
93+
@software{R-magrittr,
8594
title = {magrittr: A Forward-Pipe Operator for R},
8695
author = {Stefan Milton Bache and Hadley Wickham},
8796
year = {2020},
8897
note = {R package version 2.0.1},
8998
url = {https://CRAN.R-project.org/package=magrittr},
99+
source = {R package},
90100
}
91101

92-
@Manual{R-pracma,
102+
@software{R-pracma,
93103
title = {pracma: Practical Numerical Math Functions},
94104
author = {Hans W. Borchers},
95105
year = {2021},
96106
note = {R package version 2.3.3},
97107
url = {https://CRAN.R-project.org/package=pracma},
108+
source = {R package},
98109
}
99110

100-
@Manual{R-psd,
111+
@software{R-psd,
101112
title = {psd: Adaptive, Sine-Multitaper Power Spectral Density and Cross
102113
Spectrum Estimation},
103114
author = {Andrew J. Barbour and Jonathan Kennel and Robert L. Parker},
104115
year = {2020},
105116
note = {R package version 2.1.0},
106117
url = {https://CRAN.R-project.org/package=psd},
118+
source = {R package},
107119
}
108120

109-
@Manual{R-R.matlab,
121+
@software{R-R.matlab,
110122
title = {R.matlab: Read and Write MAT Files and Call MATLAB from Within R},
111123
author = {Henrik Bengtsson},
112124
year = {2018},
113125
note = {R package version 3.6.2},
114126
url = {https://github.com/HenrikBengtsson/R.matlab},
127+
source = {R package},
115128
}
116129

117-
@Manual{R-RcppRoll,
130+
@software{R-RcppRoll,
118131
title = {RcppRoll: Efficient Rolling / Windowed Operations},
119132
author = {Kevin Ushey},
120133
year = {2018},
121134
note = {R package version 0.3.0},
122135
url = {https://CRAN.R-project.org/package=RcppRoll},
136+
source = {R package},
123137
}
124138

125-
@Manual{R-readxl,
139+
@software{R-readxl,
126140
title = {readxl: Read Excel Files},
127141
author = {Hadley Wickham and Jennifer Bryan},
128142
year = {2019},
129143
note = {R package version 1.3.1},
130144
url = {https://CRAN.R-project.org/package=readxl},
145+
source = {R package},
131146
}
132147

133-
@Manual{R-RobustLinearReg,
134-
title = {RobustLinearReg: Robust Linear Regressions. R package version 1.2.0.},
148+
@software{R-RobustLinearReg,
149+
title = {RobustLinearReg: Robust Linear Regressions},
135150
author = {Santiago I. Hurtado},
136151
year = {2020},
152+
note = {R package version 1.2.0.},
137153
url = {https://CRAN.R-project.org/package=RobustLinearReg},
154+
source = {R package},
138155
}
139156

140-
@Manual{R-signal,
141-
title = {signal: Signal Processing. R package version 0.7-7},
157+
@software{R-signal,
158+
title = {signal: Signal Processing},
142159
author = {Uwe Ligges and Tom Short and Paul Kienzle},
143160
year = {2021},
161+
note = {R package version 0.7-7},
144162
url = {https://CRAN.R-project.org/package=signal},
163+
source = {R package},
145164
}
146165

147166
@Book{bookdown2016,
@@ -152,6 +171,7 @@ @Book{bookdown2016
152171
year = {2016},
153172
note = {ISBN 978-1138700109},
154173
url = {https://bookdown.org/yihui/bookdown},
174+
source = {R package},
155175
}
156176

157177
@Book{ggplot22016,
@@ -161,6 +181,7 @@ @Book{ggplot22016
161181
year = {2016},
162182
isbn = {978-3-319-24277-4},
163183
url = {https://ggplot2.tidyverse.org},
184+
source = {R package},
164185
}
165186

166187
@Article{lubridate2011,
@@ -172,6 +193,7 @@ @Article{lubridate2011
172193
number = {3},
173194
pages = {1--25},
174195
url = {https://www.jstatsoft.org/v40/i03/},
196+
source = {R package},
175197
}
176198

177199
@Article{Barbour2014,
@@ -183,20 +205,15 @@ @Article{Barbour2014
183205
pages = {1-8},
184206
year = {2014},
185207
doi = {10.1016/j.cageo.2013.09.015},
208+
source = {R package},
186209
}
187210

188-
@Manual{signal2014,
189-
title = {{signal}: Signal processing},
190-
author = {{signal developers}},
191-
year = {2014},
192-
url = {http://r-forge.r-project.org/projects/signal/},
211+
@software{rrtools2019,
212+
title = {rrtools: Creates a Reproducible Research Compendium},
213+
author = {Ben Marwick},
214+
year = {2019},
215+
note = {R package version 0.1.5},
216+
url = {https://github.com/benmarwick/rrtools},
217+
source = {R package},
193218
}
194219

195-
@Manual{rrtools2019,
196-
title = {rrtools: Creates a Reproducible Research Compendium},
197-
author = {Ben Marwick},
198-
year = {2019},
199-
note = {R package version 0.1.5},
200-
url = {https://github.com/benmarwick/rrtools},
201-
}
202-

analysis/paper/zotero.bib

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ @article{bickettHeartRatesHeart2019
505505
}
506506

507507
@article{ponganisHeartRateElectrocardiogram1999,
508-
title = {Heart {Rate} and {Electrocardiogram} {Characteristics} of a {Young} {California} {Gray} {Whale} (\textit{Eschrichtius robustus})},
508+
title = {Heart {Rate} and {Electrocardiogram} {Characteristics} of a {Young} {California} {Gray} {Whale} (\textit{{Eschrichtius} {robustus}})},
509509
volume = {15},
510510
issn = {1748-7692},
511511
url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1748-7692.1999.tb00885.x},
@@ -559,6 +559,7 @@ @article{williams2021
559559
month = {06},
560560
date = {2021-06-30},
561561
journal = {Comprehensive Physiology},
562+
volume = {11},
562563
pages = {1979--2015},
563564
doi = {10.1002/cphy.c200005},
564565
url = {http://dx.doi.org/10.1002/cphy.c200005}
@@ -692,15 +693,15 @@ @article{noren2012
692693
langid = {en}
693694
}
694695

695-
@article{moukadem2018,
696-
title = {Time-Frequency Domain for BCG Analysis},
697-
author = {{Moukadem}, {Ali} and {Finnaoui}, {Azzeddine} and {Gassara}, {Houssem E.} and {Adolphe}, {Dominique} and {Schacher}, {Laurence} and {Dieterlen}, {Alain}},
698-
year = {2018},
699-
month = {08},
700-
date = {2018-08},
701-
journal = {2018 International Conference on Computer and Applications (ICCA)},
702-
doi = {10.1109/comapp.2018.8460408},
703-
url = {http://dx.doi.org/10.1109/COMAPP.2018.8460408}
696+
@INPROCEEDINGS{moukadem2018,
697+
author={Moukadem, Ali and Finnaoui, Azzeddine and Gassara, Houssem E. and Adolphe, Dominique and Schacher, Laurence and Dieterlen, Alain},
698+
booktitle={2018 International Conference on Computer and Applications (ICCA)},
699+
title={Time-Frequency Domain for BCG Analysis},
700+
year={2018},
701+
volume={},
702+
number={},
703+
pages={226-230},
704+
doi={10.1109/COMAPP.2018.8460408}
704705
}
705706

706707
@article{nassar2018,
@@ -711,7 +712,8 @@ @article{nassar2018
711712
date = {2018-05-03},
712713
journal = {npj Flexible Electronics},
713714
volume = {2},
714-
number = {1},
715+
number = {13},
716+
pages = {1970051},
715717
doi = {10.1038/s41528-018-0025-1},
716718
url = {http://dx.doi.org/10.1038/s41528-018-0025-1},
717719
langid = {en}
@@ -733,14 +735,15 @@ @article{andrews2008
733735
}
734736

735737
@article{southall2019,
736-
title = {Behavioral responses of individual blue whales (Balaenoptera musculus) to mid-frequency military sonar},
738+
title = {Behavioral responses of individual blue whales (\textit{{Balaenoptera} {musculus}}) to mid-frequency military sonar},
737739
author = {{Southall}, {Brandon L.} and {DeRuiter}, {Stacy L.} and {Friedlaender}, {Ari} and {Stimpert}, {Alison K.} and {Goldbogen}, {Jeremy A.} and {Hazen}, {Elliott} and {Casey}, {Caroline} and {Fregosi}, {Selene} and {Cade}, {David E.} and {Allen}, {Ann N.} and {Harris}, {Catriona M.} and {Schorr}, {Greg} and {Moretti}, {David} and {Guan}, {Shane} and {Calambokidis}, {John}},
738740
year = {2019},
739741
month = {03},
740742
date = {2019-03-01},
741743
journal = {Journal of Experimental Biology},
742744
volume = {222},
743745
number = {5},
746+
pages = {jeb190637},
744747
doi = {10.1242/jeb.190637},
745748
url = {http://dx.doi.org/10.1242/jeb.190637},
746749
langid = {en}

0 commit comments

Comments
 (0)