前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >🤩 hdWGCNA | 单细胞数据怎么做WGCNA呢!?(一)(小试牛刀)

🤩 hdWGCNA | 单细胞数据怎么做WGCNA呢!?(一)(小试牛刀)

作者头像
生信漫卷
发布2024-05-27 12:48:58
1570
发布2024-05-27 12:48:58
举报

1写在前面

好久没更了,今天写一下hdWGCNA吧,单细胞和空间转录组都能用到的高级分析。🧐

2用到的包

代码语言:javascript
复制
rm(list = ls())
library(Seurat)
library(tidyverse)
library(cowplot)
library(patchwork)
library(WGCNA)
library(hdWGCNA)

记得设置一下哦。😘

代码语言:javascript
复制
theme_set(theme_cowplot())
set.seed(123)
enableWGCNAThreads(nThreads = 8)

3示例数据

代码语言:javascript
复制
seurat_obj <- readRDS('Zhou_2020.rds')

4降维聚类

常规操作一下,这里不做具体介绍了,大家自己看seurat的教程吧。😂

代码语言:javascript
复制
p <- DimPlot(seurat_obj, 
             group.by='cell_type',
             label=T) 

p

5设置Seurat对象

选择在至少5%的细胞中表达的基因。🧬

代码语言:javascript
复制
seurat_obj <- SetupForWGCNA(
  seurat_obj,
  gene_select = "fraction",
  fraction = 0.05, 
  wgcna_name = "tutorial" 
  )

6构建metacells

代码语言:javascript
复制
seurat_obj <- MetacellsByGroups(
  seurat_obj = seurat_obj,
  group.by = c("cell_type", "Sample"), 
  reduction = 'harmony', 
  k = 25, 
  max_shared = 10, 
  ident.group = 'cell_type'
)

# normalize metacell
seurat_obj <- NormalizeMetacells(seurat_obj)

7共表达网络分析

这里我们对示例数据集中的抑制性神经元(inhibitory neuron (INH) cells)进行共表达网络分析。🧐

代码语言:javascript
复制
seurat_obj <- SetDatExpr(
  seurat_obj,
  group_name = "INH",
  group.by='cell_type',
  assay = 'RNA', 
  slot = 'data'
)

8选择soft-power threshold

代码语言:javascript
复制
seurat_obj <- TestSoftPowers(
  seurat_obj,
  networkType = 'signed'
  )

plot_list <- PlotSoftPowers(seurat_obj)

wrap_plots(plot_list, ncol=2)

代码语言:javascript
复制
power_table <- GetPowerTable(seurat_obj)
head(power_table)

9构建共表达网络

代码语言:javascript
复制
seurat_obj <- ConstructNetwork(
  seurat_obj,
  tom_name = 'INH'
)

可视化一下!~🫠

代码语言:javascript
复制
PlotDendrogram(seurat_obj, main='INH hdWGCNA Dendrogram')

10计算模块Eigengenes和Connectivity

10.1 计算harmonized module eigengenes

代码语言:javascript
复制
seurat_obj <- ScaleData(seurat_obj, features=VariableFeatures(seurat_obj))

代码语言:javascript
复制
seurat_obj <- ModuleEigengenes(
 seurat_obj,
 group.by.vars="Sample"
 )

ME会存储为矩阵形式,其中行是细胞,列是模块。可以使用GetMEs函数从Seurat对象中提取,该函数默认检索hME。😏

代码语言:javascript
复制
# harmonized module eigengenes:
hMEs <- GetMEs(seurat_obj)

# module eigengenes:
MEs <- GetMEs(seurat_obj, harmonized=FALSE)

10.2 计算模块Connectivity

代码语言:javascript
复制
seurat_obj <- ModuleConnectivity(
  seurat_obj,
  group.by = 'cell_type', group_name = 'INH'
  )

重命名一下!~🙊

代码语言:javascript
复制
seurat_obj <- ResetModuleNames(
  seurat_obj,
  new_name = "INH-M"
)

可视化每个模块中按kME排名的基因。🧬

代码语言:javascript
复制
p <- PlotKMEs(seurat_obj, ncol=5)

p

11获取模块分配表

代码语言:javascript
复制
modules <- GetModules(seurat_obj) %>% subset(module != 'grey')

head(modules[,1:6])

12获取hubgene

代码语言:javascript
复制
hub_df <- GetHubGenes(seurat_obj, n_hubs = 10)

head(hub_df)

13save一下

代码语言:javascript
复制
saveRDS(seurat_obj, file='hdWGCNA_object.rds')

最后祝大家早日不卷!~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信漫卷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
  • 2用到的包
  • 3示例数据
  • 4降维聚类
  • 5设置Seurat对象
  • 6构建metacells
  • 7共表达网络分析
  • 8选择soft-power threshold
  • 9构建共表达网络
  • 10计算模块Eigengenes和Connectivity
    • 10.1 计算harmonized module eigengenes
      • 10.2 计算模块Connectivity
      • 11获取模块分配表
      • 12获取hubgene
      • 13save一下
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档