diff --git a/joss.05268/10.21105.joss.05268.crossref.xml b/joss.05268/10.21105.joss.05268.crossref.xml new file mode 100644 index 0000000000..58d1d64a0d --- /dev/null +++ b/joss.05268/10.21105.joss.05268.crossref.xml @@ -0,0 +1,280 @@ + + + + 20231108T122659-ac32d6f351e66edad19878f18daae2709b2762a2 + 20231108122659 + + JOSS Admin + admin@theoj.org + + The Open Journal + + + + + Journal of Open Source Software + JOSS + 2475-9066 + + 10.21105/joss + https://joss.theoj.org + + + + + 11 + 2023 + + + 8 + + 91 + + + + spiketools: a Python package for analyzing single-unit +neural activity + + + + Thomas + Donoghue + https://orcid.org/0000-0001-5911-0472 + + + Sandra + Maesta-Pereira + https://orcid.org/0000-0001-6522-8311 + + + Claire Zhixian + Han + https://orcid.org/0000-0001-9710-8381 + + + Salman Ehtesham + Qasim + https://orcid.org/0000-0001-8739-5962 + + + Joshua + Jacobs + https://orcid.org/0000-0003-1807-6882 + + + + 11 + 08 + 2023 + + + 5268 + + + 10.21105/joss.05268 + + + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + http://creativecommons.org/licenses/by/4.0/ + + + + Software archive + 10.5281/zenodo.10076024 + + + GitHub review issue + https://github.com/openjournals/joss-reviews/issues/5268 + + + + 10.21105/joss.05268 + https://joss.theoj.org/papers/10.21105/joss.05268 + + + https://joss.theoj.org/papers/10.21105/joss.05268.pdf + + + + + + The origin of extracellular fields and +currents - EEG, ECoG, LFP and spikes + Buzsáki + Nature Reviews Neuroscience + 6 + 13 + 10.1038/nrn3241 + 1471-003X + 2012 + Buzsáki, G., Anastassiou, C. A., +& Koch, C. (2012). The origin of extracellular fields and currents - +EEG, ECoG, LFP and spikes. Nature Reviews Neuroscience, 13(6), 407–420. +https://doi.org/10.1038/nrn3241 + + + SpikeInterface, a unified framework for spike +sorting + Buccino + eLife + 9 + 10.7554/eLife.61834 + 2050-084X + 2020 + Buccino, A. P., Hurwitz, C. L., +Garcia, S., Magland, J., Siegle, J. H., Hurwitz, R., & Hennig, M. H. +(2020). SpikeInterface, a unified framework for spike sorting. eLife, 9, +e61834. https://doi.org/10.7554/eLife.61834 + + + NeuroDSP: A package for neural digital signal +processing + Cole + Journal of Open Source +Software + 36 + 4 + 10.21105/joss.01272 + 2475-9066 + 2019 + Cole, S. R., Donoghue, T., Gao, R., +& Voytek, B. (2019). NeuroDSP: A package for neural digital signal +processing. Journal of Open Source Software, 4(36), 1272. +https://doi.org/10.21105/joss.01272 + + + Single neurons in the human medial temporal +lobe flexibly shift representations across spatial and memory +tasks + Donoghue + Hippocampus + 5 + 33 + 10.1002/hipo.23539 + 1050-9631 + 2023 + Donoghue, T., Cao, R., Han, C. Z., +Holman, C. M., Brandmeir, N. J., Wang, S., & Jacobs, J. (2023). +Single neurons in the human medial temporal lobe flexibly shift +representations across spatial and memory tasks. Hippocampus, 33(5), +600–615. https://doi.org/10.1002/hipo.23539 + + + Array programming with NumPy + Harris + Nature + 7825 + 585 + 10.1038/s41586-020-2649-2 + 0028-0836 + 2020 + Harris, C. R., Millman, K. J., Walt, +S. J. van der, Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., +Taylor, J., Berg, S., Smith, N. J., Kern, R., Picus, M., Hoyer, S., +Kerkwijk, M. H. van, Brett, M., Haldane, A., Río, J. F. del, Wiebe, M., +Peterson, P., … Oliphant, T. E. (2020). Array programming with NumPy. +Nature, 585(7825), 357–362. +https://doi.org/10.1038/s41586-020-2649-2 + + + Matplotlib: A 2D Graphics +Environment + Hunter + Computing in Science & +Engineering + 3 + 9 + 10.1109/MCSE.2007.55 + 1521-9615 + 2007 + Hunter, J. D. (2007). Matplotlib: A +2D Graphics Environment. Computing in Science & Engineering, 9(3), +90–95. https://doi.org/10.1109/MCSE.2007.55 + + + Data Structures for Statistical Computing in +Python + McKinney + Proceedings of the 9th Python in Science +Conference + 10.25080/Majora-92bf1922-00a + 2010 + McKinney, W. (2010). Data Structures +for Statistical Computing in Python. Proceedings of the 9th Python in +Science Conference. +https://doi.org/10.25080/Majora-92bf1922-00a + + + Neo: An object model for handling +electrophysiology data in multiple formats + Garcia + Frontiers in Neuroinformatics + 8 + 10.3389/fninf.2014.00010 + 1662-5196 + 2014 + Garcia, S., Guarino, D., Jaillet, F., +Jennings, T., Pröpper, R., Rautenberg, P. L., Rodgers, C. C., Sobolev, +A., Wachtler, T., Yger, P., & Davison, A. P. (2014). Neo: An object +model for handling electrophysiology data in multiple formats. Frontiers +in Neuroinformatics, 8. +https://doi.org/10.3389/fninf.2014.00010 + + + Past, present and future of spike sorting +techniques + Rey + Brain Research Bulletin + 119 + 10.1016/j.brainresbull.2015.04.007 + 2015 + Rey, H. G., Pedreira, C., & Quian +Quiroga, R. (2015). Past, present and future of spike sorting +techniques. Brain Research Bulletin, 119, 106–117. +https://doi.org/10.1016/j.brainresbull.2015.04.007 + + + Statsmodels: Econometric and Statistical +Modeling with Python + Seabold + 10.25080/Majora-92bf1922-011 + 2010 + Seabold, S., & Perktold, J. +(2010). Statsmodels: Econometric and Statistical Modeling with Python. +92–96. +https://doi.org/10.25080/Majora-92bf1922-011 + + + SciPy 1.0: Fundamental algorithms for +scientific computing in Python + Virtanen + Nature Methods + 3 + 17 + 10.1038/s41592-019-0686-2 + 1548-7091 + 2020 + Virtanen, P., Gommers, R., Oliphant, +T. E., Haberland, M., Reddy, T., Cournapeau, D., Burovski, E., Peterson, +P., Weckesser, W., Bright, J., Walt, S. J. van der, Brett, M., Wilson, +J., Millman, K. J., Mayorov, N., Nelson, A. R. J., Jones, E., Kern, R., +Larson, E., … Contributors, S. 1.0. (2020). SciPy 1.0: Fundamental +algorithms for scientific computing in Python. Nature Methods, 17(3), +261–272. +https://doi.org/10.1038/s41592-019-0686-2 + + + + + + diff --git a/joss.05268/10.21105.joss.05268.jats b/joss.05268/10.21105.joss.05268.jats new file mode 100644 index 0000000000..38cc296fce --- /dev/null +++ b/joss.05268/10.21105.joss.05268.jats @@ -0,0 +1,538 @@ + + +
+ + + + +Journal of Open Source Software +JOSS + +2475-9066 + +Open Journals + + + +5268 +10.21105/joss.05268 + +spiketools: a Python package for analyzing single-unit +neural activity + + + +https://orcid.org/0000-0001-5911-0472 + +Donoghue +Thomas + + + + +https://orcid.org/0000-0001-6522-8311 + +Maesta-Pereira +Sandra + + + + +https://orcid.org/0000-0001-9710-8381 + +Han +Claire Zhixian + + + + +https://orcid.org/0000-0001-8739-5962 + +Qasim +Salman Ehtesham + + + + +https://orcid.org/0000-0003-1807-6882 + +Jacobs +Joshua + + + + + + +Department of Biomedical Engineering, Columbia +University + + + + +Department of Psychiatry. Icahn School of Medicine at Mount +Sinai + + + + +Department of Neurological Surgery, Columbia +University + + + +8 +91 +5268 + +Authors of papers retain copyright and release the +work under a Creative Commons Attribution 4.0 International License (CC +BY 4.0) +2022 +The article authors + +Authors of papers retain copyright and release the work under +a Creative Commons Attribution 4.0 International License (CC BY +4.0) + + + +Python +neuroscience +electrophysiology +single unit activity + + + + + + Summary +

