v0.5.10
- models now have the parameter
sampling_dtwhich will downsample the output to a specified step size (in ms) - loadData: add subject-wise length matrices
ds.Dmats
v0.5.9
ALNmodel added to the multimodel frameworkThalamicMassModelnow works with autochunk for very long simulations with minimal RAM usage!
v0.5.8
- Hotfix: include
pypet_logging.iniin 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 usingpypetbold: 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
Noneis now converted to"None"for forpypetcompatibility only when saving themodel.paramsto the trajectory. - Fix:
dfEvolutiondrops 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
ALNModelnow 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.treeavailable fromevolution.buildEvolutionTree()that isnetworkxcompatible [1] - Continue working:
saveEvolution()andloadEvolution()can load an evolution from another session [2] - Overview dataframe
evolution.dfPopnow 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=Falseto 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 anumpyPR that never got accepted
Other:
- Data loading:
Datasetcan load different SC matrix normalizations:"max", "waytotal", "nvoxel"- Can precompute FCD matrices to avoid having to do it later (
fcd=True)
neurolib/utils/atlas.pyadded with aal2 region names (thanks @jajcayn) and coordinates of centers of regions (from scans of @caglorithm's brain π€―)ParameterSpacehas.lowerBoundand.upperBound.pypetfinally 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.pyakaeu- 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,HopfModelandWCModel) 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'] = Trueforces BOLD simulationBoxSearchclass: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=0before). 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:
alnnetwork 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