Network Dynaimcs Simulation

Overview
A Final Year Project in CUHK, Autumn 2021

Network Dynaimcs Simulation


Files

param.h

  • edit all the variables & settings here

simulate.c

  • the main program to run the network dynaimcs

How to use

  1. edit variables in param.h
  2. place param.h and simulate.c in the same folder
  3. compile simulate.c: gcc -O3 simulate.c -o simulate
  4. wait for results

Output

export up to 4 files

OUT_SPIK

  • stores all the spiking data
    • column 1: index of nodes, starting from 1
    • column 2: number of spikes of the corresponding node
    • remining columns: time-stamps of each spikes

OUT_POTV

  • stores the time series of membrane potential v(t) for the network dynamics

OUT_INFO

  • stores all the variables and settings as well as execution time for a simulation, for later reference

INI_CNFG

  • same as OUT_INFO, designated for easy computer program importation

Notes

  1. results will be output in the same folder as the codes, i.e., next to them

Optimization

Choice of compiler

After compiling the source code with several C compilerson Windows system, MinGW TDM-GCC 64 seems to be a good choice. Its running time is lesser than Cygwin64, the attached terminal of Visual Studio Code and MinGW 64/32. You can find MinGW TDM-GCC 64 here: https://jmeubank.github.io/tdm-gcc/

Compiling flag

I recommend using the -O3 flag when compiling, e.g., >gcc -O3 simulate.c -o simulate It turns on all the -O3 optimization flags, which reduce the running time significantly. Visit here for more details: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

Notes

This program creates multiple 1-/2-dimensional arrays when running. It accesses the array elements in the tightest loops. Fast memory is essential as the program freqently reads from / writes into RAM. Also, if you enable output for time series, try to write the file on a fast drive, such as SSD, it will be substantially faster. You can change the output path for time series data file in 'param.h'.



Analysing Network and Their Dynamics


Files

coupling.py

  • calculate
    • connection probability
    • statistics of synaptic weight
    • average synaptic weight
    • ratio of suppression & enhancement
  • plot
    • average synaptic weight distribution

spiking.py

  • calculate
    • average firing rate and its statistics
    • statistics of ISI (inter-spike interval)
    • identifying bursting nodes (work in progess)
    • statistics of synaptic weight of a network
    • average synaptic weight
    • ratio of suppression & enhancement
  • plot
    • reformat spiking data
    • spike raster plot
    • firing rate distribution
    • ISI distribution

spiking_compare.py

  • calculate
    • changes in firing rate
    • ratio of change in firing rate
  • plot
    • firing rate distribution (compared)
    • ISI distribution (compared)
    • change in firing rate distribution (&combined)
    • Ratio of suppression / enhancement vs ratio of increase in firing rate (&combined)
Owner
Likchun
Hello
Likchun
pyngrok is a Python wrapper for ngrok

pyngrok is a Python wrapper for ngrok that manages its own binary, making ngrok available via a convenient Python API.

Alex Laird 329 Dec 31, 2022
Juniper SNMP Migrations For Python

Juniper SNMP Migrations This example will show how to use the PyEZ plugin for Nornir to build a NETCONF connection to a remote device validate that SN

Calvin Remsburg 1 Jan 07, 2022
This repository contain sample code of gRPC Communication between Python and GoLang

This repository contain sample code of gRPC Communication between Python and GoLang, the Server is running on GoLang while Python is running the client

Abdullahi Muhammad 2 Nov 29, 2021
ARTEMIS: Real-Time Detection and Automatic Mitigation for BGP Prefix Hijacking.

ARTEMIS: Real-Time Detection and Automatic Mitigation for BGP Prefix Hijacking. This is the main ARTEMIS repository that composes artemis-frontend, artemis-backend, artemis-monitor and other needed c

INSPIRE Group @FORTH-ICS 273 Jan 01, 2023
A simple implementation of an RPC toolkit

