text:
\section{Supplemental Material}

\subsection{Experimental Methods}
\subsubsection{Sample preparation}
The SrVO$_3$ thin films measured at SOLEIL were grown at the GEMaC
laboratory, onto atomically flat TiO$_2$-terminated (100) SrTiO$_3$ substrates
by pulsed laser deposition (PLD) under a partial oxygen pressure of
$5 \times 10^{-6}$~Torr
at temperature of $750^{\circ}$C. A 248~nm wavelength KrF excimer laser was employed
with a repetition rate of 1~Hz and a fluency of 1.9~J/cm$^2$.
During the growth, surface structure was characterized by
Reflection High-Energy Electron Diffraction (RHEED).
After the growth, oxygen pressure was reduced to
$5 \times 10^{-8}$~Torr
when the sample was cooled to room temperature.
Surface morphology was carried out with atomic force microscopy (AFM, Bruker Dimension 3100)
in tapping mode and the Root Mean Square (rms) roughness of the film was 0.4~nm.
To clean the surfaces in UHV prior to ARPES experiments at SOLEIL,
the SrVO$_3$ thin films were annealed at a temperature
$T=550$~$^\circ$C for $t=5-20$~min at pressures lower than
$p < 2 \times 10^{-8}$~Torr.
One of the samples was Ar$^+$ sputtered ($U = 1000$~V, $t = 7$~min) prior to the UHV annealing,
without noticeable changes in the ARPES data.
After the UHV annealing, the quality of the surfaces was confirmed
by low-energy electron diffraction (LEED).

The SrVO$_3$ films measured at KEK were grown \emph{in-situ},
on a PLD chamber directly accessible from the ARPES UHV chamber,
on single-crystalline 0.05~wt\% Nb-doped SrTiO$_3$~$(001)$ substrates.
The substrates were annealed at $1050^{\circ}$C under an oxygen pressure of
$\sim 8\times 10^{-8}$~Torr
to obtain atomically flat TiO$_2$-terminated surfaces.
under a high vacuum below $\sim 10^{-7}$~Torr, to obtain an UHV clean surface,
using a Sr$_2$V$_2$O$_7$ target, which has excess oxygen with respect to SrVO$_3$,
and thus minimizes the formation of vacancies during the growth.
LEED measurements confirmed clean cristalline SrVO$_3$ films
with a $c(4 \times 4)$ surface reconstruction.
The surface morphology of the measured thin films was confirmed by \emph{ex-situ}
atomic force microscopy, showing atomically flat step-and-terrace structure.
The coherent growth of these SrVO$_3$ thin film was confirmed by four-circle
X-ray diffraction measurements. The characterization results are essentially identical
to those reported in previous studies~\cite{Yoshimatsu2010,Yoshimatsu2011,Kobayashi2015},
and indicate that there are no detectable structural disorders in the prepared SrVO$_3$ thin films
grown on Nb:SrTiO$_{3}$~$(001)$ substrates.

\subsubsection{ARPES measurements}
\begin{figure*}[t]
    \begin{center}
        \includegraphics[clip, width=14cm]{FigS1-SrVO3-Ovacs.pdf}
    \end{center}
    \caption{\footnotesize

        	Energy-momentum ARPES intensity maps spanning 3 consecutive Brillouin zones
        	on an SrVO$_3$ thin film prepared \emph{in-situ}.

        	Vertical dashed red lines show the edges of the
        	bulk unreconstructed Brillouin-zone.
            The data were measured at KEK-PF using $h\nu = 88$~eV photons
        	with (a) linear horizontal and (b) linear vertical polarizations,
        	and a hemispherical electron analyzer with horizontal slits.
        	The sample temperature was 20~K.
        	Surface umklapp bands induced by the surface reconstruction are best observed
        	in the data using linear horizontal polarization.
        	The spectra taken with linear vertical photons reveal the light and heavy bands
        	of the intrinsic bulk electronic structure of SrVO$_3$.

        	}

        	}
    \label{fig:Surface-Umklapps}
\end{figure*}

The ARPES measurements were conducted at the CASSIOPEE beamline
of Synchrotron SOLEIL (France), and at beamline 2A of KEK-Photon Factory (KEK-PF, Japan).
We used linearly polarized photons in the energy range $30-110$~eV and
hemispherical electron analyzers with vertical slits at SOLEIL
and horizontal slits at KEK-PF.
The angular and energy resolutions were $0.25^{\circ}$ and 15~meV.
The mean diameter of the incident photon beam was smaller than 100~$\upmu$m.
The UV light brilliance,
measured using calibrated photodiodes,
was $\approx 5 \times 10^{9} \text{ photons s}^{-1} \mu\text{m}^{-2}$
at SOLEIL, and about 100 times smaller at KEK-PF.
The (001) oriented SrVO$_3$ samples were cooled down to $T=20$~K before measuring.
Unless specified otherwise, all data was taken at that temperature.
Measuring at such low temperature minimizes any possible diffusion of oxygen vacancies
into the bulk.
The results have been reproduced on more than 5 samples.
All through this paper, directions and planes are defined
in the cubic unit cell of SrVO$_3$.
We note $[hkl]$ the crystallographic directions in real space,
$\langle hkl \rangle$ the corresponding  directions in reciprocal space,
and $(hkl)$ the planes orthogonal to those directions.
The indices $h$, $k$, and $l$ of $\Gamma_{hkl}$ correspond to
the reciprocal lattice vectors of the cubic unit cell of SrVO$_3$.

