{ "info": { "author": "David Nicholson", "author_email": "nicholdav@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython" ], "description": "\n# *ev*funcs\nFunctions for working with files created by EvTAF and the evsonganaly GUI. \nIn case you need to work with those files in Python \ud83d\ude0a\ud83d\ude0a\ud83d\ude0a (see \"Usage\" below).\n\nThe first work published with data collected using EvTAF and evsonganaly is in this paper: \nTumer, Evren C., and Michael S. Brainard. \n\"Performance variability enables adaptive plasticity of \u2018crystallized\u2019adult birdsong.\" \nNature 450.7173 (2007): 1240. \n \n\nThese functions are translations to Python of the original functions \nwritten in MATLAB (copyright Mathworks) by Evren Tumer (shown below). \n

\n\"Image\n

\n\n### Installation\n`$ pip install evfuncs`\n\n### Usage\n\nThe main purpose for developing these functions in Python was to \nwork with files of Bengalese finch song in this data repository: \n\n\nUsing `evfuncs` with that repository, you can load the `.cbin` audio files ...\n```Python\n>>> import evfuncs\n\n>>> rawsong, samp_freq = evfuncs.load_cbin('gy6or6_baseline_230312_0808.138.cbin')\n```\n\n... and the annotation in the `.not.mat` files ...\n```Python\n>>> notmat_dict = evfuncs.load_notmat('gy6or6_baseline_230312_0808.138.cbin')\n```\n(or, using the `.not.mat` filename directly)\n```Python\n>>> notmat_dict = evfuncs.load_notmat('gy6or6_baseline_230312_0808.138.not.mat')\n```\n\n...and you should be able to reproduce the segmentation of the raw audio files of birdsong\ninto syllables and silent periods, using the segmenting parameters from a .not.mat file and \nthe simple algorithm applied by the SegmentNotes.m function.\n\n```Python\n>>> smooth = evfuncs.smooth_data(rawsong, samp_freq)\n>>> threshold = notmat_dict['threshold']\n>>> min_syl_dur = notmat_dict['min_dur'] / 1000\n>>> min_silent_dur = notmat_dict['min_int'] / 1000\n>>> onsets, offsets = evfuncs.segment_song(smooth, samp_freq, threshold, min_syl_dur, min_silent_dur)\n>>> import numpy as np\n>>> np.allclose(onsets, notmat_dict['onsets'])\nTrue\n```\n(*Note that this test would return `False` if the onsets and offsets in the .not.mat \nannotation file had been modified, e.g., a user of the evsonganaly GUI had edited them,\nafter they were originally computed by the SegmentNotes.m function.*)\n\nThe `evfuncs` functions are used in the \n[`hybrid-vocal-classifier`](https://hybrid-vocal-classifier.readthedocs.io/en/latest/) \nand [`songdeck`](https://github.com/NickleDave/songdeck) libraries.\n\n### Getting Help\nPlease feel free to raise an issue here: \nhttps://github.com/NickleDave/evfuncs/issues\n\n### License\n[BSD License](./LICENSE).\n\n### Citation\nIf you use this package, please cite the DOI: \n[![DOI](https://zenodo.org/badge/158776329.svg)](https://zenodo.org/badge/latestdoi/158776329)\n\n### Build Status\n[![Build Status](https://travis-ci.com/NickleDave/evfuncs.svg?branch=master)](https://travis-ci.com/NickleDave/evfuncs)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/NickleDave/evfuncs", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "evfuncs", "package_url": "https://pypi.org/project/evfuncs/", "platform": "", "project_url": "https://pypi.org/project/evfuncs/", "project_urls": { "Homepage": "https://github.com/NickleDave/evfuncs" }, "release_url": "https://pypi.org/project/evfuncs/0.1.1/", "requires_dist": [ "numpy", "scipy (>=1.2.0)" ], "requires_python": ">=3.6.0", "summary": "Functions for working with files created by the EvTAF program and the evsonganaly GUI", "version": "0.1.1" }, "last_serial": 4666296, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "e55b2531ac0350584182501759860dd9", "sha256": "591e7c9465840f01774b19d67a274c012cf6e85713485162ad91f496043b6a35" }, "downloads": -1, "filename": "evfuncs-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e55b2531ac0350584182501759860dd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 8107, "upload_time": "2019-01-06T18:52:17", "url": "https://files.pythonhosted.org/packages/38/8d/78648bc0845effd340be4b56e4503b38bb53cfc02a57b5f67b8ea2fd1635/evfuncs-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "509a49c216c668573e33187da21b2f32", "sha256": "6dceef18b92ab945a2612df79bd4ad2697b01e97ecfebd0d283183ed32d9ad8c" }, "downloads": -1, "filename": "evfuncs-0.1.1.tar.gz", "has_sig": false, "md5_digest": "509a49c216c668573e33187da21b2f32", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 8037, "upload_time": "2019-01-06T18:52:20", "url": "https://files.pythonhosted.org/packages/cb/d4/55b5ff80931394ee7d41ccaba9f729d2fb52b41f2ccb595a2219eae15995/evfuncs-0.1.1.tar.gz" } ], "0.1.1a1": [ { "comment_text": "", "digests": { "md5": "b8424607c02d70692fd40944cdd3a033", "sha256": "d32be054495c50b9c98ae903b7edc07f2ae3a9bd31766f3c82c9aca6d9e686b0" }, "downloads": -1, "filename": "evfuncs-0.1.1a1-py3-none-any.whl", "has_sig": false, "md5_digest": "b8424607c02d70692fd40944cdd3a033", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 5535, "upload_time": "2018-11-24T04:32:38", "url": "https://files.pythonhosted.org/packages/d8/f4/2b6055dbb2f241430350a2d64cc0eb769ea7736873667da789ac4f70bbff/evfuncs-0.1.1a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f726dc0c6c0eef859d7661b2c15deff", "sha256": "ab7601cae7a4bcb845df8144151495b27424c0448a9233daf8c080a8a351a8a9" }, "downloads": -1, "filename": "evfuncs-0.1.1a1.tar.gz", "has_sig": false, "md5_digest": "5f726dc0c6c0eef859d7661b2c15deff", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 5309, "upload_time": "2018-11-24T04:32:40", "url": "https://files.pythonhosted.org/packages/f3/d6/dacd08c43f9f828711ee94b11b845a01135b6ba0456f142ac185330e0b14/evfuncs-0.1.1a1.tar.gz" } ], "0.1.1a2": [ { "comment_text": "", "digests": { "md5": "38b555c1892834a538a8d977c6eee379", "sha256": "7462203cd381581c6614384f34133aba1225ef63e146175d63ecc4c123aee308" }, "downloads": -1, "filename": "evfuncs-0.1.1a2-py3-none-any.whl", "has_sig": false, "md5_digest": "38b555c1892834a538a8d977c6eee379", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 7298, "upload_time": "2018-11-28T19:55:57", "url": "https://files.pythonhosted.org/packages/90/86/6eef8aca6ee8d592ca8e03ef116d1891d65a3a9a401db94859a41b71b859/evfuncs-0.1.1a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52643ff3d25c30c38f8c65addf9ddbc6", "sha256": "5c1b23407d652f4efcd5dcf353e11128a0cd115cd2f9058699700466675951b5" }, "downloads": -1, "filename": "evfuncs-0.1.1a2.tar.gz", "has_sig": false, "md5_digest": "52643ff3d25c30c38f8c65addf9ddbc6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 7168, "upload_time": "2018-11-28T19:55:58", "url": "https://files.pythonhosted.org/packages/35/b5/e1aca0160f7693c91fc16b12a474c116bf33f2611560125819e673b5f1d3/evfuncs-0.1.1a2.tar.gz" } ], "0.1.1a3": [ { "comment_text": "", "digests": { "md5": "a4a36a1ab5eddd9f1aef521b65207d82", "sha256": "da43d8b35b534518d04363ace7099d35c2dc29e40cc4d7ef9cf2be4d5063aee1" }, "downloads": -1, "filename": "evfuncs-0.1.1a3-py3-none-any.whl", "has_sig": false, "md5_digest": "a4a36a1ab5eddd9f1aef521b65207d82", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 7496, "upload_time": "2018-12-08T03:55:34", "url": "https://files.pythonhosted.org/packages/45/7d/e3f96e7b89a8bbd7ea2f92dae9d288d004435bc859d9b5ce47f1910cf1aa/evfuncs-0.1.1a3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e5a8458cd2b020512b0bb1ecec8d2f16", "sha256": "6a1ae6678c0e156253e61012e0572936ac0f760c0a51c49869eea81ce8232b23" }, "downloads": -1, "filename": "evfuncs-0.1.1a3.tar.gz", "has_sig": false, "md5_digest": "e5a8458cd2b020512b0bb1ecec8d2f16", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 7376, "upload_time": "2018-12-08T03:55:35", "url": "https://files.pythonhosted.org/packages/36/90/61761c31b3a8fb877d9cae8c097c8ec568d9fad8d0df8403c7178bce5cae/evfuncs-0.1.1a3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e55b2531ac0350584182501759860dd9", "sha256": "591e7c9465840f01774b19d67a274c012cf6e85713485162ad91f496043b6a35" }, "downloads": -1, "filename": "evfuncs-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e55b2531ac0350584182501759860dd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 8107, "upload_time": "2019-01-06T18:52:17", "url": "https://files.pythonhosted.org/packages/38/8d/78648bc0845effd340be4b56e4503b38bb53cfc02a57b5f67b8ea2fd1635/evfuncs-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "509a49c216c668573e33187da21b2f32", "sha256": "6dceef18b92ab945a2612df79bd4ad2697b01e97ecfebd0d283183ed32d9ad8c" }, "downloads": -1, "filename": "evfuncs-0.1.1.tar.gz", "has_sig": false, "md5_digest": "509a49c216c668573e33187da21b2f32", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 8037, "upload_time": "2019-01-06T18:52:20", "url": "https://files.pythonhosted.org/packages/cb/d4/55b5ff80931394ee7d41ccaba9f729d2fb52b41f2ccb595a2219eae15995/evfuncs-0.1.1.tar.gz" } ] }