Techniques such as genome editing, gene therapy, and CRISPR-based gene expression require robust methods of delivering genetic information. The effectiveness of delivery depends on the amount of DNA or RNA that can be delivered. In some cases there is a strict upper-limit on the amount of DNA or RNA that can be delivered. For example, AAV vectors for mammalian gene delivery are limited to genetic cargos of < 5 kb. In general, and irrespective of the delivery vector, larger DNA constructs are delivered less efficiently and so it is advantageous to use smaller constructs where possible. It is therefore advantageous to compress constructs. Methods of compression that do not require removal of genetic elements (“lossless compression”) are very desirable since size requirements can be met without compromising functionality. In order to reduce the number of bases (DNA or RNA) required to encode larger constructs, UC Berkeley researchers have developed a method for compressing genetic information. The method can be applied to two elements which be encoded in the same or different reading and can also be applied to a single genetic elements.