Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
12455d6
Fixed nsalex group data replicating first stream issue
harripd Sep 4, 2022
2e17aa6
Fixed issues with burstlib_ext
harripd Sep 4, 2022
7d5ac8f
Full plotting updates and general bug fixex
harripd Sep 18, 2022
789f3dd
Fix notebook kdeplot call
harripd Sep 19, 2022
ca679eb
Fixed latest seaborn compatibility issues
harripd Sep 19, 2022
21bf0dd
Update readthedocs configurations
harripd Sep 20, 2022
8a71870
Merge branch 'master' of https://github.com/harripd/FRETBursts
harripd Sep 21, 2022
f1e7de5
Minor plotting updates
harripd Mar 2, 2023
1e3bda0
Revert "Minor plotting updates"
harripd May 2, 2024
d9560bb
Update all np.flot to np.float64
harripd May 2, 2024
a7c7dfe
Fixed np.float -> float data type change
harripd May 7, 2024
00cf094
Update tests.yml
harripd May 7, 2024
68fe13d
Update tests.yml
harripd May 7, 2024
905613d
Update tests.yml
harripd May 7, 2024
ca859b3
Shrink test environments
harripd May 7, 2024
ec6cab7
Update setup.cfg
harripd May 7, 2024
5895533
Update tests.yml
harripd May 7, 2024
3e55b91
Update tests.yml
harripd May 7, 2024
4f46778
Update setup.cfg
harripd May 7, 2024
60a79c2
Update tests.yml
harripd May 7, 2024
393f387
Update tests.yml
harripd May 8, 2024
17035ce
Added pyproject.toml
harripd May 8, 2024
3cef973
Update tests.yml
harripd May 8, 2024
aa30cd0
Update tests.yml
harripd May 8, 2024
4f652c5
Update tests.yml
harripd May 8, 2024
bc68b3f
Update tests.yml
harripd May 8, 2024
bb86201
Update tests.yml
harripd May 8, 2024
f869008
Fix np.hstack of iterable
harripd May 8, 2024
046a855
Update tests.yml
harripd May 8, 2024
1bbffda
Remove Python 3.6 tests
harripd May 8, 2024
30af7f9
Update tests.yml
harripd May 9, 2024
1379bc2
Update tests.yml
harripd May 9, 2024
744d04b
Update tests.yml
harripd May 9, 2024
31fda64
Update tests.yml
harripd May 9, 2024
700d0c5
Update tests.yml
harripd May 9, 2024
a487c5a
Update tests.yml
harripd May 9, 2024
01027f6
Update tests.yml
harripd May 9, 2024
e3008c6
Update tests.yml
harripd May 9, 2024
e677566
Update tests.yml
harripd May 9, 2024
9c9dec4
Update tests.yml
harripd May 9, 2024
6991064
Update tests.yml
harripd May 9, 2024
af2bdcc
Update tests.yml
harripd May 9, 2024
5093c0b
Update tests.yml
harripd May 9, 2024
db6f64f
Update tests.yml
harripd May 9, 2024
4157af9
Update tests.yml
harripd May 9, 2024
4f31a63
Update tests.yml
harripd May 10, 2024
ccb565e
Update versioneer.py
harripd May 10, 2024
54cb833
Upaded versioneer.py to v 0.19
harripd May 10, 2024
bd87a40
Update tests.yml
harripd May 12, 2024
c3bac41
Update tests.yml
harripd May 12, 2024
6b90262
Update tests.yml
harripd May 12, 2024
f1b85ca
Update tests.yml
harripd May 12, 2024
ffc9bc6
Update tests.yml
harripd May 12, 2024
a21aefe
Update tests.yml
harripd May 12, 2024
27d0bbe
Make pyproject.toml primary config file
harripd May 14, 2024
dfbe8d9
Updated to setuptools_scm
harripd May 20, 2024
d6e4480
Hopefully working build
harripd May 23, 2024
6b4710d
Add more pyproject.toml specs
harripd May 23, 2024
f0e4f93
Debugged and restructured scm management
harripd May 26, 2024
d56bccd
Added kde scatter
harripd May 28, 2024
66dcf0f
Update tests.yml
harripd May 28, 2024
61367e5
Update tests.yml
harripd May 28, 2024
0a31f58
Update tests.yml
harripd May 28, 2024
78c1686
Update tests.yml
harripd May 28, 2024
aa7eb5d
Fixed setuptools_scm version requirement in pyproject.toml
harripd May 28, 2024
712d182
Fixed missing try import
harripd May 28, 2024
6b70d13
Fixed import typo
harripd May 28, 2024
355b84d
Fixed plotting version requirements
harripd May 28, 2024
e11c360
Merge remote-tracking branch 'origin' into plots
harripd May 28, 2024
6361196
Fixed pyproject.toml
harripd May 28, 2024
5dc73bc
Moved nbrun to notebooks directory
harripd May 28, 2024
69f4045
Fixed notebooks
harripd May 28, 2024
0ef58e6
Update tests.yml
harripd May 28, 2024
80e7f03
Update tests.yml
harripd May 28, 2024
d08a360
Update tests.yml
harripd May 28, 2024
4cd773a
Update tests.yml
harripd May 29, 2024
8dea7f3
Update tests.yml
harripd May 29, 2024
efba2eb
Test without conda
harripd May 29, 2024
28346c3
Update tests.yml
harripd May 29, 2024
996825e
Run nbrun.py from notebooks folder
harripd May 29, 2024
8d0ab60
Update tests.yml
harripd May 29, 2024
7a7867a
tests bypass indirect import path
harripd May 29, 2024
3f024bb
Revert to non fb named c modules
harripd May 29, 2024
df7c85a
Fixed setup.py typos
harripd May 29, 2024
4151789
Revert to fretbursts._c for cython packages
harripd May 30, 2024
5cfacdd
Moved assumed location of pytest call
harripd May 30, 2024
fcfab86
Merge remote-tracking branch 'origin'
harripd May 30, 2024
9f9c855
Merge branch 'plots'
harripd May 30, 2024
c781a90
Update build_wheel.yml
harripd May 30, 2024
2d9c7d1
Update build_wheel.yml
harripd May 30, 2024
c4dd091
Deprecated python 3.6 support
harripd May 30, 2024
9abec16
Skip pure python cibw builds
harripd May 30, 2024
f373b04
Require matplotlib tests
harripd May 30, 2024
de4d5b2
Install pyqt in tests
harripd May 30, 2024
57f5935
Updated documentation with env yaml files
harripd May 31, 2024
23b8566
Merge branch 'docs'
harripd May 31, 2024
312b6ee
Use importlib for docs version
harripd May 31, 2024
392b539
Update release notes for version release
harripd May 31, 2024
43c6c85
Update release notes
harripd May 31, 2024
b6e1c47
Update build_wheels.yml
harripd May 31, 2024
8decc1f
Update build_wheels.yml
harripd May 31, 2024
555cdca
Update build_wheels.yml
harripd May 31, 2024
c18eb3c
Merged from origin
harripd May 31, 2024
ddd9b48
Allow reading ph_times_m from tables array in _compute_acceptor_emiss…
harripd Aug 12, 2024
bc98c14
Replace np.asfarray with np.asarray for numpy 2.0 compatibility
harripd Aug 21, 2024
d97de9f
Merge remote-tracking branch 'origin'
harripd Nov 10, 2024
28e0e4d
Changed markers to non-photon
harripd Dec 4, 2024
8d06f05
Merge pull request #1 from OpenSMFS/master
harripd Jan 4, 2026
62e74e5
Updated tests to download files using pooch
harripd Feb 18, 2026
8c068f5
Update test to use pooch
harripd Feb 18, 2026
9918f25
Switch notebooks to use pooch
harripd Feb 20, 2026
a5324e5
Deprecate support for python < 3.10
harripd Feb 20, 2026
bd23819
Exclude cp310-win_arm64 from cibuildwheel and fix name setting from l…
harripd Feb 20, 2026
4375ef6
Fix doi in notebook
harripd Feb 20, 2026
3c378c4
Fix DataContainer for propper deletion of attrs
harripd Feb 20, 2026
8391964
Docs cleanup
harripd Feb 20, 2026
fa6022f
Test caching in github actions
harripd Feb 21, 2026
2c1f11f
Fix types in github actions
harripd Feb 21, 2026
b8604dc
Cache download installs pooch
harripd Feb 21, 2026
3586ea0
Test cached tests
harripd Feb 21, 2026
0c8e96b
Fix cache python version in tests.yml
harripd Feb 21, 2026
f4193b7
Update tests.yml
harripd Feb 21, 2026
40f5978
remove -m from python to allow running of fetch_files.py
harripd Feb 21, 2026
321c214
Rearange cache
harripd Feb 21, 2026
97890aa
Update test.yaml for CIBW_TEST_REQURIES syntax
harripd Feb 21, 2026
27a0470
Test how cache works
harripd Feb 21, 2026
e02ce1a
Update tests.yml
harripd Feb 21, 2026
2c7f6c7
Update tests.yml
harripd Feb 21, 2026
8fb7f8f
Update tests.yml
harripd Feb 21, 2026
c69d640
Update tests.yml
harripd Feb 21, 2026
3393dfc
Update tests.yml
harripd Feb 21, 2026
a8fe8f2
Update tests.yml
harripd Feb 21, 2026
7c493f2
Update tests.yml
harripd Feb 22, 2026
5f850a6
Tests rely on pre-download through fetch_files.py, do not use pooch d…
harripd Feb 23, 2026
e1a1f02
Add file needed for notebooks to fetch_files.py
harripd Feb 23, 2026
486de20
Reduce necessary file downloads
harripd Feb 23, 2026
c4b0e58
Use dot slash notation in cache action of test.yml
harripd May 5, 2026
ae7154a
Update tests.yml
harripd May 5, 2026
febc3be
Update tests.yml
harripd May 5, 2026
2db78d2
Fixes to pooch download for github actions testing
harripd Sep 4, 2026
39c69b7
Update tests.yml
harripd Sep 4, 2026
2ea0a6c
Fixes for numpy 2.0 update
harripd Sep 4, 2026
ac4e7b9
Merge branch 'actiontest' of https://github.com/harripd/FRETBursts in…
harripd Sep 4, 2026
3503a10
Update tests.yml
harripd Sep 4, 2026
ba7de5a
Update tests.yml
harripd Sep 4, 2026
31f4dc7
Update tests.yml
harripd Sep 4, 2026
6696284
Update tests.yml
harripd Feb 21, 2026
823deca
Finish rebasing and merge of github actions
harripd Sep 4, 2026
0694776
Merge with actiontest, establish numpy 2 fixes in master
harripd Sep 4, 2026
c46ab42
Fix broken tests.yaml
harripd Sep 4, 2026
6d0b216
Update tests.yml
harripd Sep 4, 2026
009f4df
Update tests.yml
harripd Sep 4, 2026
250426b
Update tests.yml
harripd Sep 4, 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
34 changes: 0 additions & 34 deletions .github/workflows/build_wheel.yml

