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 supporting for Hidden Markov kinetic modeling HMM using pomegranate #1

Open
karlduderstadt opened this issue Jun 6, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@karlduderstadt
Copy link
Member

karlduderstadt commented Jun 6, 2022

Currently, we have kinetic change point integrated into Mars. This is great for looking at rate changes in pair-wise linear motion. There is an option to set the slope of segments to zero, which allows for the same algorithm to be used to analyze smFRET data and identify switching between different states. This change point model doesn't assume any prior information about how many states there are, their levels or timescales. For long-lives well defined states, which algorithm work very well. However, for short duration states near the time resolution with lots of noise, this algorithm is not ideal.

When more information is know about the systems, for example, known two state switching, it would better to use a model that incorporates this information. In the dynamic FRET example currently in development, a simple two-state model with a switching E value threshold, works well to detect switching events in a Holiday Junction substrate.

It would be nice to also add support for hidden markov models to fit the states for more complex scenarios and when more precise kinetic parameters are desired. The integration with PyImageJ, and now the additional Fiji plugin supporting a conda python 3 scripting engine, allows for easy use of any python package. The package pomegranate appears to offer a very nice solution. We should develop a script and notebook and analyses E values using pomegranate and adds the resulting segments back into the archive. This should also report the kinetic parameters.

@karlduderstadt karlduderstadt added the enhancement New feature or request label Jun 6, 2022
@karlduderstadt
Copy link
Member Author

pomegranate was used in the development of deepFRET:
DeepFRET: Rapid and automated single molecule FRET data classification using deep learning
Johannes Thomsen, Magnus B. Sletfjerding, Stefano Stella, Bijoya Paul, Simon Bo Jensen, Mette G. Malle, Guillermo Montoya, Troels C. Petersen, Nikos S. Hatzakis
eLife 2020;9:e60404; doi: 10.7554/eLife.60404

The implementation can be found in the repo:
https://github.com/hatzakislab/DeepFRET-GUI

and specifically, the key functions appear to be here:
https://github.com/hatzakislab/DeepFRET-GUI/blob/768acd31f8015b3d136b14d17e58e03cffe62313/src/main/python/lib/math.py#L23

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

No branches or pull requests

1 participant