https://github.com/jbrea/netsim
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (6.1%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: jbrea
- License: other
- Language: Julia
- Default Branch: master
- Size: 11.7 KB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
NetSim
A framework for fast prototyping of (rate-based and spiking neural) networks.
Installation
julia
Pkg.clone("https://github.com/jbrea/NetSim")
To visualize networks install graphviz (e.g. brew install graphviz on OSX
or apt-get install graphviz on Ubuntu).
Example
```julia using NetSim
Define neuron and parameter types
type NoNeuronParameters <: NeuronParameters end
type InputNeuron <: Neuron outp::Array{Float64, 1} end function InputNeuron(nof::Int64, parameters::NoNeuronParameters) InputNeuron(rand(nof)) end
type MyNeuronParameters <: NeuronParameters gamma::Float64 end
type MyNeuron <: Neuron parameters::MyNeuronParameters membranePotential::Array{Float64, 1} outp::Array{Float64, 1} end function MyNeuron(nof::Int64, parameters::MyNeuronParameters) MyNeuron(parameters, zeros(nof), zeros(n_of)) end
define update and message collection function
import NetSim.updateneuron! function updateneuron!(neuron::MyNeuron) for i in 1:length(neuron.outp) neuron.membranePotential[i] *= neuron.parameters.gamma neuron.outp[i] = clamp(neuron.membranePotential[i], 0, 1) end end import NetSim.collectmessages! function collectmessages!(neuron::MyNeuron, inputconnections) weightedprerates!(neuron.membranePotential, inputconnections[:default], 1 - neuron.parameters.gamma) end
create a network
net = SimpleNetwork() addlayer!(net, Layer(:inputlayer, InputNeuron, NoNeuronParameters(), 5)) addlayer!(net, Layer(:firstlayer, MyNeuron, MyNeuronParameters(.8), 5)) connect!(net, :inputlayer, :firstlayer, One2OneConnection) connect!(net, :firstlayer, :firstlayer, StaticDenseConnection)
Visualize network if installation of GraphViz was successful
visualizenet(net)
define variables to record
recordedvariables = [("potential", net.layers[:firstlayer].neurons.membranePotential, 1); ("outp", net.layers[:firstlayer].neurons.outp, 1); ("inp", net.layers[:inputlayer].neurons.outp, 1:5)]
initialize the state of the neurons and run the network for 10^2 steps
net.layers[:firstlayer].neurons.membranePotential[:] = -rand(5) data = monitor(net, recordedvariables, 10^2)
using PyPlot plot(data["potential"], label = "potential of neuron 1") plot(data["outp"], label = "output of neuron 1") plot(data["inp"][:, 1], label = "input") plt:legend ```
Owner
- Login: jbrea
- Kind: user
- Website: https://people.epfl.ch/johanni.brea
- Repositories: 12
- Profile: https://github.com/jbrea
GitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: 9 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0