Skip to main content

A DNA aptamer screening tool for mismatch analysis and hairpin detection & drawing

Project description

AptamerForge

AptamerForge is a Python-based DNA aptamer screening engine that intelligently detects and scores DNA sequences with specific mismatch motifs (e.g., T–T, G–G, etc.) embedded within hairpin loops. It leverages thermodynamic modeling using ViennaRNA to identify aptamer candidates with favorable folding energies. This version supports multiple mismatch targets and includes functionality for drawing the discovered hairpin structures.

🔬 Features

  • ✅ Support for multiple mismatch types (e.g., T–T, G–G, A–A)
  • ✅ Folding energy computation using ViennaRNA
  • ✅ Hairpin motif detection with loop and stem size thresholds
  • ✅ Visualization of valid hairpin structures
  • ✅ Multi-core processing (optional)
  • ✅ Export results to CSV
  • ✅ Lightweight and fast — pure Python with minimal dependencies

🛠 Installation

First ensure you have ViennaRNA installed and accessible in your Python environment (via the RNA Python bindings). Then install AptamerForge:

pip install aptamerforge

Usage

from aptamerforge import AptamerForge

# Define your mismatch targets (e.g., T–T and G–G)
af = AptamerForge(
    target_mismatch=('tt', 'gg'), #you could also do ('gg',), ('tt',), ('aa',),  ('cc', 'aa'), ('ct', 'ag') etc
    strand_length=24,
    min_mismatch_count=3,
    min_loop_count=3,
    min_stem_count=5,
    min_mfe=-13,
    temperature=37,
	author='Your Name', # it will be shown in the drawing of the sequence's hairpin structure.
	title='Your title for the drawing' # will be shown on the drawing as the title.
)

# Start the search
af.search(search_space=100_000)

# Visualize a discovered hairpin structure
af.draw("AGATCTTGCATCGGCTTGTTCT")  # Example sequence

# Draw all hairpin structure of all found so far.
af.draw_all(width=3200, height=2700)

📁 Output

Results are logged to a CSV file with filename the user chooses, or if empty, file named after the mismatches the user selects (e.g., tt-gg-aptamers.csv). Each entry includes: • Sequence • Sequence Length • Mismatch Count in Stem • Stem Count • Loop Count • Dangle Count • Minimum Free Energy (kcal/mol) • Time found

🔧 Requirements

•	Python 3.7+
•	pandas
•	ViennaRNA (with Python bindings)
•	matplotlib 
•	pycairo (for Hairpin visualization)

Install dependencies:

pip install pandas matplotlib

For ViennaRNA bindings:

conda install -c bioconda viennarna

For Cairo

  1. Simple installation for most users.
pip install pycairo

🟢 macOS (with Homebrew)

brew install cairo
pip install pycairo

🟠 Ubuntu/Debian Linux

sudo apt update
sudo apt install libcairo2-dev
pip install pycairo

🟣 Windows

  1. Use the pre-built Cairo binaries: Install GTK (which includes Cairo) via MSYS2 or GTK installer.
  2. Then install Pycairo:
pip install pycairo

If errors persist, use conda:

conda install -c conda-forge pycairo

📄 License

MIT License

🤝 Contributing

Pull requests are welcome! If you’d like to contribute to adding more pairing rules, improve drawing functions, or support RNA as well, feel free to fork the project and submit a PR.

🧬 Author

Developed by William Asamoah (cephaswills@gmail.com), a passionate bioinformatics innovator applying AI and embedded computing in biotechnology and energy systems.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aptamerforge-0.1.7.1.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aptamerforge-0.1.7.1-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file aptamerforge-0.1.7.1.tar.gz.

File metadata

  • Download URL: aptamerforge-0.1.7.1.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for aptamerforge-0.1.7.1.tar.gz
Algorithm Hash digest
SHA256 03d136ffe0ef43456d3a57a0dd48f0df717ba6c246ed99daa27ac15c58dfcf44
MD5 39cd5f7ad4698198768574b9814ceace
BLAKE2b-256 12ce0282cd14bb0c7441a18981a9d5b45cb88e10060fb3687ae96e421c01f764

See more details on using hashes here.

File details

Details for the file aptamerforge-0.1.7.1-py3-none-any.whl.

File metadata

  • Download URL: aptamerforge-0.1.7.1-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for aptamerforge-0.1.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a50c5ecd76ef3f021c6afc5029ba1abc412aae9e95d308c9b2c8c5daaa53820c
MD5 75ab6593800e2085830e49d7c7159795
BLAKE2b-256 98432cbf62aa9dd939a5f81d47f952122a2f5e8c951cffc95acb8c19e69ec8d6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page