This is a Brian2
implementation of an anisotropic network introduced in From space to time: Spatial inhomogeneities lead to the emergence of spatiotemporal sequences in spiking neuronal networks. This package depends on the following libraries:
- brian2
- numpy
- scipy
- noise (for Perlin noise)
- matplotlib
- pandas, scikit-learn, seaborn, ... (may be removed or expanded during development)
For further details check the documentation here: https://arashgmn.github.io/anisonet
This repository is under development. Thus, I recommend you to clone this repository so that you can get the updates easier later on. But if you prefer, you can download the repo instead.
I recommend setting up an isolated Conda environment and installing and running this code in that environment. In short, Conda is a package manager by which you can install many libaries independent from one another. There are several benefits to this approach. but for now, just take my word. It is just better to use Conda. Here is what you need to do:
- Go to Anaconda website and download the install either Anaconda or Miniconda (I highly recommand the latter) for your OS.
- Open a terminal (or Anaconda prompt) and create a new environment:
conda create -n <YOUR_ENV_NAME> python=3.10
. Note that the name of this environment (<YOUR_ENV_NAME>
) can be anything. Also, we have anchored the python version to3.10
as our dependencies must be first tested on the newest python version3.11
. - Activate your environment:
conda activate <YOUR_ENV_NAME>
.
- Make sure your environment is activated. In your terminal or Anaconda prompt enter
conda activate <YOUR_ENV_NAME>
. - Update your
setuptools
by entering the following command:pip install --upgrade setuptools
- Navigate to the root directory of the cloned or downloaded repository within the terminal and type
pip install -e .
(with the period at the end).
Note for Windows machines: If the last step failed and you got an error indicating that you have to install Visual Studio, it is likely that you don't have the proper c++ compiler installed on your computer. In short, since we used python=3.10
you must install version 14.x of Visual Studio which is a hefty download, unfortunately. As indicated in the referenced link:
- Install Microsoft Visual Studio 2022 (or later).
- Install the Python development workload and the optional Python native development tools option.
- Install the latest Windows SDK (under Native development in the installer).
- Optional: Set $env:PlatformToolset to your toolset version before building, if it doesn't detect it.
After installation, simply navigate to anisonet/
and run the following command: python demo.py
. This makes a new directory with which contains the results of the Inhibitory Network of the aforementioned paper. This code, constructs and warms up the netowrk, and stores the states. It also visualizes landscape, in- and out-degrees, and the realized landscape, and saves the summary of neuronal activity over a 2.5-second simulation. For changing the network configuration and extending to other possible cases, please read the documentation of configs
module.
We have a main class called Simulate
which sets up the network and runs the simulation. Other files are dedicated to specified tasks:
-
analyze
: a set of functions to analyze the neuronal activity -
anisofy
: samples post-synapses in an anisotropic manner -
configs
: stores some default configuration settings for convenience -
equations
: prepares Brian-friendly equations for neurons and synapses according to the configuration dictionaries -
landscape
: prepares the angular and shift ($\phi, r$ ) landscape -
utils
: some useful utility functions -
viz
: a set of functions for visualizing results
This implementation is a work in progress and possibly contains bugs! Any feedback is welcome.
Some of the recent Linux distributions don't come with git commands pre-installed. On Debian/Ubuntu, you can install it with sudo apt-get install git-all
. Change the command for Arch or RedHat appropriately.
The most prominent workaround is installing Git-bash on Windows systems. It emulates a terminal with some Unix-based commands (ls, cd, cat
, etc.) but more importantly, git
. You can use either the GUI or the command line to clone the repository.