Skip to main content

Python package for spatial transcriptomics data analysis

Project description

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

Introduction

Spatial transcriptomics revolutionizes transcriptomics by incorporating positional information. However, an emergency problem is to find out the gene expression pattern which can reveal the special region in tissue and find out the genes only expression in those regions.

STMiner

Here we propose “STMiner” based on the Gaussian mixture model to solve this problem. STMiner is a bottom-up methodology algorithm. It is initiated by fitting a parametric model of gene spatial distributions and constructing a distance array between them utilizing the Hellinger distance. Genes are clustered, thereby recognizing spatial co-expression patterns across distinct gene classes.

Please visit STMiner Documents for details.

Quick start by example

import package

from STMiner import SPFinder

Load data

You can download test data here.

sp = SPFinder()
file_path = 'D://10X_Visium_hunter2021spatially_sample_C_data.h5ad'
sp.read_h5ad(file=file_path)

Find spatial high variable genes

sp.get_genes_csr_array(min_cells=500, log1p=False)
sp.spatial_high_variable_genes()

You can check the distance of each genes by

sp.global_distance
Gene Distance
geneA 9998
geneB 9994
... ...
geneC 8724

Preprocess and Fit GMM

sp.fit_pattern(n_comp=20, gene_list=list(sp.global_distance[:1000]['Gene']))

Each GMM model has 20 components.

Build distance matrix & clustering

sp.build_distance_array()
sp.cluster_gene(n_clusters=6, mds_components=20)

Result & Visualization

The result is stored in genes_labels:

sp.genes_labels

The output looks like the following:

gene_id labels
0 Cldn5 2
1 Fyco1 2
2 Pmepa1 2
3 Arhgap5 0
4 Apc 5
.. ... ...
95 Cyp2a5 0
96 X5730403I07Rik 0
97 Ltbp2 2
98 Rbp4 4
99 Hist1h1e 4

To visualize the patterns:

sp.get_pattern_array(vote_rate=0.3)
sp.plot.plot_pattern(vmax=99,
                     heatmap=False,
                     s=5,
                     reverse_y=True,
                     reverse_x=True,
                     image_path='E://cut_img.png',
                     rotate_img=True,
                     k=4,
                     aspect=0.55)

Visualize the intersections between patterns 3 & 1:

sp.plot.plot_intersection(pattern_list=[0, 1],
                          image_path='E://OneDrive - stu.xjtu.edu.cn/paper/cut_img.png',
                          reverse_y=True,
                          reverse_x=True,
                          aspect=0.55,
                          s=20)

To visualize the gene expression by labels:

sp.plot.plot_genes(label=0, vmax=99)

Attribute of STMiner.SPFinder Object

Attribute Type Description
adata Anndata Anndata for loaded spatial data
global_distance pd.DataFrame OT distance between gene and background
genes_labels pd.DataFrame Gene name and their pattern labels
genes_patterns dict GMM model for each gene
genes_distance_array pd.DataFrame Distance between each GMM
kmeans_fit_result obj Result of k-means
mds_features pd.DataFrame embedding features after MDS

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

STMiner-0.0.2.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

STMiner-0.0.2-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file STMiner-0.0.2.tar.gz.

File metadata

  • Download URL: STMiner-0.0.2.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for STMiner-0.0.2.tar.gz
Algorithm Hash digest
SHA256 d0894973a7e8b668eff4b67189e9373d4d5d5770868781a97dbde9ba3bb33a81
MD5 e67e11b2575dc76c035196bb7f7b8e4e
BLAKE2b-256 20fc894f79626e38dd222316666291f55a234685d8f0c07bb1b2c5bcdd790029

See more details on using hashes here.

File details

Details for the file STMiner-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: STMiner-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 37.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for STMiner-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 451f2086eeb52c0218673bbc9f6e647ae6fc500d1620d6ab205430ddb1c04d40
MD5 5c8b2bd8f4f04e8b016066c44442e0e7
BLAKE2b-256 df4ca7cf7f5af66cb632aa00ad07a524114e981c477a077ffb4606b6d6a4dc4e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page