Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jhsmit/dont-fret
Don't FRET: A python webserver for confocal smFRET burst search
https://github.com/jhsmit/dont-fret
Last synced: about 1 month ago
JSON representation
Don't FRET: A python webserver for confocal smFRET burst search
- Host: GitHub
- URL: https://github.com/jhsmit/dont-fret
- Owner: Jhsmit
- License: mit
- Created: 2022-01-13T09:19:58.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-09-04T12:17:31.000Z (3 months ago)
- Last Synced: 2024-10-05T00:13:59.823Z (about 2 months ago)
- Language: Python
- Homepage:
- Size: 13.5 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Don't FRET
============Don't FRET! is a python package featuring a web application for performing burst search on confocal smFRET data.
```
pip install dont-fret
```![screenshot](assets/screenshot.png)
## Process photon files
```
dont-fret process filename.ptu
```Will process the file. It will perform burst search as specified in the configuration file. Output (default) are burst photons and bursts as .pq files.
## Run the web application
To launch with the default configuration file:
```
dont-fret serve
```To create a local default configuration file:
```
dont-fret config
```Then you can edit the created config file. To launch the web application with a specific config file:
```
dont-fret serve --config config.yaml
```## Configuration
Configuration for channels, photon streams and (default) burst search settings is done from the config .yaml file.
First, define your channels:
```yaml
channels: # refactor channels in code to channel_identifiers
laser_D:
target: nanotimes
value: [ 0, 1000 ]
laser_A:
target: nanotimes
value: [ 1000, 2000 ] # intervals are inclusive, exclusive
det_D:
target: detectors
value: 1
det_A:
target: detectors
value: 0
```Currently supported targets are `nanotimes`, `detectors` and `timestamps`. These are as read from the file and not converted to seconds. Modulo is supported (untested) for us-ALEX:
```yaml
channels: # refactor channels in code to channel_identifiers
laser_D:
target: timestamps
value: [ 0, 100 ]
modulo: 200
```This will assign photons with a timestamp modulo 200 in the range from 0 up to 100 to "laser_D".
Next, define your photon streams. Photons streams are combinations of channels ("AND"):
```yaml
streams:
DD: [laser_D, det_D]
DA: [laser_D, det_A]
AA: [laser_A, det_A]
AD: [laser_A, det_D]
```!IMPORTANT
The notation used here is excitation then emission, thus the FRET stream is 'DA' while in literature the FRET photon stream is often written as `A|D` (Acceptor emission during donor excitation).!IMPORTANT
At the moment apparent FRET and stoichiometry are calculated from the defined photon streams and it is required the following streams are defined: 'AA', 'DD', 'DA' (=FRET). This is expected to be changed in future updates.## Development
Download a test file:
```sh
wget https://kuleuven-my.sharepoint.com/:u:/g/personal/jochem_smit_kuleuven_be/Efy7ur779ARNiBlP05Ki7NMBabKX3auswj30xmpRLaIfPg?e=E6wWoZ&download=1
```If autoreload (refresh web application upon code changes) doesnt work, run from:
solara run dont_fret\tmp.py -- --config default_testing.yaml### Create a new release
- Create a new release on github. Create a new tag with the version (format: v0.1.0)
- github actions creates release on pypi
- done!