Suite of MATLAB code for the eLife paper "A spiral attractor drives rhythmic locomotion" Angela Bruno, Bill Frost & Mark Humphries
Angela M Bruno, William N Frost & Mark D Humphries (2017) A spiral attractor network drives rhythmic locomotion. eLife, 6:e27342. https://elifesciences.org/articles/27342
All experimental data is available at the CRCNS repository: https://crcns.org/data-sets/aplysia/apl-1/about-apl-1
We provide here all the code we used:
Figures/
All code to produce all panels of main text and supplemental figures Note that this code produces more panels than were used in the final paper It also includes a range of helper functions for plotting
Paths to intermediate results are coded for the locations on the main author's PC: edit these to point at the paths on your system
Analysis/
All code to produce the analysis results used in all the figures. Note that this is our research code, with minimal reformatting, so it does considerably more analyses than are in the paper
Functions/
The set of helper functions called by one or more scripts
Data/
The experimental data in the format used in the research code
Needs: Chronux toolbox (for spike-train spectra): http://chronux.org/
Uses (relevant functions are included in this toolbox): Consensus clustering (for detection of ensembles): https://github.com/mdhumphries/SpikeTrainCommunitiesToolBox
Neural ensemble analysis (for classification of ensembles): https://github.com/mdhumphries/NeuralEnsembleAnalysis
Many scripts were written to separately analyse each of the three stimulation sets (da01, da02, da03). Each will thus analyse the set (e.g. da01) specified by the user across all 10 preparations. Some summary scripts load all 30 recordings together
The top-level function DataSet_Properties.m does the basic analysis used by the majority of other scripts. Run this first.
Some scripts depend on the output of others in their directories. The order of dependencies is:
Classify_attractors/
- Analyse_by_Recurrence_Points -> Check_All_Real_Eigenvalues.m
- Analyse_by_Recurrence_Points -> recurrence_point_results_Viz.m -> Are_jumps_perturbations_or_transitions2.m -> Does_Oscillation_Period_Change.m
- Analyse_by_Recurrence_Points -> recurrence_point_results_Viz.m -> Are_sequential_attractors_the_same.m
- Analyse_by_Recurrence_Points -> recurrence_point_results_Viz.m -> Are_sequential_attractors_the_same_CommonAxes.m -> Quantifying_Participation_by_PCA_Contribution.m -> RobustnessOfAttractor_to_single_neuron_variability.m
- Analyse_by_Recurrence_Points -> recurrence_point_results_Viz.m -> Are_sequential_attractors_the_same_CommonAxes.m -> Quantifying_Participation_by_PCA_Contribution.m -> What_is_Participation.m
- Analyse_by_Recurrence_Points -> recurrence_point_results_Viz.m -> Are_sequential_attractors_the_same_CommonAxes.m -> Initial_Conditions.m
- RecurrencePlot_LineCounting.m -> Quantify_attractors_by_recurrence_plot_lines.m
Ensembles/
- StaticEnsembles.m -> all others
- Analyse_Spike_Train_Properties.m -> Types_of_Ensemble_Across_Dataset.m -> Consistency_of_Types_Across_Programs.m
P10_analysis/
All: Needs output of Dimensionality_of_Projections.m from /Classify_attractors/
- DecodeP10_statespace.m -> Best_P10_StateSpace_GLMmodels.m
Found an error? Path wrong or missing? Function not found?
Flag all issues by clicking the "Issues" tab at the top of this page (next to "Code"). Raise a new Issue with your error and we will fix as we can.