progeny PROGENy

news2025/4/9 2:50:52

 

单细胞之富集分析-6:PROGENy - 简书 (jianshu.com)


#request 2
.libPaths(c( "/home/data/t040413/R/x86_64-pc-linux-gnu-library/4.2",
             "/home/data/t040413/R/yll/usr/local/lib/R/site-library",  
             "/home/data/refdir/Rlib/", "/usr/local/lib/R/library"))

## We load the required packages
library(Seurat)
library(decoupleR)

# Only needed for data handling and plotting
library(dplyr)
library(tibble)
library(tidyr)
library(patchwork)
library(ggplot2)
library(pheatmap)


library(CellChat)
library(patchwork)
library(ggplot2)
library(ggalluvial)
library(svglite)
library(Seurat)
library(xlsx)
library(harmony)


#https://saezlab.github.io/progeny/#:~:text=PROGENy%20is%20resource%20that%20leverages%20a%20large%20compendium,infer%20pathway%20activities%20from%20bulk%20or%20single-cell%20transcriptomics.
#https://cloud.tencent.com/developer/article/2206142

#https://saezlab.github.io/decoupleR/articles/decoupleR.html
library(progeny)
library(Seurat)
#https://saezlab.github.io/decoupleR/articles/pw_sc.html


inputs_dir <- system.file("extdata", package = "decoupleR")
data <- readRDS(file.path(inputs_dir, "sc_data.rds"))


DimPlot(data, reduction = "umap", label = TRUE, pt.size = 0.5) + NoLegend()


#BiocManager::install("OmnipathR")
library(decoupleR)

net <- get_progeny(organism = 'human', top = 500)
net
table(net$source)

# Extract the normalized log-transformed counts
mat <- as.matrix(data@assays$RNA@data)

# Run mlm
acts <- run_mlm(mat=mat, net=net, .source='source', .target='target',
                .mor='weight', minsize = 5)
acts

# Extract mlm and store it in pathwaysmlm in data
data[['pathwaysmlm']] <- acts %>%
  pivot_wider(id_cols = 'source', names_from = 'condition',
              values_from = 'score') %>%
  column_to_rownames('source') %>%
  Seurat::CreateAssayObject(.)

# Change assay
DefaultAssay(object = data) <- "pathwaysmlm"

# Scale the data
data <- ScaleData(data)
data@assays$pathwaysmlm@data <- data@assays$pathwaysmlm@scale.data


p1 <- DimPlot(data, reduction = "umap", label = TRUE, pt.size = 0.5) + 
  NoLegend() + ggtitle('Cell types')
p2 <- (FeaturePlot(data, features = c("Trail")) & 
         scale_colour_gradient2(low = 'blue', mid = 'white', high = 'red')) +
  ggtitle('Trail activity')
p1 | p2