A common method of collecting and analyzing neural activity is to + implant electrodes that record the electrical activity of the brain, + from which action potentials of individual neurons can be recorded + (Buzsáki + et al., 2012). After pre-processing to detect spike waveforms + and cluster them into groups representing putative single neurons + (Rey + et al., 2015), this data can be used to investigate how neurons + in the brain encode and process information. Analyzing single-unit + activity requires dedicated analysis approaches, including + representing spiking activity as spike times and/or binary spike + trains, and analysis tools that allow for associating this activity to + features of interest, for example the position of the subject in space + or the properties of presented visual stimuli. To assist in this + process, spiketools is a package designed to be + used by neuroscientists for analyzing spiking activity.

+

spiketools is written in the Python + programming language, built on existing tools in the scientific Python + ecosystem, and developed using best-practice procedures. The module is + accompanied by a + documentation + site that includes detailed + tutorials + for each of the modules, which are described below, as well as + suggested workflows for combining them.

+

Modules in spiketools include:

+ + +

measures : measures and conversions that can be applied to + spiking data

+
+ +

objects : objects that can be used for managing spiking + data

+
+ +

spatial : space related functionality and measures

+
+ +

stats : statistical measures for analyzing spiking data

+
+ +

sim : simulations of spiking activity and related + functionality

