scVI与MultiVI

scVI:https://docs.scvi-tools.org/en/stable/user_guide/models/scvi.html
MultiVI:https://docs.scvi-tools.org/en/stable/user_guide/models/multivi.html

目录

  • scVI
    • 生成
    • 推理
    • 任务
  • MultiVI
    • 生成
    • 推理

scVI

single cell variational inference提出了一个灵活的scRNA-seq数据生成模型。scVI功能全面,可以扩展到大规模数据集(处理超过1万个细胞),局限性在于:1.需要GPU才能快速推理,2.与线性方法不同,潜在空间不可解释。

生成

scVI将包含细胞和基因的scRNA-seq基因表达矩阵 X X X作为输入( N N N个细胞, G G G个基因),此外,一个设计的矩阵 S S S包含 p p p个观测协变量,比如day,donor等等,这是可选的输入。虽然 S S S可以包含离散协变量和连续协变量,但在下文中,我们假设它仅包含一个具有 K K K个类别的离散协变量,这代表了具有多批次数据的常见情况。

对于细胞 n n n和基因 g g g,scVI用下面过程生成观测的UMI计数 x n g x_{ng} xng(其中, s n s_{n} sn为细胞 n n n的batch id): z n ∼ N o r m a l ( 0 , I ) l n ∼ l o g N o r m a l ( l μ ⊤ s n , l σ 2 ⊤ s n ) ρ n = f w ( z n , s n ) π n g = f h g ( z n , s n ) x n g ∼ O b s e r v a t i o n M o d e l ( l n ρ n , θ g , π n g ) z_{n}\sim Normal(0,I)\\ l_{n}\sim logNormal(l_{\mu}^{\top}s_{n},l_{\sigma^{2}}^{\top}s_{n})\\ \rho_{n}=f_{w}(z_{n},s_{n})\\ \pi_{ng}=f_{h}^{g}(z_{n},s_{n})\\ x_{ng}\sim ObservationModel(l_{n}\rho_{n},\theta_{g},\pi_{ng}) znNormal(0,I)lnlogNormal(lμsn,lσ2sn)ρn=fw(zn,sn)πng=fhg(zn,sn)xngObservationModel(lnρn,θg,πng)简而言之,每个基因的基因表达取决于细胞特异性的潜在变量 z n z_{n} zn。先验参数 l μ l_{\mu} lμ l σ 2 l_{\sigma^{2}} lσ2 是根据所有细胞的对数大小在不同批次之间计算得出的均值和方差。表达数据是从一个基于计数的似然分布生成的,这里称为 O b s e r v a t i o n M o d e l ObservationModel ObservationModel,默认为ZINB分布,也可以是更简单的NB分布。

生成过程使用两个神经网络: f w ( z n , s n ) : R d × { 0 , 1 } K → Δ G − 1 f h ( z n , s n ) : R d × { 0 , 1 } K → ( 0 , 1 ) ⊤ f_{w}(z_{n},s_{n}):\mathbb{R}^{d}\times\left\{0,1\right\}^{K}\rightarrow\Delta^{G-1}\\f_{h}(z_{n},s_{n}):\mathbb{R}^{d}\times\left\{0,1\right\}^{K}\rightarrow(0,1)^{\top} fw(zn,sn):Rd×{0,1}KΔG1fh(zn,sn):Rd×{0,1}K(0,1)分别解码去噪基因表达和ZINB概率。

下表为潜在变量以及描述:

潜在变量描述
z n ∈ R d z_{n}\in\mathbb{R}^{d} znRd细胞状态的低维表示
ρ n ∈ Δ G − 1 \rho_{n}\in\Delta^{G-1} ρnΔG1去噪的基因表达。这是一个cell内总和为1的向量
l n ∈ ( 0 , ∞ ) l_{n}\in(0,∞) ln(0,)RNA 文库大小。 这里它被建模为一个潜在变量,但 scVI 最近的默认设置是将文库大小视为观察到的,等于当前细胞 n n n的总 RNA UMI 计数
θ g ∈ ( 0 , ∞ ) \theta_{g}\in(0,∞) θg(0,)NB的Inverse dispersion。例如,可以通过在模型初始化期间传递dispersion=“gene-batch”来将其设置为特定于基因或批次

推理

