基于多模态单细胞数据构建共表达网络-MuSeGNN

本篇来自于MuSe-GNN: Learning Unified Gene Representation From Multimodal Biological Graph Data的补充材料。主要目的是从多模态数据中构建共表达网络。作者概述了使用CS-CORE,scTransform和SPARK-X进行预处理步骤和网络构建的算法细节。

目前存在大量用于图谱级转录组和表观基因组数据分析的数据库(比如HCA,HuBMAP),作者收集了来自HCA的scRNA-seq,来自HuBMAP的scATAC-seq,以及来自其他数据库的高质量空间数据。对于不同的组学数据,作者实现了一个通用的过程。

在常规流程中,对于scRNAseq数据集,作者使用scTransform选择hvg并生成Pearson残差,将原始表达式替换为残差。scTransform是第一个将排序深度作为协变量而不是直接将大小因子应用于归一化的模型。它消除了由原始单细胞或空间表达数据的测序深度造成的混淆,从而生成正确的基因表达谱。这些优点使其成为广泛使用的归一化方法。

为了构建基于唯一分子标识符(Unique Molecular Identifier, UMI)的scRNA-seq数据集共表达网络,作者使用了CS-CORE,这是一种基于UMI计数数据的最先进的共表达推断工具。与其他工具相比,CS-CORE具有更高的鲁棒性和更低的假阳性率。对于scATAC-seq数据集,使用Seurat将原始细胞峰矩阵转换为细胞-基因活性矩阵,并纳入先验信息。细胞-基因活性矩阵的处理方法与scRNA-seq数据矩阵类似,因此后续的预处理步骤保持不变。

为了构建空间数据共表达网络,作者考虑了空间表达模式(SE基因或空间hvg),并将每个条形码作为一个样本。作者使用SPARK-X识别SE基因,然后基于scTransform和基于CS-CORE的共表达网络生成校正后的基因表达谱与共表达网络。