table(net$source)
net[net$source=="Trail",]$target
rownames(data)
       data=AddModuleScore(data,features = list(net[net$source=="Trail",]$target),assay = "RNA")



       #单细胞progeny-----
 #https://cloud.tencent.com/developer/article/2206142       
      1
      data("pbmc3k")
      pbmc3k.final <- pbmc3k
      pbmc3k.final[['percent.mt']] <- PercentageFeatureSet(pbmc3k.final, pattern = '^MT-')
      pbmc3k.final <- subset(x = pbmc3k.final, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 5)
      pbmc3k.final <- NormalizeData(pbmc3k.final)
      pbmc3k.final <- FindVariableFeatures(pbmc3k.final)
      pbmc3k.final <- ScaleData(pbmc3k.final, features = rownames(pbmc3k.final))
      pbmc3k.final <- RunPCA(pbmc3k.final, features = VariableFeatures(pbmc3k.final))
      pbmc3k.final <- JackStraw(pbmc3k.final)
      pbmc3k.final <- ScoreJackStraw(pbmc3k.final, dims = 1:20)
      pbmc3k.final <- FindNeighbors(pbmc3k.final, dims = 1:10)
      pbmc3k.final <- FindClusters(pbmc3k.final, resolution = 0.5)
      pbmc3k.final <- RunUMAP(pbmc3k.final, dims = 1:10)
      new.cluster.ids <- c("Naive CD4 T", "Memory CD4 T", "CD14+ Mono", "B", "CD8 T", "FCGR3A+ Mono", "NK", "DC", "Platelet")
      names(new.cluster.ids) <- levels(pbmc3k.final)
      pbmc3k.final <- RenameIdents(pbmc3k.final, new.cluster.ids)
      
      pbmc=pbmc3k.final
      # We create a data frame with the specification of the cells that belong to 
      ## each cluster to match with the Progeny scores. 
      CellsClusters <- data.frame(Cell = names(Idents(pbmc)), 
                                  CellType = as.character(Idents(pbmc)), 
                                  stringsAsFactors = FALSE) 
      head(CellsClusters)
      DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = 0.5) + NoLegend()
      
       
       
       2 
       ## We compute the Progeny activity scores and add them to our Seurat object 
       ## as a new assay called Progeny. 
       pbmc <- progeny(pbmc, scale=FALSE, organism="Human", top=500, perm=1, return_assay = TRUE) 
       pbmc@assays$progeny 
       pbmc@assays$progeny %>%dim()
       pbmc@assays$progeny@data[,1:19]
       # Assay data with 14 features for 2638 cells # First 10 features: 
       # Androgen, EGFR, Estrogen, Hypoxia, JAK-STAT, MAPK, NFkB, p53, PI3K, TGFb
       
       
       
       
       3
       ## We can now directly apply Seurat functions in our Progeny scores. 
       ## For instance, we scale the pathway activity scores. 
       pbmc <- Seurat::ScaleData(pbmc, assay = "progeny") 
       
       ## We transform Progeny scores into a data frame to better handling the results
       progeny_scores_df <- as.data.frame(
         t(GetAssayData(pbmc, slot = "scale.data", assay = "progeny"))) %>%
         
         rownames_to_column("Cell") %>%
         gather(Pathway, Activity, -Cell) 
       
       dim(progeny_scores_df) 
       head(progeny_scores_df)
       head(  t(GetAssayData(pbmc, slot = "scale.data", assay = "progeny")))
       
       head(CellsClusters)
       # [1] 36932 3 ## We match Progeny scores with the cell clusters. 
       progeny_scores_df <- inner_join(progeny_scores_df, 
                                       CellsClusters) 
       
       head(progeny_scores_df)
       ## We summarize the Progeny scores by cellpopulation 
       summarized_progeny_scores <- progeny_scores_df %>% 
         group_by(Pathway, CellType) %>% 
         summarise(avg = mean(Activity), std = sd(Activity)) 
       
       dim(summarized_progeny_scores) 
       head(summarized_progeny_scores)
       
       # [1] 126 4 ## We prepare the data for the plot 
       summarized_progeny_scores_df <- summarized_progeny_scores %>% 
         dplyr::select(-std) %>% 
         spread(Pathway, avg) %>% 
         data.frame(row.names = 1, check.names = FALSE, stringsAsFactors = FALSE)
head(summarized_progeny_scores_df)


4#画图
paletteLength = 100
myColor = colorRampPalette(c("Darkblue", "white","red"))(paletteLength) 
progenyBreaks = c(seq(min(summarized_progeny_scores_df), 0, length.out=ceiling(paletteLength/2) + 1), 
                  seq(max(summarized_progeny_scores_df)/paletteLength, 
                      max(summarized_progeny_scores_df), length.out=floor(paletteLength/2))) 

progeny_hmap = pheatmap(t(summarized_progeny_scores_df),
                        fontsize=12, 
                        fontsize_row = 10, color=myColor,
                        breaks = progenyBreaks, main = "PROGENy (500)", 
                        angle_col = 45, treeheight_col = 0, border_color = NA)