scVI 使用变分推理来学习模型参数(神经网络参数、Inverse dispersion等)和具有以下分解的近似后验分布: q η ( z n , l n ∣ x n ) = q η ( z n ∣ x n , s n ) q η ( l n ∣ x n ) q_{\eta}(z_{n},l_{n}|x_{n})=q_{\eta}(z_{n}|x_{n},s_{n})q_{\eta}(l_{n}|x_{n}) qη(zn,lnxn)=qη(znxn,sn)qη(lnxn)这里 η \eta η是对应于推理神经网络(编码器)的一组参数。值得注意的是,默认情况下,scVI 仅接收表达数据作为输入(没有观测到的细胞水平协变量)。根据经验,通过让编码器将这些item的串联 q η ( z n , l n ∣ x n , s n ) q_{\eta}(z_{n},l_{n}|x_{n},s_{n}) qη(zn,lnxn,sn) 作为输入,我们并没有看到太大的差异。

任务

下面是scVI可以执行的任务。

降维:近似的后验 q η ( z n ∣ x n , s n ) q_{\eta}(z_{n}|x_{n},s_{n}) qη(znxn,sn)被返回获得低维表示。

transfer :scVI可以根据参考数据进行训练,然后将细胞水平协变量(比如细胞类型注释)转移到查询数据。

基因表达的插补:scVI返回近似后验下 ρ n \rho_{n} ρn的期望值。对于细胞 n n n,可以写成: E q η ( z n ∣ x n ) [ f w ( z n , s n ) ] \mathbb{E}_{q_{\eta}(z_{n}|x_{n})}[f_{w}(z_{n},s_{n})] Eqη(znxn)[fw(zn,sn)]

差异分析:scVI在估计后的插补数据上执行差异分析。

生成模拟数据:可以从 z n z_{n} zn进行采样,重新模拟生成新的细胞数据。

MultiVI

multiVI是一个多模态生成模型,能够整合多组学的scRNA-seq和scATAC-seq数据,训练后,可用于许多常见的下游任务,也可用于缺失模态的插补。
fig1

  • 图1:其中输入数据由ATAC、RNA两种数据类型组成(或者加上蛋白质模态)。变量 S S S表示实验协变量,如批次或实验条件( S S S是可选的输入)。每个数据模态被编码成模态无关的潜在表示,然后,这些表示被合并到一个联合潜在空间。

生成

MultiVI的输入为多模态单细胞矩阵 X m u l t X_{mult} Xmult,包含 N N N个细胞, G G G个基因,以及 M M M个基因区域(peaks),或者仅 X r n a X_{rna} Xrna N N N个细胞和 G G G个基因),或者仅 X a t a c X_{atac} Xatac N N N个细胞和 M M M个peaks,peaks可能是二值化的或者整数计数)。此外,一个设计的矩阵 S S S包含 p p p个观测协变量,比如day等,这是可选的输入。虽然 S S S可以包含离散协变量和连续协变量,但在下文中,我们假设它仅包含一个具有 K K K个类别的离散协变量,这代表了具有多批次数据的常见情况。

对于细胞 n n n和基因 g g g以及peaks j j j,MultiVI用下面过程生成观测的UMI计数 x n g x_{ng} xng y n j y_{nj} ynj z n ∼ N o r m a l ( 0 , I ) l n ∼ l o g N o r m a l ( l μ ⊤ s n , l σ 2 ⊤ s n ) ρ n = f w ( z n , s n ) π n g = f h g ( z n , s n ) x n g ∼ O b s e r v a t i o n M o d e l ( l n ρ n , θ g , π n g ) p n j = g z j ( z n , s n ) l n = f l ( y n ) y n j ∼ B e r n o u l l i ( p n j ⋅ l n ⋅ r j ) z_{n}\sim Normal(0,I)\\ l_{n}\sim logNormal(l_{\mu}^{\top}s_{n},l_{\sigma^{2}}^{\top}s_{n})\\ \rho_{n}=f_{w}(z_{n},s_{n})\\ \pi_{ng}=f_{h}^{g}(z_{n},s_{n})\\ x_{ng}\sim ObservationModel(l_{n}\rho_{n},\theta_{g},\pi_{ng})\\ p_{nj}=g_{z}^{j}(z_{n},s_{n})\\ l_{n}=f_{l}(y_{n})\\ y_{nj}\sim Bernoulli(p_{nj}\cdot l_{n}\cdot r_{j}) znNormal(0,I)lnlogNormal(lμsn,lσ2sn)ρn=fw(zn,sn)πng=fhg(zn,sn)xngObservationModel(lnρn,θg,πng)pnj=gzj(zn,sn)ln=fl(yn)ynjBernoulli(pnjlnrj)对于scRNA-seq,先验参数 l μ l_{\mu} lμ l σ 2 l_{\sigma^{2}} lσ2 是根据所有细胞的对数大小在不同批次之间计算得出的均值和方差。表达数据是从一个基于计数的似然分布生成的,这里称为 O b s e r v a t i o n M o d e l ObservationModel ObservationModel,默认为ZINB分布,也可以是更简单的NB分布。

