<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3-mathml3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.3" xml:lang="EN">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Commun. Netw.</journal-id>
<journal-title-group>
<journal-title>Frontiers in Communications and Networks</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Commun. Netw.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2673-530X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1637220</article-id>
<article-id pub-id-type="doi">10.3389/frcmn.2025.1637220</article-id>
<article-version article-version-type="Version of Record" vocab="NISO-RP-8-2008"/>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Technology and Code</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Towards realistic simulation of DNA-based molecular communication networks</article-title>
<alt-title alt-title-type="left-running-head">Kaussow et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/frcmn.2025.1637220">10.3389/frcmn.2025.1637220</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Kaussow</surname>
<given-names>Max</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/3046184"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Peters</surname>
<given-names>Robert</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<uri xlink:href="https://loop.frontiersin.org/people/3087595"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Scheer</surname>
<given-names>Sarah</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<uri xlink:href="https://loop.frontiersin.org/people/3320864"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Hyttrek</surname>
<given-names>Christian</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<uri xlink:href="https://loop.frontiersin.org/people/3321564"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Fischer</surname>
<given-names>Stefan</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<uri xlink:href="https://loop.frontiersin.org/people/3260154"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Lau</surname>
<given-names>Florian</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<uri xlink:href="https://loop.frontiersin.org/people/3259492"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Project administration" vocab-term-identifier="https://credit.niso.org/contributor-roles/project-administration/">Project administration</role>
</contrib>
</contrib-group>
<aff id="aff1">
<institution>Institute of Telematics, University of L&#xfc;beck</institution>, <city>L&#xfc;beck</city>, <country country="DE">Germany</country>
</aff>
<author-notes>
<corresp id="c001">
<label>&#x2a;</label>Correspondence: Max Kaussow, <email xlink:href="mailto:ma.kaussow@uni-luebeck.de">ma.kaussow@uni-luebeck.de</email>
</corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2026-01-05">
<day>05</day>
<month>01</month>
<year>2026</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2025</year>
</pub-date>
<volume>6</volume>
<elocation-id>1637220</elocation-id>
<history>
<date date-type="received">
<day>19</day>
<month>11</month>
<year>2025</year>
</date>
<date date-type="rev-recd">
<day>30</day>
<month>10</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>08</day>
<month>12</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2026 Kaussow, Peters, Scheer, Hyttrek, Fischer and Lau.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>Kaussow, Peters, Scheer, Hyttrek, Fischer and Lau</copyright-holder>
<license>
<ali:license_ref start_date="2026-01-05">https://creativecommons.org/licenses/by/4.0/</ali:license_ref>
<license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License (CC BY)</ext-link>. The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</license-p>
</license>
</permissions>
<abstract>
<p>Next to further miniaturization, the process of self-assembly has great potential for construction, computation, and even communication at the nanoscale. DNA-based self-assembly is an especially promising candidate as it is possible to create entire nanonetworks from just DNA from already existing and comparably cheap building blocks. As wet-lab experiments are still fairly expensive and complex, and self-assembly is hard to predict, simulation tools are crucial for the rapid prototyping of new ideas. However, current self-assembly simulators mainly focus on computational and construction aspects. In this paper, we present a new model for our NetTAS simulator, kTHAM, which simulates the possible interactions of very large numbers of DNA structures simultaneously and measures the process in real-time. This allows for a much more realistic analysis of DNA-based nanonetworks as compared to what is possible with other simulators and with the other models of NetTAS.</p>
</abstract>
<kwd-group>
<kwd>tile-based self-assembly systems</kwd>
<kwd>DNA-based nanonetworks</kwd>
<kwd>simulation</kwd>
<kwd>self-assembly</kwd>
<kwd>DNA-based self-assembly</kwd>
<kwd>DNA-computing</kwd>
</kwd-group>
<funding-group>
<award-group id="gs1">
<funding-source id="sp1">
<institution-wrap>
<institution>Deutsche Forschungsgemeinschaft</institution>
<institution-id institution-id-type="doi" vocab="open-funder-registry" vocab-identifier="10.13039/open_funder_registry">10.13039/501100001659</institution-id>
</institution-wrap>
</funding-source>
</award-group>
<funding-statement>The author(s) declared that financial support was received for this work and/or its publication. This work has been supported in part by the German Research Foundation (DFG): Project 419981515, NaBoCom II and the BMBF-financed Project 16KIS1991, IoBNT.</funding-statement>
</funding-group>
<counts>
<fig-count count="7"/>
<table-count count="0"/>
<equation-count count="0"/>
<ref-count count="19"/>
<page-count count="11"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Communications Theory</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<label>1</label>
<title>Introduction</title>
<p>Nanonetworks are among the most promising technologies&#x2019; computer science and engineering have to offer for future developments in medicine and a number of other areas (<xref ref-type="bibr" rid="B1">Akyildiz et al., 2008</xref>). While they offer great potential, the ability to construct such networks is currently limited. Potential materials include modified cells or bacteria, carbon nanotubes, DNA, or entirely different approaches. Due to extensive prior research and a vast multi-domain interest, DNA is likely the most well-researched construction material of the three. As early as 1982, scientists already discovered the potential of DNA as a material for construction at the nanoscale (<xref ref-type="bibr" rid="B16">Seeman, 1982</xref>). As DNA self-assembles autonomously, technologies based on DNA building blocks can avoid the accuracy problems other manufacturing methods are currently facing. Not long after, DNA has also been identified as one of the most promising technologies for performing computations at the nanoscale (<xref ref-type="bibr" rid="B14">Paun et al., 2005</xref>).</p>
<p>As wet lab experiments are expensive and time-consuming, and self-assembly is hard to predict, simulation tools are crucial for the rapid prototyping of new ideas for protocols, algorithms, and applications. There is currently software for both computation and construction using DNA, but to the best of our knowledge, there is no simulator that focuses on the long-term development of self-assembly systems or a possible interpretation of certain self-assembly systems as communication networks. Widespread models such as the <italic>kinetic Tile Assembly Model kTAM</italic> usually only predict the first few seconds of a well-mixed solution of DNA building blocks and may thus assume an infinite supply of such blocks for the assembly process.</p>
<p>This work introduces the <italic>kinetic two-handed Tile Assembly Model kTHAM</italic> as a new model for our simulator NetTAS<xref ref-type="fn" rid="fn1">
<sup>1</sup>
</xref>. The simulator integrates the features of well-known simulators like ISU TAS (<xref ref-type="bibr" rid="B10">Patitz, 2011</xref>; <xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>). The kTHAM module simulates many assembly processes in parallel while also analyzing possible interactions between all structures in real-time. Thus, it allows for a more realistic simulation of DNA-based nanonetworks (<xref ref-type="bibr" rid="B7">Lau et al., 2019</xref>).</p>
<p>The remainder of this paper is structured as follows: <xref ref-type="sec" rid="s2">Section 2</xref> gives a brief introduction to the world of tile assembly models as a base for DNA-based nanonetwork technology. <xref ref-type="sec" rid="s3">Section 3</xref> analyzes existing simulators, and demonstrates the benefits of a new simulation module. <xref ref-type="sec" rid="s4">Section 4</xref> gives an overview of the NetTAS models and the user interface of the software. <xref ref-type="sec" rid="s5">Section 5</xref> describes the kTHAM model of the netTAS simulator as well as the real-time aspects of the simulation. <xref ref-type="sec" rid="s6">Section 6</xref> evaluates the real-time behavior and the module, and <xref ref-type="sec" rid="s7">Section 7</xref> summarizes the paper and gives a brief outlook on future work.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Preliminaries for DNA-based nanonetworks</title>
<p>In this section, we provide a brief introduction to <italic>DNA-based nanonetworks</italic> (DNN) that is necessary to understand the kTHAM. A more detailed introduction to the topic can be found in (<xref ref-type="bibr" rid="B11">Patitz, 2014</xref>; <xref ref-type="bibr" rid="B7">Lau et al., 2019</xref>), as such lengthy definitions are beyond the scope of this paper.</p>
<p>Self-assembly systems have <italic>DNA tiles</italic> as their atomic components, which are nanoscale structures made of DNA that can bind with other tiles in a programmable manner. The tiles consist of four intertwined DNA strands with open ends in all cardinal directions that can self-assemble into larger DNA crystals, also known as <italic>assemblies</italic>.</p>
<p>An example of tiles and their interaction can be seen in the top row of <xref ref-type="fig" rid="F1">Figure 1</xref>. The illustration of one tile in the upper left emphasizes the biological aspects of tiles. The four tiles in the upper right show the representation in their mathematical form.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Example of a biological tile with four DNA-Sequences (top left) and a tileset with four independent Tiles (top right). The step-by-step assembly sequence for the tileset (Bottom). The seed tile is called <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and the temperature is 2. <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">&#x27e8;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">&#x27e9;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> shows the three necessary steps up to the terminal Assembly.</p>
</caption>
<graphic xlink:href="frcmn-06-1637220-g001.tif">
<alt-text content-type="machine-generated">Diagram showing a DNA crossover and assembly process. Top left illustrates DNA strands labeled A-T-C and T-A-G. Top right displays four schematic squares labeled with combinations of &#x22;c&#x22;, &#x22;a&#x22;, &#x22;b&#x22;, and &#x22;r&#x22;. Bottom sequence depicts a three-step transformation of these squares: starting with &#x22;&#x3C3;&#x22;, followed by &#x22;&#x3B1;1&#x22;, &#x22;&#x3B1;2&#x22;, and concluding with &#x22;&#x3B1;3&#x22;. Each step uses puzzle-like connectors to show interaction.</alt-text>
</graphic>
</fig>
<p>The length of the open ends can be chosen at will and depends on the intended use case. Longer open ends result in stronger bindings, while shorter ends lead to smaller tiles with weaker binding strength. Further, the bases Cytosine and Guanine bind roughly twice as strongly as Adenine and Thymine. We model the open strand ends using arbitrary <italic>labels</italic> that represent DNA sequences, known as <italic>glues</italic>. Tiles also have a <italic>marker</italic> in the middle for visualization and are subject to environmental temperature, which affects the stability of their bindings.</p>
<p>The <italic>temperature</italic> is defined as the number of necessary glues for tiles to stably interact with each other to form an assembly. The binding interaction can be seen in the bottom row of <xref ref-type="fig" rid="F1">Figure 1</xref>. The process starts at the bottom left with the <italic>seed-tile</italic> <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. In each simulation step, a single tile of fitting <italic>strength</italic> (number of black boxes) and label may be added to the assembly. In this case, the temperature is 2 and a stable binding requires at least two fitting glues from neighboring tiles. In steps <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, two fitting tiles with glues r and b are added. In step <inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> the necessary two glues for a stable binding are provided by the two neighboring tiles a and b. At any given point in time, the <italic>growth front</italic> is the sum of positions around an assembly where new tiles could theoretically bind.</p>
<p>Tile assembly systems are able to perform arbitrary computations and are Turing-complete (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>). Further, the tiles themselves are small molecules that can also be used in molecular communication or even as a construction material for nanostructures. It is even possible to form fully functional DNN out of nothing but DNA, as displayed in <xref ref-type="fig" rid="F2">Figure 2</xref> (<xref ref-type="bibr" rid="B7">Lau et al., 2019</xref>). The system works as follows:</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Identifying multiple DNA sequences or disease markers using a DNN.</p>
</caption>
<graphic xlink:href="frcmn-06-1637220-g002.tif">
<alt-text content-type="machine-generated">Diagram illustrating a process involving DNA sensors, disease sensors, and markers. In the first step, DNA and disease sensors detect markers and release tiles labeled R, D1, D2, M, and &#x3C3;. In the second step, messages are assembled with these tiles for propagation. The final step shows a nano-device releasing messages assembled from these components. Arrows indicate the flow of information, and repeated symbols represent the process sequence.</alt-text>
</graphic>
</fig>
<p>DNN work based on the conditional presence of tiles. Certain nanosensors based on DNA cages, polymersomes, or liposomes can be designed to release tiles or other payload once an environmental condition is fulfilled or a biomarker/DNA sequence is present. Once released, those tiles may interact with other, already present tiles or assemblies to form <italic>message molecules</italic> that compute a decision problem while growing. Only when all necessary tiles are present may a receptor form that can in turn be detected by other nanodevices. In the case shown in the figure, a simple <inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-bit And is computed on the inputs resulting in checking for multiple conditions that have to be true at once. Once detected, the DNN may react to the findings by either reporting them via a fluorescence reaction to make them visible to the outside or directly releasing some other substance.</p>
<p>The primary goal of the approach presented in this paper is a more realistic simulation of the working method of such DNN.</p>
</sec>
<sec id="s3">
<label>3</label>
<title>Related work</title>
<p>We now analyze the state of the art of self-assembly simulators. Three popular tile-assembly models have mainly been used to analyze and predict DNA-based self-assembly:<list list-type="order">
<list-item>
<p>The <italic>abstract tile-assembly model</italic> (aTAM) (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>),</p>
</list-item>
<list-item>
<p>
<italic>Kinetic tile-assembly model</italic> (kTAM) (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>), and</p>
</list-item>
<list-item>
<p>The <italic>two-handed tile-assembly model</italic> (2HAM) (<xref ref-type="bibr" rid="B3">Demaine et al., 2016</xref>).</p>
</list-item>
</list>
</p>
<p>Each of these models focuses on a specific aspect of self-assembly, as simulating all of them at once exceeds the computational capabilities of modern computers. The aTAM is the simplest self-assembly model and a fitting individual tile is non-deterministically added to a single assembly at any simulation step. The kTAM models the process of self-assembly more realistically by introducing expected errors into the process. Instead of adding a fitting tile, a random tile is added to the assembly at any given step in time regardless of the label. The 2HAM introduces parallelism into the self-assembly process. There is no longer any dedicated seed tile and all possible assemblies that may form from a given set of tiles and assemblies are stored in each simulation step. While the 2HAM is generally computationally infeasible, it is nonetheless of great importance for simulating the often small, finite assemblies that are relevant for DNA-based nanonetworks. The <italic>Kinetic two-handed Tile Assembly Model</italic> (kTHAM), introduced in <xref ref-type="sec" rid="s5">Section 5</xref>, combines aspects of both the kTAM and the 2HAM into a large parallel simulation of unique assemblies that assemble according to the rules of the kTAM. While the 2HAM is already extremely difficult to compute, it is nonetheless beneficial for the small tasks that nanonetworks likely face.</p>
<p>There are several existing simulators that implement some of the aforementioned models. A well-known simulator is Xgrow by Eric Winfree (<xref ref-type="bibr" rid="B19">Winfree et al., 2013</xref>). This simulator is written in C and is available for Windows. Xgrow is mainly used to investigate faulty assemblies. Xgrow can simulate different assemblies in parallel and implements the aTAM and kTAM models. This simulator is many times faster than other simulators such as ISU TAS, since numerous alternatives are precalculated in Xgrow. However, due to these optimizations, only constant-sized assemblies can be simulated. Since the ISU TAS is more modern and usually better accessible, the Xgrow software is rarely used, and further development is discontinued.</p>
<p>ISU TAS (<xref ref-type="bibr" rid="B12">Patitz, 2018</xref>) is an open-source simulator developed in C&#x2b;&#x2b; and is available for Windows, Linux and Mac OS X. The ISU TAS offers the possibility to simulate the aTAM, the kTAM and the 2HAM. However, as overall software development frameworks improved and expectations changed, several problems emerged with the ISU TAS. First, it does not use a standardized format to store its tiles. If a researcher tries to use a tileset in another software, an interpreter for this format must be written. Further, the ISU TAS is no longer in development and has been replaced by the PyTAS. As a result, the ISU TAS will not be executable in the long run due to updates in C&#x2b;&#x2b; or the operating systems.</p>
<p>The PyTAS (<xref ref-type="bibr" rid="B13">Patitz, 2023</xref>) is a simulator under development written in Python 3. It is only available in a beta release thus far and seems to be discontinued. The PyTAS only supports the aTAM, meaning for simulations of the kTAM or 2HAM the ISU TAS has to be used until further notice.</p>
<p>The WebTAS is a web app in progress. It is functional but only offers support for the simulation of the aTAM at the time of writing this paper. When and if the development of the WebTAS, as well as the PyTAS, will be finished is still unknown. Until then, they do not offer a suitable alternative for the ISU TAS.</p>
<p>For these and other reasons, we decided to write the <italic>NetTAS</italic> software basis from scratch to allow for the simulation of DNN, as well as the long-term support and ease of use in a web browser with multiple LATEX-related convenience features.</p>
</sec>
<sec id="s4">
<label>4</label>
<title>The NetTAS simulator</title>
<p>This section introduces the NetTAS simulator and its most important components. We start with the underlying simulation model and present the key data structures that enable the efficient simulation of self-assembly systems in web browsers like Chrome or Firefox. We also present the major components of the Software and their interaction as well as the user interface.</p>
<sec id="s4-1">
<label>4.1</label>
<title>The NetTAS model</title>
<p>The NetTAS simulator was implemented using Angular, as it meets industry standards and offers a user-friendly development environment. Angular natively supports both the Model-View-ViewModel (MVVM) and Model-View-Controller (MVC) architectural patterns. NetTAS was developed following the MVVM structure, where the view is connected to the model bidirectionally through the view model. This allows changes in the model to be immediately reflected in the view, and <italic>vice versa</italic>.</p>
<p>The model was implemented in an object-oriented manner, strictly adhering to Winfree&#x2019;s definitions for aTAM and kTAM (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>). A <monospace>Tile</monospace> consists of four <monospace>Glue</monospace> elements and one <monospace>label</monospace>. The <monospace>label</monospace> is represented directly as text. Each <monospace>Glue</monospace> is defined as a tuple <inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf9">
<mml:math id="m9">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the <monospace>label</monospace> and <inline-formula id="inf10">
<mml:math id="m10">
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the <monospace>strength</monospace> of the glue.</p>
<p>New tilesets can be created directly within NetTAS. Alternatively, users can import existing sets from JSON or ISU TAS files. Once a tileset has been created, it can be saved in JSON format for future reuse.</p>
<p>In addition to <monospace>Glue</monospace> and <monospace>Tile</monospace>, there are two other fundamental data types: <monospace>Direction</monospace> and <monospace>Position</monospace>. <monospace>Direction</monospace> is an enumeration that defines the four cardinal directions&#x2013;<monospace>Top</monospace>, <monospace>Right</monospace>, <monospace>Bottom</monospace>, and <monospace>Left</monospace>&#x2013;as well as the <monospace>Self</monospace> direction. This enumeration facilitates directional iteration and helps avoid code duplication.</p>
<p>
<monospace>Position</monospace> stores the <inline-formula id="inf11">
<mml:math id="m11">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf12">
<mml:math id="m12">
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> coordinates used to define specific locations within the assembly.</p>
<p>The <monospace>TileAssembly</monospace> class utilizes the created <monospace>Tile</monospace>s to execute simulations. Additionally, it maintains the current <monospace>growthfront</monospace>. For this purpose, the changes to the growth front are checked with every assembly or breaking process. In the worst case, this means four checks per process. Checking at each process where another assembly can be connected would always require checks on the size of the assembly. Since new tiles can only attach to this growth front in subsequent steps, tracking it enables efficient simulation updates. Additionally, <monospace>TileAssembly</monospace> keeps track of the overall size of the assembly, allowing this information to be accessed without iterating through all individual <monospace>AssemblyNode</monospace>s. This improves the efficiency of comparing two assemblies for structural equivalence.</p>
<p>In the initial implementation attempts, the <monospace>Tile</monospace>s were stored in a two-dimensional array. However, since assemblies can grow in all four directions, the array had to be continuously resized, which was time-consuming and resulted in the creation of many unnecessary <monospace>Tile</monospace>s.</p>
<p>A more critical limitation of arrays is that they do not support negative indexing. This means that if the assembly expands in the negative x or y direction, every access to the array had to be recalculated whenever the array was resized. Managing this overhead in an acceptable runtime proved to be non-trivial, prompting the search for an alternative data structure.</p>
<p>The chosen alternative was a hash map. Hash maps offer fast access times and only require the creation of <monospace>Tile</monospace>s that are actually needed. However, TypeScript does not natively support hash maps with compound keys. To address this limitation, a custom data structure called <monospace>PositionMap</monospace> was implemented which creates a bidirectional link between a <monospace>Tile</monospace> and a <monospace>Position</monospace>.</p>
<p>In addition to storing <monospace>Tile</monospace>s in the <monospace>PositionMap</monospace>, each <monospace>Tile</monospace> also contains its own <monospace>Position</monospace>. This is necessary to determine the location of a given <monospace>Tile</monospace> during access, enabling further computations based on its position. For example, each <monospace>Tile</monospace> can directly check how strong its current glue strength is.</p>
<p>The individual simulators for aTAM, kTAM and 2HAM utilize <monospace>TileAssembly</monospace> instances in different ways and their simulation follow the definitions of Winfree (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>). Both the aTAM and kTAM simulators require only a single <monospace>TileAssembly</monospace>, on which they place a seed tile at a designated <monospace>rootNode</monospace>. From this seed tile, the assembly is grown. In each time step, Positions are randomly selected from the <monospace>growthfront</monospace> until either a suitable tile is found or all elements in the <monospace>growthfront</monospace> have been considered. For the selected element, tiles from the tileset are tested sequentially to determine whether one can be placed at that position in a <inline-formula id="inf13">
<mml:math id="m13">
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-stable manner. If no suitable tile is found, the algorithm proceeds to the next element in the <monospace>growthfront</monospace>. Once a valid tile is identified, it is placed, and the step is completed. Due to the random selection of elements from the <monospace>growthfront</monospace>, the aTAM process is inherently non-deterministic.</p>
<p>The kTAM operates differently in this regard. When adding a tile, a random <monospace>Position</monospace> is selected, and a randomly chosen <monospace>Tile</monospace> is placed at that position. Removing a tile presents a greater challenge for the implementation. The basic process involves first removing the <monospace>Tile</monospace>, then undoing all changes caused by this <monospace>Tile</monospace>. This includes the re-evaluating and recalculating the overall bond strength of the neighboring tiles. However, it is possible that other <monospace>Tiles</monospace> are attached to the removed <monospace>Tile</monospace>, which may no longer be connected to the assembly after its removal. Thus, whenever a <monospace>Tile</monospace> is removed, it is necessary to check which <monospace>Tiles</monospace> are still connected to the assembly. This becomes particularly problematic for very large assemblies, as such checks can significantly degrade runtime performance. To address this, each <monospace>AssemblyNode</monospace> stores the <monospace>Tiles</monospace> that were added to the assembly after it, referred to as its <monospace>Children</monospace>. As a result, when a <monospace>Tile</monospace> is removed, only these <monospace>Children</monospace> need to be checked to ensure they are still connected to the assembly. This reduces the check from all <monospace>Tiles</monospace> in the assembly to just the <monospace>Children</monospace>, which should typically be much smaller, since <monospace>Tiles</monospace> generally fall off before any new <monospace>Tiles</monospace> can attach to them.</p>
<p>In contrast, the 2HAM simulator operates on multiple <monospace>aTAMAssembly</monospace> instances, attempting to combine them into new <monospace>aTAMAssembly</monospace> structures. The merging of two assemblies is done iteratively. Starting from the merge point, the second assembly is iterated through. In each iteration step, the current <monospace>Tile</monospace> is inserted into the first assembly. This approach takes longer than directly merging the assemblies at the merge point, but it ensures that all dependencies, such as the <monospace>growthfront</monospace> or the neighboring relationships, are correctly set. A direct merge would require iterating through the entire assembly to achieve the same result. To improve runtime, not every assembly is merged with every other assembly in each step. Instead, only the assemblies added in the last step are attempted to be merged with all other assemblies. Furthermore, when creating new assemblies, only truly new assemblies are stored. This means that each new assembly is checked to see if it already exists. In general, this check can be significantly optimized by keeping track of the overall size of an assembly, to reduce the number of possible candidates. The kTHAM uses a combination of 2HAM and kTAM implementation for simulation, which is described in more detail in <xref ref-type="sec" rid="s5">Section 5</xref>.</p>
</sec>
<sec id="s4-2">
<label>4.2</label>
<title>The user interface</title>
<p>The latest update of the NetTAS introduces several changes on the layout and graphical user interface. The goal was to increase the usability and make it more expandable for the introduction of future simulation modes. A key aspect of this design is the restructuring of the tileset page where the tile is placed in the middle (see <xref ref-type="fig" rid="F3">Figure 3</xref>). It reduces cognitive load and is minimizing navigation effort (<xref ref-type="bibr" rid="B8">Nielsen, 1994</xref>). By placing core elements in an accessible area, the user can interact more intuitively, aligning with established principles of user-centered design (<xref ref-type="bibr" rid="B9">Norman, 2013</xref>).</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>The new tileset view and editor.</p>
</caption>
<graphic xlink:href="frcmn-06-1637220-g003.tif">
<alt-text content-type="machine-generated">Interface for a DNA-based nanonetwork simulator titled &#x22;New/Edit Tile.&#x22; It includes options to set tile attributes like ID, label, color, and glue strengths for top, bottom, left, and right. The tile color is blue, with each glue strength set to three. Buttons for adding and removing are visible, as well as options to export or upload.</alt-text>
</graphic>
</fig>
<p>Furthermore, by adding new tabs for the navigation to the different simulation models, switching between them is simple and does not involve switching pages anymore. This leads to a more efficient workflow when working on more complex scenarios and emphasizes the benefits of multi-tabbed interfaces for task efficiency (<xref ref-type="bibr" rid="B2">Cockburn et al., 2003</xref>). In addition, the code structure is more optimized for future features and maintainability. These enhancements contribute to an improved user experience and are likely to be advantageous in the future.</p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>The kinetic two-handed tile assembly model</title>
<p>For a realistic simulation of self-assembly processes within nanonetworks, a more specialized simulation model is necessary. In this section, we define the new <italic>Kinetic two-handed Tile Assembly Model</italic> (kTHAM). It is based on the 2HAM and extends the model using properties of the kTAM. The simulation focuses on the assembly processes and does not model the nanodevices mentioned in <xref ref-type="fig" rid="F2">Figure 2</xref>. For more details on the underlying implementation and a web-based application, the interested reader is encouraged to see (<xref ref-type="bibr" rid="B5">Kaussow, 2022b</xref>; <xref ref-type="bibr" rid="B4">Kaussow, 2022a</xref>).</p>
<sec id="s5-1">
<label>5.1</label>
<title>The kTHAM model</title>
<p>In the kTHAM, a finite number of tiles is located in a common medium. Unlike aTAM and kTAM, the restriction to one seed tile is removed. Instead, all tiles and assemblies can freely interact with each other and form bindings, as long as a combination is somewhat realistically possible. This behavior is based on a combination of both the kTAM and the 2HAM.</p>
<p>As the 2HAM has a very high runtime already, we allow for a simulation speed-up by specifying a minimum number of glues that must match, the minimum binding temperature <inline-formula id="inf14">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. This simplification is necessary to keep the complexity of the simulation in terms of runtime and memory requirements as low as possible while still allowing for realism if needed. By adjusting parameters, the simulation can be tuned in one or the other way.</p>
<p>Further, at any point in time, individual tiles may disassociate from each assembly and even entire assemblies can break into two pieces. If an assembly is created from different original assemblies, the assemblies into which it breaks are selected at random. This selection is modified by the resulting bonds&#x2013;an assembly is more likely to break at an unstable position.</p>
<p>The following parameters specify the kTHAM:<list list-type="bullet">
<list-item>
<p>A tileset <inline-formula id="inf15">
<mml:math id="m15">
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>the initial number of tiles of each type expressed as the state <inline-formula id="inf16">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>the forward Rate <inline-formula id="inf17">
<mml:math id="m17">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>the monomer concentration <inline-formula id="inf18">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>mc</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>the cost of breaking a single bond <inline-formula id="inf19">
<mml:math id="m19">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>se</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>and the minimum binding temperature <inline-formula id="inf20">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
</list>
</p>
<p>An example of the state <inline-formula id="inf21">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of a kTHAM instance can be seen in <xref ref-type="fig" rid="F4">Figure 4</xref>. Multiple tiles and assemblies coexist and may influence each other, resulting in a large space of possible structures. For engineering/networking purposes, a fixed number of tiles is more beneficial than the assumption of infinitely many.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>An overview of existing message molecules or intermediate assemblies in the kTHAM given 100 tiles of each type and parameters <inline-formula id="inf22">
<mml:math id="m22">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>17</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf23">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>10.4</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf24">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</caption>
<graphic xlink:href="frcmn-06-1637220-g004.tif">
<alt-text content-type="machine-generated">Abstract illustration showing clusters of small, multicolored blocks arranged in various patterns across a white background. The blocks are primarily red, green, blue, and white, creating an organized yet fragmented appearance.</alt-text>
</graphic>
</fig>
<p>A state in the kTHAM contains the information how often each tile or assembly occurs in the simulated area. Each assembly has the same probability of being selected to interact with a random assembly in each simulation step. Thus, the probability of selecting an assembly only changes based on its frequency.</p>
<p>In the most general case, the simulation itself does not terminate unless manually stopped. However, it is possible to specify a desired assembly from a prior simulation run that may serve as a &#x201c;stopping point&#x201d; for future runs in a loop.</p>
</sec>
<sec id="s5-2">
<label>5.2</label>
<title>Real-time in the kTHAM</title>
<p>One of the most important results of DNN simulations is the required duration in real time. This section explains how real time is modeled in the kTHAM and how different parameters influence the simulation. As the kTHAM is implemented in parallel to achieve more timely results, this posed an additional challenge.</p>
<p>The estimation of the real-time is based on the work of Winfree (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>). The time <inline-formula id="inf25">
<mml:math id="m25">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is computed by summing up the time that passes between the states <inline-formula id="inf26">
<mml:math id="m26">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf27">
<mml:math id="m27">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> that mark successive steps of a kTHAM simulation. The time can be described as the reciprocal of the reaction rates <inline-formula id="inf28">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. These rates can be computed using the parameters <inline-formula id="inf29">
<mml:math id="m29">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf30">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>mc</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf31">
<mml:math id="m31">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>se</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of the kTAM as well as the initial amount of tiles per tile type.</p>
<p>The required time can be stated as follows: <inline-formula id="inf32">
<mml:math id="m32">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>
<italic>r<sub>f</sub>
</italic> models all possible reactions between available assemblies and tiles <inline-formula id="inf33">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> given <inline-formula id="inf34">
<mml:math id="m34">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> within the state <inline-formula id="inf35">
<mml:math id="m35">
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and is based on Winfree: <inline-formula id="inf36">
<mml:math id="m36">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mi>i</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mn>20</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>mc</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. <inline-formula id="inf37">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> influences the accuracy of the simulation and can be used to speed up the process in exchange for accuracy. When this parameter is set to 0, all assemblies or tiles may form an assembly even if the resulting structure is very unstable. However, this comes at the expense of simulating errors.</p>
<p>
<inline-formula id="inf38">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> models all already computed binding reactions for assemblies in <inline-formula id="inf39">
<mml:math id="m39">
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. At these points, the assemblies are most likely to break again. All of these assemblies have a binding strength <inline-formula id="inf40">
<mml:math id="m40">
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> greater than or equal to <inline-formula id="inf41">
<mml:math id="m41">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, which is part of <inline-formula id="inf42">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for each assembly in <inline-formula id="inf43">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Based on this, all possible rates for breaking bonds are summed up as: <inline-formula id="inf44">
<mml:math id="m44">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mn>20</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>b</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>se</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The resulting time of the simulation will be influenced by changing the number of tiles per tile type in the initial state <inline-formula id="inf45">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Fewer tiles allow for a faster simulation, and changing <inline-formula id="inf46">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to a higher value leads to a faster simulation as well.</p>
<p>For a realistic simulation, the parameters have to be chosen carefully. Not all possible values correspond to suitable values of wet lab experiments. Small changes in the environmental parameters can lead to large changes in the resulting time. Both the relation between the values as well as the absolute values are important. The default values of the simulation correspond to the prior simulations of wet lab experiments in (<xref ref-type="bibr" rid="B15">Rothemund et al., 2004</xref>) but may be adjusted if necessary.</p>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Evaluation</title>
<p>This section evaluates the kTHAM model of the NetTAS simulator. We first compare the complexity of the model with the 2HAM. After that, we demonstrate how the simulation results compare to the 2HAM and the kTAM and finally compare the real-time behavior with Winfree&#x2019;s equations.</p>
<sec id="s6-1">
<label>6.1</label>
<title>kTHAM runtime analysis</title>
<p>Technically, self-assembly systems are <italic>computational models</italic> and as such, the runtime of the simulation depends on the tileset, which is akin to a program with regular computers. As such, every tileset has to be considered individually as well. For especially bad tilesets, the 2HAM and kTHAM are computationally infeasible and can achieve complexities of up to <inline-formula id="inf47">
<mml:math id="m47">
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>This can be easily seen by using just two tiles with identical glues that match the temperature threshold and allow for stable possible bindings in all directions. The resulting simulation does not terminate and the number of assemblies that have to be considered at each simulation step can be compared with the faculty function. Yet, the 2HAM and kTHAM are still useful for the small and finite assemblies that suffice for simulating often resource-constrained DNN (<xref ref-type="bibr" rid="B1">Akyildiz et al., 2008</xref>).</p>
<p>We still try to give an estimate of the expected complexity of the kTHAM. The kTHAM can be separated into two parts: the start and the execution of simulation steps. The start of the kTHAM is equivalent to the start of the 2HAM, since a separate assembly must be considered for each existing tile/assembly.</p>
<p>A step of the kTHAM is divided into determining whether an assembly breaks down or whether two assemblies or tiles combine. The runtime is the same as with the kTAM and is part of <inline-formula id="inf48">
<mml:math id="m48">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, with <inline-formula id="inf49">
<mml:math id="m49">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> being the size of the assembly. Secondly, a step consists of either combining or breaking assemblies. The breaking can be computed in <inline-formula id="inf50">
<mml:math id="m50">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> as we only select from the prior components and assembly has been created from.</p>
<p>The combining of two assemblies is realized in <inline-formula id="inf51">
<mml:math id="m51">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> if and only if this combination has been computed and saved already. Initially, the assembly takes <inline-formula id="inf52">
<mml:math id="m52">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> where <inline-formula id="inf53">
<mml:math id="m53">
<mml:mrow>
<mml:mi>W</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the size of the growth front and <inline-formula id="inf54">
<mml:math id="m54">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the size of the second assembly. Each point on the growth front must be considered to see if it matches each tile from the second assembly. This means that a single kTHAM step requires <inline-formula id="inf55">
<mml:math id="m55">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> steps. However, the total number of required steps cannot be known in advance due to the halting problem and the non-deterministic/random nature of the kTAM and therefore also the kTHAM.</p>
</sec>
<sec id="s6-2">
<label>6.2</label>
<title>Proof of concept of the kTHAM using a 4-bit-AND</title>
<p>We now demonstrate the correctness of the kTHAM by showing that it is a combination of the kTAM and 2HAM models already validated by Winfree and others. In essence, the kTHAM simulation steps are computed exactly as in the kTAM only that possibly hundreds of assemblies may coexist at the same time and interact with each other. The rules of assembly-interaction are described by the 2HAM and the remaining assembly behavior is guided by the rules of the 2HAM. As such, most assemblies formed by the interaction of two sub-assemblies may also be reached by the kTAM alone. The only exception are assemblies where the binding is based on multiple glues from different parts of the assembly. In such cases, the simulation behaves exactly like the 2HAM with the exception that assemblies created in such a way may also break apart again. However, due to the computational complexity, assemblies may not break apart arbitrarily but only either one tile at a time or at the prior points of interaction between two assemblies.</p>
<p>We further numerically demonstrate the intended behavior by simulating an example molecule in both kTAM and 2HAM and demonstrate that the kTHAM indeed behaves like a combination of both. The chosen molecule can be seen in <xref ref-type="fig" rid="F5">Figure 5</xref> and includes the tiles of the 4-bit-And molecule (<xref ref-type="bibr" rid="B7">Lau et al., 2019</xref>). The molecule only fully assembles in the presence of the four tiles 1&#x2013;4. Once those are present, a receptor may attach to the assembly and finalize the message molecule.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>The output assembly of the NetTAS after simulating the tileset from <xref ref-type="fig" rid="F6">Figure 6</xref> in the different modules of the NetTAS.</p>
</caption>
<graphic xlink:href="frcmn-06-1637220-g005.tif">
<alt-text content-type="machine-generated">Diagram showing a tile assembly process with a legend. Colored tiles include red, white, dark blue, and gray. The red tile is labeled as the seed tile. Dark blue tiles bind to the seed with single bits of AND. Gray tiles form a stability frame. White tiles are receptor tiles that finish assembly.</alt-text>
</graphic>
</fig>
<p>For the comparison simulation in the kTAM of the ISU TAS, we used the parameters <inline-formula id="inf56">
<mml:math id="m56">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>10.4</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf57">
<mml:math id="m57">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>17.0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Here <inline-formula id="inf58">
<mml:math id="m58">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>mc</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> describes the monomer concentration present and <inline-formula id="inf59">
<mml:math id="m59">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>se</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> the cost of breaking a bond.</p>
<p>Next, the tiles from <xref ref-type="fig" rid="F6">Figure 6</xref> have also been simulated in the 2HAM of NetTAS. Both the 4-bit-And molecule and a possible message receptor at a nanodevice assemble from the same tileset. We can only model the receptor in the 2HAM, since there is no seed tile specified and many assemblies or tiles assembled in parallel.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Tileset of a 4 Bit-And molecule in the NetTAS.</p>
</caption>
<graphic xlink:href="frcmn-06-1637220-g006.tif">
<alt-text content-type="machine-generated">A diagram showing a series of tiles in various colors including white, dark blue, gray, red, and light blue. The top section includes tiles labeled with combinations of letters and numbers, such as m3, m1, m2, and symbols like R, x. Below, a legend explains tile functions: white represents seed tiles, dark blue binds at the seed tile, gray serves as a frame, red are receptor tiles, and light blue are receptor-assembly tiles. Each tile has connectors depicted as black notches on their edges.</alt-text>
</graphic>
</fig>
<p>Due to the design of the two assemblies, there can only be an interaction between them when they are both completely assembled. There are countless possibilities to create smaller intermediate assemblies. However, the assembly consisting of the 4-bit-And molecule and the receptor is unique.</p>
<p>Both the number of possible assemblies and the resulting assembly correspond exactly to (<xref ref-type="bibr" rid="B7">Lau et al., 2019</xref>) where the ISU TAS was used. In the aTAM and 2HAM, the NetTAS can reproduce the results of the ISU TAS for the 4-bit-And molecule.</p>
<p>However, the kTAM simulation results of the 4-bit-And differed greatly from those of the ISU TAS. The reason for this is the probability computation of the add-event from Winfree&#x2019;s dissertation (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>). This is defined as <inline-formula id="inf60">
<mml:math id="m60">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>on</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>n</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>mc</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and the NetTAS follows exactly this definition (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>).</p>
<p>In the ISU TAS, the probability computation is implemented by the usage of an <monospace>attachmentEvent</monospace> and an <monospace>detachmentEvent</monospace>. Here, the <monospace>attachmentEvent</monospace> corresponds to the add-event from Winfree&#x2019;s dissertation (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>) and the <monospace>detachmentEvent</monospace> corresponds to the detach-event. The ISU TAS does not implement the constant <inline-formula id="inf61">
<mml:math id="m61">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, because it is contained in the add-event and detach-event and may be omitted. In the ISU TAS the value <monospace>total</monospace> is added. This changes the computation of an <monospace>attachmentEvent</monospace>. In the ISU TAS, the total number of tiles in a given medium grows with the number of specified tile types. In the NetTAS, we fixed the overall concentration of tiles. When more tile types are added, their overall concentration is lowered. In the kTHAM, we simply specify the total amount of tiles of each type and do not assume an infinite supply of a given concentration. While the ISU TAS correctly simulates the first few seconds of a self-assembly process, the NetTAS aims at simulating the interaction of a less well-mixed solution of possibly minutes or hours.</p>
<p>This means that in the ISU TAS kTAM, an assembly with many tiles can also form at lower temperatures, or that assemblies can form more quickly. A simple way to check this change is to duplicate tiles in a tileset. To do this, the tileset from <xref ref-type="fig" rid="F6">Figure 6</xref> was modified for the 4-bit-And molecule by duplicating every tile except the seed tile. Thus, all tiles remain equally likely but are present more often in the tileset.</p>
<p>With the values <inline-formula id="inf62">
<mml:math id="m62">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf63">
<mml:math id="m63">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>19.8</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, the ISU TAS needs over 10,000 binding reactions on average to complete the assembly. If the tileset is increased tenfold, the ISU TAS needs only 3,000 binding reactions to complete the assembly. This leads to differences in the number of binding reactions between the NetTAS and ISU TAS (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>). The ISU TAS interpretation is neither better nor worse than the NetTAS interpretation. For DNN, it is just better to fix the overall concentration. Yet, those numbers can be adjusted as wised in the kTHAM.</p>
<p>Overall, the resulting assemblies in the kTAM function of the NetTAS and the ISU TAS are identical except for the differences in the required simulation steps. Further, the resulting intermediate assemblies in the kTHAM are all part of the 2HAM computation as we use the same underlying function for the computation minus possible errors that may occur. As such, the kTHAM performs exactly as expected and provides a combination of both kTAM and 2HAM.</p>
</sec>
<sec id="s6-3">
<label>6.3</label>
<title>Real time evaluation</title>
<p>Next to demonstrating the correctness of the assembly, it is also necessary to illustrate that the real-time measured by the NetTAS somewhat correctly reflects the timing of wet lab experiments. In his PhD thesis, Winfree (<xref ref-type="bibr" rid="B17">Winfree, 1998</xref>) shows six stages with different assembly sizes and the corresponding assembly durations. Two of these stages are shown in <xref ref-type="fig" rid="F7">Figures 7a,b</xref>. These are used as a basis for comparison the real-time presented in this paper.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Comparison of the real-time between NetTAS and Winfree by simulation of the sierpinski triangle. <bold>(a)</bold> Winfree&#x0027;s simulation after 9s. (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>). <bold>(b)</bold> Winfree&#x0027;s simulation after 63s. (<xref ref-type="bibr" rid="B18">Winfree et al., 1998</xref>). <bold>(c)</bold> Biggest NetTAS assembly after 9s. <bold>(d)</bold> Biggest NetTAS assembly after 63s. <bold>(e)</bold> Histogram of size distributions after 9s in the kTHAM. <bold>(f)</bold> Histogram of size distributions after 63s in the kTHAM.</p>
</caption>
<graphic xlink:href="frcmn-06-1637220-g007.tif">
<alt-text content-type="machine-generated">a. Abstract block arrangement in varying grayscale.  b. Sierpinski triangle pattern in grayscale.  c. Hexagonal grid pattern with blue, red, green, and yellow sections.  d. Larger hexagonal grid with similar color scheme as c.  e. Histogram showing frequency distribution of assembly sizes, peaking at lower values.  f. Similar histogram to e, with a wider range of assembly sizes.</alt-text>
</graphic>
</fig>
<p>Winfree chose the parameters <inline-formula id="inf64">
<mml:math id="m64">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>se</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>8</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf65">
<mml:math id="m65">
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.95</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B17">Winfree, 1998</xref>) for his wet-lab experiments while (<xref ref-type="bibr" rid="B15">Rothemund et al., 2004</xref>) successfully used <inline-formula id="inf66">
<mml:math id="m66">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>se</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>10.4</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf67">
<mml:math id="m67">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>mc</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>17</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Those values correspond to 32.7 and 41.8&#xa0;&#xb0;C respectively. The temperature of the system can be chosen according to the desired assembly speed and the number of errors that may be tolerated (<xref ref-type="bibr" rid="B17">Winfree, 1998</xref>). If the temperature is chosen precisely, the number of errors may converge to zero while the speed of the assembly approaches infinity. Winfree further chose <inline-formula id="inf68">
<mml:math id="m68">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>/</mml:mo>
<mml:mtext>s</mml:mtext>
</mml:mrow>
</mml:math>
</inline-formula> which corresponds to a forward rate of <inline-formula id="inf69">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>600.000</mml:mn>
<mml:mfrac>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
</inline-formula>
<xref ref-type="fn" rid="fn2">
<sup>2</sup>
</xref>. We chose <inline-formula id="inf70">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> as a default as this allows for a feasible simulation speed.</p>
<p>The NetTAS simulation uses the following parameters:<list list-type="bullet">
<list-item>
<p>A forward Rate <inline-formula id="inf71">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>600.000</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf72">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>mc</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>15,6</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf73">
<mml:math id="m73">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>se</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>8</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>,</p>
</list-item>
<list-item>
<p>500 tiles of each type,</p>
</list-item>
<list-item>
<p>a minimal binding temperature <inline-formula id="inf74">
<mml:math id="m74">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
</list>
</p>
<p>In <xref ref-type="fig" rid="F7">Figures 7c,d</xref> the two stages after 9 and 63&#xa0;s are shown. Below, in <xref ref-type="fig" rid="F7">Figures 7e,f</xref>, the number of assemblies by size for the corresponding time points is shown as a histogram. The x-axes are limited to 100 and therefore do not show all assemblies of size one. It can be seen that there are many small assemblies.</p>
<p>The computed real-time of the simulation can be compared with the results of Winfree, since he has already carried out a similar simulation with his implementation of the kTAM. It should be noted that the simulations were carried out using different models. Winfree uses the kTAM, while in this work the kTHAM is used. The result of a single simulation is therefore not a single assembly, as with Winfree, but a (multi)set of assemblies. After a 9-s simulation, it can be seen that the largest assembly from the NetTAS kTHAM simulation (<xref ref-type="fig" rid="F7">Figure 7c</xref>) with 85 tiles is significantly larger than the eleven tiles in Winfree&#x2019;s representation. Due to the high number of assemblies simulated at the same time, the largest assembly is likely always an &#x201c;outlier&#x201d; and much bigger in a short time compared to the average.</p>
<p>Most tiles that already have at least one connection to other tiles form assemblies with a size of two to twelve tiles. This conforms to Winfree&#x2019;s example, which consists of eleven tiles. After 63&#xa0;s, Winfree&#x2019;s assembly consists of 490 tiles, while the largest assembly from the NetTAS simulation consists of only 172 tiles. At this point, there is a clear difference between the two simulations. This difference can be explained by the different models, since with kTHAM, the edge tiles are no longer present individually after a certain point and the largest assembly cannot grow any further. None of the initial 500 tiles are available anymore while the ISU TAS and other models still assume an infinite supply of tiles of each type at any given time.</p>
<p>This effect could be mitigated by increasing the initial supply of tiles of chosen tiles. Yet, an additional increase in tiles quickly results in infeasible simulation times as the kTHAM is already quite slow due to the potentially very large number of assemblies simulated at the same time. This is the biggest theoretical disadvantage of kTHAM. Luckily, most proposed medical applications are relatively simple in terms of their computational complexity and the expected computational power of individual nanodevices is so low, that the kTHAM should be able to simulate most realistic scenarios without difficulty. <xref ref-type="bibr" rid="B6">Lau et al. (2017)</xref>; <xref ref-type="bibr" rid="B1">Akyildiz et al. (2008)</xref>.</p>
<p>The test further shows that the real-time is not computed entirely accurate with the simplification parameter <inline-formula id="inf75">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> &#x2013; however, it is still pretty close. This is due to the optimization that has been carried out, which parallelizes the computation of the reactions. To avoid this problem and still perform a simulation with <inline-formula id="inf76">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, it is recommended to deactivate parallelization for the simulation with <inline-formula id="inf77">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>min</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. The resulting longer computation times must be accepted in this case for the correct calculation of the real-time and, if possible, reduced again by optimizing the implementation. After this change, the real-time must be validated with the corresponding parameters.</p>
</sec>
</sec>
<sec id="s7">
<label>7</label>
<title>Summary and future work</title>
<p>In this paper, we presented the new NetTAS simulator with its kTHAM simulation model. The kTHAM extends the established kTAM module by introducing the parallelism of the 2HAM model. As there is no longer any dedicated seed assembly or seed tile, we can observe the interaction between all intermediate assembly products at any time and check for unwanted interactions. For the first time, this allows us to simulate simple networking scenarios holistically. Overall, this allows for the more realistic simulation of a variety of nanonetworking scenarios based on DNA.</p>
<p>In addition to that, we have introduced timing features into the simulation model to accurately reflect the necessary time for assemblies to form. Especially in medical scenarios or nanonetworks inside the human body, this information is crucial to assess the feasibility of a proposed approach. To evaluate the correctness, we have aligned our method with prior results from Erik Winfree&#x2019;s formulas for the kTAM that we have modified for the parallel setting.</p>
<p>To demonstrate the correctness of the kTHAM model overall, we have first shown that the aTAM, kTAM and 2HAM modules of the NetTAS produce the same results as the ISU TAS simulator in most cases. The kTHAM itself uses the same methods to simulate kTAM in parallel. We further demonstrated that the kTHAM&#x2019;s result matches the findings of the 2HAM when it comes to assembly interactions and the kTAM when it comes to erroneous DNA bindings. The NetTAS is a suitable, modular and extendable basis for many novel features and some of them are already in development. The source code is available in a Git repository (<xref ref-type="bibr" rid="B5">Kaussow, 2022b</xref>) and the simulator is also available online (<xref ref-type="bibr" rid="B4">Kaussow, 2022a</xref>).</p>
<p>While the kTHAM is a major improvement over existing models for networking applications, other modules were mainly designed for simulating DNA-based computations. This is especially true for in-body nanonetworks (<xref ref-type="bibr" rid="B7">Lau et al., 2019</xref>; <xref ref-type="bibr" rid="B1">Akyildiz et al., 2008</xref>). It might be possible to model the human circulatory system using a Markov model to determine the concentration of all self-assembly components in distinct segments of the human body. As such, it might be possible to accurately simulate self-assembly processes in the entire human body and not just small segments.</p>
<p>Another possible improvement would be the introduction of a chance to start the simulation with assemblies instead of just tiles to better simulate possible real world conditions. This basic functionality could also serve as a basis for the introduction of new assemblies once specific simulation conditions have been met. In doing so, the NetTAS would be able to simulate an entire array of more complex network protocols that rely on the exchange of message molecules for, e.g., synchronization purposes.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s8">
<title>Data availability statement</title>
<p>Publicly available datasets were analyzed in this study. This data can be found here: <ext-link ext-link-type="uri" xlink:href="https://git.itm.uni-luebeck.de/kaussow/nettas">https://git.itm.uni-luebeck.de/kaussow/nettas</ext-link>.</p>
</sec>
<sec sec-type="author-contributions" id="s9">
<title>Author contributions</title>
<p>MK: Validation, Supervision, Writing &#x2013; review and editing, Software, Visualization, Writing &#x2013; original draft. RP: Software, Writing &#x2013; original draft. SS: Writing &#x2013; review and editing, Software, Writing &#x2013; original draft. CH: Writing &#x2013; review and editing, Software, Writing &#x2013; original draft. SF: Supervision, Writing &#x2013; review and editing. FL: Writing &#x2013; original draft, Supervision, Software, Writing &#x2013; review and editing, Project administration.</p>
</sec>
<sec sec-type="COI-statement" id="s11">
<title>Conflict of interest</title>
<p>The author(s) declared that this work was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="ai-statement" id="s12">
<title>Generative AI statement</title>
<p>The author(s) declared that generative AI was not used in the creation of this manuscript.</p>
<p>Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.</p>
</sec>
<sec sec-type="disclaimer" id="s13">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<fn-group>
<fn fn-type="custom" custom-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/965925/overview">Chee Yen (Bruce) Leow</ext-link>, University of Technology Malaysia, Malaysia</p>
</fn>
<fn fn-type="custom" custom-type="reviewed-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1564587/overview">Yan kai Dong</ext-link>, Lishui University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3107717/overview">Saad Ilyas Baig</ext-link>, University of Central Punjab, Pakistan</p>
</fn>
</fn-group>
<fn-group>
<fn id="fn1">
<label>1</label>
<p>
<ext-link ext-link-type="uri" xlink:href="https://nettas.itm.uni-luebeck.de">https://nettas.itm.uni-luebeck.de</ext-link>
</p>
</fn>
<fn id="fn2">
<label>2</label>
<p>
<inline-formula id="inf78">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>20</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>mc</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>20</mml:mn>
<mml:mo>&#x22c5;</mml:mo>
<mml:mn>600.000</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>15,6</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2,015</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</fn>
</fn-group>
<ref-list>
<title>References</title>
<ref id="B1">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Akyildiz</surname>
<given-names>I. F.</given-names>
</name>
<name>
<surname>Brunetti</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Bl&#xe1;zquez</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Nanonetworks: a new communication paradigm</article-title>. <source>Comput. Netw.</source> <volume>52</volume>, <fpage>2260</fpage>&#x2013;<lpage>2279</lpage>. <pub-id pub-id-type="doi">10.1016/j.comnet.2008.04.001</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Cockburn</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Gutwin</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Greenberg</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2003</year>). &#x201c;<article-title>A predictive model of menu performance</article-title>,&#x201d; in <source>Proceedings of the SIGCHI conference on human factors in computing systems</source> (<publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>431</fpage>&#x2013;<lpage>438</lpage>. <pub-id pub-id-type="doi">10.1145/642611.642682</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Demaine</surname>
<given-names>E. D.</given-names>
</name>
<name>
<surname>Patitz</surname>
<given-names>M. J.</given-names>
</name>
<name>
<surname>Rogers</surname>
<given-names>T. A.</given-names>
</name>
<name>
<surname>Schweller</surname>
<given-names>R. T.</given-names>
</name>
<name>
<surname>Summers</surname>
<given-names>S. M.</given-names>
</name>
<name>
<surname>Woods</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>The two-handed tile assembly model is not intrinsically universal</article-title>. <source>Algorithmica</source> <volume>74</volume>, <fpage>812</fpage>&#x2013;<lpage>850</lpage>. <pub-id pub-id-type="doi">10.1007/s00453-015-9976-y</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="web">
<person-group person-group-type="author">
<name>
<surname>Kaussow</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2022a</year>). <article-title>NetTAS</article-title>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://nettas.itm.uni-luebeck.de/">https://nettas.itm.uni-luebeck.de/</ext-link>.</comment>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="web">
<person-group person-group-type="author">
<name>
<surname>Kaussow</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2022b</year>). <article-title>NetTAS gitlab</article-title>. <comment>Available online at: <ext-link ext-link-type="uri" xlink:href="https://git.itm.uni-luebeck.de/kaussow/nettas">https://git.itm.uni-luebeck.de/kaussow/nettas</ext-link>.</comment>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Lau</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>B&#xfc;ther</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Gerlach</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Computational requirements for nano-machines: there is limited space at the bottom</article-title>,&#x201d; in <source>4th ACM international conference on nanoscale computing and communication</source> (<publisher-loc>Washington DC, USA</publisher-loc>). <comment>ACM NanoCom&#x2019;17</comment>.</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lau</surname>
<given-names>F.-L. A.</given-names>
</name>
<name>
<surname>B&#xfc;ther</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Geyer</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Fischer</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Computation of decision problems within messages in dna-tile-based molecular nanonetworks</article-title>. <source>Nano Commun. Netw.</source> <volume>21</volume>, <fpage>100245</fpage>. <pub-id pub-id-type="doi">10.1016/j.nancom.2019.05.002</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Nielsen</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>1994</year>). <source>Usability engineering</source>. <publisher-loc>San Francisco, CA, USA</publisher-loc>: <publisher-name>Morgan Kaufmann</publisher-name>.</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Norman</surname>
<given-names>D. A.</given-names>
</name>
</person-group> (<year>2013</year>). <source>The design of everyday things</source>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>Basic Books</publisher-name>. <comment>revised and expanded edn</comment>.</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Patitz</surname>
<given-names>M. J.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Simulation of self-assembly in the abstract tile assembly model with isu tas</article-title>. <source>arXiv Preprint arXiv:1101</source>. <pub-id pub-id-type="doi">10.48550/arXiv.1101.5151</pub-id>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Patitz</surname>
<given-names>M. J.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>An introduction to tile-based self-assembly and a survey of recent results</article-title>. <source>Nat. Comput.</source> <volume>13</volume>, <fpage>195</fpage>&#x2013;<lpage>224</lpage>. <pub-id pub-id-type="doi">10.1007/s11047-013-9379-4</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Patitz</surname>
<given-names>M. J.</given-names>
</name>
</person-group> (<year>2018</year>). <source>Isu tas</source>. <publisher-name>Fayetteville, AR: Patitz University of Arkansas Fayetteville</publisher-name>.</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Patitz</surname>
<given-names>M. J.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Pytas</article-title>.</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Paun</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Rozenberg</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Salomaa</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2005</year>). <source>DNA computing: new computing paradigms</source>. <publisher-name>Springer Science &#x26; Business Media</publisher-name>.</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rothemund</surname>
<given-names>P. W. K.</given-names>
</name>
<name>
<surname>Papadakis</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Winfree</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>Algorithmic self-assembly of dna sierpinski triangles</article-title>. <source>PLOS Biol.</source> <volume>2</volume>, <fpage>null</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pbio.0020424</pub-id>
<pub-id pub-id-type="pmid">15583715</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Seeman</surname>
<given-names>N. C.</given-names>
</name>
</person-group> (<year>1982</year>). <article-title>Nucleic acid junctions and lattices</article-title>. <source>J. Theoretical Biology</source> <volume>99</volume>, <fpage>237</fpage>&#x2013;<lpage>247</lpage>. <pub-id pub-id-type="doi">10.1016/0022-5193(82)90002-9</pub-id>
<pub-id pub-id-type="pmid">6188926</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Winfree</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>1998</year>). <source>Algorithmic self-assembly of Dna</source>. <comment>Ph.D. thesis</comment>. <publisher-loc>USA</publisher-loc>: <publisher-name>California Institute of Technology</publisher-name>.</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Winfree</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Wenzler</surname>
<given-names>L. A.</given-names>
</name>
<name>
<surname>Seeman</surname>
<given-names>N. C.</given-names>
</name>
</person-group> (<year>1998</year>). <article-title>Design and self-assembly of two-dimensional dna crystals</article-title>. <source>Nature</source> <volume>394</volume>, <fpage>539</fpage>&#x2013;<lpage>544</lpage>. <pub-id pub-id-type="doi">10.1038/28998</pub-id>
<pub-id pub-id-type="pmid">9707114</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Winfree</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Schulman</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Evans</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2013</year>). <source>The xgrow simulator</source>. <publisher-name>CA, United States: Online</publisher-name>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>