#install.packages("viridis")
library(viridis)


DefaultAssay(pbmc) <- 'progeny' 
p1= FeaturePlot(pbmc,features = "NFkB", coord.fixed = T, order = T, cols = viridis(10)) 
p2=FeaturePlot(pbmc,features = "MAPK", coord.fixed = T, order = T, cols = viridis::turbo(10)) 

p1|p2




       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
             

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1030511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tdesign的文件上传(微信小程序+idea的springboot)

目录 1. springboot后端 1.1 FileController.java 1.2 listener文件的ErpApplicationListener.java 1.3 【重点&#xff01;】FileServiceImpl层 1.4 IFileService 1.5 StringUtil通用类 1.6 主程序加一个监听器 1.7 application.yml文件 2. 微信小程序端 2.1 TDesign的…

数据结构与算法——13.队列的拓展

这篇文章主要讲一下双端队列&#xff0c;优先队列&#xff0c;阻塞队列等队列的拓展内容。 目录 1.队列拓展概述 2.双端队列的链表实现 3.双端队列的数组实现 4.优先队列无序数组实现 5.阻塞队列 6.总结 1.队列拓展概述 首先来看一张图&#xff0c;来大致了解一下他们的…

TorchLens--可视化任何PyTorch模型

0. 简介 PyTorch是一个深度学习框架&#xff0c;它使用张量&#xff08;tensor&#xff09;作为核心数据结构。在可视化PyTorch模型时&#xff0c;了解每个张量运算的意义非常重要。张量运算作为神经网络模型中的基本操作。它们用于处理输入数据、执行权重更新和生成预测结果。…

Python:获取当前目录下所有文件夹名称及文件夹下所有文件名称

获取当前目录下所有文件夹名称 def get_group_list(folder_path):group_list []for root, dirs, files in os.walk(folder_path):for dir in dirs:group_list.append(dir)return group_list获取文件夹下所有文件名称 def get_file_list(folder_path, group_name):file_list …

【zookeeper】基于Linux环境安装zookeeper集群

前提&#xff0c;需要有几台linux机器&#xff0c;我们可以准备好诸如finalshell来连接linux并且上传文件&#xff1b; 其次Linux需要安装上ssh&#xff0c;并且在/etc/hosts文件中写好其他几台机器的名字和Ip 127.0.0.1 localhost localhost.localdomain localhost4 localh…

canal简单介绍

简介 https://github.com/alibaba/canal 基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费 原理是使用程序模拟一个mysql的从库&#xff0c;使主库发送同步日志给程序&#xff0c;程序再对数据进行处理&#xff0c;比如同步到其他数据库。 使用 下图是一个…

【计算机网络】图解路由器(一)

图解路由器&#xff08;一&#xff09; 1、什么是路由器&#xff1f;2、什么是路由选择&#xff1f;3、什么是转发&#xff1f;4、路由器设备有哪些类型&#xff1f;5、根据性能分类&#xff0c;路由器有哪些类型&#xff1f;5.1 高端路由器5.2 中端路由器5.3 低端路由器 6、什…

Dubbo面试题(三)

文章目录 前言一、Dubbo 的注册中心集群挂掉&#xff0c;发布者和订阅者之间还能通信么&#xff1f;二、Dubbo和Spring的关系三、Dubbo 使用的是什么通信框架?四、Dubbo 集群提供了哪些负载均衡策略&#xff1f;五、Dubbo 的集群容错方案有哪些&#xff1f;六、Dubbo 的默认集…

33.CSS发光按钮的悬停效果

特效 源码 indexhtml <!DOCTYPE html> <html> <head><title>CSS Modern Button</title><link rel="stylesheet" type="text/css" href="style.css"> </head> <body><a href="#"…

【数据结构练习】链表面试题集锦二

