Recent Releases of ratinabox
ratinabox - v1.15.3
Minor bug fixes including:
- shade kwarg added to plot for easier plotting of large numbers of neurons
- Motion model update to prevent rat escaping internal boxes (an edge case I'd never thought to consider but was brought to my attention by @romanpogodin)
- Better commenting of speed params in 2D
- Vector cell coloring bug
What's Changed
- Added shadekwargs to utils.mountainplot(). by @colleenjg in https://github.com/RatInABox-Lab/RatInABox/pull/122
- Resetting the colors of vector cells bugfix by @Alxec in https://github.com/RatInABox-Lab/RatInABox/pull/124
- Speed mean and std in 2D by @colleenjg in https://github.com/RatInABox-Lab/RatInABox/pull/126
Full Changelog: https://github.com/RatInABox-Lab/RatInABox/compare/v1.15.2...v1.15.3
- Python
Published by TomGeorge1234 over 1 year ago
ratinabox - v1.15.2
@niksirbi fixed a bug causing the documentation website to fail. This has been patched.
@colleenjg changed how figures are saved so the folder does YYYMMDD
@colleenjg changed how BVCs are scaled with their max_fr
What's Changed
- Make save folders year first by default. by @colleenjg in https://github.com/RatInABox-Lab/RatInABox/pull/117
- Changed how firingrate is scaled to maximum for BVCs. by @colleenjg in https://github.com/RatInABox-Lab/RatInABox/pull/118
- Fix links in documentation build by @niksirbi in https://github.com/RatInABox-Lab/RatInABox/pull/119
New Contributors
- @niksirbi made their first contribution in https://github.com/RatInABox-Lab/RatInABox/pull/119
Full Changelog: https://github.com/RatInABox-Lab/RatInABox/compare/v1.15.1...v1.15.2
- Python
Published by TomGeorge1234 over 1 year ago
ratinabox - v1.15.0
SubAgent contrib and minor QOL upgrades
This release adds save_fig() kwargs which aer passed directly to matplotlib.save_figure function so you can modify how figures are saved.
Also adds SubAgent class in the controls. SubAgents take as input, and are "subservient" to, another Agent (the LeadAgent). The key thing idea is that the SubAgent may have an update() function which relies heavily on the state of the LeadAgent. Examples included are:
DumbAgenta noisy version ofLeadAgentThetaSequenceAgenttheta sweeps around theLeadAgents positionReplayAgentoccasional short replay events
The API is as follows
``` Env = Environment() Ag = Agent(Env) # the lead agent DumbAg = DumbAgent(LeadAgent=Ag, params = {'drift_distance':0.1})
while Ag.t < 60: Ag.update() DumbAg.update() ```
DumbAg.animate_trajectory() then returns something like:
https://github.com/user-attachments/assets/cf472dc3-f33e-41db-bd63-1587949df141
Full Changelog: https://github.com/RatInABox-Lab/RatInABox/compare/v1.14.1...v1.15.0
- Python
Published by TomGeorge1234 over 1 year ago
ratinabox - v1.13.0
Grids cell
- Grid cells work in 1D
- Grid cells have a
width_ratioparameter which sets the ration of the width of the receptive field to the grid scale. It mist be between 0 (very sharp grid fields) and 1 (very diffuse grid fields) and only works for therectified_cosinesmodels.
- Minor api change (warning thrown, will not break)
three_shifted_cosines-->shifted_cosines - Default grid cells have been changed to 30 grid cells in three increasingly slightly rotated modules.
- Grid cell documentation on the readme has been improved
Plotting:
- Plotting the rate map of a single neuron in 1D can now be optimised using
optimise_plot_for_single_neuron(without this it just does a mountain plot with a single line, which isn't ideal.
numpy pinned to versions <2.0.0
This will be unpinned as a soon as important associated packages (matplotlib, scipy etc.) support 2.0.0.
- Python
Published by TomGeorge1234 almost 2 years ago
ratinabox - v1.12.1
Faster animations and bug fixes
- New
Agent._history_arraysdataframe. This is identical toAgent.historyexcept for two things (same forNeuronstoo):- It is dictionary of arrays, not lists.
- It should only be accessed via its getter-function
_history_arrays = self.get_history_arrays()For now this API is intended to be mostly internal. We don't recommend users use this and instead should stuck to usingself.historyas before. But it speeds up animation internally a lot because it checks a cache to see if the list-->array conversion has been done recently and only repeats it if it hasn't.
- Plotting rate maps via the
historymethod now shows the regions where the Agent never went as grey rather than black (i.e. zero firing rate). This is more realistic, shows the data more honestly and closer to how experimentalists do it (i.e. by shooting spikes and dividing by position occupancy).
- Additionally users can specify the discretisation of the rate mat smoothing
PlaceCells.plot_rate_map(method="history", bin_size=0.06) #defaults of 0.04, i.e. 4 cm
- Additionally users can specify the discretisation of the rate mat smoothing
- Bug fixes relating to #104 and some other minor stuff I hadn't spotted in 1.12.
Full Changelog: https://github.com/RatInABox-Lab/RatInABox/compare/1.12.0...v1.12.1
- Python
Published by TomGeorge1234 over 2 years ago
ratinabox - v1.12.0
Main charges include:
- Significantly modularised
Agent.update()function. It is now more readable. This should be fully backwards compatible for conventional users of RiaB. For power users a few internal variables were renamed e.g.save_velocity-->measured_velocitybut really very few. It also accepts (but doesn't recommend) users just forcing the next position of theAgentviapython Agent.update(forced_next_position = <next_pos>)This should be fully backwards compatible for conventional users of RiaB. For power users a few internal variables were renamed e.g.save_velocity-->measured_velocitybut really very few. - Small bug fixes for @colleenjg to do with warning when params['n']` is incompatible with the specific class.
- Bug fix from @gsivori to make position sampling acknowledge and account for the existence of holes in the Environment more naturally than was done before.
- Minor changes to some plotting functions. More params have been moved from
argstokwargsto clean up the doctoring and some (previously fixed) constants have been exposed as via lettingkwargsdefine them. This both simplifies and improves plotting. - ## What's Changed
- Position sampling in Environments with holes. by @gsivori in https://github.com/RatInABox-Lab/RatInABox/pull/100
- Small fixes and new warning for Neurons classes. by @colleenjg in https://github.com/RatInABox-Lab/RatInABox/pull/101
- Fixes spurious warning raised when initializing VectorCells objects. by @colleenjg in https://github.com/RatInABox-Lab/RatInABox/pull/103
- For spike rasters, or rate maps plotted via the
'history'method there is a hidden option (via akwarg) to set a differentAgentfrom which you draw position data from. In case, say, you want to plot the spikes fromNeurons1against the positions ofAgent2.
New Contributors
- @gsivori made their first contribution in https://github.com/RatInABox-Lab/RatInABox/pull/100
Full Changelog: https://github.com/RatInABox-Lab/RatInABox/compare/v1.11.4...v1.12.0
- Python
Published by TomGeorge1234 over 2 years ago
ratinabox - v1.11.2
Recurrent inputs for FeedForwardLayer
Previously FeedForwardLayers would throw recursion errors when you plot their rate maps if any of the inputs were recurrent (or ultimately part of a recurrent loop) since the get_state() method would call the input layer, which would call the input layer, which would.... you get the idea.
This has been elegantly fixed by @colleenjg. Flag an I put as recurrent when you add it and at rate map evaluation time specificy the recursion depth you want to go to.
Before
``` Env = Environment() Ag = Agent(Env) PCs = PlaceCells(Ag) FFL = FeedForwardLayer(Ag)
FFL.addinput(PCs) FFL.addinput(FFL) #< a recurrent input!!!
FFL.plotratemap()
returns
RecursionError: maximum recursion depth exceeded in comparison
```
Now
``` Env = Environment() Ag = Agent(Env) PCs = PlaceCells(Ag) FFL = FeedForwardLayer(Ag)
FFL.addinput(PCs) FFL.addinput(FFL,recurrent=True) #< a recurrent input, flag it as such!!!
FFL.plotratemap(maxrecurrence=0) # max number of times to pass through the recurrent input loop before then ignoring it
FFL.plotratemap(maxrecurrence=1) # 1 pass through the loop
FFL.plotratemap(max_recurrence=100) # 100 passes
```
- Python
Published by TomGeorge1234 over 2 years ago
ratinabox - v1.11.1
New plotting functions and demo focussing on head direction
Head direction selectivity can be plotted for all cells.
python
Env = Environment()
Ag = Agent(Env)
HDCs = HeadDirectionCells(Ag, params={'n':3,'color':'C5'}) #or any other
HDCs.plot_angular_rate_map()
Spatial rate maps can be plotted averaged over all head directions (for use in instances where rate maps may be position and head direction selective).
This is supported by a new internal function get_head_direction_averaged_state() which calculates the state at all head direction 0 --> 2pi and then averages over these return the spatial receptive field.
python
Env = Environment()
Ag = Agent(Env)
GCs = GridCells(Ag, params={'n':3}) #or any other.
GCs.plot_rate_map(method="groundtruth_headdirectionaveraged")
(in this case its actually redundant because grid cells have no head direction selectivity but in this demo we show a more involved use case
New Conjunctive grid cells demo
In this demo we showcase FeedForwardLayer in probably its most simple use-case. Combining head direction cells and grid cells non-linearly to make head direction selective grid cells (conjunctive grid cells)
- Python
Published by TomGeorge1234 over 2 years ago
ratinabox - v1.11.0
AgentVectorCells and FieldOfViewAVCs
AgentVectorCells are like ObjectVectorCells but respond to other Agents in the Environment.
FieldOfViewAVCs are a subclass of AVCs arranged in a "field of view" as shown in the attached video. A demo can be found here (scroll to the bottom). This relates to #89 and closes #91.
https://github.com/RatInABox-Lab/RatInABox/assets/41446693/300baddc-24ca-4495-aae6-916b3bf0a8a6
```python from ratinabox.Neurons import AgentVectorCells, FieldOfViewAVCs
Env = Environment() Ag1 = Agent(Env) Ag2 = Agent(Env) AVCs1to2 = FieldOfViewAVCs(Ag1, OtherAgent=Ag2) AVCs2to1 = FieldOfViewAVCs(Ag2, OtherAgent=Ag1)
remember to update both agents and neurons in the update loop:
for _ in range(int(20/Ag1.dt)): Ag1.update() Ag2.update() AVCs1to2.update() AVCs2to1.update() ```
Other minor changes
- Changes to
VectorCellsandGridCellAPI for how parameters are initialised/sampled (should be backward compatible, a warning might be thrown if you use old parameter names). - Bug fixes
- New DNN demo
- Python
Published by TomGeorge1234 over 2 years ago
ratinabox - RatInABox website (pre-release)
We made a website for RatInABox which will eventually host all the documentation, demos etc. It's hosted on Github pages and can be found inside docs.
- Python
Published by TomGeorge1234 over 2 years ago
ratinabox - v1.10.0
Random spatially tuned Neurons
In this version, besides minor bug fixes, we are releasing a new Neurons subclass called RandomSpatialNeurons for when you require spatially tuned neurons but which aren't necesarily place cells or grid cells etc.
Users specify a lengthscale and these neurons sample a smooth random function from a Gaussian process with a squared exponential covariance function (roughly analogous to weighted sum of Gaussians). This is a much more "assumption free" way to model spatially tuned inputs and should be useful to a lot of users.
Note walls still act correctly (covariance between points opposite side of a wall is high) and this works in 1D too.
Import like any neuron:
python
from ratinabox.Neurons import RandomSpatialNeurons
And use as follows: ```python Env = Environment() Env.add_wall([[0.3,0.35],[0.3,0.85]]) Ag = Agent(Env) RSNs = RandomSpatialNeurons(Ag, params = {'n':3,'lengthscale':0.1,},)
RSNs.plotratemap()
```
python
RSNs = RandomSpatialNeurons(Ag,
params = {'n':3,'lengthscale':0.2,},)
python
Env = Environment(params={'dimensionality':'1D'})
Ag = Agent(Env)
RSNs = RandomSpatialNeurons(Ag,
params = {'n':10,'lengthscale':0.02,},)
- Python
Published by TomGeorge1234 over 2 years ago
ratinabox - v1.9.0
Two main changes:
- Refactoring of
VectorCells(BVCs and OVCs) andFieldOFViewNeuronsmoved from contribs to main. See #71 - New call
NeuralNetworkNeuronsin contribs. These (exciting) new neurons map inputs through a (user-provided NN) to the outputs. Can be used to make awesomely complex/trainable cell classes powered by RatInABox. It's mostly there but will stay as a contrib for now until its mature enough to go in main.
- Python
Published by TomGeorge1234 almost 3 years ago
ratinabox - v1.8.0
Bug fixes and implementation of independent head_direction variable for the Agent class which (by default) is a smoothed version of the velocity vector. The head direction is what is used by HeadDirectionCells and BoundaryVectorCells (egocentric) etc. to determine firing rate and smoothing can aid stability of processes which rely heavily on these classes.
What's Changed
- Doc file fix by @SynapticSage in https://github.com/TomGeorge1234/RatInABox/pull/51
- Possible fix for issue #52 by @SynapticSage in https://github.com/TomGeorge1234/RatInABox/pull/53
- New RewardCache setting, Verbosity changes, Test functions/scripts by @SynapticSage in https://github.com/TomGeorge1234/RatInABox/pull/59
- env changes, add_hole etc. by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/61
- Merge pull request #61 from TomGeorge1234/dev by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/62
- Moved OVC initialization steps to methods by @colleenjg in https://github.com/TomGeorge1234/RatInABox/pull/65
- Update FieldOfViewNeurons.py by @Alxec in https://github.com/TomGeorge1234/RatInABox/pull/67
- TaskEnvironment: option to delay episode terminate by @SynapticSage in https://github.com/TomGeorge1234/RatInABox/pull/68
- flexible head direction by @mehulrastogi in https://github.com/TomGeorge1234/RatInABox/pull/72
- fix goal_cache attribute and replenish typos by @kushaangupta in https://github.com/TomGeorge1234/RatInABox/pull/74
New Contributors
- @Alxec made their first contribution in https://github.com/TomGeorge1234/RatInABox/pull/67
- @kushaangupta made their first contribution in https://github.com/TomGeorge1234/RatInABox/pull/74
Full Changelog: https://github.com/TomGeorge1234/RatInABox/compare/v1.7.0...v1.8.0
- Python
Published by TomGeorge1234 almost 3 years ago
ratinabox - v1.7.0
Wrapper: RatInABox now supports OpenAI's gymnasium
API
A new wrapper contributed by @SynapticSage allows RatInABox to natively support OpenAI's gymnasium API for standardised and multiagent reinforment learning. This can be used to flexibly integrate RatInABox with other RL libraries such as Stable-Baselines3 etc. and to build non-trivial tasks with objectives and time dependent rewards. Check it out here.
Overhaul of GridCell structure
How GridCells are initialised has been restructured. This is mostly backwards compatible and is explained in the GridCell docstring.
To initialise grid cells you specify three things: (i) params['gridscale'], (ii) params['orientation'] and (iii) params['phaseoffset']. These are all sampled from a distribution (specified as, e.g. params['phaseoffsetdistribution']) and then used to calculate the firing rate of each grid cell. For each of these there quantities the value you specify parameterises the distribution from which it is sampled. For example params['gridscale':0.45,'gridscaledistribution':'uniform'] will pull gridscales from a uniform distribution between 0 and 0.45m. The 'delta' distribution means a constant will be taken. For all three of these you can optionally just pass an array of length GridCells.n (in which case the corresponding distribution parameter is ignored). This array is set a the value for each grid cell.
Other minor changes
- Changes to how BVCs are initialised (similar to grid cells)
What's Changed
- Distance tuning by @jquinnlee in https://github.com/TomGeorge1234/RatInABox/pull/47
- TaskEnvironment by @SynapticSage in https://github.com/TomGeorge1234/RatInABox/pull/49
- TaskEnvironments: flexible observation space and action_space bug by @SynapticSage in https://github.com/TomGeorge1234/RatInABox/pull/50
New Contributors
- @jquinnlee made their first contribution in https://github.com/TomGeorge1234/RatInABox/pull/47
- @musicinmybrain made their first contribution in https://github.com/TomGeorge1234/RatInABox/pull/48
- @SynapticSage made their first contribution in https://github.com/TomGeorge1234/RatInABox/pull/49
Full Changelog: https://github.com/TomGeorge1234/RatInABox/compare/v1.6.3...v1.7.0
- Python
Published by TomGeorge1234 almost 3 years ago
ratinabox - v1.6.3
v1.6.3
Minor bug fixes to how figures are made. Some global params (
MOUNTAIN_PLOT_WIDTH_MM,MOUNTAIN_PLOT_SHIFT_MMetc.) were created to help make figures more uniform across the package.A new function was created to help make the process of extracting saved data between any two timestamps a bit easier. Figure plotting has been updated to use this function.
``` Agent.gethistoryslice(tstart, tend, framerate) """ " Returns a python slice() object which can be used to get a slice of history lists between tstart and tend with framerate. Use case: >>> slice = gethistoryslice(0,1060,20) >>> t = self.history['t'][slice] >>> pos = self.history['pos'][slice] t and pos are now lists of times and positions between tstart=0 and tend=1060 at 20 frames per second
Args:
• t_start: start time in seconds (default = self.history['t'][0])
• t_end: end time in seconds (default = self.history["t"][-1])
• framerate: frames per second (default = None --> step=0 so, just whatever the data frequency (1/Ag.dt) is)
"""
```
- Some minor QOL improvement and bug fixes (again, mostly to figure plotting stuff).
Note tiny 1 line bug fix over 1.6.2
Thats about it
- Python
Published by TomGeorge1234 about 3 years ago
ratinabox - v1.6.0
v1.6.0
Official new features
SuccessorFeatures(): NewNeuronssubclass for SRs and accompanyingsuccessor_features_example.ipynbdemo script.
- Ability to visualise multiple
AgentswithAg.plot_trajectory(plot_all_agents=True)
PlaceCells.remap()reinitialises place cell locations- Minor bug fixes
What's Changed
- Successor features branch by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/41 Full Changelog: https://github.com/TomGeorge1234/RatInABox/compare/V1.5.1...v1.6.0
- Python
Published by TomGeorge1234 about 3 years ago
ratinabox - 1.5.1
1.5.1
Parameter checking
New feature created by @colleenjg which checks parameters passed by the user in the params dict. It works as follows:
If I initialise, for example, some GridCells (a subclass of Neurons) then at the point of initialisation of the parent Neurons class a check is performed: starting from the child class (GridCells) and working upwards to the top-level parent (Neurons) a dictionary of all valid default params -- the super set of GridCells.default_params and Neurons.default_params -- is established. Then, if any of the passed default params is not present in this set a warning is thrown. Example
GCs = GridCells(Ag,{"gridscalee":0.1}) # note typo: "gridscale" --> "gridscalee"
returns:
UserWarning: Found 1 unexpected params key(s) while initializing Environment object: 'boundary_conditcions'.
If you intended to set this parameter, ignore this message. To see all default parameters for this class call Environment.get_all_default_params().
It this parameter is a new intended by the user then they can ignore the warning. If not it will help prevent silent errors where parameters were incorrectly defined.
In order for this to work default_params now live as a class attribute and are defined in the preamble before __init__()
Users can query the default params of any class, including those inherited from their parents, by runnings:
GridCells.get_all_default_params()
- Python
Published by TomGeorge1234 about 3 years ago
ratinabox - v1.4.0
v1.4.0 major changes
Two primary upgrades have been made in this release:
FieldOfViewNeurons: arranged manifolds of egocentric BVC or OVCsNeuronsto make field-of-view tiling encodings.
python
from ratinabox.contribs.FieldOfViewNeurons import FieldOfViewNeurons
FoV_BVCs = FieldOfViewNeurons(Ag)
FoV_OVCs = FieldOfViewNeurons(Ag,params={
'cell_type':'OVC',
})
FoV_whiskers = FieldOfViewNeurons(Ag,params={
"FoV_angles":[75,105],
"FoV_distance":[0.1,0.2],
"spatial_resolution":0.02,})

Updates to how RatInABox figures are saved.
- User defined
RatInABox.figure_directorysets where figures will be saved into. - By setting
RatInABox.autosave_plots = TrueRiaB will automatically attempt to save figures into a figure directory. - Alternatively,
RatInABox.utils.save_figure(fig, figure_name)can be used to manually save figures. - Figures saved by either of the above two methods will be put into a dated folder and appended with the current time (so no overwriting). This is a more sustainable way to make scientific figures, easing the load of saving each one by hand.
- User defined
Retired simultaneously having both a
1.xand adevbranch in favour of just adevbranch. Easier to maintain. Users warned thatdevmay be unstable and that pip is the stable version.
Other "What's Changed"
- Minor changes by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/27
- Fix bug when sampling points in a non-rectangular environment by @frederikrogge in https://github.com/TomGeorge1234/RatInABox/pull/26
- Bug fix for concave Environments by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/28
- Various merges made into 1.x by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/29
New Contributors
- @frederikrogge made their first contribution in https://github.com/TomGeorge1234/RatInABox/pull/26
Full Changelog: https://github.com/TomGeorge1234/RatInABox/compare/v1.2.0...v1.4.0
- Python
Published by TomGeorge1234 about 3 years ago
ratinabox - v1.3.3 <-- v1.2.0
My release notes
Lots of new features, most important ones are listed on the README 1.3.3 because three minor bugs were caught after I published 1.3.0.
Major features:
- FieldOfViewNeurons class for egocentric representations !!
- Polygon environments and environments with holes
- Generalised value function to multidimensional rewards
- Object vector cells!
- Objects are inherent to the Environment (
Env.add_object()) and can be multiple types. - OVCs are selective to one type (at a preferred distance and angle)
- Objects are inherent to the Environment (
Lots of figure plotting improvements
- Default figure formatting and saving functions
- Animations show inline on jupyter
- Trajectories can be coloured by time
- Rate timeseries figure changes (defaults look better now)
- Curved environments (just by virtue of allowing N-polygon envs)
- Plotting bug fixes and make defaults look prettier
- New
ratinabox.stylize()function sets rcParams on import to make plots better - New
utils.save_figure()saves figures and animation in dated folder for rapid access - Default colormaps changed (inferno for rate maps)
Optional interpolation of trajectories when imported
save_history() optional
reset_history() method
Objects inherent to environment (Env.add_object()), OVCs read off these
Lots of smaller bug fixes
Updates to the README
=====
Autogenerated Release Notes
What's Changed
- Minor changes by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/27
- Fix bug when sampling points in a non-rectangular environment by @frederikrogge in https://github.com/TomGeorge1234/RatInABox/pull/26
- Bug fix for concave Environments by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/28
- Various merges made into 1.x by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/29
- Merge dev into 1.x by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/31
- animation save bug fix by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/32
- matplotlib install bug fix by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/33
New Contributors
- @frederikrogge made their first contribution in https://github.com/TomGeorge1234/RatInABox/pull/26
Full Changelog: https://github.com/TomGeorge1234/RatInABox/compare/v1.2.0...v1.3.0
- Python
Published by TomGeorge1234 about 3 years ago
ratinabox - v1.2.0
This release add two new features:
ThetaSequenceAgent()-- A newAgent()subclass for generating hippocampal theta sequences. Class can be found incontribsfolder. Demonstrative video is on the README.- Support for any-polygon-shaped environments and adding holes into environments. Demonstrations on the README. Plotting functions have been updated to support this aesthetically.
Full release notes...What's Changed
- v1.2 <-- v1.1 by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/25 Full Changelog: https://github.com/TomGeorge1234/RatInABox/compare/v1.1.0...v1.2.0
- Python
Published by TomGeorge1234 about 3 years ago
ratinabox - v1.1.0
Some new features include:
some minor updates:
- Made
VelocityCellssubclass ofHeadDirectionCells - Changes to
ratinabox/__init__.pyso it is possible to importEnvironment,Agent, andNeurons, with:
python
import ratinabox as riab
Env = riab.Environment()
Ag = riab.Agent(Env)
PCs = riab.PlaceCells(Ag)
- README update
- Shift from
setup.pytosetup.cfg&pyproject.tomlstyle installs - Citation bibtex file
CITATION.bibadded.
- Python
Published by TomGeorge1234 over 3 years ago
ratinabox - v1.0.1
What's Changed
Only minor unnoticeable changes * rate timerseries plotting sped-up * Install metainfo shifted from legacy setup.py to setup.cfg, added pyproject.toml
Change log
- 1.x --> dev by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/14
- Merge dev into 1.x by @TomGeorge1234 in https://github.com/TomGeorge1234/RatInABox/pull/15
Full Changelog
- https://github.com/TomGeorge1234/RatInABox/compare/v1.0.0...v1.0.1
- Python
Published by TomGeorge1234 over 3 years ago
ratinabox - v1.0.0
v1.0.0, the initial release!
It is recommended to install this from PyPI (https://pypi.org/project/ratinabox/1.0.0/) via pip.
Very minor incompatibility may be observed with pre-release versions, primarily how modules are imported.
Built and source binaries provided.
- Python
Published by TomGeorge1234 over 3 years ago