\subsection{Surface umklapp bands in thin-films of $\textrm{SrVO}_3$}
The surface reconstruction in our SrVO$_3$ thin films leads to the occurence
of surface umklapp bands in the ARPES spectra, as shown in Figs.~\ref{fig:Surface-Umklapps}(a,~b)
for data taken with linear horizontal and linear vertical photons polarizations, respectively.
These extra bands, best observed with linear horizontal photons,
result simply from the folding of the bulk bands at the surface due to the
superposition of the bulk and the reconstructed surface periodicities.
Their presence is a final-state effect and does not affect
the bulk electronic structure or the effects due to oxygen vacancies
discussed in this work.
Note that the spectra taken with linear vertical photons show both the light and heavy bands
expected for the intrinsic bulk electronic structure of SrVO$_3$, discussed in the next section.

\subsection{Bulk electronic structure of $\textrm{SrVO}_3$}
\begin{figure}[h]
    \begin{center}
        \includegraphics[clip, width=8cm]{FigS2-SrVO3-Ovacs.pdf}
    \end{center}
    \caption{\footnotesize

        	Zoom around $\Gamma$ of the energy-momentum ARPES intensity map
        	shown in Fig.~\ref{fig:Surface-Umklapps}(b), measured

        	at KEK-PF using $h\nu = 88$~eV photons
        	with linear vertical polarization
        	and a hemispherical electron analyzer with horizontal slits.
        	Vertical dashed red lines show the Brillouin-zone edges.
        	Continuous red curves are cosine fits to the bands.

        	}

        	}
    \label{fig:SVO-Light-Heavy-Bands}
\end{figure}

\begin{figure*}[t]
    \begin{center}
        \includegraphics[clip, width=16cm]{FigS3-SrVO3-Ovacs.pdf}
    \end{center}
    \caption{\footnotesize

        	(a)~In-plane Fermi-surface of SrVO$_3$(001), measured

        		using linear horizontal photons at $h\nu = 72$~eV,
        		and a hemispherical electron analyzer with vertical slits.

        	(b)~Out-of-plane Fermi surface of SrVO$_3$(001), measured

        		using linear vertical photons
        		from $30$~eV to $95$~eV, in steps of 1~eV,
        		and a hemispherical electron analyzer with vertical slits.

        		The green dashed circle is as guide to the eye showing
        		the quasi-circular Fermi-surface formed by the $d_{yz}$ states.

        		In both panels, the red lines delimit the Brillouin-zone.

        		All data from this figure were measured at CASSIOPEE (SOLEIL),
        		using the same light brilliance

        		conditions of Figs.~\ref{fig:SVO-vs-STO-UVdose}(a,~b).

        	}

        	}
    \label{fig:FS-SrVO3}
\end{figure*}

Figure~\ref{fig:SVO-Light-Heavy-Bands} presents a zoom around $\Gamma$ of the
ARPES energy-momentum map shown in Fig.~\ref{fig:Surface-Umklapps}(b),
which was taken using linear vertical photons and a hemispherical electron analyzer
with horizontal slits. This configuration of experimental geometry and light polarization
allows observing both the light and heavy conduction bands of SrVO$_3$.
We fit these bands using simple cosine dispersions of the form
$E(k) = E_0 - 2t\cos(ka)$, where $E_0$ is a constant, $4t$ is the bandwidth,
and $a$ is the in-plane lattice parameter of the SrVO$_3$ thin films
($a=3.905$~\AA~in the case of films grown on SrTiO$_3$).
For small $ka$, each cosine band can be approximated by a free-electron-like parabola
of effective mass $m^{\star}$ given by $ta^2 = \hbar^2/(2m^{\star})$.
The best fits, shown by the continuous red curves in Fig.~\ref{fig:SVO-Light-Heavy-Bands},
yield effective masses $m_l^{\star} = 0.9 m_e$ and $m_h^{\star} = 5.5 m_e$
for the light and heavy bands, respectively ($m_e$ is the free electron mass).

Figures~\ref{fig:FS-SrVO3}(a,~b) show the ARPES Fermi surface maps of SrVO$_3$
cut, respectively, along the $k_{x}-k_{y}$ and $k_{y}-k_{z}$ planes
(or in-plane and out-of-plane).
As was shown in Figs.~\ref{fig:SVO-vs-STO-UVdose}(a,~b), the Fermi momenta and band filling
of the QP conduction band are independent of the UV dose.
This ensures that the Fermi surface maps are exempt of extrinsic spurious effects
due to the UV-assisted creation of oxygen vacancies.

Our measured Fermi surface agrees with previous ARPES reports
on the electronic structure of SrVO$_3$~\cite{Takizawa2009,Yoshida2010,Aizaki2012}.
Furthermore, the bulk 3D character of our measured Fermi surface
is demonstrated by the observation, in Fig.~\ref{fig:FS-SrVO3}(b),
of dispersive $d_{yz}$ states forming a quasi-circular Fermi sheet
in the $k_{y}-k_{z}$ plane (green dashed circle serving as guide to the eye).

