Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
291 commits
Select commit Hold shift + click to select a range
dcab783
use occupancy from xarrat
wulfdewolf Jul 10, 2025
d2110af
merge tests + update input arguments
wulfdewolf Jul 15, 2025
6164817
docstring
wulfdewolf Jul 15, 2025
5b0ad00
tuning curve notebook
wulfdewolf Jul 15, 2025
5c8ce14
remove trailing spaces in md
wulfdewolf Jul 15, 2025
201a89e
more trailing spaces
wulfdewolf Jul 15, 2025
70a941e
typo
wulfdewolf Jul 15, 2025
4e27d49
white spaces
wulfdewolf Jul 15, 2025
e1a2de2
Merge branch 'dev' into 477-tc-generalisation
wulfdewolf Jul 15, 2025
75151e7
tuning curves user guide update
wulfdewolf Jul 16, 2025
f8ef226
cleaning up docstring
wulfdewolf Jul 16, 2025
7cd8693
fix tutorial
wulfdewolf Jul 16, 2025
9d3aff5
add script for matching param
BalzaniEdoardo Jul 17, 2025
65f2fd6
Merge branch 'dev' into param_matching
BalzaniEdoardo Jul 17, 2025
2b7e08b
Merge branch '477-tc-generalisation' into 475-decode-generalisation
wulfdewolf Jul 17, 2025
97c67af
merge
wulfdewolf Jul 17, 2025
cdab5b1
add a tox env
BalzaniEdoardo Jul 17, 2025
ec827ef
add to ci
BalzaniEdoardo Jul 17, 2025
1325a3d
improve err message
BalzaniEdoardo Jul 17, 2025
2141dea
fix ci
BalzaniEdoardo Jul 17, 2025
3d3fd29
use a logger
BalzaniEdoardo Jul 17, 2025
ccc69c1
add logger
BalzaniEdoardo Jul 17, 2025
5f0c17f
fix logic
BalzaniEdoardo Jul 17, 2025
afab507
add a valid registry
BalzaniEdoardo Jul 17, 2025
7b6bb8b
change to warning
BalzaniEdoardo Jul 17, 2025
ea5d5ff
change to warning
BalzaniEdoardo Jul 17, 2025
d9d25f3
prepare it for when it is going to be enforced
BalzaniEdoardo Jul 17, 2025
7014066
add comment
BalzaniEdoardo Jul 17, 2025
cc82a98
linted
BalzaniEdoardo Jul 17, 2025
063e1d2
testing
wulfdewolf Jul 18, 2025
eab4737
swap tuning curve notebook order
wulfdewolf Jul 18, 2025
9dbba77
check all methods
BalzaniEdoardo Jul 18, 2025
17c47f5
update notebooks
wulfdewolf Jul 18, 2025
7f281bf
decode -> decode_bayes
wulfdewolf Jul 18, 2025
7dbcf7f
Merge branch '477-tc-generalisation' into 475-decode-generalisation
wulfdewolf Jul 18, 2025
2660164
couple missed tests
wulfdewolf Jul 18, 2025
e606a9e
docstring for decode_bayes
wulfdewolf Jul 18, 2025
1d50a56
better docstrings
wulfdewolf Jul 18, 2025
89e1dba
addressing review
wulfdewolf Jul 19, 2025
5001c7f
Merge branch '477-tc-generalisation' into 475-decode-generalisation
wulfdewolf Jul 19, 2025
7f4fb09
couple fixes after review
wulfdewolf Jul 21, 2025
64d7338
addressing review
wulfdewolf Jul 22, 2025
9e4c586
check all methods
BalzaniEdoardo Jul 23, 2025
57fd49a
log as error
BalzaniEdoardo Jul 23, 2025
fe70067
fix par naming
BalzaniEdoardo Jul 23, 2025
b0c1ac6
better decoding plots
wulfdewolf Jul 24, 2025
0e8bfce
group -> data
wulfdewolf Jul 24, 2025
2e186fd
Merge branch '477-tc-generalisation' into 475-decode-generalisation
wulfdewolf Jul 24, 2025
a38f080
add deprecated docstrings
wulfdewolf Jul 24, 2025
76c28dc
deprecated messages
wulfdewolf Jul 24, 2025
55a0a02
Merge branch '477-tc-generalisation' into 475-decode-generalisation
wulfdewolf Jul 24, 2025
1829fab
more interesting example tuning curves
wulfdewolf Jul 24, 2025
da1c621
remove test file
wulfdewolf Jul 24, 2025
7dfc4ba
more interesting example tuning curves
wulfdewolf Jul 24, 2025
7f6dd5f
Merge branch '477-tc-generalisation' into 475-decode-generalisation
wulfdewolf Jul 24, 2025
beed9ec
fix metadata doc examples
sjvenditto Jul 25, 2025
f3e0d9c
Update doc/user_guide/07_decoding.md
wulfdewolf Jul 25, 2025
1d67f82
docstring group -> data
wulfdewolf Jul 25, 2025
d81ce80
change data input possibilities
wulfdewolf Jul 25, 2025
2b9ba04
typo...
wulfdewolf Jul 25, 2025
bcfaf16
correct range check
wulfdewolf Jul 25, 2025
95b9715
check fix
wulfdewolf Jul 25, 2025
8ff8ac6
Merge branch '477-tc-generalisation' into 475-decode-generalisation
wulfdewolf Jul 25, 2025
a4c0425
change input types to only TsGroup or TsdFrame
wulfdewolf Jul 25, 2025
308c448
init
wulfdewolf Jul 29, 2025
544d821
Merge branch '475-decode-generalisation' into 476-template-matching
wulfdewolf Jul 29, 2025
2f83ef3
first version of template decoding
wulfdewolf Jul 29, 2025
e7ecc0d
tests
wulfdewolf Jul 29, 2025
12c0484
add restrict_info method for metadata
sjvenditto Jul 30, 2025
75a8e94
fix test
sjvenditto Jul 30, 2025
7bca9e4
Merge pull request #478 from pynapple-org/477-tc-generalisation
gviejo Jul 30, 2025
1c440bc
Merge pull request #480 from pynapple-org/475-decode-generalisation
gviejo Jul 30, 2025
a0a7ba4
docstrings
wulfdewolf Jul 30, 2025
7895309
wrapper -> utput function
wulfdewolf Jul 31, 2025
56b7554
bug fix in decode_1d
wulfdewolf Jul 31, 2025
96e0d52
Merge pull request #484 from pynapple-org/decoding-bug-fix
gviejo Jul 31, 2025
4590516
better docstrings + euclidean default
wulfdewolf Aug 1, 2025
4113905
remove plot files...
wulfdewolf Aug 1, 2025
e60475b
update decoding notebook
wulfdewolf Aug 1, 2025
720e5bf
start on adding decoding to calcium imaging notebook
wulfdewolf Aug 1, 2025
7ee5e97
Add detect_oscillatory_events
jacobsimon Jul 3, 2025
d3a25b9
Fix lint issues
jacobsimon Aug 2, 2025
b57bab0
simpler smoothing code in tutorial
wulfdewolf Aug 2, 2025
a4c665c
cleaning up tutorial
wulfdewolf Aug 2, 2025
48d37ad
add decoding to calcium tutorial
wulfdewolf Aug 4, 2025
fc04c76
clean docstring
wulfdewolf Aug 4, 2025
212278d
sort boxplots + label fix
wulfdewolf Aug 4, 2025
cf7cdd3
update htmlproofer args
wulfdewolf Aug 5, 2025
a9b9165
htmlproofer settings
wulfdewolf Aug 5, 2025
2b699f9
htmlproofer ignore 406
wulfdewolf Aug 5, 2025
981bf4b
add url to htmlproofer ignore
wulfdewolf Aug 5, 2025
30d8b66
add prior to template decoding + update docstring
wulfdewolf Aug 6, 2025
f659dd3
better docstring, remove uniform_prior
wulfdewolf Aug 6, 2025
66cee66
more metrics in calcium tutorial
wulfdewolf Aug 7, 2025
ff46170
horizontal plot + violin
wulfdewolf Aug 7, 2025
875e835
further updates in calcium tutorial
wulfdewolf Aug 7, 2025
e0753bf
typos + ref to tutorial in user guide
wulfdewolf Aug 7, 2025
b0ceb52
Update doc/examples/tutorial_HD_dataset.md
wulfdewolf Aug 14, 2025
ca973e1
Update doc/examples/tutorial_calcium_imaging.md
wulfdewolf Aug 14, 2025
f9cf0df
Update doc/examples/tutorial_calcium_imaging.md
wulfdewolf Aug 14, 2025
917fd6f
Update doc/examples/tutorial_calcium_imaging.md
wulfdewolf Aug 14, 2025
45f38fe
Update doc/examples/tutorial_calcium_imaging.md
wulfdewolf Aug 14, 2025
eaa946e
rename calcium tutorial
wulfdewolf Aug 14, 2025
de8ec01
Changing some text
gviejo Aug 20, 2025
dbe1746
Removing test.py
gviejo Aug 20, 2025
089d2c9
Merge pull request #482 from pynapple-org/476-template-matching
gviejo Aug 20, 2025
84fc658
Update detect_oscillatory_events
jacobsimon Aug 23, 2025
af75d92
Merge branch 'dev' into restrict_info
sjvenditto Sep 3, 2025
b6d8076
Merge pull request #483 from pynapple-org/restrict_info
gviejo Sep 9, 2025
d1d144c
Update
gviejo Sep 11, 2025
988709e
Merge branch 'dev' into burst-detection
jacobsimon Sep 12, 2025
6751c8b
Merge pull request #485 from jacobsimon/burst-detection
jacobsimon Sep 13, 2025
693420b
Fixing perievent
gviejo Sep 15, 2025
3acfa16
Update pynapple/process/_process_functions.py
gviejo Sep 15, 2025
951dcd7
Update pynapple/process/_process_functions.py
gviejo Sep 15, 2025
b163c48
linting
gviejo Sep 15, 2025
df16878
last fix
gviejo Sep 15, 2025
2a4ff93
Merge pull request #492 from pynapple-org/fix_perievent
gviejo Sep 15, 2025
e88d4d4
fix tsdframe repr
sjvenditto Sep 22, 2025
5a445a9
fix indexing of TsdFrames with Tsd/TsdFrame objects
sjvenditto Sep 22, 2025
11d96ee
generalised mutual information + tests
wulfdewolf Oct 6, 2025
908e5dd
better docstring title
wulfdewolf Oct 6, 2025
4238893
formatting
wulfdewolf Oct 6, 2025
f9e455a
sorting imports
wulfdewolf Oct 6, 2025
235e990
moving old tuning curves + tests to new _old files + docstring
wulfdewolf Oct 6, 2025
566554b
fix docstrings
wulfdewolf Oct 6, 2025
0245236
remove print
wulfdewolf Oct 6, 2025
660e9e1
fix link
wulfdewolf Oct 6, 2025
b15d4a6
back to merge tuning curve files
wulfdewolf Oct 6, 2025
00aa3b4
back to merged
wulfdewolf Oct 6, 2025
29604f6
docstring
wulfdewolf Oct 7, 2025
9ac48d3
use shape for latest zarr
wulfdewolf Oct 7, 2025
91501c2
remove len, dumb
wulfdewolf Oct 7, 2025
66e7220
formatting
wulfdewolf Oct 7, 2025
452d4df
test for occupancy
wulfdewolf Oct 7, 2025
716b743
readd old mutual info tests
wulfdewolf Oct 7, 2025
f976bc2
re-add old tuning curve tests
wulfdewolf Oct 7, 2025
c503c12
Merge pull request #493 from pynapple-org/tsdframe_repr_fix
gviejo Oct 10, 2025
081dff9
Merge pull request #494 from pynapple-org/fix_tsdframe_tsd_index
gviejo Oct 10, 2025
bb9dd7f
mutual information in user guide
wulfdewolf Oct 14, 2025
8958430
better docstring + snippet in tutorial
wulfdewolf Oct 16, 2025
c44ab33
Merge pull request #499 from pynapple-org/496-require-specific-zarr
gviejo Oct 16, 2025
db679a7
add time series in_interval method
sjvenditto Oct 16, 2025
559097c
Merge branch 'dev' into in_interval
sjvenditto Oct 16, 2025
bd80f23
refactor discrete tuning curves to use xarray + allow for TsdFrame input
wulfdewolf Oct 17, 2025
5f53834
add intersphinx setup
wulfdewolf Oct 17, 2025
fb65e4d
add link to skaggs for mutual info + test with more than 1 unit
wulfdewolf Oct 17, 2025
255d49b
Small changes
gviejo Oct 17, 2025
bb64c72
Merge pull request #495 from pynapple-org/489-refactor-mutual-informa…
gviejo Oct 17, 2025
1e1c31d
Update docs
gviejo Oct 17, 2025
58dc212
allow 0 and 1 for return_pandas
wulfdewolf Oct 18, 2025
bdf5c4a
list comp + note about overlapping epochs
wulfdewolf Oct 18, 2025
f289147
fix tests
wulfdewolf Oct 18, 2025
e35980a
more tests for discrete epochs
wulfdewolf Oct 18, 2025
5db64b5
Merge pull request #500 from pynapple-org/in_interval
gviejo Oct 20, 2025
45a14a1
Merge pull request #502 from pynapple-org/491-inter-sphinx-links
gviejo Oct 20, 2025
8409490
return_counts argument
wulfdewolf Oct 20, 2025
288f3be
remove duplicate test
wulfdewolf Oct 20, 2025
3de8bab
add fs to attributes
wulfdewolf Oct 20, 2025
5af7dcf
rename to compute_response_per_epoch -> add deprecated funciton
wulfdewolf Oct 20, 2025
24b504c
Fix 504 issue
gviejo Oct 20, 2025
e51a917
add tests for attributes
wulfdewolf Oct 20, 2025
482509c
add check to jitrestrict
wulfdewolf Oct 20, 2025
eee568b
don't pass epochs to value from
wulfdewolf Oct 20, 2025
681efae
Update tests
gviejo Oct 20, 2025
66a1263
Merge pull request #501 from pynapple-org/490-refactor-discrete-tunin…
gviejo Oct 20, 2025
2da00b7
version fix for foc
gviejo Oct 20, 2025
aa9a4dd
Update doc
gviejo Oct 20, 2025
bc72326
Merge pull request #508 from pynapple-org/version-fix
gviejo Oct 20, 2025
0ab098d
Merge pull request #506 from pynapple-org/505-tuning-curve-returning-…
gviejo Oct 20, 2025
45cd60e
Fixing
gviejo Oct 20, 2025
0029a6d
fix linting
gviejo Oct 20, 2025
7c95a23
UPDATE
gviejo Oct 21, 2025
369c6a2
Update
gviejo Oct 21, 2025
c65f530
Update
gviejo Oct 21, 2025
d96bd4a
Merge branch '504-fix' of github.com:pynapple-org/pynapple into 504-fix
gviejo Oct 21, 2025
3887bde
Update
gviejo Oct 21, 2025
6f422ed
Update utils.py
sjvenditto Oct 22, 2025
e957c00
some cleanup and fixes
sjvenditto Oct 22, 2025
3c43357
drop metadata and column names
sjvenditto Oct 22, 2025
f08d712
docstrings
wulfdewolf Oct 23, 2025
1a03ed7
add bin_size test
wulfdewolf Oct 23, 2025
9174a82
fix bin_size test
wulfdewolf Oct 23, 2025
2f4c207
testing bin_size and time_units for decoding
wulfdewolf Oct 24, 2025
11085e4
smoothing
wulfdewolf Oct 24, 2025
879e880
user guide
wulfdewolf Oct 24, 2025
be66ccc
add smoothing to user guide
wulfdewolf Oct 24, 2025
465eebb
smooth over epochs
wulfdewolf Oct 24, 2025
2c74601
add smoothing tests
wulfdewolf Oct 24, 2025
9ecbae0
correctly smooth
wulfdewolf Oct 24, 2025
cbf3086
switch to FutureWarning + normalise when convolving continuous data i…
wulfdewolf Oct 27, 2025
6d98449
Merge pull request #507 from pynapple-org/504-fix
gviejo Oct 27, 2025
e2f6829
fix smoothing tests
wulfdewolf Oct 27, 2025
5535564
shape fix
wulfdewolf Oct 27, 2025
ed7ad7d
fix version numbers to 1.0.0
wulfdewolf Oct 27, 2025
eaeb1ab
add tests for smoothing
wulfdewolf Oct 27, 2025
617b9c9
Updating releases.md
gviejo Oct 27, 2025
5ffd7bb
Merge pull request #509 from pynapple-org/498-smoothing-decoding
gviejo Oct 28, 2025
6e7a6ea
Update readme
gviejo Oct 28, 2025
80bd6cf
Merge branch 'dev' of github.com:pynapple-org/pynapple into dev
gviejo Oct 28, 2025
b977fd9
Merge pull request #511 from pynapple-org/dev
gviejo Oct 28, 2025
4d0536f
Generalize tuning curves computation to n-dimensions
gviejo Oct 28, 2025
1d256f4
fix smoothing in decoding
wulfdewolf Oct 28, 2025
7db4807
Merge pull request #512 from pynapple-org/gviejo-patch-1
gviejo Oct 28, 2025
97c2739
remove
wulfdewolf Oct 28, 2025
56a1f2d
decoding eps fix
wulfdewolf Oct 28, 2025
59a4d36
remove check
wulfdewolf Oct 28, 2025
60b4871
Merge branch 'main' into hotfix-decoding-smoothing
wulfdewolf Oct 28, 2025
487c032
Fixing einsum
gviejo Oct 28, 2025
62dafaf
Update
gviejo Oct 28, 2025
e26c163
update
gviejo Oct 28, 2025
fd7a882
Merge pull request #514 from pynapple-org/hotfix_einsum
gviejo Oct 28, 2025
bea5d72
Update readme
gviejo Oct 28, 2025
d4df51d
Merge branch 'main' into dev
gviejo Oct 28, 2025
99746dc
remove dumb epochs=None
wulfdewolf Oct 29, 2025
e7c90ed
Merge pull request #513 from pynapple-org/hotfix-decoding-smoothing
gviejo Oct 29, 2025
9d99c71
Update decoding.py
sjvenditto Oct 29, 2025
6812541
fix was_continuous
sjvenditto Oct 29, 2025
e7c8cb5
change error to warning
sjvenditto Oct 29, 2025
852c5a5
Fix testing and docstrings
gviejo Oct 29, 2025
12f2c39
fix decoding guide
wulfdewolf Oct 30, 2025
aee2c32
slight clarification on window size
sjvenditto Oct 30, 2025
f7612b0
Merge pull request #519 from pynapple-org/sliding_window_fix
gviejo Oct 30, 2025
c63c36b
Merge pull request #515 from pynapple-org/dev
gviejo Oct 30, 2025
29ec91b
fixed incorrect "data" field reference during Tsg loading
danielsvedberg Nov 3, 2025
491ab30
test
gviejo Nov 4, 2025
406483d
added for tsgroup containing tsd under 'tsdgroup' associated tests
danielsvedberg Nov 4, 2025
02a4d75
made tsdgroups mix of tsd and ts to capture edge case
danielsvedberg Nov 4, 2025
e086c24
added lines for pep8 adherence
danielsvedberg Nov 5, 2025
e2a5f37
linting update
danielsvedberg Nov 5, 2025
03e7b52
Merge pull request #521 from danielsvedberg/main
gviejo Nov 5, 2025
91aa147
add script for matching param
BalzaniEdoardo Jul 17, 2025
de3a56a
add a tox env
BalzaniEdoardo Jul 17, 2025
ed4865b
add to ci
BalzaniEdoardo Jul 17, 2025
363050a
improve err message
BalzaniEdoardo Jul 17, 2025
2934a6b
fix ci
BalzaniEdoardo Jul 17, 2025
b988e3c
use a logger
BalzaniEdoardo Jul 17, 2025
fe5c4fb
add logger
BalzaniEdoardo Jul 17, 2025
ab75381
fix logic
BalzaniEdoardo Jul 17, 2025
1f96d9e
add a valid registry
BalzaniEdoardo Jul 17, 2025
12b4e95
change to warning
BalzaniEdoardo Jul 17, 2025
0b6b9a8
change to warning
BalzaniEdoardo Jul 17, 2025
0dd6427
prepare it for when it is going to be enforced
BalzaniEdoardo Jul 17, 2025
290501e
add comment
BalzaniEdoardo Jul 17, 2025
fbcaac0
linted
BalzaniEdoardo Jul 17, 2025
461c081
check all methods
BalzaniEdoardo Jul 18, 2025
360aea9
check all methods
BalzaniEdoardo Jul 23, 2025
37f4586
log as error
BalzaniEdoardo Jul 23, 2025
bb2b34e
fix par naming
BalzaniEdoardo Jul 23, 2025
b9639f9
Merge branch 'param_matching' of github.com:pynapple-org/pynapple int…
BalzaniEdoardo Nov 10, 2025
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
11 changes: 10 additions & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,25 @@ jobs:
name: Build and test package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout with full history and tags
uses: actions/checkout@v4
# this is necessary for setuptools_scm to work properly with github
# actions, see https://github.com/pypa/setuptools_scm/issues/480 and
# https://stackoverflow.com/a/68959339
with:
fetch-depth: 0
tags: true

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.x