This file was deleted.

139 changes: 83 additions & 56 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,80 +1,75 @@
name: Tests

on: [push, pull_request]

jobs:
Download:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: conda-incubator/setup-miniconda@v4
with:
auto-update-conda: true
channels: conda-forge
python-version: "3.12"
activate-environment: test
- name: Install Pooch
shell: bash -l {0}
run: conda install -c conda-forge pooch
- name: Download Files
shell: bash -l {0}
run: |
cd tests
python fetch_files.py
- uses: actions/cache@v6
id: filecache
with:
path: ./tests/data
enableCrossOsArchive: true
key: testfiles
build:
runs-on: ${{matrix.os}}
needs: Download
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, windows-latest, macos-latest]
python-version: ["3.8", "3.10", "3.12"]
exclude:
- os: macOS-latest
python-version: "3.7"
- os: windows-latest
python-version: "3.7"
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.10", "3.12", "3.14"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
persist-credentials: false
fetch-depth: 0
# - name: Setup Python ${{matrix.python-version}}
# uses: actions/setup-python@v4
# with:
# python-version: ${{matrix.python-version}}
- uses: conda-incubator/setup-miniconda@v3
- name: Restore Cached Files
id: cache-action
uses: actions/cache/restore@v6
with:
path: ./tests/data
key: testfiles
enableCrossOsArchive: true
- name: Install Conda
uses: conda-incubator/setup-miniconda@v4
with:
auto-update-conda: true
activate-environment: test
channels: conda-forge
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
activate_environment: test
- name: Apple Silicon Oddities
if: matrix.os == 'macos-latest'
shell: bash -l {0}
run: python -m pip install --upgrade pip
- name: MacOS install hdf5 dependencies
if: runner.os == 'macOS'
run: |
brew install hdf5
export HDF5_DIR=/usr/local/
export BLOSC_DIR=/usr/local/
brew install c-blosc hdf5
export HDF5_DIF=/opt/homebrew/opt/hdf5
export BLOSC_DIR=/opt/homebrew/opt/c-blosc
- name: Install Dependencies
shell: bash -l {0}
run: |
conda install -c conda-forge cython numpy numba nbconvert pytest jupyter scipy pandas matplotlib pytables phconvert lmfit pybroom seaborn setuptools pyqt
- name: Install project
shell: bash -l {0}
run: |
python -m pip install .
- name: Download files Unix
if: runner.os != 'Windows'
shell: bash -l {0}
run: |
cd notebooks
mkdir data
cd data
wget -N http://files.figshare.com/2182604/12d_New_30p_320mW_steer_3.hdf5
wget -N http://files.figshare.com/2182601/0023uLRpitc_NTP_20dT_0.5GndCl.hdf5
wget -N https://zenodo.org/record/5902313/files/HP3_TE150_SPC630.hdf5
wget -N https://zenodo.org/record/5902313/files/HP3_TE200_SPC630.hdf5
wget -N https://zenodo.org/record/5902313/files/HP3_TE250_SPC630.hdf5
wget -N https://zenodo.org/record/5902313/files/HP3_TE300_SPC630.hdf5
cd ../..
- name: Downlaod files Windows
if: runner.os == 'Windows'
conda install -c conda-forge pip
python -m pip install setuptools build
conda install -c conda-forge cython numpy numba nbconvert pytest jupyter scipy pandas matplotlib pytables phconvert lmfit pybroom seaborn pyqt pooch
- name: Install Project
shell: bash -l {0}
run: |
cd notebooks
mkdir data
cd data
curl.exe -L --output 12d_New_30p_320mW_steer_3.hdf5 --url http://files.figshare.com/2182604/12d_New_30p_320mW_steer_3.hdf5
curl.exe -L --output 0023uLRpitc_NTP_20dT_0.5GndCl.hdf5 --url http://files.figshare.com/2182601/0023uLRpitc_NTP_20dT_0.5GndCl.hdf5
curl.exe -L --output HP3_TE150_SPC630.hdf5 --url https://zenodo.org/record/5902313/files/HP3_TE150_SPC630.hdf5
curl.exe -L --output HP3_TE200_SPC630.hdf5 --url https://zenodo.org/record/5902313/files/HP3_TE200_SPC630.hdf5
curl.exe -L --output HP3_TE250_SPC630.hdf5 --url https://zenodo.org/record/5902313/files/HP3_TE250_SPC630.hdf5
curl.exe -L --output HP3_TE300_SPC630.hdf5 --url https://zenodo.org/record/5902313/files/HP3_TE300_SPC630.hdf5
cd ..
cd ..

