Generalized drift diffusion modeling for Python
Project description
PyDDM - Generalized drift-diffusion models for Python
Overview
PyDDM is a simulator and modeling framework for generalized 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. See the Github Forums for help from the PyDDM community. You can also sign up for release announcements by email.
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.16.0 or higher
- Matplotlib
- Paranoid Scientist
- Pathos (optional, for multiprocessing support)
- A C compiler (If you don't already have one, the easiest way to install one may be by installing Cython.)
Contact
For help on using PyDDM, see the Github Forums.
Please report bugs to https://github.com/mwshinn/pyddm/issues. This includes any problems with the documentation. Pull Requests 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 Pull Request 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 m.shinn@ucl.ac.uk.
License
All code is available under the MIT license. See LICENSE.txt for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pyddm-0.6.0-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42f60f03e9695b08ce7adbda04a8fefb1a5b8550656816f723b2869422b7a684 |
|
MD5 | 920f6846ce63e1206f8e868f33c56c86 |
|
BLAKE2b-256 | 358abcc3a3a3310445bb6a448917931e66a67423d1038d005395563ce98b866c |
Hashes for pyddm-0.6.0-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2971a75edb621dd16d28b44fa5ce024aba722b12c24d5fafc9fb52307f8155c0 |
|
MD5 | 686c272b4dbb6436d6f7155a0ee81297 |
|
BLAKE2b-256 | a8a6300046323a5ab95134d8e4371a250045c65b6b3cf14e4ea96a32a036b185 |
Hashes for pyddm-0.6.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2baaea4b1ae976ec82a91330943003d03498e62551ac39480119963d6e33dc6 |
|
MD5 | 59ec355ffee5cb481b2868661caf0877 |
|
BLAKE2b-256 | 3e5f46da2716ad0a17f55885f565dadbed308f41704df5fb7899bc60d4046709 |
Hashes for pyddm-0.6.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a0d064bb64c7af7704a976b2299976fa6ac5cce6eef41caf3658da10759d8e6 |
|
MD5 | 88b58010e34069d0f2da689a26affc60 |
|
BLAKE2b-256 | d6b3f9b14fc8bea574d51e51b196b155a25f052b888b5a65e7911c3b415ed917 |
Hashes for pyddm-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccc04a401a57d50225b0b0f96dc3681fb9edb0d3ccbc801eff4e69047d918305 |
|
MD5 | f09aa843b0513058a1be638dad943f72 |
|
BLAKE2b-256 | dda2ebb2100e6e963d012cb8de6acfa0c1015e2a515d07b5bcc8774232151048 |
Hashes for pyddm-0.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fe51a36a64cbaa30dff5c9b8505d7a4d64a4e5eee1825cb8823f2b39322eafb |
|
MD5 | 2c471d50a0653244e04da1948ea0b1da |
|
BLAKE2b-256 | 5e84accd20f3d2be83e4572ce2ccffda518def1f475eb7ba01da6ab82b5ebd14 |
Hashes for pyddm-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81aa1bbe5f7e87097f012a2f9f336269ee82760ff9b0cc76052e7325aaa7f42e |
|
MD5 | 15b54ec90bc78462edb4563d50e8245a |
|
BLAKE2b-256 | f1ef097f431ae634a5827152176bfa8a8567e58107663461bc121bc9d79748c3 |
Hashes for pyddm-0.6.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b19889bc0efe8e206a9ef69789bf877058eff570b8750acc12716b136a8ed960 |
|
MD5 | 105d01bb874148fa9a86988bd83c6df3 |
|
BLAKE2b-256 | bb6cb43e7aed60e1d5c90faf677fa0d1db01ee3b351f97400a4d7296d518380c |
Hashes for pyddm-0.6.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bb2ba94241e5b0c1a930b4f75509ecc6ffa9f96d5eed630b71e9f0164f0f982 |
|
MD5 | 4adb77a43e2d86d424e7958f9929c03c |
|
BLAKE2b-256 | ccbddb85b788dea68d9117c1d5ab17069135404eaf902b97d7075ed562e262d6 |
Hashes for pyddm-0.6.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cf6ea732783e87d49f775142d2a372a9d93637b4c3878f30ec4c7204d359a84 |
|
MD5 | 5c772df7bc8a350a8492e21f9dda983f |
|
BLAKE2b-256 | cea3b0ded99bdb8e47c316ab12797ae777636898d10120c7ca1f992818c4c06c |
Hashes for pyddm-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e65e087958e0a4adc0bbc67e8dad473db552c2071040b3f662b9eaa094e3753e |
|
MD5 | 4efdc3aa8cf85f32341d04798869fa25 |
|
BLAKE2b-256 | 6fde12b5264220891437bbbb9622da18f9b93eb1de81faa393326353077479e0 |
Hashes for pyddm-0.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 479ab1cac14e98e4d7e4ef4a3ee6cae5648a868d26844460fc83c5a638d6bee7 |
|
MD5 | f330d2f15bf1748fb41be0b5e96ac58d |
|
BLAKE2b-256 | 87d505a8ba5cf9fd8acf20f60c793e60a30e4e8224d222be3aafb48eef4e5454 |
Hashes for pyddm-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9237dd8927c88e5871e48a251071b2bbbbc238d9a85d08fa65445174ff17462 |
|
MD5 | 50cdec888ea28af3ead0eb5b35d9a05f |
|
BLAKE2b-256 | 11d14de271ae23636c7b5e836837eec6aeebb0f8644d1efdff88171c6f6573cf |
Hashes for pyddm-0.6.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84753ac73648afd156a7eca8f3f5d6d55f72196c5d4811b12368ab1b42e1e187 |
|
MD5 | 8a2416c5e0015d953af9343a02dbadf4 |
|
BLAKE2b-256 | 1a91f1b28aeafb44a3ff101b161a163b5aa8b596abac97b63cdfa194f74bbec0 |
Hashes for pyddm-0.6.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98bee56cd31d724708a4c5e6268eb508b3b0bf646f28ce329fc8c31fc8af2acd |
|
MD5 | b9e7a83d4eb8a8e2635c2140bc1f922a |
|
BLAKE2b-256 | 45173e18f62ddc6fc031433d3a2325383848f6dc59034fa1ddef5472e3985007 |
Hashes for pyddm-0.6.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63757fae6e7a21b16668305eccc5aaeffc40596f4ee0dd8570977b5d3f4dd470 |
|
MD5 | e904c144c7ae30352b46dd3dd8c19187 |
|
BLAKE2b-256 | adcd22be44a45bc55d821d3cd04e36723bcd9cd53e4124717a34ff2dcae8f3ea |
Hashes for pyddm-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c38636790a968ff84c22b48460454362af1f5ddddd3cd96bd527dac60f914bb |
|
MD5 | d4d7e011cc71bb35394060449ef84f57 |
|
BLAKE2b-256 | b99978c5096f1abaf975724710190f3a41777cd2927a64ecaaa41f076d4e3071 |
Hashes for pyddm-0.6.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 218bed82317a6ad8b863cd917d57433ce62313f7062a9fdb04da90ff3af99f3e |
|
MD5 | e12b37c1d7bd7fcfbd5fbd21c4b097d6 |
|
BLAKE2b-256 | 28d4a98653e26ca88664a623cb3ca0f46f0aff60c43aa41bcf674a77eba6d392 |
Hashes for pyddm-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0e8d1b33187ba06492ac077dd35d072c54bf227501e0cad261a138824bc1b14 |
|
MD5 | abafd76e8d7cfce80875eb65aa4f5960 |
|
BLAKE2b-256 | 772d0a0bcb0e1af4f3ab20c81400dd6a8bb6fe75e1fd5bf1b8d3743ff0aa3622 |
Hashes for pyddm-0.6.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c76177265e8221fec85fb4d39e880b1efaac36eec140d43706fa867db9728fb0 |
|
MD5 | 98b7aa5520fead01c19fd34502d71628 |
|
BLAKE2b-256 | 7797762f1689d6b9927f7e87a8d1089c3447784842f248309b0747704ae32590 |
Hashes for pyddm-0.6.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 750442202c84978ccb1ecf6eeb7d86d41c0aafaf0f0a4b78e5d50188689fd61d |
|
MD5 | e838f4d71b7aac8d6e09b6aaa0870596 |
|
BLAKE2b-256 | 345c99fb6728c3f808a5d9e4bd687d3d524eaba52d29e3c65791ed03e76fef92 |
Hashes for pyddm-0.6.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b868089b1d871c1b95327a335e40917181742694e68bf28001b1a9d9752af688 |
|
MD5 | bb8f42ca5de07010f76cd284816509a6 |
|
BLAKE2b-256 | bb496c29cf82f34e26a69b7000e94e5a39c8f13612dd7f57a08ff9a07dc74d29 |
Hashes for pyddm-0.6.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7272dd5adefd3364d4a75971c90153659a27e246c2a184288d7b1a030b23e79c |
|
MD5 | 43a8808573c6577d6f2d2f45736d9ce6 |
|
BLAKE2b-256 | c1eb7236ec34160d80dca978092649d2d6829628ecff72dad0ed561230db054d |
Hashes for pyddm-0.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96aa711e71e728b5c003744c4e00505cd30bb423b3fd9d3580c280c80577c4ee |
|
MD5 | e04b365bc0a7437efc2f55d49a5ad673 |
|
BLAKE2b-256 | 6ddcecd90642f048f0428efc811668597f03e15d9b81de57eba86d455a2c3399 |
Hashes for pyddm-0.6.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 711a2e134dfe5095261ff7f8604bb0c8b44382a29be65ff7e0ac88f1f921a7ca |
|
MD5 | eb2df49305433b97b25ab275c5842382 |
|
BLAKE2b-256 | d6ea8e64a4942726fe07d2bd33fbccf39ead21dd67c0f0ca4e48b2fa1cebaf25 |
Hashes for pyddm-0.6.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a950747de7267ac813715680e76f187f0cea1dd07a3c86665fabd36fa1ba76cd |
|
MD5 | 3ce238c25934484ba129f34ece94bf72 |
|
BLAKE2b-256 | 7e0a780cff7a3cc9b09c078a9f57592b5c7fb9fec1873596ea10c9334f828daa |
Hashes for pyddm-0.6.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae621ddf79a65c87663b0741182893aed000dc8c0d68f117a3c90df02d8b6223 |
|
MD5 | e755d792a173267ae9a87e1ad7fae2d2 |
|
BLAKE2b-256 | 52dcc315aa004da6a8f15017f382ab638329f9e8f2bfaf220611335646f5f1fd |
Hashes for pyddm-0.6.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11a3ab2b1aabb9e26a9861a3cf2cbb960975b8f3ca9073fba386e407912f78cc |
|
MD5 | cc29ef4d19ee86478aca321d94f8bd9b |
|
BLAKE2b-256 | e9538984dee276a700b96f43b56511387e2379a3bb5ec7a09b59fb0a4a61dbe6 |
Hashes for pyddm-0.6.0-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 751d74c3fb650cce9d5055c9f3a15b015e39106b8940e61e4b6c4761ec8b3790 |
|
MD5 | f8c83a2c9c0505538fa756ab39a10b3c |
|
BLAKE2b-256 | 9140f051c88f1ba43623c8819dc8af4402233ee4e58b764b761a5ab4228092f9 |
Hashes for pyddm-0.6.0-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0423f54b95349b1e3f18f97927cf646f2df855abaacc85561af7fad95a769a7a |
|
MD5 | 384bc4423f303b9d65523ed0a66d500c |
|
BLAKE2b-256 | 96c5c1356e776935637404cb9e347579032f624b5bb8b507418f682db2e8e479 |
Hashes for pyddm-0.6.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 463defe2ed04ecef2481d8c3f1aa134f15335594e1244e1224fbd557cf5ea058 |
|
MD5 | fbd72ad6392e6b3dececba651b306024 |
|
BLAKE2b-256 | b950298231872a5dc60e81f1526e6e2e9a91b417da55f922d115705332fc31b2 |
Hashes for pyddm-0.6.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6aabf116a3118ad1183e38e5dc8bc7f23314210af68cc3abce24dcd5a1fb0560 |
|
MD5 | 28454e211499b2138bbbc3d91c0b7b89 |
|
BLAKE2b-256 | 2c711d6088aae82f5d5a039a9eaff5f847df6a9fb04bb459d9943a1f2db327cf |
Hashes for pyddm-0.6.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99716633d227bbe2e77194e5b6f9f2c84bebbfcaffd1ea7837fef40adc2326a1 |
|
MD5 | 445e49e64fb4c600356497f90284712d |
|
BLAKE2b-256 | 2cc9500ea36ea9976c1840b125c2ed4e029460b52410939024a1619688cf25cc |