The 3D density of carriers in the bulk conduction band ($n_{3D}$) can be directly calculated
from the volume enclosed by the measured Fermi surface ($V_F$) as $n_{3D} = V_F/4\pi^3$.
In very good approximation, $V_F$ corresponds to the volume of three mutually orthogonal
inter-penetrating cylinders of cross-sectional Fermi radius $k_F = 0.4$~\AA$^{-1}$
and length $2\pi/a$ ($a$ is the cubic lattice constant of SrVO$_3$), \emph{i.e.}:
$V_F \approx 3\times \pi k_F^2 \times 2\pi/a - 2 \times (4/3)\pi k_F^3$,
where the last term avoids counting three times the inner Fermi quasi-sphere
at the intersection of the three cylinders.
This gives $n_{3D} \approx 0.9 e^-/a^3$ ($a^3$ is the unit-cell volume),
which is in excellent agreement with the expected value of 1 electron per Vanadium.
This again confirms that our ARPES measurements probe the 3D bulk Fermi surface.

\subsection{Electronic structure of vacancy-free $\textrm{SrVO}_3$ using ultra-low dose UV light}
\begin{figure}
    \begin{center}
        \includegraphics[clip, width=6cm]{FigS4-SrVO3-Ovacs.pdf}
    \end{center}
    \caption{\footnotesize

        	Photoemission spectra of SrVO$_3$ as a function of irradiation time
        	using an ultra-low dose of UV light.

        	The sample was prepared \emph{in-situ}.

        	This eliminates the need to re-anneal in vacuum to clean the surface
        	prior to measurements,
        	and thus minimizes the formation of oxygen vacancies.

        	The energy distribution curves (EDCs) were extracted from ARPES data
        	around the $\Gamma_{003}$ point
        	integrated along the $k = <100>$ direction.

        	The blue and black curves show spectra for the lowest and highest measured doses,
        	obtained respectively after $\sim 2$~minutes and $\sim 2$~hours of irradiation.

        	The data from this figure were measured at KEK-PF using $h\nu = 88$~eV photons
        	with linear horizontal polarization, and a hemispherical electron analyzer
        	with horizontal slits.

        	}

        	}
    \label{fig:EDCs-SrVO3-KEK}
\end{figure}

\begin{figure*}[t]
    \begin{center}
        \includegraphics[clip, width=14cm]{FigS5-SrVO3-Ovacs.pdf}
    \end{center}
    \caption{\footnotesize

        	(a)~Raw energy-momentum ARPES intensity map
        		measured at a low UV dose on an SrVO$_3$ sample prepared \emph{in-situ}.

        		The data were measured at KEK-PF using $h\nu = 88$~eV photons
        		with linear horizontal polarization, and a hemispherical electron analyzer
        		with horizontal slits.

        	(b)~Corresponding raw EDCs.

			(c,~d)~Same as (a,~b) after a strong UV irradiation.

				This data were measured at CASSIOPEE (SOLEIL) using $h\nu = 33$~eV photons
        		with linear vertical polarization, and a hemispherical electron analyzer
        		with vertical slits.

               	All data were taken at 20~K.
        	}

        	}
    \label{fig:Raw-ARPES-UV-dose-SVO}
\end{figure*}

Fig.~\ref{fig:EDCs-SrVO3-KEK} shows photoemission integrated spectra of a bulk
SrVO$_3$/SrTiO$_3$ thin-film prepared and measured \emph{in-situ} at KEK-PF.
This eliminates the need to re-anneal in vacuum to clean the surface,
and thus minimizes the formation of oxygen vacancies before the measurements.
Additionally, the spectra were measured using ultra-low doses of UV light.
As can be seen from the figure, this careful measurement protocol
prevents the formation of oxygen vacancies, allowing to acquire high-quality data
that shows no significant evolution with accumulation time,
even after several hours of measurements.
Thus, we define the obtained spectra as the ``intrinsic''
(occupied part of the) spectral function of SrVO$_3$.
Hence, the intrinsic ratio between the intensities of the lower Hubbard band and the QP peak
is $1:3$.

\subsection{Raw ARPES data: vacancy-free \emph{vs} vacancy-full $\textrm{SrVO}_3$}
Figs.~\ref{fig:Raw-ARPES-UV-dose-SVO}(a,~b) show the raw ARPES data for the QP and
lower Hubbard band dispersions in a vacancy-free sample measured under low UV dose,
corresponding to the second derivative of Fig.~\ref{fig:SVO-vs-STO-UVdose}(e).
Likewise, Figs.~\ref{fig:Raw-ARPES-UV-dose-SVO}(c,~d)
show the raw ARPES data for the QP and in-gap state for a sample exposed
to a strong UV dose, corresponding to the second derivative of
Fig.~\ref{fig:SVO-vs-STO-UVdose}(f).

As mentioned in the main text, in the vacancy-free sample
the QP band and intrinsic lower Hubbard band show the same dispersion,
while in the sample that has been strongly irradiated, and has thus a large concentration of
oxygen vacancies, the peak at $-1.5$~eV becomes broader,
more intense, and non-dispersive.

\subsection{Theoretical Methods}

