当前位置: 首页 > news >正文

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

相关文章:

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提出了一个…...

java Servlet体育馆运营管理系统myeclipse开发mysql数据库网页mvc模式java编程计算机网页设计

一、源码特点 JSP 体育馆运营管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统采用serlvetdaobean,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。 java Servlet体育馆运营管理系…...

2、UML类图

UML(Unified Modeling Language)统一建模语言,用来进行设计软件的可视化建模语言。 2.1 类图概述 类类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及他们与其他类的关系等。类图是面向对象建模的主要组成部分。 2.…...

2023 年度合辑 | 出海大年的全球化产品洞察和服务动向

2023 年度合辑 年度关键词 出海&全球化 出海 & 全球化通信服务全面升维 出海大年,融云全球互联网通信云作为“全球化最佳基础设施”之一,发挥技术沉淀和实践积累带来的核心优势,结合市场变化对出海 & 全球化通信服务进行了全方位…...

python 基础笔记

基本数据类型 函数 lamda 匿名函数 成员方法 类 类与对象 构造方法 魔术方法 私有成员 私有方法 继承 注解 变量注解 函数注解 Union类型 多态 参考链接:黑马程序员python教程,8天python从入门到精通,学python看这套就够了_哔哩哔哩_bilib…...

[原创][R语言]股票分析实战[8]:因子与subset的关系

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…...

uniapp使用tcp和udp的区别和例子

在Node.js中,主要有三种socket:TCP,UDP和Unix域套接字。以下分别介绍这TCP/UDP的使用方法和示例: TCP socket TCP socket提供了可靠的、面向连接的通信流,适用于需要可靠传输的应用,例如Web浏览器的HTTP请…...

