Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add phasor_from_fret functions #49

Merged
merged 2 commits into from
Apr 2, 2024
Merged

Add phasor_from_fret functions #49

merged 2 commits into from
Apr 2, 2024

Conversation

cgohlke
Copy link
Member

@cgohlke cgohlke commented Mar 30, 2024

Description

This PR adds two functions to the phasorpy.phasor module:

  • phasor_from_fret_donor: Calculate phasor coordinates of a FRET donor channel as a function of frequency, donor lifetime, FRET efficiency, fraction of donors undergoing FRET, and background fluorescence.
  • phasor_from_fret_acceptor: Calculate phasor coordinates of a FRET acceptor channel as a function of frequency, donor and acceptor lifetimes, FRET efficiency, fraction of donors undergoing FRET, fraction of directly excited acceptors, fraction of donor channel in acceptor channel, and background fluorescence.

A new tutorial, phasorpy_fret.py, is included.

The functionality is inspired by the SimFCS FRET calculator and the vLFD lifetime demo. This implementation does not follow SimFCS, which was found to have several issues. Instead, it is limited to single component FRET donor and acceptor lifetimes. For multi-component lifetimes, it should be possible to linearly combine the phasor coordinates obtained for the single components.

Ideally, the implementation should be tested against a formally derived FRET model. No such model exist to my knowledge.

Implements the FRET calculations proposed in #6.

Release note

Summarize the changes in the code block below to be included in the
release notes:

Add phasor_from_fret functions

Checklist

  • The pull request title, summary, and description are concise.
  • Related issues are linked in the description.
  • New dependencies are explained.
  • The source code and documentation can be distributed under the MIT license.
  • The source code adheres to code standards.
  • New classes, functions, and features are thoroughly tested.
  • New, user-facing classes, functions, and features are documented.
  • New features are covered in tutorials.
  • No files other than source code, documentation, and project settings are added to the repository.

@cgohlke cgohlke added the enhancement New feature or request label Mar 30, 2024
@cgohlke cgohlke self-assigned this Mar 30, 2024
Copy link

@lmalacrida lmalacrida left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great to me @cgohlke

@cgohlke cgohlke merged commit cd959e0 into phasorpy:main Apr 2, 2024
13 checks passed
@cgohlke cgohlke deleted the fret branch April 2, 2024 01:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants