Bio+Med+Vis Spring School Day 2

2021年5月18日,生物和医学可视化春季学校Bio+Med+Vis第二天,来自卑尔根大学的Helwig Hauser教授和Stefan Bruckner教授,德国图宾根大学的Michael Krone教授,哈佛大学的Johanna Beyer研究员,nanographics公司联合创始人和首席技术官Peter Mindek,Kitware公司联合创始人Will Schroeder博士以及加拿大不列颠哥伦比亚省癌症中心迈克尔-史密斯基因组科学中心的Martin Krzywinski讲授相关内容。

多尺度生物医学可视化(Multiscale BioMedical Visualization)

来自卑尔根大学的Helwig Hauser教授介绍了多尺度生物医学可视化的相关内容。尺度(scale)通常表明测量的尺度,如某些物品的测量单位是厘米、毫秒等。它可以用于表示规模,如大规模数据(large-scale data)。多尺度在生物医学中主要体现在空间、时间以及从解剖学到生理学等多个方面。在空间上,尺度可以从米变换到纳米;在时间上,尺度可以从皮秒跨越到年。Hauser教授通过分析生理学可视化中各个时间和空间尺度下的文章数量,发现尺度之间具有一定的正相关性(见图1)。

图1:生理学可视化相关论文研究对象时间尺度和空间尺度之间的关系。

Hauser教授从四个角度给出多尺度可视化的定义。多尺度可视化可以是处理大规模数据的技术方法,可以与多个不同尺度的数据集相关,可以是一个现象(如湍流)的多尺度模型,也可以是一种可视化的角度。接下来他针对每种情形给出一些具体的例子。面对大规模数据,我们需要使用一些智能技术。比如,Hadwiger等人[Hadwiger et al. TVCG 2012]通过优化内存访问和可视化来实现千万亿次量级显微镜数据的交互式体积探索;Hadwiger等人[Hadwiger et al. TVCG 2018]通过将体渲染这一三维问题尽可能地简化为二维问题实现快速体渲染。针对如何从长时间序列数据中找出相关事件的问题,Hauser教授指出可以通过focus+context技术以及聚类分割方法来解决。比如,SignalLens [Kincaid TVCG 2010]使用focus+context可视化进行缩放,并通过交互来定位感兴趣的特征;Duran等人[Duran et al. TVCG 2019]使用层次聚类和交互的方法处理特别长的模拟数据。针对多尺度抽象,他提出所看到应取决于观察尺度。比如,在可视化DNA纳米结构时,Miao等人[Miao et al. TVCG 2018]提供10个无缝的层次,并支持尺度的自适应修改;Abstractocyte [Mohammed et al. TVCG 2018]提供探索纳米级星形胶质细胞的抽象空间,该空间支持平滑插值,并会在最抽象时切换为二维显示。针对多尺度特征,在分析时,我们要确定特征提取的正确尺度。比如Pobitzer等人[Pobitzer et al. CGF 2011]针对湍流可视化提出一种尺度感知特征提取方法,旨在找到正确的解释尺度。层次多尺度可视化方法能展现除空间和时间外的更多内容。比如,Furmanová等人[Furmanová et al. TVCG 2020]提出的针对多体蛋白质复合物的集合可视化支持集合、复合物、蛋白质对、氨基酸对四个层次的分析。

最后,Hauser教授从介绍的例子中总结了经验教训。在生物医学中尺度的选择应当从观测者的角度和任务出发;同时选择多个尺度时,桥接较少的尺度相较之下更简单,不宜包含过多的尺度;在生物医学领域中,有很多可视化针对分子层级,也有针对器官层级的,但中尺度的可视化研究相对较少,这也许时一个未来的方向;多尺度可视化的研究需要团队合作,也希望有更多的团队参与到多尺度的研究中来。

针对生物与医学体数据的可视化,探索与分析(Visualization, Exploration, and Analysis of Biomedical Volume Data)

来自挪威卑尔根大学的Stefan Bruckner教授和德国图宾根大学的Michael Krone教授分别介绍了在医学方面与生物方面的体数据可视化探索分析方法。

首先是由Stefan Bruckner教授介绍在医学方面的体数据可视化成像技术,Stefan Bruckner教授从两种形式理解三维的体数据——许多二维数据的堆叠或者一种三维空间中分布,从而引出了他想讲述的从切片方法(slicing)和光线投射法(ray casting)可视化医学上的体数据。

