A new algorithm for correcting errors in short-read data that uses a generalized suffix trie on the read data as the underlying data structure