Pieces of software and databases are used to facilitate the design and
synthesis of genes. The synthesis techniques allow identification,
quantification, transcription, translation, and manipulation of portions
of the gene sequence represented as 0's and 1's in a computing system.
These pieces of software and databases compile constraint information
provided by a user to create synthetic genes to express proteins lacking
disordered or variable regions and containing surface mutations that
promote solubility and/or crystallization. Regions of the gene sequence
that do not form stable structures can be removed and replaced by a short
biological linker to improve crystallization of proteins.