Skip to content

Latest commit

 

History

History
99 lines (73 loc) · 2.51 KB

SIMULATION_APPROACH.md

File metadata and controls

99 lines (73 loc) · 2.51 KB

Simulation approach

Back in time, I used Python 2 to perform simulation and analysis. But now I would rather use Python 3. I have prepared two definition files for singularity images.

Setup

First build singularity image:

sudo singularity build singularity/py3_activity_sequence.sif singularity/py3_activity_sequence.def

Then go to shell of singularity container.

singularity shell singularity/py3_activity_sequence.sif
Preparation

I used Sumatra to track and manage numerical simulations.

Then go to scripts folder, initialize git and smt (Remark: Project name is in this case STAS)

cd scripts
git init
smt init STAS

Add simulation scripts because of Sumatra.

git add simulation
git commit -m 'Add simulation scripts'

Add definition of mimetype for gdf and dat files.

echo 'text/plain    dat gdf' > .smt/mime.types

To keep tracking on current script you have to commit the changes of simulation script.

Simple usage of simulation script

Run simulation script (in shell)

smt run --main simulation/sequence_EI_networks.py params/sequence_EI_networks.json

Additionally, I made own functions for good protocolling method. In lib folder you find a file protocol.py to get data if exists. Otherwise it will perform new simulation with a set of parameters.

Run a simulation script (in ipython) with default parameters (located in params folder)

import pylab as pl
import lib.protocol as protocol

simulation = 'sequence_I_networks'
gids, ts = protocol.get_or_simulate(simulation)

fig,ax = pl.subplots(1,1)
ax.plot(ts, gids, '.')
pl.show()

With specific parameters

params = {'noise': {'mean': 800.}}
gids, ts = protocol.get_or_simulate(simulation, params)

Figures in paper

Command line to visualize results of the simulation

python3 ./scripts/plot/sequence_networks_schematics.py

List of plotting script codes in ./scripts folder

Fig 1: plot/sequence_networks_schematics.py
Fig 2: plot/sequence_I_networks_measurements.py
Fig 3: plot/sequence_networks_cluster_activity.py
Fig 4: plot/sequence_networks_power_spectrum.py
Fig 5: plot/sequence_I_networks_shift_speed.py
Fig 6: plot/sequence_I_networks_perlin_size.py
Fig 7: plot/sequence_networks_mechanism.py
Fig 8: plot/sequence_EI_networks_stim_inputs.py (Attention: it takes long time.)
(Fig 9: visualized with MATLAB)

S1: plot/sequence_networks_connections.py
S3: plot/sequence_EI_networks_input_weights.py (Attention: it takes long time.)
S4: plot/sequence_EI_networks_spectrogram.py