Raw Read Preprocessing. For both read 1 and read 2, the first 4 to 7 bases and the following 11 to 13 bases are paired cell barcodes and META sequence, respectively (step 1.6 attachment). We used a custom Python script to parse barcodes and split reads into individual fastq files for each cell, allowing up to one mismatch. Meanwhile, META sequences were annotated to read the name, allowing up to two mismatches. Then we used cutadapt to trim adapter sequences from both ends according to the 19-bp mosaic end (ME) sequence, with parameters -e 0.22 -a CTGTCTCTTATACACATCT and -e 0.22 -g AGATGTGTATAAGAGACAG for both read 1 and read 2. Processed reads were mapped to reference genome with bowtie2 -X 2000 –local –mm –no-discordant –no-mixed. hg38 (GRCh38, v26) reference genome was used for human cells, and mm10 (GRCm38, vM19) reference genome was used for mouse cells. Reads with mapping quality of less than 30 were filtered out from the further analysis. PCR duplicates were identified and removed with a custom script, according to their positions on the genome and META tags. Paired-end reads were converted to fragments with Tn5 insertion centering correction (R1 start +4 and R2 end 5). Finally, for each cell, contaminated fragments from other cells were removed based on the aligned coordinates, META sequences, and read frequency.