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.4.tar.gz (40.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.4-py3-none-any.whl (46.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: STMiner-0.0.4.tar.gz
  • Upload date:
  • Size: 40.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.4.tar.gz
Algorithm Hash digest
SHA256 e394c46a0946e866916544a66e0085336ec60b3bda0a5c2ff8baac95e247ed27
MD5 90bd1b14e756e5389ce762af62d7f844
BLAKE2b-256 52a30491762fccb0e8cca8a330df08269117fae903e97e092337cc33a14f5e5c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: STMiner-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 46.3 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d7b3a9173a7390718883232147567186cfc88fd5718e1681bd6e3f559acf4d5e
MD5 91167f7c859f71f9652c97073bab3440
BLAKE2b-256 d210619316222faea3b3362045920366782621125aace76ac644500332f19d21

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