切片方法是一种十分经典的体数据可视化方法,计算简单,需要调整的参数较少,但切片方法的一种重大的缺陷是,其无法较好地展示不在切片方向上的特征。最直接的切片方法是正交切片法(Orthogonal Slicing),只在坐标轴方向上进行切片,之后为了适应一些无法在正交与坐标轴方向上看清楚的特征,由出现了斜切片法(Oblique Slicing),除此之外,一种允许切片路径不是直线的曲线切片法(Curved Slicing)被发明(图2),用于跟踪血管等极其不规则的组织。

图2:曲线切片方法及其例子。

除了切片方法,利用光线投射法直接对体数据进行渲染也是一种常见的可视化技术。Stefan Bruckner教授介绍了光线投射法中两种具体的算法。第一是DVR(Direct Volume Rendering,图3),是指为体数据中的不同材质设置透明度,然后将他们的颜色按照其透明度在光线方向上叠加起来,第二种是MIP(Maximum Intensity Projection),在这种算法中,每个光线方向上只展示密度最大的部分。这两种算法各有优缺点,DVR算法能够直接看到体数据的整体情况,但往往需要精心调整各个材质的转换函数(transfer function)才能够取得较好的效果,而MIP参数设置简单,但由于其渲染是与距离无关的,可视化难以展现全部的空间特征。Stefan Bruckner教授提到,在实际的应用中,将两种方法结合使用才是更好的选择(图4)。


图3:光线投射法与直接体渲染。
图4:在实际的应用中,往往将DVR和MIP结合起来使用。

之后是Michael Krone教授介绍生物方面的体数据可视化,他主要针对分子表面可视化方面做了介绍。Michael Krone教授介绍了四种不同的分子表面模型(图5),分别是vdW(Van Der Waals Surface),SES(Solvent Excluded Surface),LES(Ligand Excluded Surface)和Gaussian(Surface),这些表面模型的含义分别是:

  1. Van Der Waals Surface: 将每一个原子视为球体,该球体的半径为其范德华(Van Der Waals Raidu)半径。
  2. Solvent Excluded Surface: 指的是一个最贴近分子,且能够被溶剂(溶剂被视为一个完美的球体)表面访问到的面。与Solvent Excluded Surface相对的是Solvent Accessible Surface(SAS),它是指能被溶剂球心访问到的最近表面。SES,SAS和vdW的关系可以见图6。
  3. Ligend Excluded Surface: 这个表面的定义时能被受体表面访问到的距离分子的最近面,由于受体不能被视为一个完美的球体,对该表面的求解会比SES复杂许多。
  4. Gaussian Surface: 将每一个原子设为一种密度场,其中每一个密度等值面都是一个Gaussian Surface。
图5:四种不同个的分子表面模型。
图6:vdW,SES,SAS的关系。

在这些分子表面中,Michael Krone教授着重介绍了对SES与LES的可视计算方法,在SES的计算中,为了计算出一个特定大小的球体所能接触到的最近的距离面,首先会对整个空间进行离散化的采样,例如就在下图的step1里,按照网格进行均匀的采样,然后对于每一个采样点,计算他到分子表面距离和solvent球体半径的关系,如果该采样点在分子内部(vwD半径内部),则将其值设为负数(红色),对于距离分子足够远的点(距离大于solvent球体半径),将其数值设置为较大的正值(蓝色),对于其他的采样点(黄色)我们需要继续细分。具体做法是,对于每一个黄色采样点,找出距离其最近的蓝色采样点,并将该距离作为这个黄色采样点的数值。这样我们就得到了一个空间中的标量距离场,最后一步则是在这个场上求值为0的等值面即可(图7)。

图7:求解SES。

对于LES,则要在SES算法上做修改,预处理出不同方向的受体模板,然后对不同的模板计算不同的距离长模板即可(图8)。

图8:求解LES。

可视化神经和神经连接 (Visualizing Neuroscience and Connectomics)

Johanna Beyer是来自哈佛大学可视计算实验室的一名研究员,她为我们介绍了神经学中的可视化知识。神经连接学是一门研究大脑中众多神经直接如何连接的学问,涉及到的数据类型包括神经的体数据,连接的网络数据以及元数据。体数据的数据粒度往往达到3至5nm一个像素,两个切片之间的距离在30-50nm,数据规模极大。

