the local 3d - maxima of the groups were determined as potential final transcript locations. maxima were filtered by number of maxima in the raw data images where a maximum was expected. remaining maxima were further evaluated by the fit to the corresponding code. the remaining maxima were written to the results file and considered to resemble transcripts of the corresponding gene. the ratio of signals matching to codes used in the experiment and signals matching to codes not used in the experiment were used as estimation for specificity ( false positives ). final image analysis was performed in imagej using genexyz polylux tool plugin from resolve biosciences to examine specific molecular cartography™ signals. 40000 - 160000 cells of interest from livers of the different species were facs - purified and pelleted by centrifugation at 400g for 5 mins. to ensure sufficient numbers of all cell types were present in our analyses, depending on the sample distinc t populations of cells including live cd45, live cd45, hepatocytes, myeloid cells and stromal cells were facs - purified. when cite - seq was to be performed, cells were then stained with 2. 4g2 antibod y to block fc receptors and cite - seq antibod ies for 20mins at 4°c, before being washed in excess pbs with 2 % fcs and 2mm edta. antibod y details are included in the key resources table. 40000 - 100000 nuclei were also facs - purified based on dapi expression. these were sorted into bsa coated tubes and pelleted by centrifuging for 3 mins at 400g and 5 mins at 600g sequentially. cells / nuclei were then resuspended in pbs with 0. 04 % bsa at ∼1000 cells / ml. cell suspensions ( target recovery of 8000 - 10000 cells ) were loaded on a gemcode single - cell instrument ( 10x genomics, pleasanton, ca, usa ) to generate single - cell gel bead - in - emulsions ( gems ). single - cell rna - seq libraries were prepared using gemcode single - cell 3ʹgel bead and library kit ( 10x genomics, v2 and v3 technology ) according to the manufacturer ’ s instructions. briefly, gem - rt was performed in a 96 - deep well reaction module: 55°c for 45min, 85°c for 5 min; end at 4°c. after rt, gems were broken down and the cdna was cleaned up with dynabeads myone silane beads ( thermo fisher scientific, 37002d ) and spriselect reagent kit ( spri; beckman coulter; b23318 ). cdna was amplified with 96 - deep well reaction module: 98°c for 3 min; cycled 12 times: 98°c for 15s, 67°c for 20 s, and 72°c for 1 min; 72°c for 1 min; end at 4°c. amplified cdna product was cleaned up with spriselect reagent kit prior to enzymatic fragmentation. indexed sequencing libraries were generated using the reagents in the gemcode single - cell 3ʹ library kit with the following intermediates: ( 1 ) end repair; ( 2 ) a - tailing; ( 3 ) adapter ligation; ( 4 ) post - ligation spriselect cleanup and ( 5 ) sample index pcr. pre - fragmentation and post - sample index pcr samples were analyzed using the agilent 2100 bioanalyzer. rna was extracted from 10000 sorted cells ( gated using strategies shown ) from livers of c57bl / 6 mice using a rneasy plus micro kit ( qiagen ). sensifast cdna synthesis kit ( bioline ) was used to transcribe total rna to cdna. real - time rt - pcr using sensifast sybr no - rox kit ( bioline ) was performed to determine gene expression, therefore a pcr amplification and detection instrument lightcycler 480 ( roche ) was used. gene expression was normalized to β - actin gene expression. primers used in the study can be found in the key resources table. sc / snrna - seq libraries were loaded on an illumina hiseq or illumina novaseq 6000 with sequencing settings recommended by 10x genomics ( 26 / 8 / 0 / 98 – 2. 1pm loading concentration, adt and cdna libraries were pooled in a 25: 75 ratio ). visium sequencing libraries were loaded on an illumina novaseq 6000 with sequencing settings recommended by 10x genomics ( 28 / 10 / 10 / 75 – 2. 1pm loading concentration ). sequencing was performed at the vib nucleomics core ( vib, leuven ). the demultiplexing of the raw data was performed using cellranger software ( 10x – version 3. 1. 0; cellranger mkfastq which wraps illumina ’ s bcl2fastq ). the reads obtained from the demultiplexing were used as the input for ‘ cellranger count ’ ( cellranger software ), which aligns the reads to the mouse reference genome ( mm10 ) using star and collapses to unique molecular identifier ( umi ) counts. the result is a large digital expression matrix with cell barcodes as rows and gene identities as columns. to remove ambient rna, the fastcar r package ( v0. 1. 0 ) with a contamination chance cutoff of 0. 05 was run on the samples separately before merging them. the umi cut off was determined individually for the different samples, using the cellranger web _ summary output plot ( see github ). the scater r package ( v1. 14. 6 ) was used for the preprocessing of the data. the workflow to identify the outliers, based on 3 metrics ( library size, number of expressed genes and mitochondrial proportion ) described by the marioni lab ( lun et al., 2016 ) was followed. as a first step cells with a value x median absolute deviation ( mads ) higher or lower than the median value for each metric were removed. this value was determined individually for the different datasets ( see github ). secondly, the runpca function ( default parameters ) of the scater r package was used to generate a principal component analysis ( pca ) plot. the outliers in this pca plot were identified by the r package mvoutlier. by creating the seurat object, genes that didn ’ t have an expression in at least 3 cells were removed. to normalize, scale and detecting the highly variable genes, the r package sctransform ( v0. 2. 1 ) was used. if batch correction ( on sample level ) was needed, the normalizedata ( log2 transformation ), findvariablefeatures and scaledata functions of the seurat r package ( v3. 1. 2 ) were used in combination with the harmony r package ( v1. 0 ). the seurat pipeline was followed to find the clusters and create the umap plots. the number of principal components used for the clustering and the resolution were determined individually for the different datasets ( see github ). on these initial umap plots we did multiple rounds of cleaning by removing proliferating and contaminating ( e. g. doublets ) cells. for non cite - seq datasets the count data for the clean cells acquired by the previous steps were further processed with the scvi model ( scvi python package v0. 6. 7 ) ( lopez et al., 2018 ). datasets including cite - seq samples were further processed with the totalvi model ( gayoso et al., 2021 ). the workflows described on scvi - tools. org were followed to generate new umaps, degs and deps. this information was further processed with the pheatmap r package ( v1. 0. 12 ) to create heatmaps using the normalized values ( denoised genes ) calculated in the scvi / totalvi workflow. the plots showing the expression of certain genes or proteins are created with the ggplot2 r package ( v3. 2. 1 ) with a quantile cut off of 0. 01. for mouse all the abs from the whitelist ( 181 abs ) were loaded into totalvi, while for the other species only the added abs were loaded into totalvi. for the ‘ human liver - pool of techniques and patients ’ we noticed that the batch correction ( between samples ) faced difficulties for the hepatocytes and stellate cells as the cells all originated from snrna - seq samples, while the other cell types originated from both snrna - seq and scrna - seq samples. to overcome this issue we randomly allocated 30 % of the hepatocytes to scrna - seq samples which were not cite - seq samples. we did the same for 30 % of the stellate cells. heatmaps were made by scaling the normalized values ( denoised values; calculated in the scvi / totalvi workflow ) using the scale _ quantile function of the scorpius r package ( v1. 0. 7 ) and the pheatmap r package ( v1. 0. 12 ).