AAG, ACC, AGT, AT A, AT G, CAG, CAT, CCT, CGC, CT A, GAC, GAG, GCT, GGC, GT C, T AT, T GG, T GT, T T C} {AAC {aac

Keywords: Thr Asp Pro Tyr Glu Val His Ile Ala Ser Arg Leu Cys Code: 52 D 1, D 20 : Thr Asp Pro Tyr Glu Val

List of figures

List of tables Bibliographysty I would like to thank the following people, without whom I would not have been able to complete this work: First I would like to thank Chrisian Michel and Lutz Strüngmnn for supervising my dissertation. Both have inspired my work and provided guidance and feedback throughout this project. An equally great encouragement came from Elena Fimmel, who was a great support for my research. Markus Gumbel, who advised me on the analysis of the gene sequence also deserves my gratitude. I would also like to thank the whole COMMBIO team for their support. Without them the work would not have been successful. All the co-authors of the published papers I contributed to have supported me in my development and deserve to be mentioned in my acknowledgment. Additionally, I would like to thank the whole defense jury Alain Denise, Ellena Fimmel, Simone Giannerini, Chrisian Michel, Jean-Sébastien Sereni and Lutz Strüngmnn for their effort and support. Many thanks to all the proofreaders, Carolin Zorell and Sarah Willenbücher, whom I demanded a lot from. Thanks also to my parents who have always motivated and supported me. And finally, I would like to thank my beloved wife Julia, who always supported me despite my many hours in the home office. Only thanks to her tireless help as a proofreader and loving support I was able to finish this work.

Résumé de thèse

Codes circulaires dans l'évolution du code génétique

Le problème abordé dans cette thèse est de savoir comment retrouver, maintenir et synchroniser la phase de lecture pendant la traduction des gènes en protéines. L'approche développée relève des disciplines de l'informatique, de la combinatoire et des biomathématiques. La traduction est le processus par lequel le ribosome décode l'ARN messager (une séquence de nucléotides {A, C, G, T }) en trinucléotides (mots de 3 nucléotides ou codons) pour créer une séquence d'acides aminés constituant une protéine. L'ARN messager peut être décodé en trois phases 0, +1 et +2 mais uniquement la phase 0 (phase de lecture) initiée par un "start" codon (classiquement ATG) code les informations pour synthétiser les protéines. Un code (ensemble de mots) avec la propriété de circularité permet de retrouver la phase de lecture. Un code circulaire, nommé X, formé de 20 trinucléotides a été découvert en 1996 par une analyse statistique des gènes de différentes espèces [1]. Un code circulaire est un code de blocs défini de la façon suivante: toute concaténation de mots d'un code écrit sur un cycle a une décomposition unique, c'est-à-dire la décomposition en mots d'un code circulaire a une seule phase de lecture. Les avantages des codes génétiques circulaires sont très intéressantes. Même en l'absence d'un signal de départ ("start" codon), la phase de lecture peut être identifiée. De plus, cette phase de lecture peut être automatiquement retrouvée avec une fenêtre de quelques nucléotides et à une position quelconque dans la séquence [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF]. Le code circulaire X possède de fortes propriétés mathématiques. En particulier, X est (i) maximal, parce qu'il ne peut pas être contenu dans un code circulaire de cardinalité supérieure; (ii) auto-complémentaire, puisque tout trinucléotide dans X possède également son anticodon dans X; et (iii) C 3 , toutes les permutations circulaires de X sont également des codes circulaires maximaux. Il existe au total 216 codes circulaires maximaux, auto-complémentaires et C 3 [1] qui peuvent être divisés en 27 classes d'équivalence [START_REF] Fimmel | Circular codes, symmetries and transformations[END_REF]. Les codes comma-free (sans virgule) forment une variante plus restrictive des codes circulaires puisque la phase de lecture est retrouvée immédiatement après la lecture d'un seul mot du code. Les codes comma-free et circulaires sont représentés par des graphes orientés et étudiés avec la théorie des graphes [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF]. Un tel graphe présente un arc orienté entre tous les préfixes et suffixes des mots du code. Le graphe est défini de telle sorte que lorsqu'il est acyclique alors le code associé est circulaire. La longueur du plus long chemin dans ce graphe acyclique permet de classer les codes circulaires, par exemple un code comma-free possède dans son graphe un plus long chemin de longueur 2 au maximum.

La plupart des théories de l'évolution affirment que le code génétique moderne possède des codes ancestraux. Les codes circulaires et comma-free pourraient être impliqués dans l'évolution du code génétique [START_REF] Neveln | Comma-free and synchronizable codes[END_REF]1]. Certaines théories décrivent également un code génétique primitif constitué non seulement de trinucléotides, mais également de dinucléotides, de tétranucléotides ou des combinaisons de ceuxci [START_REF] Gonzalez | On the origin of the mitochondrial genetic code: Towards a unified mathematical framework for the management of genetic information[END_REF]3,[START_REF] Seligmann | Putative anticodons in mitochondrial trna sidearm loops: Pocketknife trnas?[END_REF][START_REF] Wilhelm | A new classification scheme of the genetic code[END_REF][START_REF] Patel | The triplet genetic code had a doublet predecessor[END_REF][START_REF] Wu | Evolution of the genetic triplet code via two types of doublet codons[END_REF]. Un code génétique ancestral basé sur un alphabet différent de {A, C, G, T } a été également proposé. Ces divers travaux nous ont conduit dans cette thèse à généraliser l'étude combinatoire des codes circulaires à des mots de longueur quelconque finie sur des alphabets finis quelconques [START_REF] Fimmel | Circular tessera codes in the evolution of the genetic code[END_REF][START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF].

Contributions

La première partie de la thèse étudie les propriétés fondamentales des différentes classes de codes circulaires d'un point de vue combinatoire, théorie des graphes et biomathématiques. Dans la deuxième partie de la thèse, un logiciel de recherche est développé permettant d'identifier des codes circulaires et leurs propriétés dans le code génétique.

Propriétés des codes circulaires

Le premier chapitre de la thèse comporte deux parties. La première partie fait référence à l'article publié [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF] et étudie les propriétés combinatoires des 216 circulaires maximaux, auto-complémentaires et C 3 . La deuxième partie analyse les codes circulaires généraux (sans propriété combinatoire additionnelle). Les questions abordées dans ce chapitre sont le nombre minimum de nucléotides pour retrouver la phase de lecture, les propriétés des codes auto-complémentaires et la taille maximale des codes circulaires pour des longueurs quelconques de mots et pour un alphabet quelconque.

De nouveaux résultats combinatoires sur les codes circulaires sont obtenus et publiés. Un résultat concerne la détermination du nombre minimal de lettres (nucléotides) d'un motif quelconque d'un code circulaire pour retrouver la phase de lecture. Ce nombre a été obtenu à partir du plus long chemin dans le graphe associé au code circulaire. Ainsi, il peut être utilisé comme une nouvelle propriété des codes circulaires. Nous caractérisons également en détail tous les motifs associés aux plus longs chemins dans les graphes pour les codes circulaires autocomplémentaires. Nous avons aussi réussi à classer tous les graphes associés aux codes auto-complémentaires de taille au moins 18 vérifiant certaines conditions C sur les sommets du graphe. Une construction combinatoire de codes non autocomplémentaires de taille inférieure à 18 a été également identifié lorsque le graphe associé satisfait aux conditions des codes auto-complémentaires. Cette construction a servi de contre-exemple pour la conjecture selon laquelle les conditions C dans un graphe obligent le code représenté, quelle que soit sa taille, à être autocomplémentaire. Il en résulte qu'un code d'une taille d'au moins 18 doit être auto-complémentaire si le graphe associé présente les conditions C.

La deuxième partie de ce chapitre propose un nouvel algorithme, facilement scriptable, pour calculer la taille maximale des codes circulaires pour toutes les longueurs de mots et pour tous les alphabets. Nous présentons ensuite un modèle mathématique permettant de transformer les codes circulaires en des codes circulaires comportant des mots de longueurs différentes. Enfin, nous donnons une méthode permettant de séparer les 60 trinucléotides (à l'exceptions des quatre trinucléotides périodiques AAA, CCC, GGG et TTT) en quatre codes comma-free (cf. également la proposition de [START_REF] Neveln | Comma-free and synchronizable codes[END_REF]).

Codes circulaires de Tessera

Le deuxième chapitre présente les codes circulaires de Tessera. La plupart des résultats ont été publiés dans l'article [START_REF] Fimmel | Circular tessera codes in the evolution of the genetic code[END_REF]. Les Tessera forment un sous-ensemble des tétranucléotides conduisant à une propriété de symétrie dans le code génétique [START_REF] Gonzalez | On the origin of degeneracy in the genetic code[END_REF]. Le code de Tessera pourrait être une étape possible dans le processus d'évolution du code génétique. Nous sommes intéressés à combiner la théorie du code Tessera et la théorie du code circulaire.

Nous montrons que les codes circulaires de Tessera peuvent être divisés en quatre classes d'équivalence. Les classes d'équivalence sont des orbites utilisant un groupe de quatre transformations de symétrie bijective. Chaque classe est représentée par une composante disjointe du graphe associé au code. Sur la base de ce résultat combinatoire, un algorithme est développé pour construire tous les codes de Tessera qui sont également circulaires. Plusieurs propriétés des codes de Tessera circulaires sont également identifiées. Les propriétés les plus importantes obtenues sont : (i) le graphe associé à un code auto-complémentaire est entièrement caractérisé par l'utilisation de conditions identifiables; et (ii) le chemin le plus long dans le graphe associé est soit de longueur 1, 2 ou 3. Nous présentons également une version améliorée de l'algorithme pour construire en une fois tous les codes pour chaque longueur de code possible. Une construction complète de tous les codes de Tessera circulaires est obtenue en utilisant la théorie des groupes et des méthodes avancées en théorie des graphes et combinatoire.

La relation entre k -circularité et circularité des codes

Le troisième chapitre de la thèse fait référence à l'article publié [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]. Nous y introduisons les codes k-circulaires (k étant un entier naturel), une nouvelle classe de codes de blocs. Les codes k-circulaires appartiennent à la famille des codes circulaires. Ils représentent une version faible des codes circulaires. Si un code circulaire peut retrouver la phase de lecture pour chaque mot écrit sur un cercle, un code k-circulaire nécessite une concaténation au maximum de k mots pour retrouver la phase de lecture. Par conséquent, une concaténation de k + 1 mots écrits sur un cercle pourrait être lue dans plusieurs phases (la phase de lecture n'est pas unique). Ainsi, un code k-circulaire n'est pas nécessairement (k + 1)circulaire mais est toujours (k -1)-circulaire. La classe des codes k-circulaires contient des codes circulaires et des codes comma-free comme sous-classes pour chaque k donné.

Pour déterminer si un code est circulaire, il faut vérifier si une concaténation de mots infinis d'un code écrit sur un cycle ne peut être décomposée en mots du code que dans une seule phase de lecture. En conséquence, un code est circulaire si et seulement si le code est ∞-circulaire. C'est a priori un problème indécidable. Pour rendre ce problème décidable, nous avons identifié un nombre 0 < k(n, ) < ∞ de telle sorte qu'un code n'est circulaire que s'il est k(n, )-circulaire, où n est le cardinal de l'alphabet et est la longueur des mots du code. Nous montrons également que la borne supérieure k(n, ) est stricte. Nous donnons également un algorithme de construction d'un code (k(n, )-1)-circulaire qui n'est pas circulaire pour tous les , n ∈ N.

Algorithmes et outils pour identifier les codes circulaires dans les séquences

Le dernier chapitre de cette thèse présente de nouvelles applications bioinformatiques en appliquant les résultats théoriques obtenus dans les chapitres précédents. Il est divisé en deux sections principales. La première section présente le logiciel de recherche GCATR et la deuxième section introduit de nouvelles méthodes pour identifier des circulaires dans les séquences d'ADN.

Le logiciel GCATR (Genetic Code Analysis Toolkit R) est un logiciel de recherche R qui comporte de nombreuses fonctionnalités pour analyser les codes circulaires. Le noyau écrit en C++ le rend performant. L'enveloppe R permet une utilisation facile. La thèse donne un aperçu de l'architecture utilisée, des algorithmes développés dans GCATR et des principales fonctionnalités de GCATR.

Dans la deuxième section, un algorithme hill-climbing est développé pour obtenir de nouvelles preuves de l'existence des codes circulaires dans le codage génétique. Il est appliqué sur un ensemble de gènes (CDS) choisi aléatoirement à partir d'espèces différentes. De manière étonnante, les résultats de l'algorithme hill-climbing montrent que les codes obtenus sont toujours des codes k-circulaires voire circulaires. De plus, ils ont une occurrence supérieure à la moyenne dans les gènes analysés, un indice supplémentaire d'une fonction biologique des codes circulaires dans le processus de codage des protéines.

Thesis abstract

The problem that this work addresses is how to retrieve, maintain and synchronize the correct reading frame during the translation process. Translation is the process by which the ribosome decodes the messenger RNA (mRNA a sequence of nucleotides {A, C, G, T }) as codons (words of 3 nucleotides) to create a specific amino acid chain that later folds into a protein. Unfortunately, the mRNA can be decoded in three reading frames 0, +1 and +2. Yet, only frame 0 as correct reading frame encodes the Information for the synthesis of proteins. Usually, the correct reading frame is indicated by a start signal. First practical evidence of a genetic model which is able to retrieve the correct reading frame is the so-called X-code. The X-code is a set of 20 codons that was discovered by a statistical analysis of genes of different species [1]. Concatenations of words of this code appear preferentially in genes in frame 0. Such a concatenation is called a motif. The proportion of the motifs found in genes compared to non-coding regions was significantly high. Astonishingly, it turned out that the X-code is a circular code. A circular code is a block code and defined so that a concatenation of words of a code written on a cycle can only be decomposed in words of the code in one reading frame. The advantages of circular genetic codes are incomparable: firstly, even without any kind of start signal the correct reading frame can be ensured. Secondly, the reading frame is automatically retrieved within a window of only a few nucleotides [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF].

The X-code also has strong mathematical properties. In detail, X is maximal as it cannot be contained in a circular code of higher cardinality, self-complementary since for any codon in X the responding anti codon is also in X and C 3 , i.e. all circular permutations of X are also maximal circular codes. In total there are 216 different maximal, self-complementary and C 3 codes. These 216 codes can be divided into 27 equivalence classes. These classes of codes have been studied by representing them by directed graphs and then applying deep graph theory [START_REF] Fimmel | Circular codes, symmetries and transformations[END_REF]. Block codes which are closely related to the circular codes are the comma-free codes. These codes are a more restrictive variant of circular codes in which the reading frame is found immediately after only one word. Both kinds of codes can be represented in a directed graph. Such a graph has a directed arc between all prefixes and concatenated suffixes of all words of the represented code. The graph is defined so that if it is acyclic, the represented code must be circular. Moreover, if the graph is acyclic and its longest path has a length of two at the most, the code is even comma-free [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF].

Circular codes are also supposed to play a role in an evolutionary context. Most theories of evolution state that the modern genetic code has several ancestors. It has been proposed that circular and comma-free codes could be a selection factor that guides the search for these hypothetical ancestor code [START_REF] Neveln | Comma-free and synchronizable codes[END_REF], [1]. Some of these theories describe an evolutionary ancestor to the modern genetic code that consisted not only of trinucleotides, but also of dinucleotides, tetranucleotides or combinations of them (see [START_REF] Gonzalez | On the origin of the mitochondrial genetic code: Towards a unified mathematical framework for the management of genetic information[END_REF]3,[START_REF] Seligmann | Putative anticodons in mitochondrial trna sidearm loops: Pocketknife trnas?[END_REF][START_REF] Patel | The triplet genetic code had a doublet predecessor[END_REF][START_REF] Wilhelm | A new classification scheme of the genetic code[END_REF][START_REF] Wu | Evolution of the genetic triplet code via two types of doublet codons[END_REF]). Even a hypothesized ancestor code with a different alphabet has been proposed. This initiated the study of circular codes in a more general context with words of arbitrary finite length over general alphabets [START_REF] Fimmel | Circular tessera codes in the evolution of the genetic code[END_REF][START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF] and relates the theory of circular codes to signal processing and general information theory.

Contribution

The statistical evidence shows the existence of a circular code-related model in RNA and DNA sequences. Thus, the foremost objective of this thesis is the expansion of the knowledge of circular codes. The first part of the thesis investigates fundamental properties of the circular code family from a mathematical biology perspective. In the second part a software package is developed, and the properties are used in algorithms to refine the identification of such codes in the genetic code.

Properties of circular codes

The first chapter of the thesis contains two sections. The first section is referring to the published article [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF] and uses the codes which are elaborated by extracting data from genes. Most results in this section describe the properties of the 216 maximal self-complementary C 3 codes. The second section uses a more general focus on circular codes. The issues in focus of this chapter is the minimum number of nucleotides to ensure the correct reading frame, the properties of self-complementary codes and the maximum size of circular codes of different word length and alphabet. One of the most important findings is the reading frame number. This number indicates the minimum length (number of nucleotides) of a code motif to ensure the correct reading frame. In addition, we have succeeded in deriving the reading frame number from the longest path in the associated graph. Hence, it can be used as an effortless calculable quality feature of codes. In more detail we characterize all possible patterns of longest paths in self-complementary circular codes. Furthermore, we were able to fully classify all graphs associated with a selfcomplementary code of size at least 18 using recognizable conditions. We also discovered a combinatorical construction of not self-complementary codes of size less than 18 where the associated graph satisfies the conditions of self-complementary codes. This served as a counterexample for the conjecture that these conditions in a graph force the represented code of any size to be self-complementary. The result that a code with a size of at least 18 must be self-complementary if the associated graph has the recognisable conditions is new and has not yet been published. The second section of this chapter is also unpublished. This section starts with an improved and easily scriptable algorithm to calculate the maximum size of circular codes for all word lengths and alphabets. Next, it illustrates a mathematical model to transform circular codes into circular codes of different word length and/or alphabet. A similar model could have had an influence on the evolution of the hypothetical ancestor code. Finally, it also depicts a method to separate the 60 codons (excluding the four identity codons AAA, CCC, ...) in four so called comma-free subsets. These can be used to support the proposal in [START_REF] Neveln | Comma-free and synchronizable codes[END_REF].

Circular Tessera codes

The second chapter presents circular Tessera codes. Most results were published in article [START_REF] Fimmel | Circular tessera codes in the evolution of the genetic code[END_REF]. The Tesserae are a subset of tetranucleotides. These specified tetranucleotides have been developed to situate the symmetry as a code property in the evolution of the genetic code. The model presented by Gonzalez, Giannerini and Rosa [START_REF] Gonzalez | On the origin of degeneracy in the genetic code[END_REF] supports the theory that the Tessera code is one possible step in the evolutionary process of the genetic code. Therefore, a combination of the Tessera code theory and the circular code theory could be an evidence for each theory and explain their role in RNA sequences.

In this thesis it is shown that circular Tessera codes can be divided into four equivalence classes. The equivalence classes are orbits using a group of four bijective symmetry transformations. Each class is represented by a disjoint component of the representing graph. Based on this discovery, an algorithm is presented that constructs all possible circular Tessera codes. With this algorithm several properties of circular Tessera codes can be identified. The most important properties that are obtained are (A) that the graph associated with a self-complementary code is fully characterized by the use of recognizable conditions and (B) that the longest path in an associated graph is either 1, 2 or 3. In this chapter we also show a refined version of the algorithm, which allows to construct all codes exactly once for every possible code length. This unpublished algorithm describes a full construction of all circular Tessera codes using group theory and advanced methods of graph theory and combinatorics.

The relation between k -circularity and circularity of codes

The third chapter of the thesis refers to the published article [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]. There we introduce the k-circular codes, a new class of block codes. k-circular codes belong to the circular code family. Like the circular codes, such a code is a frame shift error detecting code and consists exclusively of words of block length . It is a weakened version of the circular code. If a circular code can find the correct reading frame in every word written on a circle, a k-circular code requires a concatenation of a maximum of k words to reliably ensure the reading frame. Therefore, a concatenation of k + 1 words written on a circle could be read in more than one reading frame. Thus, a k-circular code does not have to be k + 1-circular but must be k -1-circular. The class of k-circular codes contains both circular and comma-free codes as subclasses for every given k.

To say whether a code is circular, one needs to check if any concatenation of infinite words of a code written on a cycle can only be decomposed in words of the code in one reading frame. Consequently, a code is circular if, and only if it is a ∞-circular code. This makes it an undecidable problem. To make this problem decidable, we were able to identify a number 0 < k(n, ) < ∞, so that a code is only circular if it is k(n, )-circular, where n is the cardinal number of the alphabet and is the word length of the code. We also show that the upper bound k(n, ) is sharp. Hence, we demonstrate a construction algorithm for a k(n, ) -1-circular code which is not circular for all , n ∈ N. This proves the sharpness of k(n, ). In conclusion, this tremendously reduces the combinatorial complexity to check if a code is circular.

Algorithms and tools to identify codes in Sequences

The final chapter of this thesis presents practical applications of the theoretical results obtained in the previous chapters and is entirely new. It is separated into two main sections. The first section presents a software package GCATR, which is an implementation of all important tools and methods that support the investigation of theories in genetic data. The aim of the second section is to introduce new methods for detecting error-detecting codes in DNA sequences.

The software GCATR (Genetic Code Analysis Toolkit R) is an R package which includes all important functions to work with circular codes and their relatives. The core is written in C++, which makes it highly performant. The R wrapper further allows an easy usage. Even the development of parallel algorithms can be achieved easily with the R native commands. The thesis gives a short overview of the used architecture and the developed algorithms in GCATR. Finally, it summarises the functionalities of the package.

In the second section, two methods to obtain new evidence of circular codes in genetic coding are introduced. The methods are theoretical models of a possible reading frame detection in the ribosome using a new approach different from circular code theory. In order to optimise the retrieved code with respect to the methods, a hillclimber algorithm is used. As data, a randomly generated sample set of coding sequences (CDS) of different species is used. Surprisingly, the results of the hillclimber indicate that the returned codes are always either k-circular or even circular codes. Moreover, the codes obtained have a coverage above average in the tested sequences -a hint to a possible role that they might play in the protein coding process.

The thesis finally closes with a discussion of the reliability of the evidence of circular codes in the evolutionary process of the genetic code.

Chapter 1 Introduction

"We understand biological phenomena only when we have invented machines with similar properties" → Maynard Smith, 1986 Almost 35 years later, Maynard Smith's words continue to be an inspiration for researchers worldwide. In the same spirit, this thesis focuses on the construction of parts of a machine to promote our understanding of the evolution of the genetic information system. It is the general opinion among researchers working on the evolution of the genetic code that such an efficient system cannot have appeared spontaneously. It can be approximated that a cell contains 978 million base pairs per picograms, i.e. 0.489 gigabyte of heritage information [START_REF] Dolezel | Nuclear DNA content and genome size of trout and human[END_REF]. Such a tight system must be perfectly organized. This leads to the assumption that an error-correcting code evolved as a subcode inside in the genetic code during the course of evolution. This new potential guidance factor of the evolution has already led to landmark studies. Biomathematicians as well as computer scientists have advanced the knowledge about such error-correcting codes and their appearance in the genetic code. In this dissertation, we follow theories of error-correcting codes in the evolution and find mathematical answer to important questions regarding such codes, which had remained open so far. Before presenting the developed components of a mathematical model that reconstructs the development of a hypothetical block code based system, the introductory chapter provides an overview of the biological motivation and mathematical tools used in the research on which this thesis is based on.

This chapter is separated into two sections. The first Section 1.1 summarizes the biological foundation of this thesis, i.e. the structure of cells, the process of protein synthesis and the most plausible evolutionary theories currently considered by scientists. The fundamental basics can be found in the book [START_REF] Löffler | Basiswissen Biochemie mit Pathobiochemie[END_REF]. The second Section 1.2 introduces codes as mathematical construct. After a general definition of codes, circular codes and their relatives are specified. In addition, methods from group theory and graph theory are presented that are used to investigate circular codes from a mathematical point of view. The chapter closes with the presentation of the X-code, i.e. the link between code theory and genetic information processing.

Biological motivation

The complexity of the mechanism behind the inheritance of genetic information is an evolutionary masterpiece, which is continuously progressing. It is impossible to determine the stage of development we are currently at. Even the process of evolution up to the present day, the question of the origin of life is controversially discussed. There is, however, consensus on the time life on earth began: About 4.2 billion years ago [4] the first cells were the origin of all life. Based on today's idea of evolution, it must be assumed that the cells have been vastly advancing ever since. Thus, the first cells, the common ancestor of all life, must have had very primitive and simple genetic information storage, whereas today's cells have the ability to store a tremendous amount of information. Presently, there are three known forms of life: archaea, bacteria and eukaryotes. They are grouped into two different types of cells: prokaryotic and eukaryotic cells. The prokaryotic cell occurs in all living organisms under the domains archaeae and bacteria, while all organisms grouped as eukaryotes, including human beings, have eukaryotic cells. One representative of each cell type is illustrated in Figure 1.1. While the prokaryotic cells have a cyclic DNA the eukaryotic cells have a non-cyclic DNA organized in chromosomes. The chromosomes are separated from the rest of the cell in the nucleus. In comparison, in prokaryotic cells, DNA is not separated from the rest of the cell. Another difference between these two types of cells is that only in the eukaryotic cell the mRNA is preprocessed before being sent to the ribosome. Even though prokaryotic and eukaryotic cells differ in various aspects we will focus on the similarities. Both cell types have a DNA double helix. This basic element of genetic information storage is made of two strands winding around each other. Another common feature is the messenger RNA (mRNA), which is the result of the process called transcription. This mRNA transports the genetic information, gathered from the DNA during the transcription, to the ribosome. The ribosome then runs the translation. Translation is the process during which the ribosome decodes the mRNA to create a specific amino acid or polypeptide chain that later folds into a protein. The pre-translation mRNA processing ignored, eukaryotic and prokaryotic cells share the main aspects of the information processing system. The complexity of such a system is impressive, especially acknowledging the fact that it was developed in the process of evolution.Here it must be assumed that we have not yet reached the evolutionary peak. In order to assess the potential future cell structure, understanding past developments is key. Fortunately, we may be in the position to reconstruct the past 4.2 billion years of evolution of the living cell. This is due to the fact that there are two different types of cells in three different domains of life to compare with each other, and we know that they must have a common ancestor. Before going deeper into the foundations of the evolution of life, it is necessary to understand the current knowledge of molecular biology about genetic information. 1

RNA and DNA

The "double helix" has become known all over the world ever since James Watson published his famous book "The Double Helix: A Personal Account of the Discovery of the Structure of DNA" in the year 1968. The double helix consists of two polynucleotide chains that coil around each other. These chains contain monomeric molecules (monomeric molecules can chain with other monomeric molecules). These molecules are called nucleotides and are built from a sugar, a phosphate group and, as an information-coding-unit, one of four nucleobases: adenine (A), guanine (G), cytosine (C ) or thymine (T ). The two strands in the double helix are connected by hydrogen bonds between so-called complementary nucleobases. Where A is complementary to T and C is the complement of G. These same hydrogen bonds are also used during the process of transcription, when the messenger RNA copies and transforms the information of the DNA. While DNA consists of two strands, RNA is a single stranded structure of monomeric molecules. Similar to DNA, the molecules in RNA are called nucleotides, with a sugar-phosphate backbone and a nucleobase used as the information-coding-unit. The nucleobases in RNA molecules are: adenine (A), guanine (G), cytosine (C ) or uracil (U ). The complementary mapping of the nucleobases needs to be slightly updated when the RNA enters the picture. Then, A is complementary to U as well as T. Both DNA and RNA sequences have two ends, one is called the 5'-end and the other one is called the 3'-end. For the purposes of this Thesis it is only important to know that the reading direction of the sequences is from the 5'-end to the 3'-end. Figure 1.2 illustrates a comparison of RNA and DNA. There are different types of RNA with different tasks. Among these types of RNA, three are present in any living cells: tRNA, rRNA and mRNA. The tRNA (transfer RNA) provides the amino acids for synthesizing proteins. The rRNA is one of the central parts of the ribosome. The mRNA is constructed during the process of transcription and transports the genetic information from the DNA to the ribosome. During the transcription, one snippet of a DNA sequence is prepared for the protein synthesis. This snippet is called a protein coding gene. Such protein coding genes are sections in the DNA which hold the information to construct proteins. These genes are the basic model of the genetic information. After the mRNA is constructed from the protein coding genes, the information is transported to the ribosomal protein factories. In the ribosomes, the translation starts the protein synthesis. Table 1.1 summarizes the structure of DNA and RNA. The next section explains the process of translation in more detail.

DNA RNA Sugar deoxyribose ribose Bases Adenine (A) Adenine (A) Thymine (T ) Uracil (U ) Guanine (G) Guanine (G) Cytosine (C ) Cytosine (C ) Complementary A ↔ T A ↔ U Base Pairs C ↔ G C ↔ G Structure two strands, arranged in a double helix single strand
Function DNA replicates and stores genetic information.

Among other things, the RNA transports genetic information to ribosomal protein factories.

Translation and protein synthesis

During the translation, the ribosome translates the mRNA into specific polypeptide chains. These polypeptide chains then fold into proteins which regulate and control the main purpose of the cell itself. In contrast to prokaryotic cells, eukaryotic cells require the mRNA to be processed before being translated. This is called mRNA processing.

Pre-translational mRNA processing

The mRNA which is the immediate result of the transcription is called pre-mRNA.

In eukaryiotic cells, this pre-mRNA needs to be processed before it can be translated by the ribosomes. The mechanism of mRNA processing is a composition of three steps, all of which are needed to convert the pre-mRNA into mature mRNA. The three steps include 5' Capping, polyadenylation and splicing and is illustrated in Figure 1.3.

5' Capping

Capping describes the addition of a cap to the 5' end of mRNA. The cap stabilizes the immature pre-mRNA and allows the ribosomes to recognize the mature mRNA as such.

Polyadenylation To further stabilize the unstable pre-mRNA a poly(A) tail, i.e. a tail consisting of numerous Adenosin bases, is added to the 3' end of mRNA.

Splicing Slicing separates pre-mRNA into introns and extrons. Introns are noncoding sequences which do not appear in the mature mRNA, while exons are coding sequences which compose the mRNA. One pre-mRNA can code numerous proteins by separate splicing processes in which different overlapping extrons are used. (see Figure 1.3)

To build the polypeptide chain encoded in an mRNA, the ribosome reads the mRNA with three nucleotides at a time. This combination of three nucleotides is called a codon. The reading is implemented by docking suitable tRNA (transfer RNA) anti-codons to the mRNA codons. An anti-codon consists of complementary nucleotides in reversed order. Usually, tRNA is illustrated with three hairpin loops, the D loop, the T loop and the anti-codon loop. Its actual 3D shape is best described as a distinctive L-shape. The entire process is depicted in a simplified model in Figure 1.5. It also shows the L-shape of the tRNA and the composition of the polypeptide chain.

The process of translation is bounded by a number of rules. These rules apply to almost all living beings. Each translation is initiated by a starting signal. The starting signal marks the position in the mRNA where the ribosome has to begin with the encoding process. The most common start codon is ATG. The translation ends with a so-called stop codon. In the standard genetic code (SGC), they are: TAA, TAG and TGA. The SGC is a translation table used to translate codons into amino acids. Even though there are 33 other coding tables besides the SGC, they all differ only slightly from the SGC and have few other codon-to-amino acid translations2 . However, some of them do not contain a codon that exclusively encodes for the stop signal. The standard genetic code will be described in more detail in the following section.

Standard genetic code (SGC)

Almost all living cells use the standard genetic code for the protein synthesis. With the first discovery of the translation of the codon TTT in 1961 by Marshall Nirenberg and Heinrich Matthaei, the encoding of the SGC was imminent [START_REF] Nirenberg | The dependence of cell-free protein synthesis in E. coli upon naturally occurring or synthetic polyribonucleotides[END_REF]. In 1966, almost 5 years later, the entire SGC was encoded. The SGC is a set of rules which serves as a translation table to map the 64 ( 4 One of the most significant features of the SGC is its degeneration. In this context, degeneration denotes the fact that some amino acids are encoded by more than one codon. For instance the amino acid Ala (Alanine) is encoded by GCT, GCC, GCA and GCG. Similar to Ala, the amino acids Gly (Glycine), Pro (Proline), Thr (Threonine) and Val (Valine) are encoded by four codons. Consequently, all of these amino acids have a degeneracy of four. A closer observation of the codons coding for one of the four amino acids reveals that the first two bases are the same for each of them. For example, all codons starting with the two bases GC code for the amino acid Ala. This is a mechanism to improve the translation error robustness. Hence, a point mutation of the last base has no influence on the encoded amino acid. Table 1.2 lists all amino acids and their degeneration. The last column of the table with the header Compressed shows the range of point mutations for each amino acid which has no effect on the coding. 90% of the amino acids are encoded by at least two codons. Three amino acids Arg (Arginine), Leu (Leucine) and Ser (Serine) even have a degeneracy of six. It is impressive that none of the redundant coding is wasted, in so far that for each codon that codes for an amino acid with a degeneration greater than one there is at least one codon with two common bases that codes for the same amino acid. The origin and purpose of this property is one of the most controversially discussed questions in the evolution of the genetic code, which will be outlined in the following subchapter. In the so-called common descent theories, which is currently assessed by the academic community as the most plausible theory, it is postulated that all living beings can be traced back to one common ancestor code [START_REF] Forterre | Luca : À la recherche du plus proche ancêtre commun universel[END_REF]. The code in which the branches of the evolutionary tree separate is referred to as LUCA (last common ancestor code), while a pre-LUCA genetic code is referred to as primitive genetic code [START_REF] Watanabe | How the early genetic code was established?: Inference from the analysis of extant animal mitochondrial decoding systems[END_REF][START_REF] Koonin | Origin and evolution of the genetic code: the universal enigma[END_REF]. The translation mechanisms of the ordinary cells from which modern life arose are comparable to those of modern cells but far more primitive. Nevertheless, the LUCA cells, which represented an important milestone in evolution, already had a complex protein synthesis system. It is the general consensus of researchers that such a system as LUCA cannot arise spontaneously. Consequently, it can be assumed that LUCA is just one of many steps in the evolution of the genetic code.

In contrast to the common knowledge at that time, in 1968, Crick published [11] the frozen accident theory which states that the genetic code was generated by chance and has remained frozen ever since. According to this theory, a change in the code would be harmful to its functionality and its conservation would have to be the aim of nature. Based on this scenario, Crick added the theory that the early code system is based on RNA only. However, this has been refuted by the fact that RNA cannot carry out these tasks [6]. New approaches as in the article [START_REF] Chatterjee | The Origin of Prebiotic Information System in the Peptide/RNA World: A Simulation Model of the Evolution of Translation and the Genetic Code[END_REF][START_REF] Piette | A Peptide-Nucleic Acid Replicator Origin for Life[END_REF] adopted Crick's theory of an RNA based code system and state that: "A molecular replicator with two components -RNA and peptide -overcomes these problems and may be a better fit." [START_REF] Piette | A Peptide-Nucleic Acid Replicator Origin for Life[END_REF].

Apart from the frozen accident theory, other theories claim to explain the origin of the genetic code. The most common ones are: the stereochemical theory [START_REF] Pelc | Stereochemical relationship between coding triplets and amino-acids[END_REF][START_REF] Yarus | The genetic code and rna-amino acid affinities[END_REF], the adaptive theory [START_REF] Woese | Order in the genetic code[END_REF][START_REF] Freeland | The genetic code is one in a million[END_REF] and the coevolution theory [START_REF] Wong | A co-evolution theory of the genetic code[END_REF]. These theories are briefly outlined in the following paragraphs.

The stereochemical theory claims that there is a stereochemical attraction between codons or rather anti-codons and their assigned amino acids [START_REF] Pelc | Stereochemical relationship between coding triplets and amino-acids[END_REF][START_REF] Yarus | The genetic code and rna-amino acid affinities[END_REF]. In comparison to this theory, the coevolution theory focuses on the idea that the amino acids advanced biosynthetically from a set of precursor amino acids. This set of precursor amino acids goes back to Crick's article [11] and was according to the theory initially coded while the rest evolved through biosynthetic pathways [START_REF] Wong | A co-evolution theory of the genetic code[END_REF]. A characterization of the precursor amino acids by Higgs in the article [START_REF] Higgs | A four-column theory for the origin of the genetic code: tracing the evolutionary pathways that gave rise to an optimized code[END_REF] suggests that the amino acids Gly, Ala, Asp, Glu and Val were the first amino acids in the polypeptide coding. These precursor amino acids consist exclusively of the amino acids encoded by a code with a leading base G. In Higgs hypercritical evolution, the code evolved from a four column code where all codons in one column encode for the same amino acid: NUN = Val, NCN = Ala, NAN = Asp and/or Glu, and NGN = Gly.

The adaptive theory is derived from the degeneracy of the SGC. It postulates that evolution aimed to obtain a code that minimizes errors through mutations [START_REF] Woese | Order in the genetic code[END_REF][START_REF] Freeland | The genetic code is one in a million[END_REF]. According to the article [START_REF] Novozhilov | Evolution of the genetic code: partial optimization of a random code for robustness to translation error in a rugged fitness landscape[END_REF], the standard code is the result of a partial optimization of a random code for robustness against translation errors. The authors interpret their results as such that the compromise between the increasing robustness against translation errors and the extension of the coding table could be the reason for the code not being fully optimized. They also found that the evolution of the code can, thus, be represented as a combination of adaptation and frozen accident.

Although all four models attempt to explain the evolution of the genetic code from different perspectives, it is likely that they all play a crucial role in the evolution of the genetic code. A rather less controversial theory is that life based on LUCA dates back 650 million years. This is due to the identification of 6331 groups of genes common to all living creatures. Hence, e.g. 55% of human proteincoding genes belong to gene groups that were present in the hypothetical first animals [START_REF] Theobald | A formal test of the theory of universal common ancestry[END_REF][START_REF] Paps | Reconstruction of the ancestral metazoan genome reveals an increase in genomic novelty[END_REF].

Code theory

The degeneracy of the SGC (standard genetic code) is the foundation of the adaptive theory. In addition to this feature, which guarantees a certain robustness against mutation errors during translation, the theory of the existence of a block code in genetic sequences was inspired by Watson and Crick when they published their article in 1957 [12]. This new branch of mathematical biology elaborates on the idea that a block code, i.e. codes consisting of words of a fixed length over an arbitrarily finite alphabet, assists the ribosome to avoid reading errors. In their work, Watson and Crick suggest that a comma-free code would ensure reading in the correct frame, i.e. a code which can be read only in the correct frame without a separating symbol like a comma or white space. This idea was further enhanced by the discovery of Golomb et al. in 1958 that a comma-free code over an alphabet of four letters with a word length of three has a maximum size of 20 elements [START_REF] Golomb | Construction and properties of comma-free codes[END_REF] which is exactly the number of amino acids used for the protein synthesis. Although these facts supported the comma-free hypothesis, the codon TTT which was excluded from the comma-free codes was found in coding sequences in 1961, thus, disproving the hypothesis [START_REF] Nirenberg | The dependence of cell-free protein synthesis in E. coli upon naturally occurring or synthetic polyribonucleotides[END_REF]. Even if the comma-free codes do not correspond to the modern SGC anymore, they could be a step in the evolutionary process+ [START_REF] Neveln | Comma-free and synchronizable codes[END_REF]. This hypothetical model is supported by new evidence of a circular code: a weakened version of comma-free codes which might still have influence on the translation process [1,[START_REF] Michel | Identification of all trinucleotide circular codes[END_REF][START_REF] Michel | Circular code motifs in transfer and 16sribosomal rnas: a possible translation code in genes[END_REF][START_REF] Michel | Circular code motifs in transfer rnas[END_REF][START_REF] Soufi | Circular code motifs in genomes of eukaryotes[END_REF][START_REF] Michel | The maximal c 3 self-complementary trinucleotide circular code x in genes of bacteria, archaea, eukaryotes, plasmids and viruses[END_REF]. In the subsequent section, the mathematical basics of block codes with a main focus on circular codes and comma-free codes are summarized. Additionally, new mathematical methods from graph theory and group theory to work with these block codes are presented3 .

Definitions and notations

The following section summarizes the mathematical definitions and notations used in this thesis. In addition to this section, we provide a list of the most important notations and operators at the end of the thesis.

The notation X ⊂ Σ defines a code X which is a subset of the set of all -letter words over the alphabet Σ. We define Σ to be an alphabet of cardinality of at least 2. The cardinality |Σ| of Σ is denoted as n := |Σ|. For the set of all finite words with letters in Σ, we use the standard word-theory notation Σ * .The Set Σ * also includes the empty word denoted as . The set of all finite words with letters in Σ without the empty word is denoted as Σ + . Hence, Σ ⊂ Σ + ⊂ Σ * for any finite ∈ N. As above the reversing permutation is defined so that:

← - X := { ← - w 1 , ← - w 2 , . . . , ← - w x }.
Another permutation used in this thesis is the circular permutation. Let w = b 1 . . . b ∈ Σ be a word for some ∈ N. Then for every j ∈ {0, . . . , -1}, the circular j-permutation (denoted as α j (w)) of w is the word b j+1 . . . b b 1 . . . b j . α j (w) := b j+1 . . . b b 1 . . . b j (In particular, the circular 0-permutation of w is w itself.) A word w is a circular permutation of w if w is the circular j-permutation of w for some j ∈ {0, . . . , -1}.

We denote α j (w) as the circular j-permutation of the word w. α j (•) is defined so that for a code X = {w 1 , . . . , w x } of size x the following holds: α j (X ) = {α j (w 1 ), . . . , α j (w x )} Next, we briefly explain the Cartesian product. Let A = {00, 11} and B = {01, 10} be simple binary codes of size two. Then A×B := {0010, 0001, 1110, 1101} is a new set of words, where each word is a concatenation of a and b, where a ∈ A and b ∈ B. To denote the x-ary Cartesian power of a code X , we use the word theory standard X x , i.e. X x is the Cartesian product of X × X × • • • × X .

Finally, we introduce the principles of group theory. A group is a tuple (G, •) where G is a set and • is a binary operator. If a tuple (G, •) is qualified as a group, then the following must hold:

• For any a, b ∈ G the combination a • b ∈ G.
• There must be an identity element e ∈ G so that for each a ∈ G it follows that e • a = a • e = a.

• For any a ∈ G the inverse a -1 • b ∈ G so that a • a -1 = e.
• The group must be associativity, i.e. for any a, b, c ∈ G, (a

• b) • c = a • (b • c)
More specific definitions will be introduced in the subsequent sections. In the next section, we introduce the natural properties of codes.

What is a code?

The Cambridge dictionary explains a code in the following words: "a system of words, letters, or signs used to represent a message in secret form, or a system of numbers, letters, or signals used to represent something in a shorter or more convenient form" → [START_REF]Dictionary cambridge: Codes[END_REF] In more mathematical terms, a code is a set of (code)words so that if an arbitrary message is coded by these (code)words it must be uniquely decodable into the original message. Different codes for different problems have been developed over the time. Some codes have the purpose to hide the coded message, others serve as an adapter between two receivers. Famous representatives of these codes are the Enigma, an encryption device which was used during World War II [START_REF] Leeuw | The history of information security: a comprehensive handbook[END_REF], and computer languages that translate human-readable code into binary commands that can be executed (i.e. are understood) by machines. Another domain of codes was developed to maintain and secure the integrity of a message for the receiver. These error-detecting codes are the key tool of this thesis. This thesis aims to bring forward using codes as tool to understanding and thereby, possibly explaining the error robustness in the genetic translation. Definition 1 introduces a formal mathematical definition of codes. Definition 1. Let Σ be a finite alphabet and X ⊆ Σ for some ∈ N.

• For w ∈ Σ * , an X -decomposition of w is a word w 1 • • • w r ∈ X r with r ∈ N such that w = w 1 • w 2 • • • w r .
• A set X ⊆ Σ * is a code if each word w ∈ X j has a single X -decomposition for any j ≥ 2 ∈ N.

• For an integer ≥ 2, an -letter code is a block code contained in Σ .

The following section introduces circular codes. These error-detecting codes belong to the block codes and allow to retrieve the correct reading-frame in a message. Three examples of a code and two non-codes are given below.

Example 1.1. Let X 2 = {10, 01, 1101} be a set of binary words. All sequence of composed words in X 2 are uniquely decodable. Hence, X 2 is code.

Example 1.2. Let X 1 = {10, 01, 1001} be a set of binary words. Then, the sequence 1001 = 10 • 01 is not uniquely decodable. Hence, X 1 is not a code Example 1.3. Let L ⊂ {A -Z, a -z} + be the English language and X 3 ⊂ L so that X 3 = {counter, clock, wise}. If L was a code then X 3 3 ∩ L = ∅. Yet, the word counterclockwise is in X 3 3 and L. Therefore X 3 is a code, but L is not4 .

Circular codes

Error-correction codes like circular codes belong to the block code family. Although not all circular codes are block codes, we use them exclusively as such. Block codes are codes which encode data in blocks or words of equal length. This is similar to the process of RNA translation. This leads to assume that block codes play a role in the translation process of trinucleotides. Another argument supporting this hypothesis relates to the main feature of circular codes: the frameshift retrieval.

A frameshift describes a reading error of a sequence where you slide from one reading-frame (see Figure 1.8) to another reading-frame, e.g. by skipping a letter.

It addresses an open question of the processing of genetic information. Before presenting the biological application of circular codes, we define these codes and explain how they operate in the following. A circular code is defined so that any concatenation of words of the code written on a cycle can only be decomposed into words of the code in one reading-frame. Let X = {T GA, GGT, GCC} ⊂ B 3 be a trinucleotide circular code. Since X is circular, any concatenation of the three words can only be decomposed into these three words in one reading-frame. To demonstrate this, the Figure 1.9 illustrates the decomposition of the sequence TGAGGTGCC written on a cycle. While the three words in the 0 frame are in the code X , the words in the +1 frame and the words in the +2 frame are not in X . The next example presents a sequence of words in the trinucleotide code X = {T GA, CGC, GCG} ⊂ B 3 , which is a non-circular code. The proof is illustrated in Figure 1.10. It is shown that the sequence GCGCGC written on a cycle is decomposed in all three frames into words of X . In the following, we provide a formal definition of the circular codes. This definition uses the X -decomposition definition which is defined in Definition 1 of a code. Definition 2. Let X ⊆ Σ be an -letter code.

• Let m be a positive integer and let w 1 . . . w m ∈ X m . A circular X -decomposition of the concatenation w := w 1 • • • w m is an X -decomposition of a circular permutation of α j (w) for some j ∈ {1, . . . , m -1}.

• The code X is circular if for every m ∈ N and every word w := w 1 . . . w m ∈ X m , the w admits a unique circular X -decomposition.

Next, we proceed with the definition of circular permutation classes. These definitions use the group theory which was introduced in section 1.2.1.

Permutation groups

Let us first denote the symmetry group (S , •) where is a positive integer. This symmetry group S acts on the indices of the -letter words from Σ . The group (S , •) is endowed with the group operation of composition. The set of permutations is formally defined as:

S := {g : (1, 2, . . . , ) → (1, 2, . . . , ) : g is bijective}
Each g ∈ S is predefined and permutes the letters in an -letter word. For instance, let = 3, then

b 3 ∈ Σ 3 , it follows that g(b 1 b 2 b 3 ) = b 3 b 2 b 1 .
One important subgroup A of S is called the circular permutations group A ⊂ S . It is defined as follows. Let Σ be a set of all -letter words under an alphabet Σ. Further, we denote (A , •) to be the circular permutations group. Where A := {α 0 := (1, 2, . . . , ), α 1 := (2, . . . , , 1), . . . , α -1 := ( , 1, 2, . . . , -1)} and • denotes the composition of permutations. Be α 0 (•) the identity element. Then, A is a group acting on Σ :

α : A × Σ → Σ
Next we formally define the circular permutations classes by the means of A . Definition 3. Let be a positive integer and Σ ⊂ S be a set of all words under an alphabet Σ. All words in Σ can be separated into so-called circular permutation classes by the means of A . We define a circular permutation class as an orbit of A acting on a word w ∈ Σ .

A • w := {α(w) | α ∈ A }
The maximum size of an orbit, and therefore a circular permutation class, is equal to the cardinality of A which is . Hence, we donate a circular permutation class that has members as a complete circular permutation class. The other circular permutation classes are denoted as incomplete circular permutation classes.

Next, we provide an example for Definition 3. In Example 3.1 we demonstrate one circular permutation class of a 3-letter word over an arbitrary alphabet.

{b 1 b 2 b 3 , b 2 b 3 b 1 , b 3 b 1 b 2 } = {α(b 1 b 2 b 3 ) | α ∈ A }
The set of trinucleotide words can be classified into 20 complete circular permutation classes and four incomplete circular permutation classes. Next, we list all complete circular trinucleotide permutation classes: {AAC, ACA, CAA}, {AAG, AGA, GAA}, {AAT, ATA, TAA}, {ACC, CCA, CAC}, {ACG, CGA, GAC}, {ACT, CTA, TAC}, {AGC, GCA, CAG}, {AGG, GGA, GAG}, {AGT, GTA, TAG}, {ATC, TCA, CAT}, {ATG, TGA, GAT}, {ATT, TTA, TAT}, {CCG, CGC, GCC}, {CCT, CTC, TCC}, {CGG, GGC, GCG}, {CGT, GTC, TCG}, {CTG, TGC, GCT}, {CTT, TTC, TCT}, {GGT, GTG, TGG}, {GTT, TTG, TGT}. and all trinucleotide incomplete circular permutation classes:

{AAA}, {TTT},{CCC},{GGG}.

Every word w in an incomplete circular permutation class is characterized by the condition that there must be at least one α ∈ A so that α(w) = w. Thus, if a code contains such a word, it cannot be circular.

Figure 1.11 shows how the circular trinucleotide code retrieves the readingframe in an RNA sequence.

Frame 0: ATG … G G T A A T T A C G A G T A C A C C … TAA Frame 1: ATG … G G T A A T T A C G A G T A C A C C … TAA Frame 2: ATG … G G T A A T T A C G A G T A C A C C … TAA

Figure 1.11: Readingframe retrieval in genes with a trinucleotide circular code X = {AAC, AAT, ACC, ATC, ATT, CAG, CTC, CTG, GAA, GAC, GAG, GAT, GCC, GGC, GGT, GTA, GTC, GTT, TAC, TTC } identified in genes. A frameshift is detected after no more than 15 nucleotides. The codons underlined in blue belong to X . The trinucleotides underlined in red do not belong to X .

A circular code excludes all incomplete circular permutation classes (see 3). In the domain of trinucleotide codes, theses are the so called identity codons: {AAA, CCC, GGG, TTT}. If a code is circular, it also follows that it contains no more than one word from each complete circular permutation class. It has also been shown that the number of complete circular permutation classes under an arbitrary alphabet Σ with a word length of is equal to the maximum size of a circular code under Σ [START_REF] Fimmel | Comma-free codes over finite alphabets[END_REF]. Thus, the maximum size of a trinucleotide code is 20.

Comma-free codes

Although Crick's suggestion that the genetic code consists of a comma-free code [12] has been disproved, these codes still play a role in hypothetical evolutionary theories such as those presented in Section 1.1.3. Like the circular code, the comma-free codes belong to the block codes. The comma-free codes are a more restrictive version of the circular codes. A code is called comma-free if any concatenation of words contain only words of the code in one reading-frame. Such codes immediately detect a reading-frameshift. Definition 4 illustrates a formal notation of the comma-free codes. Definition 4. Let X ⊆ Σ be an -letter code. X is comma-free if

X 2 ∩ (Σ + × X × Σ + ) = ∅ Example 4.1 shows a non comma-free code.
Example 4.1. Let L ⊂ {A -Z, a -z} + be the English language and X ⊂ L so that X = {spanking, kinglike, timespan}. Then the sequence timespankinglike ∈ X 2 shows that X and thus L cannot be comma-free. The circular 5-permutation of the sequence timespankinglike reveals the word "spanking", which is also a word in X .

timespan, kinglike or time,spanking,like Hence, it does not meet the definition of comma-free codes.

The next Example 4.2 illustrates an improved comma-free version of the code in Example 4.1.

Example 4.2. Let L ⊂ {A -Z, a -z} + be the English language and X ⊂ L so that X = {spanking, gniklike, timespan}. This small adaptation of Example 4.1 converts X into a comma-free code.

0: ATG … A G A C G A T T A G C C T C A A C A … TAA Frame 1: ATG … A G A C G A T T A G C C T C A A C A … TAA Frame 2: ATG … A G A C G A T T A G C C T C A A C A … TAA Figure 1
.12: Readingframe retrieval in genes with the comma-free code X = {ACA, AGA, CGA, GCC, TCA, TTA}. A frameshift is detected immediately, after no more than three nucleotides. The trinucleotides (words of length 3) underlined in blue belong to X , the trinucleotides underlined in red do not belong to X .

Additional properties of codes

Circular codes and comma-free codes can satisfy additional properties. These properties are: (1) maximal as the code cannot be contained in a circular/commafree code of higher cardinality, (2) self-complementary, since for any codon in the code, the associated anti-codon is also in the code and (3) C n , i.e. all circular permutations of the code are also circular codes. Another property which only relates to comma-free codes are the so called (4) strong comma-free codes. These codes are defined so that any prefix of a word in such a code cannot be the suffix of a word in the code and vice versa. Definition 5. Let X ⊂ Σ be a circular or even comma-free code over an arbitrary alphabet Σ with a word length . The code is called maximal if |X | is equal to the number of complete circular permutation classes in Σ [START_REF] Fimmel | Comma-free codes over finite alphabets[END_REF].

A trinucleotide circular code is defined maximal if it contains 20 codons. Definition 6 presents the definition of a self-complementary code. Definition 6. Let X ⊂ B * be a code over the alphabet of nitrogenous bases. If X is a self-complementary code, then, for any word w ∈ X , it contains the associated anti-word c( ←w ) ∈ X . The anti-word of a word is the reversed complementary word c( ←w ). Hence, X is self-complementary if:

X = c( ← - X ) Example 6.1. Let X = {ACG, CGT, T T C, GAA} be a trinucleotide code. Then the code X is self-complementary, since c( ← --- ACG) = CGT and c( ← --- T T C) = GAA. Hence, X = {c( ← --- CGT ), c( ← --- ACG), c( ← --- GAA), c( ← --- T T C)}.
A maximal code of size 20 can even be self-complementary or C 3 . Let us introduce C property next. Definition 7. Let X ⊂ Σ be a circular or even comma-free code over an arbitrary alphabet Σ with a word length . The code is called C if all circular permutations of X are, again, circular codes. The code X is a C code if and only if all codes α j (X ) for any j ∈ {0, . . . , -1} are circular codes.

Compared to a C 3 code, a strong comma-free code cannot contain 20 codons. Such a code is considered maximal if it contains 9 codons [START_REF] Fimmel | Strong comma-free codes in genetic information[END_REF]. This supports the theory that the increasing robustness against translation errors, and the extension of the coding table could be the reason for the code not being fully optimized [START_REF] Novozhilov | Evolution of the genetic code: partial optimization of a random code for robustness to translation error in a rugged fitness landscape[END_REF]. Definition 8. Let X ⊆ Σ be an -letter code. X is strong comma-free if:

(X 2 ∩ (Σ + × X )) ∪ (X 2 ∩ (X × Σ + )) = ∅ 1.2.

Representing graph

Recently, a new graph-theoretical approach to the study of circular codes (see definition 9) was introduced [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF]. An original approach to 2-letter words [2] was first generalized for the genetic alphabet [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF] and later extended to words with any letter over any finite alphabet [START_REF] Fimmel | Diletter circular codes over finite alphabets[END_REF]. The approach uses a directed graph, i.e. a set of vertices or nodes connected by edges or arcs. In a directed graph, these edges or arcs are directed, i.e. they only go from one vertex to another and not back. The graph is constructed so that an -letter code is circular if and only if the corresponding graph is acyclic. This breakthrough allows to reduce the problem of deciding whether a code is circular or not to the problem of whether a graph is acyclic or not. In the following, we define the graph to be associated with a code. Definition 9. Let ∈ N, and let X ⊆ Σ be an finite -letter block code. A G(X ) = (V (X ), E(X )) is defined with a set of vertices V (X ) and a set of ARCS E(X ). Let us define the graph G associated with a code X .

• V (X ) := {b 1 • • • b i , b i+1 • • • b : b 1 • • • b ∈ X for every i ∈ {1, ..., -1}} • E(X ) := {w 1 → w 2 : w 1 • w 2 ∈ X and (w 1 , w 2 ) ∈ V (X )}
The graph G(X ) is the graph associated with X . For each i ∈ {1, . . . , }, the vertices of G(X ) that correspond with words of length i are referred to as i-nodes.

Example 9.1. Let X = {ACC, GAG, CCG} be a a circular trinucleotide code. Then Figure 1.13 shows the graph G(X ) associated with X . In the article [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF] some important theorems related to a graph and the associated code were illustrated. These theorems extend the means to recognize properties of a code by the associated graph. The following theorems, that were already put forward earlier are also explained below in Theorem 1.2.1, Theorem 1.2.2 and Theorem 1.2.3 which follow subsequently.

Theorem 1.2.1. (Theorem 2.6, [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF]). Given a trinucleotide code X ∈ B 3 , the following statements are equivalent:

1. X is circular; 2. G(X ) is acyclic.
Theorem 1.2.1 introduces one of the major breakthroughs in the research of circular codes. Before Theorem 1.2.1, in order to conclude whether a code is circular, one needed to check if any concatenation of infinite words of a code written on a cycle can only be decomposed in words of the code in one readingframe. Consequently, this makes it an undecidable problem. With the discovery of this theorem 1.2.1, this problem became decidable. Theorem 1.2.2. (Theorem 2.11, [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF]). Let be a positive integer and X ∈ Σ be a -letter code over an arbitrary alphabet, then the following statements are equivalent:

1. X is comma-free; 2. The length of the longest path in G(X ) is 2 at the most. Theorem 1.2.2 and Theorem 1.2.3 facilitated the definition of a code as commafree or even strong comma-free.

Theorem 1.2.3. (Theorem 2.7, [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF]). Let be a positive integer and X ∈ Σ be a -letter code over an arbitrary alphabet. Then the following statements are equivalent:

1. X is strong comma-free; 2. The length of the longest path in G(X ) is 1 at the most.

Representing graph components

For each edge e in G(X ), there is i ∈ {1, . . . , -1}, so that e goes from a i-node to a ( -i)-node. For each i ∈ {1, . . . , /2 }, the i-component of G(X ) is defined to be the subgraph of G(X ) induced by the set of j-nodes for j ∈ {i, -i}. Definition 10. Any representing G(X ) of a circular code X is a set of 2 disjoint graph components. Let us assume that X ⊆ Σ is a finite block code, and G(X ) is the representing graph of X . This definition denotes C 1 (X ) . . . C 2 (X ) as the 2 components of G(X ) so that:

G(X ) = i≤ 2 i=1 C i (X )
The definition of a graph i-components C i (X ) for all i ∈ {1, . . . , 2 } associated with a code demands that every node in C i (X ) must be a j-node in G(X ) with j ∈ {i, -i}. A C i (X ) = (V i (X ), E i (X )) is defined with a set of vertices V i (X ) ⊆ V (X ) and a set of arcs E i (X ) ⊆ E(X ). The following definition is similar to the previous definition of G, but the sets of arcs and vertices are reduced to a fixed i ∈ {1, 2, ..., , 2 }:

• V i (X ) := {b 1 . . . b i , b i+1 . . . b : b 1 b 2 b 3 . . . b ∈ X } • E i (X ) := {b 1 . . . b i → b i+1 . . . b : b 1 b 2 . . . b ∈ X } Example 10.1. Let us assume that X = {ACCA, CAGT } is a circular tetranu- cleotide code.
By definition, X is 4-letter code. Hence, G(X ) can be separated into two disjoint graph components. These graph components are the C 1 (X ) and the C 2 (X ).

Symmetry group over the elements of the alphabet

In addition to the symmetry group S presented above, we need to introduce another group S Σ . This group acts on the elements in the alphabet Σ.

S Σ := {π : Σ → Σ : π is bijective} Similar to (S , •), the group (S Σ , •) is endowed with the usual group operation of composition. Let us recall that n := |A|. The set S Σ has n! elements and is the same for any word length ∈ N.

We now draw the attention to group S B acting on the elements of the genetic alphabet B, in particular, on a subgroup L of S B which was presented in the articles [START_REF] Fimmel | On dichotomic classes and bijections of the genetic code[END_REF][START_REF] Fimmel | Circular codes, symmetries and transformations[END_REF]. The group L is isomorphic to a Dihedral group, and each element in L maintains the codon-anti-codon relationship and all circular related properties in the target. The group (L, •) is formally defined as:

L := {π : B → B : π is bijective}
Let us list the mappings in L. We will use the standard notation to define the mappings. For instance, the mapping π AT CG : (A, T, C, G) → (T, C, G, A) maps π AT CG (A) = T , π AT CG (T ) = C, π AT CG (C) = G and π AT CG (G) = A. The first four mappings are named after their chemical characters. Note that they are invariant in terms of the chemical properties of nucleotides [START_REF] Gonzalez | The mathematical structure of the genetic code[END_REF]. π CG mapping:

π CG : (A, T, C, G) → (A, T, G, C).
π AT mapping:

π AT : (A, T, C, G) → (T, A, C, G). π ACT G mapping: π ACT G : (A, T, C, G) → (C, G, T, A).
π AGT C mapping:

π AGT C : (A, T, C, G) → (G, C, A, T ).
It has been observed that there are exactly 216 maximal self-complementary C 3 codes over the genetic alphabet [1,[START_REF] Michel | A relation between trinucleotide commafree codes and trinucleotide circular codes[END_REF]. By the means of the group L, these 216 codes can be classified into 27 equivalence classes [START_REF] Fimmel | Circular codes, symmetries and transformations[END_REF] where each class represents an orbit of a code under the group. In anticipation of the following section 1.2.8, we would like to mention that there is one distinct code among the 216 codes in genetic sequences. This code is called the X-code [1] and will be described in more detail in section 1.2.8.

Block codes in DNA and RNA

While the theory that the entire modern genetic code is a comma-free code has been refuted, this does not prove that there are no comma-free codes in the genetic code at all. Some trinucleotide comma-free codes have been statistically traced in genes. This led to the hypothesis that comma-free codes may apply in a primitive translation machinery. The three leading theories are based on the three commafree codes: RRY, RNY and GNC [START_REF] Ikehara | Origins of gene, genetic code, protein and life: comprehensive view of life systems from a GNC-SNS primitive genetic code hypothesis[END_REF][START_REF] Shepherd | Method to determine the reading frame of a protein from the purine/pyrimidine genome sequence and its possible evolutionary justification[END_REF]11]. The first one is the RRY code: which encodes for four amino acids: Asn, Asp, Gly and Ser. The RRY code is a subset of the RNY code: RNY = {AAC, AAT, AGC, AGT, GAC, GAT, GGC, GGT, ACC, ACT, ATC, ATT, GCC, GCT, GTC, GTT } which extends the four amino acids encoded by RRY to a set of eight amino acids: Ala, Asn, Asp, Gly, Ile, Ser, Thr and Val. The third comma-free code is the GNC code which is also a subset of the RNY code. GNC = {GAC, GGC, GCC, GTC }

The GNC code encodes for the amino acids: Ala, Asp, Gly and Val At this point, we would like to make a short excursion to the evolution theory. If we have a closer look at the amino acids encoded by RRY, RNY and GNC it can be seen that they almost fit to Higgs' suggested precursor amino acids Gly, Ala, Asp, Glu and Val [START_REF] Higgs | A four-column theory for the origin of the genetic code: tracing the evolutionary pathways that gave rise to an optimized code[END_REF]. Such a concordance of facts suggests that both the coevolution theory and the adaptive theory had an influence on the evolution of the genetic code.

A recently developed theory based on statistically elaborated evidence indicates the existence of a circular code in the genetic model. In 1996, Arquès and Michel were able to identify a set of 20 codons. This set falls under the definition of a code and is called X-code. The X-code was discovered by a statistical analysis of genes of bacteria, archaea, eukaryotes, plasmids and viruses. [1]. X = {AAC, AAT, ACC, ATC, ATT, CAG, CTC, CTG, GAA, GAC, GAG, GAT, GCC, GGC, GGT, GTA, GTC, GTT, TAC, TTC} α 1 (X) = {ACA, ATA, CCA, TCA, TTA, AGC, TCC, TGC, AAG, ACG, AGG, ATG, CCG, GCG, GTG, TAG, TCG, TTG, ACT, TCT} α 2 (X) = {CAA, TAA, CAC, CAT, TAT, GCA, CCT, GCT, AGA, CGA, GGA, TGA, CGC, CGG, TGG, AGT, CGT, TGT, CTA, CTT} Concatenations of words of this X-code preferentially appear in genes in the 0-frame [START_REF] Soufi | Circular code motifs in genomes of eukaryotes[END_REF][START_REF] Soufi | Study of circular code motifs in nucleic acid sequences[END_REF], while α 1 (X) preferentially appears in the +1 frame and α 2 (X) in the +2 frame. A concatenation of words of one code without separation in one frame is called a motif (see Definition 11). The proportion of the motifs found in genes compared to non-coding regions was significantly higher [START_REF] Michel | Enrichment of circular code motifs in the genes of the yeast saccharomyces cerevisiae[END_REF]. Astonishingly, the X-code has proven to be a circular self-complementary C 3 code [1,[START_REF] Michel | Circular code motifs in transfer rnas[END_REF][START_REF] Soufi | Circular code motifs in genomes of eukaryotes[END_REF]. Definition 11. Let x and be positive integers, w = w 1 • • • w x ∈ Σ + be a nonempty sequence over the alphabet Σ and X ⊆ Σ a -letter block code over the same alphabet. A motif is a concatenated set of words in w

w 1 • • • w k • • • w k+j • • • w x where k, j > 1 ∈ N so that w k , . . . , w k+j ∈ X implies that w k • • • w k+j is a motif of X or a X -motif.

Summary of Chapter 1

In this chapter the basic principles on which this work is based are summarized. Both, the mathematical and biological aspects focus on the synthesis of proteins in cells. There are two different cell types, the prokaryotic and the eukaryotic cells. The prokaryotic cells are found in organisms of the domains of archaea and bacteria whereas the eukaryotic cells in organisms of the domain of eukaryotes. In both cell types, hereditary information is stored in DNA. Simplified, DNA is a nucleotide based sequence. Each nucleotide stands for one of four bases: adenine (A), guanine (G), cytosine (C ) or thymine (T ). The information stored in DNA is used for the synthesis of proteins. For this purpose a duplicate of parts of the heritage information stored in DNA is created, called tRNA. However, it is not an exact copy. While DNA consists of two strands of nucleotides, tRNA only consists of a single strand of nucleotides. Additionally, in tRNA, the base uracil (U ) is used instead of thymine (T ). After the pre-translation process (only in eukaryotic cells) the tRNA is translated by the ribosome into a polypeptide chains (chain of amino acids). These chains fold into proteins which regulate and control the main purpose of the cell itself. The translation as well as the copying of the DNA is based on a system of complementary mapping denoted as function c(•). Where: c(A) := T (or U ) and c(C) := G and vice versa.

During the translation in the ribosome, three tRNA bases are considered to be one word. Such a word consisting of three bases is called codon and is translated via a translation table into one of the 20 corresponding amino acids or a stop signal. Most living organisms use the same translation table, the standard genetic code (SGC) (see figure 1.6). Numerous hypotheses claim that the SGC evolved from a primitive genetic code via the last common ancestor code (LUCA), making it the most robust against translation errors. Such a hypothetical evolutionary approach would correspond with the use of a block code derived from code theory as an error correction mechanism in translation. Evidence of such a block code in form of the so called X-code has been found in coding sequences of different species. This X-code is one of 216 maximal circular self-complementary C 3 codes. Specifically, the X-code is maximal, with a size of 20 codons, which cannot be contained in a circular code of higher cardinality. Furthermore, it is self-complementary, since for any codon in the Xcode the responding anti codon is also in the X-code. Finally, it is C 3 , i.e. all circular permutations of the X-code are also maximal circular codes [1]. A circular code is defined so that any concatenation of words of the code written on a cycle can only be decomposed into words of the code in one reading-frame. Another approach uses comma-free codes. These codes are more restrictive than circular codes and detect a frameshift error immediately. The three leading theories on comma-free codes in genes are based on the three comma-free codes: RRY, RNY and GNC [START_REF] Ikehara | Origins of gene, genetic code, protein and life: comprehensive view of life systems from a GNC-SNS primitive genetic code hypothesis[END_REF][START_REF] Shepherd | Method to determine the reading frame of a protein from the purine/pyrimidine genome sequence and its possible evolutionary justification[END_REF]11].

Furthermore, new mathematical results of the investigation of circular codes are presented. These results provide new research tools from graph theory and group theory. Let us recall the in this thesis two most frequently used tools: Firstly, is a directed graph which can be associated to a circular code. Such a graph is defined as:

Definition (copy of Definition 9). Let ∈ N, and let X ⊆ Σ be an finite -letter block code. A G(X ) = (V (X ), E(X )) is defined with a set of vertices V (X ) and a set of arcs E(X ). Let us define the graph G associated with a code X .

• V (X ) := {N 1 . . . N i , N i+1 . . . N : N 1 . . . N ∈ X for every i ∈ {1, ..., 2 }} • E(X ) := {w 1 → w 2 : w 1 ẇ2 ∈ X and (w 1 , w 2 ) ∈ V (X )}
The graph G(X ) is the graph associated with X . For each i ∈ {1, . . . , }, the vertices of G(X ) that correspond with words of length i are referred to as i-nodes.

Secondly, the circular equivalence classes. These classes are defined as an orbit under a group of all circular permutation. Definition (copy of Definition 3). Let (A , •) be a group. Where A := {α 0 , . . . , α -1 } and • denotes the composition of mappings. Be α 0 (•) the identity element. Then, A is a group acting on Σ :

α : A × Σ → Σ
All words in Σ can be separated into so-called circular permutation classes by the means of A . We define a circular permutation class as an orbit of A acting on a word w ∈ Σ .

A • w = {α • w | α ∈ A }
The maximum size of an orbit, and therefore a circular permutation class, is equal to the cardinality of A which is . Hence, we donate a circular permutation class that has members as a complete circular permutation class. The other circular permutation classes are denoted as incomplete circular permutation classes.

Chapter 2

Properties of circular codes

The previous chapter illustrates the structure of circular codes (see section 1.2.3) as block codes and introduces the X-code (see section 1.2.8) which was the first verification of such codes in genetic sequences. The introduction presents clear evidence pointing to an important role of the X-code in protein synthesis. Since the X-code also belongs to the class of maximal self-complementary circular codes, the foremost objective of this chapter is the expansion of knowledge of the class of self-complementary circular codes and the class of maximal circular codes.

In the first section of this chapter 2.1, we investigate self-complementary codes. For this investigation, we will apply deep graph theory based on graphs associated with a code (see section 1.2.6). First, we link the minimum size of a code motif needed to ensure the correct reading-frame with the length and structure of the longest paths in the graphs associated with the self-complementary circular code. Subsequently, we formulate conditions to fully classify self-complementarity in graphs associated with a circular self-complementary code of size at least 18. Most results presented in this section have already been published in an article [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF].

The second section, 2.2, examines the entire circular code family from a more general point of view. To investigate the full potential of circular codes and their role as hypothetical ancestor codes, this section focuses on circular codes over arbitrary finite alphabets and/or arbitrary word lengths.. As another relevant group of block codes, the comma-free codes are also examined more closely as a "selection factor that guides the search for ... hypothetical ancestor codes" [START_REF] Neveln | Comma-free and synchronizable codes[END_REF].

Self-complementary circular codes in coding theory

Reading the amino acids encoded in the mRNA in the normal reading-frame is essential for protein synthesis. Due to the start codons in the mRNA we can assume that the process starts the reading in the correct reading-frame. It is often proposed that there was or still is a mechanisms to maintain this readingframe [1,[START_REF] Neveln | Comma-free and synchronizable codes[END_REF]. These proposals often refer to two types of codes: The comma-free codes [11] and the circular codes. In this section we work on the circular codes. Such codes are capable of synchronizing, maintaining and retrieving the normal reading-frame. As mentioned in the introduction, the X-code has been identified as a representative of the circular codes in genes of bacteria, archaeae, eukaryotes, plasmids and viruses [1,[START_REF] Soufi | Circular code motifs near the ribosome decoding center[END_REF]. It has not yet been possible to explain how the X-code is applied in the genome because it appears as individual motifs (see Definition 11) in the sequences. The motivation of this section is to get a deeper understanding of the motifs of the X-code.

Since the X-code is one of the 216 maximal self-complementary C 3 codes (see section 1.2.7), the X-code must have the identical characteristics as the codes of this subclassses of circular codes. It therefore led to a closer observation of the 216 codes. The data obtained guided the theorems and their corresponding proofs presented in this section. The focus lies on the coding theoretical properties of the self-complementary maximal codes X ⊂ B 3 with a word length of = 3 over a fixed alphabet B = {A, C, G, T } of cardinality n = 4. These codes have been studied by representing them through directed graphs and then applying deep graph theory. The results in the subsequent sections will elaborate on the number of nucleotides in a sequence required for frameshift recognition, and the full classification of graphs associated with self-complementary code.

Most results in this section are published in the article "Self-complementary circular codes in coding theory" [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF].

Frameshift robustness on self-complementary

C 3 codes Let X ⊂ B 3 be a strong comma-free trinucleotide code. Since X is strong comma- free, all sequences b 1 . . . b i of words b 1 b 2 b 3 , . . . , b i-2 b i-1 b i ∈ X can be described as frameshift robust. Recalling the strong comma-free definition, this is because nei- ther b 2 b 3 b 4 nor b 3 b 4 b 5 can
be in X . However, let us assume that X is a circular code and not strong comma-free. For each sequence b

1 . . . b i of concatenated words b 1 b 2 b 3 , . . . , b i-2 b i-1 b i ∈ X
written on a circle, a frameshift error cannot occur undetected. Nonetheless, an undetected frameshift error can occur in the same linearly written sequence if the motif of a code is not long enough. The minimum length needed for a motif to avoid undetected frameshift errors does not only depend on the construction of the code, but also on the concatenated words used for the motif. This section introduces a classification of codes based on the weakest link in a code, i.e. the number of nucleotides in a motif needed to detect a frameshift for any code motif.

Observation 2.1.1. Let j be a positive integer and X ⊂ B 3 be a trinucleotide circular code. Any sequence w s = w 1 w 2 • • • w j ∈ X j of words w 1 , w 2 , . . . , w j ∈ X written in a circle have only one circular X -decomposition in the correct readingframe. However, the same sequence can be decomposed into the same number of words of X in two frames if w s is considered a motif contained in a longer sequence.

To prove the Observation 2.1.1 we reconstruct the observed scenario in Construction method 2.1.1. It shows that the prefix, i.e. the nucleotides directly before a motif, and the suffix, i.e. the nucleotides directly after a motif, have an influence on the error detection mechanism of circular codes. In the constructed case used in the proof, the code motif in the correct reading-frame has the same length (number of nucleotides) as the motif in the +1 reading-frame.

Construction method 2.1.1. Let m be a positive integer and X ⊂ B 3 be a trinucleotide circular code and

w s := b 1 • • • b i • • • b i+j • • • b m ∈ B m a sequence where i ∈ {(3n) + 1 : n ∈ N}, j ∈ {(3n) -1 : n ∈ N + } and i + j < m. Let us further assume that the words b i b i+1 b i+2 , . . . , b i+j-2 b i+j-1 b i+j ∈ X
are a motif of X in the correct reading-frame. Without loss of generality, we assume j = 5, from which follows that w 1 := b i b i+1 b i+2 and w 2 := b i+3 b i+4 b i+5 , with reference to the construction w 1 , w 2 ∈ X . However, the codon

b i+1 b i+2 b i+3 , b i+4 b i+5 b i+6 ∈ B 3
can be in X without losing circularity. This case forces that

b 2 . . . b i+1 b i+2 b i+3 b i+4 b i+5 b i+6 . . . b m
is a valid X motif in the +1 frame with the same length as the X motif in the normal frame.

This paragraph refers to the results of the paper "Self-complementary circular codes in coding theory" [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF]. Considering the previous observation, it is evident that the prefix and suffix of a code motif are important factors for the reliability of the code motif. To specify the correct notation of a code motif in each frame, we define the X -frame, d p and d s in Definition 12.

Definition 12. Let X ⊂ B 3 be a trinucleotide code and x ≥ 3 be an integer so that b 1 . . . b x ∈ B x a sequence of nucleotides. The sequence b 1 . . . b x is constructed so that it can be divided into 3 elements:

b 1 . . . b x = d p c 1 . . . c l d s where x ≥ 3, l = x -(|d p | + |d s |) , c i c i+1 c i+2 ∈ X for i = 1, 4, 7, ..., l -2 is a X motif, d p ∈ { , b 1 , b 1 b 2 } and d e ∈ { , b x-1 b x , b x } , being the empty word.
According to Definition 12, the prefix d p and the suffix d s of the sequence do not need to be a prefix or suffix of a codon in X . Only the central part, denoted as c 1 . . . c l , consists of words from c i c i+1 c i+2 ∈ X for i = 1, 4, 7, ..., l -2. As Fimmel et al. state, "[t]his approach contrasts the notion of unambiguous words defined in [START_REF] Michel | Circular code motifs in transfer and 16sribosomal rnas: a possible translation code in genes[END_REF] and makes the notion of X -frame and later on reading-frame applicable to arbitrary sequences, i.e., not entirely consisting of trinucleotides from X ." [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF] With this definition of X -frames, it is possible to associate the weak point like the one depicted in Observation 2.1.1, with a path in the associated G(X ) graph. These path-related graph properties are defined in Definition 13. Definition 13. Let X ⊂ B 3 be a trinucleotide circular code and G(X ) be its associated graph. Let p :

v 1 → • • • → v n be a path in G(X ),
where each v i is either a 1-node of a 2-node for i = 1. . . . , n. Then the arrow length l a (p) is defined as n -1. Furthermore, with l max (X ) we define the maximum arrow length of a path, i.e. the length of a longest path, in the associated graphic G(X ).

• the arrow-length l a (p) is defined as l a (p) = n -1;

• the length of a longest path, in the associated graph G(X ) is defined as l max (X ).

• the word associated with p is defined as w(p) = v 1 . . . v n , the concatenation of the labels of p;

• the word length l w (p) is defined as |w(p)|, the length of the word associated with p.

While most X -frames cannot be decomposed into words of the same code in more than one reading-frame, there are rare scenarios where this happens, leading to overlaps. Such a case of overlapping X -frames is the weak point of the circular codes described in Observation 2.1.1.

Observation 2.1.2. Let X ⊂ B 3 be a trinucleotide circular code and and x ≥ 4 be an integer so that b

1 • • • b x ∈ B x a sequence of nucleotides. If we assume that b 1 • • • b x has 2 different possible X -frames b 1 • • • b x = d p c 1 • • • c l d s = d p c 1 • • • c m d s so that d p = d p with c i , c i ∈ X and d p , d s , d p , d s ∈ { } ∪ B 2 ∪ B,
1 • • • b n that contains both c 1 • • • c l and c 1 • • • c m .
To avoid overlapping X -frames as in Observation 2.1.2, the sequences must be constructed in such a way that they are not associated with a path in G(X ). Once the concatenation of words in a code is equal to the concatenation of labels of a path associated with the code, the X -frame overlaps. This can generally be avoided by defining an upper bound. Definition 14. Let X ⊂ B 3 be a trinucleotide circular code. We define the reading-frame number n X of X as

n X := min{n ∈ N| for all sequences of nucleotides b 1 . . . b n there is at most one possible X -frame for b 1 . . . b n }
This upper bound can be derived from the longest path of a graph. Suppose X ⊂ B 3 is a circular code. Then, the reading-frame number n X is considered valid, if:

n X ≤ 2 • l max (X ) + 3
The following Theorem 2.1.1 proves this dependence. The proof of the theorem can be found in article [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF].

Theorem 2.1.1. (Theorem 5.9, [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF]) Let X ⊂ B 3 be a trinucleotide circular code and G(X ) its associated graph. Then, the reading-frame number n X satisfies n X ≤ 2 • l max (X ) + 3.

Applied theory of the reading-frame number

The definition of the reading-frame number allows for the classification of trinucleotide circular codes with respect to the associated n X . Let us recall that n X ≤ 2 • l max (X ) + 3 which demonstrates that the reading-frame number depends on the longest path of a code l max (X ). Let G(X ) be a graph associated with the circular code X . Recalling theorem 1.2.1, G(X ) must be acyclic. However, the maximum path length is not limited. Exceptions are comma-free codes (Theorem 1.2.2), where l max (X ) = 2, and strong comma-free codes (Theorem 1.2.3), where l max (X ) = 1. Table 2.1: Growth function of self-complementary circular codes X of even cardinality a = 2, 4, . . . , 20 as a function of the longest path length l max (X ) = 1, ..., 8 in their associated graph G(X ) Table 2.1 illustrates the number of self-complementary circular codes X of different size |X | depending on the length of a longest path l max (X ). The brute force results show that l max (X ) ≤ 8. The following Theorem 2.1.2 explains this issue and fully characterises the possible values of l max (X ) for non-maximum and maximum self-complementary circular codes.

Theorem 2.1.2. (Theorem 4.2, [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF]) Let X ⊂ B 3 be a trinucleotide circular code.

The following statements about the maximal path length l max (X ) of a path are true:

1. 1 ≤ l max (X ) ≤ 8;
2. If X is self-complementary, then l max (X ) ∈ {1, 2, 3, 4, 6, 8}, i.e., l max (X ) = 5, 7 are excluded;

3. If X is maximal and self-complementary, then l max (X ) ∈ {4, 6, 8}, i.e., in addition to (2), l max (X ) = 1, 2, 3 are impossible.

Proof. The proof is structured into the three statements from Theorem 2.1.2.

Claim (1) It is immediate since for l max (X ) ≥ 9 in a graph G(X ) associated with a circular code, there is a path containing at least five vertices labeled by nucleotides. Note that with the construction of G(X ), the labels of the vertices alternate between nucleotides and dinucleotides. Nonetheless, there are only four different bases in the alphabet B, hence two of the vertices must have the same label which yields a cycle in G(X ), in contradiction to circularity. Thus, 1 ≤ l max (X ) ≤ 8.

Claim (2)

Let X be a self-complementary circular code.

(i) Assume that l max (X ) ≥ 4 is odd. By construction of G(X ), any path in G(X ) starts with either a nucleotide or a dinucleotide. Moreover, the vertices of the path alternate between nucleotides and dinucleotides. Thus, if l max (X ) is odd, then the longest path in G(X ) must either be of the form

(I) b 1 → a 1 → b 2 → a 2 → • • • → d n -1 → l n → d n
starting with a nucleotide b 1 and ending with a dinucleotide d n , or

(II) a 1 → b 1 → a 2 → b 2 → • • • → l n -1 → d n → l n
starting with a dinucleotide a 1 and ending with a nucleotide l n . In fact, the following argument shows that both cases hold. Assume, without loss of generality, that the longest path is of the first form (I). By self-complementarity, we then obtain a complementary and reversed path

(III) ← --- c(d n ) → c(l n ) → ←---- c(d n-1 ) → • • • → ←-- c(a 2 ) → c(b 2 ) → ←-- c(a 1 ) → c(b 1 ).
Since in (I) we have assumed that l max (X ) ≥ 4, at least three nucleotides,

b 1 , b 2 , b 3 , • • • , appear.
By circularity of the code X , all these nucleotides have to be different. Otherwise, the path would contain a cycle. Similarly, path (III) has at least three different nucleotides

c(l n ), c(l n-1 ), c(l n-2 ), • • • .
However, there are only four nucleotides in the alphabet B, hence, there must be i, j ≤ n such that l i = c(l j ). Seeing that path (I) starts with a nucleotide and path (III) starts with a dinucleotide, the two paths

(I ) b 1 → a 1 → b 2 → a 2 → • • • → d i-1 → l i (III ) ← --- c(d n ) → c(l n ) → ←---- c(d n-1 ) → • • • → ←-- c(d j ) → c(l j )
must have different lengths. Without loss of generality, assume that (III ) is the longer path. Yet, then the path

← --- c(d n ) → c(l n ) → ←---- c(d n-1 ) → • • • → ←-- c(d j ) → c(l j ) = l i → d i → • • • → d n -1 → l n → d n
has a length greater than l max (X ) -which is a contradiction.

(ii) The following Examples 14.1, 14.2 and 14.3 show that l max (X ) = 1, 2, 3 exist for self-complementary circular codes that are not maximal.

Claim (3) Let X be a maximal self-complementary circular code.

(i) If l max (X ) ≤ 2 is true, then X is comma-free. However, there are no self-complementary comma-free codes of size 20 (Table 7 in [START_REF] Michel | A relation between trinucleotide commafree codes and trinucleotide circular codes[END_REF]. Thus, according to the claim (2), l max (X ) ∈ {3, 4, 6, 8}.

(ii) Assume now that l max (X ) = 3. By maximality and circularity, X must contain exactly one element in each equivalence class

{b 1 b 2 b 3 , b 2 b 3 b 1 , b 3 b 1 b 2 } for every trinucleotide b 1 b 2 b 3 .
Hence, X must contain one trinucleotide from {AAT , AT A, T AA} and one complementary trinucleotide from {AT T , T T A, T AT }. It is apparent that each combination yields a path of the form A → a 1 → T or T → a 1 → A for some dinucleotide a 1 . Similarly, we get a path of the form C → a 2 → G or G → a 2 → C for some dinucleotide a 2 . Without loss of generality, assume that A → a 1 → T and C → a 2 → G are paths in G(X ). Clearly, the four trinucleotides Aa 1 , a 1 T, Ca 2 , a 2 G are all different.

Hence, X = X \{Aa 1 , a 1 T, Ca 2 , a 2 G} has 16 elements. Assume that there is a trinucleotide dC ∈ X , d being a dinucleotide, then also Gc(d) ∈ X by self-complementarity. Consequently, we get a path

d → C → a 2 → G → c(d)
of length four -which is, again, a contradiction.

Similarly, we cannot have trinucleotides of the form dA, T d, Gd ∈ X . So, no trinucleotide in X starts with T or G and no trinucleotide ends with C or A. Hence,

X ⊆ S = {N 1 N 2 N 3 | N 2 ∈ B, N 1 ∈ {A, C}, N 3 ∈ {G, T }}.
Clearly, | S |= 16. However, the four trinucleotides Aa 1 , a 1 T, Ca 2 , a 2 G are also in S, but excluded from X , so | X |≤ 12 -a contradiction.

Example 14.1. The code X 1 = {TGA, TCA} of size two is a self-complementary circular code with the longest path length l max (X 1 ) = 1, e.g. T C → A, T → GA, etc. (Figure 2.1).

GA T CA T G A T C Figure 2.1: Graph G(X 1 ) of the self-complementary circular code X 1 = {TGA, TCA} of size two with the longest path length l max (X 1 ) = 1.
Example 14.2. The code X 2 = {TGC, GCA, CTC, GAG} of size four is a self-complementary circular (even comma-free) code with the longest path length

l max (X 2 ) = 2, e.g. T → GC → A, GA → G → AG, GA → G → CA, etc. (Figure 2.2). T GC A GA G CA AG CT T G C T C Figure 2.2: Graph G(X 2 ) of the self-complementary circular code X 2 = {TGC, GCA, CTC, GAG} of size four with the longest path length l max (X 2 ) = 2.
Example 14.3. The code X 3 = {TTG, TGG, GTC, GAC, CCA, CAA} of size six is a self-complementary circular code with the longest path length l max (X 3 ) = 3, e.g.

T → T G → G → T C, GT → C → CA → A, etc. (Figure 2.3). T T T C GG T G T G AC GT GA AA C A CA CC Figure 2.3: Graph G(X 3
) of the self-complementary circular code X 3 = {TTG, TGG, GTC, GAC, CCA, CAA} of size six with the longest path length l max (X 3 ) = 3.

As established in Theorem 2.1.2, if X ⊂ B 3 is a maximal self-complementary circular code, then l max (X ) ∈ {4, 6, 8}. In Theorem 2.1.3, this characterisation is refined for maximal self-complementary circular codes.

Theorem 2.1.3. (Theorem 4.7, [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF]) Let X ⊂ B 3 be a maximal self-complementary trinucleotide circular code. Then the following statements hold:

1. If l max (X ) = 4, then the longest paths are of the form

a 1 → b 1 → a 2 → b 2 → a 3 2. If l max (X ) = 6, then the longest paths are of the form b 1 → a 1 → b 2 → a 2 → b 3 → a 3 → b 4
3. If l max (X ) = 8, then the longest paths are of the form

a 1 → b 1 → a 2 → • • • → a 4 → b 4 → a 5
where b i ∈ B are 1-nodes and a i ∈ B 2 are 2-nodes for any i ∈ N.

Proof. Claim (1): Let l max (X ) = 4 and assume that b 1 → a 1 → b 2 → a 2 → b 3 is the longest path in G(X ).
a 1 b 2 : b 2 c(b 2 )b 2 c(b 2 )b 2 b 2 c(b 2 )c(b 2 )b 2 ; b 2 a 2 : b 2 b 2 c(b 2 ) b 2 c(b 2 )b 2 b 2 c(b 2 )c(b 2 ). If a 1 b 2 or b 2 a 2 equal b 2 c(b 2 )b 2 , then self-complementarity yields c(b 2 )b 2 c(b 2 ) ∈ X and the word c(b 2 )b 2 c(b 2 )b 2 c(b 2 )b 2 contradicts circularity. Excluding the combina- tions c(b 2 )b 2 b 2 , b 2 b 2 c(b 2 ) and c(b 2 )c(b 2 )b 2 , b 2 c(b 2 )c(b 2 )
, because the trinucleotides are obviously circular permutations of each other, only two combinations remain: Claim (2): Let l max (X ) = 6 and assume that

c(b 2 )b 2 b 2 , b 2 c(b 2 )c(b 2 ) and c(b 2 )c(b 2 )b 2 , b 2 b 2 c(b 2 ). Yet,
a 1 → b 1 → a 2 → b 2 → a 3 → b 3 → a 4 is the longest path in G(X ). By self-complementarity, there is the reversed complemented path ←-- c(a 4 ) → c(b 3 ) → ←-- c(a 3 ) → c(b 2 ) → ←-- c(a 2 ) → c(b 1 ) → ←-- c(a 1 ).
Here, the central nucleotides b 2 and c(b 2 ) of the two paths are either the pair A and T or C and G. Therefore, it suffices to show that there are paths

A → d → T or T → d → A and C → d → G or G → d → C in G(X )
, since then we will obtain a path of length eight combining the two paths, e.g.

a 1 → b 1 → a 2 → b 2 → d → c(b 2 ) → ←-- c(a 2 ) → c(b 1 ) → ←-- c(a 1 )
contradicting l max (X ) = 6. However, by maximality, the code X must contain exactly one trinucleotide of the class {AT T, T T A, T AT } and its complementary trinucleotide, as well as exactly one trinucleotide from the class {GCC, CCG, CGC} and its complementary trinucleotide. It is easily verifiable that in each case we obtain either a path of the form

A → d → T or T → d → A and C → d → G or G → d → C.
For example, if AT T ∈ X , then also AAT ∈ X and we get the path Theorem 2.1.4. (Theorem 5.11, [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF]) Let X ⊂ B 3 be a maximal self-complementary trinucleotide circular code and G(X ) its associated graph. Let p = p max (X ) be a path of maximal arrow-length (and, hence, word-length) in G(X ) and let l w (p) be its word-length. Then, the following statements about the reading-frame number n X are true:

A → AT → T in G(X ). Claim (3): Let l max (X ) = 8 and assume that b 1 → a 1 → b 2 → a 2 → b 3 → a 3 → b 4 → a 4 → b 5 is the longest path in G(X ). Then,
1. n X = l w (p) + 2, if p = a 1 → b 1 → • • • → b k or p = b 1 → a 1 → • • • → a k ; 2. n X = l w (p) + 1, if p = a 1 → b 1 → • • • → a k ; 3. n X = l w (p) + 3, if p = b 1 → a 1 → • • • → b k ,
where b i are 1-nodes and a i are 2-nodes for any i.

Proof. See Appendix proof II.1.

Consequences of section 2.1.1

Theorem 2.1.3 and Theorem 2.1.4 offer the possibility to classify trinucleotide maximal self-complementary circular codes by their longest path lengths. If we add the Theorem 2.1.2 we can conclude that there must be three equivalence classes. These classes are called X 4 , X 6 and X 8 . Where the index i ∈ {4, 6, 8} of the class name X i indicates the length of the longest path. The obtained results demonstrate that a X 4 code has a reading-frame number of n X = 9, a X 6 code has a reading-frame number of n X = 12 and a X 8 code has a reading-frame number of n X = 15

Non-self-complementary circular codes of any size less than 21 can be classified in the classes X 1 , X 2 , X 3 , X 4 , X 5 , X 6 , X 7 and X 8 . Yet, not for all of these classes the reading-frame number can uniquly be predicted. The classes X 1 , X 3 , X 5 , X 7 and X 8 have a unambiguous reading-frame number. See Theorem 2.1.3 Claim 3, a X 8 has always a reading-frame number of n X = 15. The odd classes X 1 to X 7 have also a unambiguous reading-frame number (see Theorem 2.1.4 Claim 2). The reading-frame numbers are n X = 5 for X 1 , n X = 8 for X 3 , n X = 11 for X 5 and n X = 14 for X 7 . The codes in the classes X 2 , X 4 and X 6 have ambiguous readingframe numbers (see Theorem 2.1.4 Claim 1 & 3). The reading-frame numbers are n X ∈ {6, 7} for X 2 , n X ∈ {9, 10} for X 4 and n X ∈ {12, 13} for X 6 .

This means that a X 2 code is comma-free and a X 1 code is even strong commafree (see Theorem 1.2.2 and Theorem 1.2.3). In the final Chapter 6 an evolution hypothesis is presented in section 6.1, which combines the results of this section 2.1.1 and the results presented in the following Chapters 3-5. Another possible use case can be found in the section "Application: Reading frame of the maximal C3 self-complementary circular code X identified in genes" of the article "Self-complementary circular codes in coding theory"2 [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF].

Self-complementarity as a graph property

The two strands of DNA are bounded by hydrogen bonds between complementary bases. Hence, the nucleotide code on the one strand is the reversed complement of the nucleotide code on the other strand. A block code that can be applied to both DNA strands is therefore a self-complementary code. While selfcomplementarity is an important biological property, a graph G(X ) associated with a self-complementary code X is not able to represent this property as simply as circularity. Still, we were able to fully classify all graphs associated with a self-complementary code of a size of at least 18 with the use of recognizable conditions. Proposition 2.1.2 introduces the graph conditions that can indicate self-complementarity. After outlining this property, counterexamples of circular codes of size |X | ≤ 17 are constructed. The graphs associated with these codes satisfy the conditions, but the codes are non-self-complementary. On the contrary, the concluding Theorem 2.1.5 proves that the property must apply to all self-complementary circular codes of size |X | ≥ 18. All results except for Theorem 2.1.5 have been published in [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF]. However, the Theorem 2.1.5 is unpublished.

Proposition 2.1.2. Let X ⊆ B 3 be a self-complementary trinucleotide code and G(X ) = (V (X ), E(X )) the graph associated to X . Then 1. V (X ) = ← ----- c(V (X )), i.e. for each nucleotide l ∈ V (X ) its complementary nu- cleotide c(l) ∈ V (X ) and for each dinucleotide d ∈ V (X ) its complementary reversed dinucleotide ← -- c(d) ∈ V (X ); 2. d + (v) = d -( ← -- c(v)) for any vertex v ∈ V (X ).
Where d + (•) is denoted as the in-degree and d -(•) is denoted as the out-degree of a vertex in V (X ).

Proof. Condition (1): Let b 1 b 2 b 3 ∈ X . Since X is self-complementary, we have c(b 3 )c(b 2 )c(b 1 ) ∈ X . Thus, according to the definition of G(X ), b 1 , b 3 , c(b 1 ), c(b 3 ) ∈ V (X ) and b 1 b 2 , b 2 b 3 , c(b 3 )c(b 2 ), c(b 2 )c(b 1 ) ∈ V (X ). Hence, Condition (1) holds. Condition (2): [b 1 , b 2 b 3 ], [b 1 b 2 , b 3 ] ∈ E(X ) is equivalent to [c(b 3 )c(b 2 ), c(b 1 )], [c(b 3 ), c(b 2 )c(b 1 )] ∈ E(X ). Hence, Condition (2) holds.
Below, we construct a code that is non-self-complementary, but the associated graph G(X ) satisfies the conditions (1) and ( 2 The following is a basic example of Construction Method 2.1.3.

Example 14.4. The code X = {CAC, GAG, CT G, GT C} is non-self-complementary since, for example, it does not contain the complementary trinucleotide GT G of CAC. Yet, it is apparent that its associated graph satisfies the two conditions (1) and (2) from Proposition 2.1.2. The code X is comma-free and has been constructed using the preceding construction Method 2.1.3: CAC GT C GAG CT G.

However, Method 2.1.3 does not yield non-self-complementary codes of a size larger than eight, such that the associated graphs satisfy the two conditions (1) and ( 2 The following Lemma 2.1.1 demonstrates how non-self-complementary circular codes of a size ≤ 16 can be constructed effortlessly with the help of an associated graph G(X ) that satisfies conditions (1) and (2) of Proposition 2.1.2.

Lemma 2.1.1. Let X 1 , X 2 ⊆ B 3 with X 1 ∩ X 2 =
∅ be trinucleotide codes such that their associated graphs G(X 1 ) and G(X 2 ) satisfy the two conditions (1) and (2) of Proposition 2.1.2. Then the following statements hold:

1. The graph G(X c 1 ) where X c 1 := B 3 \ X 1 satisfies both conditions (1) and (2);

2. The graph G(Z) where Z := X 1 ∪ X 2 satisfies both conditions (1) and (2).

Proof. Let X 1 , X 2 ⊆ B3 with X 1 ∩X 2 = ∅ be codes such that their associated graphs G(X 1 ) and G(X 2 ) satisfy the two conditions (1) and (2) of Proposition 2.1.2.

Claim (1) It follows from the fact that graph G(B 3 ) satisfies the two conditions (1) and ( 2) of Proposition 2.1.2, and 3

G(B 3 ) = G(X 1 ) ∪ G(X c 1 ) and E(X 1 ) ∩ E(X c 1 ) = ∅. Claim (2) Condition (1) of Proposition 2.1.2 is true, since V (Z) = V (X 1 )∪V (X 2 ).
Let us show that Condition (2) of Proposition 2.1.2 holds as well. As

X 1 ∩ X 2 = ∅, it follows that E(X 1 ) ∩ E(X 2 ) = ∅. Two cases are considered: (i) If v / ∈ V (X 1 )∩V (X 2 ), then also ← -- c(v) / ∈ V (X 1 )∩V (X 2 ). Furthermore, Condition (2) of Proposition 2.1.2 is satisfied, because it holds in G(X 1 ) or G(X 2 ); (ii) if v ∈ V (X 1 ) ∩ V (X 2 ), then also ← -- c(v) ∈ V (X 1 ) ∩ V (X 2 )
. Additionally, Condition (2) of Proposition 2.1.2 is satisfied also, since in-and out-degrees which are equal in G(X 1 ) and G(X 2 ), respectively, are added.

Observation and data evaluation have indicated that Theorem 2.1.5 is true. However, the actual proof is not yet published and illustrates why Theorem 2.1.5 must be true. Theorem 2.1.5. (Theorem 3.13, [START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF]) Let X ⊆ B 3 be a trinucleotide circular code of a size of at least 18. Then, X is self-complementary if, and only if, 1. | X | is even, i.e. | X |= 18 or | X |= 20 (and hence maximal);

2. V (X ) = ← ----- c(V (X )); 3. d + (v) = d -( ← -- c(v)) for any vertex v ∈ V (X ).
The upcoming proof shows that Theorem 2.1.5 is true. The line of argument is structured as following: If a trinucleotide code X is non-self-complementary, but is nevertheless associated with a graph G(X ) that satisfies the conditions (1), ( 2) and (3), the code has a strong non-self-complementary subcode. The proof shows that the circular permutation classes of the complements of the subcode can not be in X . The code X would be either self-complementary or non-circular. Hence, it contradicts the Theorem.

Proof. Be X ⊂ B 3 circular code of size 18. The corresponding graph G(X ) fulfills the Conditions (2) and (3) of the Theorem 2.1.2 but X is non-self-complementary. Recalling the construction of such a code, we can say that if we remove all complementary pairs from the code, the remainder must still satisfy conditions (2) and (3) of the Theorem 2.1.2. Thus, a set X * constructed as in construction 2.1.3 must be a subset of X * ⊂ X . Construction 2.1.3 requires that 4 ≤ |X * | ≤ 8. Consequently, it can be said that:

• for each w ∈ X * it follows that ← -- c(w) / ∈ X • |X * | ≥ |(α 1 ( ← --- c(X * )) ∪ α 2 ( ← --- c(X * )) ∩ X | ≥ |X * | -2 Let Y = α 1 ( ← --- c(X * )) ∪ α 2 ( ← --- c(X *
) be the subset of X , which contains all codons of the circular permutation classes of ← --c(X * ), excluding the complements ← --c(X * ).

Claim (1): We claim that |Y ∩ X * | < |X * | -2. Let us assume that |Y ∩ X * | ≥ |X * | -2. Let {b a , b b , b c , b d } = B, where b c = c(b d ) and b a = c(b b ). One can say that for all b 1 b 2 b 3 ∈ X * it follows that b 2 ∈ {b a , b b }. We denote Q 1 = {b 1 b 2 b 3 : b 1 , b 2 , b 3 ∈ B ∧ b 2 ∈ {b a , b b } ∧ b 1 b 2 b 3 = b 2 b 3 b 1 } Hence, |Q 1 | = 30 and X * ⊂ Q 1 . Let us denote Q 2 as Q 2 = {b 1 b 2 b 3 : b 1 b 2 b 3 ∈ Q 1 ∧ b 1 ∈ {b a , b b } ∨ b 3 ∈ {b a , b b } It can be said that |Y ∩ X * | ⊂ Q 2 and |Q 2 | = 22
. Further, we denote three additional subsets: ). This leaves only one code pattern:

Q XY Y = {b 1 b 2 b 3 : b 1 b 2 b 3 ∈ Q 1 ∧ b 1 ∈ {b a , b b } ∨b 3 ∈ {b a , b b } Q Y Y Y = {b 1 b 2 b 3 : b 1 b 2 b 3 ∈ Q 1 ∧ b 1 ∈ {b a , b b } ∧ b 3 ∈ {b a , b b } Q XY X = {b 1 b 2 b 3 : b 1 b 2 b 3 ∈ Q 1 ∧ b 1 ∈ {b c , b d } ∧ b 3 ∈ {b c , b d } The sets |Q XY X | = 8, |Q Y Y Y | = 6, and |Q Y Y Y | = 16 are listed in Table 2.3 & Table 2.2. Since Q Y Y Y consists of two circular permutation classes, it follows that |Y ∩ X * ∩ Q Y Y Y | ∈ {0, 2}. More precisely, if |Y ∩ X * ∩ Q Y Y Y | = 2, then |X * ∩ Q Y Y Y | = 2. We claim (i) that if |X * ∩ Q Y Y Y | = 2, then |X * | ≥ 6, and (ii) that if |X * ∩ Q XY X | = 0, then |Y ∩ X * ∩ Q XY Y | = 0. To claim (i) let {b 1 b 2 b 3 , b 4 b 5 b 6 } = X * ∩ Q Y Y Y , where b i ∈ {b a , b b } for i = 1, . . . , 6 (
{b a b a b c , b b b b b d , b b b a b a , b a b b b b , b d b b b a , b c b a b b } = X *
An example of this code can be found in Example 15.2. In this case, X * is non-circular. Therefore, X is non-circular, which is a contradiction.

| ≥ |Y * | ≥ 4. (a) Q 1 ∩Y * = ∅ and X * ⊂ Q 1 . It must be true that X * ∩ ← --- c(Y * ) = ∅ and α 1 (Q XY X )∪ α 2 (Q XY X ) = SW (Q XY Y ). If G(X * ) is
* ⊂ Q 1 and X * ⊂ Q 1 . It is obvious that X * ∩ ← --- c(Y * ) = ∅. Furthermore, it is clear that |(Y * ∪ X * ) ∩ Q XY X | ≤ 2.
Hence, without loss of generality, we can say that: Example 15.2. A code X * of size six so that it fits the pattern

{b a b a b c , b b b b b d , b b b a b a , b a b b b b , b d b b b a , b c b a b b } ⊂ X * ∪ Y * as in claim (1) -(ii), this leads to a contradiction, because X * ∪ Y * is non- circular. Claim (3): Let Y * 1 ∪ • • • ∪ Y * k ⊂ X * so that |Y ∩ (Y * 1 ∪ • • • ∪ Y * n )| ≥ |X * | -
∈ {A, T } for all b 1 b 2 b 3 ∈ Q 1 . Q XY X is in the two left columns; Q XY Y is in the four middle columns; Q Y Y Y is in the two right columns; CAC GTG CAA TTG GTT AAC AAA TTT CTC GAG CTT AAG GAA TTC ATA TAT CTG CAG CAT ATG GAT ATC AAT ATT GAC GTC CTA TAG GTA TAC TAA TTA Table 2.3: Set Q 1 , where all codons have a strong middle base. Put b 2 ∈ {G, C} for all b 1 b 2 b 3 ∈ Q 1 . Q XY X is in the two left columns; Q XY Y is in the four middle columns; Q Y Y Y is
X * = {b a b a b c , b b b b b d , b b b a b a , b a b b b b , b d b b b a , b c b a b b } X * = {AAG, AT T, CAT, GT A, T AA, T T C}
is strong non-self-complementary and non-circular, but its graph G(X * ) satisfies the Conditions (1) and (2) of Proposition 2.1.2. Example 15.3. A code X = X * ∪ Y * of size ten, so that it fits the pattern In the subsequent section the focus moves to a more general perspective. The targets of investigation are Circular -letter codes over arbitrary alphabets Σ and comma-free codes.

X * = {b a b a b c , b b b b b c , b b b a b a , b a b b b b , b d b b b a , b d b a b b } Y * = {b a b d b a , b b b d b b b b b c b a , b a b c b b } X = {AAG,

Properties of circular codes in general

Most theories on the evolution of the genetic code can be grouped into one of four theory groups. In the introduction, we introduced these four theories [START_REF] Koonin | Frozen accident pushing 50: stereochemistry, expansion, and chance in the evolution of the genetic code[END_REF][START_REF] Koonin | Origin and evolution of the genetic code: the universal enigma[END_REF]. Let us briefly summarize them: The frozen accident theory, which assumes that the code has remained frozen since its origin; the stereochemical theory, based on stereochemical relationships between amino acids and specific (anti-)codons [START_REF] Pelc | Stereochemical relationship between coding triplets and amino-acids[END_REF][START_REF] Yarus | The genetic code and rna-amino acid affinities[END_REF]; the adaptive theory, proposing that the genetic code was designed to be maximally robust [START_REF] Woese | Order in the genetic code[END_REF][START_REF] Freeland | The genetic code is one in a million[END_REF]; and the coevolution theory of the genetic code, relating its evolution to amino acid biosynthetic pathways [START_REF] Wong | A co-evolution theory of the genetic code[END_REF].

If we assume that circular codes were an influencing factor in evolution, it is important to create a hypothetical model of this process. From a biomathematical point of view, this means that we need to have improvable features as fitness values in such an evolutionary mode. To develop such features, we can use constraints of the adaptive theory as guidance. Two easily identifiable features under these constraints are the maximum size and the frameshift robustness of a code. In many respects, these characteristics contradict each other. For instance, a circular trinucleotide code has a maximal size of 20. Whereby the maximal size of the more restrictive strong comma-free trinucleotide codes is only 9, see [START_REF] Fimmel | Strong comma-free codes in genetic information[END_REF]. To investigate these correlations, we fully characterise the maximal size of circular codes in section 2.2.1. Subsequently, in section 2.2.2, we present a separation of any maximal circular trinucleotide code into four equally sized comma-free codes as a hypothetical reversed development of the evolution. Lastly, section 2.2.3 delineates a mapping from circular codes over a finite alphabet onto binary codes. This method is presented as an apparatus to use methods from communication engineering, to investigate other features of circular codes in sequences.

Maximal size of circular codes

In the introduction section 1.1.3, some of the most important models on the evolution of the genetic code have been outlined. One of them, the adaptive theory suggesting that the genetic code was designed to be maximally robust [START_REF] Woese | Order in the genetic code[END_REF][START_REF] Freeland | The genetic code is one in a million[END_REF]. The evolution proposed in this theory focuses on minimizing the effects of errors in transcription and translation. Therefore, on the one hand, the code must have enhanced the robustness against the incorrect reading of a codon and the resulting incorporation of the wrong amino acid. On the other hand, the interest of evolu-tion must have been to maintain or rather increase the capacity of the information processing system. If we apply this theoretical model to circular codes, however, the maximum size of such a code becomes a very essential factor in the search for hypothetical codes ancestral to the standard genetic code. Especially when we consider that it has been suggested that a code before LUCA could be based on dinucleotides or tetranucleotides [START_REF] Koonin | Origin and evolution of the genetic code: the universal enigma[END_REF]

X di ⊂ B 2 .
The maximal size of a circular dinucleotide code is 6.

X di = {AC, AG, AT, CG, CT, GT}
In order to use the circular codes as a selection factor to promote the search for these hypothetical ancestor codes, it is vital to generally characterize the behavior of these codes by adjusting the word length or cardinality of the alphabet. Thus, it is relevant to be able to explain the advantages and disadvantages of such adjustments in circular codes. This poses the following two questions:

• How does genetic information processing benefit from a circular code with increased word length?

• How does genetic information processing benefit from a circular code with an extended alphabet?

Before we answer these question we introduce an optimized algorithm to calculate the maximum size of a circular code. The obtained algorithm is faster and easier to program as the origin function to calculate the maximum size of a circular code. This facilitated working with these codes and allowed for characterizing the behavior of the maximality in terms of circular codes.

Optimization of the algorithm to calculate growth of maximality

The aim of this section is to optimize the algorithm to calculate the maximum size of circular codes. As mentioned above, this improved algorithm can be implemented easily and facilitate the research in this subject. The maximum size of a circular code depends on the word length and the cardinality of the alphabet n = |Σ|. The expression for calculating the maximum size of a circular code is based on the Möbius function µ(n), a multiplicative function in number theory. This function has values {-1,0,1} that depend on the number of prime factors of the input n. Before we show the definition of the Möbius function, we need to define ω(x). Let x be a positive integer, then ω(x) is the number of prime factors of x. Next, we define the Möbius function: .

µ(n) = (-1) k if n is a square-free positive integer. k = ω(n), 0 if

Set Explanation Example P n

The set of prime factors of n. Including n in case n is prime.

If n = 12 → P n = {3, 2} If n = 5 → P n = {5} F - n
The set of all factors of n, excluding n.

If n = 12 → F - n = {6, 4, 3, 2, 1} F n
The set of all factors of n, including n.

If n = 12 → F n = {12, 6, 4, 3, 2, 1}
We define ω(n) as integer:

ω(n) = |P n |
The expression to find the maximal size of a circular code for a given tuple { , n} uses the Möbius function. This function M (n, ) subtracts the number of words in so-called incomplete circular permutation classes from the number of all words of length over a alphabet Σ with n = |Σ| and then divides the result by . Example 16.1 demonstrates this with the calculation for dinucletide codes.

Example 16.1. Let K c , K i be sets, so that K c lists all dinucletide complete circular equivalence classes:

K c = {AC, CA}, {AG, GA}, {AT, T A}, {CG, GC}, {CT, T C}, {GT, T G}.
and K i lists all dinucletide incomplete circular equivalence classes:

K i = {AA}, {CC}, {GG}, {T T }
To calculate the maximal size of a dinucletide code where = 2 and n = |{A, C, G, T }| = 4, one has to subtract the number of words in all incomplete circular equivalence classes, denoted as k i

k i = K∈K i |K| = 4
from the number of all words 4 2 = 16 and then divide it by = 2.

|K c | = n -k i = 4 2 -4 2 = 6
Therefore, the result of M (n, ) is the number of complete circular permutation classes. In the article [START_REF] Fimmel | Comma-free codes over finite alphabets[END_REF] it is proven that the number of complete circular permutation classes with a word length over an alphabet Σ is always equal the maximal size of circular code with a word length over Σ. Hence, there must exist a circular code over Σ with any word length , which contains one word from each complete circular permutation class. (See Examples 15.4, 15.5, 15.6)

M (n, ) = f ∈F µ(f ) n f (2.1)
By definition, the Möbius function requires the number of all prime factors of a number. The complexity of this function (2.1) is O( 2 ). By changing the function, the complexity can be improved. Assuming that is a prime number, in this case it is trivial to set up the equation, since there are only two terms with the Möbius function as coefficient which is µ (1) • n and µ( ) • n. . We simply say that M (n, ) = n -n and ω( ) = 1. Recalling the definition of ω( ), it can be said that if ω( ) > 1, it follows that is not a prime number and vice versa. Therefore, it holds true that if is not a prime number, as in the trivial case, then P = {p 1 , p 2 , . . . , p ω( ) } is the set of all prime factors of . If we recall the definition of the Möbius function, we can say that the exponents a i of the factors

p i in = ω(n) i=1
p i a i can be ignored, as only the factors in F , where all a i = 1, have an influence on the result of M (n, ). Evidently, the highest order in the polynomial n is always positive, since µ(1) = 1. This allows the function to be expressed as M (n, ) = n +z(n, ) as in Definition 17.

Definition 17. Let M (n, ) = n +z(n, ) be the equation to calculate the maximal size of a circular code X under an alphabet Σ with a word length , so that n = |Σ|.

z(n, ) = p 1 ∈P (-n p 1 -p 2 ∈P \{p 1 } (-n p 1 p 2 2 -p 3 ∈P \{p 1 ,p 2 } (-n p 1 p 2 p 3 3 - . . . -p ω( ) ∈{p ω( ) } -n p 1 p 2 ...p ω( ) ω( )!
)))

This new notation in Definition 17 allows for the reduction reducing the complexity to 2 o( ) . The improvement is mainly achieved by ceasing the use of the Möbius function. Hence, it is no longer necessary to find and count all prime factors of all (not only prime) factors of . The Pseudocode 1 below shows an efficient way to implement the new notation of the maximal size function.

Pseudocode 1. Function to calculate the maximal size of circular codes. The function uFactors used in the code is defined as a function that returns a unique set P of the prime factors of so that

Σ = {0, 1, 2}, n = |Σ| = 3 and = 6 P ← {2, 3} E ← {1} CO ← {1} res ← 3 6 →729 for p = 2 for e = 1 • 2, co = 1 • -1 E ← E ∪ {e} →{1, 2} CO ← CO ∪ {co} →{1, -1} res ← 729 + co • 3 3 →702 for p = 3 for e = 1 • 3, co = 1 • -1 E ← E ∪ {e} →{1, 2, 3} CO ← CO ∪ {co} →{1, -1, -1} res ← 702 + co • 3 2 →693 for e = 2 • 3, co = -1 • -1 E ← E ∪ {e} →{1, 2, 3, 6} CO ← CO∪{co} →{1, -1, -1, 1} res ← 693 + co • 3 1 →696 return 696 6 →116
If we examine the maximum sizes of the Examples 15.4, 15.5, 15.6 more closely, the values seem to increase in an exponential curve in relation to the word length. By itself, this would be an indicator that word length has increased in the course of evolution. However, there are other features than the word length to consider as factors of evolution. For instance, a maximal circular tetranucleotide code uses 6000/4 4 ≈ 23.4% of all possible words while the maximal circular dinucleotide code uses 600/4 2 = 37.5%. In the subsequent section, we refine the feature by relating the percentage of use to the circular classes.

Expression to calculate the number of all circular permutation classes

In this section, we introduce an equation L(n, ) to calculate all circular permutation classes, not just the complete ones. This value can be used to explain the plausibility of a word length used in the evolution process. After introducing this function, Table 2.4 displays the growth of the maximal length of a code in comparison to the results of L(n, ). The equation to obtain all circular classes for a given tuple of { , n} is slightly more complex than M (n, ). The polynomial M (n, ) only returns the number of complete permutation classes. A polynomial containing as well the incomplete permutation classes must be basically an extension of M (n, ). Proposition 2.2.1. The polynomial L(n, ) returns the number of all permutation classes for { , n}. It is defined as:

L(n, ) = f ∈F (λ f n f )
Where the coefficients λ f for f ∈ F are defined as:

λ f = 1 i∈F f µ(i) f i
Proof. The result of M (n, ) is defined as the number of complete classes with respect to n and . Therefore, the polynomial L(n, ) is M (n, ) with the addition of the number of all incomplete classes. The number of incomplete classes, on the other hand, is equal to the number of complete classes of all factors of , including the number 1 but excluding . The set of factors is called F -. Thus, L(n, ) can be defined as follows:

L(n, ) = f ∈F M (n, f ) The set of the polynomials summed in L(n, ) is called L n, L n, = {M (n, f ) : f ∈ F -} so that L(n, ) = M (n, ) + m∈L n, m
Each coefficient of the proposed equation must combine all coefficients of the polynomials in L n, . The interaction is only relevant for those that contain a nonzero term with the same degree. The coefficients of each of the polynomials are 1, divided by the corresponding word length, in this case called i.

Assume M (n, i 1 ) has a non-zero term n x and is one of the polynomials in L n, . This leads to two conclusions: (i) x, i 1 ∈ F -and x ∈ F i 1 and (ii) the term in M (n, i 1 ) appears as

1 i 1 µ( i 1 x )n x . Consequently, the coefficient 1 i 1 µ( i 1 x
) must be taken into account in the coefficient λ f of the term n x in L(n, ).

Hence, i 2 ∈ F f , so that i 1 x = i 2 . In addition, for each i 1 ∈ F f there exists exactly one M (n, f 1 ) ∈ L n, , which has a non-zero coefficient of the term n x . This ensures that µ(i 2 ) in λ f is equal to µ( i 1

x ) in M (n, i 1 ). Furthermore, by the value of f one can say: x = f and thus f i 2 • = 1 i 1 . This shows that for every M (n, i j ) that has a non-zero term of degree x, there is exactly one equal element in λ f that is the coefficient of the term n x in L(n, ). This applies in both directions. Each element of the sum of each coefficient λ f appears exactly once in a coefficient of the term of equal degree in one of the polynomials in L n, . Let us assume that the C 3 property is somehow important for the frameshift retrieval in the translation process. In a C 3 code, the circular 1-permutation as well as the circular 2-permutation of the code are again a circular code. Which means, if the code is maximal, all except for the words in incomplete classes are involved. Then, the absolute percentage of all words used in a maximal codes is of secondary importance. This implies that the values introduced in Table 2.4 are a better fitting value to measure the advantages of codes with increasing word lengths. The values show that the step between dinucleotide codes and trinucleotide words is more than 20%, while the step between trinucleotide codes and tetranucleotide codes is less than 3%.

Behavior of circular codes with increasing word length

It is true that the maximum size of circular codes increases exponentially as the word length increases. However, under restrictions, the growth of maximum size in terms of word length is not homogeneously exponential. The maximum size of a code depends on the factors of , denoted as F (see also Section 2.2.1).

Proposition 2.2.2. For all n ≥ 2 ∈ N and ≥ 2 ∈ N, the following must hold true:

n -n ( 2 +1) < M (n, ) ≤ n -n
Proof. We claim that:

(i)
(iii) -n ( 2 +1) < z(n, ).
Summarizing claims (i), (ii) and (iii), we can say that

-n ( 2 +1) < z(n, ) ≤ -n
Claim (i) We claim that the term with the highest degree in z(n, ) (see Definition 17) has a negative coefficient. Thus, z(n, ) is negative. Suppose that P is a set of all prime factors of . P is defined so that 1, / ∈ P . Let us assume that p l is the lowest prime factor of P . With respect to the M (n, ) in section 2.2.1, it can be said that n p 1 is negative and p 1 is the degree of z(n, ).

Claim (ii) z(n, ) is always negative and equal or less than -n. Since the term with the highest degree has a negative coefficient, we can formulate the following expression:

n p 1 > i∈F \{1,p 1 } n i
Both sides of the expression have the factor n, which allows for simplifying it:

n • x > n • y with x, y ∈ N which follows that x -1 ≥ y
This shows that z(n, ) is always equal or less than -n.

Claim (iii) With reference to claim (i), we can say that the degree of the polynomial z(n, ) is 2 at most. Moreover, if 2 is not a factor of , it follows that the degree of the polynomial z(n, ) is 3 at most or, more generally, the degree of the polynomial is

≤ 2 . Therefore, n ( 2 +1) > 2 i=1
n i , which forces that the following holds:

n ( 2 +1) > |z(n, )| > n and z(n, ) < 0
In conclusion, it proves that:

n -n ( 2 +1) < n + z(n, ) ≤ n -n
Hence, it proves Proposition 2.2.2.

In Proposition 2.2.3, we demonstrate that M (n, ) is monotonously increasing in respect to the word length . Proof. Let us assume that is prime. Therefore, M (n, + 1) n ( +1) -n ( +1 2 +1)

+1

. In section 2.2.1, the value z(n, ) (see Definition 17) is introduced. It is obvious that it says that n ( 2 +1) > |z(n, )| ≥ n. It follows that in the polynomial M (n, + 1), the coefficient of the term of degree is zero. Therefore, we can say that the proposition must be true if the following is true:

n ( +1) -n ( +1 2 +1) + 1 - n -n ≥ 0 Since ≥ 2, it follows that this is true if (n ( +1) -n ( +1 2 +1) ) -( + 1)(n -n) ≥ 0 n + + 1 -n ( -1) -n +1 2 - n ( -1) ≥ 0
It applies that for ≥ 2 one can say -1 ≥ +1

2

. Thus:

n + + 1 -2n ( -1) - n ( -1)
> 0 and further simplified

(n -1)n ( -1) 2 - n ( -1) > 0
Which proves that M (n, + 1) -M (n, ) > 0 . Furthermore, it illustrates that the relative error η is close to zero. 2.8 shows that the relative distance to the lower bound can be almost neglected. Therefore, it can be approximated that the first partial derivative of M (n, ) in respect to the word length is:

∂M (n, ) ∂ (n, ) ≈ n (-1+ ) log(n)
Despite the fixed cardinality of the alphabet used in the graphics, ∂M (n, ) ∂ shows that the graphics and the results can be considered as generally valid.

Comma-free separation of the trinucleotide permutation classes

Existing theories of hypothetical ancestor genetic codes state that there was a code, which was non-degenerate and comma-free. One of the most famous theories has been proposed by Shepherd [START_REF] Szathmáry | Four letters in the genetic alphabet: a frozen evolutionary optimum[END_REF], Clarke [10], Crick et al. [START_REF] Crick | A speculation on the origin of protein synthesis[END_REF]. Their theory is based on the so-called RNY code (R = purine (G or A); Y = pyrimidine (T = C); and N = (A,C,G,T)). A code following their theory would have had 16 triplets encoding only 8 amino acids. In 1990, Neveln [START_REF] Neveln | Comma-free and synchronizable codes[END_REF] suggested that if such synchronizable codes had an influence on the development of the hypothetical ancestor code, such codes could be used as a guideline in the search for a primitive genetic codes. We took up the idea of the article that comma-free codes can support the search for these hypothetical ancestor codes and obtained results that can support the research as a theoretical basis. In our approach, a reverse-engineering of the evolution, we present a method to separate all maximal circular codes into four equally size comma-free subsets.

To separate maximal circular codes into four comma-free subsets, this subsection presents a method for separating the 20 circular trinucleotide permutation classes into four equally sized sets. These subsets will be called comma-free subsets S 1 -S 4 . A code X ⊂ S i containing only words from one of the four comma-free subsets is either comma-free or not even circular. Definition 18. Let S 1 , S 2 , S 3 , S 4 ⊂ B 3 be equally sized sets of codons, so that:

S i ∩ S j = ∅ with i, j ∈ {1, 2, 3, 4}, i = j and i≤4 i=1 S i = B 3 \ {AAA, T T T, CCC, GGG}
Each set S i is defined so that for a maximal trinucleotide circular code X ⊂ B 3 , the subset: This also proves that any maximal circular code can always be separated into four comma-free codes of size five. Let us assume, X * ⊂ B 3 is a trinucleotide maximal circular code. And X = X * ∩ S i , where i ∈ {1, . . . , 4} is a subset of one of the four comma-free subsets. Therefore, X must be comma-free. Next, we introduce the construction of the four comma-free-subset.

X S = X ∩ S i for i ∈ {1, 2, 4, 4}
Observation 2.2.1. The four subsets in Table 2.5 separate the RNY code into four complementary subcodes of size four.

{GAT, AGT, AAC, GCC} ↔ {AT C, ACT, GT T, GGC} and {GCT, GT C, ACC, AAT } ↔ {AGC, GAC, GGT, AT T }

The observation 2.2.1 presents evidence that the RNY code appears in the Table 2.5. Astonishingly the appearance of the RNY is in four equally sized complementary sets. Construction method 2.2.4. Recall the graph property of a graph G(X ) = (V (X ), E(X )) in association with a comma-free code. The longest path in G(X ) is l max (X ) = 2. To guarantee that l max (X ) ≤ 2, it is sufficient to guarantee that for dinucleotide vertices v ∈ V (X ) ∩ B 2 , the degree d(v) = 1. Hence, if l max (X ) = 1, the longest path in G(X ) is in the form of:

p : a 1 → n 1 → a 2
The four comma-free subsets S 1 -S 4 in Table 2.5 are structured so that the following applies to all codons in the same subset: For all

H 1 , H 2 ⊂ S i it follows that T (H 1 ) ∩ T (H 2 ) = ∅
The comma-free subsets S 1 -S 4 can easily be constructed under the above condition.

The actual construction is now trivial.

Mapping functions

The focus of this last subsection of the chapter lies on the construction of a model which allows for a binary representation of a circular code over an arbitrary alphabet. To the best of our knowledge, the results obtained cannot be readily associated with biological research. This mapping is developed as an adapter to research methods from information technology. Possible applications are methods like a binomial distribution to determine if a sequence is random. Another promising branch of research are artificial neural networks to detect patterns in binary sequences. When a code is mapped from a source Σ alphabet to a binary target Σ 2 = {0.1}, it is necessary to preserve the relevant properties with respect to the theory of circular code. The properties mentioned are: Circularity, comma-free, selfcomplementary and C . The following section first introduces an algorithm that ignores the maximum size of the original code. A second approach shows the possible mappings where the maximum size was taken into account. However, this limits the amount of possible mappings.

We will denote X b as the binary representative, Σ 2 is denoted as the binary alphabet and * is the word length of X b . Definition 19. Let X o ⊂ Σ be a -letter code over an alphabet Σ and X b ⊂ Σ * 2 its binary representation. Then, the mapping function t:

t : Σ → Σ * 2
is defined so that for X b = t(X o ) the following must hold:

• X b is circular if X o and vice versa • X b is comma-free if X o and vice versa • X b is self-complementary if X o and vice versa • X b is C if X o and

vice versa

Except for the self-complementarity of the listed properties in Definition 19, all of them are naturally defined and can easily be adapted to any alphabet. To obtain the self-complementarity of the code X o , a complementary mapping of the letters of the alphabet Σ 2 is required. Since there is no natural complementary mapping in the binary alphabet, it must be created beforehand. For the binary case, this can be easily achieved, since there is only one logical option: c(1) = 0 and c(0) = 1.

Theorem 2.2.1. Let ≥ 2 be an integer and X o ⊂ Σ be a -letter code over an alphabet Σ. Then, the mapping function t(•) conserves the properties listed in Definition 19 if we find a mapping function to map the letters in the alphabet to an binary code denoted as X w :

t a : Σ → X w so that X w = t a (Σ) ⊂ Σ * / 2
is a comma-free self-complementary binary ( * / )-letter code. Additionally, X w must be comma-free in every circular permutation of X w .

Proof. Let X o ⊂ Σ be a code and X b = t(X o ) its binary representative. We define X w = t a (Σ) as a binary code representing the alphabet Σ.

Circular The definition of a circular code says that any concatenation of words written on a cycle can only be decomposed into words in one reading-frame.

To prove that Theorem 2.2.1 is true, we simply refer to this definition. If words can only be decomposed into words within one reading-frame, it must also be true for tuple of words in X w .

Comma-free If X w is comma-free, this means that any concatenation of words in X w is frameshift robust. It is easy to see that it must be true for tuples of X w .

self-complementary

If X w is self-complementing, it is self-evident that X b is self-complementing when X o is.
C We would like to refer to the point Comma-free in this proof. Since X w is defined as comma-free code in every circular permutation X w , we can use the same argument.

Construction method 2.2.5. Let us first reuse the notation from above. Let X o ⊂ Σ be a -letter code and X b = t(X o ) its * -letter binary representative. We define X w = t a (Σ) as a ( * / )-letter binary code representing the alphabet Σ.

We start with the construction of X w . In a first step, a correct word length * of of the binary representative X b needs to be determined. For this construction algorithm, the * must be chosen as the alphabet length of the source code X o plus 1 times the word length

* = • (|Σ| + 1)
To construct X w , the letters in Σ must be arranged in linear order. The positions of the complementary letters need to be inverse. Suppose A, B ∈ Σ being letters in Σ and A is the complement of B. Consequently, the position of B in the linear order equals 1 + minus the position of A in the order. In the genetic context we can arrange the order of the letters in eight different ways as follows:

(1)

A < C < G < T ; (2) T < C < G < A; (3) A < G < C < T ; (4) T < G < C < A; (5) C < A < T < G; (6) C < T < A < G; (7) G < A < T < C or (8) G < T < A < C
Each linear order leads to a different mapping result.

If we then construct X w , we will build the words letter by letter in the predefined order. We start with a word that has a leading 1, followed by multiple 0. For each subsequent word, we replace the first 0 with a 1. This ensures that X b has all the required properties. See the Example 19.1 for B Example 19.1. Let X * be a trinucleotide C 3 code: AAG,AAT,ACC,ACG,ACT,AGC,AGG,AGT,ATC,ATG, ATT, CCG, CCT, CGG, CGT, CTG, CTT, GGT, GTT} Let t a : Σ → X w be the mapping function so that X w ⊂ Σ 5 2 . The linear order used for t a (•) is A < C < G < T . It can be defined as:

X * = {AAC,
A → 10000 C → 11000 G → 11100 T → 11110
Which follows that X w = {10000, 11000, 11100, 11110}. Consequently, t(X * ) is a binary C 15 code: As Table 2.6 reveals, the possible combinations are limited. More disappointingly, no relationship to an evolutionary model of the genetic code could be found. Yet, this is only to the best knowledge of the author. If there are models that can be linked to these numbers, we hope that a reader will recognize this and be able to apply this table.

t(X * ) = {100001000011000,

Summary of Chapter 2

In summary, a (genetic) circular code can be fully classified by the means of its associated graphs. We have shown that for a circular code X ⊂ B 3 , the path length of the longest path l max (X ) must satisfy the following conditions:

1. 1 ≤ l max (X ) ≤ 8;
2. If X is self-complementary, then l max (X ) ∈ {1, 2, 3, 4, 6, 8}, i.e., l max (X ) = 5, 7 are excluded;

3. If X is maximal and self-complementary, then l max (X ) ∈ {4, 6, 8}, i.e., in addition to (2), l max (X ) = 1, 2, 3 are impossible.

These conditions are refined for maximal circular codes by the three statements below:

1. If l max (X ) = 4, then the longest paths are of the form

a 1 → b 1 → a 2 → b 2 → a 3
2. If l max (X ) = 6, then the longest paths are of the form

b 1 → a 1 → b 2 → a 2 → b 3 → a 3 → b 4
3. If l max (X ) = 8, then the longest paths are of the form

a 1 → b 1 → a 2 → • • • → a 4 → b 4 → a 5
In this chapter we introduced the the reading-frame number n X . This number indicates how many nucleotides are needed in a sequence to retrieve the reading frame. In Theorem 2.1.4, we formulated statements about the reading-frame number n X . These statements are:

1. n X = l w (p) + 2, if p = a 1 → b 1 → • • • → b k or p = b 1 → a 1 → • • • → a k ; 2. n X = l w (p) + 1, if p = a 1 → b 1 → • • • → a k ; 3. n X = l w (p) + 3, if p = b 1 → a 1 → • • • → b k ,
where the nucleotide b i ∈ B and the dinucleotide a i ∈ B 2 for any i. In the Section 2.1.2 we introduced a classification of the codes based on their longest path in the graph they are associated with. Table 2.7 lists all classes and the reading-frame numbers associated with the classes.

Longest path classes:

X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 Readingframe number n X : 5 6,7 8 9,10 11 12,13 14 15 Furthermore, we were able to fully classify all graphs associated with a selfcomplementary code of a size of at least 18 using recognizable conditions. These conditions are formalized in the Theorem 2.1.5:

1. | X | is even, i.e. | X |= 18 or | X |= 20 (and hence maximal); 2. V (X ) = ← ----- c(V (X )); 3. d + (v) = d -( ← -- c(v)) for any vertex v ∈ V (X ).
Five main objectives have been achieved in the second section 2.2 of this chapter. Firstly, an advanced algorithm to calculate the maximal size of circular codes was presented. This improved algorithm is easy to script and has improved performance in terms of its input. Subsequently, an expression to calculate all circular permutation classes for an arbitrary finite alphabet and an arbitrary word length has been introduced:

L(n, ) = f ∈F (λ f n f )
Where the coefficients λ f for f ∈ F are defined as:

λ f = 1 i∈F f µ(i) f i
Thirdly, a full characterization of the maximal size of circular codes was given. The introduced approximated first partial derivative of M in respect of is

∂M (n, ) ∂ ≈ n (-1+ ) log(n)
This was followed by a mapping function as a potential machine to replicate an evolutionary process. Table 2.6 displays feasible evolutionary transformations without loss of circular properties. Finally, the chapter concluded with a separation of the 20 circular permutation classes into four comma-free subsets, which proves that any maximal circular code can be separated into four comma-free codes of size five.

Chapter 3 Tessera circular codes

This chapter continues the examination of a potential ancestor code. The model used for the research depicted in this chapter is that of the so called Tessera code. When they first introduced this model, Gonzalez, Giannerini and Rosa [START_REF] Gonzalez | On the origin of degeneracy in the genetic code[END_REF] pointed out that the degeneration in amino acid coding has often been neglected in comprehensive evolutionary theories. Yet, there has also been some important research on this topic in the second half of the last century. In particular, the model by Yury Borisovich Rumer from 1966 [START_REF] Yu | Translation of 'systematization of codons in the genetic code [i]' by yu. b. rumer[END_REF], which was taken up by Fimmel and Strüngmann [START_REF] Fimmel | Yury borisovich rumer and his 'biological papers' on the genetic code[END_REF], was the first to show that the occurrence of degeneration as a repercussion of symmetry cannot be ignored. In the work of Gonzalez, Giannerini and Rosa a new possible evolutionary step in amino acid coding was introduced. Their idea states that degeneration is based on the principles of symmetry. Such a behavior can often be observed in nature. One of the best-known examples the field of quantum mechanics, where we can say that quantum degeneration is a consequence of symmetry. Hence, it is only logical to apply this model to the degeneration of the genetic code.

The first section 3.1 of this chapter introduces the structure and main principles of the Tessera codes. In the following chapter 3.2, we specify the behavior of Tessera codes under the constraints of the circular code theory. The sections 3.3 and 3.4 put two construction methods of circular Tessera codes forward. Both, the method in section 3.3 as well as the one in section 3.4 can construct all maximal Tessera codes. As a refined version of the method in chapter 3.3, the method in chapter 3.4 can also construct comma-free codes and circular codes of any size. Both methods conclude with properties of circular Tessera codes derived from the constructed codes.

Introduction of Tesserae

Existing theories describe an evolutionary ancestor to the modern genetic code that consisted not only of trinucleotides but also of dinucleotides, tetranucleotides or combinations of them (see [START_REF] Gonzalez | On the origin of the mitochondrial genetic code: Towards a unified mathematical framework for the management of genetic information[END_REF]3,[START_REF] Seligmann | Putative anticodons in mitochondrial trna sidearm loops: Pocketknife trnas?[END_REF][START_REF] Patel | The triplet genetic code had a doublet predecessor[END_REF][START_REF] Wilhelm | A new classification scheme of the genetic code[END_REF][START_REF] Wu | Evolution of the genetic triplet code via two types of doublet codons[END_REF]). Among others, there are theories that propose the so-called Tessera codes, an especially selected subset of tetranucleotides, for the role of an ancestor code. Figure 3.1 shows a hypothetical evolutionary timeline including the Tessera codes. In this hypothetical model the Tessera codes appear as a link between the primitive genetic codes and the early genetic code. As mentioned above, the Tessera code was developed to situate symmetry as the reason for degeneration in the evolution of the genetic code. The evidence presented in article [START_REF] Gonzalez | On the origin of degeneracy in the genetic code[END_REF] illustrates that the Tessera code is one possible step of the evolutionary process of the genetic code. Therefore, a combination of Tessera code theory and circular code theory could mutually reinforce each other and also provide a hypothetical description of their roles in RNA and DNA sequences. This work serves as a guideline to identify the detection of circular Tessera codes in prehistoric RNA/DNA sequences, thus providing a theoretical basis.

T ESS ⊂ B 4

The formal definition of Tesserae uses a Klein-four-group (V, •). In section 1.2.7 a group (L, •) has already been introduced [START_REF] Fimmel | Dinucleotide circular codes and bijective transformations[END_REF]. This group is defined as V ⊂ L. While all transformations in L maintain the codon-anticodon relationship, the subset V can additionally be interpreted geometrically as a symmetry group of a square. These four transformations are invariant with respect to the chemical properties of nucleotides [START_REF] Gonzalez | The mathematical structure of the genetic code[END_REF]. Figure 3.2 shows the geometric structure of the group (V, •). As for (L, •), • is the associative operator and V ⊂ L is a set of transformations, so that V contains a neutral element I and the inverted π -1 = π for all π ∈ V. Accordingly, all transformations in V are of order two. As visualized in Figure 3.2, V is commutative. The following list shows three properties of V. All of these properties can easily be traced using Figure 3.2. These properties are:

π 1 • π 1 = I for all π 1 ∈ V π 1 • π 2 = π 3 for all π 1 = π 2 = π 3 ∈ V \ I π 1 (b) = b for all π 1 ∈ V \ I and b ∈ B
In conclusion, these properties show that (V, •) is an isomorphism to a so called Klein-four group.

w = b 1 b 2 π(b 1 b 2 ) ∈ T ESS with π ∈ V and b 1 b 2 ∈ B 2 1
The T ESS can be classified as a code because each concatenation of w ∈ T ESS has a unique decomposition over T ESS. The following table lists all Tesserae:

GC GCGC GCCG GCAT GCT A GT GT GT GT CA GT AC GT T G T A T AT A T AAT T ACG T AGC T C T CT C T CAG T CCA T CGA T G T GT G T GAC T GCA T GGT

As can be seen in Table 3. ). This indicates that the Tessera code T ESS is 1error-correcting. It was shown in [START_REF] Fimmel | Linear codes and the mitochondrial genetic code[END_REF] that T ESS can be obtained as a linear code from B 3 as well as by the so-called Plotkin construction from B 2 [START_REF] Fimmel | Linear codes and the mitochondrial genetic code[END_REF]. In [START_REF] Gonzalez | On the origin of the mitochondrial genetic code: Towards a unified mathematical framework for the management of genetic information[END_REF] the idea of symmetric primeval adapter molecules was utilized to propose an ancient model of tRNA adapters that explains the reading mechanism and degeneracy distribution of the Tesserae. These molecules were able to recognize the normal reading-frame in the coding strand in the 3'-5' direction, in the complementary strand in the 3'-5' direction, in the coding strand in the reverse 5'-3' direction and in the complementary strand in the reverse 5'-3' direction. From the structure of the Tesserae, it is evident that self-complementary Tesserae exist, e.g. ACGT. This served as an argument in [START_REF] Gonzalez | On the origin of degeneracy in the genetic code[END_REF], which states that the Tessera code allows a degeneracy 2 and 4 only. Maintaining the degeneracy, an algorithm was suggested in [START_REF] Gonzalez | On the origin of degeneracy in the genetic code[END_REF] for passing from the Tessera code back to the (mitochondrial) genetic code in the following way: We assign a letter in the genetic alphabet via I ↔ A, SW ↔ T, KM ↔ C and YR ↔ G to each of the transformations from V and then perform the algorithm displayed in Figure 3 For instance, the Tessera ACGT will be mapped onto the codon CTT = cod(ACGT ), since KM (A) = C and SW (C) = G. However, note that the two mappings tess(•) and cod(•) are not inverse to each other.

Circular Tessera codes

As both the Tessera code theory and the circular code theory promote the study of the hypothetical ancestor codes, this chapter will give a theoretical guidance for the combined investigation of these two theories. In contrast to the 20 complete trinucleotide circular permutation classes, there are only twelve complete Tessera circular permutation classes, each containing four elements. Four incomplete Tessera classes contain one element {AAAA}, {CCCC}, {GGGG}, {T T T T }, and six classes with two elements each are structured like this: {ACAC, CACA}. Table 3.2 shows all complete equivalence classes of the Tesserae.

Tessera Shift 1 Shift 2 Shift 3 Class number

In the following, the set of 48 Tesserae in Table 3.2 will be called T E ⊂ T ESS. Recalling the argument used for the construction of the equation M (|Σ|, ) (see Section 2.2.1), the maximal size of a code is equal to the number of complete circular permutation classes. Hence, the maximal size of a circular Tessera code is 12. Note, that M (4, 4) = 60 (for all tetranucleotide), whereby the maximal size of a circular Tessera code is only 12 [START_REF] Fimmel | Circular tessera codes in the evolution of the genetic code[END_REF]. Proposition 3.2.1. Let X be a Tessera code. Then the following holds:

(i) The maximal length of a cycle in the 1-component C 1 (X ) is 2 (ii)
The maximal length of a path in the 1-component C 1 (X ) that does not contain a cycle is also 2;

(iii) The maximal length of a cycle in 2-component C 2 (X ) is 4. In particular, the maximal length of a path that does not contain a cycle is 3.

Proof. Let X be a Tessera code. We first prove (i) by showing that any path in C 1 (X ) of length 2 which starts with an 1-node must contain a cycle. Hence, assume that C 1 (X ) contains a path of length 2, e.g. Next, we prove (ii) by showing that a path of length 2 in C 1 (X ) may not contain a cycle if it starts with a trinucleotide. Assume that C 1 (X) contains a path of length 2 that begins with a 3-node, e.g. Claims (i) and (ii), however, show that the path of length 3 in C 1 (X ) must be cyclic.

We now prove (iii) by showing that any path of length 4 in C 2 (X ) contains a cycle. Assume that C 2 (X ) contains a path of length 4, e.g. By definition of G(X ), there are permutations π 1 , π 2 , π 3 , π 4 ∈ V such that

π 1 (b 1 b 2 ) = b 3 b 4 , π 2 (b 3 b 4 ) = b 5 b 6 , π 3 (b 5 b 6 ) = b 7 b 8 , π 4 (b 7 b 8 ) = b 9 b 10
If one of the π i is the identity, we obtain a cycle of length 1 (a loop). Thus, all π i are different from the identity. If π 1 = π 2 , then b 1 b 2 = b 5 b 6 , since π2 1 = I. Thus, this presents us with a cycle of length 2. Consequently, π 1 = π 2 and similarly π 2 = π 3 , π 3 = π 4 . If π 1 = π 3 , then the group structure of V implies that π 1 •π 2 = π 3 and so b 7 b 8 = b 1 b 2 . Hence, we obtain a cycle of length 3. Finally, if π 1 = π 3 , then similar arguments to those listed above show that we get a cycle of length 3 or π 2 = π 4 holds. Now,

π 4 (π 3 (π 2 (π 1 (b 1 b 2 )))) = π 2 (π 1 (π 2 (π 1 (b 1 b 2 )))) = b 9 b 10 ,
but V is commutative, and all elements in V are of order 2. Hence,

b 9 b 10 = π 2 (π 1 (π 2 (π 1 (b 1 b 2 )))) = b 1 b 2 .
Consequently, the path itself is a cycle of length 4. As a corollary, we obtain an important theorem. 2 Proposition 3.2.1 can be interpreted so that Tessera codes favor circularity. Short paths in the representing graphs equal small reading-frame numbers. In the following section, we construct circular and comma-free Tessera codes in order to identify characteristic properties of such codes.

Construction of circular Tessera codes

This section proposes a method to construct all circular Tessere codes. The first part of the construction method, which is also published in the paper [START_REF] Fimmel | Circular tessera codes in the evolution of the genetic code[END_REF], focuses on a general construction of circular Tessera codes. The second part depicted in the subsequent chapter 3.4 is unpublished and refines this construction. Based on the refined algorithm, a combinatorial calculation is introduced. This allows to calculate the exact number of codes with certain properties.

Construction using equivalence classes of dinucleotides

The construction of all maximum circular Tessera codes, which is introduced in this chapter, is achieved by following three main steps. First, the 16 possible dinucleotides are divided into four equivalence classes of size four by the means of the Klein-four-group V. Secondly, for each of the four equivalence classes obtained, we define a tournament, i.e. a directional graph the distinctive features of four vertices representing each dinucleotide. We use these tournaments to construct non-circular codes of length 24 with an acyclic 2-component C 2 . Finally, in a third step, we construct maximal circular Tessera codes from the codes obtained in the previous step. The last section of this chapter is dedicated to the properties obtained from the constructed codes.

Step 1: As was already proven, the graph 1-component C 1 (X ), which is associated with a circular Tessera code X ⊂ T E, either has no path greater than 2 or X is non-circular. More precisely, if C 1 (T E) is acyclic, the code T E must contain two Tesserae from the same circular permutation class. Considering this, the construction of a maximal circular Tessera code can nearly be reduced to the problem of constructing a valid and acyclic C 2 (X ) that represents a valid Tessera code T E.

In these first two steps, we will show how to construct these acyclic maximal C 2 . The codes associated with the C 2 allow to derive all maximum circular Tessera codes. To start the construction of the C 2 , the 16 dinucleotides B 2 must be divided into four equivalence classes of four dinucleotides. We refer to them as:

B I ∪ B SW ∪ B Y R ∪ B KM = B 2
Each of these equivalence classes is defined as an orbit of the dinucleotides w ∈ B 2 under the transformations in V. The orbit of an element w is denoted as V • w: Proof.

V • w = {g • w | g ∈ V} When V acts on B 2 ,
β ∈ V, γ ∈ V \ I, b 1 ∈ {A, T, G, C} b 1 b 2 b 3 b 4 = b 1 b 2 γ(b 1 b 2 ) and b 1 = β(b 2 )
follows that: Proof. Each Tessera can be displayed as:

b 2 = β(b 1 ) & b 3 = γ(b 1 ) & b 4 = (β • γ)(b
b 1 b 2 = π 1 (b 3 b 4 ) with π 1 ∈ V.
According to Proposition 3.3.1, this entails that:

T E = T E I ∪ T E SW ∪ T E Y R ∪ T E KM
according to the equivalence classes.

T E β = {D 1 D 2 ∈ B 4 |D 1 , D 2 ∈ B β } where β ∈ V 3
Therefore, each Tessera code X must be decomposable into four code fragments with respect to the four Tessera subsets. These code fragments are called X I , X SW , X Y R and X KM . In Definition 24, the fragments are correctly defined:

Definition 24. Let's assume X ⊂ T E is a circular Tessera code. Then X = X I ∪ X SW ∪ X Y R ∪ X KM with: X I ⊆ T E I X SW ⊆ T E SW X KM ⊆ T E KM X Y R ⊆ T E Y R
It follows that each C 2 associated with the Tessera code must be divisible into four disjoint components. Each of these components only consists of nodes representing the dinucleotides of only one of the equivalence classes listed in Table 3.3.

In graph theory, a tournament is defined as a directed graph so that the following holds: Every complete directed acyclic graph must be a tournament. Figure 3.7 shows such a tournament. The number of edges in a tournament is n 2 , where n is the number of vertices of the graph. Thus, if X * ∈ {X I , X SW , X Y R , X KM } and if C 2 (X * ) is acyclic, then C 2 (X * ) has at most4 2 = 6 edges. Furthermore, it can be summarized that for each circular Tessera code, X can be decomposed as follows:

X = X I ∪ X SW ∪ X Y R ∪ X KM where |X I | ≤ 6, |X SW | ≤ 6, |X Y R | ≤ 6, |X KM | ≤ 6
Step 2: Construction of codes assigned to a maximal acyclic C 2 (X ). Based on the fact that each Tessera code can be decomposed into the four fragments, it is possible to construct four maximal (size of six) circular fragments X i , X SW , X Y R and X KM as circular Tessera codes to obtain a code X of length 24. To ensure that C 2 (X ) is an acyclic code, each fragment must be represented by an acyclic C 2 . Fortunately, it can be said that if each fragment has an acyclic C 2 , then C 2 (X ) must also follow. This must be true, since the C 2 components in a graph representing the fragments are disjointed. So far, we can say that X must be structured like this:

X = X I ∪ X SW ∪ X Y R ∪ X KM with |X | = 24
and

|X I | = |X SW | = |X Y R | = |X KM | = 6
The C 2 (X ) is nothing other than the composition of the four disjoint components. Hence, C 2 (X ) must be acyclic if each component is acyclic. Since a circular Tessera code has a size of 12 at the most, G(X ) must not be acyclic. Therefore, C 1 (X ) must not be acyclic. Yet, for this step it can be ignored that the C 1 (X ) will be cyclic, since the design goal is to obtain an acyclic C 2 (X ). As shown above, it is sufficient that C 2 (X I ), C 2 (X SW ), C 2 (X Y R ) and C 2 (X KM ) are acyclic to ensure that C 2 (X ) is acyclic. Thus, each component must be an isomorphism to the graph in Figure 3.7. As mentioned above, a complete directed acyclic graph must be a so called tournament.

Construction of a tournament:

To construct such an isomorphism, one of the numbers 1, 2, 3, or 4 can be assigned to the vertices representing the dinucleotides and add directional edges from each vertex to the vertices with a higher number. This leads to 4! possible assignments per subgraph. Consequently, there are a total of (4!) 4 = 331776 Tessera codes of size 24 with an acyclic C 2 . The representatives of these codes will be called X .

Step 3: The following step uses the 331776 Tessera codes to construct all possible maximal circular Tessera codes. The C 2 is already acyclic for all these codes. Hence, it is necessary to focus on the C 1 . It has been shown that each cyclic path in C 1 must be associated with two Tesserae from the same permutation class. Thus, since there are twelve complete circular permutation classes, it follows that each C 1 representing one of the constructed Tessera codes has at least twelve cyclic paths of length 2. The subsequent section explains the nature of these cyclic paths and illustrates how they can be removed. In order to do this, the structure of the subsets of T E must first be explained in detail.

Proposition 3.3.3. Let T E β , T E γ ∈ {T E I , T E SW , T E Y R
, T E KM } be two subsets of T E and β, γ ∈ V. Then the following must hold: (i) The set of the circular 2-permutation of all words in T E β is again

T E β . T E β = α 2 (T E β ) (ii)
The set of the circular 1-permutation of all words in T E β is the set of the circular 3-permutation of all words in T E β and vice versa.

α 3 (T E β ) = α 1 (T E β ) and α 1 (T E β ) = α 3 (T E β ) (iii)
The set of the circular 1-permutation of all words in T E β•γ and T E (β) have an intersection of four words.

|T E γ ∩ α 1 (T E (β•γ) )| = 4
Proof. First, we prove claim (i). Let Next, we prove claim (ii). If (i) is true, (ii) follows. This can be confirmed with the associative behavior of the circular permutation (α

1 • α 2 )(•) = α 3 (•) and (α 3 • α 2 )(•) = α 1 (•).
Finally, we prove claim (iii). Let b 1 b 2 , γ(b 1 b 2 ) ∈ B β be two dinucleotides in the same equivalence class where β ∈ V and γ ∈ V \ I. The claim requires that each circular 1-permutation of α

1 (b 1 b 2 γ(b 1 b 2 )) = b 2 γ(b 1 b 2 )b 1 is in T E (β•γ) . This must be true, since b 2 (β • γ)(b 1 ) and b 1 (β • γ)(b 2 ) ∈ B (β•γ) .
Hence, there are exactly four Tessera in form of Dγ(D) ∈ T E β for all D ∈ B β . It follows that only these four Tesserae in T E β have their circular 1-permutation in T E (β•γ) .

The structure outlined in Propostion 3.3.3 implies that the twelve Tesserae in each of the four subsets can be classified in three groups of four Tessera. Each group consists of two Tesserae and their circular 2-permutations. These groups are united by the fact that all 1-permutations and 3-permutations are in the same different subsets. Proposition 3.3.4. Let X be one of the codes of size 24. For any Tessera w ∈ X , either α 1 (w) or α 3 (w) is in X .

Proof. Therefore, let us assume the following:

β, ∈ V, γ ∈ V \ I, = β • γ, b 1 ∈ {A, T, G, C} so that: B β , B ∈ {B I , B SW , B Y R , B KM } and B β = B with: b 2 = β(b 1 ), b 3 = γ(b 1 ) = (b 2 ), b 4 = (b 1 ) w 1 = b 1 b 2 b 3 b 4 = b 1 b 2 γ(b 1 b 2 )
which shows that:

w 1 =
|X ∩ T E γ ∩ α 1 (T E )| = 2
The two other words of the same permutation class α 1 (w 1 ) and α 3 (w 1 ) are represented by the two directed edges between b 2 b 3 and b 4 b 1 in the C 2 (T E ). Figures 3.9-3.12 illustrate these dependencies. If this is applied to the constructed Tessera codes of size 24, it can be said that every word in such a code X has a circular equivalent within the same code X .

Assuming w ∈ X , it follows that α 1 (w) ∈ X ∨ α 3 (w) ∈ X This must be true because, for one, every tournament is completed. Consequently, for each Tessera in w ∈ T E at least one of the two w ∈ X or α 2 (T ) ∈ X .

Additionally, each tournament is acyclic. Thus, no more than one of the two w ∈ X or α 2 (w) ∈ X . The same must apply to the so-called circular equivalence words α 1 (w) and α 3 (w). It needs to be noted, however, that they must be represented in a tournament other than w and α 2 (w).

From the proof given above, it can be seen that:

|X ∩ α 1 (X )| = |X ∩ α 3 (X )| = 12 and |α 2 (X ) ∩ X | = 0
To ensure that the codes are circular, one of each circular equivalent pairs must be removed. This must be done for all twelve circular equivalent word pairs in such a code X . It follows that any of the 331776 codes can be used to construct 2 12 circular codes. Some of the codes can be constructed more than once. Thus, the total amount of 2 12 × (4!) 4 = 1358954496 constructed maximum circular Tessera codes contains all maximum circular Tessera codes at least once. Nevertheless, some codes appear more than once.

Properties of maximal circular Tessera codes

In this section, properties of maximal circular Tessera codes are listed. All properties in this section are based on the construction of Tessera codes in section 3.3.1. Proposition 3.3.5. Let us assume that X is a circular Tessera code. The longest path in G(X ) can be 3 at most (see Proposition 3.2.1). To refine this suggestion, there can be no more than four of these paths with a length of 3.

Proof. The longest path in a tournament with four vertices is 3 at most. A circular Tessera code has four disjoint components in the C 2 (X ). Each of these components can be extended to a tournament and can therefore only have a path of length 3. The longest path in the C 1 (X ) is 2 at most and can therefore be ignored. This proves the proposal.

The next observation is based on the trinucleotide codes resolving from the mapping function cod(•) [START_REF] Gonzalez | On the origin of degeneracy in the genetic code[END_REF] for passing from the Tessera code back to the (mitochondrial) genetic code. Let us recall cod(•) by displaying it in Figure 3 Let us set the assignment of the letters in the genetic alphabet to each of the transformations from V: I ↔ A, SW ↔ T, KM ↔ C and YR ↔ G. Observation 3.3.1. Let β ∈ V and T E beta ⊂ T E be one of the subsets defined in Definition 23. By applying the mapping function cod(•) to any circular code X β ⊂ T E β we obtain a trinucleotide code X = cod(X β ). The obtained codes of all possible X β are comma-free codes. Additionally, each trinucleotide code X = cod(X β ) is also comma-free for any circular j-permutation of X .

This observation is used in section 6.1 as one element for a hypothesis of the evolution.

Self-complementary

This paragraph presents the characteristics concerning the class of self-complementarity circular Tessera codes. Proposition 3.3.6. Let X ⊂ T E be a self-complementary circular Tessera code. Then X ∩ T E SW = ∅.

Proof. In short: ∀w ∈ T E SW → ← -c(w) = α 2 (w). This fact is made evident by the following word construction:

γ ∈ V \ I, b 1 ∈ {A, T, G, C} w = b 1 SW (b 1 )γ(b 1 )(γ • SW )(b 1 ) = b 1 b 2 b 3 b 4 → w ∈ T E SW ← -- c(w) = SW (b 4 b 3 b 2 b 1 ) = γ(b 1 )(γ • SW )(b 1 )b 1 SW (b 1 ) = α 2 (w)
The proof of Proposal 3.3.6 demonstrates that a self-complementary circular Tessera code X consists only of three fragments:

X = X I ∪ X Y R ∪ X KM where |X I | ≤ 6, |X Y R | ≤ 6, |X KM | ≤ 6
Proposition 3.3.7. Let X ⊂ T E be a self-complementary circular Tessera code and X β a fragment of X . Then, for all w ∈ α 1 (X β ) ∩ T E SW , it follows that ← -c(w) = w.

Proof. Let X ⊂ T E be a self-complementary circular Tessera code and w , where these words are represented by the blue edges). For all of them, it can be said that ← -c(w) = w. This is proven in detail as follows:

= b 1 b 2 b 3 b 4 ∈ X . Further, assume that β, γ ∈ V, so that SW = γ • β with b 1 β(b 1 ) = b 1 b 2 = γ(b 3 b 4 )(see
β ∈ V \ I, γ = SW • β, b 1 ∈ {A, T, G, C} w = b 1 β(b 1 )γ(b 1 )SW (b 1 ) = b 1 b 2 b 3 b 4 → α 1 (w), α 3 (w) ∈ T E SW ← -- c(w) = (SW • SW )(b 1 )(SW • γ)(b 1 )(SW • β)(b 1 )SW (b 1 ) = b 1 b 2 b 3 b 4
This proves that for all w ∈ α 1 (X β ) ∪ T E SW , it follows that ← -c(w) = w.

Proposition 3.3.7 shows that self-complementary circular Tessera codes can have an odd size, which is impossible for self-complementary circular trinucleotide codes.

Proposition 3.3.8. A single tournament representing one of the equivalence classes (table 3.3) is self-complementary only if the numbers 1, 2, 3 and 4 (paragraph Construct a Tournament) are assigned to the dinucleotides in such a way that 1 is complementary to 4 and 2 is complementary to 3.

Example 24.1. As an example, we use the class B KM . In this class, one possible self-complementary assignment would be: 1 → CT , 4 → AG, 2 → T C and 3 → GA. The code X KM = {CTAG, CTTC, CTGA, TCAG, TCGA, GAAG} represented by the tournament is self-complementary.

Proof. This can be explained by using the graph property of self-complementary codes. The property states that each vertex v in the graph of self-complementary codes must have the same incoming degree as the outgoing degree of the complementary vertex c( ←v ) (see Proposition 2.1.2) and vice versa:

d + (c( ← -v )) = d -(v)
In a tournament, this can only be true for the vertices assigned to 1 and 4 as well as for the vertices assigned to 2 and 3.

The following is a property of G(X ), which was discovered in the study of maximum circular codes of codons (RNA triplets) and has already been depicted in section 2.1.5. Suppose Y ⊂ Σ 3 is such a maximum circular code. These conditions address the vertices V (Y ) ∈ G(Y ) associated with Y . Thus, condition (1) and ( 2) of Theorem 3.3.1 apply to all vertices V but only if Y is self-complementary. Theorem 3.3.1. This theorem applies the same conditions as in Theorem 2.1.5 to circular Tessera codes. Let X ⊂ T E be a circular Tessera code. Then X is self-complementary if and only if

1. V (X ) = ← ----- c(V (X )) 2. d + (v) = d -( ← -- c(v)) for all vertices v ∈ V V (X )
Proof. The obligatory existence of condition ( 1) and ( 2) of Theorem 3.3.1 in a graph representing a self-complementary circular Tessera code can be proven in the two components C 1 and C 2 . For Tessera codes, the conditions fit even better because they are not bound to the size of the code. These results show that the conditions are only true if X is a self-complementary code. Thus, this is a contradiction.

C 2 (X ) These conditions must also apply to any C 2 (X ) that represents a circular self-complementary Tessera code X ⊂ T E. The method to prove this is the Pigeonhole principle. The proof shows that condition (1) and (2) of Theorem 3.3.1 must be true for each tournament, which can then easily be extended to the entire graph. Consequently, it is only necessary to prove this for a C 2 of a single fragment of a circular Tessera code.

Assume that X γ ⊂ T E γ is a non-self-complementary circular Tessera code, and C 2 (X γ ) satisfies condition (1) and ( 2) of Theorem 3.3.

1. If d + (v) = d -( ← -- c(v)), it follows that C 2 (T E γ ) cannot be a tournament (see Proposi- tion 3.3.8). Thus, |X γ | <6. Since all the words in the form of b 1 b 2 ← ---- c(b 1 b
2 ) are self-complementary, none of them have any influence on this proof and can be ignored. Even though X SW does not contain a word of this form, it can be said that |X γ | is even. Therefore, |X γ | ∈ {2, 4}. Considering all of the above, the C 2 (X γ ) must be regular. In the case of |X γ | = 4, it must be 2-regular. In the case of |X γ | = 2, it must be 1-regular. The number of options of a 1-regular graph with two edges requires that the represented code is self-complementary and therefore contradictory. A directed acyclic 2-regular graph as in Figure 3.8 only satisfies condition (2) of Theorem 3.3.1:

d + (v) = d -( ← -- c(v)) if D 2 = ← --- c(D 4 ) and D 1 = ← --- c(D 3
). Thus, this must also represent a self-complementary code and is therefore a contradiction. This proves that C 2 (T E γ ) is either non-self-complementary or satisfies condition (1) and ( 2

Refined construction of circular and commafree Tessera codes

The number 2 12 ×(4!) 4 = 1358954496 presented in section 3.3.1 was a first attempt to calculate the the exact number of maximum circular Tessera codes. Even though the number includes all maximum circular Tessera codes, as mentioned above, some codes appear more than once. This section outlines an algorithm that uses characteristics of codes to determine how often each maximum circular Tessera code occurs in this number. The result of this algorithm allows to calculate the exact number of different circular Tessera codes of any size from one to twelve.

The number 1358954496 results from the idea that the (4!) 4 codes of size 24 are each converted to 2 12 circular codes. Suppose that X is a representative of these (4!) 4 constructed codes. 2 12 indicates the twelve circular equivalence relationships within each code. As mentioned above, there are 2 12 different ways to select a w from each circular pair of relationships in X . Additionally, it is obvious that all 2 12 circular codes that resolve from this method are different. However, suppose that Y is another code from the (4!) 4 Tessera codes. Y could be used to construct circular codes that are similar to the circular codes constructed from X . In the worst case, X and Y differ in one word only. In such a case, 2 11 of the codes constructed from X and Y are the same.

To refine the construction so that each code is constructed only once, the new algorithm is based on two categories of features. One of these is called the fragment distribution, the other the circular permutation distribution. The fragment distribution refers to the different options available to distribute the Tesserae in a code to the code fragments introduced in Definition 24. The circular permutation distribution refers to the 4! construction of the four tournaments (see paragraph Construct a Tournament).

Fragment distribution

The fragment distribution refers to the distributions of the Tesserae in a code X ⊂ T E into the four code fragments X I , X SW , X Y R and X KM . The originally constructed codes X in section 3.3.1 have six Tesserae in each fragment:

|X I | = |X SW | = |X Y R | = |X KM | = 6 for all (4!) 4 codes X
The circular code X can only have twelve Tesserae at the most. All possible distributions are listed in Table 3.4 Table 3.4: A list of all possible distributions of circular codes into the code fragments X I , X SW , X Y R and X KM . Each section in the table shows all fragments of codes of a certain code size. The distributions listed range from a code of size four to size twelve, which is the maximum. The distributions are bound by four rules. First, the highest number must be ≤ 6. Secondly, the sum must be equal to the code size. Thirdly, if one of the fragments in one of the distributions is 6, it follows that all other fragments are 4 at the most. Finally, if one of the fragments is 5, it follows that all other fragments are 5 or less. This is due to the circular relationships between the fragments shown in Proposition 3.3.3.

The following pseudocode algorithm provides all possible distributions for the circular Tessera codes with a code size called l. The values returned are in numerical order: 1. allocates an empty agile list of lists to "distributions".

2. allocates an integer to "upperBound. The value is the minimum of 10 and l. The number 10 results from the fact that all fragments are in two circular relations to each other. This means that in any combination of

X 1 , X 2 ∈ {X I , X SW , X Y R , X KM }, it follows that |X 1 ∪ X 2 | ≤ 10 if the code is circular.
3. a for loop from 1 to the minimum of 6 and l. The loop counter variable is called "a". The minimum value is 1, since the number 0 would not terminate. "a" is the first fragment and can therefore not be higher than 6.

4. a for loop from (l -a)/3 to the minimum of upperBound -a and a. The loop-counter variable is the second fragment and is denoted as "b". The minimum value is (l -a)/3 . Consequently, the sum of all fragments must be l. It follows that b ≤ l -a. However, the rest can be divided into three fragments, which gives the lowest possible number for "b ≤ (l -a)/3 " . The upper bound of the for loop upperBound -a or a is derived from the definition of "upperBound" (see line 2).

5. a for loop from (l -a -b)/2 to the minimum of upperBound -a -b and b. The loop counter variable is the third fragment and is called "c". The minimum value is (l -a -b)/2 . Consequently, the sum of all fragments must be l. c ≤ l -a -b follows. However, the rest can be divided into two fragments, which gives the lowest possible number for "c ≤ (l -a -b)/2 ". The upper limit of the for-loop upperBound -a -b or b results from the definition of "upperBound". (see line 2).

6. assembles the distribution and adds it to "distributions". The first fragment is "a", second fragment "b", third fragment "c", and the last fragment, which is the rest, is l -a -b -c.

Circular permutation distribution (CPD)

The CPD refers to the selection of Tesserae within each fragment of a code. In Proposal 3.3.3, it is revealed that a circular fragment can contain six of twelve possible Tesserae. It also presents evidence that these six can be classified by their circular 1-permutations and circular 3-permutations into three classes of two. We define the CPD as the different ways to distribute the Tesserae in a circular fragment to the classes, i.e. each class includes the two Tesserae that have their circular 1-permutations and circular 3-permutations in the same other fragment.

In Definition 25, we define the classes in these fragments. The classes are labeled as A i , B i and C i for a fragment X i .

Definition 25. Suppose B 1 , B 2 , B 3 and B 4 are the four equivalence classes shown in Table 3.3:

{B 1 , B 2 , B 3 , B 4 } := {B I , B SW , B KW , B Y R }
and X 1 , X 2 , X 3 and X 4 are the four fragments associated with the four equivalence classes. We use the index 1 -4 as an implied order. The exact mapping is irrelevant:

T E i := {D 1 D 2 : D 1 , D 2 ∈ B i } for all i ∈ {1, 2, 3, 4}
where D 1 , D 2 , D 3 and D 4 are denoted as the four dinucleotides in B i :

B i := {D 1 , D 2 , D 3 , D 4 } Let D 1 , D 2 , D 3 , D 4 ∈ B 1 and A 1 ∪ B 1 ∪ C 1 := T E 1 Class Circular relationship A 1 = {D 1 D 2 , D 3 D 4 , D 2 D 1 , D 4 D 3 } α 1 (A 1 ) = α 3 (A 1 ) := T E 2 ∩ A 2 B 1 = {D 1 D 3 , D 2 D 4 , D 3 D 1 , D 4 D 2 } α 1 (B 1 ) = α 3 (B 1 ) := T E 3 ∩ A 3 C 1 = {D 1 D 4 , D 2 D 3 , D 4 D 1 , D 3 D 2 } α 1 (C 1 ) = α 3 (C 1 ) := T E 4 ∩ A 4 Let D 1 , D 2 , D 3 , D 4 ∈ B 2 and A 2 ∪ B 2 ∪ C 2 := T E 2 Class Circular relationship A 2 = {D 1 D 2 , D 3 D 4 , D 2 D 1 , D 4 D 3 } α 1 (A 2 ) = α 3 (A 2 ) := T E 1 ∩ A 1 B 2 = {D 1 D 3 , D 2 D 4 , D 3 D 1 , D 4 D 2 } α 1 (B 2 ) = α 3 (B 2 ) := T E 3 ∩ B 3 C 2 = {D 1 D 4 , D 2 D 3 , D 4 D 1 , D 3 D 2 } α 1 (C 2 ) = α 3 (C 2 ) := T E 4 ∩ B 4 Let D 1 , D 2 , D 3 , D 4 ∈ B 3 and A 3 ∪ B 3 ∪ C 3 := T E 3 Class Circular relationship A 3 = {D 1 D 2 , D 3 D 4 , D 2 D 1 , D 4 D 3 } α 1 (A 3 ) = α 3 (A 3 ) := T E 1 ∩ B 1 B 3 = {D 1 D 3 , D 2 D 4 , D 3 D 1 , D 4 D 2 } α 1 (B 3 ) = α 3 (B 3 ) := T E 2 ∩ B 2 C 3 = {D 1 D 4 , D 2 D 3 , D 4 D 1 , D 3 D 2 } α 1 (C 3 ) = α 3 (C 3 ) := T E 4 ∩ C 4 Let D 1 , D 2 , D 3 , D 4 ∈ B 4 and A 4 ∪ B 4 ∪ C 4 := T E 4 Class Circular relationship A 4 = {D 1 D 2 , D 3 D 4 , D 2 D 1 , D 4 D 3 } α 1 (A 4 ) = α 3 (A 4 ) := T E 1 ∩ C 1 B 4 = {D 1 D 3 , D 2 D 4 , D 3 D 1 , D 4 D 2 } α 1 (B 4 ) = α 3 (B 4 ) := T E 2 ∩ C 2 C 4 = {D 1 D 4 , D 2 D 3 , D 4 D 1 , D 3 D 2 } α 1 (C 4 ) = α 3 (C 4 ) := T E 3 ∩ C 3 Table 3.5:
The classification of the Tesserae in a fragment X i . Each set A i , B i , C i can only contain a maximum of two out of four Tesserae for them to be circular.

As revealed in Table 3.5, each class in a fragment has a counterpart in another fragment e.g. the counterpart of A 1 ∈ T E 1 is A 2 ∈ T E 2 and vice versa. It is evident that A 1 contains four Tesserae originating form two circular permutation classes, and A 2 contains the other four Tesserae from to the same two circular permutation classes. Hence, if we assume that X ⊂ T E is a circular Tessera code and Z = X ∩ (A 1 ∪ A 2 ), then |Z| ≤ 2 must follow.

Let us explain the consequences of Definition 25 using an example without loss of generality. Let X ⊂ T E be a circular Tessera code and X

= X 1 ∪ X 2 ∪ X 3 ∪ X 4 is the fragmented representation of X . Assume that w 1 , w 2 ∈ X 1 ∩ A 1 ∪ X .
Considering that X 2 is the fragment containing all 1-permutations and 3permutations of the Tesserae in A 1 , then, with respect to Table 3.5, it follows that |X 2 | ≤ 4, more precisely, class A 2 = ∅ of the fragment X 2 . This occurrence can be used to construct a tabular representation of any circular Tessera code.

|X 1 | |A 1 | |B 1 | |C 1 | |A 2 | |X 2 | |B 2 | |C 2 | |A 3 | |B 3 | |X 3 | |C 3 | |A 4 | |B 4 | |C 4 | |X 4 |
Table 3.6: This table T (X ) represents any circular Tessera code X ⊂ T E. X = X 1 ∪ X 2 ∪ X 3 ∪ X 4 are the four fragments. A i , B i , C i are the three classes of each fragment X i in regard to Table 3.5. Let T r,c be the value in the table at row r and column c. Then, the Tesserae represented at a position T r,c are the circular relatives of the Tesserae represented in T c,r . Hence, 0 ≤ T r,c + T c,r ≤ 2, with r, c ∈ {1, 2, 3, 4} and r = c

The tables are called representing tables of a Tessera code T (T E). From now on X 1 to X 4 are used as placeholders for the four fragments X I , X SW , X KM and X Y R . In relation to a table T (X ), X 1 to X 4 are also used as row references.

Definition 26. Any circular Tessera code can be represented in such a table. A table T representing a circular Tessera code X must be bound to the following conditions:

1. |X i | ≤ 6 2. |X i | = |A i | + |B i | + |C i | 3. 0 ≤ |A i | ≤ 2 & 0 ≤ |B i | ≤ 2 & 0 ≤ |C i | ≤ 2 4. R =     |A 2 | |A 3 | |A 4 | |A 1 | |B 3 | |B 4 | |B 1 | |B 2 | |C 4 | |C 1 | |C 2 | |C 3 |     +     |A 1 | |B 1 | |C 1 | |A 2 | |B 2 | |C 2 | |A 3 | |B 3 | |C 3 | |A 4 | |B 4 | |C 4 |     so that ∀λ ∈ R : 0 ≤ λ ≤ 2
Each table which is built according to the pattern of Table 3.6 represents at least one circular Tessera code. This applies to all tables, but only as long as the listed conditions in Definition 26 are satisfied. 4Example 26.1. Let us assume that X = {AACC, AAGG, AATT, GGCC, GGTT, CCTT, TAGC, TACG, CGAT, ATGC, TGAC, GTCA}

X I ={AACC, AAGG, AATT, GGCC, GGTT, CCTT} X SW ={TAGC, TACG, CGAT, ATGC} X Y R ={TGAC, GTCA} X KM =∅
The fragment distribution in this example is chosen as: 3.7: Among others, this table T (X ) represents the following code X = {AACC, AAGG, AATT, GGCC, GGTT, CCTT, TAGC, TACG, CGAT, ATGC, TGAC, GTCA}.

X 1 = X I , X 2 = X SW , X 3 = X Y
X 1 = X I , X 2 = X SW , X 3 = X Y R and X 4 = X KM .

The exact number of circular Tessera codes

An approach derived from combinatorics is used to calculate the exact number of codes. We first introduce the basics of probability theory on which the calculation of the exact number of Tessera codes is based. Each table T can represent no more than (4!) 5 codes. This number results from the 4! different ways to allocate the four fragments X I , X SW , X KM to the table rows X 1 -X 4 and the 4! different structures of the four tournaments. Definition 27. Let us designate every single combination of fragment allocation and tournament structure as one of (4!) 5 parameter sets θ ∈ Θ of a table. Each element in the parameter sets θ is a tuple

θ := (θ o , θ i )
where θ o stands for the fragment allocation, and θ i is denoted as one of the (4!) 4 tournament structures.

Definition 27 introduces the parameter tuples θ := (θ o , θ i ). To reconstruct a code from a table T one needs to apply the correct θ to the table. X = θ • T Definition 28. Let the tuple (Ω, Pr) be a probability space. Ω is a set called sample set, and Pr is a function which we call probability function. The function is defined so that 0 ≤ Pr(X ) ≤ 1 for all X ∈ Ω and

X ∈Ω Pr(X ) = 1
In this case, we refer to Ω as a set of all circular Tessera codes X represented by a table. Thus, Pr(X ) = 1

|Ω| is valid. Pr(X ) is the probability that an arbitrarily chosen parameter tuple θ ∈ Θ applied on a table constructs the code X .

The probability Pr(X ) for a code can be separated into the so-called inner probability and the so-called outer probability. The inner probability refers to the CPD and the (4!) 4 different combinations of the tournaments. The outer probability refers to the fragment distributions. The first part of this section explains the outer probability Pr o (X ) , which depends on θ o . The second part of this section refers to the inner probability denoted as Pr i (X ), which depends on θ i .

The outer probability is a number Pr o (X ) which indicates how likely it is to obtain a code X when we apply an arbitrary parameter θ o (ignoring θ i ) to a table T (X ) which represents the code X . Hence, the focus is on a certain assignment of the rows designated as X 1 to X 4 to the four different code fragments.

{X 1 , X 2 , X 3 , X 4 } → {X I , X SW , X KW , X Y R }
There are 4! different ways to assign X 1 to X 4 to the four fragments. In the case of example 26.1, the assignment is X 1 = X I , X 2 = X SW , X 3 = X Y R and X 4 = X KM . In this particular case, the probability is Pr o (X ) = 1 4! × 1. This is due to the fact that two different assignments of the fragments cannot represent the same code. Therefore, the distribution in example 26.1 has 4! codes (times the result of P r i (X )). In the theoretical case that two rows of a table can be exchanged without affecting the table, Pr o (X ) = 1 4! × 2. In order to generalize this assumption, let us consider the 4! mappings from X 1 to X 4 as row transformations of a table T associated with the code X , which can be seen in Table 3.8. Suppose G is a transformation group with all possible row transformations of cardinality 4!: All actions in G are defined on a set of all tables M l . M l is a set of all tables T , which represent all codes of one code size l so that:

ϕ : G × M l → M l
This function satisfies all the action group axioms. A stabilizer subgroup G s of G with respect to T is defined as:

G s = {g ∈ G | g • T = T }.
Let us assume that G s is a stabilizer subgroup with respect to T . Generally, it can be said that Pr o (X ) is equal to 1 4! times the cardinality of G s .

|X 1 | |A 1 | |B 1 | |C 1 | |A 2 | |X 2 | |B 2 | |C 2 | |A 3 | |B 3 | |X 3 | |C 3 | |A 4 | |B 4 | |C 4 | |X 4 | (X 1 , X 2 , X 3 , X 4 ) -→ (X 3 , X 2 , X 1 , X 4 ) |X 3 | |A 3 | |B 3 | |C 3 | |B 2 | |X 2 | |A 2 | |C 2 | |A 1 | |B 1 | |X 1 | |C 1 | |C 4 | |B 4 | |A 4 | |X 4 |
Table 3.8: The tables show an example of a row transformation. The transformation g : (X 1 , X 2 , X 3 , X 4 ) → (X 3 , X 2 , X 1 , X 4 ) ∈ G swaps rows 1 and 3 of a table T . The transformation g is one of 4! transformations into G.

In conclusion, there are 4! different θ o to chose from. Hence, Pr o (X ) × 4! of all θ o construct the same code when applied to a table. Since the probability of each code represented by the same table is the same Pr(X ) = 1 |Ω| , it follows that a table

T can construct Pr o (X ) -1 different codes .
List II.2 in the Appendix depicts all T for all codes with the maximum length. The probability Pr o (X ) is fixed for any table and can be used to calculate the number of comma-free codes or the codes of a certain path length in the 2-component C 2 of a graph associated with a code. In all these calculations, the value Pr o is bound to a T and remains the same.

The inner probability is a number Pr i (X ) which indicates how likely it is to obtain a code X when we apply an arbitrary parameter θ i (with a preselected and fixed θ o in the tuples θ = (θ o , θ i )) to a table T (X ) which represents the code X . The fragment distribution θ o is considered as fixed for this calculation. Each 2-component assigned to a code fragment X j can be extended in 4! different tournaments. The total number of Pr i is therefore be considered to be a product of the probability of each row: Pr i (X ) := Pr * i(1) (X )×Pr * i(2) (X )×Pr * i(3) (X )×Pr * i(4) (X ). Consequently, there are 4! different θ i per row to chose from. Thus, Pr i (X ) × (4!) 4 of all θ i construct the same code when applied to a table. Pr i (X ) -1 × Pr o (X ) -1 different codes are represented by the table.

However, to simplify the calculation, Pr i (X ) can be divided into two parts so that Pr i = Pr f ac × Pr ri . Pr f ac is a value that depends on the interaction of all rows, wheras Pr ri refers almost only to the single row.

Definition 29.

Pr i (X ) := Pr f ac (X ) × Pr ri (X )

with Pr ri (X ) := Pr i(1) (X ) × Pr i(2) (X ) × Pr i(3) (X ) × Pr i(4) (X )
and

Pr f ac (X ) := r≤4 r=1 c≤4 c=1 T r,c mod(2) × 2 1 1+T c,r if r = c 1 if r = c -1
Pr f ac is a factor that has been isolated to simplify the calculation of Pr ri . Each row probability Pr i(r) is defined so that the fact shown in Figure 3.13, which shows that every 1 in T stands for four Tesserae that have an influence on the number of possible Tesserae in another row, can be ignored. Instead, each 1 represents only one of two Tesserae. Therefore, each row can be treated separately. To compensate for this, Pr f ac is the factor which is 1 divided by 2 powers to the number of 1's. However, each pair of 1's in T r,c = T c,r appears only once in the exponent.

A The complex Definition 29 of Pr f ac would be unnecessary for tables which represent only maximal circular Tessera codes of size twelve. Because in a T (X ), which represents a maximal circular code X , it follows that if T r,c = 1, then T c,r = 1. However, if the code is not maximal, this condition need not be true.

w 1 w 3 w 5 w 7 α 2 α 2 α 1 α 1 α 1 α 1 α 3 α 3 α 3 α 3 B w 2 w 4 w 6 w 8 α 2 α 2 α 1 α 1 α 1 α 1 α 3 α 3 α 3 α 3
Pr ri (X ) is the product of the probabilities that an arbitrarily θ i applied to each row in T (X ) will reconstruct a fragment X j in X . Let X ⊂ T E be a circular Tessera code and X 1 ∪ X 2 ∪ X 3 ∪ X 4 := X its fragmented representation. Then:

Pr i(j) (X j ) = Pr i(j) (X ) for j ∈ {1, 2, 3, 4} and Pr ri (X ) = j≤4 j=1 Pr i(j) (X j )
There are ten different patterns for the CPD (see Section 3.4.2). Since the introduction of Pr f ac , the order of the values does not matter anymore. Therefore, each line can be reduced to the values of |A|, |B| and |C|. This is called a row pattern and is written as the three values |A|, |B| and |C|. For simplicity, they are written in a numerically ordered string. In Definition 30, we define all values for all row patterns. The subsequent section reveals the origin of these numbers. Definition 30. Let |A||B||C| be a row pattern of a table T in row j ∈ {1, 2, 3, 4} and X j the fragment represented in this row. Then the following list defines the results of Pr i(j) (X j ):

• Row pattern 222 → Pr i(j) (X j ) := 1 4! • Row pattern 122 → Pr i(j) (X j ) := 4 4!×3 = 1 18 • Row pattern 022 → Pr i(j) (X j ) := 12 4!×7 = 1 14 • Row pattern 112 → Pr i(j) (X j ) := 2 4! = 1 12 • Row pattern 012 → Pr i(j) (X j ) := 3 4! = 1 8
• Row pattern 111 → Special case (see Table 3.9): If T contains: ≤ 2 rows of the pattern 111 → Pr i(j) (X j ) := 7 -1 3 rows of the pattern 111

→ Pr i(j) (X j ) := 3 √ 350 -1
4 rows of the pattern 111 → Pr i(j) (X j ) := 4 √ 2400 -1

• Row pattern 011 → Pr i(j) (X j ) := 6 4! = 1 4

• Row pattern 002 → Pr i(j) (X j ) :

= 6 4! = 1 4 • Row pattern 001 → Pr i(j) (X j ) := 12 4! = 1 2 • Row pattern 000 → Pr i(j) (X j ) := 24 4! = 1
Each value associated with an |A||B||C| pattern refers to the set of different Tessera code fragments that can be represented by the pattern. The calculation of the numbers assigned to the row pattern is outlined in the subsequent paragraphs. To summarize the calculation, we first construct all non-isomorphic undirected graphs that match the row pattern. Later, we will provide proof that this is always 1 unless the pattern is 111. We continue by counting the number of different directed graphs that are created by a simple transformation from undirected edges to directed edges. Before we dive deeper into the explanation, we introduce the injective transformation to map a directed graph onto an undirected one. Definition 31. Definition of an injective transformation ϕ(•). Be M the domain of directed acyclic graphs and N the domain of undirected unlabeled graphs. Let ϕ be an injective transformation ϕ : M → N so that a directed graph G = (E, V ) ∈ M is mapped onto a ϕ(G) → Ġ = ( Ė, V ) ∈ N . The transformation ϕ(•) maps each a → b ∈ E to an undirected edge a -b ∈ Ė. Additionally, the transformation anonymizes all v ∈ V by removing the label.

To construct all undirected unlabeled graphs which can be transformed into directed graphs that match the row pattern, we simply prove that there is only one undirected unlabeled graph for each row pattern (unless the row pattern is |A||B||C| = 111). We can then use the transformation ϕ(•) in Definition 31 and transform one arbitrary directed graph (which can easily be constructed) into the undirected one. Lemma 3.4.1. Let X be a Tessera code and X j = X ∩ T E j with j ∈ {1, 2, 3, 4}. We assume that X j = A j ∪ B j ∪ C j so that the line pattern |A j ||B j ||C j | = 111. We suggest that for all possible C 2 (X j ) the results of the transformations ϕ(C 2 (X j )) are isomorphic.

Proof. Let us consider the components of the C 2 (X j ) separately: C 2 (A j ), C 2 (B j ) and C 2 (C j ). Let D ∈ {A j , B j , C j }. If |D| ∈ {0, 2}, ϕ(C 2 (D)) always has the same result for any D. In these cases, ϕ(C 2 (D)) has to be an isomorphism to the graph in Figure 3.14 if |D| = 0 without the green edges and if |D| = 2 with the green edges. This also proves that for all row patterns where |A|, |B|, |C| ∈ {0, 2}, all ϕ(C 2 (A ∪ B ∪ C)) are isomorphisms to each other. Hence, only row patterns which have at least one value of 1 can be represented in two different C 2 so that their transformation ϕ(C 2 ) result would not be isomorphic. Yet, as Figure 3.15 shows, if only one value of |A|, |B| or |C| is 1, all ϕ(C 2 ) must be isomorphic. The same is true when exactly two values of |A|, |B| or |C| are 1. In that case, Figure 3.16 shows that all ϕ(C 2 ) must be isomorphic. This proves that for all row patterns |A||B||C| = 111, all ϕ(C 2 (A ∪ B ∪ C))) are isomorphisms to each other.

(C 2 (X j )) if |A||B||C| = 1X 1 X 2 with X 1 , X 2 ∈ {0, 2}.
The green edges represent the value of X 1 , and the grey edges represent the value of

X 2 Figure 3.16: ϕ(C 2 (X j )) if |A||B||C| = 11X with X ∈ {0, 2}.
The green edges represent the value of X Lemma 3.4.2. Let X be a Tessera code and X j = X ∩ T E j with j ∈ {1, 2, 3, 4}. We assume that X j = A j ∪ B j ∪ C j so that the row pattern |A j ||B j ||C j | = 111. We propose that for all possible C 2 (X j ), the transformation ϕ(C 2 (X j )) has two nonisomorphic results.

Proof. In Figure 3.17 and Figure 3.18, it can be seen that the row pattern 111 can be mapped onto non-isomorphic undirected graphs. It is obvious that the two graphs in Figure 3.17 and Figure 3.18 are the only two non-isomorphic possible results of ϕ(C 2 (X j )).

3.17: ϕ(C 2 (X j )) if |A||B||C| = 111 Figure 3.18: ϕ(C 2 (X j )) if |A||B||C| = 111
For any row pattern |A||B||C| = 111, all possible circular fragments X i have one isomorphic ϕ(C 2 (X i )) for all possible C 2 (X i ). To calculate the number of possible codes which are represented by the row pattern, one can now transform ϕ(C 2 (X i )) back into directed graphs as shown in Figure 3.19. The number of possible directed acyclic graphs indicates the number of the 4! different tournaments that are actually representing different codes.

Example 31.1. Let |A||B||C| = 002 be a row pattern. Figure 3.19 shows that the graph ϕ(C 2 (X j )) can be used to construct four different directed graphs. Thus, this row pattern represents four different code fragments.

D 1 D 2 D 3 D 4 D 1 D 2 D 3 D 4 D 1 D 2 D 3 D 4 D 1 D 2 D 3 D 4 Figure 3.19: Transformation from ϕ(C 2 (X j )) into all possible C 2 (X j ) for |A||B||C| = 002
Using the example in Figure 3.19, one can now calculate Pr i(j) (X ) for a row j ∈ {1, 2, 3, 4}. Let us assume that T is a table which represents a Tessera code. Referring to the example in Figure 3.19, we assume that the row pattern of row j is 002. ϕ(C 2 (X j )) can be transformed into 4 different C 2 (X j ) Hence, the number of different codes is four. In total, there are 4! different θ i to construct the tournaments. Therefore, the chance that one of the 4! different θ i • T leads to the correct 2-component representing X is calculated as follows:

Pr i(j) (X ) = 4 4! = 1 4 see Definition 30
A row in a table T which has a pattern 111 has to be handled differently. The 2-component satisfying the row pattern 111 can be mapped onto one of two non-isomorphic undirected unlabeled graphs. We will call one of them Y as in Figure 3.17 and the other one Z as in Figure 3.18. While Z represents eight codes, Y only represents six codes. Therefore, it can be said that if the pattern 111 appears once in a table T , this row in T represents 6+8 2 = 7 codes. Consequently, it can be said that Pr i(j) (X j ) = 7 -1 . In all the other cases, where T has more than one row with a 111 pattern, Table 3.9 explains the values.

#rows with row pattern 111 Possible combinations of

Y & Z Y or Z 1 Pr i(j) (X ) := 6+8 2 -1 = 1 7 Y Y , ZZ, ZY or Y Z 2 Pr i(j) (X ) := 8 2 +6 2 +8×6×2 4 -1 = 1 7 Y Y Y , ZZZ, Y Y Z or ZZY 3 Pr i(j) (X ) := 3 1 4 (6 3 + 8 3 + 8 × 6 2 + 6 × 8 2 ) -1 = 1 3 √ 350 Y Y Y Z or ZZZY 4 Pr i(j) (X ) := 4 1 2 (8 × 6 3 + 6 × 8 3 ) -1 = 1 4 √ 2400
Table 3.9: This table shows the interactions of multiple rows with a row pattern 111.

The possible combinations of code fragments which are mapped onto Y (Figure 3.17 For a better understanding of Table 3.9, we will disclose the origin of the figures of row two. Let T be a table with two rows of the row pattern 111 so that

j 1 , j 2 ∈ {1, 2, 3, 4}, j 1 = j 2 and |A j 1 ||B j 1 ||C j 1 | = |A j 2 ||B j 2 ||C j 2 | =
111 be the tow row pattern in the rows j 1 and j 2 in the table T . A ϕ(C 2 (X j 2 )) which satisfies the row pattern 111 can either be isomorphic to Y , which can be transformed into six acyclic C 2 (X j 2 ) or to Z, which can be transformed into eight acyclic C 2 (X 2 ). In short, Y represents six codes, and Z represents eight codes. For the rows j 1 and j 2 , the possible combinations of Y & Z are Y Y , ZZ, ZY or Y Z. Hence, two rows can either be Y Y := 6 2 codes, XX := 8 2 codes or XY := 6 × 8 codes. Since each table can only have one of the combinations at once, we combine the values as follows:

8 2 +6 2 +8×6×2

4

. The result of this equation is the result of the product of Pr i(j 1 ) (X j 1 ) × Pr i(j 2 ) (X j 2 ). Consequently,

Pr i(j 1 ) (X ) = Pr i(j 2 ) (X ) = 8 2 + 6 2 + 8 × 6 × 2 4 -1 = 1 7
Observation 3. Example 31.2. Let X ⊂ T E be a circular Tessera code of size 3 and T (X ) the representing table:

1 1 0 0 1 1 0 0 |0 0 1 1 0 0 0 0 Table 3.10: Example of a code X of length 3. X 1 = X 2 = X 3 = 1 and X 4 = 0. Pr o (X ) = 2 4! , Pr f ac (X ) = 1 4 , Pr i(1) (X ) = Pr i(2) (X ) = Pr i(3) (X ) = 12
4! and Pr i(4) (X ) = 1. Hence, the probability that an arbitrarily chosen θ applied to T (X ) constructs X is

Pr(X ) = 1 4 × 1 12 × ( 1 2 ) 3 = 1 384
Comma-free codes The algorithm can be adapted to comma-free codes. Therefore, all but the values of Pr ri (X ) are the same. Hence, we denote the inner probability of comma-free codes as:

Pr rcf i (X ) = Pr f ac (X ) × j∈{1 ,2,3,4} Pr cf i(j)
so that probability Pr cf (X ) of a comma-free code X that an arbitrarily chosen parameter tuple θ ∈ Θ applied to a table T (X ) representing X constructs the comma-free code X .

Pr cf (X ) = Pr rcf i (X ) × Pr o (X )
Definition 32. Let |A||B||C| be a row pattern of a table T in row j ∈ {1, 2, 3, 4} and X j the fragment represented in this row. Then, the following list defines the results of Pr cf i(j) (X j ):

• Row pattern 222 → Pr cf i(j) (X j ) := 0 • Row pattern 122 → Pr cf i(j) (X j ) := 1 6 • Row pattern 022 → Pr cf i(j) (X j ) := 1 8 • Row pattern 112 → Pr cf i(j) (X j ) := 1 6 • Row pattern 012 → Pr cf i(j) (X j ) := 1 6
• Row pattern 111 → Special case (see Table 3.9): If T contains: ≤ 2 rows of the pattern 111 → Pr cf i(j) (X j ) := 7 -1 3 rows of the pattern 111 → Pr cf i(j) (X j ) :

= 3 √ 350 -1
4 rows of the pattern 111 → Pr cf i(j) (X j ) := 4 √ 2400

-1 • Row pattern 011 → Pr cf i(j) (X j ) := 1 6 • Row pattern 002 → Pr cf i(j) (X j ) := 1 4 • Row pattern 001 → Pr cf i(j) (X j ) := 1 2 • Row pattern 000 → Pr cf i(j) (X j ) := 1
To identify the number of possible comma-free codes represented by the row pattern, one can transform ϕ(C 2 (X j )) back into directed graphs as shown above and in Figure 3.19. The number of possible directed acyclic graphs with a path length of 2 at most indicates how many of the 4! tournaments are actually different comma-free codes represented by the row pattern.

The number of Tessera codes

The number of codes represented by a table T can now be calculated by calculating Pr(X ) -1 for one represented code of T :

Pr(X ) -1 = | θ∈Θ θ • T |
There are (4!) 5 parameter tuples θ := (θ i , θ o ) in the parameter sets Θ. 4! 4 represents the combination of the different tournaments denoted as θ i . The last factor 4! is the distribution of the four fragments to the four rows denoted as θ o . Hence, a table can represent (4!) 5 at the most. If the maximal value is multiplied by the probability Pr(X ), we obtain the actual amount of parameter tuples which construct the same code X when applied to table θ • T . Consequently, Pr(X ) -1 must be the number of all codes which can be represented by the same table T .

In Table 3.11, all numbers of codes for the codes of size one to twelve (maximum size of a circular Tessera code) are listed. The algorithm presented in this chapter was used to calculate the numbers for the circular codes and the comma-free codes. However, the numbers for the 1-circular codes, C 4 codes and self-complementary circular codes were calculated by a brute force algorithm. Surprisingly, the highest number of codes for 1-circular codes, circular codes and C 4 codes is ten, whereby the highest number of codes for self-complementary circular codes and comma-free codes is nine. The investigation into this characteristic is still open, and it cannot yet be explained. It is also important to note that the ratio of circular codes to self-complementary circular codes decreases steadily with the increasing size of the codes. Where 25% of size one circular codes are self-complementary, only 0.01651288% of size twelve circular codes are self-complementary. This suggests that an observation of a maximal self-complementary Tessera code in a genetic context would be a very strong evidence for the existence of circular Tessera codes. The effortless and quick construction of maximal Tessera codes led to the observation that maximal circular Tessera codes have a potential link to comma-free and circular trinucleotide codes. For this observation, we used the mapping function cod(•) introduced in Figure 3.3 (see [START_REF] Gonzalez | On the origin of degeneracy in the genetic code[END_REF]). Observation 3.4.3. By applying the mapping function cod(•) to convert Tesserae to codons, we were able to observe that 103024 of the 9592512 maximal circular Tessera codes are mapped onto a circular trinucleotide code, i.e. with a probability of 0.0107 and 1264 are mapped onto a comma-free trinucleotide code, i.e. with a probability of ≈ 10 -4 . 168 of the 1584 maximal self-complmentary circular Tessera codes are mapped onto a circular trinucleotide code, i.e. with a probability of 0.106. This is almost exactly ten times higher than the probability of the 9592512 maximal circular Tessera codes.

We would like to point out one special self-complementary Tessera code before we end this chapter.

X T = {AACC, GGTT, GGCC, AATT, AGTC, GACT, GATC, AGCT}
The trinucleotide code which is the result of the mapping function X = cod(X T ) is X := {GTT, ATT, GCT, ACT, GTC, ATC, GCC, ACC }. Both, the trinucleotide code X and Tessera code X T are strong comma-free. Additionally, is the code X a subset of the RNY code and the complementary reversed code of the RRY code (see section 1.2.8 for RNY & RRY; [START_REF] Shepherd | Method to determine the reading frame of a protein from the purine/pyrimidine genome sequence and its possible evolutionary justification[END_REF]11]).

Summary of Chapter 3

In sum, one can say that both circular code theory and Tessera code theory are not in conflict with each other. Rather, it seems as if the two theories favor one another. Let us first summarize some results concerning the foundation of circular Tessera codes. Firstly, there are exactly 48 of the 64 Tesserae grouped in twelve complete circular permutation classes. Hence, a circular Tessera code is called maximum if it contains exactly twelve words. Furthermore, the statements in Theorem 3.2.1 hold for any circular Tessera code X ⊂ T E:

(i) The maximal length of a cycle in C 1 (X ) is 2.
(ii) The maximal length of a path that does not contain a cycle is also 2.

(iii) The maximal length of a cycle in C 2 (X ) is 4. In particular, the maximal length of a path that does not contain a cycle is 3.

Recalling the definition of the reading-frame number (see Theorem 2.1.4), the shorter the length of the longest path length in a graph associated with a code, the higher the reliability regarding frameshift robustness. Note that the adaptation of the reading-frame number to Tessera codes is still open. Additionally, each circular Tessera code can be separated into four fragments by the means of V. Let X ⊂ T E be a circular Tessera code, then the following holds:

X = X I ∪ X SW ∪ X Y R ∪ X KM where |X I | ≤ 6, |X SW | ≤ 6, |X Y R | ≤ 6, |X KM | ≤ 6
By applying the mapping function cod(•) (see Figure 3.3) on each possible circular fragment X β ∈ {X I , X SW , X Y R , X KM } of each circular Tessera code, it was proven that X = cod(X β ) is always a comma-free code. Furthermore, α 1 (X ) and α 2 (X ) are also comma-free codes. In section 3.3.2, the classification of graphs associated with self-complementary trinucleotide codes defined in Theorem 2.1.5 is adapted to graphs associated with self-complementary Tessera codes. It is proven that if X ⊂ T E is a circular Tessera code, X is self-complementary. This, however, only holds true if

1. V = ←-- c(V ) 2. d + (v) = d -( ← -- c(v)) for all vertices v ∈ V
It should be noted that the two conditions mentioned above fit even better with the Tessera codes than with the trinucleotide codes. While the conditions only apply to trinucleotide codes of size 18 to 20, they apply to all circular Tessera codes. In addition to the properties, this chapter introduces two construction methods of circular Tessera codes. Both the method in section 3.3 and the one in section 3.4 can be used to construct all maximal circular Tessera codes. The method in section 3.4 can also be used to construct comma-free codes and circular codes of any size. Furthermore, this method was used to count all circular Tessera codes. In Table 3.11, the resulting numbers are listed. In addition, the mapping function cod(•) was used to shown that 103024 of the 9592512 maximal circular Tessera codes are mapped onto a circular trinucleotide code and 1264 of the 9592512 onto a comma-free trinucleotide code . One final feature that was obtained from the construction is a tabular representation of the circular Tessera codes. All tables associated with all maximal circular Tessera codes are listed in Appendix II.2. Section 6.1 introduces a hypothesis of the evolution which includes Tessera codes. The final chapter 6 offers a hypothetical evolutionary scenario which includes Tessera codes in section 6.1.

Chapter 4 The relation between k -circularity and circularity of codes

This chapter, which refers to the published article [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF], introduces a new class of block codes: the k-circular codes. k-circular codes belong to the circular code family. As a weakened version of the circular code, such a k-circular code is a frameshift error detecting code and consists exclusively of words of word length . In the sections of this chapter, we will first define k-circularity for arbitrary word lengths over arbitrary finite alphabets in section 4.1, before presenting the graph characterization of k-circularity in section 4.2. In section 4.3, the question of when k-circularity implies circularity will be posed and answered. Additionally, in section 4.3.1 the sharpness of these borders is verified . This theorem, the so called Sharpness Theorem, will then be proven in the subsequent chapter. Finally, Chapter 4 closes with the biological consequences of k-circularity in section 4.4.

Introduction and definition of k -circularity

If a circular code can find the correct reading-frame in every word written on a circle, a k-circular code requires a concatenation of a maximum of k words to reliably ensure the reading-frame. Therefore, a concatenation of k+1 words written on a circle could be read in more than one reading-frame. Thus, a k-circular code does not have to be k +1-circular but must be k -1-circular. The class of k-circular codes contains both circular and comma-free codes as subclasses for every given k.

Hence, the definition of circular codes can be refined by their relation to k-circular codes. Let us first recall the definition of the X -decomposition in the first bullet point in Definition 33. Subsequently, Definition 33 depicts the formal definition of the k-circular codes, thus refining the definition of the circular codes.

Definition 33. Let X ⊆ Σ be an -letter code.

• For w ∈ Σ * , an X -decomposition of w is a word

w 1 • • • w r ∈ X r with r ∈ N such that w = w 1 • w 2 • • • w r .
• Let m be a positive integer and let b

1 • • • b m ∈ X m . A circular X -decomposition of the concatenation w := b 1 • • • b m is
an X -decomposition of a circular permutation of α j (w) for some j ∈ {1, . . . , m -1}.

• Let k be a positive integer. The code X is k-circular if for every m ∈ {1, . . . , k} and every m-words w 1 , . . . , w m of words in X , the concatenation w 1 • • • w m admits a unique circular X -decomposition.

• The code X is circular if it is k-circular for all k ∈ N.

• We define k(X ) to be ∞ if X is circular and the least integer r such that X is not r-circular otherwise.

Graph characterization of k-circularity

Directed cyclic paths in the graph associated with a code are of vast importance (see Definition 9) in the research of circular codes. A cyclic graph forces the code associated with this graph to be a non-circular code. In the case of k-circular codes, the restrictions are not as stringent (see Definition 33). Hence, while studying the k-circular codes, these cyclic paths began to move into focus. As a result of the examination of cyclic paths, we were able to make the following observations. Observation 4.2.1. Given two integers and n, both at least 2, let X be anletter code over an alphabet Σ of cardinality n. Most observations can be traced in Figure 4.1.

1. For every j ∈ {1, . . . , /2 }, the j-component of G(X ) contains no more than n j + n -j vertices if j = /2 and no more than n /2 otherwise.

2. If is odd, G(X ) contains no directed cycle of odd length.

3. If is even, every directed cycle of odd length in G(X ) is contained in the ( /2)-component.

4. Suppose that G(X ) contains a directed cycle of length t and let j ∈ {1, . . . , /2 } such that this cycle is contained in the j-component. Then,

t ≤ 2n j if j = 2 , n /2 if j = 2 .
In article [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF], the k-circularity of dinucleotide codes was first characterized in terms of graphs:

• a dinucleotide code is 1-circular but not 2-circular if and only if its associated graph contains a Hamiltonian cycle of length 4;

• a dinucleotide code is 2-circular but not 3-circular if and only if its associated graph contains an oriented cycle of length 3 and has no Hamiltonian cycle; and

• a dinucleotide 3-circular code is circular.

These observations led to Theorem 4.2.1. This theorem is a natural generalization of the approach from article [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF]. For this generalization the following notations must be defined: Definition 34. If X is a code, then: g o (X ) denotes the respective lengths of the shortest directed cycles of odd length.

We define g o (X ) := ∞ if no cycles of odd length exist in G(X ), g e (X ) denotes the respective lengths of the shortest directed cycles of even length. We define g e (X ) := ∞ if no cycles of even length exist in G(X ), Thus, if the code X is non-circular, one of these numbers must be finite.

Theorem 4.2.1. (Theorem 3.3, [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]) Let Σ be a finite alphabet, an integer greater than 1 and X ⊆ Σ an -letter code over Σ. Then the code X is k-circular and not (k + 1)-circular if and only if

k = min g o (X ), g e (X ) 2 -1 < ∞. Proof. First, suppose that w 1 • • • w r is a directed cycle in G(X ). If r is even, the word w 1 • • • w r admits two different circular X -decompositions into r/2 words from X , namely w 1 w 2 | . . . |w r-1 w r and w 2 w 3 | . . . |w r-2 w r-1 |w r w 1 .
It follows that X is not 1 2 g e (X )-circular. If r is odd, then the word

w 1 • • • w r w 1 • • • w r admits two different circular X -decompositions into r words from X , namely w 1 w 2 | . . . |w r-2 w r-1 |w r w 1 |w 2 w 3 | . . . |w r-1 w r and w 2 w 3 | . . . |w r-1 w r |w 1 w 2 | . . . |w r-2 w r-1 |w r w 1 .
It follows that X is not g o (X )-circular. Conversely, suppose that both w and its circular j-permutation admit a circular X -decomposition where j ∈ {1, . . . , -1}. By setting a r+1 := a 1 , the word w can be written a 1 b 1 | . . . |a r b r such that |a i | = j, |b i | = -j, and a i b i , b i a i+1 ∈ X for each i ∈ {1, . . . , r}. It follows from Definition 9 that

W := a 1 → b 1 → . . . → a r → b r → a 1
is a closed walk in G(X ). Consequently, W either contains a directed cycle of even length, which then must be of length |V (W )| = 2r at most or W decomposes into an even number of directed odd cycles, one of them thus having length r at the most. Consequently, if X is not r-circular, then g e (X ) ≤ 2r or g o (X ) ≤ r.

We would like to remark that the results from [START_REF] Fimmel | n-nucleotide circular codes in graph theory[END_REF] are consistent with the statement of Theorem 4.2.1 above.

• If X is a 2-letter code that is 1-circular but not 2-circular, then G(X ) contains cycles of lengths 3 and 4, and, indeed, 1 = min 3, 4 2 -1.

• If X is a 2-letter code that is 2-circular but not 3-circular, then G(X ) contains a cycle of length 3 and no cycle of even length, and, indeed, 2 = min{3, ∞}-

In conclusion, in Observation 4.2.1, a cycle in G(X ) is bound by the cardinality n of the alphabet and the word length . Additionally, Theorem 4.2.1 points out that a k-circular but non-circular code is represented by a cyclic graph. In combination, these two facts imply that there must be a k-circularity depending on n and so that k + 1-circularity is no longer possible. Simplified, there must be a value k = k(n, ) so that k +1-circularity implies circularity. In the following section, we will introduce our most important theorems, which completely determine this barrier.

When does k-circularity imply circularity?

To determine whether a code is circular, one needs to verify if any concatenation of infinite words of a code written on a cycle can only be decomposed in words of the code in one reading-frame. Consequently, a code is circular if and only if it is a ∞-circular code (see Definition 33). This causes it to be an undecidable problem.

To convert this problem into a decidable one, it is necessary to identify a number 0 < k(n, ) < ∞ so that a code is only circular if it is k(n, )-circular where n is the cardinal number of the alphabet and is the word length of the code. Hence, the issue in focus of this section is the identification of an integer k(n, ) so that k(n, )-circular is equally circular. We first would like to mention that the cases where n or is 1 are trivial, with Theorem 4.3.1 providing a full answer to this question. Subsequently, Theorem 4.3.2 demonstrates that the boundary of k(n, ) is sharp. Let Σ be an alphabet with |Σ| = n and X ⊆ Σ an -letter code over Σ. Set

k(n, ) :=      n -1 2 if is odd, n /2
if is even and n is odd, n /2 -1 if is even and n is even.

Then, the code X is circular if and only if it is k(n, )-circular.

Proof. One direction is trivial: if X is circular, then X is r-circular for every integer r, and hence, for k(n, ). Conversely, let X be an -letter code that is r-circular but not (r + 1)-circular. According to Theorem 4.2.1, the graph G(X ) contains a cycle of (even) length 2(r+ 1), or r is even and G(X ) contains a cycle of (odd) length r + 1.

(i) If is odd, then Observation 4.2.1 yields that g o (X ) = ∞. Therefore, in this case, r + 1 = 1 2 g e (X ) < g o (X ). Because is odd, Observation 4.2.1 implies that g e (X ) ≤ max 2n j : 1 ≤ j ≤ ( -1)/2 = 2n -1 2 .

6. Let n = 4 and = 3 (that is, trinucleotides over the genetic alphabet). Every 4-circular 3-letter code is circular and there are 3-but not 4-circular 3-letter code over B:

X (4,3) = {AGC, ATT, CAA, CTG, GCC, GAT, TCA, TGG} 7. Let n = 4 and = 4 (that is, tetranucleotides over the genetic alphabet). Every 15-circular 4-letter code is circular and there are 14-but not 15-circular 4-letter codes over B: This section provides evidence that the boundaries established in theorem 4.3.1 are sharp. We prove this by constructing a code for an arbitrary alphabet Σ and a word length > 2 ∈ N which is k(n, ) -1-circular but not circular where n = |Σ|. Thus, it can be said that k(n, ) -1 is the smallest integer so that a code X ⊆ Σ which is k(n, ) -1-circular does not need to be circular. The obtained results in Theorem 4.2.1 illustrate that a graph associated with a k(n, ) -1-circular code must contain a cycle that has a length of k(n, ) if k(n, ) is odd and a length of 2 × k(n, ) otherwise. Therefore, we construct a code with a unique cycle of the required length so that it guarantees that such a code is (k(n, )-1)-circular but not circular. We divide the demonstration into three cases: if is even (Lemma 4.3.1) and if is odd (Lemma 4.3.2). The case that is odd is again divided into two cases: if is odd and n = 2 (Lemma I.1) and finally, if is odd and n ≥ 3 (Lemma I.2). The proofs of Lemmas I.1 and I.2 are quite long and complex and therefore not included in this Thesis. They can be found in article [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF](Lemma I.1 and I.2). However, there are new mathematical tools for the analysis of codes that may be able to identify additional properties in the genetic code in the future. Let us give the main idea of the constructions.

X (4,4) = {AAAC,
Theorem 4.3.2. (Theorem 4.4, [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]) Given two integers n and both at least 2.

Let Σ be an alphabet with |Σ| = n and X ⊆ Σ an -letter code over Σ. Then, k(n, ) is the least integer r such that every code X ⊆ Σ that is r-circular is circular.

We begin with the case in which is even.

Lemma 4.3.1. (Lemma 5.1, [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]) If n and are integers both at least 2 and is even, then there is an -letter code over Σ that is (k(n, ) -1)-circular. Yet, this -letter code over Σ is non-circular when k(n, ) := n /2 if n is odd and k(n, ) := n /2 -1 if n is even. Proof. Note that k(n, ) is always odd in this setting. The situation in which n = 2 = is trivial: every code is 0-circular, and the code {00} is not 1-circular. We now assume that (n, ) = (2, 2). We construct an -letter code X (n, ) over Σ n such that G(X (n, )) contains a unique cycle, which is of odd length k(n, ). It thus follows that X (n, ) is (k(n, ) -1)-circular but not k(n, )-circular by Theorem 4.2.1. The code is constructed by using n-adic representations of numbers below n /2 (see Equation (4.1)).

First, we rule out a boundary case: if n = 2 and = 4, then one directly verifies that X (2,4) := {0001, 1100, 0111} is 2-circular but not 3-circular. Indeed, the associated graph G(X (2,4) ), depicted in Figure 4.2, contains a unique directed cycle, which has length 3.

From now on, we assume that (n, ) = (2, 4) so that n ≥ 3 or ≥ 6. Given a length i ≤ /2 and an integer x < n i , we define (x) i to be the word of length i over the alphabet Σ n representing x written in basis n. For example, if n = 3, then (8) 4 = 0022. If w = (x) i , we also write x = w . To improve readability, we use Y and Z to refer to n -2 and n -1, respectively, when writing words in Σ * n . Let X (n, ) be defined as

X (n, ) := (x) /2 • (x + 1) /2 : x ∈ Z k(n, ) (4.1)
where the addition is in Z k(n, ) . Note that |X | = k(n, ). For instance, if n = 2 and = 6, then k(n, ) = n /2 -1 = 7, and X (2,6) = {000001, 001010, 010011, 011100, 100101, 101110, 110000}.

We assert that the graph G(X (n, )) associated with X (n, ) has a unique cycle of odd length k(n, ). It then follows from Theorem 4.2.1 that the -letter code X (n, ) is (k(n, ) -1)-circular but not k(n, )-circular.

We begin by proving a useful assertion on the code X -(n, ) defined as

X -(n, ) := (x) /2 • (x + 1) /2 : x ∈ Z k(n, ) \ {k(n, ) -1} .
A. The graph G -:= G(X -(n, )) is acyclic. Moreover, for every i ∈ { 1, . . . , /2 -1 }, every directed path of length 2 in G -with a middle ( -i)-node begins at the inode Z i and ends at the i-node 0 i . In particular, all out-neighbours of 0 i in G - have an out-degree of 0, and all in-neighbours of Z i in G -have an in-degree of 0.

Proof. For each i ∈ {1, . . . , /2}, let C i be the i-component of G -. Note that C /2 is a path of length k(n, )-1 for x ∈ Z k(n, ) , traversing all nodes (x) /2 in increasing order. It follows that C /2 is acyclic. We now fix i ∈ {1, . 1. By the definition of G -, if there is an arc from a node x to y, then x is an i-node, and it holds in Z k(n, ) that

y 2 • y 3 = x • y 1 + 1.
There are two possible cases:

(a) y 2 = x and y 3 = y 1 + 1; or (b) y 2 = x + 1, y 1 = Z /2-i and y 3 = 0 /2-i .

Note that y 1 = y 3 in both cases.

2. On the other hand, if there is an arc from y to a node x , then x is an i-node, and it holds in Z k(n, ) that

y 3 • x = y 1 • y 2 + 1.
Again, there are two possible cases:

(a) y 3 = y 1 and x = y 2 + 1; or (b) y 3 = y 1 + 1, y 2 = Z i and x = 0 i .

Let us assume that y has both an ingoing arc x → y and an outgoing arc y → x where it might be that x = x . Because of the arc x → y, we know that y 1 = y 3 . Thus, case 2a is impossible, and we consequently must fall into case 2b. Therefore, x = 0 i , y 3 = y 1 + 1, and we infer that the arc x → y fell into case 1a, so x = y 2 = Z i . This proves the "moreover" part of the assertion. It directly follows that 0 i does not belong to a directed cycle in C i , and consequently no ( -i)-node belongs to a directed cycle in C i . Because all arcs in C i are between an i-node and an ( -i)-node, we deduce that C i is acyclic, thereby concluding the proof of (A).

Sketch of proof.

Let us first deal with the case in which is odd and n = 2. We have to show that there is an -letter code over Σ n that is (2 ( -1)/2 -1)-circular but non-circular. Let us fix k :

= k(2, ) = 2 -1
2 . The aim is to construct a binary code X so that its graph G(X ) contains a unique cycle of length 2k. Let s := -3 2 , S ⊆ {0, 1} s be a subset of binary words of length s and set

X S := {a • y • a • y • a : a ∈ {0, 1}, y ∈ S}∪{a • y • a • y • a : a ∈ {0, 1}, y ∈ {0, 1} s \ S}
where for a binary word w, the complement of w is the word w obtained from w by complementing each of its letters. It will be shown in Lemma I.1 (Appendix I. in article [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]) that all but one of the components of G(X ) are acyclic if S ⊆ 01{0, 1} s-2 , and that there is a choice for such a set S so that the remaining component consists of exactly one cycle. This solves the binary case. The case in which is odd and n > 2 is more delicate. As before, one sets s := -3 2 and k := n -1 2 . In Lemma I.2 (Appendix I. in article [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]), we shall define a mapping ϕ from Σ s n to the family of 3-letter codes over Σ n with very specific properties so that the associated code

X ϕ := {a • y • b • y • c : y ∈ Σ s
n and abc ∈ ϕ(y)} satisfies our requirements. All details for the construction of ϕ can be found in Lemma I.2 (Appendix I. in article [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]), but we would like to notice that in the binary case, we have ϕ(y) = {010, 101} if y / ∈ S and ϕ(y) = {000, 111} otherwise.

Biological consequences

Evidence such as the X-code indicates that circular codes and all related block codes can play a hypothetical role in the evolutionary development of the standard genetic code (SGC). However, neither the three comma-free codes RRY, RNY and GNC [START_REF] Ikehara | Origins of gene, genetic code, protein and life: comprehensive view of life systems from a GNC-SNS primitive genetic code hypothesis[END_REF][START_REF] Shepherd | Method to determine the reading frame of a protein from the purine/pyrimidine genome sequence and its possible evolutionary justification[END_REF]11] nor the X-code encodes all 20 amino acids. In fact, there are 12, 964, 440 maximum circular codes under the genetic alphabet and none of them encodes 20 or 19 amino acids with SGC. Only ten maximum circular codes encode 18 amino acids with SGC (see [START_REF] Michel | A permuted set of a trinucleotide circular code coding the 20 amino acids in variant nuclear codes[END_REF]). Furthermore, it is noticeable that among the 3 20 = 3, 486, 784, 401 maximal 1-circular codes only 52 encode for all 20 amino acids, i.e. with a very small probability of approximately 10 -8 , (see the list given in Appendix II.3 or [START_REF] Michel | A genetic scale of reading frame coding[END_REF]*Table 2 where they were called bijective genetic codes without permuted trinucleotides WPTBGC before the k-circular code theory was developed in this thesis). This supports the assumption that due to the expansion of the code in evolution, the circular codes were replaced by k-circular codes. It has already been verified [START_REF] Fimmel | On the hierarchy of trinucleotide n-circular codes and their corresponding amino acids[END_REF] that these 52 maximum 1-circular codes cannot be 2circular. In addition, the following construction based on graph theory underlines once more the outstanding role of this class of 52 maximum 1-circular codes. This offers a theoretical framework for the previous calculation results [START_REF] Michel | A genetic scale of reading frame coding[END_REF].

In the following lemma, we will proceed with the proof of the existence of the 52 maximal 1-circular codes that encode all 20 amino acids. Before we introduce the lemma, however, we need to provide the basics of bipartite graphs. A bipartite graph is a graph G = (V, E) such that the set of vertices V is the disjoint union of two sets A and B such that any edge in e ∈ E is of the form e = (a, b) for some a ∈ A and b ∈ B. Hence, no edge connects two vertices from A or two vertices from B. A perfect matching of G is a subset M ⊆ E, such that the edges of M form a bijection between the sets A and B. A perfect matching can thus only exist if A and B have the same cardinality. Lemma 4.4.1. (Lemma 6.1, [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]) There are exactly 52 maximal 1-circular codes that encode all 20 amino acids.

Proof. We first need to recall some essential facts [START_REF] Fimmel | On the hierarchy of trinucleotide n-circular codes and their corresponding amino acids[END_REF]. An equivalence class [c] of some codon c ∈ B 3 consists of c and its circular permutations, e.g. [AT C] = {AT C, T CA, CAT }. The equivalence class is called complete if it contains three elements, i.e. if c ∈ {AAA, CCC, GGG, T T T }. It has been established [START_REF] Fimmel | On the hierarchy of trinucleotide n-circular codes and their corresponding amino acids[END_REF] that there are 20 complete equivalence classes D 1 , . . . , D 20 , each of which encodes three different amino acids or two amino acids and the stop signal. Moreover, it has also been shown [START_REF] Fimmel | On the hierarchy of trinucleotide n-circular codes and their corresponding amino acids[END_REF] that each maximal 1-circular code encoding all 20 amino acids must contain the following seven codons: Moreover, the set of edges E consists of all pairs (D i , aa) such that there is a codon in D i that encodes the amino acid aa. It can now be seen that the maximal 1-circular codes that encode all 20 amino acids are in bijective correspondence with the perfect matchings of the constructed graph G. An application of established algorithms for calculating perfect matchings of a graph, e.g. the Hungarian algorithm, now yields the list of 52 perfect matchings of G. This completes the proof. torial hierarchy of circular codes and their probability measure of reading-frame retrieval (or reading-frame code in [START_REF] Michel | A genetic scale of reading frame coding[END_REF]) within two successive codons was discovered (Figure 4.4; for more details of the method see [START_REF] Michel | A genetic scale of reading frame coding[END_REF]). This reading-frame retrieval measure ranges from 1/3 (one chance out of three to retrieve the readingframe among the three possible frames in genes) in random codes, e.g. B 3 , to 1 (the reading-frame is always retrieved) in strong comma-free codes and commafree codes. Remember that (i) the maximal size of strong comma-free codes cannot exceed 9 trinucleotides, and there are only 8 codes belonging to this class. Moreover, (ii) there are 408 maximal (size of 20 trinucleotides) comma-free codes. The 12,964, 440 maximal circular codes have reading-frame retrieval values in the range [72.7, 100] (%), including the 216 maximal C 3 self-complementary circular codes in the range [77.2, 90.1] (%). The maximal C 3 self-complementary circular code X identified in genes (see section 1.2.8) has a RF C value equal to 81.3 (%). Noticeably, the identified 52 maximal 1-circular codes have reading-frame retrieval values in the range [62.2, 71.6] (%). Thus, their ability to retrieve the reading-frame is weaker than that of the maximal circular code of the lowest reading-frame retrieval value [72.7] (%). On the other hand, the genetic code B 3 , which is noncircular, has a reading-frame retrieval probability equal to 1/3, as do all random codes (depicted in Figure 4.4). The 4 unitary codes {AAA}, {CCC}, {GGG} and {T T T }, which are non-circular, are also random codes with a reading-frame retrieval probability equal to 1/3. It is noteworthy that the loss of the readingframe in a sequence of such a unitary code does not cause the coding of an amino acid different from the one coded in the reading-frame. In contrast,the 60 remaining unitary codes which are circular and comma-free (48 strong comma-free). In summary, the growing combinatorial hierarchy of k-circular trinucleotide codes is associated with a decreasing probability hierarchy of reading frame coding readingframe retrieval.

The main property of circular codes, which has first been reported in 1996, is the nucleotide window length for retrieving the reading-frame, e.g. 15 nucleotides with the circular code X in genes. The relation identified above shows that, from our point of view, the circular codes may retrieve the reading-frame in genes according to two properties (property (i) is classic in coding theory, property (ii) is a new proposition): (i) always retrieved, i.e. without error, using a nucleotide window length but with a slow process; and (ii) retrieved with high frequencies, i.e. not always as some errors may occur, within two successive codons, thus with a fast process.

Summary of Chapter 4

Chapter 4 introduces the class of k-circular codes, a new class of block codes. A k-circular code is defined as a code which requires a concatenation of a maximum of k words written on a circle to reliably ensure the reading-frame. Consequently, k + 1 words written on a circle could be read in more than one reading-frame. Therefore, we can extend the definition of k-circular codes by the fact that each of these codes must also be a k -1-circular code. It can further be seen that a k-circular circle code can be a k + 1-circular circle code but does not have to be. The class of k-circular codes contains both circular and comma-free codes as subclasses for every given k.

The main Theorem 4.3.1 of the chapter presents the integer k(n, ) where n is the cardinality of the alphabet, and is the word length of the code. This number k(n, ) is the border so that a k(n, )-circular code must be a circular code. In Table 4 Theorem 4.3.1 has been a major breakthrough. In combination with the Theorem 4.3.2, the decision whether a code is circular or not is no longer decidable only by representing the code in a graph, but also combinatorially in finite time. Before this revelation, a code always had to be transformed into a graph to determine if it is a circular code. With k(n, ), a verification of a finite combination can now provide this result.

With the insights from Lemma 4.4.1, it can be proven that 52 of all 3, 486, 784, 401 1-circular codes encode all 20 amino acids. Using this knowledge, we were able to identify the 1-circular codes as the only known block codes with a word length = 3 over the genetic alphabet to encode all 20 amino acids.

In the final section 4.4, the probability measure of reading-frame retrieval is introduced. This value was originally introduced in [START_REF] Michel | A genetic scale of reading frame coding[END_REF] and can be used to compare the reliability of block codes in respect to their reading-frame retrieval qualities.

Chapter 5

Codes in Sequences

In this final chapter, the application of theoretical models will be outlined with the aim of connecting the mathematical results from the above chapters with protein synthesis. The methods applied in this chapter are intended to reveal possible evidence for error-correcting codes in biological mRNA sequences. An additional focus lies on the provision of assistance to existing model of the X-code. Recalling the origin of the X-code, it was obtained by observing data from a massive analysis of the genetic information of different species. Such procedures, as they can be found in+ [1], are complex and expensive. However, not only has the hardware become more powerful over the years with increasing computing power, but the algorithms for using these capacities have also become more sophisticated. Hence, we would like to present a software tool and methods that promote the investigation of theories such as those outlined in Chapter 2 and Chapter 4. The aim is to offer theoretical models of a hypothetical reading-frame retrieval machinery in genes. The presented results have only been obtained from coding sequences (CDS) of the species listed in Table 5.1. The obtained results are promising, but the empirical relevance of the values must be increased by more detailed and specific tests done in the future.

In the first section 5.1, we introduce the R package GCATR. This project is a further development of GCAT. GCAT was developed as a stand-alone tool for the examination of circular codes in RNA and DNA sequences [START_REF] Gumbel | Genetic code analysis toolkit (gcat)[END_REF]. At the beginning of GCATR, the tool was intended to be a copy of GCAT that can be used in R. However, the tool has grown beyond the original version. It has not only been extended by the algorithms developed in this work, but it also contains new theories and features, such as the theory of conductivity of the genetic code by P. B lażej, D. Kowalski, D. Mackiewicz, M. Wnetrzak, D. Aloqalaa and P. Mackiewicz [START_REF] Kowalski | The structure of the genetic code as an optimal graph clustering problem[END_REF]. The outline of GCATR contains a short version of the manual and gives insight into some architectural features [START_REF] Starman | Genetic code analysis toolkit in r (gcatr)[END_REF].

Section 5.2 will proceed with demonstrating two different methods to finding evidence for error-correcting codes in genes. Both methods are theoretical models of a possible reading-frame detection. While these methods are not directly related to the circular codes, they describe a hypothetical way in which the ribosome might be able to detect reading-frame errors. Although the proof of the actual implementation of these methods in the ribosome is rather demanding, the results of applying them to coding sequences (CDS) are intriguing.

The methods presented in section 5.2 will then be applied to RNA sequences in section 5.3. The outcomes of the methods applied to CDSs will be listed in section 5.2.1. In this context, "to apply" indicates reviewing the coverage of codes using the methods in sequences. More precisely, it indicates reviewing of the coverage of the regions in a sequence where the codes can retrieve the correct reading-frame. The results are optimized codes that have the highest possible coverage based on the methods.

Development of the research software GCATR for circular codes

GCATR is an open source R package available on Github. While it is still a beta version, it has been downloaded by several users. The tool requires basic knowledge of the computer language R, a so-called interpreted language. However, it is more complex than that as R is an environment with a variety of statistical and graphical techniques [START_REF] The R Foundation | R:what is r?[END_REF]. The subsequent chapter will outline the architecture of GCATR with its significant features and its shortcomings.

Architecture of the GCATR

One of the shortcomings of R is the interpretation of the language at run-time. While this allows R to be easily installed, learned, and executed, it also increases the execution time. It can be argued that R is optimized for working with large data. However, this has also been achieved by writing bottleneck algorithms in C++. Thus, it was decided that the main business logic of GCATR will also be written in C++. The layer architecture of the GCATR package is depicted in

Core architecture of GCATR

The design of the architecture of the GCATR C++ part uses the delegation pattern. The system has three different types of delegates: the tester, the modifier, and the miner. The separation of these three types is due to the return value of the executing function.

tester The delegates grouped as tester return a boolean value (True or False) when executed. They test whether an object that inherits from WordContainer has a certain property, e.g. circularity or freedom from commas.

modifier The group gathered as modifier has no return value when executed.

A modifier influences the code/sequence of the delegator, i.e. the Word-Container is changed in some way. These changes can be, for example, transformations or permutations.

miner A miner delegate returns an element. These elements are properties of the code, e.g. the longest path or all cyclic paths in the graph associated with the code. The elements are returned as void pointers (anonymous object) and have to be cast into the expected object by the delegator.

Package GCAT

The stand-alone tool GCAT is written in Java and comes with a comprehensive editor. It allows the user to enter sequences and codes into a user interface. Even though the tool has a great user experience, it has some practical flaws. Installation, for example, is an obstacle that prevents many users from using it. Additionally, the necessary installation of Java is a problem not tolerated by many users. Hence, the design of the new tool was developed to accommodate a large group of users. As many researchers are already using R as a tool for data science, it was a logical decision to restructure the project in R. Subsequently, we list selected examples to illustrate the work with GCATR. The entire manual can be found on the web page https://github.com/StarmanMartin/GCATR.

The first example returns the maximum number of words of the code X = {ACG, CGT, T CC, CCA}, which can be written on a cycle and reliably be decomposed in only one reading-frame into words of X . In this context, it is called the k value (see chapter 4) of a code:

1 code _ k _ value ( " ACGCGTTCCCCA " , 3) 2 code _ k _ value ( " ACG CGT TCC CCA " ) R console output: → 1 → 1
As the example outlines, all functions can be called in three different ways. The code can either be passed to the function as an array, as a string separated by white spaces or as a sequence with an additional word length parameter. A factory class then decides whether the code is a code of codons, a Tessera code, any other kind of RNA/DNA code or a non-genetic code.

Other functions, including code check if comma free, code check if cn circular, code check if code and code check if circular, can be called with the same settings of parameters. Additional functions referring to Chapter 3 have also been implemented, namely codons to tessera and code check if tessera.

Another feature of the package allows for translating codons into amino acids. The following translation tables are available in the tool:

• The Standard Code The list of all tables can be accessed by the function print all translation tables. Each table is listed with an index. To obtain the actual codon amino acid mapping, the function genetic codes by name or genetic codes by index can be used as depicted in the example below: code <-genetic _ codes _ by _ name ( " The Yeast Mitochondrial Code " ) or code <-genetic _ codes _ by _ index (1) Two functions are offered to translate a code into amino acids. The first one translates the codons in the same order, while the second one lists a unique set of the encoded amino acids.

code _ get _ all _ amino _ acids ( " ACG CAA CAG " , idx _ trans _ table =2) R console output: → "Thr" "Gln" "Gln" code _ get _ amino _ acids ( " ACG CAA CAG " , idx _ trans _ table =2) Package Binary dichotomic algorithm (BDA)

(A) if b i 1 ∈ Q 1 , then → result is 0 if b i 1 = b 1 or 1 if b i 1 = b 2 (B) if b i 1 / ∈ Q 1 , then → result is 0 if b i 2 ∈ Q 2 or 1 if b i 2 / ∈ Q 2
In GCATR, this was implemented as represented in the flowchart in Figure 5.5.

library ( GCATR )

bda <-start _ bda () add _ rule ( bda , 3 , 2 , " C " , " A " , " C " , " G " ) add _ rule ( bda , 3 , 2 , " G " , " A " , " C " , " A " ) add _ rule ( bda , 1 , 3 , " C " , " G " , " G " , " A " ) res <-run _ bda _ as _ matrix ( bda )

The output is a table of binary triplets representing all trinucleotides. The values are the same as in the table illustrated in Figure 5.4. The investigation of block codes in sequences is one of the major aspects of GCATR. Basic information can be accessed easily , such as the used alphabet, the number of all words in the sequence and even the actual number of times a word occurs in the sequence. All of this is contained in the return value of the function:

res <-seq _ get _ info ( " ACGCGAACG " , 3) R console output: res$alphabet → "TCAG" res$number of tuple → 2 res$tuple count → ACG : 2 CGA : 1

A more complex function is the one called: find and analysis code in sequence. Apart from other information, this function lists all motifs of a code in a sequence, the position of the motifs in the sequence, the remaining parts which are not motifs and the circular permutation of each word in the sequence in terms of the words in the code.

seq <-" A C G T C G C G A C G T A C G A C G T C G T A C T C G A T G C A A G A T C "
res <-find _ and _ analysis _ code _ in _ sequence ( seq , " ACG TCG " ) R console output: res$word → "ACG" "TCG" "ACG" "ACG" "TCG" "TCG" res$idx list → 0 3 12 15 18 24 res$rest → "CGACGTTACATGCAAGATC" res$parts → """ACGTCG""CGACGT""ACGACGTCG""TAC""TCG""ATGCAAGATC" res$longest match → 9 res$total match in percent → 48.64865 res$circular permutations → 1 1 3 3 1 1 1 0 1 0 0 0 0

Package Graph tools

A directed graph associated with a code is one of the most vital tools used for the investigation of circular codes. Hence, the GCATR has implemented a wide range of functions to work with such a graph. The graph displayed in Figure 5.6 is the result of the example shown below.

plot ( code _ factor _ graph ( " ATT CAG CTG AAG TAC GGA ACG " )) The graph factory function uses the R igraph package https://igraph.org/ r/. In the graph, the longest paths are marked by green edges and all cycles are marked by red edges. These features of an associated graph can also be displayed separately with the functions: code factor cycle and code factor longest path.

In addition to these two functions, it is also possible to work with the longest path or a cyclic path as sequences or vectors. This can be achieved with the functions code get all cycles as vector and code get all longest path as vector.

Package Conductance

The article "The structure of the genetic code as an optimal graph clustering problem" introduced the value of conductance for the first time [START_REF] Kowalski | The structure of the genetic code as an optimal graph clustering problem[END_REF]. The conductance is a value which gives an intuition of the potential negative impact of a point mutation of the protein syntheses. It has thus been promoted as an evolutionary factor of the standard genetic code 1 . The functionality related to this model is listed below:

• get average conductance of code returns the average conductance of a code

• get max conductance of code returns the minimal conductance of a code 1 For more details see the article [START_REF] Kowalski | The structure of the genetic code as an optimal graph clustering problem[END_REF].

• get min conductance of code returns the maximal conductance of a code For more information about GCATR, visit the website https://github.com/ StarmanMartin/GCATR where you can find the source code and detailed information about the functionality.

Methods

This section contains a listing of the CDS used to gain the results. Furthermore, it explains the two theoretical models of a possible reading-frame detection that have been mentioned in the introduction to this chapter. Subsequently, it introduces a feature of motifs in sequences, which combines k-circularity (see chapter 4) and the results related to the paths in a representing graph (see chapter 2). Afterwards, this chapter guides you through an implementation of the so-called hillclimber algorithm. We close this chapter with an explanation of a quality feature of codes that serves as a measurable property to compare the results.

Coding Sequences (CDS)

The following section lists the used coding sequences. However, due to the fact that the calculation time for this version had to be reduced, some algorithms only used a scaled down version of the listed sequences. The set of sequence selection was taken from [START_REF] Gumbel | Motif lengths of circular codes in coding sequences[END_REF] after consultation with the author Gumbel, M.. The coding sequences were downloaded from the resources depicted in the sections below. All sequences use Thymine (T ) instead of Uracil (U ), even though they represent RNA sequences.

Species

Scaled down sequence set

The scaled down sequence set includes ten sequences (if available) of each species. These randomly selected sequences have a length of at least 160 nucleotides (if available). All algorithms that are executed with this data are executed multiple times on different, randomly generated, scaled down sequence sets. The results are almost identical as the numbers differ only by an acceptable error . The error of the percentage coverage of the different methods used is on average < 0.5%. The set of coding sequences for the presented numbers in section 5.3 can be found in the Appendix Section II.3.

Random codes and sequences

Random sequences as well as random codes are often valuable tools to verify results. In the subsequent section, we often refer to such random codes and random sequences. The random sequences used in this thesis are uniformly distributed. Any sequence used in the experiments is actually a set of 100 generated sequences of length 1500 nucleotides. Definition 35. All random sequences are 100 randomly generated sequences each of length 1500 nucleotides.

If a sequences is uniformly distributed, a random code is not. It is actually a 1-circular random code. Each code is a set of 20 codons, where each belongs to a different complete circular permutation class (see Definition 3). Definition 36. A 1-circular random code is a set of randomly selected codons from each of the 20 complete circular permutation classes.

Reading-frame retrieval method 1

The first method outlined in this chapter analyzes whether the three words at the same position in the three reading-frames are present in different circular permutations of the same code X . Suppose w 1 is the word in the normal readingframe, w 2 is the word in the +1 reading-frame, and w 3 is the word in the +2 reading-frame. Then, the reading-frame is confirmed if α i1 (w 1 ), α i2 (w 2 ), α i3 (w 3 ) ∈ X so that i1 = i2 = i3. According to the method explained in Figure 5.7, we outline a pseudocode to calculate the coverage of the method in a sequence. The code implements a function to calculate the coverage of a code in a sequence under the restrictions of reading-frame retrieval method 1. In this pseudocode function, the GCATR function find and analysis code in sequence (see Section 5.1.1) is used. The function α j (•) is denoted as the circular permutation function (see Section 1.2.1). The return value of the function is the coverage in percent.

Reading-frame retrieval method 2

The second method examines for each position whether the word in the normal reading-frame is in the code, whether the word at the same position in the +1 reading-frame is in the circular 1-permutation of the code and whether the word at the same position in the +2 reading-frame is in the circular 2-permutation of the code. the reading-frame retrieval method 2 described above. This example uses the X-code. As can be seen, T GT is not in the X-code and α 1 (GT A) is not in the 1-permutation of the X-code. Nevertheless, α 2 (T AT ) is contained in the X-code. Hence, the reading-frame is confirmed .

Next, we outline a pseudocode 4 to implement reading-frame retrieval method 2? as described in Figure 5 The Code implements a function for calculating the coverage of a code in a sequence under the restrictions of reading-frame retrieval method 2. In this pseudocode function, the GCATR function find and analysis code in sequence (see Section 5.1.1) is used. The function α j (•) is denoted as the circular permutation function (see Section 1.2.1). The return value of the function is the coverage in percent.

Pathless motifs in sequences

This section focuses on the elaboration of a comprehensive feature of code motifs in sequences. We combine the theory of k-circular code (see chapter 4) with the reading-frame results of the longest path theory (see chapter 2).

A k-circular code recognizes a frameshift for any sequence consisting of no more than k words from the code written in one cycle. However, observation 2.1.2

shows that a motif is robust to frameshifting if it is not equal to a word that is a concatenation of the vertices of a path in the graph associated with the code (see Definition 13). In this case, the length of the motif is irrelevant. These motifs are called pathless motifs. We must mention that a word that is a concatenation of the vertices of the path can be frameshift stable. This is the case if the path cannot be extended by edges of the associated graph. The method we use to gain results will ignore this fact. Consequently, the actual number of frameshift robust motifs is presumably much higher than the featured results.

Code optimization with a hillclimber algorithm

The hillclimber algorithm was used to optimize the codes with respect to the retrieval of reading-frames. In this section, this algorithm will be elaborated and the way in which it was adapted for our needs will be outlined.

The hillclimber algorithm is a simple but powerful heuristic optimization method. It is an analogy to a mountaineer who is trying to reach the summit in dense fog and therefore steers the steps as steeply as possible uphill. When the only possible steps left are going downwards, the hillclimber has reached a summit. In concordance with the analogy, the hillclimber works according to the following principle: You take a step in a random direction and after each step, the algorithm checks if you are higher than before. If you are, the next iteration starts. If not, you go back and repeat the previous step. The algorithm terminates when it is only possible to go back down.

In order to adapt the code for our usage, we will use the coverage of readingframe retrieval method 1 and reading-frame retrieval method 2 as fitness values.

First, we will start the algorithm with randomly generated 1-circular codes (see 36). These codes are generated such that they contain a randomly selected codon from each circular permutation class. In a subsequent step, we start the algorithm with the X-code.

The algorithm selects a randomly chosen codon from the code and circularly permutes it at random. Then, it checks whether the fitness has increased. If so, the algorithm starts a new iteration step. If not, the previous step is undone and a new iteration step starts. The algorithm terminates when all possible circular permutations of all codons in the code do not further increase the fitness.

We decided to use this optimization algorithm for two reasons. First, it perfectly fits to an application with many variables and can therefore be easily adapted to the environment. Secondly, to the best of our knowledge, this algorithm is close to the evolutionary optimization process. This argument excludes all external factors of evolution and concerns about the trial and error nature of evolution. Summarized according to Darwin: "Survival of the Fittest" [START_REF] Darwin | On the origin of species[END_REF].

Code coverage of all reading-frames as quality feature

This section presents a quality feature inspired by the properties of the X-code.

First, we would like to recall the X-code discovered by Arquès and Michel [1].

{AAC, AAT, ACC, AT C, AT T, CAG, CT C, CT G, GAA, GAC, GAG, GAT, GCC, GGC, GGT, GT A, GT C, GT T, T AC, T T C}

The X-code is a self-complementary C 3 code, and it was found in sequences of different species. It is a combination of the most common codons in the three reading-frames. To identify the X-code, the most frequent codons in the normal reading-frame are combined with the circular 2-permutation of the most frequent codons in the +1 reading-frame and the circular 1-permutation of the most frequent codons in the +2 reading-frame (see [1]).

As a reference value, we use the percentage of codons in the X-code in the reduced set of sequences from section 5.2.1. The randomly generated codes are generated so that they contain a randomly selected codon from each circular permutation class. The presented values are calculated as an average of 50 random 1-circular codes. The range for all three frames was 25% to 34%.

X-code in α 1 (X-code) in α 2 (X-
In the following subsections, we present the results of the two new readingframe retrieval methods.

Results

All results presented in this section are those of the algorithms illustrated in section 5.2. These results will strengthen the theory of circular codes in genetic sequences. This section contains the outcome of the algorithms which (a) provide new hypothetical methods in the ribosome to detect a reading-frame shift and (b) present evidence for the significance of the X-code [1]. In the subsequent section, various circular codes in sequences are discovered. As specified in sections 5.2.6, we will use a hillclimber algorithm. Such an algorithm requires a fitness value to indicate whether it has improved or not. Hence, we use the coverage of a code in terms of the methods elaborated in section 5.2, i.e. the number of positions in the sequence of the code from which the method was able to retrieve the reading-frame.

Before proceeding with the next section, we want to delineate the coverage results of the X-code by applying method 1 (see section 5.2.3) and method 2 (see section 5.2.4), first, to the reduced set of sequences from section 5.2.1, then to randomly generated sequences (see Definition 35).

The results of the X-code and the reduced set of sequences from section 5.2.1:

Method 1 coverage: 51.0%

Method 2 coverage: 64.3%

Average results of the code and randomly generated sequences:

Method 1 coverage: ≈ 48% Method 2 coverage: ≈ 52%

Hillclimber with the reading-frame retrieval method 1

In this section, we use the coverage of reading-frame retrieval method 1 (see Pseudocode 3) as fitness value for the hillclimber algorithm introduced in section 5.2.6.

As data, the reduced set of sequences from section 5.2.1 is used. We start the algorithm with 100 1-circular random codes to avoid local minimums. The most valuable result is: Next, we start the algorithm with the X-code. Let us assume we are in the middle of an evolutionary process where the X-code is a relevant factor for this development. In the next step of this hypothetical process, we attempt to simulate the future evolution. In this experiment, we assume that the evolution works according to the hillclimber algorithm, i.e. based on a trial-and-error system. In such a situation, we must assume that the correct course of development is heading for the next local maximum. The result of the hillclimber with the X-code is: X resX1 = {AAC, AAT, ACC, ATC, ATT, GCA, TCC, GCT, GAA, GAC, GGA, GAT, GCC, GGC, GGT, GTA, GTC, GTT, TAC, TTC } Method 1 coverage: 62.1%

X resR1 = {CAA,
The code X resX1 is a C 3 code. It is non-self-complementary. The longest path in the associated graph is of length six. According to Theorem 2.1.4, the readingframe number is n X = 13. The code X resX1 encodes eleven amino acids: Ala, Asn, Asp, Glu, Gly, Ile, Phe, Ser, Thr, Tyr and Val. The coverage for method 2 is 42.9%. The code X resR2 is neither self-complementary nor circular. However, the code X resR2 encodes 13 amino acids: Ala, Arg, Asp, Gln, Glu, Gly, Ile, Leu, Pro, Ser, Thr, Tyr and Val. The coverage for method 1 is 40.8%.

X resX1 code in α 1 (X resX1 ) in α 2 (X
X resR2 code in α 1 (X resR2 ) in α 2 (X resR2 ) in Normal frame
+1 frame +2 frame 38.2% 37.3% 36.4%

Next, we start the algorithm with the X-code as a hypothetical simulation of the evolution. To identify the local maximum that the X-code is heading to in the hypothetical case where method 2 has a major influence on the evolution, the result is: X resX2 = {CAA, ATA, ACC, ATC, ATT, CAG, CCT, GCT, GAA, GAC, GAG, GAT, CCG, GGC, GTG, GTA, CGT, TTG, TAC, TTC } Method 2 coverage: 71.0%

The code X resX2 is neither self-complementary nor circular. However, the code X resX2 encodes 13 amino acids: Ala, Arg, Asp, Gln, Glu, Gly, Ile, Leu, Pro, Ser, Thr, Tyr and Val. The coverage for method 1 is 43.3%.

X resX2 code in α 1 (X resX2 ) in α 2 (X resX2 ) in

Hillclimber with pathless motifs in sequence

The results in this section refer to the pathless motifs introduced in section 5.2.5. First, we examine the coverage of the sequences by such pathless motifs from the X-code.

Random sequences: ≈10%

Sequences from section 5.2.1: 20.6%

Recalling that these are not the only frameshift robust motifs, the result is promising. It can be seen that at least 50% of the X-motifs are completely frameshift stable. Moreover, there is a considerable gap between the result of the random sequences and the result of the CDS. Next, we use the coverage of the CDS by such pathless motifs as the fitness for the hillclimber algorithm and highlight two results: Code X resRP ath is the most valuable result achieved with the hillclimber algorithm. The coverage of 22.9% of CDS by pathless motifs was unparalleled. The data obtained shows that all other coverage values for the other methods are well above average. The code is:

X resRP ath = {CAA, AAT, CCA, CAT, ATT, GCA, CCT, GCT, GAA, GAC, GGA, GAT, GCC, GGC, GGT, GTA, CGT, GTT, ACT, CTT } Pathless motifs: 23.4%

This code X resRP ath is a circular code, but it is non-self-complementary. The longest path in the associated graph is of length six. According to Theorem 2.1.4, the reading-frame number is n X = 13. The code X resRP ath encodes 13 amino acids: Ala, Arg, Asn, Asp, Gln, Glu, Gly, His, Ile, Leu, Pro, Thr and Val. As for method 1 and 2, we attempt to simulate the evolution by starting the algorithm with the X-code. The goal is to identify the local maximum of the X-code if the pathless motifs had a major influence on evolution. The result is:

X resXP ath = {CAA, AAT, ACC, CAT, ATT, GCA, TCC, GCT, GAA, GAC, GGA, GAT, GCC, GGC, GGT, GTA, CGT, GTT, ACT, CTT } Pathless motifs: 23.4%

This code X resXP ath is a circular code, but it is non-self-complementary. The longest path in the associated graph is of length seven. According to Theorem 2.1.4, the reading-frame number is n X = 14. The code X resRP ath encodes 13 amino acids: Ala, Arg, Asn, Asp, Gln, Glu, Gly, His, Ile, Leu, Ser, Thr and Val. If we compare the results of the codes found in section 5.3.1 and 5.3.2 with the results of the X-code, on average, the X-code is the best code. The coverage of the X-code is not exceeded by any of the other codes. It can be seen that the results of either method 1 or method 2 are higher for the codes found by the hillclimber algorithm but never of both methods. However, it should not be neglected that these codes have been optimized with regard to one of these values. In summary, it shows that these methods have the potential to be of importance for readingframe retrieval -in particular method 1. Astonishingly, the results indicate that the coverage of method 1 and circularity of the codes are connected. It is even more surprising that the codes are C 3 codes. Note that there is no natural link between the method and C 3 property of codes. Another exceptionalism of method 1 is that the codes do not need to have high codon coverage in the three readingframes of a sequence and still perform very well. Method 2 achieves remarkable values over 70%. It must also be considered that the codes encoded 13 amino acids. Hypothetically, this method could perform very well as a machinery to synchronize the reading-frame in genes. Nonetheless, it is unclear how reliable these methods are. For instance, the numbers of method 1 reveal that the coverage in random sequences is only slightly below the coverage in gene sequences with respect to the X-code. Future investigation of these methods is needed to determine whether they are a potential role model for new types of block codes and/or as readingframe retrieval methods in genes.

Finally, we summarize the two results obtained by means of the pathless motifs. The first results indicate that the coverage of the three reading-frames as well as the coverage of method 1 and method 2 are somehow linked to the pathless motifs. These motifs have an obvious link to the circularity. Hence, it is unsurprising that the codes found by the hillclimber are circular or even C 3 . Yet, the links to method 1 and method 2 cannot be reconstructed.

Chapter 6 Conclusion

This concluding chapter is divided into two sections. The first part uses the results obtained in Chapters 2-5 to describe a hypothetical evolutionary scenario based on a combinatorial hierarchy. Subsequently, this dissertation closes with a discussion of the achieved results and an outlook on possible future research.

Biological consequences

Almost every organism living today stores its genetic material in DNA and uses the standard genetic code (SGC) to translate the 64 trinucleotides (codons) into 20 amino acids and the stop signal during protein synthesis. In section 1.1.3 of the introduction, we have presented the three most widely accepted hypotheses about the origin of the genetic code (see for an overview [START_REF] Koonin | Frozen accident pushing 50: stereochemistry, expansion, and chance in the evolution of the genetic code[END_REF][START_REF] Koonin | Origin and evolution of the genetic code: the universal enigma[END_REF]). Let us recall these hypotheses briefly: (1) the stereochemical theory based on the stereochemical attraction between amino acids and specific anti-codons [START_REF] Pelc | Stereochemical relationship between coding triplets and amino-acids[END_REF][START_REF] Yarus | The genetic code and rna-amino acid affinities[END_REF], (2) the adaptive theory, which suggests that the genetic code is the result of an optimisation process to be as robust as possible against mutations [START_REF] Woese | Order in the genetic code[END_REF][START_REF] Freeland | The genetic code is one in a million[END_REF], and (3) the theory of coevolution of the genetic code with amino acid biosynthetic pathways [START_REF] Wong | A co-evolution theory of the genetic code[END_REF].

In the following we will use the theory of k-circular codes and the circular code classes X 1 to X 8 introduced in section 2.1.2 to develop a hypothetical model of the evolution of the genetic code adapted to the limitations of the adaptive theory. The different classes of circular codes can be perfectly integrated into the chain of argumentation of Novozhilov, Wolf and Koonin from [START_REF] Novozhilov | Evolution of the genetic code: partial optimization of a random code for robustness to translation error in a rugged fitness landscape[END_REF], which suggests that the SGC is not completely error-tolerant. The three authors claim in [START_REF] Novozhilov | Evolution of the genetic code: partial optimization of a random code for robustness to translation error in a rugged fitness landscape[END_REF] that there must be a compromise between the increasing robustness against translation errors and the extension of the coding table. Certainly, the efficiency of the code is another factor that should be added to this line of argument. By extending the genetic alphabet or the word length, it was possible that the code would contain more information in addition to being error robust (see section 2.2.1). However, such an evolutionary scenario is only conceivable in a hypothetical primitive genetic code, which in this work is represented in the form of Tessera codes. Nevertheless, it can be assumed that even in this hypothetical scenario, the effectiveness and above all efficiency of protein synthesis forced evolution to develop a trinucleotidebased genetic code or translation mechanism at an early stage.

These considerations inspire the construction of a combinatorial hierarchy of genetic codes (error-detecting codes as subcodes of the genetic code) presented in the following, assuming that the development of the genetic code was accompanied by the development of error detection codes and that the genetic code itself had to be extended in the course of evolution. The corresponding evolutionary model starts with circular Tessera codes as a form of a possible primordial code and is then further developed on the basis of the properties of the circular trinucleotide code classes X 1 to X 8 developed in this work and the (k)-circular code classes (see theorem 4.3.1 with n = 4 and = 3, and Observation 4.3.2). Figure 6.1 visualises such a combinatorial hierarchy: the evolutionary template shown has two optional starting points (A) and (B). Starting point (A) in Figure 6.1 refers to the self-complementary Tessera code X T = {AACC, GGTT, GGCC, AATT, AGTC, GACT, GATC, AGCT }, which is self-complementary strong comma-free and can be mapped to a strong comma-free trinucleotide code, which is a subcode of the RNY code (see section 1.2.8). In contrast, the starting point (B) focuses on the maximum circular Tessera codes. There is much evidence that the maximal circular Tessera codes can be mapped onto comma-free codes (see Observation 3.3.1 and Observation 3.4.3), while there is convincing evidence that there is no correlation between maximal circular Tessera codes and strong comma-free trinucleotide codes. Therefore, the evolutionary hierarchy in Figure 6.1 is based on two opposing starting points. From these points on, the combinatorial hierarchy develops with increasing complexity according to the code classes X p (see section 2.1.2), where p refers to the maximum path length p (from 1 to 8) of their associated graphs G(X p ). Since the maximum path length p refers to the reading frame number n X defined in Theorem 2.1.4, the circular codes in X 1 are strong comma-free and the codes in X 2 are comma-free and therefore more restricted than the codes in X 3 to X 8 . Table 2.7 lists the reading frame number for each class.

Longest path classes:

X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 Readingframe number n X : 5 6,7 8 9,10 11 12,13 14 15 Copy of Table 2.7. The readingframe number n X for the eight classes of circular trinucleotide codes.

The maximum self-complementary C 3 code X discovered by Arquès and Michel [1] is the most important representative of the 216 maximum C 3 self-complementary trinucleotide circuit codes introduced in section 1.2.8 and belongs to class X 8 . Through the work of Arquès and Michel there is here for the first time a statistical proof of the existence of such a code in the genetic information and its biological role.

After the X 8 code, a circular (4-circular) code with few restrictions, the development could have continued through the even less restrictive classes of k-circular codes (where k ∈ {1, 2, 3}). It is assumed that during this hypothetical course of development, the k-circular codes provide a possible transition from circular codes to the current SGC, in which the property of circularity is completely lost (Figure 6.1). This development led to a weakening of the genetic code with regard to its error robustness. One possible theory is that, as compensation, the motifs of a circular code, especially those of the X-code, which are found representatively in the genes of most organisms [START_REF] Michel | Enrichment of circular code motifs in the genes of the yeast saccharomyces cerevisiae[END_REF][START_REF] Dila | Evolutionary conservation and functional implications of circular code motifs in eukaryotic genomes[END_REF], are used to retrieve reading-frames. This evolutionary scenario in the form of a combinatorial hierarchy ultimately provides the SGC of today. As shown in Figure 4.4, the correct reading-frame retrieval of the SGC is not guaranteed. To solve this problem, the authors in [1,[START_REF] Michel | The maximal c 3 self-complementary trinucleotide circular code x in genes of bacteria, eukaryotes, plasmids and viruses[END_REF] suggest that a mechanism synchronises the reading frame that uses motifs of the X-code. In addition, we propose a new hypothetical procedure based on the results of Chapter 5 which presents new ideas on different methods for correctly retrieving the reading frame. Despite their hypothetical nature, the methods in Chapter 5 propose syntax-based reading-fame retrieval systems that are conceivable in a biological mechanism. The results of the developed methods are already very promising and it is obvious that by refining the methods again a novel model of a syntax-based reading-frame retrieval can be developed. However, it must be noted that the possible implementation of such a system in the ribosome has not yet been researched or even observed to the best of the author's knowledge, and thus offers potential for future experimental research. researched or even observed.

Discussion

The results achieved in this dissertation are discussed from two different perspectives. Both the mathematical and the biological perspective lead to different interpretations of the results. First we will take the biological perspective and it is inevitable to mention that all the theories developed and presented are of hypothetical nature. This is due to the fact that understanding the data is not sufficient to definitively prove and demonstrate the role of circular codes in DNA or RNA sequences, for example. However, this considerably increases the importance of this work, as it serves as a guide to support data collection and to guide future scientific work. As often cited, the X-code is still the strongest and most reliable evidence of error-correcting block codes in protein synthesis. This has been shown in numerous publications starting with [1]. However, the theories about a potential role of comma-free codes in genetic data processing should not be neglected. These theories have led to impressive evidence for the early (in terms of evolution) use of comma-free codes in gene [START_REF] Koonin | Origin and evolution of the genetic code: the universal enigma[END_REF]. A perfect link between these two approaches is the classification of circular codes by their longest path length in the associated graphs. This relationship is shown in a hypothetical evolutionary scenario based on a combinatorial hierarchy as shown in Figure 6.1.

This classification is an essential result of the present dissertation. It is not only the quality of correct reading-frame recognition, but also the number of all classes that need to be distinguished. It can be argued that there is currently no evidence for eight evolutionary steps between a strong comma-free codes and the X-code in this hypothetical scenario. However, as both theories are hypothetical, the discovery of such codes in conserved genes would support the model in Figure 4 In this hypothetical evolutionary scenario, which is based on the combinatorial hierarchy, the evolution from the X-code to the standard genetic code (SGC) can ideally be explained by the k-circular codes. This code class adds exactly three hypothetical evolutionary stages to the combinatorial hierarchy. The exact number of steps can be predicted by the sharp boundary of k(n, ), from which the k(n, )-circularity of an -letter code X over a given finite alphabet Σ implies its circularity. Possible reasons against such a development have to face the fact that 1-circular codes are in the remarkable position of being the only known block codes with a word length = 3 above the genetic alphabet to code all 20 amino acids.

The theory of circular Tessera codes presented in Chapter 3 led to fundamental results indicating a relationship between self-complementary, strongly comma-free Tessera codes and strongly comma-free trinucleotide codes, and maximal circular Tessera codes and comma-free trinucleotide codes. Although such a connection is as hypothetical as the existence of a possible Tessera code as a predecessor of the present SGC, it is too concise to be neglected.

All the theories developed in this work offer versatile starting points for future biological research. The first proposal refers to Chapter 5 and focuses especially on the comprehensive search for a new method of reading-frame retrieval, which uses the basic ideas of the two reading-frame retrieval methods presented in Chapter 5. A promising research topic is the classification of genes by means of the circular code classes, which are listed in the combinatorial hierarchy in Figure 4.4. For example, motifs as functionally conserved ("ancestral") genes may contain more (k-)circular code motifs compared to functionally specific genes. In addition, code motifs of different circular code classes can be examined with regard to their encoded amino acids.

Finally, we take the (bio-)mathematical perspective. The complete classification of graphs associated with self-complementary circular Tessera codes and self-complementary circular trinucleotide codes of a size ≥ 18 can be very useful for the investigation of such codes. However, this proof still needs to be implemented generally for each word length . The same applies to the reading-frame number n X and the classification according to the longest path in the associated graphs. Here a general definition is mandatory and has yet to be found.

The functions dealing with the maximum size of a circular code seem to be finished from today's point of view. In contrast, the mapping function of a circular code to a binary code opens new doors and allows a variety of new approaches, such as those mentioned in section 2.2.3.

In Chapter 3, Table 3.11 opens questions about its properties that are still open to be proven. In addition, we have presented observations on circular trinucleotide mappings of circular Tessera codes. This relationship has yet to be defined by means of the tubular representation of Tessera codes. The construction of Tessera codes is interesting and complex. However, it still needs to be formalised so that it can be adapted to circular codes of any word length over any finite alphabet. Therefore, a feature of a code has to be linked to properties in the corresponding graph, so that a probability based on acyclic graph components can be found with which this feature occurs. One approach could be the comma-free separation of trinucleotide codes, as explained in section 2.2.2.

The influence of the sharp boundary k(n, ) on the study of circular codes is groundbreaking. Such an integer allows to determine whether a code is circular or not. Before the introduction of the k(n, ) boundary, the problem could only be solved by first presenting the code as a directed graph and then examining it for its cyclic paths. This discovery will bring new impulses to data science as it significantly simplifies algorithmic complexity. Due to the faster recognition of a circular code, the analysis of large DNA sequences can lead to new results without the need for a "supercomputer". l w (p) + 1, a contradiction to the maximality of l w (p), or has word-length l w (p) but starting with a nucleotide and ending with a dinucleotide, a contradiction to the structure of maximal paths. If the second possible X -frame is shifted by two, then either the path associated to the 2 possible X -frames has word-length l w (p) + 1, a contradiction to the maximality of l w (p), or has word-length l w (p) -1 starting with a nucleotide and ending with a nucleotide. But this case cannot exist unless the arrow-length of this path is at least the arrow-length of p, a contradiction to the maximality of p. The following list is a list of the used coding sequences in the experiments presented in chapter 5. The list contains only the FAST file commend of the sequences.

• >CCE57618 cds plasmid:HUSEC2011CHR1:pHUSEC2011-2:166:1143:1 gene: HUS2011 pII0001 gene biotype:protein coding transcript biotype:protein coding gene symbol:repA description:replication initiation protein RepFIB 1. 6 The figure depicts all translation rules of the standard genetic code, which specifies the 64 codons for the 20 amino acids. The translation is surjective, meaning that the same amino acid can be encoded by more than one codon but is encoded by at least one. In most cases, the bold codon ATG serves as start codon and the bold codes TAA, TAG and TGA code as the stop signal. (Picture taken from https://www.chegg.com/homework-help/questions-andanswers/standard-genetic-code-shown-table-41-many-codons-aminoacids-allow-synonymous-mutations-th-q40769295) . . . . . . . . . . 1.7 A schematic presentation of the microbiological evolution introduced in [START_REF] Watanabe | How the early genetic code was established?: Inference from the analysis of extant animal mitochondrial decoding systems[END_REF]. The evolution line marks the important milestones of the evolution. Starting with a primitive code which first evolved to the early genetic code and then to the LUCA (last common ancestor code). After LUCA, the branches of evolution divide into the forms of life we have today. (Picture taken from [START_REF] Watanabe | How the early genetic code was established?: Inference from the analysis of extant animal mitochondrial decoding systems[END_REF]) . . . . . . . . . . . . 1.8 A brief illustration of the three reading-frames in the genetic code.

The green reading-frame is the correct one. All three frames are decomposed into the same words. . . . . . . . . 1.11 Readingframe retrieval in genes with a trinucleotide circular code X = {AAC, AAT, ACC, ATC, ATT, CAG, CTC, CTG, GAA, GAC, GAG, GAT, GCC, GGC, GGT, GTA, GTC, GTT, TAC, TTC } identified in genes. A frameshift is detected after no more than 15 nucleotides. The codons underlined in blue belong to X . The trinucleotides underlined in red do not belong to X . . . . . . . 1.12 Readingframe retrieval in genes with the comma-free code X = {ACA, AGA, CGA, GCC, TCA, TTA}. A frameshift is detected immediately, after no more than three nucleotides. The trinucleotides (words of length 3) underlined in blue belong to X , the trinucleotides underlined in red do not belong to X . . . . . . . . . . . . . . . . . . method based on the X-code. It shows that α 1 (T GT ) is in the X-code, α 0 (GT A) is also in the X-code, and α 2 (T AT ) is in the X-code. Since all three words are different circular permutations of words in the X-code, the reading-frame is confirmed . . . . . . . . . 5.8 This figure gives an example of the reading-frame retrieval method 2 described above. This example uses the X-code. As can be seen, T GT is not in the X-code and α 1 (GT A) is not in the 1-permutation of the X-code. Nevertheless, α 2 (T AT ) is contained in the X-code.

I

  Definitions and notations II Appendix II.1 Proof of Theorem 2.1.4 . . . . . . . . . . . . . . . . . . . . . . . . II.2 List of all representing tables for all maximal circular Tessera codes II.3 List of 52 maximal 1-circular codes encoding all 20 amino acids. . .

  UNIVERSITE DE STRASBOURG ECOLE DOCTORALE MATHEMATIQUES SCIENCES DE L'INFORMATION ET DE L'INGENIEUR RESUME DE LA THESE DE DOCTORAT Discipline : Informatique Spécialité (facultative) : Présentée par : STARMAN Martin (Nom Prénom du candidat) Titre : Codes circulaires dans l'évolution du code génétique Unité de Recherche : CSTB, UMR-7357, ICube, Faculté de Médecine (N° et Nom de l'Unité) Directeur de Thèse : MICHEL Christian, Professeur (Nom Prénom -Grade) Co-Directeur de Thèse (s'il y a lieu) : STRÜNGMANN Lutz, Professeur (Nom Prénom -Grade)

Figure 1 . 1 :

 11 Figure 1.1: A schematic representation of the process from transcription to translation. The human cell, which belongs to the eukaryotic cell type on the left side, is compared with a bacterial cell, a representative of the prokaryotic cell type, on the right side. (Picture taken from https://www.khanacademy.org/science/high-schoolbiology/hs-molecular-genetics/hs-rna-and-protein-synthesis/a/intro-to-gene-expressioncentral-dogma)

Figure 1 . 2 :

 12 Figure 1.2: This figure demonstrates the difference of the single stranded RNA and DNA double helix. On the margins of the picture, the structures of the nucleobases are presented. (Picture taken from https://teachmephysiology.com/biochemistry/proteinsynthesis/dna-transcription)

Figure 1 .

 1 4 presents an example of the codon anti-codon pairing and shows the schematic illustration of a tRNA.

Figure 1 . 4 :

 14 Figure 1.4: A schematic illustration of the tRNA. Additionally, this figure shows how codon (GAG) in the mRNA is paired with its anti-codon (CTC ) in the tRNA. (Picture taken from https://rarediseases.info.nih.gov/GlossaryDescription/474/0)

  3 = 64 all 3-letter words over four nucleobases) codons to the 20 amino acids used in cells and a stop signal. A list of all amino acids is provided in the Appendix in Figure II.1. The translation is fully illustrated in Figure 1.6

Figure 1 . 6 :

 16 Figure 1.6:The figure depicts all translation rules of the standard genetic code, which specifies the 64 codons for the 20 amino acids. The translation is surjective, meaning that the same amino acid can be encoded by more than one codon but is encoded by at least one. In most cases, the bold codon ATG serves as start codon and the bold codes TAA, TAG and TGA code as the stop signal. (Picture taken from https://www.chegg.com/homework-help/questions-and-answers/standard-genetic-codeshown-table-41-many-codons-amino-acids-allow-synonymous-mutations-th-q40769295)

  20 amino acids used for protein synthesizes and their degeneracy. The middle column shows the DNA codes coding for the amino acid. In the last column the possible compressions using the IUPAC notation are given. (The compression column uses the following expressions form the IUPAC notation:H ∈ {A, T, C}), M ∈ {A, C}, N ∈ {A, T, C, G}, R ∈ {A, G} and Y ∈ {C, T } 1.1.3 Evolution of the genetic codeAlmost every living organism uses the standard genetic code (SGC) to translate 64 codons into 20 amino acids and the stop signal. Despite the few exceptions of the SGC, this observation offers considerable insights into evolution of the genetic code. However, to date, all existing theories on the evolution of the genetic code are controversial. If we include the 33 divergent tables in relation to the SGC, we can sketch the evolution as shown in Figure1.7.

Figure 1 . 7 :

 17 Figure 1.7: A schematic presentation of the microbiological evolution introduced in [74]. The evolution line marks the important milestones of the evolution. Starting with a primitive code which first evolved to the early genetic code and then to the LUCA (last common ancestor code). After LUCA, the branches of evolution divide into the forms of life we have today. (Picture taken from [74])

Figure 1 . 8 :

 18 Figure 1.8: A brief illustration of the three reading-frames in the genetic code. The green reading-frame is the correct one.

Example 0. 1 .

 1 Let Σ = {0, 1} be the binary alphabet and = 3. Hence, Σ are all binary 3-letter words. Σ = {000, 001, 010, 011, 100, 101, 110, 111} Let us assume that X = {000, 111}, then it follows that X ⊂ Σ Most codes in this thesis will be codes over the genetic alphabet, which has cardinality four. We set B := {A, T, G, C}. The complementary mapping of the nitrogenous bases is denoted as the mapping function c(•): c(T ) := A; c(C) := G and vice versa We define the function c(•) so that for any code X = {w 1 , w 2 , . . . , w x } of size x ∈ N the following holds: c(X ) := {c(w 1 ), c(w 2 ), . . . , c(w x )}. For the reversing permutation of a word w = b 1 . . . b we use the following notation: ← ---b 1 . . . b := b . . . b 1

Figure 1 . 9 :

 19 Figure 1.9: An illustration of the three reading-frames of the sequence TGA • GGT • GCC.

Figure 1 . 10 :

 110 Figure 1.10: An illustration of the three reading-frames of the sequence GCG•CGC. All three frames are decomposed into the same words.

S 3 :

 3 = {(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)}. If, for instance the permutation g = (3, 2, 1) ∈ S 3 acts on a word b 1 b 2

Example 3 . 1 .

 31 Let b 1 b 2 b 3 ∈ Σ 3 be a 3-letter word over an alphabet Σ, and (A 3 , •) is a group where A := {α 0 , α 1 , α 2 }. Then the circular permutation class of b 1 b 2 b 3 is defined as:

Figure 1 .

 1 Figure1.12 illustrates how a comma-free trinucleotide code retrieves the readingframe in an RNA sequence.

Frame

Figure 1 .

 1 Figure 1.13: G(X ) associated with the code X = {ACC, GAG, CCG}

Figure 1 . 14 :Figure 1 . 15 :

 114115 Figure 1.14: C 1 (X ) of the representing graph G(X ) of the code X = {ACCA, CAGT }

  Identity: I (or id) : (A, T, C, G) → (A, T, C, G); Strong/Weak (SW) or complementary mapping: SW (or c) : (A, T, C, G) → (T, A, G, C); Pyrimidine/Purine (YR0) mapping: YR (or p) : (A, T, C, G) → (G, C, T, A); Keto/Amino (KM) mapping: KM (or r) : (A, T, C, G) → (C, G, A, T ).

  then, there exists a path in G(X ) associated with the overlapping sequences c 1 • • • c l and c 1 • • • c m . The word associated with this path (see Definition 13 above) covers exactly the smallest subsequence of b

  Since the path is maximal, there is no trinucleotide of the form db 1 and no trinucleotide of the form b 3 d in X . Each self-complementary maximal circular code must contain the codons b 1 c(b 1 b 1 ) and b 1 b 1 c(b 1 ). 1 It follows that c(b 3 ) = b 1 and a 1 , a 2 ∈ {b 2 , c(b 2 )} 2 . Note that all the nucleotides b 1 , b 2 , b 3 must be different by circularity. Thus, we have four possibilities for a 1 , a 2 , namely b 2 b 2 , b 2 c(b 2 ), c(b 2 )b 2 and c(b 2 )c(b 2 ). As b 2 b 2 b 2 ∈ X by circularity, we have the following options for the two trinucleotides: a 1 b 2 ∈ X and b 2 a 2 ∈ X .

  in this case, self-complementarity also yields a contradiction to circularity, since e.g. the complementary trinucleotide of c(b 2 )c(b 2 )b 2 is in the same equivalence class as b 2 b 2 c(b 2 ).

  evidently, two out of the five nucleotides b 1 , b 2 , b 3 , b 4 , b 5 must be equal, which yields a cycle in G(X ), and contradicting the circularity of X . With Theorem 2.1.3 the classification of the different path patterns is completed. An application of these patterns is proposed in Theorem 2.1.4.

  ) of Proposition 2.1.2. Construction method 2.1.3. Start with a trinucleotide b 1 b 2 b 3 and then choose a subsequent trinucleotide that starts with the complementary of the dinucleotide b 2 b 3 , but does not end with the complement of b 1 . Continue this process until you choose a word which ends with the complementary of the dinucleotide b 1 b 2 , but does not start with the complement of b 3 . While the code constructed this way will satisfy the two conditions (1) and (2) of Proposition 2.1.2, it is non-self-complementary.

Figure 2 . 4 :

 24 Figure 2.4: Graph G(X ) of the strong non-self-complementary and non-circular code X = {AAT, ACA, AGT, ATC, CAC, CCG, CGA, CTG, GAA, GAG, GCA, GGC, GTC, GTT, TAC, TCC, TCT, TGA, TGG, TTA} of size 20 satisfying the two conditions (1) and (2) of Proposition 2.1.2.

  a) if b 2 = b 5 , it follows that c(b 3 b 2 )X, c(b 6 b 5 )X, Xc(b 2 b 1 ) and Xc(b 5 b 4 ) ∈ X * , where X can be substituted with b c or b d . (b) if b 2 = b 5 , it follows that b 1 b 2 = c(b 5 b 6 ) and b 2 b 3 = c(b 5 b 4 ). Hence, c(b 3 b 2 )X, c(b 6 b 5 )X, Xc(b 2 b 1 ) and Xc(b 5 b 4 ) ∈ X * , where X can be substituted with b c or b d . To claim (ii) Let |Y ∩ X * ∩ Q XY Y | = 2 and {b 1 b 2 b 3 , b 4 b 5 b 6 } = Y ∩ X * ∩ Q XY Y . Without loss of generality, we may assume that b 1 , b 2 , b 4 , b 5 ∈ {b a , b b } and b 3 , b 6 ∈ {b c , b d }. Consequently, b 1 , b 2 = c(b 4 b 5 ) and b 3 = c(b 6

  acyclic and satisfies condition (2) and (3) of Theorem 2.1.5, it follows that |X * ∩Q XY X | ∈ 0, 1, 4. Otherwise, G(X * ) is cyclic or does not satisfy Condition (2) and (3) of Theorem 2.1.5. This is due to the fact that, if b c b a b b ∈ X * , it follows that b a b b b c / ∈ X * and b a b b b c / ∈ X * . Hence, for the two vertices with the labels b c and b d d + (b c ) = d -(b d ). Therefore, without loss of generality, it can be said that there is only one possible construction of X * and Y * so that |Y ∩ Y * | ≥ |X * | -2: X * = {b a b a b c , b b b b b c , b b b a b a , b a b b b b , b d b b b a , b d b a b b } Y * = {b a b d b a , b b b d b b b b b c b a , b a b c b b } An example of this code X * ∪ Y * is given in Example 15.3. The associated graphs G(X * ) and G(Y * ) are both acyclic and both satisfy Condition (2) and (3) of Theorem 2.1.5. Yet, G(X * ∪Y * ) is acyclic and therefore a contradiction. (b) Y

  2 and the associated graphs G(Y * i ), where i ∈ {1, . . . , k} satisfy the Condition (2) and (3) of Theorem 2.1.5. This structure must be a contradiction. For proof see claim (2)-(b).

  in the two right columns; ACA TGT ACC GGT TGG CCA CCC GGG AGA TCT AGG CCT TCC GGA CGC GCG AGT ACT ACG CGT TCG CGA CCG CGG TCA TGA AGC GCT TGC GCA GCC GGC The following examples are constructed to illustrate the patterns used in the proof of Theorem 2.1.5.

Figure 2 . 5 :

 25 Figure 2.5: Graph G(X * ) of the strong non-self-complementary and non-circular code X * = {AAG ,ATT, CAT, GTA, TAA, TTC } of size six satisfies the two conditions (1) and (2) of Proposition 2.1.2

  ACA, AGT, AT T, CAT, CT A, T AA, T CT, T GA, T T G} is strong non-self-complementary and non-circular, but its graph G(X * ) satisfies the two Conditions (1) and (2) of Proposition 2.1.2.

Figure 2 .Figure 2 . 6 :

 226 Figure 2.6: Graph G(X ) of the strong non-self-complementary and non-circular code X = {AAG, ACA, AGT, ATT, CAT, CTA, TAA, TCT, TGA, TTG} of size ten satisfies the two conditions (1) and (2) of Proposition 2.1.2

Proposition 2 . 2 . 3 .

 223 If n and are integers, both are at least 2. Then, the function value M (n, ) < M (n, + 1).

Figure 2 . 7 :

 27 Figure 2.7: The graph shows the exponentially growing values of M (4, ). The blue circles mark the values for M (4, ). The upper limit m max := 4 -4 2 +1is represented by the red line, while the lower limit m min := 4 -4 is represented by the blue line.The graphic displays the values for a range of values from 1 to 20 for .

Figure 2 .

 2 Figure 2.7 shows the growth of the maximal size of codes over an alphabet Σ with a cardinality of 4. Without loss of generality, we can adapt this to any alphabet with a cardinality of greater or equal 2. This becomes more understandable if we include Figure2.8.

Figure 2 . 8 :

 28 Figure 2.8: These plots depict the absolute and relative difference between M (4, ) and its boundaries. The exponentially growing values must be always between their boundaries. It shows that M (4, ) is always closer to its lower bound 4 -4 than to its upper bound 4 -4 2 +1. Furthermore, it illustrates that the relative error η is close to zero.

Figure 2 .

 2 Figure 2.7 and Figure 2.8 complete the characterization of the maximal size of circular codes.Figure2.8 shows that the relative distance to the lower bound can be almost neglected. Therefore, it can be approximated that the first partial derivative of M (n, ) in respect to the word length is:

Figure

  Figure 2.7 and Figure 2.8 complete the characterization of the maximal size of circular codes.Figure2.8 shows that the relative distance to the lower bound can be almost neglected. Therefore, it can be approximated that the first partial derivative of M (n, ) in respect to the word length is:

b 1 b

 1 2 b 3 ∈ S i it follows that b 1 b 2 b 4 , b 4 b 1 b 2 / ∈ S i where b 3 = b 4 Note that each subset contains five complete circular permutation classes. To satisfy this condition, we reduce the permutation classes to a set of dinucleotides. Let H = {b 1 b 2 b 3 , b 2 b 3 b 1 , b 3 b 1 b 2 } be a circular permutation class. Then, this permutation class can be transformed with a transformation T (•) into a set of the codons dinucleotide prefixes and suffixes T (H) = Ḣ = {b 1 b 2 , b 2 b 3 , b 3 b 1 }.

Figure 3 . 1 :

 31 Figure 3.1: A model of the evolution of the genetic code according to the proposal of Gonzalez, Giannerini and Rosa. Each node in the evolution line represents an important milestone. The footer line shows the evolution of the word length .(Image taken from [40])

  V = {I, SW, Y R, KM } in detail: Identity: I (or id) : (A, T, C, G) → (A, T, C, G); Strong/Weak (SW) or complementary transformation: SW (or c) : (A, T, C, G) → (T, A, G, C); Pyrimidine/Purine (YR) transformation: YR (or p) : (A, T, C, G) → (G, C, T, A); and Keto/Amino (KM) transformation: KM (or r) : (A, T, C, G) → (C, G, A, T ).

Figure 3 . 2 :

 32 Figure 3.2: Graphical representation of the primeval base symmetries. KM is represented by red, YR by green and SW by blue colored lines

Definition 20 .

 20 There are 64 Tessera words w ∈ T ESS. All of them are tetranucleotides (four letter words) T ESS ⊂ B 4 . Each word is in form of:

1 ,

 1 there are 64 Tesserae. Consequently, each of the 64 trinucleotides b 1 b 2 b 3 ∈ B 3 can be uniquely extended to a valid Tessera tess(b 1 b 2 b 3 ) = b 1 b 2 b 3 b 4 by determining two unique transformations π 1 .π 2 ∈ V such that b 1 = π 1 (b 2 ) and b 1 = π 2 (b 3

  .

  3.

3 Figure 3 . 3 :

 333 Figure 3.3: Schematic representation of the mapping function cod(•) from the Tessera b 1 b 2 b 3 b 4 onto the codon x 1 x 2 x 3 .

Definition 21 .

 21 The set of[START_REF] Leeuw | The history of information security: a comprehensive handbook[END_REF] Tesserae T E of the twelve complete Tessera circular permutation classes in Table3.2 will be denoted as T E ⊂ T ESS Definition 22. A circular Tessera code is called maximal if it contains exactly twelve words. The calculations below use the representation of the codes as a graph, in particular, the components of the graphs associated with Tessera codes. Recalling the graph component construction, a Tessera code must have two components: the 1-component C 1 (•) and the 2-component C 2 (•). The 1-component contains only 1nodes and 3-nodes, while the 2-component contains all 2-nodes (see Definition 10).

b 1 b 2 b 3 b 4 b 5 b 1 b 2 b 3 b 4 =Figure 3 . 4 :

 434 Figure 3.4: A path from nucleotide to nucleotide in a C 1 (X ). It follows that X is a non-circular Tessera code

b 1 b 2 b 3 b 4 b 5 b 6 b 7 Figure 3 . 5 :

 735 Figure 3.5: A path from trinucleotide to trinucleotide in a C 1 (X ).

b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 b 10 Figure 3 . 6 :

 1036 Figure 3.6: Let X ⊂ T E be a Tessera code and C 2 (X ) the 2-component in the associated graph. According to this figure, the Tesserae b 1 b 2 b 3 b 4 , b 3 b 4 b 5 b 6 , b 5 b 6 b 7 b 8 and b 7 b 8 b 9 b 10 must be in X . The figure illustrates the resulting path of size four in C 2 (X ).

  we get four orbits of size four. Each orbit represents an equivalence class. It can be observed that for all dinucleotides b 1 b 2 in the same equivalence class, a transformation π ∈ V maps the first nucleotide onto the second b 1 = π(b 2 ).

Proposition 3 . 3 . 1 .

 331 Each Tessera b 1 b 2 b 3 b 4 can be uniquely mapped to a tuple (b 1 , β, γ) where b 1 ∈ B and β, γ ∈ V.

1 )

 1 Proposition 3.3.1 presents a proof that π 1 (b 1 ) = π 1 (b 2 ) and π 1 (b 3 ) = π 1 (b 4 ) for any Tessera b 1 b 2 b 3 b 4 ∈ T E and π 1 ∈ V. The following Proposition 3.3.2 uses these circumstances. Proposition 3.3.2. For each Tessera b 1 b 2 b 3 b 4 the two dinucleotides b 1 b 2 and b 3 b 4 belong to the same equivalence class.

b 1 π 2 (b 2 )

 22 ↔ b 3 π 2 (b 4 ) with π 2 ∈ V This simply shows that b 1 b 2 and b 3 b 4 belong to the same equivalence class of table 3.3. Definition 23. Hence, all 48 circular Tesserae T E can be separated into four subsets of size 12:

D 3 D 1 D 2 D 4 Figure 3 . 7 :

 12437 Figure 3.7: A tournament with four vertices.

b 1 b 2 b 3 b 4 ∈

 4 T E β be a Tessera and β ∈ V. Assertion (i) can be proven rather easily because for every b 1 b 2 b 3 b 4 ∈ T E β it follows that b 1 b 2 , b 3 b 4 ∈ B β . This must be true. Consequently, b 3 b 4 b 1 b 2 ∈ T E β .

b 1 b 2 b 3 b 4 and α 2 (w 1 ) = b 3 b 4 b 1 b 2 → b 1 b 2 , b 3 b 4 ∈ B β α 3 (w 1 ) = b 4 b 1 b 2 b 3 and α 1 (w 1 ) = b 2 b 3 b 4 b 1 →

 212231111 b 2 b 3 , b 4 b 1 ∈ B The two words w 1 and α 2 (w 1 ) are represented by two directed edges between b 1 b 2 and b 3 b 4 in the C 2 (T E β ). Hence, only one of them can be in X . Thus:

  .

  3.

3 Copy of Figure 3 . 3

 333 Schematic representation of the mapping function cod(•) from a Tessera b 1 b 2 b 3 b 4 onto the codon x 1 x 2 x 3 .

C 1 (

 1 X ) Let us assume that X ⊂ T E is a non-self-complementary circular Tessera code, and G(X ) fulfills the conditions. Any word b 1 b 2 b 3 b 4 ∈ X appears in C 1 as b 1 → b 2 b 3 b 4 . In order to satisfy the conditions, c(b 4 b 3 b 2 ) → b 5 must be in C 1 . Since each word in X is a Tessera, and therefore c(b 4 b 3 b 2 )b 5 is a Tessera, it follows that c(b 1 ) = b 5 .

D 3 D 1 D 2 D 4 Figure 3 . 8 :

 12438 Figure 3.8: 2-regular C 2 (X γ ). The only 2-regular acyclic graph with four vertices which can satisfy conditions (1) and (2) of Theorem 3.3.1 where no complementary vertices are connected.

Figure 3 . 9 :Figure 3 . 10 :Figure 3 . 11 :Figure 3 . 12 :

 39310311312 Figure 3.9: The B I

Figure 3 . 9 - 3 . 12 :

 39312 Figure 3.9-3.12: The four undirected graphs represent the four equivalence classes. Each edge represents two Tessera words. The edge labels (letters: A-L) connect the circular equivalent words. For better orientation, the color of the edges corresponds with the colors of the nodes of the circular equivalent words.

Pseudocode 2 .

 2 Require: 12 ≥ l ∈ N ≥ 1 function Distributions(l:int) distributions : list < list >← [] upperBound : int ← min(10, l) for a ∈ 1 . . . min(6, l) do for b ∈ (l -a)/3 . . . min(upperBound -a, a)) do for c ∈ (l -a -b)/2 . . . min(upperBound -a -b, b)) do distributions.add([a, b, c, l -a -b -c]) end for end for end for return distributions end function This paragraph explains the algorithm line by line. The explanation starts with the assignment of distributions and ends with line 6: distributions.add([a, b, c, la -b -c]).

  R and X 4 = X KM . Hence, the values in the tables are: 6 = |X 1 |, 4 = |X 2 |,2 = |X 3 | and 0 = |X 4 |

Figure 3 . 13 :

 313 Figure 3.13: Let us assume that w 1 , w 2 , w 3 , w 4 ∈ A 1 (green vertices) and w 5 , w 6 , w 7 , w 8 ∈ A 2 (red vertices) where T c,r = |A 1 | and T r,c = |A 2 |. These two graphs simply depict the relations of the circular equivalence classes within a representing table T . The graph shows that if T c,r = T r,c = 1, only one of the Tesserae in Figure A and one in Figure B can be in a code if the represented Tessera code is circular.

Figure 3 .Figure 3 .

 33 Figure 3.14: ϕ(C 2 (X j )) if |A||B||C| = 00X with X ∈ {0, 2}. The green edges represent the value of X Figure 3.15: ϕ(C 2 (X j )) if |A||B||C| = 1X 1 X 2 with X 1 , X 2 ∈ {0, 2}.The green edges represent the value of X 1 , and the grey edges represent the value of X 2

Figure

  Figure 3.17: ϕ(C 2 (X j )) if |A||B||C| = 111

  ) and Z (Figure3.18) demand the number of codes represented by a table.

4 . 1 .Observation 3 . 4 . 2 .

 41342 Based on observations, a specialty are the tables in which all four rows are of the row pattern 111. In this case, the possible combinations of Y & Z are only Y Y Y Z or ZZZY . The combinations Y ZZZ, ZY ZZ, ZZY Z, ZY Y Y , Y ZY Y ,Y Y ZY ,Y ZY Z,ZY ZY , Y ZZY , ZY Y Z, Y Y ZZ, ZZY Y , Y Y Y Y and ZZZZ always lead to to non-circular codes X associated with cyclic C 1 (X ). Based on observations, a specialty are the tables in which three rows are of the row pattern 111. In this case, the possible combinations of Y & Z are only Y Y Y , ZZZ, Y Y Z or ZZY . The combinations Y ZZ, ZY Z, ZY Y and ZY Z always lead to non-circular codes X associated with cyclic C 1 (X ).

Figure 4 . 1 :

 41 Figure 4.1: The 2-component C 2 (X ) of the tetranucleotide code X = {CGTC, GTCG, GTGA, TGAT, GATA, ACGT }. The cyclic path cannot be extended, since all available 1-nodes are already included.

Theorem 4 . 3 . 1 .

 431 (Theorem 4.1,[START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]) Let both and n be integers of at least 2.

  ACAG, AGAT, ATCA, CACC, CCCG, CGCT, CTGA, GAGC, GCGG, GGGT, GTTA, TATC, TCTG, TGAA} 4.3.1 Proof of the sharpness of Theorem 4.3.1

Figure 4 . 2 :

 42 Figure 4.2: The graph G(X (2,4) ) associated with the binary 4-letter code X (2,4) = {0001, 1100, 0111}.

  . . , /2 -1} and focus our attention on the component C i , which has no odd cycle. Let y = y 1 • y 2 • y 3 be an ( -i)-node of G where |y 1 | = |y 3 | = /2 -i and |y 2 | = i. Let us prove that if G -contains two nodes x and x such that x → y → x , then x = Z i and x = 0 i .

With 4 .

 4 3.1 and 4.3.2 we conclude the proof of our Theorem 4.3.2.

T

  GG, AT G, T T C, AAG, GAG, GAC, GGC, which encode the following seven amino acids, respectively: Trp, Met, Phe, Lys, Glu, Asp, Gly, and belong to the complete equivalence classes D 2 , D 8 , D 11 , D 15 , D 18 , D 19 . The basic idea of this proof is to construct the bipartite graph G = (V, E) displayed in Figure 4.3 where V is the union of the two disjoint sets D = {D 1 , D 3 , D 4 , D 6 , D 7 , D 9 , D 10 , D 12 , D 13 , D 14 , D 16 , D 17 , D 20 } and A = {Val, Tyr, Thr, Ser, Pro, Leu, Ile, His, Glu, Cys, Asp, Arg, Ala}.

Figure 4 . 3 :

 43 Figure 4.3: The bipartite graph G = (V, E) where V is composed of the 13 equivalence classes in D = {D 1 , D 3 , D 4 , D 6 , D 7 , D 9 , D 10 , D 12 , D 13 , D 14 , D 16 , D 17 , D 20 } and the 13 amino acids in A = {Val, Tyr, Thr, Ser, Pro, Leu, Ile, His, Glu, Cys, Asp, Arg, Ala}, and E is the set of all pairs (D i , aa) such that there is a codon in D i that encodes the amino acid aa.

Figure 4 . 4 :

 44 Figure 4.4: A probability hierarchy of reading-frame retrieval within two successive codons with the circular (4-circular) trinucleotide codes and the 52 maximal 1-circular trinucleotide codes coding the 20 amino acids (updated from [52]*Figure 1).

Figure 5 Figure 5 . 1 :

 551 Figure 5.1: This layer diagram shows the layers of the GCATR package. The main business logic in the bottom layer is written in C++. This layer was developed in five packages: GCAT, BDA, Sequence tools, Graph tools and Conductance. An adapter layer, using the package RCPP, allows access to the C++ classes from R. A final upper layer assembles the C++ components and manages their public appearance.

Figure 5 . 2 and

 52 Figure 5.3 offer a simplified overview of the implemented architecture. The core of the package is the interface WordContainer. A Word-Container is an object which contains words (tuples of letters) like a sequence or a code. This interface WordContainer is implemented by several classes. Each of these classes is equipped with a validation function, which is adapted to the specific needs of each class. For instance, for the function of the gene-related classes, it verifies whether the codes consist only of nucleotides, while for the validation of the Tessera code class, for example, it analyzes whether the words are all correct Tesserae.

Figure 5 . 2 :

 52 Figure 5.2: Simplified version of the architecture of GCATR. The classes in the namespace cas delegate property testing to the individual test classes. All test classes extend the interface called Tester. The CircularCode class is only one of many classes that extend the WordContainer interface. Other classes are TesseraCode, GenCircular-Code, GenSequeunce, and MixedCircularCode.

Figure 5 . 3 :

 53 Figure 5.3: Simplified version of the architecture of GCATR. The classes in the namespace cas delegate the modifications to the individual modifier classes. All modifier classes extend the interface called Modifier.

Figure 5 . 4 :

 54 Figure 5.4: This figure (src.: [41]) is a summary of the workflow of the Binary dichotomic algorithms (BDAs). a) Displays one representative of the BDAs (Rummerclass algorithm), b) is a classification of all codons by the means of three overlapping BDAs, and c) lists all parameters for the three BDAs used.

Figure 5

 5 Figure 5.5: This flowchart demonstrates the process of executing a BDA procedure in GCATR

Figure 5 . 6 :

 56 Figure 5.6: The directed graph associated with the code {ATT, CAG, CTG, AAG, TAC, GGA, ACG}. The green edges mark the longest path in the graph.

Figure 5 .

 5 7 gives an example.

Figure 5 . 7 :

 57 Figure 5.7: This figure gives an example of the first reading-frame retrieval method based on the X-code. It shows that α 1 (T GT ) is in the X-code, α 0 (GT A) is also in the X-code, and α 2 (T AT ) is in the X-code. Since all three words are different circular permutations of words in the X-code, the reading-frame is confirmed .

Figure 5 .

 5 [START_REF] Chatterjee | The Origin of Prebiotic Information System in the Peptide/RNA World: A Simulation Model of the Evolution of Translation and the Genetic Code[END_REF] gives an example of that.

Figure 5 . 8 :

 58 Figure 5.8: This figure gives an example of the reading-frame retrieval method 2 described above. This example uses the X-code. As can be seen, T GT is not in the X-code and α 1 (GT A) is not in the 1-permutation of the X-code. Nevertheless, α 2 (T AT ) is contained in the X-code. Hence, the reading-frame is confirmed

  .

4 and

 4 could lead to a reorientation of evolutionary research.

(Number 1 ) P o = 1 4 !Number 2 )Number 3 )Number 5 )Number 7 )Number 8 ) P o = 2 4 !Number 9 ) P o = 4 4 !Number 11 )Number 15 )Number 18 )Number 22 )Number 24 )Number 28 )Number 32 )Number 39 )

 14235784941115182224283239 ii) | t b |= 1 and | t e |= 2, as (i). Claim (3): Assume that p = b 1 → d 1 → • • • → b k , then any concatenation b i d i ∈ X . Choose any 2 trinucleotides c = s 1 s 2 s 3 , c = s 1 s 2 s 3 ∈ X . Then (s 1 s 2 s 3 )(b 1 d 1 ) . . . (d k bk )(s 1 s 2 s 3 ) ∈ X k+2 and hence s 3 (b 1 d 1 ) . . . (b k-1 d k-1 )b k s 1 is a possible X -frame (for itself) with t b = s 3 and t e = b k s 1 . Moreover, each concatenation d i b i+1 is a trinucleotide in X , so s 3 b 1 (d 1 b 2 ) . . . (d k-1 b k )s 1 is a second possible X -frame with t b = s 3 b 1 and t e = s 1 . Thus n X ≥ l w (p) + 3 since the sequence s 3 b 1 d 1 . . . b k-1 d k-1 b k s 1 has length l w (p) + 2. Now assume that b 1 . . . b k is a sequence of nucleotides with k ≥ l w (p) + 3 but b 1 . . . b k has 2 different possible X -frames: t b u 1 . . .u l t e and t b u 1 . . . u m t e with u i , u i ∈ X and t b , t e , t b , t e ∈ ({ } ∪ B ∪ B 2 ). As in Claim (1), we conclude that w.l.o.g. | t b t e |≤ 3 and hence | u 1 . . . u l |≥ k -3 ≥ l w (p) + 3 -3 = l w (p). Similar arguments as above show that the path associated to the 2 possible X -frames has word-length greater than l w (p), in contradiction to the maximality of p and l w (p). II.2 List of all representing tables for all maximal circular Tessera codes List II.2.1. For fragment distribution: |X 1 | = 0, |X 2 | = 2 |X 3 | = 4 and |X 4 | = 6 ; 32256 Codes For fragment distribution: |X 1 | = 1, |X 2 | = 1 |X 3 | = 4 and |X 4 | = 6 P o = 2 4! ; 32256 Codes For fragment distribution: |X 1 | = 0, |X 2 | = 3 |X 3 | = 3 and |X 4 | = 6 P o = 2 4! ; 36864 Codes For fragment distribution: |X 1 | = 1, |X 2 | = 2 |X 3 | = 3 and |X 4 | = 6 P o = 1 4! ; 147456 Codes For fragment distribution: |X 1 | = 2, |X 2 | = 2 |X 3 | = 2 and |X 4 | = 6 P o = 6 4! ; 49152 Codes For fragment distribution: |X 1 | = 0, |X 2 | = 2 |X 3 | = 5 and |X 4 | = 5 (; 31104 Codes For fragment distribution: |X 1 | = 1, |X 2 | = 1 |X 3 | = 5 and |X 4 | = 5 ; 31104 Codes For fragment distribution: |X 1 | = 0, |X 2 | = 3 |X 3 | = 4 and |X 4 | = 5 P o = 1 4! ; 165888 Codes For fragment distribution: |X 1 | = 1, |X 2 | = 2 |X 3 | = 4 and |X 4 | = 5 P o = 1 4! ; 331776 Codes For fragment distribution: |X 1 | = 1, |X 2 | = 3 |X 3 | = 3 and |X 4 | = 5 (P o = 1 4! ; 387072 Codes For fragment distribution: |X 1 | = 2, |X 2 | = 2 |X 3 | = 3 and |X 4 | = 5 P o = 2 4! ; 387072 Codes For fragment distribution: |X 1 | = 0, |X 2 | = 4 |X 3 | = 4 and |X 4 | = 4 P o = 6 4! ; 55296 Codes For fragment distribution: |X 1 | = 1, |X 2 | = 3 |X 3 | = 4 and |X 4 | = 4 P o = 2 4! ; 387072 Codes For fragment distribution: |X 1 | = 2, |X 2 | = 2 |X 3 | = 4 and |X 4 | = 4 (4P o = 2 4! ; 442368 Codes For fragment distribution: |X 1 | = 2, |X 2 | = 3 |X 3 | = 3 and |X 4 | = 4 (P o = 2 4! ; 903168 Codes For fragment distribution: |X 1 | = 3, |X 2 | = 3 |X 3 | = 3 and |X 4 | = 3

  . . . . . . . . . . . . . . 1.9 An illustration of the three reading-frames of the sequence TGA • GGT • GCC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.10 An illustration of the three reading-frames of the sequence GCG•CGC.

  1.13 G(X ) associated with the code X = {ACC, GAG, CCG} . . . . . . 1.14 C 1 (X ) of the representing graph G(X ) of the code X = {ACCA, CAGT } 44 1.15 C 2 (X ) of the representing graph G(X ) of the code X = {ACCA, CAGT } 44 2.1 Graph G(X 1 ) of the self-complementary circular code X 1 = {TGA, TCA} of size two with the longest path length l max (X 1 ) = 1. . . . . 2.2 Graph G(X 2 ) of the self-complementary circular code X 2 = {TGC, GCA, CTC, GAG} of size four with the longest path length l max (X 2 ) = 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 A probability hierarchy of reading-frame retrieval within two successive codons with the circular (4-circular) trinucleotide codes and the 52 maximal 1-circular trinucleotide codes coding the 20 amino acids (updated from [52]*Figure 1). . . . . . . . . . . . . . . . . . . 5.1 This layer diagram shows the layers of the GCATR package. The main business logic in the bottom layer is written in C++. This layer was developed in five packages: GCAT, BDA, Sequence tools, Graph tools and Conductance. An adapter layer, using the package RCPP, allows access to the C++ classes from R. A final upper layer assembles the C++ components and manages their public appearance.146 5.2 Simplified version of the architecture of GCATR. The classes in the namespace cas delegate property testing to the individual test classes. All test classes extend the interface called Tester. The Cir-cularCode class is only one of many classes that extend the Word-Container interface. Other classes are TesseraCode, GenCircular-Code, GenSequeunce, and MixedCircularCode. . . . . . . . . . . . 5.3 Simplified version of the architecture of GCATR. The classes in the namespace cas delegate the modifications to the individual modifier classes. All modifier classes extend the interface called Modifier. . 5.4 This figure (src.: [41]) is a summary of the workflow of the Binary dichotomic algorithms (BDAs). a) Displays one representative of the BDAs (Rummer-class algorithm), b) is a classification of all codons by the means of three overlapping BDAs, and c) lists all parameters for the three BDAs used. . . . . . . . . . . . . . . . . . 5.5 This flowchart demonstrates the process of executing a BDA procedure in GCATR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 The directed graph associated with the code {ATT, CAG, CTG, AAG, TAC, GGA, ACG}. The green edges mark the longest path in the graph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7 This figure gives an example of the first reading-frame retrieval

  Then, the Tesserae represented at a position T r,c are the circular relatives of the Tesserae represented in T c,r . Hence, 0 ≤ T r,c + T c,r ≤ 2, with r, c ∈ {1, 2, 3, 4} and r = c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 Among others, this table T (X ) represents the following code X = {AACC, AAGG, AATT, GGCC, GGTT, CCTT, TAGC, TACG, CGAT, ATGC, TGAC, GTCA}.X 1 = X I , X 2 = X SW , X 3 = X YR and X 4 = X KM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8 The tables show an example of a row transformation. The transformation g: (X 1 , X 2 , X 3 , X 4 ) → (X 3 , X 2 , X 1 , X 4 ) ∈ G swapsrows 1 and 3 of a table T . The transformation g is one of 4! transformations into G. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9 This table shows the interactions of multiple rows with a row pattern 111. The possible combinations of code fragments which are mapped onto Y (Figure 3.

17

 17

  ) and Z (Figure3.18) demand the number of codes represented by a table. . . . . . . . . . . . . . . . . . .

Table 1 .

 1

1: Short summery of the structure of DNA and RNA

Table 1 .

 1

2: The left column lists all

  ) of Proposition 2.1.2.Construction method 2.1.4. To construct non-self-complementary codes that are larger than size eight and satisfy the two conditions (1), (2) of Proposition 2.1.2, the codes constructed by Method 2.1.3 can be combined.Using Method 2.1.4, Example 15.1 below shows that there are in fact codes of size 20, such that their associated graphs satisfy the two conditions (1) and (2) of Proposition 2.1.2, which are non-self-complementary, even strong non-selfcomplementary, and non-circular.Example 15.1. The code X of size 20 X = {AAT, ACA, AGT, ATC, CAC, CCG, CGA, CTG, GAA, GAG, GCA, GGC, GTC, GTT, TAC, TCC, TCT, TGA, TGG, TTA} is strong non-self-complementary and non-circular, but its graph G(X ) satisfies the two conditions (1) and (2) of Proposition 2.1.2. Figure2.4 displays the graph G(X ) associated with X .

	Definition 15. A code X is strong non-self-complementary if for any trinucleotide w ∈ X , the complementary trinucleotide ← --c(w) / ∈ X .

Table 2 . 2 :

 22 Set Q 1 , where all codons have a weak middle base. Put b 2

  . The Examples 15.4, 15.5, 15.6 illustrate maximum codes of different word lengths. Example 15.4. This example presents a maximal circular tetranucleotide code X tetra ⊂ B 4 . The maximal size of a circular tetranucleotide code is 60. X tetra = {AAAC, AAAG, AAAT, AACC, AACG, AACT, AAGC, AAGG, AAGT, AATC, AATG, AATT, ACAG, ACAT, ACCC, ACCG, ACCT, ACGC, ACGG, ACGT, ACTC, ACTG, ACTT, AGAT, AGCC, AGCG, AGCT, AGGC, AGGG, AGGT, AGTC, AGTG, AGTT, ATCC, ATCG, ATCT, ATGC, ATGG, ATGT, ATTC, ATTG, ATTT, CCCG, CCCT, CCGG, CCGT, CCTG, CCTT,

CGCT, CGGG, CGGT, CGTG, CGTT, CTGG, CTGT, CTTG, CTTT, GGGT, GGTT, GTTT} Example 15.5. This example presents a maximal circular trinucleotide code X tri ⊂ B 3 . The maximal size of a circular trinucleotide code is 20.

X tri = {AAC, AAG, AAT, ACC, ACG, ACT, AGC, AGG, AGT, ATC, ATG, ATT, CCG, CCT, CGG, CGT, CTG, CTT, GGT, GTT} Example 15.6. This example presents a maximal circular dinucleotide code

Table 2 . 4 :

 24 This table displays the growth of the maximal length of a code in comparison to the results of L(n, ). The entries contain the values for dinucleotide, trinucleotide, and tetranucleotide codes. The last column indicates the percentage use of a maximum code of all circular permutation classes.

	|Σ|	L(|Σ|, ) M (|Σ|, )	%
	4 2	10	6	60%
	4 3	24	20	≈ 83%
	4 4	60	70	≈ 85%

Table 2 .

 2 must be comma-free and |X S | = 5. 5: S 1 -S 4 , the four comma-free subsets of B 3 . A code X ⊂ B 3 and X ⊂ S i , where i ∈ {1, . . . , 4} is either comma-free or not even circular. Each subset S i contains five circular permutation classes. So, if X ⊂ S i is comma-free, |X | ≤ 5 follows. The transformations I, SW, KM, Y R ∈ L (Y R = KM • SW ) map the four subsets to each other. The green colored codons are the codons in the RNY code.

	S 1

Table 2 . 6 :

 26 The Example 19.1 shows the mapping algorithm of a genetic code into a binary code. For reasons of readability, we will try to use the genetic alphabet in subsequent chapters.Mapping with maximal size Most tuples of an alphabet Σ and a word length have a different maximum size. Only few tuples get the same result from the equation M (n, ). Therefore, only a brute force algorithm was able to recognize the possible combinations. The table lists all possible combinations |Σ| and with the same maximum size. The brute force algorithm checked all values of |Σ| = 1, . . . , 50 and = 1, . . . , 50.

		100001000011100, 100001000011110,
	100001100011000, 100001100011100, 100001100011110, 100001110011000,
	100001110011100, 100001110011110, 100001111011000, 100001111011100,
	100001111011110, 110001100011100, 110001100011110, 110001110011100,
	110001110011110, 110001111011100, 110001111011110, 111001110011110,
		111001111011110}
	# M (|Σ|, ) |Σ|
	1	3	2 3	4 2
	2	6	2 4	5 2
	3	18	2 3	7 4
	4	630	2 13 36 2
	5	6552	8 27 3 5

Table 2 . 7 :

 27 The reading-frame number n X for the 8 classes of circular trinucleotide codes.

Table 3 .

 3 1: A table of all Tesserae with the generating transformation

	Dinucleotide	I	SW	Y R	KM
	AA	AAAA AAT T AAGG AACC
	CC	CCCC CCGG CCT T CCAA
	GG	GGGG GGCC GGAA GGT T
	T T	T T T T	T T AA T T CC T T GG
	AC	ACAC ACT G ACGT ACCA
	AG	AGAG AGT C AGGA AGCT
	AT	AT AT	AT T A AT GC AT CG
	CA	CACA CAGT CAT G CAAC
	CG	CGCG CGGC CGT A CGAT
	CT	CT CT CT GA CT T C CT AG
	GA	GAGA GACT GAAG GAT C

Table 3 .

 3 2: : List of complete equivalence classes. Self-complementary Tesserae are in bold.

Table 3 .

 3 3 below shows the four equivalence classes.

	B I B SW B Y R B KM
	AA AT	AC	AG
	TT TA	TG	TC
	CC CG	CA	CT
	GG GC	GT	GA

Table 3 . 3 :

 33 Each column shows one of the four equivalence classes of dinucleotides. For each class, the same transformation applied to the first nucleotide of each dinucleotide also yields the second. The column headings are the names of the equivalence classes. The header index is the unique transformation used to map the first nucleotide of a dinucleotide onto the second nucleotide.

Table 3 . 11 :

 311 List of the number of circular codes and comma-free codes of different length. * The numbers in these columns were calculated by a brute force algorithm.

	length	1-Circular codes*	Circular codes	C 4 codes*	Comma-free codes	self comp. circular*
	1	48	48	48	48	12
	2	1056	1056	1056	1056	72
	3	14080	14048	14016	13952	304
	4	126720	125544	124368	122376	996
	5	811008	791952	773088	745584	2580
	6	3784704	3606048	3433584	3214272 5408
	7	12976128	11908800 10922112 9816960 9264
	8	32440320	28230456 24577404 20952504 12708
	9	57671680	46720800 37987120 30297824 13696
	10	69206016	51111024 38129856 28015728 11232
	11	50331648	33113472 22240992 14790144 6144
	12	16777216	9592512	5685408	3351232 1584

  .1, the border values k(n, ) for a dinucleotide, a trinucleotide and a tetranucleotide are listed.

	Dinucleotide Trinucleotide Tetranucleotide
	k(4, 2) = 4	k(4, 3) = 4	k(4, 4) = 16

Table 4 . 1 :

 41 The k(n, ) value for a dinucleotide, a trinucleotide and a tetranucleotide. A k(n, )-circular code must be a circular code. For all listed values n := |B| is four. The value for is either 2, 3 or 4

Table 5 . 1 :

 51 The used sequences contain the given number of bases and codons.

  Pseudocode 3. Require: X ⊂ B 3 , := 3 and seq ∈ B + function ReadingFrameRetrievalMethod1(X , seq) cp 0 ← f ind and analysis code in sequence(seq, X )$circular permutations cp 1 ← f ind and analysis code in sequence(α 1 (seq), X )$circular permutations cp 2 ← f ind and analysis code in sequence(α 2 (seq), X )$circular permutations wordsInSeq ← |seq 0 |

	end if
	end for
	return 100×res wordsInSeq
	end function

res ← 0 for wIdx ∈ 0 . . . wordsInSeq do if IsUnique(cp 0 [wIdx], cp 1 [wIdx], cp 2 [wIdx]) then res ← res + 1

  .7.Pseudocode 4. Require: X ⊂ B 3 , := 3 and seq ∈ B + function ReadingFrameRetrievalMethod1(X , seq) cp 0 ← f ind and analysis code in sequence(seq, X )$circular permutations cp 1 ← f ind and analysis code in sequence(α 1 (seq), X )$circular permutations cp 2 ← f ind and analysis code in sequence(α 2 (seq), X )$circular permutations wordsInSeq ← |seq 0 |

	end if
	end for
	return 100×res wordsInSeq
	end function

res ← 0 for wIdx ∈ 0 . . . wordsInSeq do if cp 0 [wIdx] = 1 or cp 1 [wIdx] = 2 or cp 2 [wIdx] = 3 then res ← res + 1

  ATA, CAC, CAT, TTA, CAG, CTC, CTG, AAG, CGA, GAG, ATG, CGC, CGG, GTG, TAG, CGT, TTG, CTA, CTT } Method 1 coverage: 63.0%The code X resR1 is a non-self-complementary C 3 code. The longest path in the associated graph is of length six. According to Theorem 2.1.4, the reading-frame number is n X = 12. The code X resR1 encodes nine amino acids and the stop signal: Arg, Gln, Glu, His, Ile, Leu, Lys, Met, Val and Stop. The coverage for method 2 is 49.8%. X resR1 code in α 1 (X resR1 ) in α 2 (X resR1 ) in

	Normal frame	+1 frame	+2 frame
	31.1%	32.2%	31.4%

  Now, the coverage of reading-frame retrieval method 2 (see section 5.2.4) is used as fitness. As above, we use the reduced set of sequences from section 5.2.1. Again, we start the algorithm with 100 1-circular random codes called R to avoid local minimums. The best results are:

			resX1 ) in
	Normal frame	+1 frame	+2 frame
	21.7%	23.9%	23.0%
	5.3.2 Hillclimber with the reading-frame retrieval method
	2
	X resR2 = {CAA, ATA, ACC, ATC, ATT, CAG, CTC, GCT, GAA, GAC, GAG,
	GAT, CCG, GGC, GTG, GTA, CGT, TTG, TAC, TCT }
	Method 2 coverage: 71.1%

  Method 1: 62.0% Method 2: 53.3% X resRP ath code in α 1 (X resRP ath ) in α 2 (X resRP ath ) in

	Normal frame	+1 frame	+2 frame
	38.5%	37.2%	36.8%

  First, we recall the coverage results of the X-code:

	5.4 Consequences of Chapter 5
	Method 1 coverage: 51.0%
	Method 2 coverage: 64.3%
	Pathless motifs: 20.6%
	X-code in	α 1 (X-code) in α 2 (X-code) in
	Normal frame	+1 frame	+2 frame
	41.3%	37.1%		37.7%
	Method 1 coverage: 59.1%
	Method 2 coverage: 55.3%
	X resXP ath code in α 1 (X resXP ath ) in α 2 (X resXP ath ) in
	Normal frame	+1 frame	+2 frame
	39.2%		37.0%	37.2%

  Hence, the reading-frame is confirmed . . . . . . . . . . . . . . . . . 2.6 The table lists all possible combinations |Σ| and with the same maximum size. The brute force algorithm checked all values of |Σ| = 1, . . . , 50 and = 1, . . . , 50. . . . . . . . . . . . . . . . . . . . 2.7 The reading-frame number n X for the 8 classes of circular trinucleotide codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 A table of all Tesserae with the generating transformation . . . . . 3.2 : List of complete equivalence classes. Self-complementary Tesserae are in bold. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Each column shows one of the four equivalence classes of dinucleotides. For each class, the same transformation applied to the first nucleotide of each dinucleotide also yields the second. The column headings are the names of the equivalence classes. The header index is the unique transformation used to map the first nucleotide of a dinucleotide onto the second nucleotide. . . . . . . . . . . . . . 3.4 A list of all possible distributions of circular codes into the code fragments X I , X SW , X Y R and X KM . Each section in the table shows all fragments of codes of a certain code size. The distributions listed range from a code of size four to size twelve, which is the maximum. 3.5 The classification of the Tesserae in a fragment X i . Each set A i , B i , C i can only contain a maximum of two out of four Tesserae for them to be circular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6 This table T (X ) represents any circular Tessera code X ⊂ T E. X = X 1 ∪ X 2 ∪ X 3 ∪ X 4 are the four fragments. A i , B i , C i are the three classes of each fragment X i in regard to Table 3.5. Let T r,c be the value in the table at row r and column c.

At the website: https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi all translation tables are listed with their differences to the SGC.

The fundamental principles of the word theory and the coding theory are taken from the book[5].

This is discussed controversially in academia because it can be argued that white space separation is part of the composition process of languages. Therefore, language can be considered a code.

The combination c(b 1 )b 1 c(b 1 ) and b 1 c(b 1 )b 1 is not circular and a maximal circular code must contain one codon of each circular permutation class.

As co-author of the article[START_REF] Fimmel | Self-complementary circular codes in coding theory[END_REF], I had no influence on the chapter "Application: Reading frame of the maximal C

self-complementary circular code X identified in genes" and therefore decided not to include it in this work.

Recall that the union G 1 ∪ G 2 of two graphs G 1 = (V 1 , E 1 ) and G 2 = (V 2 , E 2 ) is defined as G = (V 1 ∪ V 2 , E 1 ∪ E 2 ).

Detailed information on the symmetrical properties of the construction of Tesserae can be found in the article[START_REF] Gonzalez | On the origin of degeneracy in the genetic code[END_REF] by Gonzalez, Giannerini and Rosa.

Note, that part (ii) was also obtained in a bachelor thesis[9] with a much more technical proof.

Let's assume b 1 , b 2 , b 3 , b

∈ {A, T, C, G} so that b 1 b 2 b 3 b 4 is a Tessera. D 1 and D 2 are denoted as the two dinucleotide elements. (D 1 = b 1 b 2 and D 2 = b 3 b 4 )

The algorithm that compiles all possible CPD for all fragment distributions is too extensive to be explained here. The algorithm is implemented in GCATR and can be found in the Github reposetory: https://github.com/StarmanMartin/GCATR

code _ k _ value ( c ( " ACG " , " CGT " , " TCC " , " CCA " ))

Human DNA sequences were taken from the Consensus CDS (CCDS) project. https://www.ncbi.nlm.nih.gov/projects/CCDS/CcdsBrowse.cgi and downloaded from FTP server: ftp://ftp.ncbi.nlm.nih.gov/pub/CCDS/ Yeast (Saccharomyces) https://www.yeastgenome.org(https://www.yeastgenome.org https://downloads.yeastgenome.org/sequence/S288C_reference/orf_dna/ Worm (C. elegans) https://www.ebi.ac.uk/ena/data/view/Taxon:Caenorhabditis%20elegans Then "Coding (Release)": https://www.ebi.ac.uk/ena/data/view/Taxon:6239&portal=coding_release Download via "FASTA" link. File name is celegans.fasta. Bacteria (E. coli) http://bacteria.ensembl.org/Escherichia_coli/Info/Index Then "Download DNA sequence (FASTA)". ftp://ftp.ensemblgenomes.org/pub/bacteria/release-44/fasta/bacteria_ 91_collection/escherichia_coli/cds/ Viruses https://www.ebi.ac.uk/genomes/virus.html Two viruses were selected: • Abalone herpesvirus Victoria/AUS/2009 or short 'herpes'. https://www.ebi.ac.uk/ena/data/view/Taxon:1241371 Then "Coding (Release)": https://www.ebi.ac.uk/ena/data/view/Taxon:1241371&portal=coding_ release Download via "FASTA" link. File name is ena-herpes.fasta. • Bat SARS coronavirus HKU3 or short 'sars'. https://www.ebi.ac.uk/ena/data/view/Taxon:442736 Then "Coding (Release)": https://www.ebi.ac.uk/ena/data/view/Taxon:442736&portal=coding_ release. Download via "FASTA" link. File name is ena-sars.fasta.

Consequently, r + 1 ≤ n ( -1)/2 and hence, r ≤ k(n, ) -1.

(ii) Assume now that is even. Note that if r + 1 = 1 2 g e (X ), then according to Observation 4.2.1,

Further suppose that r+1 = g o (X ) < 1 2 g e (X ). Observation 4.2.1 implies that g o (X ) ≤ n /2 , with equality only if n is odd, since g o (X ) is odd. Therefore,

if n is even (and is even).

We established that whenever

if is even and n is odd, n /2 -1 if is even and n is even, every -letter code over an alphabet of cardinality n that is r-circular must be circular. This concludes the proof.

We further apply Theorem 4.3.1 to the case of a binary alphabet, i.e. with n = 2, and obtain the following statement: Observation 4.3.1. (Corollary 4.3, [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]) Let Σ = {0, 1} and be an integer greater than 1. A binary -letter code X ⊆ Σ is circular if and only if X is

2 -circular if is odd; or 2. (2 2 -1)-circular if is even.

Including the proof of Theorem 4.3.1, let us note that it implies the following results with dinucleotide and trinucleotide circular codes over the genetic alphabet, which were previously cited [START_REF] Fimmel | On the hierarchy of trinucleotide n-circular codes and their corresponding amino acids[END_REF][START_REF] Fimmel | Maximal dinucleotide comma-free codes[END_REF]: Observation 4.3.2. (Corollary 4.2, [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]) 1. A trinucleotide code X ⊆ B 3 is circular if and only if X is 4-circular.

2. A dinucleotide code X ⊆ B 2 is circular if and only if X is 3-circular.

Proof.

(1) In this case, n = 4 and = 3. Hence, according to Theorem 4.3.1, the code X is circular if and only if it is 4

3-1 2

= 4 1 = 4-circular.

(2) In this case, n = 4 and = 2. Hence, according to Theorem 4.3.1, the code X is circular if and only if it is (4

Subsequently, we present codes that are (k(n, ) -1)-circular but non-circular for some specific values of n and . In the subsequent section 4. We now show that G(X ) contains exactly one cycle which spans its whole component C /2 . The code X is obtained from X -by adding the word

As mentioned earlier, the /2-component of G -is a path of length n /2 -1 traversing all nodes (x) /2 for x ∈ Z k(n, ) in increasing order. Because the /2-component of G(X ) is obtained from that of G -by adding an arc from (k(n, )-1) /2 to (0) /2 , we precisely obtain a cycle of length k(n, ). For each i ∈ {1, . . . , /2 -1}, the component C i is obtained from the i-component of G -by adding an arc outgoing from the i-node Z i and an arc ingoing to the i-node 0 i . This does not create a cycle of a length of at least 4, since G -contains no directed path from 0 i to Z i . The only cycles that might be created are therefore of length 2, and there are two possible ones. The first possibility is to create a cycle containing precisely the i-node 0 i and either the (

This is possible only if i = 1 and either Y = 1 and n is even or Z = 1 and n is odd. However, the parity of n is the same as that of Y = n -2 and different from that of Z = n -1. Therefore, this first possible cycle is not created. The other possible cycle is the one containing the i-node Z i and either the

If n is odd, then the equality implies that i = /2, which is not the case. If n is even, then the equality implies that /2 -i = 1 and Y = 0, i.e. n = 2. It would follow that 01 i = 0 i+1 + 1, implying i = 1 and hence = 4. However, this is not the case as we assumed that (n, ) = (2,4). This completes the proof of Lemma 4.3.1.

We now proceed with the case in which is odd. The entire proof is divided into two cases depicted in detail in Appendix I. of the article [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF] (Lemma I.1 and I.2). Here we only present a sketch of the proof to illustrate its strategy and main steps.

Lemma 4.3.2. (Lemma 5.2, [START_REF] Fimmel | The relation between k-circularity and circularity of codes[END_REF]) Let n and be integers both at least 2 and assume that is odd. There is an -letter code over Σ n that is (n ( -1)/2 -1)circular but non-circular. Proof. Let X ⊆ B 3 be a maximal self-complementary circular code and G(X ) its associated graph. Since X is circular then G(X ) is acyclic, so it has a path p = p max (X ) of maximal length l(p). If the second possible X -frame is shifted by one with respect to the first one, then the path associated to the 2 possible X -frames has word-length l w (p) + 1, again a contradiction to the maximality of l w (p). If the second possible X -frame is shifted by two, then the path associated to the 2 possible X -frames has u 1 . . . u l has word-length l w (p). However, in this case, the path starts with a dinucleotide and ends with a nucleotide, a contradiction to the structure of maximal paths which have to start and end with a dinucleotide. (iii) | t b |= 1 and | t e |= 1. As above, if the second possible X -frame is shifted by one, then the path associated to the 2 possible X -frames has word-length l w (p) again starting with a nucleotide (u 1 ) and ending with a dinucleotide, a contradiction to the structure of maximal paths.

Chapter I Definitions and notations

If the second possible X -frame is shifted by two, then again the path associated to the 2 possible X -frames has word-length l w (p) starting with a nucleotide (u 1 ) and ends with a dinucleotide.

• >ENA-ASP44138-ASP44138.1 Bat SARS coronavirus HKU3 partial RNAdependent RNA polymerase

• >ENA-ASP44139-ASP44139.1 Bat SARS coronavirus HKU3 partial RNAdependent RNA polymerase

• >ENA-ASP44140-ASP44140.1 Bat SARS coronavirus HKU3 partial RNAdependent RNA polymerase

• >YAL001C TFC3 SGDID:S000000001, Chr I from 151006-147594,151166-151097, Genome Release 64-2-1, reverse complement, intron sequence removed, Verified ORF, "Subunit of RNA polymerase III transcription initiation factor complex; part of the TauB domain of TFIIIC that binds DNA at the BoxB promoter sites of tRNA and similar genes; cooperates with Tfc6p in DNA binding; largest of six subunits of the RNA polymerase III transcription initiation factor complex (TFIIIC)" List of Figures