+
+ +

plts : plotting functions for visualizing spiking data and + related measures

+
+ +

utils : additional utilities for working with spiking data

+
+
+

spiketools has the following required + dependencies:

+ + +

numpy : used for managing and computing with arrays + (Harris + et al., 2020)

+
+ +

scipy : used for some existing algorithms + (Virtanen + et al., 2020)

+
+ +

pandas : used for managing heterogeneous data + (McKinney, + 2010)

+
+ +

matplotlib : used for plotting + (Hunter, + 2007)

+
+
+

spiketools also has some optional + dependencies that offer extra functionality:

+ + +

statsmodels : used for additional statistical measures + (Seabold + & Perktold, 2010)

+
+
+
+ + Statement of Need +

spiketools is an open-source Python package + for analyzing spiking neural data. Spiking neural activity is an + idiosyncratic data stream with specific properties that requires + specialized analysis tools including dedicated algorithms and + statistical tools. Despite the popularity of this kind of data, there + is currently a lack of openly available and maintained tools for this + kind of data, especially within the Python ecosystem. + spiketools therefore fills a niche, leveraging + the power of the scientific Python ecosystem, while providing + dedicated implementations for the specific requirements of spiking + data.

+

Benefits of spiketools include that it + follows modular organization, includes a test suite, follows a release + cycle with versioned updates, and includes documentation and + tutorials. spiketools is designed with a + lightweight architecture in which functions take in arrays of spike + times or spike trains, thus offering a flexible toolbox for custom + analyses of spiking data. This approach also makes the tool flexible + such that it can be integrated into existing codebases and workflows + that use other tools. As part of the open-source Python ecosystem, + spiketools also allows for sharing open-code that others can see and + re-use. For example, spiketools has been + demonstrated in an empirical project analyzing single-unit activity + collected from human neuro-surgical patients, with openly available + code showing all the analyses + (Donoghue + et al., 2023).

+

spiketools also offers a module for + simulations, offering several methods for simulating spiking activity + with specified parameters. Note that these simulations are designed to + mimic the statistics of single unit spiking activity, but are not + designed to replicate or reflect biophysical properties of neurons, + and therefore should not be over-interpreted as biophysically + realistic. Nevertheless, this simulation system allows for method + testing, as new methods and implementations can be tested against + synthetic data for which ground truth parameters are known.

+
+ + Related Projects +

spiketools complements related tools that + support other functionality in the ecosystem, including + neo + (Garcia + et al., 2014), which supports loading and working with + electrophysiological data, and spike interface + (Buccino + et al., 2020), which implements and supports spike-sorting + related functionality. spiketools is designed + with a lightweight architecture - whereby it manages data in common + data types such as numpy arrays, without requiring any specific or + idiosyncratic data formats. As such, this allows for integration with + other related tools, for example, it could be used in combination with + NeuroDSP + (Cole + et al., 2019), which provides functionality for analyzing + neural time series, in order to examine relationships between spiking + activity and the local field potential.

+
+ + Conclusion +

The spiketools Python package offers + functionality for analyzing single-unit activity that can be collected + from human subjects and/or animal models, contributing to the + ecosystem of scientific tools for analyzing neuroscience data.

+
+ + Acknowledgments +

We would like to thank the Jacobs Lab for useful discussions + throughout the development of this toolbox. This work was supported by + National Institute of Health (NIH) grants U01-NS121472 and + 2R01-MH104606, as well as funding from the National Science Foundation + (NSF).

