Optima: 一个用于 Tapestri 平台的单细胞多组学数据分析的开源 R 包

分子条形码技术的最新进展使得在单细胞水平进行下一代转录组测序成为可能,例如10× Genomics Chromium和DropSeq。此外,CITE-seq 的出现使得可以在对单个细胞进行转录组分析的基础上同时对表面蛋白进行分析。同时,为了表征 DNA 和蛋白质谱,一个名为 Tapestri 的平台于 2017 年推出。该平台同时分析预先定义的 DNA 变异和细胞表面蛋白面板。通过利用从 Tapestri 平台收集的数据,研究人员可以识别异质组织内的独特细胞群。
软件背景

为了处理包含单细胞 RNA 和蛋白质数据的 CITEseq 数据,可以使用多个开源软件包,包括 Seurat、CITEfuse、iCluster、iCluster+等。为了在 Tapestri 平台中预处理原始测序数据,已经开发了 Tapestri Pipeline 软件(https://portal.missionbio.com/)用于生成变异调用和蛋白质表达计数。对于下游分析,Mission Bio 开发了一个 Python 库 Mosaic(https://missionbio.github.io/mosaic/)。此外,还有一款名为 Tapestri Insight 的 GUI 软件支持 Tapestri DNA 数据分析。然而,Tapestri Insights 的局限性在于它不支持蛋白质数据分析。Optima是一个用于 Tapestri 平台的开源 R 包,用于综合单细胞多组学数据分析。Optima 旨在简化 Tapestri 平台生成的多组学数据的预处理、分析和可视化工作流程。

输入数据

optima 包中的核心对象是 optima 对象。该对象存储单个生物样本的所有数据矩阵,包括 DNA(DNA 变体的扩增子测序数据)、CNV(拷贝数变异)和蛋白质。该对象还存储所有元数据,包括细胞条形码、扩增子名称面板以及用于跟踪标准化/过滤状态的元数据等。直接调用时,此对象会显示对象的汇总统计信息。经过 Tapestri 管道软件的初步预处理后,将生成一个 .h5 文件,应将其用作 optima 包的输入文件。可以使用readHdf5()函数将此文件作为 optima 对象读入 R 环境。

  1. DNA分析
    一旦创建了 optima 对象,就开始分析 DNA 测序数据。DNA 分析侧重于单核苷酸变异的变异等位基因频率。第一步是使用 filterVariant ()函数过滤 DNA 变异数据。从 .h5 文件导入几个因素,包括测序深度、基因型质量等,并用于此过滤步骤。如果太多基因座未通过 QC,则会删除该细胞/变异。过滤后,DNA 数据将用于细胞克隆识别。为了识别克隆,可以选择在getClones()函数中使用非监督聚类方法 dbscan。聚类结果将存储在 optima 对象中包含的细胞标签向量中。如果更喜欢使用领域知识来手动分配细胞标签,他们可以通过生成自己的标签并将其分配给 optima 对象中的细胞标签向量来实现。要在热图中可视化变异等位基因频率,可以使用drawHeatmap()函数。首先根据细胞标签对行进行排序,即可生成热图。要可视化不同细胞中单个变异的变异等位基因频率,可以使用plotVariantFeature()函数。基于 VAF 的颜色叠加将在降维图上生成。如果有兴趣获取变异的注释,可以使用annotateVariant()函数。通过从 MissionBio 的 API 获取数据,此函数将所有变异 ID 作为输入并返回包含变异详细信息的 R data.frame。

  2. CNV分析
    分析 DNA 测序数据后,下一步是分析 CNV。分析 CNV 数据的主要目标是计算每个 CNV 扩增子的倍性。输入基于每个 CNV 位点的对齐读取数量/计数。为了校正 CNV 计数的列向和行向变化,用户可以使用 normalizeCNV ()函数。标准化后,可以使用calculatePloidy()函数计算倍性。首先将参考细胞类型定义为二倍体细胞,然后使用其他细胞类型的标准化计数除以每个 CNV 扩增子的平均计数。数值代表每个细胞中每个扩增子的倍性。

  3. 蛋白质分析
    除了 DNA 测序数据,Tapestri 平台还量化细胞表面蛋白。当抗体与特定表面蛋白结合时,会生成蛋白质的原始数据。为了处理此类数据,optima在normalizeProtein()函数中使用中心对数比变换方法。数据转换后,可以选择使用降维方法通过reduceDim()函数在 2D 空间中可视化细胞。此外,可以使用drawHeatmap()函数在热图中可视化所有标准化蛋白质计数。要可视化不同细胞中单一蛋白质的标准化蛋白质表达,可以使用plotProteinFeature()函数。基于标准化蛋白质计数的颜色叠加将在降维图上生成。最后,通过使用细胞标签和findSignature()函数,可以识别与所有其他细胞类型相比在一种细胞类型中表达不同的蛋白质。这种比较是使用 t 检验完成的。结果是一个 R 数据框,其中包含使用 Benjamini–Hochberg FDR 方法调整多重比较后按最小P值排序的所有蛋白质。

分析结果

一个 optima 对象存储一个生物样本的所有数据矩阵。在此示例数据集中,四个细胞混合为一个生物样本。使用readHdf5()函数将此数据集导入 R 后,将存储为 optima 对象。调用时,此对象显示汇总统计信息。更具体地说,它包含 1313 个细胞、27 719 个变体、127 个 CNV 和 10 个蛋白质。用户可以提供从他们的 Tapestri 管道输出生成的自己的 .h5 文件。使用四细胞混合物示例,使用 filterVariant ()函数执行过滤。我们从 1313 个细胞开始,过滤后剩下 1271 个细胞。同时,过滤后保留了 29 个变体。使用get Clones()函数识别细胞克隆后,在数据集内识别了六个簇/细胞克隆。在 optima 对象中的细胞标签向量中,每个细胞克隆都用数值 1、2、3、4、5 和 6 标记。然后使用这些信息通过 DNA 测序数据生成热图(图 1B)。对于 CNV 分析,使用normalizeCNV()函数计算标准化计数,并使用calculatePloidy()函数计算倍性。对于calculatePloidy()函数的应用,细胞类型“1”被设置为二倍体细胞类型。为了可视化每个扩增子的倍性,我们生成了散点图(图 1C)。所有细胞类型 1 扩增子的倍性值都是 2。这是因为细胞类型 1 被指定为二倍体细胞。对于细胞类型 2,倍性范围在 0 到 3 之间。蛋白质分析从使用norma lizeProtein()函数进行数据标准化开始。然后使用标准化的蛋白质计数在二维空间中投影细胞,并根据每个数据点的细胞类型标签对其进行着色。目视检查图 1D后,可以发现存在四个突出的簇,每个簇都显示出具有相同颜色的点占主导地位,表示每个簇内的细胞类型分配一致。通过将一种细胞类型与其他细胞类型的蛋白质表达水平进行比较,findSignature()函数会返回一个差异表达蛋白质表,并对多重比较进行了 p 值调整(图 1E)。为了可视化“CD11b”蛋白的表达水平,plotProteinFeature()函数。该函数返回一个散点图,其中所有细胞投影在二维空间中。每个细胞根据 CD11b 蛋白表达水平着色(图 1F)。

在这里插入图片描述

欢迎大家留言讨论,如果对结果或者方法实现有疑问的可以联系管理员进行解决:kriswcyYQ。

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

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

相关文章

ubuntu那些ppa源在哪

Ubuntu中的 PPA 终极指南 - UBUNTU粉丝之家 什么是PPA PPA 代表个人包存档。 PPA 允许应用程序开发人员和 Linux 用户创建自己的存储库来分发软件。 使用 PPA,您可以轻松获取较新的软件版本或官方 Ubuntu 存储库无法提供的软件。 为什么使用PPA? 正如…

添加动态云层

<template> <div class"topbox"> xx卫星管理 </div> <div class"selectbox"> <div class"title"> 卫星列表 </div> <el-table :data"tableData" style"width: 100%;height:230px;" …

亚信安慧AntDB-M负载均衡

负载均衡是分布式系统中常用的技术&#xff0c;主要是将工作任务均衡分布到系统的各个资源点上&#xff0c;可以充分利用系统资源。 AntDB-M分布式内存数据库节点角色可以分为管理节点(MN)、计算节点(CN)和数据节点(DN)三种。管理节点收到客户端连接请求后&#xff0c;会经由负…

IEEE官方列表会议 | 第三届能源与环境工程国际会议(CFEEE 2024)

会议简介 Brief Introduction 2024年第三届能源与环境工程国际会议(CFEEE 2024) 会议时间&#xff1a;2024年12月2日-4日 召开地点&#xff1a;澳大利亚凯恩斯 大会官网&#xff1a;CFEEE 2024-2024 International Conference on Frontiers of Energy and Environment Engineer…

elementPuls 表格反选实现

真的在网上搜了很多资料发现根本实现不了反选 最下面有示例 然后去看了下官网 发现官网有教你怎么选中某个值的方法 官网中的”多选“ 官网地址 <template><el-tableref"multipleTableRef":data"tableData"style"width: 100%"selectio…

MySQL 和 SQL Server 中的连表更新 UPDATE JOIN 写法比较

MySQL 和 SQL Server 中的连表更新 UPDATE JOIN 写法比较 一、前言1. MySQL 写法1.1 解释 2. SQL Server 写法2.1 解释 二、总结 一、前言 在关系型数据库管理系统&#xff08;RDBMS&#xff09;中&#xff0c;使用 UPDATE 语句进行表格更新是非常常见的操作。特别是当需要根据…

【C#】visual studio打包winForm(依赖DLL)为安装程序exe

0.简介 IDE&#xff1a;VS2022 平台&#xff1a;C# .NetFramework4.7 WinForm界面 有GDAL、EEplus库的依赖&#xff0c;所以在其他未安装环境的电脑中功能无法使用。 1. 安装 1.1 运行文件 在VS扩展中选择管理扩展&#xff0c;Microsoft Visual Studio Installer Projects …

如何合规与安全地利用专业爬虫工具,构建企业数据竞争优势

摘要&#xff1a; 本文深入探讨了在当今大数据时代&#xff0c;企业如何通过合规且安全的方式运用专业爬虫工具&#xff0c;有效收集并分析海量信息&#xff0c;进而转化为企业独有的数据优势。我们不仅会介绍最佳实践&#xff0c;还会讨论关键技术和策略&#xff0c;帮助企业…

java实现迭代(在大数据量时要比递归效率更高)

在项目中有个需求&#xff1a;查找指定机构下所有的子机构&#xff0c;之前使用的递归方式&#xff0c;效率相差很多 比如之前写的一个递归的方法&#xff1a;https://blog.csdn.net/qq_33651286/article/details/140539728 在Java中&#xff0c;递归和迭代是两种常用的算法实…

JavaScript 迭代器

在JavaScript中&#xff0c;迭代器是一种允许我们遍历集合中元素的对象。迭代器对象具有一个next()方法&#xff0c;该方法返回value和done。value是当前迭代的值&#xff0c;done属性是一个布尔值&#xff0c;表示是否到达了集合的末尾。 迭代器协议 一个迭代器对象必须具备以…

【网络】计算机网络基础——计算机网络背景和发展、认识网络协议、OSI七层模型、TCP/IP四层模型、网络的传输

文章目录 Linux网络1. 计算机网络背景和发展2. 认识网络协议3. OSI七层模型3.1 物理层3.2 数据链路层3.3 网络层3.4 传输层3.5 会话层3.6 表示层3.7 应用层 4. TCP/IP四层模型5. 网络的传输 Linux网络 1. 计算机网络背景和发展 开始的计算机都是独立模式&#xff08;计算机之间…

谷歌新的网站索引策略:将来可能不再为您的网站编制索引

10 年前&#xff0c;在 WordPress 上推出新博客的同时&#xff0c;Google 上的内容几乎是即时索引。 搜索引擎试图尽快向用户提供所有信息&#xff0c;这对内容创作者也有利。 然而&#xff0c;随着时间的推移&#xff0c;情况发生了变化&#xff0c;现在谷歌在索引方面变得极…

网络安全之信息收集阶段攻击和防护手段(一)

一、信息收集 前言&#xff1a;社工钓鱼往往是攻击者最喜欢的方式&#xff0c;攻击者一般会伪装成求职者、修改邮箱名称伪造办公邮件&#xff0c;诱导意识薄弱的员工进行下载恶意文件或恶意链接&#xff0c;链接往往会通过名称遮掩真实的IP地址。 攻击方&#xff1a;攻击者通…

Maven打包时将本地 jar 加入 classpath

在使用 maven 编译项目时&#xff0c;我们有时候会需要引入本地的 jar 包作为依赖&#xff08;不部署到本地仓库&#xff09;&#xff0c;一般会使用 scope 为 system 的标签来引入&#xff0c;如下所示&#xff1a; <dependency><groupId>com.example</groupI…

【解决】ubuntu20.04 root用户无法SSH登陆问题

Ubuntu root用户无法登录的问题通常可以通过修改‌SSH配置文件和系统登录配置来解决。 修改SSH配置文件 sudo vim /etc/ssh/sshd_config 找到 PermitRootLogin 设置&#xff0c;并将其值更改为 yes 以允许root用户通过SSH登录 保存并关闭文件之后&#xff0c;需要重启SSH服务…

用uniapp 及socket.io做一个简单聊天app 2

在这里只有群聊&#xff0c;二个好友聊天&#xff0c;可以认为是建了一个二人的群聊。 const express require(express); const http require(http); const socketIo require(socket.io); const cors require(cors); // 引入 cors 中间件const app express(); const serv…

6 Go语言的常量、枚举、作用域

本专栏将从基础开始&#xff0c;循序渐进&#xff0c;由浅入深讲解Go语言&#xff0c;希望大家都能够从中有所收获&#xff0c;也请大家多多支持。 查看相关资料与知识库 专栏地址:Go专栏 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;大家一起学习&#xff0c;…

【Python】主字符串中查找子字符串:滑动窗口、正则表达式、递归检查

一、题目 In this challenge, the user enters a stirng and a substring. You have to print the number of times that the substring occurs in the given string. String traversal will tack place from left to right, not from right to lef. NOTE: String letters ar…

Leetcode—426. 将二叉搜索树转化为排序的双向链表【中等】Plus

2024每日刷题&#xff08;148&#xff09; Leetcode—426. 将二叉搜索树转化为排序的双向链表 实现代码 /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node() {}Node(int _val) {val _val;left NULL;right NULL;}Node(int _val, Nod…

R包:plot1cell单细胞可视化包

介绍 plot1cell是用于单细胞数据seurat数据对象的可视化包。 安装 ## You might need to install the dependencies below if they are not available in your R library. bioc.packages <- c("biomaRt","GenomeInfoDb","EnsDb.Hsapiens.v86&qu…