- name: Build package
run: |
pip install build
python -m build --outdir dist/ --sdist --wheel

- name: Check there's only one sdist and one whl file created
shell: bash
# because the following two tests will be weird otherwise. see
Expand All @@ -31,6 +36,7 @@ jobs:
run: |
[[ $(find dist/ -type f -name "*whl" -printf x | wc -c) == 1 ]] || exit 1
[[ $(find dist/ -type f -name "*tar.gz" -printf x | wc -c) == 1 ]] || exit 1

- name: Check setuptools_scm version against git tag
shell: bash
run: |
Expand All @@ -40,6 +46,7 @@ jobs:
# ends in the most recent git tag, fail if it does not.
TAG=$(git describe --tags)
[[ "$(ls dist/*tar.gz)" =~ "-${TAG:1}.tar.gz" ]]

- name: Check we can install from wheel
# note that this is how this works in bash (different shells might be
# slightly different). we've checked there's only one .whl file in an
Expand All @@ -50,10 +57,12 @@ jobs:
shell: bash
run: |
pip install "$(ls dist/*whl)[dev]"

- name: Run some tests
# modify the following as necessary to e.g., run notebooks
run: |
pytest tests/

- uses: actions/upload-artifact@v4
with:
path: dist/*
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ jobs:
# https://stackoverflow.com/a/68959339
with:
fetch-depth: 0
tags: true
# Ensure all tags are present
- run: git fetch --tags

- uses: actions/setup-python@v5
- name: Install dependencies
run: |
Expand Down
27 changes: 24 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
python-version: "3.11"
- name: Install dependencies
run: |
echo "testing: ${{github.ref}}"
Expand All @@ -33,8 +33,22 @@ jobs:
flake8 pynapple --max-complexity 10
black --check tests
isort --check tests --profile black
check-param-naming:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install pynapple
run: |
python -m pip install --upgrade pip
pip install .
- name: Check parameter name consistency
run: python scripts/check_parameter_naming.py
test:
needs: lint
needs: [lint, check-param-naming]
runs-on: ${{ matrix.os }}
strategy:
matrix:
Expand Down Expand Up @@ -90,7 +104,13 @@ jobs:
with:
directory: "doc/_build/html"
# The directory to scan
arguments: --checks Links,Scripts --ignore-urls "https://fonts.gstatic.com,https://mkdocs-gallery.github.io,./doc/_build/html/_static/,https://www.nature.com/articles/s41593-022-01020-w" --assume-extension --check-external-hash --ignore-status-codes 403 --ignore-files "/.+\/html\/_static\/.+/"
arguments:
--checks Links,Scripts
--ignore-urls "https://fonts.gstatic.com,https://mkdocs-gallery.github.io,./doc/_build/html/_static/,https://www.nature.com/articles/s41593-022-01020-w,https://elifesciences.org/reviewed-preprints/85786"
--assume-extension
--check-external-hash
--ignore-status-codes 403
--ignore-files "/.+\/html\/_static\/.+/"
# The arguments to pass to HTMLProofer

check:
Expand All @@ -99,6 +119,7 @@ jobs:
- lint
- test
- documentation
- check-param-naming
runs-on: ubuntu-latest
steps:
- name: Decide whether all tests and notebooks succeeded
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -165,3 +165,5 @@ your
# Ignore npz files from testing:
tests/*.npz
.vscode/settings.json
doc/user_guide/MyProject/sub-A2929/A2929-200711/stimulus-fish.json
doc/user_guide/memmap.dat
64 changes: 30 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,25 @@ pynapple is a light-weight python library for neurophysiological data analysis.

------------------------------------------------------------------------


Learning pynapple
-----------------

Workshops are regularly organized by the [center for Computational Neuroscience ](https://www.simonsfoundation.org/flatiron/center-for-computational-neuroscience/) of the Flatiron institute
to teach pynapple & [NeMos](https://nemos.readthedocs.io/en/latest/) to new users.

**The next workshop will take place in New York City on February 2 - 5, 2026. Register [here](https://www.simonsfoundation.org/event/flatiron-ccn-neural-data-analysis-workshop/).**


New release :fire:
------------------

### pynapple >= 0.10.0

Tuning curves computation have been generalized to n-dimensions with the function `compute_tuning_curves`.
It can now return a [xarray DataArray](https://docs.xarray.dev/en/stable/) instead of a Pandas DataFrame.


### pynapple >= 0.8.2

The objects `IntervalSet`, `TsdFrame` and `TsGroup` inherits a new metadata class. It is now possible to add labels for
Expand All @@ -38,27 +54,6 @@ nap.apply_bandpass_filter(signal, (10, 20), fs=1250)
```
New functions includes power spectral density and Morlet wavelet decomposition. See the [documentation](https://pynapple-org.github.io/pynapple/reference/process/) for more details.

### pynapple >= 0.6

Starting with 0.6, [`IntervalSet`](https://pynapple-org.github.io/pynapple/reference/core/interval_set/) objects are behaving as immutable numpy ndarray. Before 0.6, you could select an interval within an `IntervalSet` object with:

```python
new_intervalset = intervalset.loc[[0]] # Selecting first interval
```

With pynapple>=0.6, the slicing is similar to numpy and it returns an `IntervalSet`

```python
new_intervalset = intervalset[0]
```

### pynapple >= 0.4

Starting with 0.4, pynapple rely on the [numpy array container](https://numpy.org/doc/stable/user/basics.dispatch.html) approach instead of Pandas for the time series. Pynapple builtin functions will remain the same except for functions inherited from Pandas.

This allows for a better handling of returned objects.

Additionaly, it is now possible to define time series objects with more than 2 dimensions with `TsdTensor`. You can also look at this [notebook](https://pynapple-org.github.io/pynapple/generated/gallery/tutorial_pynapple_numpy/) for a demonstration of numpy compatibilities.

Community
---------
Expand All @@ -73,13 +68,11 @@ Getting Started
The best way to install pynapple is with pip inside a new [conda](https://docs.conda.io/en/latest/) environment:

``` {.sourceCode .shell}
$ conda create --name pynapple pip python=3.8
$ conda create --name pynapple pip python=3.11
$ conda activate pynapple
$ pip install pynapple
```

> **Note**
> The package uses a pyproject.toml file for installation and dependencies management.

Running `pip install pynapple` will install all the dependencies, including:

Expand All @@ -90,13 +83,14 @@ Running `pip install pynapple` will install all the dependencies, including:
- pynwb 2.0
- tabulate
- h5py
- xarray

For development, see the [contributor guide](CONTRIBUTING.md) for steps to install from source code.

<!-- For spyder users, it is recommended to install spyder after installing pynapple with :

``` {.sourceCode .shell}
$ conda create --name pynapple pip python=3.8
$ conda create --name pynapple pip python=3.11
$ conda activate pynapple
$ pip install pynapple
$ pip install spyder
Expand Down Expand Up @@ -130,18 +124,20 @@ head_direction = data["ry"]
wake_ep = data["position_time_support"]

# COMPUTING TUNING CURVES
tuning_curves = nap.compute_1d_tuning_curves(
spikes, head_direction, 120, ep=wake_ep, minmax=(0, 2 * np.pi)
tuning_curves = nap.compute_tuning_curves(
spikes, head_direction, 120, epochs=wake_ep, range=(0, 2 * np.pi)
)


# PLOT
plt.figure()
for i in spikes:
plt.subplot(3, 5, i + 1, projection="polar")
plt.plot(tuning_curves[i])
plt.xticks([0, np.pi / 2, np.pi, 3 * np.pi / 2])

g=tuning_curves.plot(
row="unit",
col_wrap=5,
subplot_kws={"projection": "polar"},
sharey=False
)
plt.xticks([0, np.pi / 2, np.pi, 3 * np.pi / 2])
g.set_titles("")
g.set_xlabels("")
plt.show()
```
Shown below, the final figure from the example code displays the firing rate of 15 neurons as a function of the direction of the head of the animal in the horizontal plane.
Expand Down
13 changes: 12 additions & 1 deletion doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = "pynapple"
copyright = f'2021-{time.strftime("%Y")}'
copyright = f"2021-{time.strftime('%Y')}"
author = "Guillaume Viejo"
from importlib.metadata import version

Expand All @@ -42,6 +42,7 @@
"sphinx.ext.coverage",
"sphinx.ext.viewcode", # Links to source code
"sphinx.ext.doctest",
"sphinx.ext.intersphinx",
"sphinx_copybutton", # Adds copy button to code blocks
"sphinx_design", # For layout components
"myst_nb",
Expand Down Expand Up @@ -75,6 +76,16 @@
"show-inheritance": True,
}

# Intersphinx setup
intersphinx_mapping = {
"matplotlib": ("https://matplotlib.org/stable/", None),
"numpy": ("https://numpy.org/doc/stable/", None),
"python": ("https://docs.python.org/3/", None),
"pandas": ("https://pandas.pydata.org/docs/", None),
"xarray": ("https://docs.xarray.dev/en/stable/", None),
"scipy": ("https://docs.scipy.org/doc/scipy/", None),
}

# apidoc_module_dir = '../pynapple'
# apidoc_output_dir = 'reference'
# apidoc_excluded_paths = ['tests']
Expand Down
10 changes: 1 addition & 9 deletions doc/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,7 @@ Streaming data from Dandi <examples/tutorial_pynapple_dandi>
:::{card}
```{toctree}
:maxdepth: 3
Computing calcium imaging tuning curves <examples/tutorial_calcium_imaging>
```
:::


:::{card}
```{toctree}
:maxdepth: 3
Example perievent <examples/tutorial_human_dataset>
Analyzing calcium imaging data <examples/tutorial_calcium_imaging>
```
:::

Expand Down
Loading
Loading