1. A computer implemented method of compressing a collection of data strings at a source location, the method comprising: a) receiving, at the source location, a collection of data strings from a dataset, wherein said data strings comprise a plurality of characters, b) generating a first Burrows Wheeler transform, BWT, on a string containing a first collection of characters, wherein the first collection of characters comprises a corresponding first character from each respective one of said data strings, c) inserting a second collection of characters into the first Burrows Wheeler transformed characters from the first collection of characters to form a merged collection of characters, wherein the second collection of characters comprises a second corresponding character from each respective one of said data strings, d) incrementally building a second Burrows Wheeler transform from the merged collection of characters, e) generating a Burrows Wheeler transform index by compressing and indexing the second Burrows Wheeler transform, f) predicting a next collection of characters based, at least partly, on the Burrows Wheeler transform index, wherein the next collection of characters comprises a next adjacent character from each of said data strings, g) determining an actual next collection of characters, h) determining the differences between the predicted next collection of characters and the actual next collection of characters, and i) compressing the differences between the predicted next collection of characters and the actual next collection of characters.