The main goal of this project is to further develop existing mathematical models for self-assembly of nanostructures and also create new ones. In particular, we will make heavy use of flag graphs and results from topological graph theory to produce those models. A stronger link between topological graph theory and synthetic biology will be established. All this will be implemented in the form of a user-friendly well-documented library for Python and/or SageMath, which will enable researchers to do various “in silico” experiments. New data structures and algorithms will be developed and incorporated in this software library. This software library will be used to solve several practical self-assembly problems in synthetic biology to demonstrate its usability. Parallelisable algorithms will be developed to enable (computationally intensive) enumerations of strong traces of large polyhedra on multiprocessor systems and computer clusters, which was not possible so far. We will also consider self-assembly of planar nanostructures from the viewpoint of mathematical theory of tilings. The mathematics and software that will be developed will have direct applications in the area of synthetic biology.