v0.5.10
- models now have the parameter
sampling_dt
which will downsample the output to a specified step size (in ms) - loadData: add subject-wise length matrices
ds.Dmats
v0.5.9
ALN
model added to the multimodel frameworkThalamicMassModel
now works with autochunk for very long simulations with minimal RAM usage!
v0.5.8
- Hotfix: include
pypet_logging.ini
in pypi package - Evolution: new method
getIndividualFromHistory()
v0.5.7
example-0.5
: Demonstrating the use of external stimuli on brain networksexample-1.3
: 2D bifurcation diagrams usingpypet
bold
: BOLD numerical overflow bug fixedevolution
: dfEvolution and dfPop fixexploration
: fix seed for random initial conditions- various minor bugfixes
v0.5.5
- Hotfix for RNG seed in exploration: Seed
None
is now converted to"None"
for forpypet
compatibility only when saving themodel.params
to the trajectory. - Fix:
dfEvolution
drops duplicate entries from theevolution.history
.
v0.5.4
- New function
func.construct_stimulus()
- New example of stimulus usage:
examples/example-0.5-aln-external-stimulus.ipynb
- Fixed RNG seed bug, where the seed value None was converted to 0 (because of pypet) and lead to a predictable random number generator
v0.5.3
ALNModel
now records adaptation currents! Accessible via model.outputs.IA
v0.5.1
Evolution:
- NSGA-2 algorithm implemented (Deb et al. 2002)
- Preselect complete algorithms (using
algorithm="adaptive"
or"nsga2"
) - Implement custom operators for all evolutionary operations
- Keep track of the evolution history using
evolution.history
- Genealogy
evolution.tree
available fromevolution.buildEvolutionTree()
that isnetworkx
compatible [1] - Continue working:
saveEvolution()
andloadEvolution()
can load an evolution from another session [2] - Overview dataframe
evolution.dfPop
now has all fitness values as well - Get scores using
getScores()
- Plot evolution progress with
evolutionaryUtils.plotProgress()
Exploration:
- Use
loadResults(all=True)
to load all simulated results from disk to memory (available as.results
) or useall=False
to load runs individually from hdf. Both options populatedfResults
. loadResults()
has memory cap to avoid filling up RAMloadDfResults()
creates the parameter table from a previous simulationexplorationUtils.plotExplorationResults()
for plotting 2D slices of the explored results with some advanced functions like alpha maps and contours for predefined regions.
devUtils
- A module that we are using for development and research with some nice features. Please do not rely on this file since there might be breaking changes in the future.
plot_outputs()
like a true numerical simlordmodel_fit()
to compute the model's FC and FCD fit to the dataset, could be usefull for everyonegetPowerSpectrum()
does what is saysgetMeanPowerSpectrum()
same- a very neat
rolling_window()
from anumpy
PR that never got accepted
Other:
- Data loading:
Dataset
can load different SC matrix normalizations:"max", "waytotal", "nvoxel"
- Can precompute FCD matrices to avoid having to do it later (
fcd=True
)
neurolib/utils/atlas.py
added with aal2 region names (thanks @jajcayn) and coordinates of centers of regions (from scans of @caglorithm's brain π€―)ParameterSpace
has.lowerBound
and.upperBound
.pypet
finally doesn't create a billion log files anymore due to a custom log config
v0.5.0
- New model: Thalamus model
ThalamicMassModel
(thanks to @jajcayn)- Model by Costa et al. 2016, PLOS Computational Biology
- New tools for parameter exploration:
explorationUtils.py
akaeu
- Postprocessing of exploration results using
eu.processExplorationResults()
- Find parameters of explored simulations using
eu.findCloseResults()
- Plot exploration results via
eu.plotExplorationResults()
(see example image below)
- Postprocessing of exploration results using
- Custom transformation of the inputs to the
BOLDModel
.- This is particularly handy for phenomenological models (such as
FHNModel
,HopfModel
andWCModel
) which do not produce firing rate outputs with units inHz
.
- This is particularly handy for phenomenological models (such as
- Improvements
- Models can now generate random initial conditions using
model.randomICs()
model.params['bold'] = True
forces BOLD simulationBoxSearch
class:search.run()
passes arguments tomodel.run()
- BOLD output time array renamed to
t_BOLD
- Models can now generate random initial conditions using
v0.4.1
- New model: Wilson-Cowan neural mass model implemented (thanks to @ChristophMetzner )
- Simulations now start their output at
t=dt
(as opposed tot=0
before). Everything before is now considered an initial condition. - Fix: Running a simulation chunkwise (using
model.run(chunkwise=True)
) and normally (usingmodel.run()
) produces output of the same length - Fix:
aln
network coupling, which apparent when simulating chunkwise withmodel.run(chunkwise=True, chunksize=1)
- Fix: Correct use of seed for RNG
- Fix: Matrices are not normalized to max-1 anymore before each run.
- Fix: Kolmogorov distance of FCD matrices and timeseries