qdna
QuantumDNA is an open-source Python package for simulating exciton and charge transfer in DNA using quantum mechanical methods. Designed for interdisciplinary research, it combines a user-friendly GUI with efficient tools for statistical screening of DNA sequences.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 42 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.2%) to scientific vocabulary
Keywords
Repository
QuantumDNA is an open-source Python package for simulating exciton and charge transfer in DNA using quantum mechanical methods. Designed for interdisciplinary research, it combines a user-friendly GUI with efficient tools for statistical screening of DNA sequences.
Basic Info
- Host: GitHub
- Owner: dehe1011
- License: bsd-3-clause
- Language: Python
- Default Branch: main
- Homepage: https://quantumdna.readthedocs.io/en/latest/index.html
- Size: 52.6 MB
Statistics
- Stars: 11
- Watchers: 1
- Forks: 0
- Open Issues: 3
- Releases: 11
Topics
Metadata Files
README.md
Welcome to QuantumDNA
Author: Dennis Herb
This Python package can be cited as:
QuantumDNA (github.com/dehe1011/QuantumDNA), D. Herb, 2024, DOI: 10.5281/zenodo.12734027
Introduction
QuantumDNA is an open-source Python package for simulating charge transfer (CT) and excited states in DNA. These processes are key to understanding how DNA maintains genetic stability, how mutations occur, and even how we can use DNA in nanotechnology. QuantumDNA combines powerful quantum physics models like Linear Combination of Atomic Orbitals (LCAO) and tight-binding (TB) with quantum master equations to handle environmental effects. This makes it possible to analyze large DNA datasets quickly and accurately, uncovering insights into genetic and epigenetic phenomena. QuantumDNA comes with a clean and simple graphical user interface (GUI)—perfect for researchers and students, even without extensive coding experience.
Whether you're a scientist, student, or just curious, QuantumDNA is here to help you explore the fascinating world of DNA charge transfer. Dive in and start exploring today!
Key Features
- Graphical User Interface (GUI): Intuitive and user-friendly interface, making the tool accessible to researchers and students with limited programming experience.
- Parallelized Calculations: Optimized for performance, enabling the analysis of large DNA ensembles with efficient computational resource utilization.
- Integration with Publicly Accessible Databases: Supports input geometries from widely used DNA structure databases.
- Unified Framework: Provides a reproducible platform for simulating and comparing results from different scientific papers and methodologies.
- Open-Source: Fully open-source and extensible, allowing users to modify and adapt the code to suit their specific research needs.
- Cross-Disciplinary Usability: Designed for researchers across physics, chemistry, biology, and medicine to explore DNA charge dynamics collaboratively.
What's new
- Added a graphical user interface (GUI) to the package which is based on the customtkinter package by Tom Schimansky.
- Added a Tutorial Jupyter Notebooks available on another GitHub repopsitory.
Getting started
Quick Installation
For a quick installation, you can install the qDNA package via pip:
bash
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.
Example Program
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?
```python
from qDNA import calclifetime, calcdipole
input
upperstrand = 'GCG' tbmodelname = 'ELM' kwargs = dict(unit='rad/ps', relaxrate=3, source='Hawke2010')
calculation
lifetime = calclifetime(upperstrand, tbmodelname, *kwargs) dipole = calcdipole(upperstrand, tbmodelname, *kwargs)
output
print(f"Exciton lifetime {lifetime} fs") print(f"Average charge separation {dipole} A") ```
Documentation
The documentation webpage for the latest release is available for reading on Read The Docs. Tutorials can be found in a separate GitHub repository QuantumDNA-notebooks.
Graphical User Interface
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:
```python
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:
- 1BNA structure: Perform simulations with geometries from publically availbale databases (here: PDB geometry of the 1BNA sequence from RCSB.org).
Quantum-Physical Simulations with Real Geometries via the GUI **(a)** A Protein Data Bank (PDB) file containing the DNA geometry was obtained from [RCSB.org](https://www.rcsb.org) (identifier: `1BNA`) and modified using `Biovia Discovery Studio` by removing the sugar-phosphate backbone. The subsequence selected for simulation is highlighted in blue. **(b)** The GUI’s PDB Input Window allows users to upload the modified PDB file, specify an identifier, and select a Tight-Binding (TB) model. Clicking the "Save" button computes TB parameters tailored to the DNA geometry. **(c)** To simulate the highlighted sequence from (a), set the upper strand to `02G_03C_04G` and the lower strand to `23C_22G_21C`. Ensure the identifier (e.g., `1BNA`) is selected as the source. Exciton calculations can be performed using the Evaluation tab, with results displayed in the console at the bottom right (highlighted in green). **(d)** The plotting window provides a heatmap visualization of time-evolved populations for the DNA sequence highlighted in (a). All simulation steps can also be performed programmatically without the GUI, such as using Jupyter Notebooks.
- Plot Generation: Create plots effortlessly by submitting your parameters through the GUI.
- Calculation Display: Perform calculations, such as exciton lifetime and average charge separation, and view the results directly within the interface.
Whether you're generating plots or calculating complex dynamics, the GUI provides a convenient and efficient way to achieve your goals.
Shortcuts
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
References
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:
Tight-binding models:
DNA excited states and excitons:
DNA charge transfer:
Simulation of open quantum systems:
Support
For support, please contact the author at dennis.herb@uni-ulm.de.
Owner
- Name: Dennis Herb
- Login: dehe1011
- Kind: user
- Repositories: 1
- Profile: https://github.com/dehe1011
I am a PhD student at the Institute for Complex Quantum Systems at the University of Ulm
Citation (CITATION.bib)
@misc{QuantumDNA,
author = {Dennis Herb},
title = {QuantumDNA},
year = {2024},
url = {https://github.com/dehe1011/QuantumDNA},
doi = {10.5281/zenodo.12734027},
note = {\texttt{github.com/dehe1011/QuantumDNA}}
}
GitHub Events
Total
- Create event: 7
- Issues event: 2
- Release event: 8
- Watch event: 4
- Delete event: 1
- Issue comment event: 1
- Member event: 2
- Push event: 45
- Pull request review event: 4
- Pull request event: 7
Last Year
- Create event: 7
- Issues event: 2
- Release event: 8
- Watch event: 4
- Delete event: 1
- Issue comment event: 1
- Member event: 2
- Push event: 45
- Pull request review event: 4
- Pull request event: 7
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 2
- Total pull requests: 3
- Average time to close issues: N/A
- Average time to close pull requests: 34 minutes
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 3
- Average time to close issues: N/A
- Average time to close pull requests: 34 minutes
- Issue authors: 2
- Pull request authors: 1
- Average comments per issue: 0.0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- marcotrenti (1)
- whatisspin (1)
Pull Request Authors
- dehe1011 (8)
- dependabot[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 48 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 10
- Total maintainers: 1
pypi.org: qdna
A package to calculate lifetimes, average charge separation, and dipole moments of excited states along DNA within the formalism of open quantum systems.
- Documentation: https://qdna.readthedocs.io/
- License: BSD-3-Clause
-
Latest release: 0.1.10
published about 1 year ago