Skip to main content

Extensible drift diffusion modeling for Python

Project description

PyDDM - A drift-diffusion model simulator

Build Status

Overview

PyDDM is a simulator and modeling framework for drift-diffusion models (DDM), with a focus on cognitive neuroscience.

Key features include:

  • Models solved numerically using Crank-Nicolson to solve the Fokker-Planck equation (Backward Euler, analytical solutions, and particle simulations also available)
  • Arbitrary functions for drift rate, noise, bounds, and initial position distribution
  • Arbitrary loss function and fitting method for parameter fitting
  • Optional multiprocessor support
  • Optional GUI for debugging and gaining an intuition for different models
  • Convenient and extensible object oriented API allows building models in a component-wise fashion
  • Verified accuracy of simulations using novel program verification techniques

See the documentation, FAQs, or tutorial for more information. You can also sign up for release announcements by email.

Please note that PyDDM is still beta software so you may experience some glitches or uninformative error messages.

Installation

Normally, you can install with:

$ pip install pyddm

If you are in a shared environment (e.g. a cluster), install with:

$ pip install pyddm --user

If installing from source, download the source code, extract, and do:

$ python3 setup.py install

System requirements

  • Python 3.5 or above
  • Numpy version 1.9.2 or higher
  • Scipy version 0.15.1 or higher
  • Matplotlib
  • Paranoid Scientist
  • Pathos (optional, for multiprocessing support)

Contact

Please report bugs to https://github.com/mwshinn/pyddm/issues. This includes any problems with the documentation. PRs for bugs are greatly appreciated.

Feature requests are currently not being accepted due to limited resources. If you implement a new feature in PyDDM, please do the following before submitting a PR on Github:

  • Make sure your code is clean and well commented
  • If appropriate, update the official documentation in the docs/ directory
  • Ensure there are Paranoid Scientist verification conditions to your code
  • Write unit tests and optionally integration tests for your new feature (runtests.sh)
  • Ensure all existing tests pass

For all other questions or comments, contact maxwell.shinn@yale.edu.

License

All code is available under the MIT license. See LICENSE.txt for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyddm-0.5.0.tar.gz (59.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyddm-0.5.0-py3-none-any.whl (73.1 kB view details)

Uploaded Python 3

File details

Details for the file pyddm-0.5.0.tar.gz.

File metadata

  • Download URL: pyddm-0.5.0.tar.gz
  • Upload date:
  • Size: 59.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for pyddm-0.5.0.tar.gz
Algorithm Hash digest
SHA256 81e092fec47916401afe39b5eeeaf4e5f7f97a4cedcd63849f6059e01cf9aa22
MD5 ccb4a2f94962a5ffe2e547ae5a73f787
BLAKE2b-256 9d3ce9f6d95c22238d5f96b0a2b144768871b5ffa06c105ea4eff4f522c23f70

See more details on using hashes here.

File details

Details for the file pyddm-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: pyddm-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 73.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for pyddm-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 603e435aa37e9313f7a5a2c70761f865f8f05432b66e3dbcff8a6117c74d3698
MD5 f88fa6e6ded32a1b25e5a66b10f1c67e
BLAKE2b-256 966260ce3a9ba446fea3583e245c7e6b6c50a0677e07a0b84d9a63d6119d628e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page