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.
Files changed (117) hide show
  1. smfbursts-0.1.2/.github/workflows/test.yml +109 -0
  2. smfbursts-0.1.2/.gitignore +13 -0
  3. smfbursts-0.1.2/.readthedocs.yaml +25 -0
  4. smfbursts-0.1.2/LICENSE.txt +21 -0
  5. smfbursts-0.1.2/MANIFEST.in +4 -0
  6. smfbursts-0.1.2/PKG-INFO +119 -0
  7. smfbursts-0.1.2/README.md +85 -0
  8. smfbursts-0.1.2/docs/Makefile +20 -0
  9. smfbursts-0.1.2/docs/make.bat +35 -0
  10. smfbursts-0.1.2/docs/source/DefineExtensions.rst +301 -0
  11. smfbursts-0.1.2/docs/source/Documentation.rst +40 -0
  12. smfbursts-0.1.2/docs/source/Introduction.rst +76 -0
  13. smfbursts-0.1.2/docs/source/TableHierarchy.dot +118 -0
  14. smfbursts-0.1.2/docs/source/TableHierarchysimple.dot +50 -0
  15. smfbursts-0.1.2/docs/source/Tutorials.rst +53 -0
  16. smfbursts-0.1.2/docs/source/UserGuides.rst +30 -0
  17. smfbursts-0.1.2/docs/source/backgroundtablesdoc.rst +5 -0
  18. smfbursts-0.1.2/docs/source/bursttablesdoc.rst +5 -0
  19. smfbursts-0.1.2/docs/source/cfuncs.rst +5 -0
  20. smfbursts-0.1.2/docs/source/childphotontablesdoc.rst +5 -0
  21. smfbursts-0.1.2/docs/source/citationsdoc.rst +5 -0
  22. smfbursts-0.1.2/docs/source/conf.py +40 -0
  23. smfbursts-0.1.2/docs/source/contributing.rst +11 -0
  24. smfbursts-0.1.2/docs/source/datamodeldoc.rst +20 -0
  25. smfbursts-0.1.2/docs/source/diskdictdoc.rst +5 -0
  26. smfbursts-0.1.2/docs/source/fcsdoc.rst +5 -0
  27. smfbursts-0.1.2/docs/source/fretfactorydoc.rst +5 -0
  28. smfbursts-0.1.2/docs/source/gatesdoc.rst +5 -0
  29. smfbursts-0.1.2/docs/source/immutabledatadoc.rst +5 -0
  30. smfbursts-0.1.2/docs/source/index.rst +56 -0
  31. smfbursts-0.1.2/docs/source/loadrawdoc.rst +5 -0
  32. smfbursts-0.1.2/docs/source/multifitdoc.rst +5 -0
  33. smfbursts-0.1.2/docs/source/notebooks/BVATutorial.ipynb +336 -0
  34. smfbursts-0.1.2/docs/source/notebooks/BurstSearchTutorial.ipynb +1377 -0
  35. smfbursts-0.1.2/docs/source/notebooks/BurstsTutorial.ipynb +3174 -0
  36. smfbursts-0.1.2/docs/source/notebooks/DataModelTutorial.ipynb +3730 -0
  37. smfbursts-0.1.2/docs/source/notebooks/ESplotTutorial.ipynb +492 -0
  38. smfbursts-0.1.2/docs/source/notebooks/ETauTutorial.ipynb +590 -0
  39. smfbursts-0.1.2/docs/source/notebooks/FCStutorial.ipynb +224 -0
  40. smfbursts-0.1.2/docs/source/notebooks/FRETCorrectionsTutorial.ipynb +1435 -0
  41. smfbursts-0.1.2/docs/source/notebooks/FRETHistTutorial.ipynb +508 -0
  42. smfbursts-0.1.2/docs/source/notebooks/GatesTutorial.ipynb +2171 -0
  43. smfbursts-0.1.2/docs/source/notebooks/MultiFitTutorial.ipynb +1830 -0
  44. smfbursts-0.1.2/docs/source/notebooks/PhSelTutorial.ipynb +949 -0
  45. smfbursts-0.1.2/docs/source/notebooks/PlottingTutorial.ipynb +1277 -0
  46. smfbursts-0.1.2/docs/source/notebooks/SelectingFRETPopulations_translation.ipynb +493 -0
  47. smfbursts-0.1.2/docs/source/notebooks/fetch_files.py +19 -0
  48. smfbursts-0.1.2/docs/source/notebooks/ns-ALEX_translation.ipynb +904 -0
  49. smfbursts-0.1.2/docs/source/notebooks/ntFCStest.ipynb +961 -0
  50. smfbursts-0.1.2/docs/source/notebooks/photonHDF5Tutorial.ipynb +1255 -0
  51. smfbursts-0.1.2/docs/source/notebooks/us-ALEX_translation.ipynb +2903 -0
  52. smfbursts-0.1.2/docs/source/photondatadoc.rst +5 -0
  53. smfbursts-0.1.2/docs/source/photonhdf5doc.rst +5 -0
  54. smfbursts-0.1.2/docs/source/phseldoc.rst +5 -0
  55. smfbursts-0.1.2/docs/source/plottingdoc.rst +15 -0
  56. smfbursts-0.1.2/docs/source/release.rst +8 -0
  57. smfbursts-0.1.2/docs/source/requirements.txt +14 -0
  58. smfbursts-0.1.2/docs/source/tablesdoc.rst +5 -0
  59. smfbursts-0.1.2/docs/source/utilitydoc.rst +7 -0
  60. smfbursts-0.1.2/pyproject.toml +59 -0
  61. smfbursts-0.1.2/setup.cfg +4 -0
  62. smfbursts-0.1.2/setup.py +16 -0
  63. smfbursts-0.1.2/smfbursts/__init__.py +75 -0
  64. smfbursts-0.1.2/smfbursts/_citations.py +77 -0
  65. smfbursts-0.1.2/smfbursts/backgroundtables.py +1041 -0
  66. smfbursts-0.1.2/smfbursts/bursttables.py +878 -0
  67. smfbursts-0.1.2/smfbursts/cfuncs/burstsearch.c +968 -0
  68. smfbursts-0.1.2/smfbursts/cfuncs/cpburstsearch.c +174 -0
  69. smfbursts-0.1.2/smfbursts/cfuncs/kde.c +162 -0
  70. smfbursts-0.1.2/smfbursts/cfuncs/sims.c +12 -0
  71. smfbursts-0.1.2/smfbursts/cfuncs/smfbursts_burstwise.h +247 -0
  72. smfbursts-0.1.2/smfbursts/cfuncs/smfbursts_cfuncs.c +1438 -0
  73. smfbursts-0.1.2/smfbursts/cfuncs/smfbursts_parfuncs.c +766 -0
  74. smfbursts-0.1.2/smfbursts/cfuncs/testbsearch.c +195 -0
  75. smfbursts-0.1.2/smfbursts/cfuncs/testburstgate.c +82 -0
  76. smfbursts-0.1.2/smfbursts/cfuncs/testcpburstsearch.c +262 -0
  77. smfbursts-0.1.2/smfbursts/childphotontables.py +1174 -0
  78. smfbursts-0.1.2/smfbursts/citations/citations.bib +210 -0
  79. smfbursts-0.1.2/smfbursts/citations/citations.json +16 -0
  80. smfbursts-0.1.2/smfbursts/citations/citations.ris +371 -0
  81. smfbursts-0.1.2/smfbursts/cite/__init__.py +12 -0
  82. smfbursts-0.1.2/smfbursts/cite/citations.py +887 -0
  83. smfbursts-0.1.2/smfbursts/datamodel/__init__.py +43 -0
  84. smfbursts-0.1.2/smfbursts/datamodel/diskdict.py +735 -0
  85. smfbursts-0.1.2/smfbursts/datamodel/gates.py +1018 -0
  86. smfbursts-0.1.2/smfbursts/datamodel/immutabledata.py +3023 -0
  87. smfbursts-0.1.2/smfbursts/datamodel/multifit.py +1694 -0
  88. smfbursts-0.1.2/smfbursts/datamodel/plot.py +2135 -0
  89. smfbursts-0.1.2/smfbursts/datamodel/tables.py +5984 -0
  90. smfbursts-0.1.2/smfbursts/datamodel/utils.py +1984 -0
  91. smfbursts-0.1.2/smfbursts/fcs.py +692 -0
  92. smfbursts-0.1.2/smfbursts/fretfactory.py +1079 -0
  93. smfbursts-0.1.2/smfbursts/loadraw.py +606 -0
  94. smfbursts-0.1.2/smfbursts/ph_sel.py +1795 -0
  95. smfbursts-0.1.2/smfbursts/photonHDF5.py +862 -0
  96. smfbursts-0.1.2/smfbursts/photondata.py +2193 -0
  97. smfbursts-0.1.2/smfbursts/plot.py +1294 -0
  98. smfbursts-0.1.2/smfbursts.egg-info/PKG-INFO +119 -0
  99. smfbursts-0.1.2/smfbursts.egg-info/SOURCES.txt +115 -0
  100. smfbursts-0.1.2/smfbursts.egg-info/dependency_links.txt +1 -0
  101. smfbursts-0.1.2/smfbursts.egg-info/requires.txt +11 -0
  102. smfbursts-0.1.2/smfbursts.egg-info/scm_file_list.json +112 -0
  103. smfbursts-0.1.2/smfbursts.egg-info/scm_version.json +8 -0
  104. smfbursts-0.1.2/smfbursts.egg-info/top_level.txt +1 -0
  105. smfbursts-0.1.2/tests/conftest.py +103 -0
  106. smfbursts-0.1.2/tests/cptester.py +22 -0
  107. smfbursts-0.1.2/tests/fetch_files.py +16 -0
  108. smfbursts-0.1.2/tests/test_TypeValidator.py +227 -0
  109. smfbursts-0.1.2/tests/test_background.py +122 -0
  110. smfbursts-0.1.2/tests/test_bursttables.py +388 -0
  111. smfbursts-0.1.2/tests/test_diskdict.py +72 -0
  112. smfbursts-0.1.2/tests/test_gates.py +258 -0
  113. smfbursts-0.1.2/tests/test_immutabledata.py +294 -0
  114. smfbursts-0.1.2/tests/test_multifit.py +79 -0
  115. smfbursts-0.1.2/tests/test_phsel.py +157 -0
  116. smfbursts-0.1.2/tests/test_smfcfuncs.py +189 -0
  117. 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,13 @@
1
+ .ipynb_checkpoints/
2
+ build/
3
+ dist/
4
+ *.so
5
+ *.egg
6
+ *.egg-info
7
+ *.whl
8
+ *.hdf5
9
+ *.spc
10
+ *.set
11
+ __pycache__
12
+ data
13
+ /docs/build
@@ -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.
@@ -0,0 +1,4 @@
1
+ include LICENSE.txt
2
+ include README.md
3
+ include smfbursts/cfuncs/smfbursts_burstwise.h
4
+ include smfbursts/fcs.py
@@ -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
+ [![Tests](https://github.com/OpenSMFS/smfBursts/actions/workflows/test.yml/badge.svg)](https://github.com/OpenSMFS/smfBursts/actions)
38
+ [![Documentations Status](https://readthedocs.org/projects/smfbursts/badge?version=latest)](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
+ [![Tests](https://github.com/OpenSMFS/smfBursts/actions/workflows/test.yml/badge.svg)](https://github.com/OpenSMFS/smfBursts/actions)
4
+ [![Documentations Status](https://readthedocs.org/projects/smfbursts/badge?version=latest)](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