A new algorithm for short read error correction that harvests information from k-spectrum and read decomposition