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.
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
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.
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)
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