\subsubsection{LDA and LDA+DMFT Calculations}
For the  DFT in the local density approximation (LDA)
and LDA+DMFT calculations we consider
a $2\times 2 \times 3$ supercell where two adjacent oxygen atoms to a vanadium
have been removed. This leads to a stripe-like configuration of vacancies with a concentration
of $2/36\approx 5.56\%$. The internal atomic positions of this  structure has
been relaxed using the GPAW code~\cite{gpaw}.

For the LDA+DMFT calculations (see Ref.~\cite{backes2014} for
a detailed explanation) we used the \textsc{WIEN2k}~\cite{Blaha01}
implementation in the local density approximation in combination
with a continuous-time quantum Monte Carlo (CTQMC)
impurity solver in the hybridization
expansion~\cite{Werner06} from the ALPS~\cite{ALPS11,Gull11a} project.
We projected the Bloch wave functions onto localized V $3d$
orbitals~\cite{Aichhorn2009,Ferber2014} in the unit cell, leading to a set
of 6 inequivalent impurities for the two vacancy structure.
Within the DMFT approximation we assume that (i) the multiple impurity atoms
only hybridize with an effective bath that is determined self-consistently and (ii)
the intersite hybridization to be small. This allows us to solve the impurity problems
separately and to write the full self-energy in Bloch space as
\begin{align}
	\Sigma_{\nu\nu'}(k,i\omega_n)
	&= \left( \sum_a  P^{\dagger}_a(k) \Sigma_a(i\omega_n) P_a(k) \right)_{\nu\nu'},
\end{align}
where the sum is performed over all impurity atoms $a$, with the corresponding
projection operators $P_a(k)$.
The projection comprises the V $t_{2g}$ and $e_g$ orbitals in the energy window
$[-1.5, 6.0]$~eV.
The calculations were performed for the inverse temperature
$\beta = 40\,\mathrm{eV^{-1}}$ ($290$ K)
with the interaction parameters used in the
definition of the Slater integrals~\cite{Liechtenstein1995}
with average $U=2.5\,\mathrm{eV}$ and $J_H=0.6\,\mathrm{eV}$.
For the double counting correction we used the FLL~\cite{Anisimov93, Dudarev98} scheme
and we checked that different values of the double counting only lead to small quantitative
changes in the spectral function.
The continuation of the Monte Carlo data to the real axis was done by stochastic
analytic continuation~\cite{beach2004}.

\subsubsection{Standard LDA+DMFT vs. LDA+DMFT including dynamical screening}
\begin{figure}[h]
	\begin{center}
		\includegraphics[clip,width=0.23\textwidth]{bulk_dmft_supplement.pdf}
        \includegraphics[clip,width=0.23\textwidth]{2vac_dmft_supplement.pdf}
	\end{center}
	\caption{(Color online)

	Comparison for bulk SrVO$_3$ between (a) the DFT result, (b) the LDA+DMFT result,
        and (c) the LDA+DMFT including an effective treatment
        of the dynamical Coulomb interacting screeening
        (explained in the main text) indicated by a *.

	(d-f): Same comparison for the 2 vacancy structure of SrVO$_3$. The main effect of the
        renormalization factor is a shift of the upper and lower $t_{2g}$ Hubbard bands towards the
        Fermi level, yielding a better agreement with experiment.
	}
\label{fig:dft_dmft_rescale_comp}
\end{figure}

In this work we included the effects of bandwidth renormalization
due to dynamically screened Coulomb interactions
using a low-energy effective model with an effective Hamiltonian
\begin{align}
H_{eff}
&= -\sum\limits_{ij\sigma} Z_B t_{ij} d^{\dagger}_{i\sigma}d_{i\sigma}
+ U_0 \sum\limits_i d^{\dagger}_{i\uparrow}d_{i\uparrow} d^{\dagger}_{i\downarrow}d_{i\downarrow},
\end{align}
with the screened Hubbard interaction $U_0$.
This approach has been suggested in Ref.~\cite{Casula2012}, and proved
to be a good approximation to the full treatment of the dynamically screened Coulomb interaction.
For the bandwidth renormalization factor we used $Z_B = 0.7$~\cite{Casula2012}.

In Fig.~\ref{fig:dft_dmft_rescale_comp} we show a comparison between standard DFT,
``standard'' LDA+DMFT and the LDA+DMFT approach including the effective screening
of the Coulomb interaction for a)-c) bulk SrVO$_3$
and d)-f) the two vacancy structure of SrVO$_3$.
The main effect of including the Coulomb interaction screening
via this approach is a shift of the upper and lower $t_{2g}$ Hubbard bands
towards the Fermi level, originating from the effective reduction of bandwidth.
Compared to experiment (as discussed in the main text), ``standard'' LDA+DMFT
consistently locates the lower Hubbard band at higher binding energies,
in both the bulk and vacancy structure, whereas the effective
model yields a much better agreement.
Especially in the bulk system the position of the lower Hubbard band
is brought to a good agreement.

