Skip to content

Commit f7b7332

Browse files
committed
merge dev
2 parents 9369307 + d2a0986 commit f7b7332

40 files changed

+957
-1514
lines changed

.github/workflows/auto-publish.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
2-
# Automatically builds and publishes Python package to PyPI when a GitHub release is published.
1+
# Automatically builds and publishes Python package to TestPyPI when a GitHub release is published.
32
# Uses build library to create distribution files from pyproject.toml configuration,
4-
# then uploads to PyPI using official PyPA GitHub Action with stored API token.
3+
# then uploads to TestPyPI using official PyPA GitHub Action with Trusted Publishing.
4+
# Trusted Publishing eliminates the need for API tokens by using cryptographic attestations
5+
# to verify the package was built by this specific GitHub workflow.
56
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
67

78
name: Upload Package to TestPyPI
@@ -14,6 +15,8 @@ on:
1415
jobs:
1516
deploy:
1617
runs-on: ubuntu-latest
18+
permissions:
19+
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
1720
steps:
1821
- uses: actions/checkout@v5
1922
- name: Set up Python
@@ -30,7 +33,6 @@ jobs:
3033
- name: pypi-publish
3134
uses: pypa/gh-action-pypi-publish@v1.12.4
3235
with:
33-
repository_url: https://test.pypi.org/legacy/
36+
repository-url: https://test.pypi.org/legacy/
3437
verbose: true
35-
user: __token__
36-
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
38+
attestations: true

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ GuPPy/.DS_Store
55
z-score_methods.tgn
66
GuPPy/runFiberPhotometryAnalysis.ipynb
77
.vscode/
8+
*.egg-info/

