2. mLSTM training and representation fetching speed and memory improvements

The mLSTM model implemented on TensorFlow used was unable to process sequences >275 amino acids in length due to memory constraints, even with up to 16GB of RAM. This poses a major issue for many proteins with sequence lengths greater than this, including PETase, with sequence length of approximately 300. We collaborated to complete an open-source JAX re-implementation of the mLSTM to get UniRep representations of sequences, as well as for evotuning to get eUniRep sequence representations. JAX was chosen to achieve 100x speedup in passing new protein sequences through the trained mLSTM to get the 1900-dimensional UniRep / eUniRep representations. Technical implementation details and performance comparisons can be read in Ma et al \cite{kummer2020}. The JAX implementation crucially had the added benefit of requiring less memory to run, affording the ability to evotune on longer protein sequences.