Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
8b61529
add/update dependencies for bandsilo
m-xie Jul 15, 2026
ac1025a
implemented h5 loaders, basic dmd geometry functions, and parameters
m-xie Jul 16, 2026
9d00181
add code for params gui and user roi selection gui
m-xie Jul 16, 2026
a81767c
implement functions for loading lowres slap2 data
m-xie Jul 16, 2026
bc6e97e
add VS Code directory to .gitignore
m-xie Jul 16, 2026
ebb52dc
implement activity image generation for bandscan
m-xie Jul 26, 2026
7a78993
fix bug in comment format
m-xie Jul 26, 2026
6a45d8b
implement source localization step of bandsilo
m-xie Jul 27, 2026
3180d14
implement lowres nmf
m-xie Jul 28, 2026
6c60398
implement high-res trace extraction
m-xie Jul 28, 2026
a709a5a
implement run code for bandsilo
m-xie Jul 28, 2026
4f1dcfa
separate out annotations and fix trialtable
m-xie Aug 6, 2026
da7e776
add verbose mode
m-xie Aug 7, 2026
a7c2fc7
set default analyze_hz
m-xie Aug 7, 2026
69dda2c
fix new pandas read-only issue
m-xie Aug 7, 2026
72e1918
use middle pixel as reference pixel in a band
m-xie Aug 8, 2026
e4aa69c
add missing default parameters
m-xie Aug 8, 2026
eaff16c
restrict locations of final sources closer to peak
m-xie Aug 10, 2026
577def7
add debugging feature to process only the first few trials
m-xie Aug 26, 2026
013e227
update dmd data reading bar progress bar
m-xie Aug 26, 2026
f3fc3f7
add bottleneck dependency and update rolling baseline to use median
m-xie Aug 28, 2026
8105ad3
fix sign issue when applying motion estimates
m-xie Aug 28, 2026
7e780f0
fix issue with double PSF convolution when doing matched filter
m-xie Aug 31, 2026
aba7b8d
modify median subtraction
m-xie Aug 31, 2026
775eea6
use cubic interpolation as default for calculating background
m-xie Sep 2, 2026
89f29dc
assume single pixel-sized sources for matched filter
m-xie Sep 3, 2026
0d20e9a
revert to difference of gaussian filter
m-xie Sep 4, 2026
fa8504a
remove band artifact by median filtering along the superpixel pattern
m-xie Sep 9, 2026
0bca3be
remove edge artifacts
m-xie Sep 9, 2026
ad8d61f
remove mad normalization of activity image
m-xie Sep 9, 2026
57e6d83
allow anisotropic peak fitting in activity image
m-xie Sep 10, 2026
a0c908a
change default peakth
m-xie Sep 11, 2026
846c772
print number of detected sources
m-xie Sep 11, 2026
3259392
restrict size of final spatial profiles
m-xie Sep 11, 2026
3a3d54a
refactor package to reorganize and rename files
m-xie Sep 21, 2026
b46039a
fix background_interpolation to always be cubic
m-xie Sep 21, 2026
66b3a39
remove num_channels and activity_channel parameters
m-xie Sep 21, 2026
6325551
remove operator parameter
m-xie Sep 21, 2026
c5d29bb
allow activity image peak threshold to vary between ROIs
m-xie Sep 29, 2026
fb148c7
add z-tolerance parameter
m-xie Sep 30, 2026
7ca8fe9
update z-tolerance in all steps
m-xie Sep 30, 2026
819f9a4
conduct nmf on temporally matched filtered signal
m-xie Oct 1, 2026
f7559eb
make temporal filter before nmf nan-aware
m-xie Oct 1, 2026
fe64739
add option to do simple weighted average trace extraction
m-xie Oct 1, 2026
a610ff0
replace least squares solvel with mldivide-style algorithm
m-xie Oct 2, 2026
25f0340
fix handling of nonfinite frames in trace extraction
m-xie Oct 2, 2026
9c1e1b8
add denoised fitting of final temporal traces
m-xie Oct 9, 2026
ab5236d
exclude soma from peak detection
m-xie Oct 20, 2026
ab48fb8
update F0 to be a projection into the background
m-xie Oct 22, 2026
1d1b5fb
allow setting of random seed
m-xie Oct 22, 2026
31faeee
update documentation
m-xie Oct 22, 2026
1549438
clean up some unused parameters in background estimation
m-xie Oct 22, 2026
7cffab5
remove unvetted unit tests
m-xie Oct 22, 2026
6b929a8
clean up remants of removed unittests
m-xie Oct 22, 2026
5dc4d10
fix formatting
m-xie Oct 22, 2026
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
2 changes: 2 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ exclude =
venv,
.conda
max-complexity = 10
# Black's PEP 8-compliant slice formatting conflicts with pycodestyle E203.
extend-ignore = E203
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Lint and run tests
name: Lint