目录 前言&#xff1a; 1.链表分割 2.相交链表 3.环形链表 4.环形链表 II 前言&#xff1a; 数据结构想要学的好&#xff0c;刷题少不了&#xff0c;我们不仅要多刷题&#xff0c;还要刷好题&#xff01;为此我开启了一个必做好题锦集的系列&#xff0c;每篇大约5题左右。此…

大数据Flink(八十五):Window TVF 支持多维数据分析

文章目录 Window TVF 支持多维数据分析 一、Grouping Sets 二、​​​​​​​Rollup

学习记忆——宫殿篇——记忆宫殿——记忆桩——风景

河边街道窗框空间房顶楼房水塔山顶塔桥舟桥楼观景台 车顶架碧水池&#xff08;喷泉&#xff09;塔腰楼顶房檐碑石狮箱车叉牌摩托灯

Qt5开发及实例V2.0-第十二章-Qt多线程

Qt5开发及实例V2.0-第十二章-Qt多线程 第12章 Qt 5多线程12.1 多线程及简单实例12.2 多线程控制12.2.1 互斥量12.2.2 信号量12.2.3 线程等待与唤醒 12.3 多线程应用12.3.1 【实例】&#xff1a;服务器编程12.3.2 【实例】&#xff1a;客户端编程 本章相关例程源码下载1.Qt5开发…

Qt5开发及实例V2.0-第十三章-Qt数据库

Qt5开发及实例V2.0-第十三章-Qt数据库 第13章 Qt 5数据库13.1 数据库基本概念13.2 常用SQL命令13.2.1 数据查询13.2.2 数据操作 13.3 Qt操作数据库及实例13.3.1 Qt操作SQLite数据库13.3.2 Qt操作主/从视图及XML 本章相关例程源码下载1.Qt5开发及实例_CH1301.rar 下载2.Qt5开发及…

GLTF编辑器:在线模型材质编辑工具

GLTF 编辑器 是一个功能强大、易于使用的在线3D模型编辑和查看工具&#xff0c;它支持多种格式的3D模型导入并将模型导出为GLB格式&#xff0c;除了可以对3D模型进行基本属性的修改之外&#xff0c;还支持对模型原点重置以及模型材质纹理修改。对于3D开发者和设计师来说&#x…

基于FPGA的图像白平衡算法实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 202…

数据治理-EDRM电子取证

EDRM是电子取证标准和指南的组织,该框架提供了一种电子取证的方法,对于涉及确定相关内部数据的存储方式和位置、适用什么保留策略、哪些数据不可访问以及哪些工具可用于协助识别流程的人员来说,这种方法非常方便。 EDRM模型假定数据或信息治理已到位。该模型包括8个…

20230918使用ffmpeg将mka的音频转为AAC编码以便PR2023来识别

20230918使用ffmpeg将mka的音频转为AAC编码以便PR2023来识别 2023/9/18 20:58 ffmpeg -i 1.mka -acodec aac 1.mp4 ffmpeg -i 1.mka -vn -c:a aac 2.aac ffmpeg -i 1.mka -vn -c:a aac 2.MP4 ffmpeg mka 转 aacmp4 https://avmedia.0voice.com/?id42526 用ffmpeg将mka格式转化…

flink集群与资源@k8s源码分析-flink kubeclient

flink kubeclient是面向flink应用的fabric8 kubeclient的封装,本文分析flink如何封装kubeclient,核心组件是装饰器,资源和ServiceType,下面通过分析业务创建作业管理器组件(createJobManagerComponent)了解flink kubeclient 1 场景 2 新建作业管理器组件 1. KubernetesJob…

【Java 基础篇】Java同步方法解决数据安全

多线程编程是现代应用程序开发中的常见需求&#xff0c;它可以提高程序的性能和响应能力。然而&#xff0c;多线程编程也带来了一个严重的问题&#xff1a;数据安全。在多线程环境下&#xff0c;多个线程同时访问和修改共享的数据可能导致数据不一致或损坏。为了解决这个问题&a…