A method of determining the position and/or number of a plurality of nucleic acid targets within a cell or other sample using a plurality of primary nucleic acid encoding probes and a plurality of secondary nucleic acid readout probes, the method comprising: (i) exposing the cell or other sample to a plurality of primary nucleic acid encoding probes, wherein the primary nucleic acid encoding probes comprise a first portion comprising a target sequence that uniquely binds to a nucleic acid target and a second portion comprisingone or more read sequences, wherein the read sequences are taken from a set of orthogonal sequences having limited homology with one another and with the nucleic acid species in the cell or other sample and wherein the sample comprises a plurality of the nucleic acid targets that are each assigned a codeword wherein the codewords comprise a number of positions and values for each position, and the codewords form an error-checking and/or error-correcting code; (ii) determining binding of the primary nucleic acid encoding probes to the nucleic acid targets within the cell or other sample by (a) exposing the cell or other sample to secondary nucleic acid readout probes, each comprising a signaling entity and a sequence that is complementary to one of the read sequences of the primary nucleic acid encoding probes such that the secondary nucleic acid readout probes hybridize to the read sequence on at least some of the primary nucleic acid probes and (b) determining binding of the primary nucleic acid encoding probes by determining fluorescence of each of the secondary nucleic acid readout probes within the cell or other sample by fluorescence imaging the cell or other sample; (iii) repeatingsteps (a) and (b) one or more times using a different secondary nucleic acid readout probe for at least some of the repetitions; (iv) creating the codewords based on the fluorescence of the secondary nucleic acid readout probes; and (v) for at least some of the codewords, matching the codeword to a valid codeword associated to the plurality of nucleic acid targets wherein, if no match or error correctable match is found, applying error correction to the codeword to form a valid codeword. (i) exposing the cell or other sample to a plurality of primary nucleic acid encoding probes, wherein the primary nucleic acid encoding probes comprise a first portion comprising a target sequence that uniquely binds to a nucleic acid target and a second portion comprisingone or more read sequences, wherein the read sequences are taken from a set of orthogonal sequences having limited homology with one another and with the nucleic acid species in the cell or other sample and wherein the sample comprises a plurality of the nucleic acid targets that are each assigned a codeword wherein the codewords comprise a number of positions and values for each position, and the codewords form an error-checking and/or error-correcting code; (ii) determining binding of the primary nucleic acid encoding probes to the nucleic acid targets within the cell or other sample by (a) exposing the cell or other sample to secondary nucleic acid readout probes, each comprising a signaling entity and a sequence that is complementary to one of the read sequences of the primary nucleic acid encoding probes such that the secondary nucleic acid readout probes hybridize to the read sequence on at least some of the primary nucleic acid probes and (b) determining binding of the primary nucleic acid encoding probes by determining fluorescence of each of the secondary nucleic acid readout probes within the cell or other sample by fluorescence imaging the cell or other sample; (a) exposing the cell or other sample to secondary nucleic acid readout probes, each comprising a signaling entity and a sequence that is complementary to one of the read sequences of the primary nucleic acid encoding probes such that the secondary nucleic acid readout probes hybridize to the read sequence on at least some of the primary nucleic acid probes and (b) determining binding of the primary nucleic acid encoding probes by determining fluorescence of each of the secondary nucleic acid readout probes within the cell or other sample by fluorescence imaging the cell or other sample; (iii) repeatingsteps (a) and (b) one or more times using a different secondary nucleic acid readout probe for at least some of the repetitions; (iv) creating the codewords based on the fluorescence of the secondary nucleic acid readout probes; and (v) for at least some of the codewords, matching the codeword to a valid codeword associated to the plurality of nucleic acid targets wherein, if no match or error correctable match is found, applying error correction to the codeword to form a valid codeword.