# Usage The compilation process will generate three executables in the `build/bin` folder: *oxDNA*, *DNAnalysis* and *confGenerator*. In what follows, mandatory arguments are enclosed by angular brackets, `<...>`, while optional arguments are enclosed by square brackets, `[...]`. ````{note} All three executables take an input file as their first (mandatory) argument. Example input files can be found in the `examples` folder, while a more thorough description of the input file options and syntax can be found [here](input.md). ```` ## oxDNA *oxDNA* is used to perform the actual simulations. ``` oxDNA [key1=value1] [key2=value2] [...] ``` The first argument, ``, is the path to the file containing all the simulations' settings. It can be followed by a list of `key=value` pairs that overwrite the options found in the input file. ## DNAnalysis *DNAnalysis* can be used to perform specific analysis on configurations or trajectories generated by *oxDNA*. ```text DNAnalysis [key1=value1] [key2=value2] [...] ``` Here the usage is formally identical to `oxDNA`'s. However, note that the two executables handle some of the options found in the input file differently. ## confGenerator *confGenerator* can be used to generate simple initial configurations. When used to generate DNA or RNA configurations it is recommended to always set `generate_consider_bonded_interactions = true` in the input file. ```text confGenerator [key1=value1] [key2=value2] [...] ``` In addition to the input file, *confGenerator* takes another mandatory argument whose meaning depends on its value. It specifies the simulation box if it is a single number larger than 2 (in which case the simulation box is assumed to be cubic) or if it is an x-separated triplet of numbers that specify the length of the edges of the box (which is assumed to be a cuboid). By contrast, the second mandatory argument is interpreted as a number density if it is smaller than 2. ```{warning} This tool generates a configuration by inserting one particle (nucleotide) at a time, provided that its interaction energy does not exceed some predetermined value (which can be set with `energy_threshold`). It does so by placing each nucleotide randomly, but close to its neighbours, so that it is not too unlikely to end up with a non-overstretched bond. Unfortunately, this procedure makes it extremely unlikely to successfully generate a circular strand. ``` The following examples generate random initial configurations in a cubic box of size 10, in a cuboid of sizes 10x5x15 and in a cubic box with edge $L$ such that $N / L^3 = 0.1$, where $N$ is the total number of nucleotides specified in the topology file. ```text confGenerator input 10 confGenerator input 10x5x15 confGenerator input 0.1 ```