A method of identifying the origin of a nucleic acid sample comprising the steps of (a) forming a reaction mixture comprising a nucleic acid sample comprising nucleic acid molecules from a single cell and a set of barcodes comprising one or more 5' nucleic acid constructs each construct comprising a unique 5' barcode and one or more 3' nucleic acid constructs each construct comprising a unique 3' barcode; wherein forming the reaction mixture comprises: (i) contacting the single cell with the set of barcodes and lysing the cell to provide the nucleic acid sample from the single cell; or (ii) providing cells in a suspension buffer and contacting the suspension buffer comprising the cells with a barcoding buffer comprising the set of barcodes under conditions to form the reaction mixture comprising the single cell and the set of barcodes (b) incorporating the set of barcodes into the nucleic acid molecules of the sample such that the nucleic acid molecules comprises two or more unique barcodes and the unique 5' barcode is 5' to the unique 3' barcode, wherein the barcodes are added to the nucleic acid molecules of the sample using an amplification reaction, and wherein one barcode is at the 5' end of the nucleic acid molecule and one barcode is at the 3' end of the nucleic acid molecule; and (c) identifying the set of barcodes incorporated into the nucleic acid molecules of the single cell thereby identifying the origin of the nucleic acid sample, wherein the combination of 5' and 3' barcodes in the nucleic acid sample identifies the origin of the nucleic acid sample. (a) forming a reaction mixture comprising a nucleic acid sample comprising nucleic acid molecules from a single cell and a set of barcodes comprising one or more 5' nucleic acid constructs each construct comprising a unique 5' barcode and one or more 3' nucleic acid constructs each construct comprising a unique 3' barcode; wherein forming the reaction mixture comprises: (i) contacting the single cell with the set of barcodes and lysing the cell to provide the nucleic acid sample from the single cell; or (ii) providing cells in a suspension buffer and contacting the suspension buffer comprising the cells with a barcoding buffer comprising the set of barcodes under conditions to form the reaction mixture comprising the single cell and the set of barcodes (i) contacting the single cell with the set of barcodes and lysing the cell to provide the nucleic acid sample from the single cell; or (ii) providing cells in a suspension buffer and contacting the suspension buffer comprising the cells with a barcoding buffer comprising the set of barcodes under conditions to form the reaction mixture comprising the single cell and the set of barcodes (b) incorporating the set of barcodes into the nucleic acid molecules of the sample such that the nucleic acid molecules comprises two or more unique barcodes and the unique 5' barcode is 5' to the unique 3' barcode, wherein the barcodes are added to the nucleic acid molecules of the sample using an amplification reaction, and wherein one barcode is at the 5' end of the nucleic acid molecule and one barcode is at the 3' end of the nucleic acid molecule; and (c) identifying the set of barcodes incorporated into the nucleic acid molecules of the single cell thereby identifying the origin of the nucleic acid sample, wherein the combination of 5' and 3' barcodes in the nucleic acid sample identifies the origin of the nucleic acid sample.