Program title: DnaFabric
Catalogue identifier: AEZV_v1_0
Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEZV_v1_0.html
Program obtainable from: CPC Program Library, Queen’s University, Belfast, N. Ireland
Licensing provisions: Apache License, 2.0
No. of lines in distributed program, including test data, etc.: 13514
No. of bytes in distributed program, including test data, etc.: 186753
Distribution format: tar.gz
Programming language: C++.
Computer: Computer with a GPU and OpenGL3.3 compatible drivers.
Operating system: Linux (Ubuntu).
RAM: 4 gigabytes
Classification: 3, 14, 20.
External routines: Qt5 and OpenGL3.3
Nature of problem:
Simulations implying DNA geometrical models often show limitations to support the huge number of DNA constituents. In order to allow users to build, visualise and perform calculations on detailed DNA models including hundreds of thousands of DNA elements, a dedicated framework is needed.
Solution method:
The DnaFabric library is a framework that allows users to easily build their own DNA models, display them and perform calculations. The DnaFabric includes: hierarchically organised DNA models (binary-executable example named “Fibre”), a dedicated 3D render engine, an optimised OpenGL interface and some multi-threading facilities.
Unusual features:
The DnaFabric uses 3D technologies from the computer graphics world allowing the rendering of huge DNA models in real-time.
Additional comments:
Three examples are provided in the Examples folder. The “Basic” example describes how to set-up a simple DnaFabric user-application. The “Fibre” example shows the two DNA fibre models used for the calculations in this paper. The “MovingSpheres” example, demonstrates how to implement a simulation interacting with the DNA geometrical model.
Running time:
Once a user application is started, an auto-generated window will show the 3D model. The efficiency of the rendering depends highly on the user hardware. However, the user can customise each of the rendered elements contained in its application to adjust the required computer power.