文献阅读:Viv:在 web 上多尺度可视化高分辨率多重生物成像数据
文献介绍

「文献题目」 Viv: multiscale visualization of high-resolution multiplexed bioimaging data on the web
「研究团队」 Nils Gehlenborg(美国哈佛医学院)
「发表时间」 2022-05-11
「发表期刊」 Nature Methods
「影响因子」 47.9
「DOI」 10.1038/s41592-022-01482-7
摘要
高度多重成像技术的进步使得能够对健康和患病状态下的复杂组织进行全面分析,从而促进了在空间分辨、亚细胞分辨率下对基础生物学和人类疾病的研究。尽管生物成像的快速创新带来了重大的科学价值,但没有统一的可交互操作标准的技术,限制了结果的分析和共享。采用社区设计的下一代文件格式 (next-generation file formats, NGFF) 是促进大规模生物成像交互操作性的拟解决方案。本文作者介绍了 Viv(https://github.com/hms-dbmi/viv),一个开源生物成像可视化库,直接在 web 上支持 OME-TIFF 和 OME-NGFF。Viv 通过消除对服务器端渲染的依赖,解决了大多数基于 web 的生物成像查看器的一个关键限制,提供了一个灵活的工具包,无需安装软件即可在移动和桌面设备上浏览多 TB 数据集。
研究结果
Viv 的功能与流行的桌面生物成像应用程序更相似,不同于相应的 web 替代品(Supplementary Note 1)。大多数 Web viewers 需要将大型二进制数据文件预先转换为渲染的图像(PNG 或 JPEG),以便在浏览器客户端中显示。两种现有方法执行此步骤(服务器端渲染),但在渲染发生时间以及一次转换多少二进制数据方面有所不同(Fig. 1
)。离线选项在将应用程序部署给用户之前执行所有渲染,这意味着所有通道分组和数据转换都是固定的,无法通过用户界面进行调整。在线选项支持按需、用户定义的渲染,但在探索数据转换时会引入延迟,并且需要主动维护复杂的服务器基础设施。这两种方法都没有提供灵活的解决方案来直接查看大型公共数据存储库中以开放格式保存的数据集,并且服务器端渲染引入的瞬态数据表示抑制了与其他可视化和分析软件的互操作性。

DT 表示数据转换为图像的位置。右栏显示 Viv 灵活的客户端渲染的子集,包括 multiscale 2D pyramids、magic lenses、3D volumes via raycasting。
Viv 实现纯粹的客户端渲染,将浏览器与服务器解耦,同时仍然提供按需多通道渲染的灵活性。现有的 Web viewers 也利用图形处理单元 (GPU) 加速渲染,但通常针对单通道体积数据集进行定制,最重要的是,缺乏为现有或新颖应用程序重用和组合功能的能力。相比之下,Viv 的模块化允许重新调整和扩展核心功能。该库由两个主要组件组成:(i) OME-TIFF 和 OME-NGFF 的数据加载模块,以及 (ii) 可在用户设备上呈现全位深度主要数据的可配置 GPU 程序。
Viv 的数据加载组件负责通过 HTTP 从二进制文件中获取和解码压缩通道数据的原子“chunks”。Viv 以 OME-TIFF 和 OME-NGFF 为目标,以满足生物成像界的多样化需求,并促进可交互操作的开放标准的使用。尽管 OME-TIFF 更为普遍,但其二进制布局和 metadata 模型限制太大,无法有效表示大容量和高维数据集。OME-NGFF 旨在解决这些限制,并且由于底层的多维 Zarr 格式 (https://doi.org/10.5281/zenodo.3773450),可以从云本地访问。Zarr 提供对各个 chunks 的直接访问,而 TIFF 需要寻求从不同平面访问 chunks,在读取具有大 c、t 或 z 维度的数据集时会引入较长的延迟。与基因组学中流行的方法类似,作者建议对 OME-TIFF 建立索引以改善随机 chunks 检索时间。作者的方法 Indexed OME-TIFF 提高了读取效率,并作为 OME-TIFF 的可选扩展实现 (https://doi.org/10.6084/m9.figshare.19416344)。
Viv 的图像层协调获取数据 chunks 和 GPU 加速渲染。所有渲染都发生在客户端 GPU 上,允许连续即时更新颜色映射、不透明度、通道可见性和仿射坐标变换等属性,而无需额外的数据传输。库用户可以使用自定义 WebGL 着色器修改渲染,这是 Viv 用来实现应用本地数据转换的 'magic lenses' 的功能:例如,重新缩放亮度或过滤特定通道。
由于所有渲染都转移到浏览器,Viv 不像以前的 Web viewers 那样依赖服务器来获取高度复用和多尺度的图像,从而使其灵活且能够嵌入到各种应用程序中 (https://doi.org/10.6084/m9.figshare.19416401)。作者通过 Imjoy 将 Viv 集成到 Jupyter Notebooks (https://github.com/hms-dbmi/vizarr) 中,以实现远程人机交互多模式图像配准工作流程和直接浏览 OME-NGFF 图像。Viv 也是 Vitessce 单细胞可视化框架成像组件的基础,展示了其与包括成像模式在内的其他模块化工具集成并为其提供动力的能力。最后,作者开发了 Avivator (http://avivator.gehlenborglab.org), 这是一个独立的图像查看器,展示了 Viv 丰富的功能集。
凭借其可扩展性和最低的部署要求,Viv 提供了一个新颖的工具包,可用于构建各种可重复使用的生物成像应用程序。它最适合显示高度多重和多尺度数据集的 2D 可视化,但也支持通过光线投射进行 3D 可视化。作者并不期望 Viv 取代现有的基于 web 的查看器,而是引导新一代基于 web 的可视化和分析工具来补充同样围绕可交互操作标准构建的桌面软件。
注:本文为个人学习笔记,仅供大家参考学习,不得用于任何商业目的。如有侵权,请联系作者删除。

本文由 mdnice 多平台发布
相关文章:

文献阅读:Viv:在 web 上多尺度可视化高分辨率多重生物成像数据
文献介绍 「文献题目」 Viv: multiscale visualization of high-resolution multiplexed bioimaging data on the web 「研究团队」 Nils Gehlenborg(美国哈佛医学院) 「发表时间」 2022-05-11 「发表期刊」 Nature Methods 「影响因子」 47.9 「DOI…...
SpringBoot整合Logback日志框架
Logback 是一个灵活而高效的日志框架,它是由 Ceki Glc 开发的,也是 Log4j 的创建者之一。Logback 旨在成为 Log4j 的替代品,并提供了一系列强大的功能和性能改进。 以下是 Logback 的一些主要特点和功能: 模块化结构:…...

知识图谱与人工智能:携手共进
知识图谱与人工智能:携手共进 一、引言:知识图谱与人工智能的融合 在这个数据驱动的时代,知识图谱与人工智能(AI)之间的融合不仅是技术发展的必然趋势,也是推动各行各业创新的关键。知识图谱,作…...

全栈的自我修养 ———— react实现滑动验证
实现滑动验证 展示依赖实现不借助create-puzzle借助create-puzzle 展示 依赖 npm install rc-slider-captcha npm install create-puzzleapi地址 实现 不借助create-puzzle 需要准备两张图片一个是核验图形,一个是原图------> 这个方法小编试了后感觉比较麻烦…...
<<、>>和>>>
1.左移操作符(<<): 左移操作符将数字的二进制表示向左移动指定的位数。右侧空出的位用0填充。左移操作相当于乘以2的幂。 例如: int num 4; // 二进制表示为 0100 int shifted num << 1; // 结果为 8,二进制表示为 10002.带…...

【C++进阶】RAII思想&智能指针
智能指针 一,为什么要用智能指针(内存泄漏问题)内存泄漏 二,智能指针的原理2.1 RAII思想2.2 C智能指针发展历史 三,更靠谱的shared_ptr3.1 引用计数3.2 循环引用3.3 定制删除器 四,总结 上一节我们在讲抛异…...
探索量子计算:打开未来技术的大门
在科技领域,每一次技术革命都能开启新的可能性,推动人类社会进入一个新的时代。当前,量子计算作为一种前沿技术,正引领着下一轮科技革命的浪潮。本文将深入探索量子计算的奥秘,解析其工作原理,并通过一个简…...

C++11 设计模式2. 简单工厂模式
简单工厂(Simple Factory)模式 我们从实际例子出发,来看在什么情况下,应用简单工厂模式。 还是以一个游戏举例 //策划:亡灵类怪物,元素类怪物,机械类怪物:都有生命值࿰…...

RabbitMQ-死信队列常见用法
目录 一、什么是死信 二、什么是死信队列 编辑 三、第一种情景:消息被拒绝时 四、第二种场景:. 消费者发生异常,超过重试次数 。 其实spring框架调用的就是 basicNack 五、第三种场景: 消息的Expiration 过期时长或队列TTL…...

2024/4/14周报
文章目录 摘要Abstract文献阅读题目创新点CROSSFORMER架构跨尺度嵌入层(CEL)CROSSFORMER BLOCK长短距离注意(LSDA)动态位置偏置(DPB) 实验 深度学习CrossFormer背景维度分段嵌入(DSW)…...

MySQL 社区版 安装总结
很早就安装过MySQL,没有遇到过什么问题,直接next就行了,这次在新电脑上安装却遇到了一些问题,记录一下。 安装的是MySQL社区版,下载地址是www.mysql.com,进入后选择DOWNLOAD页面,选择MySQL Com…...
二叉排序树的增删改查(java版)
文章目录 1. 基本节点2. 二叉排序树2.1 增加节点2.2 查找(就是遍历)就一起写了吧2.3 广度优先遍历2.4 删除(这个有点意思)2.5 测试样例 最后的删除,目前我测试的是正确的 1. 基本节点 TreeNode: class TreeNode{pri…...
linux下coredump问题的定位分析方法
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 参考:https://blog.csdn.net/m0_73698480/article/details/130077852 最近定位了一段时间linux下的崩溃问题,又收集了一些思路,特整理记录一下。 常见coredump定位方法是:…...

第十届蓝桥杯省赛真题(C/C++大学B组)
目录 试题 A: 组队 试题 B: 年号字串 试题 C: 数列求值 试题 D: 数的分解 试题 E: 迷宫 试题 F: 特别数的和 试题 G:完全二叉树的权值 试题 H:等差数列 试题 I:后缀表达式(不一定对) 试题 J:灵能…...

Scrapy 爬取m3u8视频
Scrapy 爬取m3u8视频 【一】效果展示 爬取ts文件样式 合成的MP4文件 【二】分析m3u8文件路径 视频地址:[在线播放我独自升级 第03集 - 高清资源](https://www.physkan.com/ph/175552-8-3.html) 【1】找到m3u8文件 这里任务目标很明确 就是找m3u8文件 打开浏览器…...
LVGL简单记录
1、 vs中代码旁边有个小锁删除git 2、Visual Studio 试图编译已删除的文件, 如果这个文件也是你不再需要编译的文件,且已经从文件系统中删除,你需要从 .vcxproj 文件中移除或者注释掉这一行,以停止Visual Studio尝试去编译一个不…...

计算机网络——ARP协议
前言 本博客是博主用于复习计算机网络的博客,如果疏忽出现错误,还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结,讲的非常好。 可以先去看一篇视频,再来参考这篇笔记(或者说直接偷走)。 …...

【C++]C/C++的内存管理
这篇博客将会带着大家解决以下几个问题 1. C/C内存分布 2. C语言中动态内存管理方式 3. C中动态内存管理 4. operator new与operator delete函数 5. new和delete的实现原理 6. 定位new表达式(placement-new) 1. C/C内存分布 我们先来看下面的一段代码和相关问题 int global…...

深入理解计算机网络分层结构
一、 为什么要分层? 计算机网络分层的主要目的是将复杂的网络通信过程分解为多个相互独立的层次,每个层次负责特定的功能。这样做有以下几个好处: 模块化设计:每个层次都有清晰定义的功能和接口,使得网络系统更易于设…...

亚马逊云科技CTO带你学习云计算降本增效秘诀
2023亚马逊云科技一年一度的重磅春晚--Re:invent上有诸多不同话题的主题Keynote,这次小李哥带大家复盘来自亚马逊CTO: Wener博士的主题演讲: 云架构节俭之道1️⃣节俭对于云计算为什么重要? ▶️企业基础设施投入大,利用好降本策略可以减少巨…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...

图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...