smfbursts 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- smfbursts-0.1.2/.github/workflows/test.yml +109 -0
- smfbursts-0.1.2/.gitignore +13 -0
- smfbursts-0.1.2/.readthedocs.yaml +25 -0
- smfbursts-0.1.2/LICENSE.txt +21 -0
- smfbursts-0.1.2/MANIFEST.in +4 -0
- smfbursts-0.1.2/PKG-INFO +119 -0
- smfbursts-0.1.2/README.md +85 -0
- smfbursts-0.1.2/docs/Makefile +20 -0
- smfbursts-0.1.2/docs/make.bat +35 -0
- smfbursts-0.1.2/docs/source/DefineExtensions.rst +301 -0
- smfbursts-0.1.2/docs/source/Documentation.rst +40 -0
- smfbursts-0.1.2/docs/source/Introduction.rst +76 -0
- smfbursts-0.1.2/docs/source/TableHierarchy.dot +118 -0
- smfbursts-0.1.2/docs/source/TableHierarchysimple.dot +50 -0
- smfbursts-0.1.2/docs/source/Tutorials.rst +53 -0
- smfbursts-0.1.2/docs/source/UserGuides.rst +30 -0
- smfbursts-0.1.2/docs/source/backgroundtablesdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/bursttablesdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/cfuncs.rst +5 -0
- smfbursts-0.1.2/docs/source/childphotontablesdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/citationsdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/conf.py +40 -0
- smfbursts-0.1.2/docs/source/contributing.rst +11 -0
- smfbursts-0.1.2/docs/source/datamodeldoc.rst +20 -0
- smfbursts-0.1.2/docs/source/diskdictdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/fcsdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/fretfactorydoc.rst +5 -0
- smfbursts-0.1.2/docs/source/gatesdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/immutabledatadoc.rst +5 -0
- smfbursts-0.1.2/docs/source/index.rst +56 -0
- smfbursts-0.1.2/docs/source/loadrawdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/multifitdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/notebooks/BVATutorial.ipynb +336 -0
- smfbursts-0.1.2/docs/source/notebooks/BurstSearchTutorial.ipynb +1377 -0
- smfbursts-0.1.2/docs/source/notebooks/BurstsTutorial.ipynb +3174 -0
- smfbursts-0.1.2/docs/source/notebooks/DataModelTutorial.ipynb +3730 -0
- smfbursts-0.1.2/docs/source/notebooks/ESplotTutorial.ipynb +492 -0
- smfbursts-0.1.2/docs/source/notebooks/ETauTutorial.ipynb +590 -0
- smfbursts-0.1.2/docs/source/notebooks/FCStutorial.ipynb +224 -0
- smfbursts-0.1.2/docs/source/notebooks/FRETCorrectionsTutorial.ipynb +1435 -0
- smfbursts-0.1.2/docs/source/notebooks/FRETHistTutorial.ipynb +508 -0
- smfbursts-0.1.2/docs/source/notebooks/GatesTutorial.ipynb +2171 -0
- smfbursts-0.1.2/docs/source/notebooks/MultiFitTutorial.ipynb +1830 -0
- smfbursts-0.1.2/docs/source/notebooks/PhSelTutorial.ipynb +949 -0
- smfbursts-0.1.2/docs/source/notebooks/PlottingTutorial.ipynb +1277 -0
- smfbursts-0.1.2/docs/source/notebooks/SelectingFRETPopulations_translation.ipynb +493 -0
- smfbursts-0.1.2/docs/source/notebooks/fetch_files.py +19 -0
- smfbursts-0.1.2/docs/source/notebooks/ns-ALEX_translation.ipynb +904 -0
- smfbursts-0.1.2/docs/source/notebooks/ntFCStest.ipynb +961 -0
- smfbursts-0.1.2/docs/source/notebooks/photonHDF5Tutorial.ipynb +1255 -0
- smfbursts-0.1.2/docs/source/notebooks/us-ALEX_translation.ipynb +2903 -0
- smfbursts-0.1.2/docs/source/photondatadoc.rst +5 -0
- smfbursts-0.1.2/docs/source/photonhdf5doc.rst +5 -0
- smfbursts-0.1.2/docs/source/phseldoc.rst +5 -0
- smfbursts-0.1.2/docs/source/plottingdoc.rst +15 -0
- smfbursts-0.1.2/docs/source/release.rst +8 -0
- smfbursts-0.1.2/docs/source/requirements.txt +14 -0
- smfbursts-0.1.2/docs/source/tablesdoc.rst +5 -0
- smfbursts-0.1.2/docs/source/utilitydoc.rst +7 -0
- smfbursts-0.1.2/pyproject.toml +59 -0
- smfbursts-0.1.2/setup.cfg +4 -0
- smfbursts-0.1.2/setup.py +16 -0
- smfbursts-0.1.2/smfbursts/__init__.py +75 -0
- smfbursts-0.1.2/smfbursts/_citations.py +77 -0
- smfbursts-0.1.2/smfbursts/backgroundtables.py +1041 -0
- smfbursts-0.1.2/smfbursts/bursttables.py +878 -0
- smfbursts-0.1.2/smfbursts/cfuncs/burstsearch.c +968 -0
- smfbursts-0.1.2/smfbursts/cfuncs/cpburstsearch.c +174 -0
- smfbursts-0.1.2/smfbursts/cfuncs/kde.c +162 -0
- smfbursts-0.1.2/smfbursts/cfuncs/sims.c +12 -0
- smfbursts-0.1.2/smfbursts/cfuncs/smfbursts_burstwise.h +247 -0
- smfbursts-0.1.2/smfbursts/cfuncs/smfbursts_cfuncs.c +1438 -0
- smfbursts-0.1.2/smfbursts/cfuncs/smfbursts_parfuncs.c +766 -0
- smfbursts-0.1.2/smfbursts/cfuncs/testbsearch.c +195 -0
- smfbursts-0.1.2/smfbursts/cfuncs/testburstgate.c +82 -0
- smfbursts-0.1.2/smfbursts/cfuncs/testcpburstsearch.c +262 -0
- smfbursts-0.1.2/smfbursts/childphotontables.py +1174 -0
- smfbursts-0.1.2/smfbursts/citations/citations.bib +210 -0
- smfbursts-0.1.2/smfbursts/citations/citations.json +16 -0
- smfbursts-0.1.2/smfbursts/citations/citations.ris +371 -0
- smfbursts-0.1.2/smfbursts/cite/__init__.py +12 -0
- smfbursts-0.1.2/smfbursts/cite/citations.py +887 -0
- smfbursts-0.1.2/smfbursts/datamodel/__init__.py +43 -0
- smfbursts-0.1.2/smfbursts/datamodel/diskdict.py +735 -0
- smfbursts-0.1.2/smfbursts/datamodel/gates.py +1018 -0
- smfbursts-0.1.2/smfbursts/datamodel/immutabledata.py +3023 -0
- smfbursts-0.1.2/smfbursts/datamodel/multifit.py +1694 -0
- smfbursts-0.1.2/smfbursts/datamodel/plot.py +2135 -0
- smfbursts-0.1.2/smfbursts/datamodel/tables.py +5984 -0
- smfbursts-0.1.2/smfbursts/datamodel/utils.py +1984 -0
- smfbursts-0.1.2/smfbursts/fcs.py +692 -0
- smfbursts-0.1.2/smfbursts/fretfactory.py +1079 -0
- smfbursts-0.1.2/smfbursts/loadraw.py +606 -0
- smfbursts-0.1.2/smfbursts/ph_sel.py +1795 -0
- smfbursts-0.1.2/smfbursts/photonHDF5.py +862 -0
- smfbursts-0.1.2/smfbursts/photondata.py +2193 -0
- smfbursts-0.1.2/smfbursts/plot.py +1294 -0
- smfbursts-0.1.2/smfbursts.egg-info/PKG-INFO +119 -0
- smfbursts-0.1.2/smfbursts.egg-info/SOURCES.txt +115 -0
- smfbursts-0.1.2/smfbursts.egg-info/dependency_links.txt +1 -0
- smfbursts-0.1.2/smfbursts.egg-info/requires.txt +11 -0
- smfbursts-0.1.2/smfbursts.egg-info/scm_file_list.json +112 -0
- smfbursts-0.1.2/smfbursts.egg-info/scm_version.json +8 -0
- smfbursts-0.1.2/smfbursts.egg-info/top_level.txt +1 -0
- smfbursts-0.1.2/tests/conftest.py +103 -0
- smfbursts-0.1.2/tests/cptester.py +22 -0
- smfbursts-0.1.2/tests/fetch_files.py +16 -0
- smfbursts-0.1.2/tests/test_TypeValidator.py +227 -0
- smfbursts-0.1.2/tests/test_background.py +122 -0
- smfbursts-0.1.2/tests/test_bursttables.py +388 -0
- smfbursts-0.1.2/tests/test_diskdict.py +72 -0
- smfbursts-0.1.2/tests/test_gates.py +258 -0
- smfbursts-0.1.2/tests/test_immutabledata.py +294 -0
- smfbursts-0.1.2/tests/test_multifit.py +79 -0
- smfbursts-0.1.2/tests/test_phsel.py +157 -0
- smfbursts-0.1.2/tests/test_smfcfuncs.py +189 -0
- smfbursts-0.1.2/tests/test_tables.py +235 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
Download:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
steps:
|
|
9
|
+
- uses: actions/checkout@v6
|
|
10
|
+
- uses: conda-incubator/setup-miniconda@v4
|
|
11
|
+
with:
|
|
12
|
+
auto-update-conda: true
|
|
13
|
+
channels: conda-forge
|
|
14
|
+
python-version: "3.12"
|
|
15
|
+
activate-environment: test
|
|
16
|
+
- name: Install Pooch
|
|
17
|
+
shell: bash -l {0}
|
|
18
|
+
run: conda install -c conda-forge pooch
|
|
19
|
+
- name: Download Files
|
|
20
|
+
shell: bash -l {0}
|
|
21
|
+
run: |
|
|
22
|
+
cd tests
|
|
23
|
+
python fetch_files.py
|
|
24
|
+
- uses: actions/cache@v6
|
|
25
|
+
id: filecache
|
|
26
|
+
with:
|
|
27
|
+
path: ./tests/data
|
|
28
|
+
enableCrossOsArchive: true
|
|
29
|
+
key: testfiles
|
|
30
|
+
|
|
31
|
+
TestProject:
|
|
32
|
+
needs: Download
|
|
33
|
+
runs-on: ${{ matrix.os }}
|
|
34
|
+
strategy:
|
|
35
|
+
matrix:
|
|
36
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
37
|
+
python-version: ["3.10", "3.12", "3.14"]
|
|
38
|
+
steps:
|
|
39
|
+
- uses: actions/checkout@v6
|
|
40
|
+
with:
|
|
41
|
+
persist-credentials: false
|
|
42
|
+
fetch-depth: 0
|
|
43
|
+
- name: Restore Cached Files
|
|
44
|
+
id: cache-action
|
|
45
|
+
uses: actions/cache/restore@v6
|
|
46
|
+
with:
|
|
47
|
+
path: ./tests/data
|
|
48
|
+
key: testfiles
|
|
49
|
+
enableCrossOsArchive: true
|
|
50
|
+
- name: Install Conda
|
|
51
|
+
uses: conda-incubator/setup-miniconda@v4
|
|
52
|
+
with:
|
|
53
|
+
auto-update-conda: true
|
|
54
|
+
channels: conda-forge
|
|
55
|
+
python-version: ${{ matrix.python-version }}
|
|
56
|
+
activate_environment: test
|
|
57
|
+
- name: Apple Silicon Oddities
|
|
58
|
+
if: matrix.os == 'macos-latest'
|
|
59
|
+
shell: bash -l {0}
|
|
60
|
+
run: |
|
|
61
|
+
brew install c-blosc hdf5
|
|
62
|
+
export HDF5_DIF=/opt/homebrew/opt/hdf5
|
|
63
|
+
export BLOSC_DIR=/opt/homebrew/opt/c-blosc
|
|
64
|
+
- name: Install Dependencies
|
|
65
|
+
shell: bash -l {0}
|
|
66
|
+
run: |
|
|
67
|
+
conda install -c conda-forge pip
|
|
68
|
+
python -m pip install setuptools build
|
|
69
|
+
conda install -c conda-forge pytest numpy numba scipy pandas matplotlib pytables msgpack-python phconvert
|
|
70
|
+
- name: Install Project
|
|
71
|
+
shell: bash -l {0}
|
|
72
|
+
run:
|
|
73
|
+
pip install .
|
|
74
|
+
- name: Test Project
|
|
75
|
+
shell: bash -l {0}
|
|
76
|
+
run: |
|
|
77
|
+
cd tests
|
|
78
|
+
pytest
|
|
79
|
+
BuildWheels:
|
|
80
|
+
name: Build wheels on ${{ matrix.os }}
|
|
81
|
+
runs-on: ${{ matrix.os }}
|
|
82
|
+
needs: TestProject
|
|
83
|
+
strategy:
|
|
84
|
+
matrix:
|
|
85
|
+
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-15-intel, macos-14]
|
|
86
|
+
steps:
|
|
87
|
+
- uses: actions/checkout@v6
|
|
88
|
+
with:
|
|
89
|
+
persist-credentials: false
|
|
90
|
+
fetch-depth: 0
|
|
91
|
+
- name: Restore Cached Files
|
|
92
|
+
id: cache-action
|
|
93
|
+
uses: actions/cache/restore@v6
|
|
94
|
+
with:
|
|
95
|
+
path: ./tests/data
|
|
96
|
+
key: testfiles
|
|
97
|
+
enableCrossOsArchive: true
|
|
98
|
+
- name: Build wheels
|
|
99
|
+
uses: pypa/cibuildwheel@v4.2.0
|
|
100
|
+
env:
|
|
101
|
+
CIBW_SKIP: "cp310-win_arm64"
|
|
102
|
+
CIBW_TEST_REQUIRES: pytest matplotlib
|
|
103
|
+
CIBW_TEST_COMMAND: cd {package}/tests; pytest test_tables.py test_TypeValidator.py test_immutabledata.py test_diskdict.py test_gates.py test_phsel.py test_multifit.py
|
|
104
|
+
CIBW_CACHE_PATH: $GITHUB_WORKSPACE/tests/data
|
|
105
|
+
CIBW_TEST_SKIP: "*win* cp315-macosx_arm64 cp315t-macosx_* cp315t-manylinux_aarch64 *musllinux* cp315t-manylinux_x86_64"
|
|
106
|
+
- uses: actions/upload-artifact@v4
|
|
107
|
+
with:
|
|
108
|
+
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
|
109
|
+
path: ./wheelhouse/*.whl
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Read the Docs configuration file
|
|
2
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
|
3
|
+
|
|
4
|
+
# Required
|
|
5
|
+
version: 2
|
|
6
|
+
|
|
7
|
+
# Set the OS, Python version, and other tools you might need
|
|
8
|
+
build:
|
|
9
|
+
os: ubuntu-24.04
|
|
10
|
+
tools:
|
|
11
|
+
python: "3.13"
|
|
12
|
+
|
|
13
|
+
# Build documentation in the "docs/" directory with Sphinx
|
|
14
|
+
sphinx:
|
|
15
|
+
configuration: docs/source/conf.py
|
|
16
|
+
|
|
17
|
+
# Optionally, but recommended,
|
|
18
|
+
# declare the Python requirements required to build your documentation
|
|
19
|
+
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
|
|
20
|
+
python:
|
|
21
|
+
install:
|
|
22
|
+
- requirements: docs/source/requirements.txt
|
|
23
|
+
- method: pip
|
|
24
|
+
path: .
|
|
25
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) [year] [fullname]
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
smfbursts-0.1.2/PKG-INFO
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: smfbursts
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: Burst analysis toolkit for single and multi-spot smFRET data.
|
|
5
|
+
Author-email: Antonio Ingargiola <tritemio@gmail.com>, Paul David Harris <harripd@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, http://opensmfs.github.io/smfBursts/
|
|
8
|
+
Project-URL: Documentation, https://smfbursts.readthedocs.io/en/latest/
|
|
9
|
+
Project-URL: Issues, https://github.com/OpenSMFS/smfBursts/
|
|
10
|
+
Project-URL: Repository, https://github.com/OpenSMFS/smfBursts/issues
|
|
11
|
+
Keywords: single-molecule FRET,smFRET,burst-analysis,biophysics
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE.txt
|
|
23
|
+
Requires-Dist: numpy>=1.20
|
|
24
|
+
Requires-Dist: pandas>=2.0
|
|
25
|
+
Requires-Dist: scipy>=1.2
|
|
26
|
+
Requires-Dist: tables>=3.5
|
|
27
|
+
Requires-Dist: msgpack>=1.0
|
|
28
|
+
Requires-Dist: phconvert>=0.8
|
|
29
|
+
Requires-Dist: pyFCS>=0.1.3
|
|
30
|
+
Provides-Extra: scientific
|
|
31
|
+
Requires-Dist: jupyter; extra == "scientific"
|
|
32
|
+
Requires-Dist: matplotlib>=3.0.1; extra == "scientific"
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
# smfBursts
|
|
36
|
+
|
|
37
|
+
[](https://github.com/OpenSMFS/smfBursts/actions)
|
|
38
|
+
[](https://smfbursts.readthedocs.io/en/latest/?badge=latest)
|
|
39
|
+
|
|
40
|
+
## Project Description
|
|
41
|
+
|
|
42
|
+
smfBursts is an open source package for analysis of freely-diffusing single molecule experiments, with a focus on burst-wise analysis techniques.
|
|
43
|
+
|
|
44
|
+
The goal is to be easy to use, easy to reproduce, and easy to communicate
|
|
45
|
+
|
|
46
|
+
While initially designed for FRET based experiments,
|
|
47
|
+
it supports any number of spectral, as well as polarization based detection channels,
|
|
48
|
+
as well as any number of excitation channels.
|
|
49
|
+
|
|
50
|
+
### smfBursts and Reproducibility
|
|
51
|
+
|
|
52
|
+
smfBursts is an effort to bring
|
|
53
|
+
[reproducible computing](http://dx.doi.org/10.1371/journal.pcbi.1003285)
|
|
54
|
+
to the field of single-molecule confocal microscopy.
|
|
55
|
+
smfBursts records all instructions with their thresholds and other parameters
|
|
56
|
+
in special `Param` objects, which have a standard text representation,
|
|
57
|
+
so that exact computations can be unambiguously reproduced.
|
|
58
|
+
|
|
59
|
+
smfBursts provides tutorials for use with
|
|
60
|
+
[Jupyter Notebooks](https://jupyter.org),
|
|
61
|
+
and plotting relies on the ubiquitous python plotting library
|
|
62
|
+
[matplotlib](https://matplotlib.org/)
|
|
63
|
+
|
|
64
|
+
## Supported Features
|
|
65
|
+
|
|
66
|
+
smfBursts provides algorithms for the following analysis methods
|
|
67
|
+
- Backgrounds estimation as a function of time
|
|
68
|
+
- Sliding-window bursts earch with adaptive (background-dependent) rate-threshold
|
|
69
|
+
- Multi-channel burst search with logical combinations of bursts, extending DCBS
|
|
70
|
+
- Burst corrections based on [Hellenkamp et. al.](https://doi.org/10.1038/s41592-018-0085-0), and the flexibility to specify corrections for other excitation/detector schemes with more channels and polarization (MFD)
|
|
71
|
+
- Flexible and reproducible burst selection based on logical operations on arbitrary numbers of gates
|
|
72
|
+
- Large suite of burst statistics, such as E, S, peak rate, brightness, mean fluorescence lifetime, etc.
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## Install
|
|
76
|
+
|
|
77
|
+
smfBursts is available on pypi, install with
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
pip install smfbursts
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
hopefully soon smfbursts will also be available on conda-forge
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
conda install smfbursts -c conda-forge
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## License and Copyrights
|
|
90
|
+
|
|
91
|
+
License: MIT
|
|
92
|
+
|
|
93
|
+
You can find a full copy fo the license in the file LICENSE.txt
|
|
94
|
+
|
|
95
|
+
### A request from the developer
|
|
96
|
+
|
|
97
|
+
Be nice, give credit and give back.
|
|
98
|
+
|
|
99
|
+
That is the basic philosophy I would like users of this package to adopt.
|
|
100
|
+
|
|
101
|
+
If you are a lab group, a company selling equipment or whoever/whatever else,
|
|
102
|
+
if you can make use of smfBursts, I want you to use it,
|
|
103
|
+
but please don't box people out, and give me the proper citation.
|
|
104
|
+
I chose the MIT license because I didn't want to scare anyone (especially companies) away because of strong copyleft licenses like GPL.
|
|
105
|
+
|
|
106
|
+
MIT basically lets anyone do pretty much whatever they want with this code.
|
|
107
|
+
I would however ask people to use this in a more copyleft way, making sure to give credit, and make open source what they develop off of it.
|
|
108
|
+
|
|
109
|
+
Open source is incredibly valuable to the scientific community.
|
|
110
|
+
It makes analysis transparent and reproducible.
|
|
111
|
+
There's nothing more frustrating than reading in a paper
|
|
112
|
+
that the analysis was done with some black box piece of software.
|
|
113
|
+
Open source lets use your new methods,
|
|
114
|
+
and let's us understand what you are doing, and check your work.
|
|
115
|
+
|
|
116
|
+
So if you are doing science, or selling to those doing science, I ask you keep that in mind.
|
|
117
|
+
|
|
118
|
+
If you don't act that way, the MIT license can't stop you,
|
|
119
|
+
but you will get me wagging a finger at you in conversation.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# smfBursts
|
|
2
|
+
|
|
3
|
+
[](https://github.com/OpenSMFS/smfBursts/actions)
|
|
4
|
+
[](https://smfbursts.readthedocs.io/en/latest/?badge=latest)
|
|
5
|
+
|
|
6
|
+
## Project Description
|
|
7
|
+
|
|
8
|
+
smfBursts is an open source package for analysis of freely-diffusing single molecule experiments, with a focus on burst-wise analysis techniques.
|
|
9
|
+
|
|
10
|
+
The goal is to be easy to use, easy to reproduce, and easy to communicate
|
|
11
|
+
|
|
12
|
+
While initially designed for FRET based experiments,
|
|
13
|
+
it supports any number of spectral, as well as polarization based detection channels,
|
|
14
|
+
as well as any number of excitation channels.
|
|
15
|
+
|
|
16
|
+
### smfBursts and Reproducibility
|
|
17
|
+
|
|
18
|
+
smfBursts is an effort to bring
|
|
19
|
+
[reproducible computing](http://dx.doi.org/10.1371/journal.pcbi.1003285)
|
|
20
|
+
to the field of single-molecule confocal microscopy.
|
|
21
|
+
smfBursts records all instructions with their thresholds and other parameters
|
|
22
|
+
in special `Param` objects, which have a standard text representation,
|
|
23
|
+
so that exact computations can be unambiguously reproduced.
|
|
24
|
+
|
|
25
|
+
smfBursts provides tutorials for use with
|
|
26
|
+
[Jupyter Notebooks](https://jupyter.org),
|
|
27
|
+
and plotting relies on the ubiquitous python plotting library
|
|
28
|
+
[matplotlib](https://matplotlib.org/)
|
|
29
|
+
|
|
30
|
+
## Supported Features
|
|
31
|
+
|
|
32
|
+
smfBursts provides algorithms for the following analysis methods
|
|
33
|
+
- Backgrounds estimation as a function of time
|
|
34
|
+
- Sliding-window bursts earch with adaptive (background-dependent) rate-threshold
|
|
35
|
+
- Multi-channel burst search with logical combinations of bursts, extending DCBS
|
|
36
|
+
- Burst corrections based on [Hellenkamp et. al.](https://doi.org/10.1038/s41592-018-0085-0), and the flexibility to specify corrections for other excitation/detector schemes with more channels and polarization (MFD)
|
|
37
|
+
- Flexible and reproducible burst selection based on logical operations on arbitrary numbers of gates
|
|
38
|
+
- Large suite of burst statistics, such as E, S, peak rate, brightness, mean fluorescence lifetime, etc.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Install
|
|
42
|
+
|
|
43
|
+
smfBursts is available on pypi, install with
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pip install smfbursts
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
hopefully soon smfbursts will also be available on conda-forge
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
conda install smfbursts -c conda-forge
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## License and Copyrights
|
|
56
|
+
|
|
57
|
+
License: MIT
|
|
58
|
+
|
|
59
|
+
You can find a full copy fo the license in the file LICENSE.txt
|
|
60
|
+
|
|
61
|
+
### A request from the developer
|
|
62
|
+
|
|
63
|
+
Be nice, give credit and give back.
|
|
64
|
+
|
|
65
|
+
That is the basic philosophy I would like users of this package to adopt.
|
|
66
|
+
|
|
67
|
+
If you are a lab group, a company selling equipment or whoever/whatever else,
|
|
68
|
+
if you can make use of smfBursts, I want you to use it,
|
|
69
|
+
but please don't box people out, and give me the proper citation.
|
|
70
|
+
I chose the MIT license because I didn't want to scare anyone (especially companies) away because of strong copyleft licenses like GPL.
|
|
71
|
+
|
|
72
|
+
MIT basically lets anyone do pretty much whatever they want with this code.
|
|
73
|
+
I would however ask people to use this in a more copyleft way, making sure to give credit, and make open source what they develop off of it.
|
|
74
|
+
|
|
75
|
+
Open source is incredibly valuable to the scientific community.
|
|
76
|
+
It makes analysis transparent and reproducible.
|
|
77
|
+
There's nothing more frustrating than reading in a paper
|
|
78
|
+
that the analysis was done with some black box piece of software.
|
|
79
|
+
Open source lets use your new methods,
|
|
80
|
+
and let's us understand what you are doing, and check your work.
|
|
81
|
+
|
|
82
|
+
So if you are doing science, or selling to those doing science, I ask you keep that in mind.
|
|
83
|
+
|
|
84
|
+
If you don't act that way, the MIT license can't stop you,
|
|
85
|
+
but you will get me wagging a finger at you in conversation.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line, and also
|
|
5
|
+
# from the environment for the first two.
|
|
6
|
+
SPHINXOPTS ?=
|
|
7
|
+
SPHINXBUILD ?= sphinx-build
|
|
8
|
+
SOURCEDIR = source
|
|
9
|
+
BUILDDIR = build
|
|
10
|
+
|
|
11
|
+
# Put it first so that "make" without argument is like "make help".
|
|
12
|
+
help:
|
|
13
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
14
|
+
|
|
15
|
+
.PHONY: help Makefile
|
|
16
|
+
|
|
17
|
+
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
18
|
+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
19
|
+
%: Makefile
|
|
20
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
@ECHO OFF
|
|
2
|
+
|
|
3
|
+
pushd %~dp0
|
|
4
|
+
|
|
5
|
+
REM Command file for Sphinx documentation
|
|
6
|
+
|
|
7
|
+
if "%SPHINXBUILD%" == "" (
|
|
8
|
+
set SPHINXBUILD=sphinx-build
|
|
9
|
+
)
|
|
10
|
+
set SOURCEDIR=source
|
|
11
|
+
set BUILDDIR=build
|
|
12
|
+
|
|
13
|
+
%SPHINXBUILD% >NUL 2>NUL
|
|
14
|
+
if errorlevel 9009 (
|
|
15
|
+
echo.
|
|
16
|
+
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
|
17
|
+
echo.installed, then set the SPHINXBUILD environment variable to point
|
|
18
|
+
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
|
19
|
+
echo.may add the Sphinx directory to PATH.
|
|
20
|
+
echo.
|
|
21
|
+
echo.If you don't have Sphinx installed, grab it from
|
|
22
|
+
echo.https://www.sphinx-doc.org/
|
|
23
|
+
exit /b 1
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
if "%1" == "" goto help
|
|
27
|
+
|
|
28
|
+
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
|
29
|
+
goto end
|
|
30
|
+
|
|
31
|
+
:help
|
|
32
|
+
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
|
33
|
+
|
|
34
|
+
:end
|
|
35
|
+
popd
|