on:
pull_request:
Expand All @@ -18,9 +18,7 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
run: |
python -m pip install -e . --group dev --no-cache-dir
- name: Run linter checks
run: flake8 . && interrogate --verbose .
- name: Run tests and coverage
run: coverage run -m unittest discover && coverage report
run: flake8 . && interrogate --verbose .
16 changes: 1 addition & 15 deletions .github/workflows/tag_and_publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ on:
push:
branches:
- main
# Remove line 65 to enable automated semantic version bumps.
# Change line 71 from "if: false" to "if: true" to enable PyPI publishing.
# Set the publish job's "if" condition to true to enable PyPI publishing.
# Requires that svc-aindscicomp be added as an admin to repo.
jobs:
update_badges:
Expand Down Expand Up @@ -41,19 +40,6 @@ jobs:
new_interrogate_badge="interrogate-$interrogate_val%25-yellow"
fi
sed -i "s/$interrogate_badge/$new_interrogate_badge/g" README.md
- name: Get Coverage values and Update README.md
run: |
coverage run -m unittest discover
coverage_val=$(coverage report | grep "^TOTAL" | grep -o '[0-9]\+%' | grep -o '[0-9]\+')
coverage_badge=$(grep '^\!\[Coverage\]' README.md | sed -n 's/.*\(coverage-[^)]*\).*/\1/p')
if (( $(echo "$coverage_val >= 90.00" | bc -l) )); then
new_coverage_badge="coverage-$coverage_val%25-brightgreen"
elif (( $(echo "$coverage_val < 80.00" | bc -l) )); then
new_coverage_badge="coverage-$coverage_val%25-red"
else
new_coverage_badge="coverage-$coverage_val%25-yellow"
fi
sed -i "s/$coverage_badge/$new_coverage_badge/g" README.md
- name: Commit changes
uses: EndBug/add-and-commit@v10
with:
Expand Down
16 changes: 4 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,8 @@ MANIFEST
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
# Tool caches
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
Expand Down Expand Up @@ -135,5 +124,8 @@ dmypy.json
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
.idea/

# VS Code
.vscode/

# MacOs
**/.DS_Store
31 changes: 18 additions & 13 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
# Contributing

### Linters and testing
### Development setup

There are several libraries used to run linters, check documentation, and run tests.

- Please test your changes using the **coverage** library, which will run the tests and log a coverage report:
From the repository root, install the package and development tools with pip 25.1 or later:

```bash
coverage run -m unittest discover && coverage report
pip install -e . --group dev
```

Alternatively, use `uv sync`. Interactive ROI work also requires tkinter in the Python installation.

### Code quality

Use the following tools to check documentation and maintain code style.

- Use **interrogate** to check that modules, methods, etc. have been documented thoroughly:

```bash
Expand Down Expand Up @@ -47,7 +51,6 @@ where scope (optional) describes the packages affected by the code changes and t
- **fix**: A bugfix
- **perf**: A code change that improves performance
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **test**: Adding missing tests or correcting existing tests

### Semantic Release

Expand All @@ -60,15 +63,17 @@ The table below, from [semantic release](https://github.com/semantic-release/sem
| `perf(pencil): remove graphiteWidth option`<br><br>`BREAKING CHANGE: The graphiteWidth option has been removed.`<br>`The default graphite width of 10mm is always used for performance reasons.` | ~~Major~~ Breaking Release <br /> (Note that the `BREAKING CHANGE: ` token must be in the footer of the commit and need to be all caps as shown) |

### Documentation
To generate the rst files source files for documentation, run
```bash
sphinx-apidoc -o docs/source/ src
```
Then to create the documentation HTML files, run

The maintained Sphinx pages include a curated public API reference; do not regenerate them with `sphinx-apidoc`.
Build the documentation and treat warnings as errors:

```bash
sphinx-build -b html docs/source/ docs/build/html
sphinx-build -b html -n -W --keep-going docs/source/ docs/build/html
```
More info on sphinx installation can be found [here](https://www.sphinx-doc.org/en/master/usage/installation.html).

External API links use Python, NumPy, and h5py inventories downloaded by Sphinx; a clean build requires network access to those documentation sites.

Keep the README focused on running BandSILo. Put option and staging details in [API and data conventions](docs/source/migration.rst), scientific details in [trace estimation](docs/source/traces.rst), schemas in [file formats](docs/source/file_formats.rst), and ownership decisions in [architecture](docs/source/architecture.rst).

### Read the Docs Deployment
Note: Private repositories require **Read the Docs for Business** account. The following instructions are for a public repo.
Expand Down
Loading
Loading