CS-CORE
由于数据为UMI类型,因此可以使用CS-CORE进行共表达网络构建。考虑有 n n n个细胞,对于细胞 i i i,表达谱可以表示为向量 ( x i 1 , . . . , x i p ) (x_{i1},...,x_{ip}) (xi1,...,xip) p p p是基因的数量。我们也可以使用 s i s_{i} si表示细胞 i i i的测序深度。考虑到细胞 i i i p p p个基因的潜在表达水平为 ( z i 1 , . . . , z i p ) (z_{i1},...,z_{ip}) (zi1,...,zip),CS-CORE的假设遵循: ( z i 1 , . . . , z i p ) ∼ F p ( μ , Σ ) ,    x i j ∣ z i j ∼ P o i s s o n ( s i z i j ) (z_{i1},...,z_{ip})\sim F_{p}(\mu,\Sigma),\thinspace\thinspace x_{ij}|z_{ij}\sim Poisson(s_{i}z_{ij}) (zi1,...,zip)Fp(μ,Σ),xijzijPoisson(sizij)其中, F p F_{p} Fp是未知的非负p-variate分布,均值为 μ \mu μ,协方差矩阵为 Σ \Sigma Σ。CS-CORE采用一种基于矩的迭代加权最小二乘(IRLS)估计方法来估计协方差矩阵。一旦获得 Σ p × p = [ σ i j ] \Sigma_{p\times p}=[\sigma_{ij}] Σp×p=[σij],就能估计基因 j j j j ′ j' j之间的共表达关系为 ρ j j ′ = σ j j ′ σ j j σ j ′ j ′ \rho_{jj'}=\frac{\sigma_{jj'}}{\sqrt{\sigma_{jj}\sigma_{j'j'}}} ρjj=σjjσjj σjj

scTransform
为了消除测序深度对表达水平的混淆影响,作者首先使用scTransform对单细胞数据进行处理,得到Pearson残差,然后使用Pearson残差作为不同基因的初始embedding。假设UMI计数数据服从负二项分布,对于细胞 c c c中给定的基因 g g g,我们有: x g c ∼ N B ( μ g c , θ g ) I n   μ g c = β g 0 + I n   s c x_{gc}\sim NB(\mu_{gc},\theta_{g})\\ In\thinspace\mu_{gc}=\beta_{g0}+In\thinspace s_{c} xgcNB(μgc,θg)Inμgc=βg0+InscscTransform利用广义线性模型将 θ \theta θ正则化为基因均值 μ \mu μ的函数。进一步,可以估计未知参数,计算Pearson残差 Z g c Z_{gc} Zgc Z g c = x g c − μ g c σ g c μ g c = e x p ( β g 0 + I n   s c ) σ g c = μ g c + μ g c 2 θ g c Z_{gc}=\frac{x_{gc}-\mu_{gc}}{\sigma_{gc}}\\ \mu_{gc}=exp(\beta_{g0}+In\thinspace s_{c})\\ \sigma_{gc}=\sqrt{\mu_{gc}+\frac{\mu_{gc}^{2}}{\theta_{gc}}} Zgc=σgcxgcμgcμgc=exp(βg0+Insc)σgc=μgc+θgcμgc2 最后,可以用广义线性模型生成的残差矩阵 Z Z Z代替原始表达式矩阵,并将表达式矩阵和对应的Graph存储在scanpy文件中。

SPARK-X
单细胞转录组数据和空间转录组数据的主要区别包括两个方面:

  • 1在大多数空间分辨数据中,每个条形码代表不同细胞的混合。
  • 2额外的空间信息为空间数据引入了基因的空间表达模式(SE基因)。

为了在空间转录组数据中识别SE基因,SPARK-X采用了一种统计检验,利用位置构建的距离协方差矩阵和利用基因表达谱构建的表达协方差矩阵。

更具体地说,对于大小为 n × d n × d n×d的空间转录组基因表达矩阵,样本坐标的矩阵为: S = ( s 1 T , . . . , s n T ) , s i = ( s i 2 , s i 2 ) S=(s_{1}^{T},...,s_{n}^{T}),s_{i}=(s_{i2},s_{i2}) S=(s1T,...,snT),si=(si2,si2)。整个表达式矩阵可以表示为: y = ( y 1 ( s 1 ) , . . . , y n ( s n ) ) T y=(y_{1}(s_{1}),...,y_{n}(s_{n}))^{T} y=(y1(s1),...,yn(sn))T。目标是检验 y y y是否独立于 S S S,因此基于 E = y ( y T y ) − 1 y T E=y(y^{T}y)^{-1}y^{T} E=y(yTy)1yT构造表达协方差矩阵,基于 Σ = S ( S T S ) − 1 S T \Sigma=S(S^{T}S)^{-1}S^{T} Σ=S(STS)1ST构造距离协方差矩阵。对 E E E Σ \Sigma Σ检验,按照p值排序,选择前1000个基因进行归一化和共表达Graph构建。

fig1

  • 多模态数据构建共表达网络的统一过程。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESP32 引脚分配

请注意,以下引脚分配参考适用于流行的 30 引脚ESP32 devkit v1开发板。 仅输入引脚 GPIO34~39是GPIs–仅输入的管脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些管脚用作输入:GPIO 34、GPIO 35、GPIO 36、GPIO 39 S…

利用nginx-http-flv-module实现三种直播

目录 一、说明 二、目标 三、实现 四、直播地址 一、说明 此文在《流媒体服务器的搭建(支持hls)》《搭建nginx-http-flv-module直播系统》之后编写,很多详细内容需要参考它。 流媒体服务器的搭建(支持hls)

【解读Kubernetes架构】全面指南,带你掌握Kubernetes的设计原理与构成!

了解 Kubernetes 架构:综合指南 前言一、什么是 Kubernetes 架构?1.1、控制平面1.2、工作节点 二、Kubernetes 控制平面组件2.1、kube-api服务器2.2、etcd2.3、kube-scheduler2.4、Kube 控制器管理器2.5、云控制器管理器 (CCM) 三…

Web APIs简介 Dom

JS的组成 API API 是一些预先定义的函数,目的是提供应用程序与开发人员基于软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节 简单理解:API是给程序员提供的一种工具,以便能更轻松的实现…

车载电子电器架构 —— 工程EOL诊断

车载电子电器架构 —— 工程EOL诊断 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

数据的统计描述

data.info() 提供了关于数据框的简要摘要,包括: 索引类型数据列的数量非空值的数量(针对每列)每列的数据类型(例如,int64, float64, object等)内存使用情况提供了哪些列可能包含缺失值&#xff…

flink on yarn

前言 Apache Flink,作为大数据处理领域的璀璨明星,以其独特的流处理和批处理一体化模型,成为众多企业和开发者的首选。它不仅能够在处理无界数据流时展现出卓越的实时性能,还能在有界数据批处理上达到高效稳定的效果。本文将简要…

Linux文件IO(4):目录操作和文件属性获取

目录 1. 前言 2. 函数介绍 2.1 访问目录 – opendir 2.2 访问目录 – readdir 2.3 访问目录 – closedir 2.4 修改文件访问权限 – chmod/fchmod 2.5 获取文件属性 – stat/lstat/fstat 2.5.1 文件属性 – struct stat 2.6 文件类型 – st_mode 3. 代码练习 3.1 要求 3.2 代…

day04-MQ

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你…

数组--有序数组的平方

LeetCode中的第977题: 思想:①返回每个新数组;②排序; (n个数,进行n-1趟比较。第j趟比较中要进行n-j次两两比较) (1)n个数,进行n-1趟比较: for(…

深度学习【向量化(array)】

为什么要向量化 在深度学习安全领域、深度学习练习中,你经常发现在训练大量数据时,深度学习算法表现才更加优越,所以你的代码运行的非常快至关重要,否则,你将要等待非常长的时间去得到结果。所以在深度学习领域向量化…

(源码+部署+讲解)基于Spring Boot和Vue的宠物领养系统的设计与实现

一、引言 本报告旨在详细描述基于Spring Boot后端框架和Vue前端框架的宠物领养系统的设计与实现过程。宠物领养系统旨在为宠物主人和领养者提供一个便捷的平台,实现宠物的信息发布、领养申请、信息管理等功能。通过该系统,宠物主人可以快速找到适合的领养…

Kali WSL2(windows下安装了kali)

自从WSL2以来,感觉各方面也挺好的,有时候比vmware workstation方便,特别单独使用一个linux的时候。所以研究了下kali,也是很OK的,以及验证完成了。 本文参考官网: Kali Linux | Penetration Testing and Et…

C++——特殊类设计

目录 前言 一,请设计一个不能被拷贝的类 二,请设计一个只能在堆上创建对象的类 2.1 思路一:构造函数私有 2.2 思路二,析构函数私有 三,请设计一个只能在栈上创建对象的类 四,请设计一个只能创建一个…

练习14 Web [极客大挑战 2019]Upload

phtml格式绕过,burp修改content-type绕过,常见的文件上传存放目录名 题目就叫upload,打开靶机 直接上传一个图片格式的一句话木马,返回如下: 提交练习5和9中的两种可以执行图片格式php代码的文件,修改con…

Netty的线程模型

文章目录 前言NIO的三种reactor模式Netty对3种Reactor模式的支持Netty内部如何实现Reactor线程模型在事件分发过程中,Netty如何避免竞争条件 前言 Netty的线程模型采用了Reactor模式,这是一种高性能的IO设计模式,它基于NIO多路复用。Netty支…

226.翻转二叉树

226.翻转二叉树 力扣题目链接(opens new window) 翻转一棵二叉树。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNo…

Linux操作系统之防火墙、redis安装

目录 一、防火墙 1、防火墙的类别 2、安装iptables(四表五链) 一、防火墙 1、防火墙的类别 安全产品 杀毒 针对病毒,特征篡改系统中文件杀毒软件针对处理病毒程序 防火墙 针对木马,特征系统窃密 防火墙针对处理木马 防火墙分为两种 硬件…

MySql 实战大数据查询-(表分区实现)

一 mysql分区: 分区是将单个表按照某种规则划分成多个子集,每个子集称为一个分区。常见的分区策略包括按照时间范围、范围值、列表等进行分区。 优点: 查询性能更好,涉及分区键的查询,数据库引擎可以只扫描特定分区&…

【MySQL】聚合函数和分组聚合

👦个人主页:Weraphael ✍🏻作者简介:目前学习计网、mysql和算法 ✈️专栏:MySQL学习 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…