Finally, the calculations with oxygen vacancies
produce a ladder of heavy bands near $E_{\text{F}}$,
that originate from the non-equivalency in all the vanadium atoms
of the super-cell contributing $t_{2g}$ bands near the Fermi level.
This V non-equivalency is due to the presence of oxygen vacancies
that lower the symmetry.
In the more realistic case with larger cells, only the in-gap $e_g$ states
of the V near the vacancy/vacancies would produce a significant spectral feature,
while essentially all the V atoms of the cell would be equivalent,
and the effects of the $t_{2g}$ states coming from the few
non-equivalent vanadium atoms around the vacancy would be negligible.
At present, such a calculation is however computationally unfeasible
in the framework of LDA+DMFT.

redpajama_set_name: RedPajamaArXiv


text:
\section{Introduction}
The amount of digital data generated is increasing at really high speed, and it is estimated to be around  35 Zettabyte ($10^{21}$) bytes by 2020. This digital universe consisting of the big data needs a reliable, dense and affordable storage medium to store data. Recently, Biocomputers have attracted researchers from computer science and engineering to apply their principles to living cells \cite{green2017complex}. One of the applications is to use the nature hard drive as a storage medium which is DNA. DNA consists of four bases namely A (Adenine), T (Thymine), G (Guanine) and C (Cytosine) that encodes the information of life. DNA is the most reliable source of data storage that has evolved through generations therefore it is natural to use DNA for digital data storage.

In DNA data storage system, data is encoded into strings of A, T, G and C using different encoding schemes. These data encoded DNA is synthesized and stored in the appropriate environmental conditions. Stored data can be decoded back to the original data by using DNA sequencing. In last few years, researchers have developed DNA based data storage systems by introducing different encoding schemes which showcased that such systems are robust \cite{grass2015robust}, reliable \cite{bornholt2016dna} and dense \cite{yazdi2015dna}. Storing the data on DNA was first showcased by G. Church \textit{et al.} \cite{church2012next} and N. Goldman \textit{et al.} \cite{goldman2013towards} in the year 2012 and 2013 respectively. Motivated by this, a software DNACloud was developed by a team at Gupta Lab, that demonstrated the data encoding in DNA sequences using a modified Goldman's scheme  \cite{DNAcloud} . In subsequent years, various DNA based data storage systems were proposed that revealed the density and durability of the DNA for the archival data storage \cite{limbachiya2015natural}. A rewritable and random access DNA based data storage was proposed by J. Bornholt \textit{et al.} \cite{bornholt2016dna} and Yazdi \textit{et al.} \cite{yazdi2015rewritable}. Very recently, Y. Erlich and D.Zeilinski \cite{erlich2017dna}  proposed capacity achieving codes by developing fountain codes to encode the data in DNA.

M.Ailenberg \textit{et al.} and N.Yachie \textit{et al.} \cite{ailenberg2009improved}  \cite{yachie2007alignment}  pioneered the idea of using the bacteria for the data storage by giving the proof of bacterial data storage at a small scale. In Yachie \textit{et al.} method, they converted the famous Einstein relativity equation $E=MC^2$ in \textit{B.subtillius} soil bacteria to store information DNA in multiple loci of genomic DNA of bacteria repeatedly. They could successfully encode $120$ bits in $4.2$ MB genome of the bacteria and decoded it back by multiple sequence alignment (MSA). Another method based on PCR (Polymerase Chain Reaction) technique, was proposed by Bancroft \textit{et al.} \cite{bancroft2001long}. Recently, S.L Shipman \textit{et al.} at the Wyss Institute for Biologically Inspired Engineering and Harvard Medical School, used bacterial living cells, for the first time to store movie using a powerful gene editing tool CRISPR \cite{shipman2016molecular}. Very recently in \cite{tavella2018dna}, a systematic framework to simulate the data storage in a bacterial plasmid is given by considering the bacterial plasmids as clusters. To use bacteria for data storage, some of the DNA constraints important for DNA data storage \cite{limbachiya2018contraint} are common to bacterial data storage which is fixed GC content (DNA sequence with the fixed number of Gs and Cs) and no homopolymers (DNA sequence without repeated DNA bases, e.g. ATGCTG). In this work, we propose a method which generates DNA sequences with both these constraints.

All the previous work for bacteria based data storage systems have been performed under experimental trials without using any automated software. In order to ease the process of encoding the data into bacterial DNA, software is required that can verify the experimental protocols before hands-on experiments. To achieve this, motivated by the genetic engineering protocol, we introduce the software to encode the data in bacterial plasmids. Genetic engineering deals with manipulating the bacteria by the insertion of a foreign DNA into plasmids. The plasmid is a carrier that allows the insertion of an external DNA and transfers it to bacteria.

In this work, we have built an open source software, which can be used to automatically store data in the bacterial plasmid using the concepts of genetic engineering. The software generates the DNA sequences with GC content (50 $\%$) and avoids long runs of DNA sequences (no homopolymer). First, we encode the text data into DNA sequences using the encoding strategy discussed in the section \ref{encoding}. After encoding, this data is cloned into the plasmid which can be selected from the list of different available plasmids. Restriction enzymes, which helps in inserting data into plasmid are automatically selected in the software based on the input DNA sequence. After Cloning, this data can be decloned back from plasmid and then decoded into the original data. A feature of Gel Electrophoresis simulation of encoded DNA is included in the software that allows visualizing the DNA on the simulated gel according to the length of DNA. All the steps described above can be visualized adequately in the software.

