Skip to main content

FineST: Fine-grained Spatial Transcriptomic

Project description

A statistical model and toolbox to identify the super-resolved ligand-receptor interaction with spatial co-expression (i.e., spatial association). Uniquely, FineST can distinguish co-expressed ligand-receptor pairs (LR pairs) from spatially separating pairs at sub-spot level or single-cell level, and identify the super-resolved ligand-receptor interaction (LRI).

https://github.com/StatBiomed/FineST/blob/main/docs/fig/FineST_framework_all.png?raw=true

It comprises three components (Training-Imputation-Discovery) after HE image feature is extracted:

  • Step0: HE image feature extraction

  • Step1: Training FineST on the within spots

  • Step2: Super-resolution spatial RNA-seq imputation

  • Step3: Fine-grained LR pair and CCC pattern discovery

Installation

FineST is available through PyPI. To install, type the following command line and add -U for updates:

pip install -U FineST

Alternatively, install from this GitHub repository for latest (often development) version (time: < 1 min):

pip install -U git+https://github.com/StatBiomed/FineST

Installation using Conda

$ git clone https://github.com/StatBiomed/FineST.git
$ conda create --name FineST python=3.8
$ conda activate FineST
$ cd FineST
$ pip install -r requirements.txt

Typically installation is completed within a few minutes. Then install pytorch, refer to pytorch installation.

$ conda install pytorch=1.7.1 torchvision torchaudio cudatoolkit=11.0 -c pytorch

Verify the installation using the following command:

python
>>> import torch
>>> print(torch.__version__)
>>> print(torch.cuda.is_available())

Get Started for Visium or Visium HD data

Usage illustrations:

  • For Visium, using a single slice of 10x Visium human nasopharyngeal carcinoma (NPC) data.

  • For Visium HD, using a single slice of 10x Visium HD human colorectal cancer (CRC) data with 16-um bin.

Step0: HE image feature extraction (for Visium)

Visium (v2) measures about 5k spots across the entire tissue area. The diameter of each individual spot is roughly 55 micrometers (um), while the center-to-center distance between two adjacent spots is about 100 um. In order to capture the gene expression profile across the whole tissue ASSP,

Firstly, interpolate between spots in horizontal and vertical directions, using Spot_interpolate.py.

python ./FineST/Spot_interpolate.py \
   --data_path ./Dataset/NPC/ \
   --position_list tissue_positions_list.csv \
   --dataset patient1

with Input: tissue_positions_list.csv - Locations of within spots (n), and Output: _position_add_tissue.csv- Locations of between spots (m ~= 3n).

Then extracte the within spots HE image feature embeddings using HIPT_image_feature_extract.py.

python ./FineST/HIPT_image_feature_extract.py \
   --dataset AH_Patient1 \
   --position ./Dataset/NPC/patient1/tissue_positions_list.csv \
   --image ./Dataset/NPC/patient1/20210809-C-AH4199551.tif \
   --output_path_img ./Dataset/NPC/HIPT/AH_Patient1_pth_64_16_image \
   --output_path_pth ./Dataset/NPC/HIPT/AH_Patient1_pth_64_16 \
   --patch_size 64 \
   --logging_folder ./Logging/HIPT_AH_Patient1/

Similarlly, extracte the between spots HE image feature embeddings using HIPT_image_feature_extract.py.

python ./FineST/HIPT_image_feature_extract.py \
   --dataset AH_Patient1 \
   --position ./Dataset/NPC/patient1/patient1_position_add_tissue.csv \
   --image ./Dataset/NPC/patient1/20210809-C-AH4199551.tif \
   --output_path_img ./Dataset/NPC/HIPT/NEW_AH_Patient1_pth_64_16_image \
   --output_path_pth ./Dataset/NPC/HIPT/NEW_AH_Patient1_pth_64_16 \
   --patch_size 64 \
   --logging_folder ./Logging/HIPT_AH_Patient1/

HIPT_image_feature_extract.py also output the execution time:

  • The image segment execution time for the loop is: 8.153 seconds

  • The image feature extract time for the loop is: 35.499 seconds

Input files:

  • 20210809-C-AH4199551.tif: Raw histology image

  • patient1_position_add_tissue.csv: “Between spot” (Interpolated spots) locations

Output files:

  • NEW_AH_Patient1_pth_64_16_image: Segmeted “Between spot” histology image patches (.png)

  • NEW_AH_Patient1_pth_64_16: Extracted “Between spot” image feature embeddiings for each patche (.pth)

Step0: HE image feature extraction (for Visium HD)

Visium HD captures continuous squares without gaps, it measures the whole tissue area.

python ./FineST/HIPT_image_feature_extract.py \
   --dataset HD_CRC_16um \
   --position ./Dataset/CRC/square_016um/tissue_positions.parquet \
   --image ./Dataset/CRC/square_016um/Visium_HD_Human_Colon_Cancer_tissue_image.btf \
   --output_path_img ./Dataset/CRC/HIPT/HD_CRC_16um_pth_32_16_image \
   --output_path_pth ./Dataset/CRC/HIPT/HD_CRC_16um_pth_32_16 \
   --patch_size 32 \
   --logging_folder ./Logging/HIPT_HD_CRC_16um/

HIPT_image_feature_extract.py also output the execution time:

  • The image segment execution time for the loop is: 62.491 seconds

  • The image feature extract time for the loop is: 1717.818 seconds

Input files:

  • Visium_HD_Human_Colon_Cancer_tissue_image.btf: Raw histology image (.btf Visium HD or .tif Visium)

  • tissue_positions.parquet: Spot/bin locations (.parquet Visium HD or .csv Visium)

Output files:

  • HD_CRC_16um_pth_32_16_image: Segmeted histology image patches (.png)

  • HD_CRC_16um_pth_32_16: Extracted image feature embeddiings for each patche (.pth)

Step1: Training FineST on the within spots

Step2: Super-resolution spatial RNA-seq imputation

Step3: Fine-grained LR pair and CCC pattern discovery

Detailed Manual

The full manual is at finest-rtd-tutorial for installation, tutorials and examples.

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

finest-0.0.6.tar.gz (59.5 kB view details)

Uploaded Source

Built Distribution

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

FineST-0.0.6-py3-none-any.whl (61.3 kB view details)

Uploaded Python 3

File details

Details for the file finest-0.0.6.tar.gz.

File metadata

  • Download URL: finest-0.0.6.tar.gz
  • Upload date:
  • Size: 59.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.2

File hashes

Hashes for finest-0.0.6.tar.gz
Algorithm Hash digest
SHA256 8c16bcbf0803f5d5ea8dc6fbc8f7aa9bace805a13c857a7fc36debad5ee6268f
MD5 52c3dc100b5a2e89922457c111a0b9df
BLAKE2b-256 ad60dc521ee6dcb71fa16fad3a21c88b36ec14e01a58c0432c24c3eaa8ceb468

See more details on using hashes here.

File details

Details for the file FineST-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: FineST-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 61.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.2

File hashes

Hashes for FineST-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 af724bcb7b2de7373bd8eb7161c4c7d32cf9d6ed68c58b8c0e3a2aa33e212d33
MD5 7962da6396e759d808f50322f94cbdcb
BLAKE2b-256 bdcaf7cea2b5110b1423d6f3a4f286f11fefc4e5f2c4b96f03c046f210e85fbd

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