对于scATAC-seq,检测可访问区域( y n j > 0 y_{nj}>0 ynj>0)是由伯努利随机变量生成的,该变量取决于细胞特异性潜在变量 z n z_{n} zn,该变量捕获生物异质性。另外有两个辅助的缩放因子 l n l_{n} ln r j r_{j} rj,分别考虑了特定于细胞和特定于region的批次效应。

MultiVI 的生成过程使用神经网络: f w ( z n , s n ) : R d × { 0 , 1 } K → Δ G − 1 f h ( z n , s n ) : R d × { 0 , 1 } K → ( 0 , 1 ) ⊤ g z ( z n , s n ) : R d × { 0 , 1 } K → [ 0 , 1 ] M f_{w}(z_{n},s_{n}):\mathbb{R}^{d}\times\left\{0,1\right\}^{K}\rightarrow\Delta^{G-1}\\f_{h}(z_{n},s_{n}):\mathbb{R}^{d}\times\left\{0,1\right\}^{K}\rightarrow(0,1)^{\top}\\ g_{z}(z_{n},s_{n}):\mathbb{R}^{d}\times\left\{0,1\right\}^{K}\rightarrow[0,1]^{M} fw(zn,sn):Rd×{0,1}KΔG1fh(zn,sn):Rd×{0,1}K(0,1)gz(zn,sn):Rd×{0,1}K[0,1]M分别解码去噪基因表达、非零膨胀概率(仅当使用 ZINB 时)并估计可访问区域的概率。

推理

MultiVI 使用变分推理来学习模型参数,并得到具有以下分解的近似后验分布: q η ( z n , l n ∣ x n ) = q η ( z n ∣ x n , y n , s n ) q η ( l n ∣ x n ) q_{\eta}(z_{n},l_{n}|x_{n})=q_{\eta}(z_{n}|x_{n},y_{n},s_{n})q_{\eta}(l_{n}|x_{n}) qη(zn,lnxn)=qη(znxn,yn,sn)qη(lnxn)其中, z n z_{n} zn被确定性地计算为变分近似 z n r n a z_{n}^{rna} znrna z n a t a c z_{n}^{atac} znatac的两个潜在变量的平均值。这两个变量是正态的,因此 z n z_{n} zn是正态的。

当获得隐变量后,使用生成模型即可完成不同模态的数据还原。

MultiVI的局限:因为 z n z_{n} zn需要获得两个模态的 z n r n a z_{n}^{rna} znrna z n a t a c z_{n}^{atac} znatac均值,MultiVI在非联合测量数据上的整合能力有限。

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

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

相关文章

JVM工作原理与实战(十一):双亲委派机制

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、双亲委派机制 1.双亲委派机制详解 2.父类加载器 3.双亲委派机制的主要作用 二、双亲委派机制常见问题 总结 前言 ​JVM作为Java程序的运行环境,其负责解释和执行字…

【漏洞复现】ActiveMQ文件上传漏洞(CVE-2016-3088)

Nx01 产品简介 Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件。ActiveMQ是消息队列服务,是面向消息中间件(MOM)的最终实现,它为企业消息传递提供高可用、出色性能、可扩展、稳定和安全保障。 Nx02 漏洞描述 Ap…

Mars3D与mars3d-cesium版本间兼容造成3dtiles和gltf数据处理相关记录

说明: 1.在引入Mars3D SDK后正常可以在F12打印的信息中可以看到Mars3D和Cesium版本信息。 2.在项目的package.json文件中同样可以看到安装后的版本号。 Mars3D对Cesium版本对应关系: 1.正常情况下mars3d依赖的cesium均是最新版本,并且对cesi…

如何将Redis、Zookeeper、Nacos配置为Windows系统的一个服务

说明:当我们在Windows上开发时,不可避免的会用到一些中间件,如Redis、Zookeeper、Nacos等等,当在项目中使用到本地的这些服务器时,我们需要把本地的服务器启动,会开启下面这样的一个窗口。 Redis服务器&am…

npm i sass -D的含义

命令 npm i sass -D 是一个在Node.js项目中使用npm(Node Package Manager)安装Sass预处理器的命令。这个命令的各个部分含义如下: npm: 这是Node Package Manager的缩写,一个用于Node.js的包管理和分发工具,允许开发者…

78.乐理基础-非常见拍号如何打拍子

内容来源于:三分钟音乐社 上一个内容:76.乐理基础-打拍子-二连音、四连音-CSDN博客 非常见的拍子就是下图中除了红圈里的五个拍号的拍号 最大优先级的规则: 规则一:所有的拍号绝对,永远都可以以一拍为单位&#xff0…

[论文精读]Brain Network Transformer

