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在非联合测量数据上的整合能力有限。

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

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

相关文章

elementui dialog 回车时却刷新整个页面

到处都是坑,这个坑填完另一个坑还在等你。。。坑坑相连,坑坑不同。。。 使用el-dialog弹出一个表单,当我无意间敲到回车键时,整个页面被刷新了,又是一脸的懵逼。。。 经过查找文档发现解决方案为上述截图标记。。。 e…

科锐16位汇编学习笔记 03 汇编指令

指令种类 数据传送指令算数运算类指令位操作类指令串操作类指令控制转移类指令处理器控制类指令 数据传送类指令 传送类指令不影响标志位,**除了标志位传送指令外。** 传送指令MOV(move) 说明 ​ 把一个字节或字的操作数从源地址传送至…

用golang 实现给图片添加文字水印

package mainimport ("fmt""github.com/golang/freetype""image""image/draw""image/jpeg""io""os""time" )func main() {// 打开原始图片file, err : os.Open("004.jpeg")if err …

解决Qt Creator中文乱码的问题

方法1 使用QStringLiteral()包裹中文字符串 QString str1"中文测试!"; QString str2QStringLiteral("中文测试!");方法2 #if _MSC_VER > 1600//MSVC2015>1899,MSVC_VER14.0 #pragma execution_character_set("utf-8&qu…

软文营销无效的原因,这些细节容易被忽略

不管你是卖产品还是做服务,不管是大公司还是小企业,都需要软文营销,然而营销也有好坏之分,好的营销会给客户带来更多企业和利润,无效营销不仅会耽误市场竞争的效率还会带来负面影响,今天媒介盒子就来和大家…

SpringMVC执行流程

SpringMVC执行流程 具体步骤 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找 Handler 第三步:处理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为Ha…

HTML---JQurey的基本使用

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 本章目标 (1)能够搭建jQuery开发环境 (2)使用ready( )方法加载页面、掌握jQuery语法 使用addClass( )方法和css( )方法为元素添加CSS样式使用n…

echarts设置tooltip的层级

echarts设置tooltip的层级 tooltip: {trigger: "axis",extraCssText: z-index:3, // 修改层级borderColor: "rgba(0, 170, 255)",}, 完整的option示例如下: option {tooltip: {trigger: "axis",extraCssText: z-index:3,axisPoin…

Python 架构模式:附录 A 到 E

附录 A:摘要图和表 原文:Appendix A: Summary Diagram and Table 译者:飞龙 协议:CC BY-NC-SA 4.0 这是我们在书的最后看到的架构: 表 A-1 总结了每个模式及其功能。 表 A-1. 我们的架构组件及其功能 层组件描述领域…

Linux 进程和计划任务管理

一 内核功用 进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能等 1 程序 是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具 用于描述进程要完成的功能,是控制进程执行的指令集 2 进程 运行…

1877_SHA512校验的使用

全部学习汇总: GreyZhang/toolbox: 常用的工具使用查询,非教程,仅作为自我参考! (github.com) 之前下载很多软件,尤其是开源软件的文件包的时候通常会看到一个校验文件。之前下载的时候我一般都是直接忽略,…

金和OA C6 CarCardInfo.aspx SQL注入漏洞复现

0x01 产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 0x02 漏洞概述 金和OA C6 CarCardInfo.aspx接口处存在SQL注入漏洞,攻击者除了可以利用 SQL 注入漏洞…

SpringIOC之support模块EmbeddedValueResolutionSupport

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

小梅哥Xilinx FPGA学习笔记22——ip核之FIFO

目录 一:章节说明 1.1 FIFO IP简介 1.2 FIFO Generato IP 核信号框图 1.3 实验任务 二:FIFO 写模块设计 2.1 简介 2.2 模块框图 2.3 模块端口与功能描述 2.4 写模块代码 三 FIFO 读模块设计 3.1 简介 3.2 模块框图 3.3 模块端口与功…

OpenAI ChatGPT-4开发笔记2024-03:Chat之Tool和Tool_Call(含前function call)

Updates on Function Calling were a major highlight at OpenAI DevDay. In another world,原来的function call都不再正常工作了,必须全部重写。 function和function call全部由tool和tool_choice取代。2023年11月之前关于function call的代码都准备翘翘。 干嘛…

进阶学习——Linux网络

目录 一、网络配置命令 1.ifconfig——IP地址 1.1ifconfig的基础用法 1.1.1ifconfig命令详解 1.2常用格式 1.3修改网卡名称 1.3.1临时修改 1.3.2永久修改 1.4临时修改网卡 1.4.1设置虚拟网卡 1.4.2延伸——ethtool 1.5永久修改网卡 1.6实验 —— 双网卡配置 1.…

【方法】如何修改Word文档密码?

我们在生活和工作中经常会使用到Word,有时候需要保护Word文档,还会设置密码,那如果后续想要修改密码,要怎么操作呢? 下面来看看Word文档常用的3种密码是如何修改的。 一、打开密码 想要修改“打开密码”&#xff0c…

基于Python爬虫的B站弹幕可视化

介绍 这是一个基于Python的B站弹幕可视化项目,主要使用了python django、requests、jieba等库。该项目实现了以下功能: 1. 爬取Bilibili视频弹幕数据:通过爬虫获取视频的标题、视频总时长、封面图,视频地址以及所有弹幕数据等。 …

Cesium笔记 初始化 原生Cesium

1、创建vue项目 vue create my_demo 2、下载Cesium 可以从官网下载&#xff0c;也可以使用node下载 npm install cesium 3、把node_modules文件夹中下载得Cesium&#xff0c;移出到public文件夹下 4、将Cesium.js 以及样式文件widgets.css在index.html中引用 <!DOCT…

“器官短缺”将被打破 基因编辑猪成为人类的“二师兄”

器官移植被称为生命之灯。但是&#xff0c;受制于传统观念及对人体器官捐献意义的不了解&#xff0c;人体器官捐献的数量&#xff0c;还远远达不到需求。目前&#xff0c;全国有近30万的患者在等待器官移植&#xff0c;但每年只有近一万的患者能真正得到器官移植&#xff0c;缺…