-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #416 from Hjorthmedh/dev
Dev
- Loading branch information
Showing
18 changed files
with
2,178 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"id": "c9ddfad0-22f5-4ae1-a68e-9b7abcd269b4", | ||
"metadata": {}, | ||
"source": [ | ||
"# Lateral inhibition between FS neurons\n", | ||
"\n", | ||
"The FS neuron population are connected by both gap junctions and GABAergic synapses. If a subpopulation of FS receives increased excitation the immediate surrounding neurons should have increased inhibition. Does this then result in reduced inhibition for the FS population further away?" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"id": "958e235b-7242-463d-b7e4-f0c61989a8eb", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "Python 3 (ipykernel)", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.9.2" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |
596 changes: 596 additions & 0 deletions
596
examples/notebooks/Zirui_striatum_network/Zirui-striatum-network.ipynb
Large diffs are not rendered by default.
Oops, something went wrong.
796 changes: 796 additions & 0 deletions
796
examples/parallel/KTH_PDC/lateral_inhibition/FS_lateral/Analyse_FS_latera_linhibition.ipynb
Large diffs are not rendered by default.
Oops, something went wrong.
83 changes: 83 additions & 0 deletions
83
examples/parallel/KTH_PDC/lateral_inhibition/FS_lateral/Dardel_runSnudda_lateral.job
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
#!/bin/bash -l | ||
#SBATCH --partition=main | ||
#SBATCH -o log/runSnudda-%j-output.txt | ||
#SBATCH -e log/runSnudda-%j-error.txt | ||
#SBATCH -t 0:59:00 | ||
#SBATCH -J Snudda | ||
#SBATCH -A naiss2023-5-231 | ||
#SBATCH --nodes=1 | ||
#SBATCH -n 128 | ||
#SBATCH --cpus-per-task=2 | ||
#SBATCH --mem-per-cpu=930M | ||
#SBATCH --mail-type=ALL | ||
module load snic-env | ||
|
||
|
||
#.. | ||
#export OMP_STACKSIZE=128G | ||
ulimit -s unlimited | ||
|
||
|
||
#let NWORKERS="$SLURM_NTASKS-2" | ||
#let NWORKERS="100" | ||
let NWORKERS="40" | ||
|
||
# REMEMBER TO CREATE THE "log" DIRECTORY | ||
|
||
|
||
export IPNWORKERS=$NWORKERS | ||
|
||
|
||
export IPYTHONDIR="/cfs/klemming/scratch/${USER:0:1}/$USER/.ipython" | ||
rm -r $IPYTHONDIR | ||
export IPYTHON_PROFILE=default | ||
source $HOME/Snudda/snudda_env/bin/activate | ||
|
||
|
||
#.. Start the ipcontroller | ||
export FI_CXI_DEFAULT_VNI=$(od -vAn -N4 -tu < /dev/urandom) | ||
srun -n 1 -N 1 -c 2 --exact --overlap --mem=0 ./../../ipcontroller_new.sh & | ||
|
||
|
||
echo ">>> waiting 60s for controller to start" | ||
sleep 60 | ||
|
||
#.. Read in CONTROLLERIP | ||
CONTROLLERIP=$(<controller_ip.txt) | ||
|
||
|
||
##.. Start the engines | ||
echo ">>> starting ${IPNWORKERS} engines " | ||
#srun -n ${IPNWORKERS} -c 2 --exact --overlap ipengine --location=${CONTROLLERIP} --profile=${IPYTHON_PROFILE} --mpi \ | ||
#--ipython-dir=${IPYTHONDIR} --timeout=30.0 --log-level=DEBUG \ | ||
#--BaseParallelApplication.verbose_crash=True --IPEngine.verbose_crash=True \ | ||
#--Kernel.stop_on_error_timeout=1.0 --IPythonKernel.stop_on_error_timeout=1.0 \ | ||
#Session.buffer_threshold=4096 Session.copy_threshold=250000 \ | ||
#Session.digest_history_size=250000 c.EngineFactory.max_heartbeat_misses=10 c.MPI.use='mpi4py' \ | ||
#1> ipe_${SLURM_JOBID}.out 2> ipe_${SLURM_JOBID}.err & | ||
|
||
#srun -n ${IPNWORKERS} -c 2 --exact --overlap valgrind --leak-check=full --show-leak-kinds=all \ | ||
#ipengine --location=${CONTROLLERIP} --profile=${IPYTHON_PROFILE} --mpi \ | ||
#--ipython-dir=${IPYTHONDIR} --timeout=30.0 c.EngineFactory.max_heartbeat_misses=10 c.MPI.use='mpi4py' \ | ||
#1> ipe_${SLURM_JOBID}.out 2> ipe_${SLURM_JOBID}.err & | ||
|
||
export FI_CXI_DEFAULT_VNI=$(od -vAn -N4 -tu < /dev/urandom) | ||
srun -n ${IPNWORKERS} -c 2 -N ${SLURM_JOB_NUM_NODES} --exact --overlap --mem=0 ipengine \ | ||
--location=${CONTROLLERIP} --profile=${IPYTHON_PROFILE} --mpi \ | ||
--ipython-dir=${IPYTHONDIR} --timeout=30.0 c.EngineFactory.max_heartbeat_misses=10 c.MPI.use='mpi4py' \ | ||
1> ipe_${SLURM_JOBID}.out 2> ipe_${SLURM_JOBID}.err & | ||
|
||
|
||
echo ">>> waiting 60s for engines to start" | ||
sleep 30 | ||
|
||
export FI_CXI_DEFAULT_VNI=$(od -vAn -N4 -tu < /dev/urandom) | ||
srun -n 1 -N 1 --exact --overlap --mem=0 ./Dardel_runSnudda_lateral.sh | ||
|
||
|
||
echo " " | ||
|
||
echo "JOB END "`date` start_time_network_connect.txt | ||
|
||
wait | ||
|
122 changes: 122 additions & 0 deletions
122
examples/parallel/KTH_PDC/lateral_inhibition/FS_lateral/Dardel_runSnudda_lateral.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
#!/bin/bash | ||
|
||
|
||
|
||
SNUDDA_DIR=$HOME/Snudda/snudda | ||
JOBDIR=../networks/FS_lateral | ||
|
||
# SIMSIZE=50000 | ||
|
||
# If the BasalGangliaData directory exists, then use that for our data | ||
#/cfs/klemming/scratch/${USER:0:1}/$USER/BasalGangliaData/data | ||
#BasalGangliaData/Parkinson/PD0 | ||
if [[ -d "$HOME/BasalGangliaData/data" ]]; then | ||
export SNUDDA_DATA="$HOME/BasalGangliaData/data" | ||
echo "Setting SNUDDA_DATA to $SNUDDA_DATA" | ||
else | ||
echo "SNUDDA_DATA environment variable not changed (may be empty): $SNUDDA_DATA" | ||
fi | ||
|
||
mkdir -p $JOBDIR | ||
|
||
echo "Dardel_runSnudda.sh should be started with srun -n 1, to only get one process" | ||
|
||
echo "SLURM_PROCID = $SLURM_PROCID" | ||
|
||
if [ "$SLURM_PROCID" -gt 0 ]; then | ||
mock_string="Not main process" | ||
else | ||
|
||
# For debug purposes: | ||
echo "PATH: "$PATH | ||
echo "IPYTHONDIR: "$IPYTHONDIR | ||
echo "PYTHONPATH: "$PYTHONPATH | ||
echo "LD_LIBRARY_PATH: "$LD_LIBRARY_PATH | ||
|
||
echo ">>>>>> Main process starting ipcluster" | ||
echo | ||
|
||
echo "Start time: " > start_time_network_connect.txt | ||
date >> start_time_network_connect.txt | ||
|
||
echo ">>> Init: "`date` | ||
# snudda init ${JOBDIR} --size ${SIMSIZE} --overwrite --randomseed 1234 | ||
python setup_FS_lateral.py ${JOBDIR} | ||
|
||
if [ $? != 0 ]; then | ||
echo "Something went wrong during init, aborting!" | ||
ipcluster stop | ||
exit -1 | ||
fi | ||
|
||
# WE NOW START IPCLUSTER USING ipcontroller.sh INSTEAD... | ||
# | ||
# echo "SLURM_NODELIST = $SLURM_NODELIST" | ||
# let NWORKERS="$SLURM_NTASKS - 1" | ||
# | ||
# echo ">>> NWORKERS " $NWORKERS | ||
# echo ">>> Starting ipcluster `date`" | ||
# | ||
# #.. Start the ipcluster | ||
# ipcluster start -n ${NWORKERS} \ | ||
# --ip='*' \ | ||
# --HeartMonitor.max_heartmonitor_misses=1000 \ | ||
# --HubFactory.registration_timeout=600 \ | ||
# --HeartMonitor.period=10000 & | ||
# | ||
# | ||
# #.. Sleep to allow engines to start | ||
# echo ">>> Wait 120s to allow engines to start" | ||
# sleep 120 #60 | ||
|
||
echo ">>> Place: "`date` | ||
snudda place ${JOBDIR} --verbose --ipython_timeout 600 | ||
|
||
if [ $? != 0 ]; then | ||
echo "Something went wrong during placement, aborting!" | ||
# ipcluster stop | ||
exit -1 | ||
fi | ||
|
||
echo ">>> Detect: "`date` | ||
snudda detect ${JOBDIR} --hvsize 50 --parallel --ipython_timeout 600 | ||
|
||
if [ $? != 0 ]; then | ||
echo "Something went wrong during detection, aborting!" | ||
# ipcluster stop | ||
exit -1 | ||
fi | ||
|
||
echo ">>> Prune: "`date` | ||
snudda prune ${JOBDIR} --parallel --ipython_timeout 600 | ||
|
||
if [ $? != 0 ]; then | ||
echo "Something went wrong during pruning, aborting!" | ||
# ipcluster stop | ||
exit -1 | ||
fi | ||
|
||
# Disable input generation at the moment | ||
|
||
# echo ">>> Ablate: "`date` | ||
# python ../ablate_network.py ${JOBDIR} | ||
|
||
echo ">>> Input: "`date` | ||
# snudda input ${JOBDIR} --parallel --time 18 --input input.json --networkFile ${JOBDIR}/network-synapses-minimal.hdf5 | ||
snudda input ${JOBDIR} --parallel --time 15 --input input.json --ipython_timeout 600 | ||
|
||
|
||
#.. Shut down cluster | ||
# ipcluster stop | ||
#.. Shutdown ipcontroller | ||
echo "Shutting down ipcontroller" | ||
|
||
python ../../ipcontroller_shutdown.py | ||
|
||
|
||
date | ||
#echo "JOB END "`date` start_time_network_connect.txt | ||
|
||
echo "EXITING Dardel_runjob_lateral.sh" | ||
|
||
fi |
95 changes: 95 additions & 0 deletions
95
examples/parallel/KTH_PDC/lateral_inhibition/FS_lateral/Dardel_simulate_lateral.job
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
#!/bin/bash -l | ||
#SBATCH --partition=main | ||
#SBATCH -o log/Simulate-%j-output.txt | ||
#SBATCH -e log/Simulate-%j-error.txt | ||
#SBATCH -t 2:59:00 | ||
#SBATCH --time-min=2:59:00 | ||
#SBATCH -J Simulate | ||
#SBATCH -A naiss2023-5-231 | ||
#SBATCH --nodes=5 | ||
#SBATCH --tasks-per-node=50 | ||
#SBATCH --mail-type=ALL | ||
|
||
# 2024-02-16: 40 nodes worked, had 28% free... trying increasing to 45 nodes | ||
# 2024-03-01: 60 nodes, 50 workers worked... | ||
|
||
# You need to point this as the directory where you created the network in | ||
#NETWORK_DIR=/cfs/klemming/home/${USER:0:1}/$USER/Snudda/examples/parallel/KTH_PDC/networks/test_10k | ||
NETWORK_DIR=../networks/FS_lateral | ||
|
||
SIMULATION_CONFIG_WITH_SYNAPSES=experiment_config_FS_lateral-with-synapses.json | ||
SIMULATION_CONFIG_NO_SYNAPSES=experiment_config_FS_lateral-no-synapses.json | ||
|
||
|
||
# NETWORK_WITH_SYNAPSES_OUTPUT=$NETWORK_DIR/simulation/output-with-synapses-sten_1.hdf5 | ||
# NETWORK_NO_SYNAPSES_OUTPUT=$NETWORK_DIR/simulation/output-no-synapses-sten_1.hdf5 | ||
|
||
|
||
export N_WORKERS=$SLURM_NTASKS | ||
|
||
module load snic-env | ||
source $HOME/Snudda/snudda_env/bin/activate | ||
SNUDDA_DIR=/cfs/klemming/home/"${USER:0:1}"/$USER/Snudda | ||
|
||
# If the BasalGangliaData directory exists, then use that for our data | ||
if [[ -d "/cfs/klemming/home/${USER:0:1}/$USER/BasalGangliaData/data" ]]; then | ||
export SNUDDA_DATA="/cfs/klemming/home/${USER:0:1}/$USER/BasalGangliaData/data" | ||
echo "Setting SNUDDA_DATA to $SNUDDA_DATA" | ||
rm mechanisms | ||
ln -s $SNUDDA_DATA/neurons/mechanisms/ mechanisms | ||
else | ||
echo "SNUDDA_DATA environment variable not changed (may be empty): $SNUDDA_DATA" | ||
rm mechanisms | ||
ln -s ../../../../snudda/data/neurons/mechanisms/ | ||
fi | ||
|
||
|
||
NETWORK_INFO_FILE=$NETWORK_DIR/network-synapses.hdf5 | ||
# NETWORK_INFO_FILE=$NETWORK_DIR/network-synapses-minimal.hdf5 | ||
NETWORK_INPUT_FILE=$NETWORK_DIR/input-spikes.hdf5 | ||
# NETWORK_VOLTAGE_FILE=$NETWORK_DIR/simulation/voltage-trace-${SLURM_JOBID}.txt | ||
|
||
|
||
|
||
echo "Network dir: "$NETWORK_DIR | ||
|
||
export PATH=$SNUDDA_DIR/snudda_env/bin/:$PATH | ||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CRAY_LD_LIBRARY_PATH | ||
export PYTHONPATH=$SNUDDA_DIR/snudda_env/lib/python3.9/ | ||
|
||
############## | ||
|
||
rm -r x86_64 | ||
|
||
export CXX=CC | ||
export CC=cc | ||
export FC=ftn | ||
export MPICC=cc | ||
export MPICXX=CC | ||
|
||
CC --version | ||
|
||
echo "About to run nrnivmodl" | ||
which nrnivmodl | ||
|
||
# srun -n nrnivmodl mechanisms/ | ||
|
||
srun -n 1 nrnivmodl -incflags "-lltdl=/usr/lib64/libltdl.so.7 -lreadline=/lib64/libreadline.so.7 -lncurses=/lib64/libncurses.so.6.1" -loadflags "-DLTDL_LIBRARY=/usr/lib64/libltdl.so.7 -DREADLINE_LIBRARY=/lib64/libreadline.so.7 -DNCURSES_LIBRARY=/lib64/libncurses.so.6.1" mechanisms/ | ||
|
||
# GJ disabled | ||
# srun -n $N_WORKERS $SNUDDA_DIR/examples/parallel/x86_64/special -mpi -python $SNUDDA_DIR/simulate/simulate.py $NETWORK_INFO_FILE $NETWORK_INPUT_FILE --disableGJ --time 3.5 --voltOut $NETWORK_VOLTAGE_FILE | ||
|
||
# GJ active | ||
# srun -n $N_WORKERS $SNUDDA_DIR/examples/parallel/KTH_PDC/x86_64/special -mpi -python $SNUDDA_DIR/snudda/simulate/simulate.py $NETWORK_INFO_FILE $NETWORK_INPUT_FILE --time 18 --outputFile $NETWORK_WITH_SYNAPSES_OUTPUT | ||
|
||
# srun -n $N_WORKERS $SNUDDA_DIR/examples/parallel/KTH_PDC/x86_64/special -mpi -python $SNUDDA_DIR/snudda/simulate/simulate.py $NETWORK_INFO_FILE $NETWORK_INPUT_FILE --time 18 --disableSyn --outputFile $NETWORK_NO_SYNAPSES_OUTPUT | ||
|
||
|
||
# Changed to using the simulation_config | ||
|
||
srun -n $N_WORKERS $SNUDDA_DIR/examples/parallel/KTH_PDC/x86_64/special -mpi -python $SNUDDA_DIR/snudda/simulate/simulate.py dummy_file dummy_file --simulation_config $SIMULATION_CONFIG_WITH_SYNAPSES | ||
|
||
srun -n $N_WORKERS $SNUDDA_DIR/examples/parallel/KTH_PDC/x86_64/special -mpi -python $SNUDDA_DIR/snudda/simulate/simulate.py dummy_file dummy_file --simulation_config $SIMULATION_CONFIG_NO_SYNAPSES | ||
|
||
|
||
# srun -n $N_WORKERS $SNUDDA_DIR/examples/parallel/KTH_PDC/x86_64/special -mpi -python $SNUDDA_DIR/snudda/simulate/simulate.py $NETWORK_INFO_FILE $NETWORK_INPUT_FILE --time 5 --noVolt |
11 changes: 11 additions & 0 deletions
11
...allel/KTH_PDC/lateral_inhibition/FS_lateral/experiment_config_FS_lateral-no-synapses.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{ | ||
"network_file": "../networks/FS_lateral/network-synapses.hdf5", | ||
"input_file": "../networks/FS_lateral/input-spikes.hdf5", | ||
"output_file": "../networks/FS_lateral/simulation/output-no-synapses-FS_lateral-A.hdf5", | ||
"log_file": "../networks/FS_lateral/log/network-simulation-no-synapses-log-4A.txt", | ||
"sample_dt": 0.01, | ||
"time": 20.0, | ||
"disable_synapses": true, | ||
"record_all_soma": true, | ||
"!record_all_compartments": [0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500] | ||
} |
10 changes: 10 additions & 0 deletions
10
...lel/KTH_PDC/lateral_inhibition/FS_lateral/experiment_config_FS_lateral-with-synapses.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"network_file": "../networks/FS_lateral/network-synapses.hdf5", | ||
"input_file": "../networks/FS_lateral/input-spikes.hdf5", | ||
"output_file": "../networks/FS_lateral/simulation/output-with-synapses-FS_lateral-A.hdf5", | ||
"log_file": "../networks/FS_lateral/log/network-simulation-with-synapses-log-4A.txt", | ||
"sample_dt": 0.01, | ||
"time": 20.0, | ||
"record_all_soma": true, | ||
"!record_all_compartments": [0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500] | ||
} |
27 changes: 27 additions & 0 deletions
27
examples/parallel/KTH_PDC/lateral_inhibition/FS_lateral/input.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{ | ||
"FS": { | ||
"cortical:0" : { | ||
"generator" : "poisson", | ||
"start" : [0], | ||
"end" : [20], | ||
"frequency" : [2], | ||
"population_unit_id" : 0 | ||
}, | ||
|
||
"cortical:1" : { | ||
"generator" : "poisson", | ||
"start" : [0, 5, 10, 15], | ||
"end" : [5, 10, 15, 20], | ||
"frequency" : [0, 5, 10, 0], | ||
"population_unit_id" : 1 | ||
}, | ||
|
||
"cortical:2" : { | ||
"generator" : "poisson", | ||
"start" : [0, 15], | ||
"end" : [15, 20], | ||
"frequency" : [2, 10], | ||
"population_unit_id" : 2 | ||
} | ||
} | ||
} |
Empty file.
Oops, something went wrong.