hdWGCNA | 单细胞(scRNA)和空间转录组共表达网络分析

原文链接:hdWGCNA | 单细胞(scRNA)和空间转录组共表达网络分析

本期教程

获得本期教程文本教程,回复关键词:20240520

小杜的生信笔记,自2021年11月开始做的知识分享,主要内容是R语言绘图教程转录组上游分析转录组下游分析等内容。凡事在社群同学,可免费获得自2021年11月份至今全部教程,教程配备事例数据和相关代码,我们会持续更新中。

往期教程部分内容













关于hdWGCNA`

hdWGCNA (high dimensional WGCNA,高纬度WGCNA),用于单细胞RNA-seq空间转录组学等高维转录组学数据中执行加权基因共表达网络分析。

详情查看:https://smorabit.github.io/hdWGCNA/articles/basic_tutorial.html

hdWGCNA包

https://github.com/smorabit/hdWGCNA

下载所需数据

# wget https://swaruplab.bio.uci.edu/public_data/Zhou_2020.rds

Load the dataset and required librarie

# single-cell analysis package
library(Seurat)

# plotting and data science packages
library(tidyverse)
library(cowplot)
library(patchwork)

# co-expression network analysis packages:
library(WGCNA)
#devtools::install_github('smorabit/hdWGCNA', ref='dev')
library(hdWGCNA)

# using the cowplot theme for ggplot
theme_set(theme_cowplot())

# set random seed for reproducibility
set.seed(12345)

# optionally enable multithreading
enableWGCNAThreads(nThreads = 8)

# load the Zhou et al snRNA-seq dataset
seurat_obj <- readRDS('Zhou_2020.rds')

seurat_obj <- readRDS("C:\\sfotware\\R-4.3.2\\library\\hdWGCNA\\data\\Rdata.rds")

绘制按细胞类型着色的 UMAP 图,以检查我们是否正确加载了数据,并确保我们已将细胞归入细胞群和细胞类型。

p <- DimPlot(seurat_obj, group.by='cell_type', label=TRUE) +
   umap_theme() + ggtitle('Zhou et al Control Cortex') + NoLegend()

p

设置Seurat对象

在运行 hdWGCNA 之前,我们首先要设置 Seurat 对象。hdWGCNA 计算出的大部分信息都存储在 Seurat 对象的 @misc 插槽中。一个 Seurat 对象可以容纳多个 hdWGCNA 实验,例如代表同一单细胞数据集中的不同细胞类型。值得注意的是,由于我们将hdWGCNA 视为下游数据分析步骤,因此不支持在运行 SetupForWGCNA 之后对 Seurat 对象进行子集化。

在此,我们将使用SetupForWGCNA函数设置Seurat对象,并指定hdWGNCA实验的名称。该函数还将选择用于WGCNA的基因。用户可以使用 gene_select 参数用三种不同的方法选择基因:

  • variable:使用存储在Seurat对象VariableFeatures中的基因。
  • fraction:使用由group.by指定的在整个数据集或每组细胞中某一部分表达的基因。
    自定义:使用自定义列表中指定的基因。
  • custom:使用自定义列表中指定的基因。
seurat_obj <- SetupForWGCNA(
  seurat_obj,
  gene_select = "fraction", # the gene selection approach
  fraction = 0.05, # fraction of cells that a gene needs to be expressed in order to be included
  wgcna_name = "tutorial" # the name of the hdWGCNA experiment
)

Construct metacells

设置好 Seurat 对象后,在 hdWGCNA 中运行 hdWGCNA pipeine 的第一步就是根据单细胞数据集构建元胞。简而言之,元细胞是由来源于同一生物样本的小群相似细胞组成的集合体。使用k-Nearest Neighbors(KNN)算法来识别需要聚合的相似细胞群,然后计算这些细胞的平均或总和表达量,从而得到元细胞基因表达矩阵。与原始表达矩阵相比,元胞表达矩阵的稀疏性大大降低,因此更适合使用。我们使用元胞代替原始单细胞的最初动机是,相关网络方法(如 WGCNA)对数据稀疏性很敏感。

# construct metacells  in each group
seurat_obj <- MetacellsByGroups(
  seurat_obj = seurat_obj,
  group.by = c("cell_type", "Sample"), # specify the columns in seurat_obj@meta.data to group by
  reduction = 'harmony', # select the dimensionality reduction to perform KNN on
  k = 25, # nearest-neighbors parameter
  max_shared = 10, # maximum number of shared cells between two metacells
  ident.group = 'cell_type' # set the Idents of the metacell seurat object
)

# normalize metacell expression matrix:
seurat_obj <- NormalizeMetacells(seurat_obj)

Co-expression network analysis

Set up the expression matrix

在这里,要指定用于网络分析的表达矩阵。hdWGCNA包含SetDatExpr函数,用于存储用于下游网络分析的给定细胞组的转置表达矩阵。默认情况下使用元细胞表达矩阵(use_metacells=TRUE),但如果需要,hdWGCNA也允许使用单细胞表达矩阵。该函数允许用户指定从哪个槽获取表达矩阵,例如,如果用户想应用SCTransform归一化而不是NormalizeData

seurat_obj <- SetDatExpr(
  seurat_obj,
  group_name = "INH", # the name of the group of interest in the group.by column
  group.by='cell_type', # the metadata column containing the cell type info. This same column should have also been used in MetacellsByGroups
  assay = 'RNA', # using RNA assay
  slot = 'data' # using normalized data
)

Select soft-power threshold

选择 “soft power threshold值”。hdWGCNA构建了一个基因-基因相关性邻接矩阵,以推断基因之间的共表达关系。相关性被提升到一个幂次,以减少相关性矩阵中存在的噪声,从而保留强连接,去除弱连接。因此,确定一个合适的软幂阈值至关重要。

提供了一个TestSoftPowers函数,用于对不同的软功率阈值进行参数扫描。该函数通过检测不同功率值下的网络拓扑结构,帮助我们选择构建共表达网络的软功率阈值。共表达网络应该具有无标度拓扑结构,因此TestSoftPowers函数模拟了在不同软实力阈值下,共表达网络与无标度图的相似程度。

# Test different soft powers:
seurat_obj <- TestSoftPowers(
  seurat_obj,
  networkType = 'signed' # you can also use "unsigned" or "signed hybrid"
)

# plot the results:
plot_list <- PlotSoftPowers(seurat_obj)

# assemble with patchwork
wrap_plots(plot_list, ncol=2)

Construct co-expression network

# construct co-expression network:
seurat_obj <- ConstructNetwork(
  seurat_obj,
  tom_name = 'INH' # name of the topoligical overlap matrix written to disk
)
PlotDendrogram(seurat_obj, main='INH hdWGCNA Dendrogram')

Compute module connectivity

# compute eigengene-based connectivity (kME):
seurat_obj <- ModuleConnectivity(
  seurat_obj,
  group.by = 'cell_type', group_name = 'INH'
)


# rename the modules
seurat_obj <- ResetModuleNames(
  seurat_obj,
  new_name = "INH-M"
)
# plot genes ranked by kME for each module
p <- PlotKMEs(seurat_obj, ncol=5)

p

Module Feature Plots

FeaturePlot is a commonly used Seurat visualization to show a feature of interest directly on the dimensionality reduction. hdWGCNA includes the ModuleFeaturePlot function to consruct FeaturePlots for each co-expression module colored by each module’s uniquely assigned color.

# make a featureplot of hMEs for each module
plot_list <- ModuleFeaturePlot(
  seurat_obj,
  features='hMEs', # plot the hMEs
  order=TRUE # order so the points with highest hMEs are on top
)

# stitch together with patchwork
wrap_plots(plot_list, ncol=6)

若我们的教程对你有所帮助,请点赞+收藏+转发,这是对我们最大的支持。

原文链接:hdWGCNA | 单细胞(scRNA)和空间转录组共表达网络分析

往期部分文章

1. 最全WGCNA教程(替换数据即可出全部结果与图形)


2. 精美图形绘制教程

3. 转录组分析教程

4. 转录组下游分析

小杜的生信筆記 ,主要发表或收录生物信息学教程,以及基于R分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 ### 信号与系统(郑君里 第三版)课后习题解析 #### 1. 信号与系统中δ函数的尺度变换特性 在《信号与系统》(郑君里 第三版)这一著作中,作者阐述了δ函数的尺度变换特性,并借助一个特定的习题进行了详尽的阐释。该习题的任务在于验证以下等式: \[ \delta(at) = \frac{1}{|a|}\delta(t) \] **论证:** 为了验证此等式,我们首先需要掌握δ函数的基本属性以及它如何响应自变量的变动。依据题目的指示,我们知道当自变量为\( t \)时,脉冲的底部长度为\( \tau \),而当自变量转变为\( at \)时,底部长度调整为\( |a|\tau \)。 我们能够借助图形化的手段来获得直观的认识。设想一个用三角形来逼近的δ函数图像,其底边长度为\( \tau \),高度为\( h \),那么三角形的面积计算为\( A = \frac{1}{2} \tau h \)。当自变量变为\( at \)时,为了维持三角形的高度恒定,底边长度必须更新为\( |a|\tau \),此时三角形的面积变为\( A = \frac{1}{2} |a|\tau h = |a|A \)。 由于δ函数的积分特性被定义为单位面积,即在任何区间\( [-\infty, +\infty] \)内的积分结果均为1,因此无论底部长度如何变化,积分值均保持恒定。这表明,当自变量转变为\( at \)时,为了确保积分值维持在1,δ函数的幅度必须相应地调整为原值的\( \frac{1}{|a|} \)倍。由此,我们得以证明该等式: \[ \int_{-\infty}^{+\infty}...
内容概要:本文档为一篇博士论文的复现资料,聚焦于计及锁相环频率耦合效应的光伏逆变器序阻抗解析建模与扫频稳定评估研究。基于Matlab编程与Simulink仿真平台,构建了包含锁相环动态特性的光伏并网逆变器正负序阻抗模型,深入剖析其在弱电网条件下因锁相环引发的频率耦合机制,并采用小信号扫频法进行阻抗特性辨识与系统稳定性分析。文档系统呈现了理论建模的数推导过程、仿真模型搭建细节及核心代码实现,旨在完整复现并验证原论文的关键研究成果,帮助使用者掌握新能源发电系统接入弱电网时的小信号稳定性分析方法与技术路径。; 适合人群:具备电力电子、自动控制及电力系统稳定性相关基础知识,熟练掌握Matlab/Simulink仿真工具,从事新能源并网技术、微电网稳定性分析、逆变器控制策略研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 深入理解光伏逆变器序阻抗建模理论,特别是锁相环导致的正负序频率交叉耦合现象;② 掌握基于扫频法的阻抗测量与奈奎斯特稳定性判据应用,评估并网系统的稳定裕度;③ 复现高水平术论文的核心成果,为自身科研项目提供可靠的理论依据、成熟的代码框架与仿真技术参考。; 阅读建议:习者应结合所提供的Matlab代码与Simulink仿真模型,循序渐进地理解阻抗建模的理论推导与实现逻辑,重点在于动手调试扫频模块以获取精确的阻抗频率响应曲线,并通过调整控制器参数、电网强度等变量,观察其对系统阻抗特性与稳定性的影响,从而深化对理论知识的实践应用与创新能力。
内容概要:本文围绕“基于序阻抗建模的VSG并网逆变器仿真复现研究”,利用Simulink工具对虚拟同步发电机(VSG)并网逆变器进行系统建模与仿真分析,重点研究其在弱电网条件下的序阻抗建模方法、扫频法稳定性判据及宽频带振荡机理。研究整合了多篇博士论文与高水平期刊成果,涵盖阻抗建模理论、控制器设计、正负序解耦分析及系统稳定性评估等内容,并配套提供完整的Matlab/Simulink代码与仿真模型资源,支持复现光伏逆变器、构网型变流器等多种典型新能源并网系统案例,旨在帮助科研人员深入掌握新能源并网系统的动态响应特性与稳定控制策略。; 适合人群:具备电力系统、电力电子或自动控制等相关专业背景,正在从事新能源并网、微电网运行、逆变器控制与稳定性分析等方向研究的研究生、博士生及科研技术人员。; 使用场景及目标:①掌握VSG并网逆变器的序阻抗建模流程与精确仿真技术;②理解弱电网环境下并网系统的振荡产生机制与稳定性判据应用;③复现高水平术论文中的阻抗扫频验证与稳定性分析案例,提升科研仿真能力与论文复现水平; 阅读建议:建议结合所提供的Simulink模型与Matlab代码循序渐进地操作实践,重点关注阻抗建模的数推导与扫频仿真的参数设置,同时参考文中引用的博士论文与顶刊文献,系统构建对新能源并网系统稳定性的理论认知与工程实践能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杜的生信筆記

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值