Skip to content

Commit

Permalink
Update to 0.8.0 (#48)
Browse files Browse the repository at this point in the history
* Fixed nsalex group data replicating first stream issue

* Fixed issues with burstlib_ext

* Full plotting updates and general bug fixex

* Fix notebook kdeplot call

* Fixed latest seaborn compatibility issues

* Update readthedocs configurations

* Minor plotting updates

* Revert "Minor plotting updates"

This reverts commit f1e7de5.

* Update all np.flot to np.float64

* Fixed np.float -> float data type change

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Shrink test environments

* Update setup.cfg

* Update tests.yml

* Update tests.yml

* Update setup.cfg

* Update tests.yml

* Update tests.yml

* Added pyproject.toml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Fix np.hstack of iterable

* Update tests.yml

* Remove Python 3.6 tests

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update versioneer.py

* Upaded versioneer.py to v 0.19

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Make pyproject.toml primary config file

* Updated to setuptools_scm

* Hopefully working build

* Add more pyproject.toml specs

* Debugged and restructured scm management

* Added kde scatter

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Fixed setuptools_scm version requirement in pyproject.toml

* Fixed missing try import

* Fixed import typo

* Fixed plotting version requirements

* Fixed pyproject.toml

* Moved nbrun to notebooks directory

* Fixed notebooks

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Update tests.yml

* Test without conda

* Update tests.yml

* Run nbrun.py from notebooks folder

* Update tests.yml

* tests bypass indirect import path

* Revert to non fb named c modules

* Fixed setup.py typos

* Revert to fretbursts._c for cython packages

* Moved assumed location of pytest call

* Update build_wheel.yml

* Update build_wheel.yml

* Deprecated python 3.6 support

* Skip pure python cibw builds

* Require matplotlib tests

* Install pyqt in tests

* Updated documentation with env yaml files

* Use importlib for docs version

* Update release notes for version release

* Update release notes

* Update build_wheels.yml

* Update build_wheels.yml

* Update build_wheels.yml
  • Loading branch information
harripd authored May 31, 2024
1 parent c51b088 commit 16a50fa
Show file tree
Hide file tree
Showing 51 changed files with 1,162 additions and 2,862 deletions.
1 change: 0 additions & 1 deletion .gitattributes

This file was deleted.

32 changes: 32 additions & 0 deletions .github/workflows/build_wheel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Build

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, windows-2022, macos-13, macos-14]
steps:
- uses: actions/checkout@v4

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_SKIP: "pp*"
# CIBW_TEST_REQUIRES: pytest, numpy == 1.20.1, matplotlib, scipy, pandas, tables, numba, seaborn, lmfit, phconvert
# CIBW_BEFORE_TEST: python -m pip install pytest
# CIBW_TEST_COMMAND: python -m pytest {package}/tests

- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl
96 changes: 61 additions & 35 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,59 +1,85 @@
name: Tests

on:
push:
branch:
- gitactions
pull_request:
branch:
- gitactions
on: [push, pull_request]
jobs:
build:

runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]

os: [ubuntu-22.04, windows-latest, macos-latest]
python-version: ["3.7", "3.8", "3.12"]
exclude:
- os: macOS-latest
python-version: "3.7"
- os: windows-latest
python-version: "3.7"
steps:
- uses: actions/checkout@v3
- name: Setup Python ${{matrix.python-version}}
uses: actions/setup-python@v4
- uses: actions/checkout@v4
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
with:
python-version: ${{matrix.python-version}}
auto-update-conda: true
activate-environment: test
channels: conda-forge
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
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/
- name: Install Dependencies
shell: bash -l {0}
run: |
conda install cython numpy numba nbconvert pytest jupyter scipy pandas matplotlib pytables phconvert lmfit pybroom seaborn setuptools build 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'
shell: bash -l {0}
run: |
curl.exe --output 2182604/12d_New_30p_320mW_steer_3.hdf5 --url http://files.figshare.com/2182604/12d_New_30p_320mW_steer_3.hdf5
curl.exe --output 0023uLRpitc_NTP_20dT_0.5GndCl.hdf5 --url http://files.figshare.com/2182601/0023uLRpitc_NTP_20dT_0.5GndCl.hdf5
curl.exe --output HP3_TE150_SPC630.hdf5 --url https://zenodo.org/record/5902313/files/HP3_TE150_SPC630.hdf5
curl.exe --output HP3_TE200_SPC630.hdf5 --url https://zenodo.org/record/5902313/files/HP3_TE200_SPC630.hdf5
curl.exe --output HP3_TE250_SPC630.hdf5 --url https://zenodo.org/record/5902313/files/HP3_TE250_SPC630.hdf5
curl.exe --output HP3_TE300_SPC630.hdf5 --url https://zenodo.org/record/5902313/files/HP3_TE300_SPC630.hdf5
- name: Upgrade pip
run: python -m pip install --upgrade pip
- name: Windows 3.6 Oddities
if: matrix.python-version == 3.6 && runner.os == 'Windows'
run: python -m pip install pywinpty==1.1.6
- name: Install Dependencies
run: |
python -m pip install pytest cython numpy scipy pandas matplotlib seaborn
python -m pip install jupyter nbconvert lmfit phconvert pybroom
- name: Install project
run: |
python setup.py sdist
python -m pip install .
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 ..
- name: Test project
shell: bash -l {0}
run: |
python fretbursts/tests/nbrun.py notebooks
cd notebooks
python nbrun.py .
cd ..
cd tests
python -m pytest
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
burstsearch/build/
docs/source/_themes/
*ipynb_checkpoints*
fretbursts/_version.py

