我设计了an ad hoc library to write SVG images。我将它用于大型稀疏矩阵的图形可视化:两个基因组比较的同源矩阵。
在我的情况下,通常的同源矩阵是20 000 x 20 000,有大约30 000个散点(代表同源性),例如this homology matrix。
我的 ad hoc 库对于新的开发来说还不够成熟,我对3D.js库很感兴趣。我还发现图形库Cairo及其绑定pyCairo很有趣。
我的需求是:
输出矩阵的SVG,PNG或PDF图像的可能性。
当鼠标越过同源矩阵的一点时,我想显示具体的信息。
一个优点是能够放大矩阵区域,并在缩放阈值之上显示新细节。
我知道3D.js具有动态功能(对于稀疏矩阵的导航/缩放很有趣),但我想知道它是否能够足够快地显示我的数据。在应用程序中使用Cairo并重新计算不同缩放级别的图像可能是个更好的主意。
简而言之,我觉得我有两个解决方案:
使用3D.js脚本编写HTML文件,该脚本添加了同源矩阵和交互性的SVG元素。 3D.js非常适合从服务器共享矩阵。
编写专用应用程序(例如使用GTK)并使用Cairo在应用程序内绘制矩阵。每次用户与应用程序交互时,都会要求Cairo重新绘制,从而添加交互。
我错过了什么吗?你会使用哪种解决方案?