run:
pip install .
- name: Test project
shell: bash -l {0}
run: |
Expand All @@ -83,3 +78,35 @@ jobs:
cd ..
cd tests
python -m pytest
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
needs: build
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-15-intel, macos-14]
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
fetch-depth: 0
- name: Restore Cached Files
id: cache-action
uses: actions/cache/restore@v6
with:
path: ./tests/data
key: testfiles
enableCrossOsArchive: true
- name: Build wheels
uses: pypa/cibuildwheel@v4.2.0
env:
CIBW_SKIP: "cp310-win_arm64"
CIBW_TEST_REQUIRES: pytest numpy matplotlib scipy pandas tables seaborn lmfit phconvert pooch
CIBW_BEFORE_TEST: python -m pip install pytest
CIBW_CACHE_PATH: $GITHUB_WORKSPACE/tests/data
CIBW_TEST_COMMAND: python -m pytest {package}/tests/
CIBW_TEST_SKIP: "*win* cp315-macosx_arm64 cp315t-macosx_* cp315t-manylinux_aarch64 *musllinux* cp315t-manylinux_x86_64 cp313-manylinux_aarch64"
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl
2 changes: 1 addition & 1 deletion docs/source/absolute_beginner.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ The installation should take a few seconds.
If you notice any error please report it by opening a new issue on the
`FRETBursts GitHub Issues <https://github.com/OpenSMFS/FRETBursts/issues>`_.