This paper is organized as follows. \textit{Section 2} discuss the algorithm used for Encoding the data, Cloning the data into a plasmid and then Decloning and Decoding the data back to original form. \textit{Section 3} discuss the GUI of our software. \textit{Section 4} contains the functionality and workflow of the software. \textit{Section 5} contains some examples showing how data can be encoded, cloned, decoded and decoded in the software. \textit{Section 6} provides the link to the website from where the software can be downloaded. \textit{Section 7} concludes the paper with some general remarks.

\section{Algorithm}
This section describes algorithms used for encoding the text data into the bacterial plasmid. It includes Cloning the data into the plasmid, Decloning it back from plasmids and the Decoding it back to original data.

\subsection{Encoding the text data } \label{encoding}
To encode the data, first, a file is selected using the import function of the software.

After importing the file, it is encoded into the corresponding DNA sequences that will be cloned into the bacterial plasmid. To encode the data, we have used the following encoding scheme:

\begin{itemize}
    \item First, the corresponding text file is converted into the binary format using the standard ASCII conversion table.
    \item Then this binary file is divided into n $(x_{1}, x_{2}, x_{3},......,x_{n})$ chunks of equal length, where the length of each chunk is 32 bits.
    \item Next, we form k $(m_{1}, m_{2},m_{3},....,m_{k})$ new chunks out of the original n chunks using XOR operation (addition modulo $2$) on three consecutive chunks.
    \item Now an 8-bit header is added to the above chunk, which is used for indexing.
    So the total chunk size is 40 bits (32 bits data + 8 bits header).
    \item Next, encode the corresponding binary block into DNA by using the Table \ref{encodetable} which converts binary to DNA. In this, if the first bit of the binary block is '\textit{0}' then it is encoded as 'G' else if it is '1' then it is encoded as 'C'

    \begin{table}[ht]
    \begin{center}
    \begin{tabular}{|c c c|}
        \hline
        Previous bps & 0 & 1 \\ [0.5ex]
         \hline\hline
         A & C & G  \\
         \hline
         T & G & C \\
         \hline
         G & A & T  \\
         \hline
         C & T & A \\
         \hline
        \end{tabular}
         \end{center}
         \caption{Conversion table from binary bits to DNA nucleotides}
         \label{encodetable}
        \end{table}

     \item The above encoding scheme is designed in such a way that the homopolymer runs and GC content are already taken care of while in the method proposed by \cite{erlich2017dna}, an additional step of screening is required for testing these DNA constraints.
\end{itemize}

\subsection{Cloning the Data}

Once the data is encoded, the user can select any "Desirable plasmid" and the "Restriction Enzyme" category from the drop-down menu available. There are 176 plasmids available (e.g., pBR322, pUC18, pUC19 and others). There are five different restriction enzymes category available like 6$+$ Cutters, restriction\_enzymes, Unique and Dual\_Cutters, Unique 6$+$ Cutters, Unique Cutters. After selecting the plasmid, if the imported text data size exceeds the maximum limit of plasmid, then a pop-up warning will be displayed. At present, we have been successfully able to clone around 10 Kb of data into the plasmids. The plasmids with maximum insertion capacity are pJAZZ-OK and pJAZZ-OC belonging to $E.Coli$ bacteria. On selecting the "MCS and Restriction Enzyme" button, Multiple Cloning Sites (MCS) and the plasmid diagram appears on the screen. MCS diagram shown in the Figure \ref{capture}, describes the various restriction enzymes available in the corresponding plasmid along with their cloning sites. The plasmid diagram (see the Figure \ref{capture2}), describes various elements like antibiotic resistance markers (e.g.  Ampicillin, Tetracycline, Chloramphenicol, Kanamycin etc.), repressors, gene and other elements present in the corresponding plasmid. On selecting the "Clone Data" button, the data gets cloned into the selected plasmid and the Cloned Plasmid diagram appears as shown in the Figure \ref{capture3}. For Cloning purposes it employs the following steps:

\begin{itemize}
    \item First, software scans for the Cloning site with sticky ends in the plasmid.
    \item Next, it checks whether the encoded data sequences at start contains complementary base pairs corresponding to the restriction enzyme. If not, then it inserts the corresponding complementary base pairs at the start of the encoded data.
    \item After determining the restriction site, it checks the encoded data length and finds another cloning site according to size.
    \item Once it identifies the cloning sites, it checks for the complementary base pairs at the end of the encoded data to stick into the plasmid. If it is not found, then it inserts the complementary base pairs corresponding to the restriction enzyme at the end of the encoded data.
    \item The data is cloned into the plasmid.
\end{itemize}

The Cloning process described above can be seen in the Cloned Plasmid diagram as shown in Figure \ref{capture3}. In the figure \ref{capture3}, one can see three diagrams on the top right corner which are explained as follows:

\begin{itemize}
    \item First diagram shows both the cloning sites of plasmid along with the restriction enzymes that were selected for cloning the data. Restriction sites of the displayed restriction enzymes are shown at the bottom of the screen.
    \item Second diagram shows the DNA sequence at both the ends of our encoded data.
    \item Third diagram shows that the DNA sequences of encoded data are complementary to restriction sites of selected restriction enzymes at both ends.
    Therefore the data gets successfully inserted into the plasmid.
