# NATuG

### A program designed to streamline the nucleic acid nanotube design process.

Creating nanoscale tubular structures is an inherently tricky task, made possible by taking advantage of DNA’s unique structure. The strategic placement of Watson-Crick DNA base pairings in synthetic DNA allows for the creation of extremely precise nanotubes, with applications ranging from improved drug delivery to tissue wound repair. The design process requires both close attention to DNA’s complex geometry, precise alignment of strands, and careful base selection computations. NATuG, is a Python-based desktop application that aims to make the nucleic-acid design process simpler, easier, and even fun. NATuG provides an intuitive interface, allowing one to customize and visualize the nanotube shape, weave together helices in a matter of clicks, and apply/export sequences.

A user manual for the program is located [here](https://github.com/NATuG3/manual).

### Website Blog

A blog about this project can be found [here](https://404wolf.com/posts/project/DNANanotubes).

<hr>

## Quickstart Instructions

It is advised that you [create a virtual environment](https://docs.python.org/3/library/venv.html) for installing library requirements (step 4). Then, install all the requirements in the `requirements.txt` file, and boot the program by running `launcher.py`. Setting `DEBUG` to `True` in the launcher script will delete previous save states, but is will also provide enhanced logging.

<hr>

## Poster on NATuG

![image](https://github.com/NATuG3/NATuG3/assets/108041238/e4786e19-9ac6-450e-ba80-2c12580d6b44)

[NATuG_poster.pdf](https://github.com/NATuG3/NATuG3/files/13273515/NATuG_poster.pdf)

## Program screenshots

![image](https://user-images.githubusercontent.com/108041238/203201243-f633ce8e-94ce-4f30-aa51-4a84f177c3b9.png)
![image](https://user-images.githubusercontent.com/108041238/203203049-df2e7c59-3c79-4f1d-ad81-e98e295e818e.png)

## Credits

Icons from https://ionic.io/ionicons <br>
Color Picker Widget from https://github.com/nlfmt/pyqt-colorpicker