Alternatively create an environment from one of our yaml files where we have verified compatibility of all versions of the software: :downlaod:`frbmin.yml <downloads/frbmin.yml>`
Alternatively create an environment from one of our yaml files where we have verified compatibility of all versions of the software: :download:`frbmin.yml <downloads/frbmin.yml>`

First download `frbmin.yml`

Expand Down
2 changes: 2 additions & 0 deletions docs/source/downloads/frbcmplt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ channels:
dependencies:
- python=3.10
- importlib_metadata
- setuptools
- build
- pytest=7.4.0
- cython=3.0.10
- ipython=8.24.0
Expand Down
5 changes: 5 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@ Single-molecule FRET burst analysis
<br>


**Attention** FRETBursts will only be minimally supported from now on.

The package `smfBursts <https://smfbursts.readthedocs.io>`__ is replacing the functionality of FRETBursts.
Users are recomended to start migrating their piplines.

**FRETBursts** is an open-source
python package for burst analysis of freely-diffusing
`single-molecule FRET <https://en.wikipedia.org/wiki/Single-molecule_FRET>`__
Expand Down
17 changes: 9 additions & 8 deletions fretbursts/burst_plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@
from .scroll_gui import ScrollingToolQT
from . import gui_selection as gs


# so compatible with old and new version of numpy
trapz = np.trapezoid if hasattr(np, 'trapezoid') else np.trapz
##
# Globals
#
Expand Down Expand Up @@ -295,8 +296,8 @@ def _burst_info(d, ich, burst_index):
burst = d.mburst[ich][burst_index]
params = dict(
b_index=burst_index,
start_ms=float(burst.start) * d.clk_p * 1e3,
width_ms=float(burst.width) * d.clk_p * 1e3,
start_ms=float(burst.start[0]) * d.clk_p * 1e3,
width_ms=float(burst.width[0]) * d.clk_p * 1e3,
nt=d.nt[ich][burst_index],
nd=d.nd[ich][burst_index],
na=d.na[ich][burst_index],
Expand Down Expand Up @@ -1098,7 +1099,7 @@ def _fitted_E_plot(d, i=0, F=1, no_E=False, ax=None, show_model=True,
ax2.fill_between(x, scale*y, lw=lw, alpha=alpha, edgecolor=color,
facecolor=fillcolor, zorder=10)
if verbose:
print('Fit Integral:', np.trapz(scale*y, x))
print('Fit Integral:', trapz(scale*y, x))

ax2.axvline(d.E_fit[i], lw=3, color=red, ls='--', alpha=0.6)
xtext = 0.6 if d.E_fit[i] < 0.6 else 0.2
Expand Down Expand Up @@ -1779,17 +1780,17 @@ def hist_ph_delays(

efun = lambda t, r: np.exp(-r*t)*r
try:
re = bg.exp_fit(ph, tail_min_us=efit_tail_min_us)[0]
re = bg.exp_fit(ph, tail_min_us=efit_tail_min_us)[0][0]
re_do = True
except:
re_do = False
try:
rg = bg.exp_hist_fit(ph, tail_min_us=efit_tail_min_us, binw=hfit_bin_ms*1e-3)[0]
rg = bg.exp_hist_fit(ph, tail_min_us=efit_tail_min_us, binw=hfit_bin_ms*1e-3)[0][0]
rg_do = True
except:
rg_do = False
try:
rc = bg.exp_cdf_fit(ph, tail_min_us=efit_tail_min_us)[0]
rc = bg.exp_cdf_fit(ph, tail_min_us=efit_tail_min_us)[0][0]
rc_do = True
except:
rc_do = False
Expand Down Expand Up @@ -1851,7 +1852,7 @@ def hist_mdelays(d, i=0, m=10, bins_s=(0, 10, 0.02), period=0,
max_delay_th_F = m/rate_ch_kcps/d.F

burst_domain = bin_x < max_delay_th_F
burst_integral = np.trapz(x=bin_x[burst_domain],
burst_integral = trapz(x=bin_x[burst_domain],
y=mdelays_hist_y[burst_domain])

ax.set_title("I = %.1f %%" % (burst_integral*100), fontsize='small')
Expand Down
Loading
Loading