QUEST (QUenching ESTimation) simulates the dynamic quenching of xanthene dyes tethers to proteins by flexible linkers by simulating PET and the diffusion of dyes.
The dynamic quenching of a fluorescent dye coupled to a protein is simulated in three steps:
- The dye's accessible volume (AV) is calculated, the positions of the quenching amino acids are determined, to every quenching amino acid a quenching rate constant is assigned.
- The diffusion of the dye within it's accessible volume is simulated using Brownian dynamics (BD) simulations. In the BD simulations a dye that is close to the vicinity of the protein diffuses slower due to unspecific interactions.
- The distance between the dye and the quenching amino acids is used to calculate the dye's fluorescence decay.
In QUEST the dyes are approximated by a sphere diffusing within their accessible volume (AV) (see labellib).
PET-quenching of the dye by MET, HIS, TYR and TRP residues is approximated by a step function where the dye is quenched with a provided rate contestant if it is closer than a given threshold distance.
The relevant simulation parameters can be adjusted either in a
graphical user interface quest_gui or QuEst can be controlled
using a command line interface (see documentation below).
Alternatively, QuEst can be used a library for potential integration into other simulations and/or data analysis pipelines (see Jupyter Notebook)
- Design of labeling positions for FRET experiments
- Calibration of accessible contact volume (ACVs) using the fluorescence lifetime of the donor
There are two QuEST versions:
- GUI-QuEST a end-user software with graphical user interface for Windows (setup.exe, conda), Linux (conda), and macOS (conda). The conda installation is described below.
- Command-QuEST a command line version for Windows, Linux and MacOS
Both versions are documented in the Wiki of this repository Wiki.
The windows GUI version can be installed using either a setup file
(setup.exe)
or conda. To install QuEst using conda use the conda repository tpeulen
conda install -c tpeulen questFollowing the installation via conda, quest can be started from a command line interface
questYou can use QuEst as a pure Python library without starting the GUI by
working with the high-level functions provided in the quest.core (or
quest.api, which re-exports the same objects) module. The typical workflow is:
- Prepare or save a QuEst project JSON file (e.g. from the GUI).
- Load the project dictionary via the API.
- Run the simulation to obtain donor-only and, optionally, donor+FRET decay curves.
- Analyze or plot the returned arrays in standard scientific Python environments (e.g. Jupyter notebooks).
Minimal headless example (works in notebooks or scripts):
from pathlib import Path
from quest.core import load_project, simulate_project # or `from quest.api ...`
project = load_project(Path("my_project.quest.json"))
result = simulate_project(project)
print(result.quantum_yield_donor)
if result.fret_counts is not None:
print("FRET efficiency:", result.fret_efficiency)The API is designed so that it does not depend on any GUI widgets and can therefore be safely imported and used in headless environments.
Notebook examples:
modules/quest/notebooks/quest_core_headless_demo.ipynb– minimal headless API usage.- (Legacy) other notebooks for diffusion/quenching/FRET remain available in the same folder.
Run QuEst headlessly with the new Click-based CLI:
# Validate a project file
quest validate -p project.quest.json
# Run a single simulation, overriding parameters
quest simulate -p project.quest.json --set tau0=3.8 --set attachment.residue=42 -o decay.csv
# Sweep multiple values (Cartesian product) and write tagged outputs
quest simulate -p project.quest.json \
--grid attachment.residue=25,30,35 \
--grid linker.length=10.0,12.5 \
-o decay.csv
# Emit a starter template
quest template --with-fret > project.quest.jsonNotes:
- Use
--set key=valueto override any project field (dotted paths supported). - Use
--grid key=val1,val2to sweep multiple values; outputs are tagged per run. - Output format chosen by extension (.csv or .json).
- QuEST determines precise values that are not necessary accurate.
- QuEST was the first software to implement the ACVs. ACVs were later described in more detail (see: COSB2016. Differencies in the ACV implementation, may produce slightly different results.
- QuEST operates on single static structures.
- A crude approximation of the dye is used by a sinlge sphere is used.
- Specific interactions e.g. binding pockets are not considered.
If you have used QuEST in a scientific publication, we would appreciate citations to the following paper:
Peulen, T.O., Opanasyuk, O., and Seidel, C.A., 2017. Combining Graphical and Analytical Methods with Molecular Simulations To Analyze Time-Resolved FRET Measurements of Labeled Macromolecules Accurately. The Journal of Physical Chemistry B 2017, 121, 35, 8211-8241 (Feature Article)
For more informations on accessible contact volumes (ACVs) see:
Dimura, M., Peulen, T.O., Hanke, C.A., Prakash, A., Gohlke, H. and Seidel, C.A., 2016. Quantitative FRET studies and integrative modeling unravel the structure and dynamics of biomolecular systems. Current opinion in structural biology, 40, pp.163-185.
To improve our dye models we need a larger set of experimental data. If you are interested in using, and improving experimental coarse- grained dye models for integrative modelling. Independently if you are a developer of not, you can contribute by
- assembling more experimental data
- improve the documentation
If you are interested, sign up on GitHub, contact the developers, and put a star on this project.
Author(s): Thomas-Otavio Peulen
Maintainer: tpeulen
License: MIT This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