论文网址:[2210.06681] Brain Network Transformer (arxiv.org) 论文代码:GitHub - Wayfear/BrainNetworkTransformer: The open-source implementation of the NeurIPS 2022 paper Brain Network Transformer. 英文是纯手打的!论文原文的s…

001 Golang-channel-practice

最近在练习并发编程。加上最近也在用Golang写代码,所以记录一下练习的题目。 第一道题目是用10个协程打印100条信息,创建10个协程。每个协程都会有自己的编号。每个协程都会被打印10次。 package mainimport ("fmt""strconv" )func …

如何在iOS手机上查看应用日志

引言 在开发iOS应用过程中,查看应用日志是非常重要的一项工作。通过查看日志,我们可以了解应用程序运行时的状态和错误信息,帮助我们进行调试和排查问题。本文将介绍两种方法来查看iOS手机上的应用日志,并提供相应的操作步骤。 …

Hyperledger Fabric 消息协议

Fabric 中大量采用了 gRPC 消息在不同组件之间进行通信交互,主要包括如下几种情况:客户端访问 Peer 节点,客户端和 Peer 节点访问排序节点,链码容器与 Peer 节点交互,以及多个 Peer 节点之间的 Gossip 交互。 消息结构…

工业企业-专利引用、被引用数据(1985-2019年)

工业企业的专利引用和被引用数据提供了关于这些企业创新活动和技术影响力的信息。专利引用数据指的是工业企业在申请专利时引用的既有专利数量,这反映了企业在研发过程中对现有技术的依赖和融合。被引用数据则指其他后续专利对这些企业专利的引用次数,这…

控制el-table的列显示隐藏

控制el-table的列显示隐藏,一般的话可以通过循环来实现,但是假如业务及页面比较复杂的话,list数组循环并不好用。 在我们的页面中el-table-column是固定的,因为现在是对现有的进行维护和迭代更新。 对需要控制列显示隐藏的页面进…

SpringBoot 集成WebSocket详解

一、WebSocket概述 1、WebSocket简介 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 2、为什么需要WebSocket HTTP 是基于请求响应式的,即通信只能由客户端发起,服…

mybatis(动态sql及分页)

mybatis-动态sql及分页 1. 动态sql简述2. 动态sql示例2.1 if2.2 choose2.3 foreach2.4 sql 及 include2.5 sql中的特殊字符 3. 后台分页实现4. 数据版本号处理并发问题 1. 动态sql简述 mybatis的动态sql语句是基于OGNL表达式的。可以方便的在sql语句中实现某些逻辑. 总体说来m…

Vue 封装的 axios 类的使用(小bug 改进)

http类 import { baseUrl } from "./config"; //引入config.js中的配置 import axios from "axios"; //引入axios import qs from "querystringify"; //form-Data请求时的工具类class Http{axios null;lastRequestIntercept null…

Android BUG 之 Error: Activity class {} does not exist

项目场景: 更换包名,运行报错 问题描述 原因分析: 在替换包名的时候要确认,配置文件跟build中的保持一致,在更换后还要将旧包的缓存数据清理掉 解决方案: 1 替换后删除 app 下的build 文件夹 2 Rebuild Pr…

Leetcode2976. 转换字符串的最小成本 I

Every day a Leetcode 题目来源:2976. 转换字符串的最小成本 I 解法1:最短路 建图,从 original[i] 向 changed[i] 连边,边权为 cost[i]。没边的边权设为 INF。 然后用 Floyd 算法求图中任意两点最短路,得到 g 矩阵…

MT6785安卓核心板_联发科MTK6785/Helio G95/曦力G95核心板定制

MT6785安卓核心板是基于MT6785(Helio G95)处理器,具备八核处理器结构,包括2颗主频为2.05GHz的Cortex A76处理器和6颗主频为2.0GHz的Cortex A55处理器,以及六颗Cortex-A55处理器。而在GPU方面,采用了Arm Mali-G76 MC4,频…

zabbix监控windows主机

下载安装zabbix agent安装包 Zabbix官网下载地址: https://www.zabbix.com/cn/download_agents?version5.0LTS&release5.0.40&osWindows&os_versionAny&hardwareamd64&encryptionOpenSSL&packagingMSI&show_legacy0 这里使用zabbix agent2 安装 …

22、Kubernetes核心技术 - 整合Rancher通过界面管理k8s集群

目录 一、概述 二、Rancher API Server 的功能 2.1、授权和角色权限控制 2.2、使用 Kubernetes 的功能 2.3、配置云端基础信息 2.4、查看集群信息 三、Rancher 安装 3.1、前置环境 3.2、通过 Docker 来进行安装Rancher 3.3、在 Rancher 的界面上绑定k8s集群 3.4、在 …