All Projects → PrincetonUniversity → PsyNeuLink

PrincetonUniversity / PsyNeuLink

Licence: Apache-2.0 license
A block modeling system for cognitive neuroscience

Programming Languages

python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to PsyNeuLink

CCN Association
认知计算神经联盟 讨论会
Stars: ✭ 49 (-32.88%)
Mutual labels:  neuroscience, cognitive-science
awesome-cogsci
An Awesome List of Cognitive Science Resources
Stars: ✭ 71 (-2.74%)
Mutual labels:  neuroscience, cognitive-science
Brainiak
Brain Imaging Analysis Kit
Stars: ✭ 232 (+217.81%)
Mutual labels:  neuroscience
ndstore
code for storing neurodata images and image annotations
Stars: ✭ 39 (-46.58%)
Mutual labels:  neuroscience
stringer-pachitariu-et-al-2018a
Recordings of 10k neurons during spontaneous behaviors
Stars: ✭ 43 (-41.1%)
Mutual labels:  neuroscience
Pyphi
A toolbox for integrated information theory.
Stars: ✭ 246 (+236.99%)
Mutual labels:  neuroscience
Pyllusion
A Parametric Framework to Generate Visual Illusions using Python
Stars: ✭ 35 (-52.05%)
Mutual labels:  neuroscience
Awesome Computational Neuroscience
A list of schools and researchers in computational neuroscience
Stars: ✭ 230 (+215.07%)
Mutual labels:  neuroscience
spikeinterface
A Python-based module for creating flexible and robust spike sorting pipelines.
Stars: ✭ 193 (+164.38%)
Mutual labels:  neuroscience
cyclops
Precision current source, with optional optical feedback, for driving LEDs and laser diodes
Stars: ✭ 38 (-47.95%)
Mutual labels:  neuroscience
brian2cuda
A brian2 extension to simulate spiking neural networks on GPUs
Stars: ✭ 46 (-36.99%)
Mutual labels:  neuroscience
nengo-dl
Deep learning integration for Nengo
Stars: ✭ 76 (+4.11%)
Mutual labels:  neuroscience
THINGSvision
Python package for extracting and analyzing image representations from state-of-the-art neural networks for computer vision
Stars: ✭ 106 (+45.21%)
Mutual labels:  cognitive-science
pyRiemann
Python machine learning package based on sklearn API for multivariate data processing and statistical analysis of symmetric positive definite matrices via Riemannian geometry
Stars: ✭ 470 (+543.84%)
Mutual labels:  neuroscience
Open Computational Neuroscience Resources
A publicly-editable collection of open computational neuroscience resources
Stars: ✭ 234 (+220.55%)
Mutual labels:  neuroscience
2017-summer-workshop
Exercises, data, and more for our 2017 summer workshop (funded by the Estes Fund and in partnership with Project Jupyter and Berkeley's D-Lab)
Stars: ✭ 33 (-54.79%)
Mutual labels:  cognitive-science
Brayns
Visualizer for large-scale and interactive ray-tracing of neurons
Stars: ✭ 232 (+217.81%)
Mutual labels:  neuroscience
CellExplorer
CellExplorer is a graphical user interface, a standardized processing module and data structure for exploring and classifying single cells acquired using extracellular electrodes.
Stars: ✭ 55 (-24.66%)
Mutual labels:  neuroscience
arbor
The Arbor multi-compartment neural network simulation library.
Stars: ✭ 87 (+19.18%)
Mutual labels:  neuroscience
artificial-neural-variability-for-deep-learning
The PyTorch Implementation of Variable Optimizers/ Neural Variable Risk Minimization proposed in our Neural Computation paper: Artificial Neural Variability for Deep Learning: On overfitting, Noise Memorization, and Catastrophic Forgetting.
Stars: ✭ 34 (-53.42%)
Mutual labels:  neuroscience
https://github.com/PrincetonUniversity/PsyNeuLink/workflows/PsyNeuLink%20CI/badge.svg?branch=master

Welcome to PsyNeuLink

(pronounced: /sīnyoolingk - sigh-new-link) Documentation is available at https://princetonuniversity.github.io/PsyNeuLink/

Purpose

PsyNeuLink is an open-source, software environment written in Python, and designed for the needs of neuroscientists, psychologists, computational psychiatrists and others interested in learning about and building models of the relationship between brain function, mental processes and behavior.

PsyNeuLink can be used as a "block modeling environment", in which to construct, simulate, document, and exchange computational models of neural mechanisms and/or psychological processes at the subsystem and system levels. A block modeling environment allows components to be constructed that implement various, possibly disparate functions, and then link them together into a system to examine how they interact. In PsyNeuLink, components are used to implement the function of brain subsystems and/or psychological processes, the interaction of which can then be simulated at the system level.

The purpose of PsyNeuLink is to make it as easy as possible to create new and/or import existing models, and integrate them to simluate system-level interactions. It provides a suite of core components for implementing models of various forms of processing, learning, and control, and its Library includes examples that combine these components to implement published models. As an open source project, its suite of components is meant to be enhanced and extended, and its library is meant to provide an expanding repository of models, written in a concise, executable, and easy to interpret form, that can be shared, compared, and extended by the scientific community.

What PsyNeuLink IS

It is:

  • open source, freeing users of the costs or restrictions associated with proprietary software.
  • computationally general -- it can be used to implement, seamlessly integrate, and simulate interactions among disparate components that vary in their granularity of representation and function (from individual neurons or neural populations to functional subsystems and abstract cognitive functions) and at any time scale of execution.
  • integrative -- it provides a standard and accessible environment for model comparison, sharing, and documentation;
  • extensible -- it has an interface (API) that allows it to be used with other powerful tools for implementing individual components, such as:

    • Neuron and Nengo (biophysically realistic models of neuronal function)
    • Emergent (broad class of neurally-plausible connectionist models);
    • Pytorch and TensorFlow (ODE's, deep learning);
    • ACT-R (symbolic, production system models).

Note

PsyNeuLink is alpha software, that is still being actively developed. Although it is useable, and most of the documented functionality is available, some features may not yet be fully implemented and/or subject to modification. Please report any bugs and/or suggestions for development to [email protected].

What PsyNeuLink is NOT

The longterm goal of PsyNeuLink is to provide an environment that integrates comptutational modeling of brain function and behavior at all levels of analysis. While it is designed to be fully general, and can in principle be used to implement models at any level, it is still under development, and current efficiency considerations make it more suitable for some of forms of modeling than others. In its present form, it is well suited to the creation of simple to moderately complex models, and for the integration of disparate models into a single environment, while in it is presently less well suited to efforts involving massively large computations, such as:

  • extensive model fitting
  • large scale simulations
  • highly detailed biophysical models of neurons or neuronal populations

Other packages currently better suited to such applications are: Emergent for biologically-inspired neural network models Pytorch and TensorFlow (for deep learning models); HDDM (for Drift Diffusion Models); ACT-R (for production system models); Genesis, Neuron, and Nengo (for biophysically-realistic models of neuronal function).

These packages are good for elaborate and detailed models of a particular form. In contrast, the focus in designing PsyNeuLink has been to make it as flexible and easy to use as possible, with the ability to integrate components constructed in other packages (including some of the ones listed above) into a single environment. These are characteristics that are often (at least in the initial stages of development) in tension with efficiency (think: interpreted vs. compiled).

That said, priorities for ongoing development of PsyNeuLink are:
  1. acceleration, using just-in-time compilation methods and parallelization (see Compilation, and Vesely et al., 2022);
  2. enhancement of the API to facilitate wrapping modules from other packages for integration into the PsyNeuLink environment (examples currently exist for Pytorch ) and translating into a standard Model Description Format (MDF);
  3. integration of tools for parameter estimation, model comparison and data fitting (see ParameterEstimationComposition); and
  4. a graphic interface for the construction of models and realtime display of their execution (see PsyNeuLinkView).

Environment Overview

PsyNeuLink is written in Python, and conforms to the syntax, coding standards and modular organization shared by most Python packages. BasicsAndPrimer provides an orientation to PsyNeuLinks Components, some examples of what PsyNeuLink models look like, and some of its capabilities. QuickReference provides an overview of how PsyNeuLink is organized and some of its basic principles of operation. The Tutorial provides an interactive guide to the construction of models using PsyNeuLink. Core contains the fundamental objects used to build PsyNeuLink models, and Library contains extensions, including speciality components, implemented compositions, and published models.

Installation

PsyNeuLink is compatible with python versions >= 3.5, and is available through PyPI:

pip install psyneulink

All prerequisite packages will be automatically added to your environment.

If you downloaded the source code, navigate to the cloned directory in a terminal, switch to your preferred python3 environment, then run

pip install .

Dependencies that are automatically installed (except those noted as optional) include:

  • numpy
  • matplotlib
  • toposort
  • typecheck-decorator (version 1.2)
  • pillow
  • llvmlite
  • mpi4py (optional)
  • autograd (optional)

Lists of required packages for PsyNeuLink, developing PsyNeuLink, and running the PsyNeuLink tutorial are also stored in pip-style requirements.txt, dev_requirements.txt, and tutorial_requirements.txt in the source code.

PsyNeuLink is an open source project maintined on GitHub. The repo can be cloned from here.

If you have trouble installing the package, or run into other problems, please contact [email protected].

Tutorial

PsyNeuLink includes a tutorial (/tutorial/PsyNeuLink Tutorial.ipynb), that provides examples of how to create basic Components in PsyNeuLink, and combine them into Processes and a System. The examples include construction of a simple decision making process using a Drift Diffusion Model, a neural network model of the Stroop effect, and a backpropagation network for learning the XOR problem.

The tutorial can be run in a browser by clicking the badge below, or this link.

To run the tutorial locally, you must run python 3.5 and install additional packages:

pip install psyneulink[tutorial]

or if you downloaded the source:

pip install .[tutorial]

To access the tutorial, make sure you fulfill the requirements mentioned above, download the tutorial notebook (/tutorial/PsyNeuLink Tutorial.ipynb), then run the terminal command

jupyter notebook

Once the notebook opens in your browser, navigate to the location where you saved the tutorial notebook, and click on "PsyNeuLink Tutorial.ipynb".

Help and Issue Reporting

Help is available at [email protected].

Issues can be reported at https://github.com/PrincetonUniversity/PsyNeuLink/issues.

Contributors

(in alphabetical order)

  • Allie Burton, Princeton Neuroscience Institute, Princeton University (formerly)
  • Laura Bustamante, Princeton Neuroscience Institute, Princeton University
  • Jonathan D. Cohen, Princeton Neuroscience Institute, Princeton University
  • Samyak Gupta, Department of Computer Science, Princeton University
  • Abigail Hoskin, Department of Psychology, Princeton University
  • Peter Johnson, Princeton Neuroscience Institute, Princeton University (formerly)
  • Justin Junge, Department of Psychology, Princeton University
  • Qihong Lu, Department of Psychology, Princeton University
  • Kristen Manning, Princeton Neuroscience Institute, Princeton University (formerly)
  • Katherine Mantel, Princeton Neuroscience Institute, Princeton University
  • Lena Rosendahl, Department of Mechanical and Aerospace Engineering, Princeton University
  • Dillon Smith, Princeton Neuroscience Institute, Princeton University (formerly)
  • Markus Spitzer, Princeton Neuroscience Institute, Princeton University (formerly)
  • David Turner, Princeton Neuroscience Institute, Princeton University
  • Jan Vesely, Department of Computer Science, Rutgers University (formerly)
  • Changyan Wang, Princeton Neuroscience Institute, Princeton University (formerly)
  • Nate Wilson, Princeton Neuroscience Institute, Princeton University (formerly)

With substantial and greatly appreciated assistance from:

  • Abhishek Bhattacharjee, Department of Computer Science, Yale University
  • Mihai Capota, Intel Labs, Intel Corporation
  • Bryn Keller, Intel Labs, Intel Corporation
  • Susan Liu, Princeton Neuroscience Institute, Princeton University (formerly)
  • Garrett McGrath, Princeton Neuroscience Institute, Princeton University
  • Sebastian Musslick, Princeton Neuroscience Institute, Princeton University (formerly)
  • Amitai Shenhav, Cognitive, Linguistic, & Psychological Sciences, Brown University
  • Michael Shvartsman, Princeton Neuroscience Institute, Princeton University (formerly)
  • Ben Singer, Princeton Neuroscience Institute, Princeton University
  • Ted Willke, Brain Inspired Computing Lab, Intel Corporation

Support

The development of PsyNeuLink has benefited by generous support from the following agencies:

License

Princeton University licenses this file to You under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.  You may obtain a copy of the License at:
     http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].