CHANGELOG.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# v2.0.0 (Upcoming)
2+
3+
## Features
4+
5+
- Modernized python packaging and distribution: [PR #129](https://github.com/LernerLab/GuPPy/pull/129)
6+
- Added support for Python 3.10-3.13: [PR #129](https://github.com/LernerLab/GuPPy/pull/129)
7+
8+
## Fixes
9+
10+
## Deprecations and Removals
11+
12+
- Dropped support for Python 3.6: [PR #129](https://github.com/LernerLab/GuPPy/pull/129)
13+
- Restructured directory layout for improved organization: [PR #129](https://github.com/LernerLab/GuPPy/pull/129)
14+
- Converted savingInputParameters.ipynb to saving_input_parameters.py: [PR #129](https://github.com/LernerLab/GuPPy/pull/129)
15+
16+
## Improvements
17+
18+
# GuPPy-v1.3.0 (August 12th, 2025)
19+
20+
- Added support for NPM TTL files with multiple format versions
21+
- Added support for multiple NPM files and CSV TTL files simultaneously
22+
- Added binning by trials feature for data organization
23+
- Extended peak AUC analysis with additional window options
24+
- Enhanced cross-correlation module with artifact removal options
25+
- Optional filtering - can disable signal filtering when needed
26+
- Improved storenames GUI for better user experience
27+
- Automatic saving of input parameters for group analysis
28+
- Enhanced visualization GUI with improved Y-axis limits
29+
- Fixed Windows and macOS compatibility issues
30+
- Improved Doric file format support
31+
- Added directory checking for output folders
32+
- Fixed various bugs in group analysis and PSTH computation
33+
- Resolved port number errors and improved error handling
34+
35+
# GuPPy-v1.2.0 (November 11th, 2021)
36+
37+
- Support for Doric system file (.csv and .doric)
38+
- storenames GUI changed, designed it in a way which is less error prone
39+
- Saving of input parameters is not required for doing the analysis
40+
- Visualization GUI changed
41+
- user-defined for number of cores used
42+
- added cross-correalation computation
43+
- two user-defined parameters for transients detection
44+
- artifacts removal can be done with two different methods
45+
- compute negative peaks along with positive peaks in a user-defined window
46+
47+
# GuPPy-v1.1.4 (October 28th, 2021)
48+
49+
- Support for Neurophotometrics data
50+
- Option for binning of PSTH trials
51+
- Option to carry out analysis without using isosbestic control channel
52+
- Plot to see control fitted channel to signal channel
53+
- Selection and deletion of chunks with specific keys in artifacts removal
54+
- Option to change moving average filter window
55+
- Option to compute variations of z-score based on different computation method.
56+
- Faster computation speed for PSTH computation step
57+
58+
# GuPPy-v1.1.2 (August 4th, 2021)
59+
60+
- Minor Bug Fixes
61+
- multiple windows for peak and AUC computation
62+
- bug fix for searching a file name irrespective of lower-case of upper-case
63+
64+
# GuPPy-v1.1.1 (July 6th, 2021)
65+
66+
It is the GuPPy's first release for people to use and give us feedbacks on it

GuPPy/images/.DS_Store

-6 KB
Binary file not shown.

GuPPy/savingInputParameters.ipynb

Lines changed: 0 additions & 575 deletions
This file was deleted.

MANIFEST.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
include *.md
2+
recursive-include src *.ipynb

README.md

Lines changed: 37 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,63 +2,59 @@
22
# GuPPy
33
Guided Photometry Analysis in Python, a free and open-source fiber photometry data analysis tool.
44

5-
## Installation Instructions
5+
## Installation
66

77
GuPPy can be run on Windows, Mac or Linux.
88

9-
**Follow the instructions below to install GuPPy :** <br>
10-
- Current Users : Download new code updates by following steps 1.a to 1.c, then visit the Github Wiki page to get started on your analysis
11-
- New Users : Follow all the installation steps and then visit the Github Wiki page to get started on your analysis
9+
### Installation via PyPI
1210

13-
1. Download the Guppy code <br>
14-
a. Press the green button labeled “Code” on the top right corner and that will initiate a pull down menu. <br>
15-
16-
b. Click on Download ZIP. *(Ensure that you save this ZIP locally, not in any external cloud storage such as iCloud, OneDrive, Box, etc. We suggest saving it in your User folder on the C drive)* <br>
17-
18-
c. Once downloaded, open the ZIP file and you should have a folder named “GuPPy-main”. Place this GuPPy-main folder wherever is most convenient (avoiding cloud storage). <br>
19-
20-
d. Inside the GuPPy-main folder there is a subfolder named “GuPPy”. Take note of the GuPPy subfolder location or path. It will be important for future steps in the GuPPy workflow <br>
21-
- Mac: Right click folder → Click Get Info → Text next to “Where:” <br>
22-
~ Ex: /Users/LernerLab/Desktop/GuPPy-main <br>
23-
- Windows/Linux: Right click folder → Properties → Text next to “Location:” <br>
11+
To install the latest stable release of GuPPy through PyPI, simply run the following command in your terminal or command prompt:
2412

25-
2. Anaconda is a distribution of the Python and R programming languages for scientific computing. Install [Anaconda](https://www.anaconda.com/products/individual#macos). Install Anaconda based on your operating system (Mac, Windows or Linux) by following the prompts when you run the downloaded installation file.
13+
```bash
14+
pip install guppy
15+
```
2616

27-
3. Once installed, open an Anaconda Prompt window (for windows) or Terminal window (for Mac or Linux). You can search for "anaconda prompt" or "terminal" on your computer to open this window.
17+
We recommend that you install the package inside a [virtual environment](https://docs.python.org/3/tutorial/venv.html).
18+
A simple way of doing this is to use a [conda environment](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/environments.html) from the `conda` package manager ([installation instructions](https://docs.conda.io/en/latest/miniconda.html)).
19+
Detailed instructions on how to use conda environments can be found in their [documentation](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html).
2820

29-
4. Find the location where GuPPy folder is located (from Step 1d) and execute the following command on the Anaconda Prompt or terminal window:
21+
### Installation from GitHub
3022

23+
To install the latest development version of GuPPy from GitHub, you can clone the repository and install the package manually.
24+
This has the advantage of allowing you to access the latest features and bug fixes that may not yet be available in the stable release.
25+
To install the conversion from GitHub you will need to use `git` ([installation instructions](https://github.com/git-guides/install-git)).
26+
From a terminal or command prompt, execute the following commands:
27+
28+
1. Clone the repository:
29+
```bash
30+
git clone https://github.com/LernerLab/GuPPy.git
3131
```
32-
cd path_to_GuPPy_folder
33-
```
34-
- Ex: cd /Users/LernerLab/Desktop/GuPPy-main
35-
36-
5. Next, execute the following commands, in this specific order, on Anaconda Prompt or terminal window: <br>
37-
- Note : filename in the first command should be replaced by <b>spec_file_windows10.txt</b> or <b>spec_file_mac.txt</b> or <b>spec_file_linux.txt</b> (based on your OS) <br>
38-
- Some of these commands will initiate various transactions. Wait until they are all done before executing the next line <br>
39-
- If the Anaconda Prompt or Terminal window asks: Proceed ([y]/n)? Respond with y <br>
40-
```
41-
conda create --name guppy --file filename
42-
conda activate guppy
43-
```
44-
6. Lastly, execute the following command to open the GuPPy User Interface:
32+
33+
2. Navigate into the cloned directory:
34+
```bash
35+
cd GuPPy
4536
```
46-
panel serve --show GuPPy/savingInputParameters.ipynb
37+
38+
3. Install the package using pip:
39+
```bash
40+
pip install -e .
4741
```
48-
<b> GuPPy is now officially downloaded and ready to use! </b> <br>
4942

50-
- The full instructions along with detailed descriptions of each step to run the GuPPy tool is on [Github Wiki Page](https://github.com/LernerLab/GuPPy/wiki).
43+
Note:
44+
This method installs the repository in [editable mode](https://pip.pypa.io/en/stable/cli/pip_install/#editable-installs).
5145

52-
## Uninstalling or removing instructions
46+
## Usage
5347

54-
1. Open an Anaconda Prompt window (for windows) or Terminal window (for Mac or Linux).
48+
In a terminal or command prompt, you can start using GuPPy by running the following command:
5549

56-
2. Execute the following command on Anaconda Prompt or terminal window: <br>
57-
```
58-
conda remove --name guppy --all
50+
```bash
51+
guppy
5952
```
6053

61-
3. To reinstall, follow steps 1 (Download GuPPy code) and 4 to 6 from the Installation Instructions.
54+
This will launch the GuPPy user interface, where you can begin analyzing your fiber photometry data.
55+
56+
## Wiki
57+
- The full instructions along with detailed descriptions of each step to run the GuPPy tool is on [Github Wiki Page](https://github.com/LernerLab/GuPPy/wiki).
6258

6359
## Tutorial Videos
6460

@@ -91,5 +87,6 @@ conda remove --name guppy --all
9187
- Jillian Seiler
9288
- [Gabriela Lopez](https://github.com/glopez924)
9389
- [Talia Lerner](https://github.com/talialerner)
90+
- [Paul Adkisson](https://github.com/pauladkisson)
9491

9592

pyproject.toml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
[build-system]
2+
requires = ["setuptools>=64"]
3+
build-backend = "setuptools.build_meta"
4+
5+
6+
[project]
7+
name = "guppy"
8+
version = "2.0.0-alpha8"
9+
description = "Guided Photometry Analysis in Python, a free and open-source fiber photometry data analysis tool."
10+
readme = "README.md"
11+
authors = [
12+
{ name = "Venus Sherathiya", email = "venus.sherathiya@northwestern.edu" },
13+
{ name = "Michael Schaid" },
14+
{ name = "Jillian Seiler" },
15+
{ name = "Gabriela Lopez" },
16+
{ name = "Talia Lerner" },
17+
{ name = "Paul Adkisson" },
18+
{ name = "Luiz Tauffer" },
19+
]
20+
21+
22+
license = { file = "LICENSE" }
23+
keywords = [
24+
"neuroscience",
25+
"fiber-photometry",
26+
"calcium-imaging",
27+
"data-analysis",
28+
"gui",
29+
"visualization",
30+
"signal-processing",
31+
]
32+
classifiers = [
33+
"Intended Audience :: Science/Research",
34+
"Programming Language :: Python :: 3.13",
35+
"Programming Language :: Python :: 3.12",
36+
"Programming Language :: Python :: 3.11",
37+
"Programming Language :: Python :: 3.10",
38+
"Operating System :: POSIX :: Linux",
39+
"Operating System :: Microsoft :: Windows",
40+
"Operating System :: MacOS",
41+
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
42+
43+
]
44+
requires-python = ">=3.10"
45+
dependencies = [
46+
"bokeh",
47+
"datashader",
48+
"h5py",
49+
"holoviews",
50+
"matplotlib",
51+
"numpy",
52+
"pandas",
53+
"panel",
54+
"param",
55+
"scipy",
56+
"tables",
57+
]
58+
59+
[project.scripts]
60+
guppy = "guppy.main:main"
61+
62+
63+
[project.urls]
64+
"Homepage" = "https://github.com/LernerLab/GuPPy"
65+
66+
[tool.setuptools.packages.find]
67+
where = ["src"]

readh5.ipynb

Lines changed: 0 additions & 57 deletions
This file was deleted.

readh5.m

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)