+
+ + + + + + + BuzsákiGyörgy + AnastassiouCostas A. + KochChristof + + The origin of extracellular fields and currents - EEG, ECoG, LFP and spikes + Nature Reviews Neuroscience + 2012 + 13 + 6 + 1471-003X + http://www.nature.com/doifinder/10.1038/nrn3241 + 10.1038/nrn3241 + 407 + 420 + + + + + + BuccinoAlessio P + HurwitzCole L + GarciaSamuel + MaglandJeremy + SiegleJoshua H + HurwitzRoger + HennigMatthias H + + SpikeInterface, a unified framework for spike sorting + eLife + 2020 + 9 + 2050-084X + https://elifesciences.org/articles/61834 + 10.7554/eLife.61834 + e61834 + + + + + + + ColeScott R. + DonoghueThomas + GaoRichard + VoytekBradley + + NeuroDSP: A package for neural digital signal processing + Journal of Open Source Software + 2019 + 4 + 36 + 2475-9066 + http://joss.theoj.org/papers/10.21105/joss.01272 + 10.21105/joss.01272 + 1272 + + + + + + + DonoghueThomas + CaoRunnan + HanClaire Z. + HolmanCameron Monteith + BrandmeirNicholas J. + WangShuo + JacobsJoshua + + Single neurons in the human medial temporal lobe flexibly shift representations across spatial and memory tasks + Hippocampus + 2023 + 33 + 5 + 1050-9631 + https://onlinelibrary.wiley.com/doi/10.1002/hipo.23539 + 10.1002/hipo.23539 + 600 + 615 + + + + + + HarrisCharles R. + MillmanK. Jarrod + WaltStéfan J. van der + GommersRalf + VirtanenPauli + CournapeauDavid + WieserEric + TaylorJulian + BergSebastian + SmithNathaniel J. + KernRobert + PicusMatti + HoyerStephan + KerkwijkMarten H. van + BrettMatthew + HaldaneAllan + RíoJaime Fernández del + WiebeMark + PetersonPearu + Gérard-MarchantPierre + SheppardKevin + ReddyTyler + WeckesserWarren + AbbasiHameer + GohlkeChristoph + OliphantTravis E. + + Array programming with NumPy + Nature + 2020 + 585 + 7825 + 0028-0836 + https://www.nature.com/articles/s41586-020-2649-2 + 10.1038/s41586-020-2649-2 + 357 + 362 + + + + + + HunterJohn D. + + Matplotlib: A 2D Graphics Environment + Computing in Science & Engineering + 2007 + 9 + 3 + 1521-9615 + http://ieeexplore.ieee.org/document/4160265/ + 10.1109/MCSE.2007.55 + 90 + 95 + + + + + + McKinneyWes + + Data Structures for Statistical Computing in Python + Proceedings of the 9th Python in Science Conference + 2010 + 10.25080/Majora-92bf1922-00a + + + + + + GarciaSamuel + GuarinoDomenico + JailletFlorent + JenningsTodd + PröpperRobert + RautenbergPhilipp L. + RodgersChris C. + SobolevAndrey + WachtlerThomas + YgerPierre + DavisonAndrew P. + + Neo: An object model for handling electrophysiology data in multiple formats + Frontiers in Neuroinformatics + 2014 + 8 + 1662-5196 + http://journal.frontiersin.org/article/10.3389/fninf.2014.00010/abstract + 10.3389/fninf.2014.00010 + + + + + + ReyHernan Gonzalo + PedreiraCarlos + Quian QuirogaRodrigo + + Past, present and future of spike sorting techniques + Brain Research Bulletin + 2015 + 119 + https://linkinghub.elsevier.com/retrieve/pii/S0361923015000684 + 10.1016/j.brainresbull.2015.04.007 + 106 + 117 + + + + + + SeaboldSkipper + PerktoldJosef + + Statsmodels: Econometric and Statistical Modeling with Python + 2010 + https://conference.scipy.org/proceedings/scipy2010/seabold.html + 10.25080/Majora-92bf1922-011 + 92 + 96 + + + + + + VirtanenPauli + GommersRalf + OliphantTravis E. + HaberlandMatt + ReddyTyler + CournapeauDavid + BurovskiEvgeni + PetersonPearu + WeckesserWarren + BrightJonathan + WaltStéfan J. van der + BrettMatthew + WilsonJoshua + MillmanK. Jarrod + MayorovNikolay + NelsonAndrew R. J. + JonesEric + KernRobert + LarsonEric + CareyC J + Polatİlhan + FengYu + MooreEric W. + VanderPlasJake + LaxaldeDenis + PerktoldJosef + CimrmanRobert + HenriksenIan + QuinteroE. A. + HarrisCharles R. + ArchibaldAnne M. + RibeiroAntônio H. + PedregosaFabian + MulbregtPaul van + ContributorsScipy 1.0 + + SciPy 1.0: Fundamental algorithms for scientific computing in Python + Nature Methods + 2020 + 17 + 3 + 1548-7091 + http://www.nature.com/articles/s41592-019-0686-2 + 10.1038/s41592-019-0686-2 + 261 + 272 + + + + +
diff --git a/joss.05268/10.21105.joss.05268.pdf b/joss.05268/10.21105.joss.05268.pdf new file mode 100644 index 0000000000..c70e78ce74 Binary files /dev/null and b/joss.05268/10.21105.joss.05268.pdf differ