opexebo


Nameopexebo JSON
Version 0.7.2 PyPI version JSON
download
home_pagehttps://github.com/kavli-ntnu/opexebo
SummaryCollection of python code in Kavli lab.
upload_time2023-10-16 12:44:15
maintainer
docs_urlNone
authorSimon Ball
requires_python
license
keywords neuroscience kavli gridscore
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            # opexebo

[![Build Status](https://travis-ci.com/kavli-ntnu/opexebo.svg?branch=master&status=passed)](https://travis-ci.com/kavli-ntnu/opexebo)
[![codecov](https://codecov.io/gh/kavli-ntnu/opexebo/branch/master/graph/badge.svg)](https://codecov.io/gh/kavli-ntnu/opexebo)
[![Documentation Status](https://readthedocs.org/projects/opexebo/badge/?version=latest)](https://opexebo.readthedocs.io/en/latest/?badge=latest)

This library provides various analysis tools written by and for the Moser group  at the [Kavli Institute](https://www.ntnu.edu/kavli) in Trondheim. 

The package contains a mixture of translations of the older MatLab based [Behavioural Neurology Toolbox](https://bitbucket.org/cnc-ntnu/bnt), and other functions written only in Python 3, as part of the transition towards providing open access to research code. 


### Documentation

Specifications and documentation for `opexebo` are available on [Read the Docs](https://opexebo.readthedocs.io/en/latest/).


### Installation

Install with pip:

```
pip install opexebo
```

Opexebo has an optional dependency, `sep`, that is not installed by default. To be able to install it, you require a C++ compiler installed on your system. On Linux, `gcc` will do the job. On Windows, the the Microsoft Visual C++ Build Tools fulfil the same role (https://www.microsoft.com/en-us/download/details.aspx?id=48159). To force installation of all optional dependencies, append `[full]` to the install command, for example:

    pip install opexebo[full]

### Tests

Tests are implemented with `pytest`. Ensure that the various development tools are installed via 
```python
pip install -r dev-requirements.txt
```
And then run tests with `pytest .`


# History

## 0.7.0
* Update dependencies for more modern versions (particularly `numpy`, `scipy` and `pytest`)
* Switch supported Python versions for 3.8+

## 0.6.1

* Fix some docstrings that were not updated to reflect changes in 0.6.0
* Fix the default limit behaviour of `accumulate_spatial` for bin width specification.


## 0.6.0

* Rewrite `spatial_occupancy` and `rate_map` to remove the walk filter (signature breaking)
  * The individual analysis functions should be single purpose, and the walk-filter breaks this rule.
  * Ideally, the walk-filter should be applied to spikes/tracking data _first_, and the resulting data then used for further analysis. 
  * A dedicated function has been provided to replace this: `general.walk_filter`
* Rewrite `shuffle` to better handle edge cases (including 1-spike-only) (signature breaking)
* Added `general.walk_filter` to provide replace the specific filtering implemented in each of `spatial_occupancy` and `rate_map`

* Fix a bug where `accumulate_spatial` can't handle cases where a single spike is present
* Fix an error in the LFP power spectrum calculation with fft
* Removed support for providing 1D position data as a 2d array with length 1
  * Caused frustrating circular issues in cases where only a single data point was provided.
  * Fairly low value addition, so support removed.



## 0.5.5 (2021-06-01)

* Publish to PyPi


## 0.5.2 (2021-04-19)

* Support 1D data in spatial occupancy and ratemap
* Add Opexebo-specific errors
* Add automated testing prior to release
* Add `calculate_speed`
* Add `egocentric_occupancy`
* Fixed an edge case error in `accumulate_spatial`


## 0.4.3 (2020-02-19)

* Substantial cleanup to `accumulate_spatial`
  - Function was mathematically correct but confusing, due to the difference between opexebo's standard of `(x, y)` and NumPy's standard of `(y, x)`
* Added `upsampling`
* Added `circular_mask`
* Mandatory keyword arguments have been made positional
* `peak_search` updated to handle issues with MaskedArrays containing negative values
* Dcumentation expanded, made Sphinx compatible, and published on ReadTheDocs
* Further work on BorderScore, still experimental though
  - Functional for Rectangular arenas
  - Circular arenas are still WIP, should not be relied upon yet.


## 0.4.2 (2020-02-05)

* Speedscore modified substantially
  - Adaptive filtering added, allowing the user to specify an upper speed as a bandwidth
  - Adaptive filtering adjusted to behave more sensibly in the case of small bin sizes
  - Speeds are smoothed before correlating
* Spatial cross correlation added
* General `bin_number` to `bin_size` code refactored to make future development more consistent
* Assorted unit tests added, including run-once code removed for speed
* Fix errors associated with `>` where applied to MaskedArrays (which, unlike ndarrays, do not correctly obey  the symbol)


## 0.4.0 (2019-12-10)

* Ratemaps updated to handle walk filter (signature now requires providing animal speeds)
* Angular occupancy coverage calculation corrected
* circular arenas now handled in Spatial Occupancy
* Population Vector Correlation added


## 0.3.5 (2019-11-18)

* Assorted bugfixes to HDtuning
* Gridscore to handle NaNs more gracefully


## 0.3.4 (2019-20-25)

* `sep` made an optional dependency
* Alternative, non `sep` based code uses `skimage`
* Attempting to use `sep` if not installed with raise an error


## 0.3.2 (2019-09-20)

* Consistent calculating of bin numbers when histogramming


## 0.3.0 (2019-08-27)

* Third development release
* Improve NaN handling throughout by moving to MaskedArrays
* Fix Angular handling to function in seconds instead of frames
* Remove matplotlib from requirements


## 0.2.0 

* Second development release
  - Implementation of time-map -> rate-map -> (acorr, gridness score)
  - Implementation of rate-map stats, grid stats
  - Implementation of angular-map -> tuning-curve -> head direction score, stats.
  - Non-production-ready implementation of border-score, speed-score. 


## 0.1.0 (2018-08-30)

* First development release
  - Implementation of gridness score, autocorrelogram, place-field detection



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/kavli-ntnu/opexebo",
    "name": "opexebo",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "neuroscience kavli gridscore",
    "author": "Simon Ball",
    "author_email": "simon.ball@ntnu.no",
    "download_url": "https://files.pythonhosted.org/packages/15/25/9d0fa63347bc723070d394231231d158b51425be8d851863eaae58656a87/opexebo-0.7.2.tar.gz",
    "platform": null,
    "description": "# opexebo\n\n[![Build Status](https://travis-ci.com/kavli-ntnu/opexebo.svg?branch=master&status=passed)](https://travis-ci.com/kavli-ntnu/opexebo)\n[![codecov](https://codecov.io/gh/kavli-ntnu/opexebo/branch/master/graph/badge.svg)](https://codecov.io/gh/kavli-ntnu/opexebo)\n[![Documentation Status](https://readthedocs.org/projects/opexebo/badge/?version=latest)](https://opexebo.readthedocs.io/en/latest/?badge=latest)\n\nThis library provides various analysis tools written by and for the Moser group  at the [Kavli Institute](https://www.ntnu.edu/kavli) in Trondheim. \n\nThe package contains a mixture of translations of the older MatLab based [Behavioural Neurology Toolbox](https://bitbucket.org/cnc-ntnu/bnt), and other functions written only in Python 3, as part of the transition towards providing open access to research code. \n\n\n### Documentation\n\nSpecifications and documentation for `opexebo` are available on [Read the Docs](https://opexebo.readthedocs.io/en/latest/).\n\n\n### Installation\n\nInstall with pip:\n\n```\npip install opexebo\n```\n\nOpexebo has an optional dependency, `sep`, that is not installed by default. To be able to install it, you require a C++ compiler installed on your system. On Linux, `gcc` will do the job. On Windows, the the Microsoft Visual C++ Build Tools fulfil the same role (https://www.microsoft.com/en-us/download/details.aspx?id=48159). To force installation of all optional dependencies, append `[full]` to the install command, for example:\n\n    pip install opexebo[full]\n\n### Tests\n\nTests are implemented with `pytest`. Ensure that the various development tools are installed via \n```python\npip install -r dev-requirements.txt\n```\nAnd then run tests with `pytest .`\n\n\n# History\n\n## 0.7.0\n* Update dependencies for more modern versions (particularly `numpy`, `scipy` and `pytest`)\n* Switch supported Python versions for 3.8+\n\n## 0.6.1\n\n* Fix some docstrings that were not updated to reflect changes in 0.6.0\n* Fix the default limit behaviour of `accumulate_spatial` for bin width specification.\n\n\n## 0.6.0\n\n* Rewrite `spatial_occupancy` and `rate_map` to remove the walk filter (signature breaking)\n  * The individual analysis functions should be single purpose, and the walk-filter breaks this rule.\n  * Ideally, the walk-filter should be applied to spikes/tracking data _first_, and the resulting data then used for further analysis. \n  * A dedicated function has been provided to replace this: `general.walk_filter`\n* Rewrite `shuffle` to better handle edge cases (including 1-spike-only) (signature breaking)\n* Added `general.walk_filter` to provide replace the specific filtering implemented in each of `spatial_occupancy` and `rate_map`\n\n* Fix a bug where `accumulate_spatial` can't handle cases where a single spike is present\n* Fix an error in the LFP power spectrum calculation with fft\n* Removed support for providing 1D position data as a 2d array with length 1\n  * Caused frustrating circular issues in cases where only a single data point was provided.\n  * Fairly low value addition, so support removed.\n\n\n\n## 0.5.5 (2021-06-01)\n\n* Publish to PyPi\n\n\n## 0.5.2 (2021-04-19)\n\n* Support 1D data in spatial occupancy and ratemap\n* Add Opexebo-specific errors\n* Add automated testing prior to release\n* Add `calculate_speed`\n* Add `egocentric_occupancy`\n* Fixed an edge case error in `accumulate_spatial`\n\n\n## 0.4.3 (2020-02-19)\n\n* Substantial cleanup to `accumulate_spatial`\n  - Function was mathematically correct but confusing, due to the difference between opexebo's standard of `(x, y)` and NumPy's standard of `(y, x)`\n* Added `upsampling`\n* Added `circular_mask`\n* Mandatory keyword arguments have been made positional\n* `peak_search` updated to handle issues with MaskedArrays containing negative values\n* Dcumentation expanded, made Sphinx compatible, and published on ReadTheDocs\n* Further work on BorderScore, still experimental though\n  - Functional for Rectangular arenas\n  - Circular arenas are still WIP, should not be relied upon yet.\n\n\n## 0.4.2 (2020-02-05)\n\n* Speedscore modified substantially\n  - Adaptive filtering added, allowing the user to specify an upper speed as a bandwidth\n  - Adaptive filtering adjusted to behave more sensibly in the case of small bin sizes\n  - Speeds are smoothed before correlating\n* Spatial cross correlation added\n* General `bin_number` to `bin_size` code refactored to make future development more consistent\n* Assorted unit tests added, including run-once code removed for speed\n* Fix errors associated with `>` where applied to MaskedArrays (which, unlike ndarrays, do not correctly obey  the symbol)\n\n\n## 0.4.0 (2019-12-10)\n\n* Ratemaps updated to handle walk filter (signature now requires providing animal speeds)\n* Angular occupancy coverage calculation corrected\n* circular arenas now handled in Spatial Occupancy\n* Population Vector Correlation added\n\n\n## 0.3.5 (2019-11-18)\n\n* Assorted bugfixes to HDtuning\n* Gridscore to handle NaNs more gracefully\n\n\n## 0.3.4 (2019-20-25)\n\n* `sep` made an optional dependency\n* Alternative, non `sep` based code uses `skimage`\n* Attempting to use `sep` if not installed with raise an error\n\n\n## 0.3.2 (2019-09-20)\n\n* Consistent calculating of bin numbers when histogramming\n\n\n## 0.3.0 (2019-08-27)\n\n* Third development release\n* Improve NaN handling throughout by moving to MaskedArrays\n* Fix Angular handling to function in seconds instead of frames\n* Remove matplotlib from requirements\n\n\n## 0.2.0 \n\n* Second development release\n  - Implementation of time-map -> rate-map -> (acorr, gridness score)\n  - Implementation of rate-map stats, grid stats\n  - Implementation of angular-map -> tuning-curve -> head direction score, stats.\n  - Non-production-ready implementation of border-score, speed-score. \n\n\n## 0.1.0 (2018-08-30)\n\n* First development release\n  - Implementation of gridness score, autocorrelogram, place-field detection\n\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Collection of python code in Kavli lab.",
    "version": "0.7.2",
    "project_urls": {
        "Homepage": "https://github.com/kavli-ntnu/opexebo"
    },
    "split_keywords": [
        "neuroscience",
        "kavli",
        "gridscore"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3c7847e6e48058c30c5e4e1739a255172759baacf8267f07a0d2d4f6d664e78e",
                "md5": "372e80f7047528fbba761ef5677881c7",
                "sha256": "2dccd4458660d9c720a175a634c669389c5f37aa52cf6f09fcc3b1a9ee5a98a2"
            },
            "downloads": -1,
            "filename": "opexebo-0.7.2-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "372e80f7047528fbba761ef5677881c7",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 105837,
            "upload_time": "2023-10-16T12:44:13",
            "upload_time_iso_8601": "2023-10-16T12:44:13.839525Z",
            "url": "https://files.pythonhosted.org/packages/3c/78/47e6e48058c30c5e4e1739a255172759baacf8267f07a0d2d4f6d664e78e/opexebo-0.7.2-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "15259d0fa63347bc723070d394231231d158b51425be8d851863eaae58656a87",
                "md5": "84238a9d86ba9e41551d393d878ae4f6",
                "sha256": "b9b9b52dc280f23c6b29a17a57585865d7a3fc82a164a0e71f55994dccc12d0a"
            },
            "downloads": -1,
            "filename": "opexebo-0.7.2.tar.gz",
            "has_sig": false,
            "md5_digest": "84238a9d86ba9e41551d393d878ae4f6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 82283,
            "upload_time": "2023-10-16T12:44:15",
            "upload_time_iso_8601": "2023-10-16T12:44:15.927183Z",
            "url": "https://files.pythonhosted.org/packages/15/25/9d0fa63347bc723070d394231231d158b51425be8d851863eaae58656a87/opexebo-0.7.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-16 12:44:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kavli-ntnu",
    "github_project": "opexebo",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "opexebo"
}
        
Elapsed time: 0.49054s