Simple RPC With Raw Sockets Repository for the Data network course project: Introduction In this project, you will attempt to code a simple implementa

Milad Samimifar 1 Mar 25, 2022
Docker container for demoing Wi-Fi calling stack.

VoWiFiLocalDemo - Docker container that runs StrongSwan and Kamailio to demonstrate how Wi-Fi calling works on smartphones.

18 Nov 12, 2022
Quickly fetch your WiFi password and if needed, generate a QR code of your WiFi to allow phones to easily connect

wifi-password Quickly fetch your WiFi password and if needed, generate a QR code of your WiFi to allow phones to easily connect. Works on macOS and Li

Siddharth Dushantha 2.6k Jan 05, 2023
A TCP Chatroom built with python and TCP/IP sockets, consisting of a server and multiple clients which can connect with the server and chat with each other.

A TCP Chatroom built with python and TCP/IP sockets, consisting of a server and multiple clients which can connect with the server and chat with each other. It also provides an Admin role with featur

3 May 22, 2022
An ansible playbook to set up wireguard server.

Poor man's VPN (pay for only what you need) An ansible playbook to quickly set up Wireguard server for occasional personal use. It takes around five m

Amrit Bera 613 Dec 25, 2022
A simple Tor switcher script switches tor nodes in interval of time

Tor_Switcher A simple Tor switcher script switches tor nodes in interval of time This script will switch tor nodes in every interval of time that you

d4rk sh4d0w 2 Nov 15, 2021
PcapXray - A Network Forensics Tool - To visualize a Packet Capture offline as a Network Diagram

PcapXray - A Network Forensics Tool - To visualize a Packet Capture offline as a Network Diagram including device identification, highlight important communication and file extraction

Srinivas P G 1.4k Dec 28, 2022
Eclipse zenoh Python API

Eclipse zenoh Python API Eclipse zenoh is an extremely efficient and fault-tolerant Named Data Networking (NDN) protocol that is able to scale down to

26 Jan 05, 2023
A Simple but Powerful cross-platform port scanning & and network automation tool.

DEDMAP is a Simple but Powerful, Clever and Flexible Cross-Platform Port Scanning tool made with ease to use and convenience in mind. Both TCP

Anurag Mondal 30 Dec 16, 2022
Tiny Interactive File Transfer Application

TIFTA: Tiny Interactive File Transfer Application This repository holds all the source code, tests and documentation of the TIFTA software. The main g

Jorge Martínez 2 Dec 08, 2021
Pesquise, filtre e obtenha informações sobre animes. ( Módulo PIP )

Pesquise, filtre e obtenha informações sobre animes. ( Módulo PIP )

AimCaffe 3 Jan 30, 2022
Extended refactoring capabilities for Python LSP Server using Rope.

pylsp-rope Extended refactoring capabilities for Python LSP Server using Rope. This is a plugin for Python LSP Server, so you also need to have it ins

36 Dec 24, 2022
Automatically block traffic on Cloudflare's side based on Nginx Log parsing.

AutoRL This is a PoC of automatically block traffic on Cloudflare's side based on Nginx Log parsing. It will evaluate Nginx access.log and find potent

Nova Kwok 62 Dec 28, 2022
Pritunl is a distributed enterprise vpn server built using the OpenVPN protocol.

Pritunl is a distributed enterprise vpn server built using the OpenVPN protocol.

Pritunl 3.8k Jan 03, 2023
Load balancing DICOM router

dicom-loadbalancer Load balancing DICOM router (WORK IN PROGRESS) The DICOM loadbalancer provides functionality for acting as any number of DICOM SCPs

Søren Boll Overgaard 1 Jan 15, 2022
Connects to databases or sftp server based on configured environmental variables.

Myconnections Connects to Oracle databases or sftp servers depending on configured environmental variables. VERY IMPORTANT: VPN must exist. Installati

0 Jan 02, 2022