A method for detecting spatial distribution of biomolecule expression within a biological sample, comprising: a) providing a substrate having a plurality of distinct locations, each distinct location comprising a first and second coordinates; b) attaching a plurality of oligonucleotide zipcodes to each distinct location; thereby encoding the first and second coordinates by the zipcodes, wherein each zipcode encodes the first and second coordinates and comprises (i) a bottom adapter attached to the distinct location; (ii) a lower zipcode attached to the bottom adapter; (iii) a separator sequence attached to the lower zipcode; (iv) an upper zipcode attached to the separator sequence; and (v) a top adapter attached to the upper zipcode; wherein the separator sequence comprises a sequence selected from GGG, CCC and TT and wherein different zipcodes attached to different distinct locations have a long-range minimum edit distance of 5 where a long-range minimum edit distance of 5 means that if two sequences are ≥5 locations apart on the substrate, there must be ≥5 changes needed to convert one sequence into another sequence; c) contacting a biological sample comprising a plurality of biomolecules with the plurality of zipcodes, thereby attaching at least a fraction of the plurality of zipcodes with at least a fraction of the plurality of biomolecules and generating a plurality of tagged biomolecules; and d) sequencing the plurality of tagged biomolecules and determining the the first and second coordinates for at least the fraction of the plurality of tagged biomolecules, thereby determining the spatial distribution of the plurality of biomolecules within the biological sample. a) providing a substrate having a plurality of distinct locations, each distinct location comprising a first and second coordinates; b) attaching a plurality of oligonucleotide zipcodes to each distinct location; thereby encoding the first and second coordinates by the zipcodes, wherein each zipcode encodes the first and second coordinates and comprises (i) a bottom adapter attached to the distinct location; (ii) a lower zipcode attached to the bottom adapter; (iii) a separator sequence attached to the lower zipcode; (iv) an upper zipcode attached to the separator sequence; and (v) a top adapter attached to the upper zipcode; wherein the separator sequence comprises a sequence selected from GGG, CCC and TT and wherein different zipcodes attached to different distinct locations have a long-range minimum edit distance of 5 where a long-range minimum edit distance of 5 means that if two sequences are ≥5 locations apart on the substrate, there must be ≥5 changes needed to convert one sequence into another sequence; c) contacting a biological sample comprising a plurality of biomolecules with the plurality of zipcodes, thereby attaching at least a fraction of the plurality of zipcodes with at least a fraction of the plurality of biomolecules and generating a plurality of tagged biomolecules; and d) sequencing the plurality of tagged biomolecules and determining the the first and second coordinates for at least the fraction of the plurality of tagged biomolecules, thereby determining the spatial distribution of the plurality of biomolecules within the biological sample.