静态网页设计——个人图书馆(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1VN4y1q7cz/?vd_source5f425e0074a7f92921f53ab87712357b 源码:https://space.bilibili.co…...

APP出海需知——Admob广告变现竞价策略

越来越多的出海公司更加重视应用的广告变现,Admob因其提供丰富的广告资源,稳定的平台支持,被广泛采用接入。 Admob广告变现策略 1、bidding竞价策略 Bidding目前是Admob广泛推广的较成熟的变现方案,当竞价网络和瀑布流混合时&a…...

微服务实战系列之API加密

前言 随着一阵阵凛冽寒风的呼啸,新的年轮不知不觉滚滚而来。故事随着2023的远去,尘封于案底;希望迎着新年,绽放于枝头。在2024新岁启航,扬帆破浪之时,让烦恼抛洒于九霄,让生机蓬勃于朝朝暮暮。 …...

android apk文件的签名问题

android的APK文件实际上是一个jar文件。jar的意思是瓶、罐,那就意味着jar文件是一个用来存放android应用相关文件的容器。事实上,它也确实如此,它只是一个带或不带压缩的zip文件,当你把.apk后缀改成.zip后,就能对此进行…...

ATTCK视角下的信息收集:主机发现

目录 1、利用协议主动探测主机存活 利用ICMP发现主机 利用ARP发现主机 利用NetBIOS协议发现主机 利用TCP/UDP发现主机 利用DNS协议发现主机 利用PRC协议发现主机程序 2、被动主机存活检测 利用Browser主机探测存活主机 利用ip段探测主机存活 利用net命令探测主机存活…...

Redis 主从、哨兵和分片集群简单介绍

Redis 主从集群架构 单节点 redis 并发能力有上限,要进一步提高 redis 并发能力,就要搭建主从集群,实现读写分离 主从同步原理 Replicaition id:每台 master 机器都一个 repl_id,是数据集的表示,若 salv…...

群晖NAS+DMS7.0以上版本+无docker机型安装zerotier

测试机型:群晖synology 218play / DSM版本为7.2.1 因218play无法安装docker,且NAS系统已升级为7.0以上版本,按zerotier官网说法无法安装zerotier, 不过还是可以通过ssh终端和命令方式安装zerotier。 1、在DSM新建文件夹 用于存放zerotier脚…...

Pinia持久化存储插件 pinia-plugin-persist

1、pinia-plugin-persist 作用 pinia-plugin-persist是一个Pinia持久化存储插件,用于将Pinia状态存储到本地持久化存储中,例如localStorage或sessionStorage。 2、安装和使用pinia-plugin-persist 有时候需要把pinia中的数据持久化存储(存到…...

链家JAVA笔试题

单选题 1、在Java中下列关于自动类型转换说法正确的是( )。 A. 基本数据类型和String相加结果一定是字符串型 B. char类型和int类型相加结果一定是字符 C. double类型可以自动转换成int D. char int double “ ”结果一定是double 参考答案&am…...

当试图回复传入消息时,消息应用程序会闪烁

问题描述: Actual Results: Unable to reply for incoming message as Messaging app flickers and closes. Expected Results: User should be able to send reply for incoming messages. Reproduction Steps: Stay in home screen. Receive an incoming mes…...

Hubery-个人项目经历记录

研究生期间很有幸的进入到了崔老师的组,从此也就进入到了分析人体生理信号的领域,充满挑战的同时也充满了乐趣。借着CSDN整理一下近几年来参与的项目,这里蕴含着我各种美好的回忆,也作为一个展示自己的平台吧。博客中很多结果只给…...

Ubuntu18.04 安装 qt 5.15.2

一.安装qt 1.下载 在线安装包 使用国内镜像源在线安装QT(2023.3.25更新)_qt国内镜像-CSDN博客 2.安装 (1)QT库安装: 注意:我安装时 勾选 Qt Design studio 会导致报错,直接不勾选。 注意:Qtcreator 无…...

【Linux Shell】6. echo 命令

文章目录 【 1. 显示普通字符串 】【 2. 显示转义字符 】【 3. 显示变量 】【 4. 显示换行 】【 5. 显示不换行 】【 6. 显示命令执行结果 】 Shell 的 echo 指令用于字符串的输出。命令格式: echo string【 1. 显示普通字符串 】 #!/bin/bashecho "It is a …...

Dell 机架式服务器 - 高级定制服务

Dell 机架式服务器 - 高级定制服务 1. Dell Technologies2. 机架式服务器 - 高级定制服务2.1. Servers & Storage (服务器及存储) -> Servers2.2. Rack Servers (机架式服务器)2.3. Shop2.4. PowerEdge Rack Servers (PowerEdge 机架式服务器)2.5. PowerEdge R760 Rack …...

C++ 中关键字 Static

1、什么是static? static 是C中很常用的修饰符,它被用来控制变量的存储方式和可见性。由关键字static修饰类中成员,成为类的静态成员。类的静态成员为其所有对象共享,不管有多少对象,静态成员只有一份存于公用内存中。静态…...

系统学习Python——警告信息的控制模块warnings:警告过滤器-[重写默认的过滤器]

分类目录:《系统学习Python》总目录 Python应用程序的开发人员可能希望在默认情况下向用户隐藏所有Python级别的警告,而只在运行测试或其他调试时显示这些警告。用于向解释器传递过滤器配置的sys.warningoptions属性可以作为一个标记,表示是否…...

C++力扣题目-- 二叉树层序遍历

102.二叉树的层序遍历(opens new window)107.二叉树的层次遍历II(opens new window)199.二叉树的右视图(opens new window)637.二叉树的层平均值(opens new window)429.N叉树的层序遍历(opens new window)515.在每个树行中找最大值(opens new window)116.填充每个节点的下一个右…...

前端实现回车键触发搜索

前端实现回车键触发搜索 前言实现方法1. html里可以用 form 来实现2. 非form中的input 前言 搜索框是个常见的功能,除了用现有的ui组件库,有的时候必须要自己封装,所以涉及到点击按钮搜索和回车搜索都要实现 实现方法 1. html里可以用 for…...

k8s yaml文件pod的生命周期

Pod是k8s中最小限额资源管理组件,也是最小化运行容器化的应用的资源管理对象。 Pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合。 在一个pod当中运行一个容器是最常用的方式。 在一个pod当中同时运行多个容器,在一个pod当中…...

MPEG4Extractor

1、readMetaData 必须要找到 Moov box,找到 Mdat box或者 Moof box,并且创建了 ItemTable 大端 box 分为 box header 和 box content: box header由8个字节组成,前面四个字节表示这个box 的大小(包含这个头的8字节&a…...

我在工作一年时怎么都看不懂的编程写法。今天手把手教给你

作为一名程序员,你一定遇到或亲自写过这样的代码。有人将它形象的形容为shi山,或者被戏称为“面向保就业编程”。 以下面这个代码为例,其中的问题也显而易见,当越来越多的条件判断时,代码会变得非常臃肿,难…...

ThinkPHP5多小区物业管理系统源码(支持多小区)

基于 ThinkPHP5 Bootstrap 倾力打造的多小区物业 管理系统源码,操作简单,功能完善,用户体验良好 开发环境PHP7mysql 安装步骤: 1.新建数据库db_estate,还原数据db_estate.sql 2.修改配置文件:application/database.php 3.运…...

2024 年 API 安全:预测和趋势

随着技术以前所未有的速度不断进步,API(应用程序编程接口)安全性的复杂性也随之增加。随着 API 在现代应用程序和服务中的激增,组织将需要更好地了解其 API 环境以及 API 给运营带来的风险。 到 2024 年,预计几个关键…...

wordpress跳转外链/湖北权威的百度推广

在USART的发送端有2个寄存器,一个是程序可以看到的USART_DR寄存器,另一个是程序看不到的移位寄存器,对应USART数据发送有两个标志,一个是TXE发送数据寄存器空,另一个是TC发送结束。 当USART_DR中的数据传送到移位寄存器后,TXE被设…...

阿里 网站备案核验单/网站怎么做出来的

下载地址 https://www.consul.io/downloads windows上安装consul 下载完成后解压只有一个consul.exe文件,双击运行,查看版本号信息 开发模式启动 可以通过以下地址访问consul的首页 http://localhost:8500/ui/dc1/services...

wordpress mu安装/站点

以下是Python中通过cx_Oracle操作数据库的过程中我所遇到的问题总结,感谢我们测试组的前辈朱勃给予的帮助最终解决了下列两个问题:1)安装cx_Oracle会遇到的问题:在Windows下安装cx_Oracle不要尝试用pip install的方式了&#xff0…...

站长工具网站备案查询/百度云网盘官网

在开始理解Linux文件管理和目录类命令之前,有必要先说一下,关于操作系统在计算机中都做了哪些工作。0、操作系统的工作1、文件管理,增删改查2、目录管理3、进程管理4、软件安装5、运行程序6、网络管理7、设备管理本次笔记介绍的是文件管理和目…...

如何利用服务器做网站/windows优化大师是官方的吗

需要用到的命令 #查看挂载df -h#磁盘状态查看fdisk -l#磁盘分区fdisk /dev/adb#格式化磁盘或磁盘分区mkfs.ext4 /dev/adb#挂载磁盘mount /dev/adb /data直接说操作 fdisk -l 查看可挂载磁盘 df -h 查看已经挂在的磁盘 如果对磁盘做分区 fdisk /dev/vdb 输入m,可以查…...

wordpress vip会员主题/seo发贴软件

如图 8‑28所示为某公司的员工基本信息表,如何快速地统计各部门的男女比例? 图8‑28鸿商公司员工基本信息表 解决方案 创建数据透视表,使用数据透视表值显示方式中的“行汇总的百分比”。 操作方法 行汇总的百分比 步骤1 创建数据…...