在体数据完成收集后,主要的研究工作包括对数据划分分割,以及可视化和分析两个部分。在对体数据进行划分时,对划分结果的可视化可以帮助纠正划分中的错误并帮助管理组织大型的数据项目。如何快速地进行校对是其中的一大挑战,Dojo [Haehn et al., IEEE Vis 2014]是一个半自动、合作式的进行标注校对的一个工作,通过在网页端交互式的进行校对。可视化同时还能帮助追踪正在划分的工作进程,Neuroblocks [AI-Awami et al. IEEE Vis 2015]使用基于像素的方法可视化不同神经组织的各个部分已经被划分和校对的任务进度(图9)。

图9:NeuroBlocks使用像素可视化的方法来分析校对的进程。

可视化神经连接数据时的主要目标是对数据进行探索,进行量化分析和连通性分析(图10)。主要的方法是通过体绘制,可视查询系统和网络可视化。通过调整体绘制的传递函数,我们可以看到数据中的不同结构;通过可视查询系统来支持专家便捷地交互分析数据,例如ConnectomeExplorer [Beyer et al., IEEE Vis 2013]通过动态查询来从大规模数据中定位特定感兴趣的组织;关注于神经中的突触组织,可以可视化不同组织之间的连接关系,通过树可视化的方式编码长神经上的连接节点(图11)。

图10:可视化在神经连接学中的角色。
图11:可视化神经之间的连接关系。

最后,Johanna Beyer总结道,在神经学和神经连接学中可视化扮演着很重要的角色,而面临的主要挑战就在数据规模,体现在计算量和可视复杂度上。

用程序生成的图像讲故事(Telling stories with Procedurally Generated Images)

Peter Mindek是可视化和叙事技术公司nanographics的联合创始人和首席技术官,带来了题为“用程序生成的图像讲故事”的讲座。使用程序而不是诸如手工等方式生成图像的优势有三方面:一是使用简单的数学公式就能创造非常复杂的图像,节省时间和精力;二是能够动态改变参数,生成渐进式的动画效果;三是能够展现非常细粒度的信息。

Mindek介绍了两种可视化故事叙述的工具,分别是CellPACK/CellVIEW和Marion/Vj。CellPACK/CellVIEW为生物大分子场景提供快速渲染,能够帮助结构生物学家建立由几十亿个原子组成结构的模型和交互式可视化。Marion/Vj支持在一张图像上展示多尺度的信息(图12),图像的生成包括结构创建、颜色分配、抽象以及加入动画四个步骤。结构创建的可以分为基因生成和脂质双分子层生成。颜色分配采用的是渐进式染色的方式,而且随着缩放尺度的变化,配色方案会的动态改变以突出不同尺度的信息。图像的不同抽象层次可以满足用户多元化的需求。而动画的形式可以用于展示复杂的过程。

图12:一张图像上的多尺度展示。

VTK简介(VTK: A Brief introduction)

专注于开发医学成像、图形学算法的开源软件公司Kitware的联合创始人Will Schroeder带来了VTK(The Visualization Toolkit)软件的教学课程。Schroeder从VTK的整体特点、可视化模型、数据实现、图形子系统、支持的应用等多个方面进行了详细的教学。

VTK使用的是面向对象的语言,底层由C++实现,支持Python、Java等多种语言接口,能够同时兼顾计算效率和编程灵活性。在应用方面,它支持3D/2D图形、计算几何、图像处理、体渲染和信息可视化。

VTK的可视化模型包括数据对象、算法和嵌入可视化流水线三部分。数据对象表示数据,能够提供访问接口以及计算衍生的信息。算法包括使用、变换和输出数据对象。嵌入可视化流水线即将数据转化为可视化图形。可视化流水线是一系列算法作用在数据对象上,生成几何,进一步使用图形渲染器渲染(图13)。

图13:VTK可视化流水线。

在数据实现方面(图14),vtkDataObject包含数据的实例,是数组的数组,不包含几何和拓扑结构,是所有数据对象的超集。vtkDataSet包含几何和拓扑结构,可以通过filter将数据对象转换为数据集。一个数据集的结构包括坐标点和连通点的细胞(多边形、连线和体素),子类包括vtkimageData, vtkRectlinearGrid, vtkPolyData, vtkStructureGrid和vtkUnstructureGrid。

图14:数据集类型。

VTK的图形子系统(图15)包括渲染窗口类、渲染器类、属性和几何信息类、光源类、摄像头类、Mapper类和数据变换类。在确定光源、摄像角度和Mapper函数后,渲染器读取属性和几何信息类的数据将图形画在渲染窗口。在图形子系统的基础上,VTK提供一些常用的组件,包括Spline,Contour,Plane和Sphere等,方便用户快速的调用。

图15:VTK图形子系统。

