Skip to content

Commit

Permalink
Merge pull request #748 from suny-downstate-medical-center/development
Browse files Browse the repository at this point in the history
PR from development to master - VERSION 1.0.4
  • Loading branch information
vvbragin authored Mar 30, 2023
2 parents 9bc6384 + bb3b041 commit 4bf6a9d
Show file tree
Hide file tree
Showing 347 changed files with 23,107 additions and 29,976 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ jobs:
pip install -r requirements.txt
pip install -e .
- name: Info on installed package versons
run: |
pip list
- name: Test with pytest
run: |
source tests/test.sh
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,10 @@ examples/asdOptim/simple/
*.pid

examples/optunaOptim/simple/
/examples/NeuroMLImport/test/HHTut.net.nml
/examples/NeuroMLImport/test/HybridTut.net.nml
/examples/NeuroMLImport/test/LEMS_HHTut.xml
/examples/NeuroMLImport/test/LEMS_HybridTut.xml
/examples/NeuroMLImport/test/M1.net.nml
/examples/NeuroMLImport/test/LEMS_M1.xml
arm64
40 changes: 39 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,44 @@
# Version 1.0.4

**New features**

- Added 'linewidth' as argument of plotting.plotSpikeHist()

- More detailed validation of netParams

- Save and load model in native NetPyNE format

- Converted most of examples to new NetPyNE model structure

- Complex stimulation ('rhythmic', 'evoked', 'poisson' and 'gauss') for VecStim created as pointCell (as a population rule)

- Codebase brought into compliance with PEP8 conventions

- Updates in NeuroML examples and tests

**Bug fixes**

- fixed handling filenames with multiple dots in `MetaFigure.saveFig()`

- Fixed readCmdLimeArgs() default arguments for backward-compatibility

- Cleaned up example models to drop some legacy/irrelevant params

- RxD module: Parameters defined before reactions + names given by default when missing (by the key)

- Analysis: try ... except call in plotDipole

- Save hObj of gap junction to connParams

- Removed duplicated or unused code from gridSearch()

- Fixes in batch utilities to make OS-agnostic

# Version 1.0.3.1

- Hotfix to support new GUI functionality
- Hotfix to support new GUI functionality (fixes in grid parameter optimization)

- Removed redundant warnings

# Version 1.0.3

Expand Down
5 changes: 3 additions & 2 deletions doc/source/code/tut1.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import HHTut
from netpyne import sim
sim.createSimulateAnalyze(netParams = HHTut.netParams, simConfig = HHTut.simConfig)
from netParams import netParams
from cfg import cfg
sim.createSimulateAnalyze(netParams = netParams, simConfig = cfg)
4 changes: 2 additions & 2 deletions doc/source/code/tut6.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
netParams.cellParams['PYR'] = {'secs': secs} # add dict to list of cell params

## Population parameters
netParams.popParams['S'] = {'cellType': 'PYR', 'numCells': 20, 'cellModel': 'HH'}
netParams.popParams['M'] = {'cellType': 'PYR', 'numCells': 20, 'cellModel': 'HH'}
netParams.popParams['S'] = {'cellType': 'PYR', 'numCells': 20}
netParams.popParams['M'] = {'cellType': 'PYR', 'numCells': 20}

## Synaptic mechanism parameters
netParams.synMechParams['exc'] = {
Expand Down
4 changes: 2 additions & 2 deletions doc/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@
# built documents.
#
# The short X.Y version.
version = '1.0.3.1'
version = '1.0.4'
# The full version, including alpha/beta/rc tags.
release = '1.0.3.1'
release = '1.0.4'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
58 changes: 58 additions & 0 deletions doc/source/reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,64 @@ Example of point process artificial cell populations::

netParams.popParams['artif3'] = {'cellModel': 'VecStim', 'numCells': 100, 'spkTimes': spkTimes, 'pulses': pulses} # VecStim with spike times

When ``cellModel`` is 'VecStim', a pattern generator may be used by creating a 'spikePattern' dictionary::

netParams.popParams['artif1'] = {'cellModel': 'VecStim'
...
'spikePattern': {'type': 'rhythmic', # can be 'rhythmic', 'evoked', 'poisson', 'gauss'
... # see netpyne/cell/inputs.py for argument entries
}
}


Currently, 'rhythmic', 'evoked', 'poisson' and 'gauss' spike pattern generators are available, their argument entries are:

* **rhythmic** - Creates the ongoing external inputs (rhythmic)

* **start** - time of first spike. if -1, uniform distribution between startMin and startMax (ms)

* **startMin** - minimum values of uniform distribution for start time (ms)

* **startMax** - maximum values of uniform distribution for start time (ms)

* **startStd** - standard deviation of normal distrinution for start time (ms); mean is set by start param. Only used if > 0.0

* **freq** - oscillatory frequency of rhythmic pattern (Hz)

* **freqStd** - standard deviation of oscillatory frequency (Hz)

* **distribution** - distribution type fo oscillatory frequencies; either 'normal' or 'uniform'

* **eventsPerCycle** - spikes/burst per cycle; should be either 1 or 2

* **repeats** - number of times to repeat input pattern (equivalent to number of inputs)

* **stop** - maximum time for last spike of pattern (ms)

* **evoked** - creates the ongoing external inputs (rhythmic)

* **start** - time of first spike. if -1, uniform distribution between startMin and startMax (ms)

* **inc** - increase in time of first spike; from cfg.inc_evinput (ms)

* **startStd** - standard deviation of start (ms)

* **numspikes** - total number of spikes to generate

* **poisson** - creates external Poisson inputs

* **start** - time of first spike (ms)

* **stop** - stop time; if -1 the full duration (ms)

* **frequency** - standard deviation of start (ms)

* **gauss** - Creates Gaussian inputs

* **mu** - Gaussian mean

* **sigma** - Gaussian variance

Finally, it is possible to define a population composed of individually-defined cells by including the list of cells in the ``cellsList`` dictionary field. Each element of the list of cells will in turn be a dictionary containing any set of cell properties such as ``cellLabel`` or location (e.g. ``x`` or ``ynorm``). An example is shown below::

cellsList.append({'cellLabel':'gs15', 'x': 1, 'ynorm': 0.4 , 'z': 2})
Expand Down
Loading

0 comments on commit 4bf6a9d

Please sign in to comment.