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.1.tar.gz (31.0 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.1-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: STMiner-0.0.1.tar.gz
  • Upload date:
  • Size: 31.0 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.1.tar.gz
Algorithm Hash digest
SHA256 e87d34c10f1f35e451db1c4b44bc2cb4a0dd7d62d7174ea5d29aff217cfa76c5
MD5 03846b608ad61f56de457764bb953c5b
BLAKE2b-256 cadc1e6611ebc511ba45fb781a683490eca72b857d97c4a44c4196dc9f66e35c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: STMiner-0.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2add3017fb948c176fa5573f7369c8123939e3661a3c5bec6f0eb0cf6e9d3e70
MD5 66aa426df22ce2e73554a33cbc6c6168
BLAKE2b-256 641dd56b8af115c755e42bf373bd9c07fe79bce95c7e42756a1bebb7d5cfb1fa

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