\end{itemize}

\subsection{Decloning and Decoding Data}
\label{decoding}
To decode the data, first, the cloned data is decloned from the bacterial plasmid and then it is decoded to the original file.

First, it takes the cloned data and searches for the Cloning sites with blunt ends. After that it cuts at that ends and gets back the encoded data that was inserted in the plasmid. After decloning the data from the plasmid, it decodes the data into the original text. The Decoding algorithm is explained below:

\begin{itemize}
    \item It takes the data and divides it into chunks of 40 bits each.
    \item Then it converts the A, T, G and C sequences back to the original binary data by using the conversion Table \ref{encodetable}.
    \item Then it analyzes the 8-bit header and identifies which original chunks were present in it.

For instance, let $d=a \oplus b \oplus c$ be the encoded chunk formed by XOR operation on the data chunks $a$, $b$ and $c$. Suppose while decoding $b$ and $c$ are recovered and $a$ is not recovered, then  $a$ can be obtained by XORing $d$ with $b$ and $c$ ($a=d \oplus b \oplus c$ )
    \item The above step is repeated until you recover all the chunks. Then, this binary sequence is again converted back to the text data using the standard ASCII Conversion table and in this way, the original data can be obtained back.
\end{itemize}

After the decoding process, the "Gel Electrophoresis" diagram of the above experiment appears as shown in Figure \ref{capture4}. From this figure, we can see that the length of encoded data, as well as the decloned data is same, which proves the correctness of our experiment.

\section{Graphical User Interface}

The Graphical User Interface (GUI) of BacSoft has been developed for the users to easily upload any text file or upload any encoded DNA sequences file and get the cloned bacterial plasmid corresponding to the selected plasmid. The schematic representation of GUI is described in the Figure \ref{flowdiagram}

\begin{figure}
\centering
\includegraphics[width=8cm]{flowchart}
\caption{Overview of BacSoft GUI}
\label{flowdiagram}
\end{figure}

\subsection{Importing a text file }
\begin{figure}[H]
\centering
\includegraphics{import.png}
\caption{Used to import a text file}
\label{import}
\end{figure}

As shown in the Figure \ref{import}, one can find this button on the top left corner where one can import any text file and the corresponding text data from the file can be seen on the screen under the section "Imported Data."

\subsection{Encoding a text file}

\begin{figure}[H]
\centering
\includegraphics{save.png}
\caption{Used for Encoding the text file}
\label{encode}
\end{figure}

As shown in the Figure \ref{encode}, by clicking this button one can convert the imported text file into corresponding DNA Encoded Sequences which can be further used for cloning purposes. Once the data is encoded, it can be seen on the screen under the section "Encoded Data." Also, the encoded data is available in the file encoded.txt at location C:/Software\_folder/plasmid/.

\subsection{Selecting the desirable plasmid and restriction enzyme category}
\begin{figure}[H]
\centering
\includegraphics{success.png}
\caption{Used after selecting Plasmid and Restriction Enzyme Category}
\label{ok}
\end{figure}

One can find a drop-down menu beside the label "Select Desirable plasmid". There are around 176 different plasmid vectors available for options. After selecting the desirable plasmid, user can select any of the restriction enzyme categories from the drop-down menu available beside the label "Select Restriction Enzyme". After selecting the desirable plasmid and the restriction enzyme category press the "OK" button as seen in Figure \ref{ok} and the selected plasmid vector sequence is displayed on the screen under the "Plasmid" section .

\subsection{Displaying MCS and Restriction enzymes}
\begin{figure}[H]
\centering
\includegraphics{mcs1}
\caption{Used for displaying MCS and Restriction Enzyme present in selected plasmid}
\label{mcs}
\end{figure}

On Clicking the button "MCS and Restriction Enzyme" as shown in Figure \ref{mcs}, two new windows pop-up appear on the screen. One of them displays the various restriction enzymes available in the selected plasmid as shown in Figure \ref{capture}, while the other one shows various antibiotic resistance markers, repressors, protein, gene, etc. available in the selected plasmid as shown in the Figure \ref{capture2}.

\subsection{Cloning data}

\begin{figure}[H]
\centering
\includegraphics{clone3}
\caption{Used for Cloning the encoded data in selected plasmid}
\label{clone}
\end{figure}

On Clicking the button "Clone Data" as shown in Figure \ref{clone}, your encoded data is inserted into the plasmid. The cloned data can be seen on the screen under the section "Cloned Data". The text in red color indicates user encoded text data while the other is the plasmid DNA sequence. A pop-up window is also displayed where the highlighted text in pink is the user encoded text data as shown in the Figure \ref{capture1}. Also, the corresponding text file named cloned\_data.txt can be found in the folder C:/Software\_folder/plasmid/. The cloning process can be visualized as shown in the Figure \ref{capture3}.

\subsection{Decloning Data}

\begin{figure}[H]
\centering
\includegraphics{declone4}
\caption{Used for Decloning the data back from the plasmid}
\label{declone}
\end{figure}

On Clicking "Declone Data" button as shown in the Figure \ref{declone}, it retrieves the data back from the plasmid and then decodes it to the original data. Decoded data can be seen on the screen under the section "Decloned Data". In this, it also shows the "Gel Electrophoresis" experimental simulation of the Decloned data and the Encoded data as shown in the Figure \ref{capture4}.