*build/
*egg-info/
Expand Down Expand Up @@ -30,5 +31,6 @@ notebooks/out
notebooks/wip
.cache
*.csv
*.mat
_*
docs/source/modules/generated
47 changes: 0 additions & 47 deletions .travis.yml

This file was deleted.

20 changes: 20 additions & 0 deletions LongDescription.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FRETBursts
==========

**FRETBursts** is a software toolkit for burst analysis of confocal
single-molecule FRET (smFRET) measurements. It can analyze both single-spot
and multi-spot smFRET data with or without alternating laser excitation (ALEX).

For more info please refer to:

- **FRETBursts: An Open Source Toolkit for Analysis of Freely-Diffusing Single-Molecule FRET**
*Ingargiola et. al.* (2016). PLoS ONE doi: `10.1371/journal.pone.0160716 <10.1371/journal.pone.0160716>`__.


Quick links:

- `FRETBursts Homepage <http://opensmfs.github.io/FRETBursts/>`_
- `FRETBursts Reference Documentation <http://fretbursts.readthedocs.org>`_
- `FRETBursts Tutorials <https://github.com/OpenSMFS/FRETBursts_notebooks>`_

See also `Release Notes <http://fretbursts.readthedocs.io/en/latest/releasenotes.html>`__.
2 changes: 0 additions & 2 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
include versioneer.py
include fretbursts/_version.py
include LICENSE.txt
include README.md
58 changes: 0 additions & 58 deletions appveyor.yml

This file was deleted.

18 changes: 16 additions & 2 deletions docs/source/absolute_beginner.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ Getting started for the absolute python beginner
Before running FRETBursts you need to install a python distribution that
includes the Jupyter/IPython Notebook application.

You can find a quick guide for installing the software and running your first
notebook here:
We recomend using Anaconda, which you can find instructions for downloading and installing here: `Anaconda installation instructions <https://docs.anaconda.com/free/anaconda/install/index.html>`_.

You can find a guide for jupyter notebooks here:

- |jupyter_quick_guide|

Expand All @@ -31,6 +32,19 @@ 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>`

First download `frbmin.yml`

Then run the following in your terminal::

conda env create -f frbmin.yml
conda activate frbmin

.. note::
You may need to replace frbmin.yml with the path to the file you downloaded.
:ref:`instalation` provides other yaml files for more complete environments.

Running FRETBursts tutorial notebook
------------------------------------

Expand Down
5 changes: 3 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,9 @@
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath('../..'))
import fretbursts
version = fretbursts._version.get_versions()['version'][:13]
release = version
from importlib.metadata import version as get_version
release: str = get_version("fretbursts")
version: str = ".".join(release).split('.')[:2])

import sphinx_bootstrap_theme
html_theme = 'bootstrap'
Expand Down
23 changes: 23 additions & 0 deletions docs/source/downloads/frbcmplt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: frbcmplt
channels:
- conda-forge
- defaults
dependencies:
- python=3.10
- importlib_metadata
- pytest=7.4.0
- cython=3.0.10
- ipython=8.24.0
- jupyter=1.0.0
- numpy=1.26.4
- numba=0.59.1
- pytables=3.9.2
- matplotlib=3.8.4
- pandas=2.2.2
- scipy=1.13.1
- seaborn=0.13.1
- pyqt=5.15.9
- lmfit=1.2.2
- phconvert=0.9.1
- pybroom=0.2

19 changes: 19 additions & 0 deletions docs/source/downloads/frbmin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: frbmin
channels:
- conda-forge
- defaults
dependencies:
- python=3.10
- importlib_metadata
- ipython=8.24.0
- jupyter=1.0.0
- numpy=1.26.4
- pytables=3.9.2
- matplotlib=3.8.4
- pandas=2.2.2
- scipy=1.13.1
- seaborn=0.13.1
- pyqt=5.15.9
- lmfit=1.2.2
- phconvert=0.9.1

Loading

0 comments on commit 16a50fa

Please sign in to comment.