### 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
```