evfuncs

Functions for working with files created by the EvTAF program and the evsonganaly GUI

https://github.com/nickledave/evfuncs

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: nature.com, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Functions for working with files created by the EvTAF program and the evsonganaly GUI

Basic Info
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 1
  • Open Issues: 5
  • Releases: 14
Created over 7 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

Project Status: Unsupported – The project has reached a stable, usable state but the author(s) have ceased all work on it. A new maintainer may be desired.

This project is no longer actively maintained, although the code uses core, stable functions from Python, Numpy, and SciPy, so it is likely to work.
If you need to load cbin (audio) files from evsonganaly, there are maintained, updated versions of the functions in this package in the vocalpy library: https://vocalpy.readthedocs.io
If you need to load .not.mat (annotation) files from evsonganaly, there are maintained, updated versions of that function in crowsetta: https://crowsetta.readthedocs.io
(Note that if you install vocalpy, you will already have crowsetta installed.)

[Build Status DOI PyPI version License

evfuncs

Functions for working with files created by EvTAF and the evsonganaly GUI.
In case you need to work with those files in Python 😊😊😊 (see "Usage" below).

The first work published with data collected using EvTAF and evsonganaly is in this paper:
Tumer, Evren C., and Michael S. Brainard.
"Performance variability enables adaptive plasticity of ‘crystallized’adult birdsong."
Nature 450.7173 (2007): 1240.
https://www.nature.com/articles/nature06390

These functions are translations to Python of the original functions written in MATLAB (copyright Mathworks) by Evren Tumer (shown below).

Image of Evren

Installation

with pip

console $ pip install evfuncs

with conda

console $ conda install evfuncs -c conda-forge

Usage

The main purpose for developing these functions in Python was to work with files of Bengalese finch song in this data repository: https://figshare.com/articles/Bengalese_Finch_song_repository/4805749

Using evfuncs with that repository, you can load the .cbin audio files ... ```Python

import evfuncs

rawsong, sampfreq = evfuncs.loadcbin('gy6or6baseline230312_0808.138.cbin') ```

... and the annotation in the .not.mat files ... ```Python

notmatdict = evfuncs.loadnotmat('gy6or6baseline2303120808.138.cbin') (or, using the `.not.mat` filename directly) Python notmatdict = evfuncs.loadnotmat('gy6or6baseline2303120808.138.not.mat') ```

...and you should be able to reproduce the segmentation of the raw audio files of birdsong into syllables and silent periods, using the segmenting parameters from a .not.mat file and the simple algorithm applied by the SegmentNotes.m function.

```Python

smooth = evfuncs.smoothdata(rawsong, sampfreq) threshold = notmatdict['threshold'] minsyldur = notmatdict['mindur'] / 1000 minsilentdur = notmatdict['minint'] / 1000 onsets, offsets = evfuncs.segmentsong(smooth, sampfreq, threshold, minsyldur, minsilentdur) import numpy as np np.allclose(onsets, notmatdict['onsets']) True `` (*Note that this test would returnFalse` if the onsets and offsets in the .not.mat annotation file had been modified, e.g., a user of the evsonganaly GUI had edited them, after they were originally computed by the SegmentNotes.m function.*)

evfuncs is used to load annotations by
'crowsetta', a data-munging tool for building datasets of vocalizations that can be used to train machine learning models. Two machine learning libraries that can use those datasets are: hybrid-vocal-classifier, and vak.

Getting Help

Please feel free to raise an issue here:
https://github.com/NickleDave/evfuncs/issues

License

BSD License.

Citation

Please cite this software as shown below. To get the most up-to-date, automatically-generated citation, please click "Cite this repository" on the upper right side of the page.

bibtex:
@software{Nicholson_evfuncs_2021, author = {Nicholson, David}, doi = {10.5281/zenodo.4584209}, license = {BSD-3-Clause}, month = {3}, title = {{evfuncs}}, url = {https://github.com/NickleDave/evfuncs}, version = {0.3.2.post1}, year = {2021}

APA:
Nicholson, D. (2021). evfuncs (Version 0.3.2.post1) [Computer software]. https://doi.org/10.5281/zenodo.4584209

Build Status

Build Status

Owner

  • Name: David Nicholson
  • Login: NickleDave
  • Kind: user
  • Location: Charm City
  • Company: @vocalpy

ML, AI; behavior + cog + neuro. Open + inclusive science. Pythonista. He/him (they's ok too). Habla espanglish y baila salsa y bachata a medio tiempo.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: evfuncs
message: >-
  If you use evfuncs, please cite it with these
  metadata
type: software
authors:
  - given-names: David
    email: nicholdav@gmail.com
    family-names: Nicholson
    orcid: 'https://orcid.org/0000-0002-4261-4719'
doi: 10.5281/zenodo.4584209
abstract: >-
  Functions for working with files created by the
  EvTAF program and the evsonganaly GUI
license: BSD-3-Clause
version: 0.3.5
commit: b1e6b942c19c3ab13f8aecbeab82a05ab47b2a83
date-released: '2022-05-14'
repository-code: 'https://github.com/NickleDave/evfuncs'
repository: 'https://pypi.org/project/evfuncs/'
identifiers:
  - type: doi
    value: 10.5281/zenodo.4584209
    description: >-
      This DOI represents all versions, and will
      always resolve to the latest one.

GitHub Events

Total
Last Year

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 108
  • Total Committers: 2
  • Avg Commits per committer: 54.0
  • Development Distribution Score (DDS): 0.12
Past Year
  • Commits: 6
  • Committers: 1
  • Avg Commits per committer: 6.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
David Nicholson n****e@u****m 95
NickleDave n****v@g****m 13

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 16
  • Total pull requests: 5
  • Average time to close issues: 9 days
  • Average time to close pull requests: 7 minutes
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.2
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • NickleDave (16)
Pull Request Authors
  • NickleDave (5)
Top Labels
Issue Labels
bug (2) DEV: development (2) enhancement (1) CI: continuous integration (1)
Pull Request Labels
enhancement (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 831 last-month
  • Total dependent packages: 5
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 17
  • Total maintainers: 1
pypi.org: evfuncs

Functions for working with files created by the EvTAF program and the evsonganaly GUI

  • Versions: 14
  • Dependent Packages: 3
  • Dependent Repositories: 1
  • Downloads: 831 Last month
Rankings
Dependent packages count: 2.3%
Downloads: 18.0%
Average: 18.5%
Dependent repos count: 21.7%
Forks count: 22.6%
Stargazers count: 27.8%
Maintainers (1)
Last synced: 7 months ago
conda-forge.org: evfuncs
  • Versions: 3
  • Dependent Packages: 2
  • Dependent Repositories: 0
Rankings
Dependent packages count: 19.5%
Dependent repos count: 34.0%
Average: 41.5%
Forks count: 54.2%
Stargazers count: 58.4%
Last synced: 7 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
pyproject.toml pypi
  • numpy >=1.18.1
  • scipy >=1.2.0