\section{Functionality and Workflow}
The primary objective of this subsection is to provide an overview of the working and functionality of the software.

\subsection{Importing and encoding text data}

A text file can easily be imported using the import file option. In order to clone data into the bacterial plasmid, it needs to be converted into the corresponding DNA sequences. The proposed encoding method is already described in section \ref{encoding}.

\subsection{Display MCS and Restriction Enzymes}

For cloning purpose, first, select the plasmid to clone data into it. After selecting the plasmid, for the data insertion, we have to cut the plasmid, so that the data can be inserted into it. Restriction Enzymes contains Cloning Sites from where we can cut the plasmid and insert data into it. The user can see various restriction enzymes present in the plasmid along with the Cloning sites as shown in Figure \ref{capture}.

\subsection{Clone Data}
From various restriction enzymes available, the software automatically selects restriction enzymes which will help in inserting data. After selection, the plasmid is cut from there and the Encoded data is inserted into the plasmid as shown in the Figure \ref{capture3}. In the figure, the upper portion on the right side shows the cloning sites chosen along with their restriction enzymes, while the lower right corner shows the corresponding restriction enzyme sequences.

\subsection{Declone data}
The software looks for the Restriction Enzymes with blunt ends to retrieve the data back from the plasmid,  and it is ready to be decoded. The decoding algorithm is applied as discussed in \ref{decoding}, which gives the original data back. The user can also see the "Gel Electrophoresis" simulation of the experiment as shown in Figure \ref{capture4}.

 \section{Examples}

Using BacSoft, one can import any text file and get the corresponding encoded sequences, select various restriction enzymes and MCS, clone data in the plasmid and finally visualize the Gel Electrophoresis simulation of the corresponding inserted data. Also, if the user wants to import its encoded sequence, then one can choose various restriction enzymes and MCS and the clone the data in the plasmid. The details of the examples are given below :

\subsection{Importing the text file}

' \begin{itemize}
     \item For example, let us import the text file containing the text data "Start-up India.Stand-up India." (see the Figure \ref{capture5} under the section "Imported data from file").

     \item Once the file is imported, the text data is encoded into the DNA sequences using the encoding strategy discussed in the section \ref{encoding}. The encoded data is of length 320 bps and can be seen in the Figure \ref{capture5} under the section "Encoded data".

     \item Select the plasmid "pBR322" and "Unique Cutters" restriction enzyme category for cloning the encoded data. This plasmid contains 4361 bps and 52 unique restriction enzymes. These restriction enzymes along with their cloning sites can be seen in the Figure \ref{capture}. Also, one can see various elements like antibiotic resistance markers, gene, protein, etc. present in the plasmid in the Figure \ref{capture2}.

     \item After this, the data is cloned into the plasmid. The encoded data is highlighted with the \textbf{pink} color in the Figure \ref{capture1}. The figure \ref{capture5} shows the cloned data under the section "Cloned data". From the Figure \ref{capture3},  it is observed that for this example, HindIII (A AGCTT) and BamHI (G GATCC) restriction enzymes are used with the Cloning sites at positions 29 and 375 bps respectively.

     \item After this the data is decloned back from the plasmid and decoded back using the encoding strategy discussed in  the  section \ref{decoding} to the original data as can be seen from the Figure \ref{capture5} under the section "Decloned data". Also, the Gel Electrophoresis simulation of the above example is shown in the Figure \ref{capture4}.

 \end{itemize}

 \subsection{Importing DNA Sequences}
 \begin{itemize}
     \item For this example, we will import the text file containing the encoded data "AATTTTTTAAGGCC". The total length of the data encoded DNA is 14 bps.

    \item Select the plasmid "pBR322" and "Unique Cutters" restriction enzyme category for cloning the encoded data. This plasmid contains 4361 bps and 52 unique restriction enzymes. These restriction enzymes along with their cloning sites can be seen in the Figure \ref{capture}. Also, one can see various elements like antibiotic resistance markers, gene, protein, etc. present in the plasmid in the Figure \ref{capture2}.

     \item After this, the data is cloned into the plasmid. The encoded data will be highlighted in \textbf{pink} color as shown in Figure \ref{capture1}. For this example, HindIII (A AGCTT) and BsrFI (G CCGGT) restriction enzymes are used with the Cloning sites at positions 29 and 160 bps respectively.

 \end{itemize}

 \section{Availability}
 The BacSoft software can easily be downloaded from \href{http://www.guptalab.org/bacsoft/}{http://www.guptalab.org/bacsoft/}.

 \section{Conclusion}
The software BacSoft gives a simple demonstration to encode the data in the bacterial plasmid. The software includes a data encoding method that preserves GC content and no homopolymers DNA constraints for bacterial data storage. It enables the selection of bacterial plasmid for cloning and facilitates gel electrophoresis simulation for the encoded data. An example describing the encoding and decoding of the data in the bacterial plasmid is illustrated. However, there are challenges in developing robust encoding schemes for bacterial data storage such that it achieves the maximum capacity. As a future aspect, we anticipate proposing an improved data encoding scheme by using better error correcting codes.

\bibliographystyle{plain}