Visualisation codes for Xenium datasets
Install conda environemnt using yaml file:
conda env create -f environment.yml
Activate environment:
conda activate xenium_vistools
Add Jupyter kernel from this environment:
python -m ipykernel install --user --name xenium_vistools
When startin Jupyter Notebook choose kernel "xenium_vistools"
This code allows visualisation of N random cells which will pass some criteria. It can be cell area, number of transcripts, cell type etc. Basically anything, what sits (or can be added) to adata.obs. Each cell image contains crop with DAPI image, cell label polygon and transcripts (please note at the moment I only select top 5 gene types in all regions, or list of the genes!) For an example check visualise_cells_example.ipynb
plot_cells_by_par function has next inputs (*mandatory inputs):
- sdata*: spatial data object
- n_hor*: number of columns
- n_vert*: number of rows. In total number of cells N = n_hor x n_vert
- col_name*: name of the column in 'adata.obs' to perform filtering on
- min_value*: either minimum value for float columns, or string for categorical columns
- max_value*: maqximum value for float columns
- transcripts_all*: dataframe with transcripts positions and types (TODO: it can be read directly from sdata!)
- pixelsize*: pixel size, can be found in image metadata (see Jupyter Notebook)
- border_size_px: padding size around borders of the cell segmented polygon
- label_col: color of the cell labelled polygon
- label_width: width of the cell labelled polygon
- save: path to the image be saved
- spot_size: size of the spot transcripts
- text_size: size of the legend text for the gene names
- display_genes: list of teh gene names to be shown (for transcripts). If the list is empty (default option) shows top5 genes present in all selected FOVs
This code can visualise a distribution as a function of angle and distance from the reference point. This can be either gene distribution or distribtuion of any other (categorical) entity from adata.obs. For an example check example_spatial_distribution.ipynb
plot_spatial_distribution function has next inputs (*mandatory inputs):
- adata*: AnnData object
- ref_point*: either list or numpy array with 2 numbers - x,y position of the reference point
- sample_name: sample name (for the plot title)
- save_folder: folder to save output images
- angle_bin_size: bin size for the angular distribution
- distance_bin_size: bin size for the radial distribution
- distance_max: maximum distance for the radial distribution
- gene_list: list of teh genes which distributions you want to plot
- obs_sets: sets of columns and values to be plotted in the format:
obs_sets = [['column1', ['col1_val1', 'col1_val2']], ['column2', ['col2_val1', 'col2_val2']]] - colormap: colormap for the heatmap histogram distribution
- multiple_histograms: whether you want to plot multiple genes/adata.obs coulmn values at the same figure with different color (default: False)
- group_together: whether you want to group multiple genes/adata.obs coulmn values together to be displayed at one figure with the seame color. Please note, that for this option you also need to flag
multiple_histograms = True- see notebook for an example (default: False)
This code allows you to open sample scheme (defined by positions of cells), draw line across the sample, and set a reference point. Then user can plot either cell type/annotation (any adata.obs categorical column) or gene expression distribution histogram along the defined line. For example check example_histogram_custom_line.ipynb.
plot_group_distribution_along_line and plot_gene_expression_along_line have next inputs (*mandatory inputs):
- adata*: AnnData object
- picked_points*: tuple with 3 points position - output of pick_line_and_reference
- column_name: name of
adata.obscolumn to be used(default value: "group") - selected_groups/selected_genes: list of values from column in
adata.obs/ list of gene names. In case of empty selected_groups - function will plot histogram with all categories fromadata.obscolumn - xboundaries: tuple with min and max limits for distribution distance
- bins: total number of bins (default: 30)
- color: color of the histogram (default: "blue")
- units: units in which position and distance are defined (default: "pixels")
- grid: boolean, whether to display grid or not (default: True)
- save_folder: folder for images to be saved