最后是对VTK支持的应用的介绍,包括图像计算、图像和体数据渲染、信息可视化等多个应用。

指导可视化设计(Mentoring Visualization Designs)

来自加拿大不列颠哥伦比亚省癌症中心迈克尔-史密斯基因组科学中心的Martin Krzywinski做了指导可视化设计的讲座。他从多个方面介绍如何改善你的设计。

目标指导设计。在设计可视化时,我们要明确绘制这些图表的原因,即想要通过图表表达的内容。设计应达到的目的应是你不需要告诉读者你想要呈现的东西,读者能从图表中自然地发现这些内容。比如在下面的例子中,最初的图表(图16左侧)展示了原始数据。然而,我们无法从中获取设计者想要表达的内容。如果我们首先高亮第二个峰,接着为第一个峰和第二个峰的轮廓分配不同的颜色,然后高亮出峰所覆盖的范围,并加入一个条形图来第二个峰与第一个峰在面积上的比例,那么读者就可以清楚地知道,我们希望通过这幅图让他们了解不同情况下第二个峰与第一个峰的面积比。

图16:通过高亮和加入额外图表来强调这幅图想传达的内容(第二个峰和第一个峰的面积比)。

格式塔法则。把图表视为一个整体,其中的各个部分需要很好地组织。在这个例子中,原始的图片(图17左侧)存在很多标记、边框和坐标轴等,它们会分散读者的注意力。我们可以把边框移除,重新组织标记和坐标轴,使用空白来分割不同的行列(中间)。这使得图表看上去更加简洁清晰。之后,由于不同的行已经存在标记,我们可以使用统一的颜色编码(右侧),进一步提升图表的外观。

图17:重新组织图表各部分,使其更为简洁、重点更为突出。

强调数据。强调图表中展示数据的部分,使其他元素在视觉上处于从属地位。在这个例子中,虽然原始图表(图18上方)的视觉编码选择已经非常出色,但它仍存在一些问题。比如,白色背景导致数据缺失的部分比较亮,这导致读者无法较好地区分不同的行列。我们可以通过填充背景色的方式使前景和背景形成对比(下方),以突出行列。此外,图例占据的空间较多,容易分散读者的注意力。这可以通过更改图例样式,将其整合到视图的主体部分来得到改善。

图18:通过填充背景色来区分行列;将图例整合以突出图表中的数据部分。

在图表内创建图例。大多数图例都不是必需的,标签可以插入到它们对应的视觉元素旁边。这个例子展示了四个分散的箱型图(图19左侧),其中存在重复了许多次的图例。我们可以把它们整合到一起(右侧),放在图表的开头部分。另外,图表中箱型图的样式也做了调整,使其更加突出。

图19:将重复的图例整合为一个。

共享轴和标签。不要通过粘贴复制来制作多面板图表,图表中所有的部分通常可以相互加强,共享元素。在这个例子中,坐标轴和标签被重复了三次(图20左侧)。此外,由于折线图没有对齐,我们很难比较不同图的趋势。我们可以提取和简化坐标轴和标签的公共部分,并且将不同折线图对齐,使其有更好的视觉效果。

图20:提取标签和轴中的公共部分,对齐不同折线图。

不要滥用隐喻。不要滥用复杂的、隐喻性质的符号来表达数据之间的关系,应该使用更直接与易懂的语言或者记号来传达数据的关系。一个好的隐喻应该是不掺多余的信息、直接简洁传达数据特征的(图21)。

图21:上图是一个好的隐喻,通过圆点和文字简洁直接传递肌肉的信息;下图是一个不好的隐喻,图中的肌肉符号与传递的信息不直接相关。

制作海报时要注意模板的选择,色彩的使用,应当为传达数据服务。例如当我们的数据图中使用颜色时,应该避免在模板的其他位置使用相同的颜色,并且数据相关的颜色应当更加突出(图22)。

图22:左图中数据图的颜色不突出,海报的文字标题太过分散注意力;右图中色彩为数据图服务,突出数据的重要性。

绘制表格时,减少网格线条的使用,利用空间的位置和深浅色可以在突出重要数据的同时,使得表格整体不显得臃肿。在我们传达信息的时候可以尽可能多的使用类似表格的形式,即使这个信息不完全是数据的(图23)。

图23:两种不同的展示方式,使用类似表格图表的方式,更能抓住重点。

要注重连贯性,在展示的过程中要注意展示的内容和展示形式的连贯性,要根据展示的形式而相应对展示的内容做出一些调整来适应,并帮助受众理解。

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>