Merge branch 'master' into develop
Git infos saved when outputting

- Added: Git informations (branch, commit) are saved along with all variables to output. Should improve debugging.
Launchers big refactoring

- Added: Experiments now run from the ExperimentLauncher entry point.
- Added: Actions are now launchers, and they are defined in several different files. Currently the list of possible actions is still to be defined in ExperimentLauncher, but could do something nicer.
- Fixed: Removed pylab for matplotlib.pyplot.
- Added: More test cases for DataIO, before putting it on Gitsby.

Implements #14
Launchers refactoring introspection

- Added: Launchers are now put in different modules for clarity. Then the list of all possible launchers is found automatically using introspection.

Work on #14
DataIO always saves arguments

- Added: DataIO will now always try to save the args variable if there is one.
Merge branch 'feature/launchers' into develop
Theoretical fisher information

- Added: Compute the theoretical fisher information, updated for new receptive fields.

#10, #17, #15
Launcher to get FI dependence on sigma and rcscale

- Added: Launcher and helper functions to see effect of sigma and rcscale. Should then use this to construct a constraint between them based on the Experimental FI.

#15, #24, #10, #17
Launcher reloading data, progress indicator

- Added: Launcher reloading the data from Fisher Information search.
- Added: Progress.py, a cool way to show percentage complete and time to completion. Modified it to provide a string representation of ETA.
- Added: DataIO can now put the label in a figure filename
Plot a datapoint in 1D

- Added: show_datapoint_flat, which plots a (usually) 2D datapoint in 1D, to better see the signal/noise ratio and bump profile.
Small fixes

- Fix: uses the stimuli_generation option in Launcher_do_simple_run
Use Get_precision() ratio correcting parameter

- Added: Can modify the precision by multiplying by some ratio. Shouldn't really be used actually...
Fisher information computation fix

- Fix: handles unset neurons.
Set figure numbers, Pcolor for 2D data, Fit a line

- Added: All plotting functions can now take a specific figure number, which will be used instead of creating a new figure each time.
- Added: A function that takes any 2D array and plots it properly as a pcolor_like imshow. Handles x and y data if given, as well as multiple formatting options.
- Added: A function taking x and y datapoints and fitting a line through it. Should be changed to use a Scipy function I suppose… (Polyfit)
Better fit a line

- Fixed: Use Scipy to fit the line. Cleaner, and could use the R and p-value in the future.
Verifying the precision/FI ratio

- Added: Verify the ratio in the true gaussian case.
- Added: Verified the ratio in the 1D population case.

Found everything that was required: ratio exists and is equal to 2 when the gaussianity assumption holds. When this breaks (2D plots available), it is usually because of non-tightness of the Cramer-Rao bound, or when the Gaussianity assumption break (also when signal/noise ratio is too big, related to first reason).

Close #29
Close #24
Fixes, function computing the likelihood, estimation of true variance from posterior

- Added: Function to compute the likelihood on the full 1D space. Doesn't require to use plot_likelihood_correctlycuedtimes anymore.
- Added: Functions estimating the true variance from the empirical posterior directly. Shows when the gaussianity assumption fails.
- Added: Get_precision can now receive a factor to multiply the precision with. Could be used to correct for the ratio 2, but should be a better way to use it.
- Refactor: covariance_fixed_contrib was really inv_covariance_fixed_contrib. Added noise_covariance as a field, for ease of access.
- Fix: print_comparison_inferred_groundtruth now uses self.get_precision()… Avoid annoying discrepancies between the two functions.
New launchers, skeleton reloading from PBS

- Added: Launchers for Parameter searches, M_effect, reloading them, reloading from PBS versions of them (using the new DataPBS class)
New loading style, start to refactor for new DataPBS class

- Added: New loading style, which takes the argument values from the datasets themselves and not from the filenames. First step towards a fully integrated PBS send/reload package.
- Refactor: Should now use DataPBS to load data directly. This file will slowly go unused.

Start on #12
First commit of DataPBS class

- Added: Provides a simple interface to load data back from PBS runs. Takes a dictionary describing the dataset and its component. This dictionary should be automatically created when launching runs, eventually.