Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
cff-version: 1.2.0
message: "If you use nSTAT, please cite the toolbox paper below."
title: "nSTAT: Neural Spike Train Analysis Toolbox for MATLAB"
type: software
license: GPL-2.0-only
repository-code: "https://github.com/cajigaslab/nSTAT"
authors:
- family-names: Cajigas
given-names: Iahn
email: icajigas@upenn.edu
- family-names: Malik
given-names: Wasim Q.
- family-names: Brown
given-names: Emery N.
preferred-citation:
type: article
title: "nSTAT: Open-source neural spike train analysis toolbox for Matlab"
authors:
- family-names: Cajigas
given-names: I.
- family-names: Malik
given-names: W. Q.
- family-names: Brown
given-names: E. N.
journal: "Journal of Neuroscience Methods"
year: 2012
volume: 211
issue: 2
start: 245
end: 264
doi: "10.1016/j.jneumeth.2012.08.009"

31 changes: 29 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,34 @@ nSTAT_Install('RebuildDocSearch', true, 'CleanUserPathPrefs', false)
- `RebuildDocSearch` rebuilds the help search database in `helpfiles/`.
- `CleanUserPathPrefs` removes stale user MATLAB path entries.

Quickstart (MATLAB 2025b):

```matlab
cd('/path/to/nSTAT')
nSTAT_Install('RebuildDocSearch',true,'CleanUserPathPrefs',true);
addpath(fullfile(pwd,'tools'));
run_all_checks('GenerateBaseline',false,'CheckParity',true,'RunTests',true,'PublishDocs',false,'Style','legacy');
```

Reproduce paper examples and export generated figures:

```matlab
addpath(fullfile(pwd,'tools'));

% Default docs style (readability-focused)
publish_examples('Style','modern');

% Strict visual reproduction mode
publish_examples('Style','legacy');
```

Outputs are generated under `docs/figures/` and are created from repository
code only (no publication PDF image embedding).

Example generated output (modern style):

![nSTAT paper examples (modern)](docs/figures/paper_examples_modern/figure_001.png)

Plot style policy:

```matlab
Expand All @@ -46,7 +74,6 @@ nstat.setPlotStyle('modern');
% Legacy visual style for strict reproduction
nstat.setPlotStyle('legacy');
```

Rendered help documentation (GitHub Pages):
- https://cajigaslab.github.io/nSTAT/

Expand Down Expand Up @@ -76,7 +103,7 @@ This page ties major toolbox components to the paper's workflow categories:
If you use nSTAT in your work, please remember to cite the above paper in any publications.
nSTAT is protected by the GPL v2 Open Source License.

The code respository for nSTAT is hosted on GitHub at https://github.com/iahncajigas/nSTAT.
The code repository for nSTAT is hosted on GitHub at https://github.com/cajigaslab/nSTAT.
You can download the example data file from the paper at: https://doi.org/10.6084/m9.figshare.4834640

Python port
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
162 changes: 162 additions & 0 deletions docs/figures/plot_structure_legacy.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
{
"style": "legacy",
"figureCount": 1,
"figures": {
"index": 1,
"number": 1,
"name": "",
"axesCount": 7,
"lineCount": 422,
"scatterCount": 0,
"barCount": 0,
"imageCount": 0,
"legendEntries": [
"Actual",
"PPAF+Goal",
"PPAF"
],
"axes": [
{
"title": "Estimated vs. Actual State",
"xlabel": "time [s]",
"ylabel": "state",
"zlabel": "",
"xlim": [
0,
2
],
"ylim": [
0.5,
2.5
],
"zlim": [
-1,
1
],
"lineCount": 63,
"childrenCount": 63
},
{
"title": "Probability of State",
"xlabel": "time [s]",
"ylabel": "P(s(t)=M | data)",
"zlabel": "",
"xlim": [
0,
2
],
"ylim": [
0,
1.1
],
"zlim": [
-1,
1
],
"lineCount": 42,
"childrenCount": 42
},
{
"title": "Estimated vs. Actual Reach Path",
"xlabel": "x [cm]",
"ylabel": "y [cm]",
"zlabel": "",
"xlim": [
-12,
2
],
"ylim": [
-25,
5
],
"zlim": [
-1,
1
],
"lineCount": 65,
"childrenCount": 65
},
{
"title": "X Position",
"xlabel": "time [s]",
"ylabel": "x(t) [cm]",
"zlabel": "",
"xlim": [
0,
2
],
"ylim": [
-11.040198295095344,
1.4776499210046437
],
"zlim": [
-1,
1
],
"lineCount": 63,
"childrenCount": 63
},
{
"title": "Y Position",
"xlabel": "time [s]",
"ylabel": "y(t) [cm]",
"zlabel": "",
"xlim": [
0,
2
],
"ylim": [
-25,
5
],
"zlim": [
-1,
1
],
"lineCount": 63,
"childrenCount": 63
},
{
"title": "X Velocity",
"xlabel": "time [s]",
"ylabel": "v_{x}(t) [cm/s]",
"zlabel": "",
"xlim": [
0,
2
],
"ylim": [
-40,
10
],
"zlim": [
-1,
1
],
"lineCount": 63,
"childrenCount": 63
},
{
"title": "Y Velocity",
"xlabel": "time [s]",
"ylabel": "v_{y}(t) [cm/s]",
"zlabel": "",
"xlim": [
0,
2
],
"ylim": [
-60,
20
],
"zlim": [
-1,
1
],
"lineCount": 63,
"childrenCount": 63
}
],
"exportPath": "/Users/iahncajigas/Library/CloudStorage/Dropbox/Research/Matlab/nSTAT_currentRelease_Local/docs/figures/paper_examples_legacy/figure_001.png"
}
}
Loading
Loading