So this code is not formatted very well. Sorry about that. 

You will need jupyter and some very generic python libraries to run it. 
The genral idea is we have a class for making a single bead signal and that Bead class.
We then have a class for making a dataset to play with called fakeTimeModulatedDataSet.
By making a datset with whatever settings you want such as sine wave signals or spikes and the type of gaussian spatial footprints based on the arguments and noise one can generate some datst to run nmf on.
The nmf_Experiment class takes a dataset generated by the above mentioned datset class and runs nmf on it. 
one can then do a loop and do this for a varety of dataset parameters and the end of the notebook shows this.


The authors are Chance Ornelas-Skarin (email: ccornela@stanford.edu) and Siddharth Doshi (email: sdos@stanford.edu)
