ixxmu / mp_duty

抓取网络文章到github issues保存
https://archives.duty-machine.now.sh/
110 stars 30 forks source link

VIPER 单细胞蛋白活性推断(一):pyVIPER #5094

Closed ixxmu closed 3 months ago

ixxmu commented 3 months ago

https://mp.weixin.qq.com/s/qDF1VavcsItO0qHgx-jOXg

ixxmu commented 3 months ago

VIPER 单细胞蛋白活性推断(一):pyVIPER by 生信益站

生信益站,一点就有益祝友友们天天开心,月月发 CNS~


设我为🌟星标,每天就能第一时间看到推送啦~
单细胞培训班-预报名

pyVIPER——使用 Python 对单细胞 RNASeq 进行 VIPER 分析。该包支持在 Python 上进行基于网络的蛋白质活性估计。它还提供了 scanpy(Python 中的单细胞 RNASeq 分析)的接口。部分功能移植自 R 包 viper 和 R 包 NaRnEA。

VIPER 算法原理

VIPER(Virtual Inference of Protein-activity by Enriched Regulon analysis)是一种先进的生物信息学工具,用于从单细胞基因表达数据中推断蛋白质活性。以下是该算法的介绍:

  • Master Regulon 的概念:VIPER 算法基于master regulon,这是一组由相同转录因子或信号通路调控的基因。这些基因集的表达模式通常高度一致,能够反映出其调控蛋白(比如转录因子)的活性状态。

  • 基因表达数据的分析:VIPER 利用单细胞基因表达数据,这些数据捕捉了细胞在特定生物学状态下的基因活性快照。

  • ARACNe 算法的整合:VIPER 结合了 ARACNe 算法,后者是一种用于从基因表达数据中嵌入转录因子推断基因调控网络的工具。通过 ARACNe,VIPER 能够识别细胞内基因之间的相互作用和调控关系,为推断蛋白质活性提供了网络层面的支持。

https://api.semanticscholar.org/CorpusID:17237712
  • 蛋白质活性的推断:VIPER 通过分析 master regulon 中基因的表达模式变化,推断其调控蛋白的活性。如果一个 master regulon 的基因表达水平在特定条件下显著变化,这通常表明其调控蛋白的活性发生了相应的变化。

  • 统计方法的应用:VIPER 使用统计方法来评估基因集表达模式的变化是否显著,并确定这些变化是否与蛋白质活性的变化相关联。

基于 VIPER,已经发展出了很多延伸的算法,今天给大家介绍的是 python 版本的 pyVIPER。

依赖项

  • scanpy for single cell pipeline
  • pandas (>=1.3.0 & <2.0, due to scanpy incompatibility (issue)) and anndata for data computing and storage.
  • numpy and scipy for scientific computation.
  • joblib for parallel computing
  • tqdm show progress bar

安装

pypi

pip install viper-in-python

local

git clone https://github.com/alevax/pyviper/
cd pyviper
pip install -e .

使用

import pandas as pd
import anndata
import pyviper

# Load sample data
ges = anndata.read_text("test/unit_tests/test_1/test_1_inputs/LNCaPWT_gExpr_GES.tsv").T

# Load network
network = pyviper.load.msigdb_regulon("h")

# Translate sample data from ensembl to gene names
ges = pyviper.translate_adata_index(ges, desired_format = "human_symbol")

## Filter targets in the interactome
network.filter_targets(ges.var_names)

# Compute regulon activities
## area
activity = pyviper.viper(gex_data=ges, interactome=network, enrichment="area")
print(activity.to_df())

## narnea
activity = pyviper.viper(gex_data=ges, interactome=network, enrichment="narnea", eset_filter=False)
print(activity.to_df())

更多教程

见官网:https://github.com/alevax/pyviper

pyVIPER 结构和原理

pyviper 可用的主要功能包括:

  • pyviper.viper:通过富集调控子分析 (VIPER) 虚拟推断蛋白质活性的“pyviper”函数。该函数允许使用 2 种富集算法,aREA 和 (matrix)-NaRnEA(见下文)。

  • pyviper.aREA:计算 aREA(基于分析等级的富集分析)和 meta-aREA

  • pyviper.NaRnEA:计算矩阵 NaRnEA ,即 NaRnEA 的矢量化实现

  • pyviper.pp.translate_adata_index:用于物种之间(即小鼠与人类)以及 ensembl、entrez 和基因符号之间的转换。

  • pyviper.tl.path_enr:计算通路富集

其他值得注意的功能包括:

  • pyviper.tl.OncoMatch:计算 OncoMatch,这是一种评估两组样本之间差异活性 MR 蛋白重叠的算法(例如验证 GEMM 作为人类样本的有效模型)
  • pyviper.pp.stouffer:使用 Cluster integration 方法逐个簇计算特征,实现通路富集
  • pyviper.pp.viper_similarity:计算 VIPER 特征之间的相似度
  • pyviper.pp.repr_metacells:使用我们的方法计算代表性 metecells(例如 ARACNe),以最大化唯一样本的使用并最小化重采样(用户可以指定深度、数据使用百分比等)。
  • pyviper.pp.repr_subsample:使用我们的方法选择具有代表性的数据子样本,以确保广泛分布的采样。

此外,还有以下子模块可用:

  • pyviper.load:子模块包含几个可用于不同分析的实用函数,包括 load_msigdb_regulon、load_TFs 等
  • pyviper.pl:包含用于 scanpy 绘图的 pyviper-wrappers 子模块
  • pyviper.tl:包含用于 scanpy 数据转换的 pyviper-wrappers 子模块
  • pyviper.config:子模块允许用户指定当前物种和调节子的文件路径

算法地址

  • https://github.com/alevax/pyviper

OK,今天的分享到此为止。咱们明天见~

益站可以评论、留言啦。赶紧发表您的看法吧~

联系站长

本篇文章有疑问,或者有科研服务需求的友友可以在益站发消息留言,也欢迎各位童鞋扫下面的二维码加入我们的 QQ 交流群。

最新QQ群

科研服务

您的关注、点赞、在看、转发是对益站最大的鼓励和支持