Author: Dennis Herb
This Python package can be cited as:
QuantumDNA (github.com/dehe1011/QuantumDNA), D. Herb, 2024, DOI: 10.5281/zenodo.12734027
Welcome to QuantumDNA, a powerful and flexible tool designed to calculate lifetimes, average charge separation, and dipole moments of excited states along DNA. Leveraging the formalism of open quantum systems and based on tight-binding Hamiltonians, QuantumDNA is equipped to handle various tight-binding models. Users can incorporate custom tight-binding parameters from ab initio calculations or experimental data, as well as define their own models, making the tool highly adaptable. QuantumDNA is regularly updated to ensure it remains at the cutting edge and includes a user-friendly interface to be accessible even to researchers less familiar with computer science. Results from several research papers can be reproduced with QuantumDNA.
- Versatile Calculations: Calculate lifetimes, charge separation, and dipole moments.
- Customizable Models: Add and use custom tight-binding parameters and models.
- User-Friendly Interface: Designed for ease of use by all researchers.
- Parallelization: Supports parallel computing for the calculation of excited state properties for large ensembles of DNA sequences, optimizing performance within the computationally intensive context of open quantum systems.
- Regular Updates: Stay current with the latest advancements and improvements.
- Added a graphical user interface (GUI) to the package such that it is easily accessible for users who are less familiar with computer science. The user interface is based on the customtkinter package by Tom Schimansky.
- Added a documentation available on Read the Docs
For a quick installation, you can install the qDNA
package via pip:
pip install qDNA
To ensure compatibility and avoid conflicts with other packages, we recommend using a virtual environment. For detailed installation instructions and alternative methods, please refer to the Installation Guide.
To test QuantumDNA, you can run the following simple example where the exciton lifetime and the average charge separation of a double-stranded GCG DNA sequence are calculated. You can try different sequences, tight-binding models, and keyword arguments to investigate how these factors affect the exciton lifetime and average charge separation. For example, you might find that in general more uniform sequences show higher values. Do you know the reason for this observation?
from qDNA import calc_lifetime, calc_dipole
# input
upper_strand = 'GCG'
tb_model_name = 'ELM'
kwargs = dict(unit='rad/ps', relax_rate=3, source='Hawke2010')
# calculation
lifetime = calc_lifetime(upper_strand, tb_model_name, **kwargs)
dipole = calc_dipole(upper_strand, tb_model_name, **kwargs)
# output
print(f"Exciton lifetime {lifetime} fs")
print(f"Average charge separation {dipole} A")
The documentation for the latest release is available for reading on Read The Docs. Tutorials can be found in a separate GitHub repository QuantumDNA-notebooks.
The qDNA
package includes a graphical user interface (GUI) that provides an intuitive and user-friendly way to interact with the package's functionalities. You can access the GUI with the following code:
from qDNA.gui import qDNA_app
app = qDNA_app()
app.mainloop()
The GUI allows you to easily explore and utilize the capabilities of the qDNA
package. Below are some examples demonstrating its use:
- Menu Window: Access various functionalities from a centralized menu.
Screenshot of the menu of the user interface.
- Plot Generation: Create plots effortlessly by submitting your parameters through the GUI.
Plot obtained after pressing the submit button on the menu (see image above).
- Calculation Display: Perform calculations, such as exciton lifetime and average charge separation, and view the results directly within the interface.
Screenshot of the menu of the user interface with calculations of the exciton lifetime, average charge separation and dipole moment displayed in the frame on the bottom right.
The GUI streamlines the process of working with qDNA
, making it accessible even to those who may not be familiar with coding. Whether you're generating plots or calculating complex dynamics, the GUI provides a convenient and efficient way to achieve your goals.
To enhance the readability and maintainability of the code, we have standardized a set of frequently used shortcuts. These abbreviations help keep the code concise while still being clear and understandable:
ham
: hamiltoniandm
: density matrixtb
: tight-bindingeigv
: eigenvalue/ eigenenergyeigs
: eigenstates/ eigenvectorsdim
: dimensionfig
: figureop
: operatorloc
: localglob
: globaldeph
: dephasingtherm
: thermalizingseq
: sequencecalc
: calculate
Papers from our group:
- R. Siebert, O. Ammerpohl, M. Rossini et al. A quantum physics layer of epigenetics: a hypothesis deduced from charge transfer and chirality-induced spin selectivity of DNA. Clin Epigenet 15, 145 (2023).
- D. Herb, M. Rossini and J. Ankerhold, Ultrafast excitonic dynamics in DNA: Bridging correlated quantum dynamics and sequence dependence. Physical Review E 109, 064413 (2024).
Tight-binding parameters:
- L.G.D. Hawke, G. Kalosakas and C. Simserides, Electronic parameters for charge transfer along DNA. The European Physical Journal E 32, 291 (2010)
- C. Simserides, A systematic study of electron or hole transfer along DNA dimers, trimers and polymers. Chemical Physics 440, 31 (2014)
- M. Mantela, C. Simserides and R. Di Felice, LCAO electronic structure of nucleic acid bases and other heterocycles and transfer integrals in B-DNA, including structural variability. Materials 14, 4930 (2021)
Tight-binding models:
Excitons and electron-hole Coulomb interaction:
- C. Crespo-Hernandez, B. Cohen and B. Kohler, Base stacking controls excited-state dynamics in A·T DNA. Nature 436, 1141 (2005)
- E.R. Bittner, Lattice theory of ultrafast excitonic and charge-transfer dynamics in DNA. Journal of Chemical Physics 125, 094909 (2006)
- E.M. Conwell, P.M. McLaughlin and S.M. Bloch, Charge-Transfer Excitons in DNA. The Journal of Physical Chemistry B 112, 2268 (2008)
- S. Tornow, R. Bulla, F.B. Anders and G. Zwicknagl, Multiple-charge transfer and trapping in DNA dimers. Physical Review B 82, 195106 (2010)
The biological relevance of DNA charge transfer:
- J.C. Genereux and J.K. Barton, Mechanisms for DNA charge transport. Chemical Reviews 110, 1642 (2010)
- A.R. Arnold, M.A. Grodick and J.K. Barton, DNA Charge Transport: from Chemical Principles to the Cell. Cell Chemical Biology 23, 183 (2016)
Simulation of open quantum systems:
- J.R. Johansson, P.D. Nation and Franco Nori, QuTiP: An open-source Python framework for the dynamics of open quantum systems. Computer Physics Communications 183, 1760 (2012)
- quantum_HEOM (github.com/jwa7/quantum_HEOM), J.W. Abbott, 2022
For support, please contact the author at dennis.herb@uni-ulm.de.