Input/Output File Overview

Oritatami systems which can be loaded by, or saved from, OritatamiSim are defined in two different types of files. The first type, "system definition files", have a file extension of ".orit" and contain the definitions of the bead types and primary structure, and several system parameters (see System Parameters for definitions). The second type, "assembly files", have a file extension of ".oass" and contain the definition of an assembly.

System Definition Files

Following is an example .orit file (from "examples/RNA-example.orit"):



BeadTypes=[['A', 'Yellow', ['U']], ['C', 'Red', ['G']], ['U', '(0, 0, 255)', ['A']], ['G', '(0, 255, 64)', ['C']]]
BeadCycle=['A', 'A', 'G', 'G', 'U', 'U', 'C', 'C']
DelayLength=2
Arity=1
LockWithoutBinding=False
BindFullFloppySegment=False

Of the six lines shown, the last four deal with setting the associated system parameters, whose definitions can be found in System Parameters.

The first line, beginning with "BeadTypes=", is a list containing the full definition of each bead type. Each bead type definition is itself a list. An example of a single bead type definition is: ['A', 'Yellow', ['U']]. The first element, 'A' is the name of the bead type (which cannot contain spaces, commas, or semicolons). The second element is the color of the bead type, which can be specified by a string name (for several common colors), such as 'Yellow', or a set of RGB values, such as '(0, 0, 255)' (which specifies the color blue, as for the bead type 'U'). The third element is another list, containing a comma separated set of bead type names that this bead type can bind to. In this example, there is just a single entry, the bead type 'U', but it is possible for this list to contain 0 or more bead type names. For example, if bead type 'A' could bind to itself, type 'U', and type 'G', this list would be ['A','U','G']. If it could not bind to any types, the list would simply be [].

The second line, beginning with "BeadCycle=", is a comma separated list of bead type names which defines the bead cycle, a.k.a. primary structure, for the system. Transcription begins from the first, i.e. leftmost, bead type and proceeds to the end of the list, then wraps back to the beginning.

Assembly Files

Following is an example .oass file (from "examples/RNA-example-partial-assembly.oass"):



OritatamiSystemDef=RNA-example.orit
Assembly=[['G', (0, 0), None, []], ['U', (0, 1), (1, 1), [(1, 0)]], ['G', (0, 2), (1, 2), []], ['A', (1, 0), (0, 0), [(0, 1)]], ['G', (1, 1), (0, 2), [(2, 0)]], ['A', (1, 2), (2, 1), []], ['C', (2, 0), (1, 0), [(1, 1)]], ['A', (2, 1), (3, 0), []], ['U', (3, 0), (2, 0), []]]
LastBead=(0, 1)

This example contains three lines. The first, beginning with "OritatamiSystemDef=", gives the name of the file which contains the definitions of the associated bead types. Note that this can be a full path to the file, or a path relative to this .oass file (as is the case in this example, meaning that both files are in the same directory).

The second line, beginning "Assembly=", is a list containing entries for every bead in the assembly. An example of an entry for a single bead location, which is the second entry in the above list, is: ['U', (0, 1), (1, 1), [(1, 0)]]. Each entry is a list, with the first element, here 'U', being the name of the bead type. The second element, here '(0,1)', is the coordinate location of the bead. The third element, here '(1,1)', is the coordinate location of this bead's parent, i.e. the bead which was transcribed immediately before it and to which it is linked. The fourth element, here '[(1,0)]' is a comma separated list of coordinate locations for other beads with which this bead has formed a bond. This list may be empty, i.e. '[]', or contain multiple sets of coordinates, e.g. '[(0,0),(1,0)]'. Note that locations for parent beads and bonded beads must be neighboring locations to this bead for correct behavior.

The third and fourth elements in an entry are optional and may both be omitted. If so, then the parent of the bead is assumed to be the bead immediately before it in the list, and no bonds are made from the bead.

The third line, beginning "LastBead=", is optional and, if included, specifies from which bead to begin transcription, i.e. where to attach the next bead in the self-assembly process. If it is omitted, then the last bead entry in the "Assembly=" line is assumed as this position.

Seed Assemblies vs. Assemblies

In OritatamiSim, the seed assembly is separately distinguished from the current assembly after one or more simulation steps, or manual editing of the assembly, have occurred. This makes it possible to reset the system back to the seed and re-do a simulation, while also saving the current assembly into a new file for later viewing (or using as a seed assembly itself). To do this, the simulator saves the value of the seed assembly in memory after loading it from a file, or when the user manually sets an assembly as the seed using the menu option "File" -> "Set current assembly as seed". Regardless of number of simulation steps which have occurred after the seed assembly has been set, only the seed assembly is saved when selecting "File" -> "Save seed (as)", and that is the assembly to which the system is reset when selecting "File" -> "Reset to seed". However, when selecting "File" -> "Save current assembly (as)", the entire assembly as it currently exists in the simulation window is saved.