用于生成化学空间交互视图的python包。
faerun的Python项目详细描述
费伦(巨蟒)
faerun(python)基于用于交互式大数据呈现的3d webgl引擎和项目。它有助于创建化学数据(或化学空间)的交互式(2d和3d)html绘图。分子结构使用smilesdrawer呈现。
相关出版物:https://academic.oup.com/bioinformatics/article/34/8/1433/4657075" rel="nofollow">https://academic.oup.com/bioinformatics/article/34/8/1433/4657075
安装
可以使用pip安装faerun。
pip install faerun
为了在脚本中使用它,必须从包中导入类faerun
。
fromfaerunimportFaerun
安装就到此为止。
开始
创建绘图文档
为了打印,必须创建打印文档。为此,请创建类的实例faerun
fromfaerunimportFaerunf=Faerun(title='faerun-example',clear_color='#222222',coords=False,view='free')
在这里,我们设置绘图文档的标题
。这将用作html文档的标题。画布的透明颜色(即绘图的背景色)设置为'2222222'
(即深灰色的十六进制代码)。
通过设置coords=false
来禁用坐标轴的绘制,并且由于我们要绘制三维数据,参数view
被设置为'free'
以使用户能够平移和旋转绘图。
准备绘图数据
下一步是准备要绘制的数据。在本教程中,我们将使用numpy
importnumpyasnpx=np.linspace(0,12.0,326)y=np.sin(np.pi*x)z=np.cos(np.pi*x)c=np.random.randint(0,6,len(x))
然后,这些数据可以包装在dict
中。此外,faerun还支持pandas
包中的dataframe
。
在本例中,相同的值用于颜色c
和标签labels
data={'x':x,'y':y,'z':z,'c':c,'labels':c}
添加散射层
给定faerun
实例和数据,可以使用add\u scatter
方法创建散点图。
f.add_scatter('helix',data,shader='sphere',colormap='Dark2',point_scale=5.0,categorical=True,has_legend=True,legend_labels=[(0,'Zero'),(1,'One')])
数据被添加为名为helix的散射层。选定的着色器将数据点渲染为
大小为5.0的球体(具有漫反射和镜面照明),颜色来自matplotlib
colormap'dark2'
。
由于c
是分类的,所以参数categorical
设置为true
,否则matplotlib
将弄乱值。
最后,has_legend=true
将散点层添加到图例中,并且图例标签
是元组的
列表
,将值与标签关联。
保存为HTML
可以将faerun文档打印为带有附带javascript数据文件的html文档。
f.plot('helix')
这会将绘图保存为helix.html
和helix.js
。这些文件可以在本地打开,也可以托管在任何Web服务器上。
保存到faerun数据文件
faerun文档还可以导出为faerun数据文件,然后可以使用web
模块托管该文件。
importpicklewithopen('helix.faerun','wb+')ashandle:pickle.dump(f.create_python_data(),handle,protocol=pickle.HIGHEST_PROTOCOL)
完整示例
importpickleimportnumpyasnpfromfaerunimportFaerundefmain():f=Faerun(title='faerun-example',clear_color='#222222',coords=False,view='free')x=np.linspace(0,12.0,326)y=np.sin(np.pi*x)z=np.cos(np.pi*x)c=np.random.randint(0,2,len(x))data={'x':x,'y':y,'z':z,'c':c,'labels':c}f.add_scatter('helix',data,shader='sphere',colormap='Dark2',point_scale=5.0,categorical=True,has_legend=True,legend_labels=[(0,'Zero'),(1,'One')])f.plot('helix')withopen('helix.faerun','wb+')ashandle:pickle.dump(f.create_python_data(),handle,protocol=pickle.HIGHEST_PROTOCOL)if__name__=='__main__':main()
主持
简介
虽然可以很容易地创建小图并将其存储在单个html和javasc中然后将脚本文件完全加载到浏览器内存中,由于浏览器的限制,这对于较大的数据集是不可能的。 为了解决这个问题,faerun包含了一个小型http服务器(基于cherrypy)来向浏览器提供数据。
创建faerun数据文件
如"入门"中所示,faerun可以使用pickle将数据保存为.faerun
数据文件。
pip install faerun0
启动Faerun Web服务器
pip install faerun1
格式化标签
可以通过定义自定义的标签格式化程序来格式化标签。如果未向主机
函数提供
标签格式化程序,则使用默认值:
pip install faerun2
此默认值拆分'
上的标签值,以存储不同的标签并启用对显示的标签的不同值的搜索。有关详细信息,请参阅"搜索"。定义自定义标签格式化程序是直接的。例如,让我们在每个标签前面加一个字符串,然后添加它们的索引和层名称:
pip install faerun3
每当从服务器请求标签时,就会调用此函数。除了参数label
之外,参数index
和name
还可用于进一步自定义显示的标签,并表示数据点及其所属数据层的整数索引(例如,用add\u scatter
定义的名称)。
添加超链接
faerun允许将数据链接到任意url,双击数据点即可访问该url。为此,必须提供链接格式设置工具
。这与自定义标签类似。
pip install faerun4
搜索
faerun可视化的宿主版本也允许搜索。默认情况下,搜索会在标签中搜索完全匹配的项(此时无法进行子字符串或正则表达式搜索)。
但是,可以自定义搜索。如"格式化标签"中所述,可以通过使用'
分隔标签值来添加其他标签值。
pip install faerun5
上面的示例添加了一个附加标签值,默认情况下,搜索将使用第二个标签值。
如果有其他标签值,可以使用search_index
参数设置搜索索引。
添加信息/文档
由于可视化已准备好部署到可公开访问的web服务器上,因此可能需要添加文档。host
方法支持接受(标记格式)字符串的参数info
。此信息显示在生成的网页上。
pip install faerun6
屏幕截图按钮旁边会显示一个"信息"按钮,单击该按钮将打开一个包含信息的窗口。
完整示例
pip install faerun7
示例
此外,tmap的文档提供了大量使用faerun的示例。参见此处的
文档
费伦
pip install faerun8
创建一个faerun对象,该对象是一个空的打印曲面,其中 可以添加散点图等图层。
faerun的构造函数。
关键字参数
标题(
str
,可选)–绘图标题清除颜色(
str
,可选)–绘图的背景色坐标(
bool
,可选)–显示绘图中的坐标轴坐标轴的颜色(
str
,可选)–坐标轴的颜色坐标框(
bool
,可选)–在坐标轴周围显示一个框坐标勾号(
bool
,可选)–在坐标轴上显示勾号坐标网格(
bool
,可选)–扩展勾号以创建网格坐标刻度计数(
int
,可选)–每个轴显示的刻度数坐标刻度长度(
float
,可选)–坐标刻度的长度坐标轴偏移量(
浮点
,可选)–添加到坐标轴的偏移量x轴标题(
str
,可选)–x轴标题Y轴标题(
str
,可选)–Y轴标题显示图例(
bool
,可选)–是否显示图例图例标题(
str
,可选)–图例标题图例的方向(
str
,可选)–图例的方向('vertical'或'horizontal')图例数字格式(
str
,可选)–应用于图例中显示的数字的格式字符串视图(
str
,可选)–视图(前、后、上、下、左、右、自由)缩放(
浮点
,可选)–缩放坐标的大小(标准化)alpha_混合(
bool
,可选)–是否激活alpha混合(smoothcircle着色器需要)样式(
dict[str,dict[str,any]]
,可选)–应用于HTML元素的CSS样式
pip install faerun9
faerun的构造函数。
关键字参数
标题(
str
,可选)–绘图标题清除颜色(
str
,可选)–绘图的背景色坐标(
bool
,可选)–显示绘图中的坐标轴坐标轴的颜色(
str
,可选)–坐标轴的颜色坐标框(
bool
,可选)–在坐标轴周围显示一个框坐标勾号(
bool
,可选)–在坐标轴上显示勾号坐标网格(
bool
,可选)–扩展勾号以创建网格坐标刻度计数(
int
,可选)–每个轴显示的刻度数坐标刻度长度(
float
,可选)–t的长度他协调滴答声坐标轴偏移量(
浮点
,可选)–添加到坐标轴的偏移量x轴标题(
str
,可选)–x轴标题Y轴标题(
str
,可选)–Y轴标题显示图例(
bool
,可选)–是否显示图例图例标题(
str
,可选)–图例标题图例的方向(
str
,可选)–图例的方向('vertical'或'horizontal')图例数字格式(
str
,可选)–应用于图例中显示的数字的格式字符串视图(
str
,可选)–视图(前、后、上、下、左、右、自由)缩放(
浮点
,可选)–缩放坐标的大小(标准化)alpha_混合(
bool
,可选)–是否激活alpha混合(smoothcircle着色器需要)样式(
dict[str,dict[str,any]]
,可选)–应用于HTML元素的CSS样式
fromfaerunimportFaerun0
在绘图中添加分散层。
参数
名称(
str
)–层的名称数据(
dict
或dataframe
)–包含数据的python dict或pandas数据框
关键字参数
映射(
dict
,可选)–包含输入dict中的数据或pandas中的列名的键dataframe
colormap(
str
或colormap
,可选)–colormap的名称(也可以是matplotlib colormap对象)着色器(
str
,可选)–用于数据点可视化的着色器的名称点刻度(
浮点
,可选)–数据点的相对大小最大点大小(
int
,可选)–放大时数据点的最大大小雾强度(
浮动
,可选)–距离雾的强度饱和度限制(
浮动
,可选)–避免"灰色汤"的最小饱和度分类(
bool
,可选)–此散射层是否分类交互式(
bool
,可选)–此散射层是否交互式具有图例(
bool
,可选)–是否绘制图例图例标题(
str
,可选)–图例的标题图例标签(
dict
,可选)–将值映射到图例标签的dict最小图例标签(
联合[str,float]
,选项)–用于范围内(非分类)图例中最小值的标签max_legend_label(
union[str,float]
,option)–用于范围内(非分类)图例中最大值的标签
fromfaerunimportFaerun1
在绘图中添加一个树层。
参数
名称(
str
)–层的名称数据(
dict
或dataframe
)–一个python DIC包含数据的t或pandas数据框
关键字参数
映射(
dict
,可选)–包含输入dict或数据帧中数据的键颜色(
str
,可选)–树的默认颜色colormap(
str
或colormap
,可选)–colormap的名称(也可以是matplotlib colormap对象)雾强度(
浮动
,可选)–距离雾的强度点辅助对象(
str
,可选)–要与此树层关联的散射层的名称(坐标源)
fromfaerunimportFaerun2
返回定义包含数据的javascript对象的javascript字符串。
返回
定义包含数据的对象的javascript代码
返回类型
str
fromfaerunimportFaerun3
返回包含数据的python dict
返回
此faerun实例中定义的数据
返回类型
dict
fromfaerunimportFaerun4
从指定的输入映射创建n-bin离散颜色映射。
参数
n_colors(
int
)–要生成的离散颜色数
关键字参数
基本CMAP(
str
)–作为离散映射基础的颜色映射
返回
离散颜色映射
返回类型
彩色地图
fromfaerunimportFaerun5
从该绘图仪实例中获取最小和最大坐标
返回
最小和最大坐标
返回类型
元组
fromfaerunimportFaerun6
检查代码是否在ipython笔记本中运行。
返回
代码是否在ipython笔记本中运行
返回类型
bool
fromfaerunimportFaerun7
将数据打印到HTML/JS文件。
关键字参数
文件名(
str
,可选)–HTML/JS文件的名称路径(
str
,可选)–写入HTML/JS文件的路径模板(
str
,可选)–要使用的模板的名称
Web
fromfaerunimportFaerun8
启动承载faerun可视化的cherrypy服务器。
参数
路径(
str
)–指向Fearun数据文件的路径
关键字参数
标签类型(
str
)–标签的类型主题(
str
)–前端使用的主题标题(
str
)–HTML文档的标题标签格式化程序(
可调用[[str,int,str],str]
)–用于格式化标签的函数链接格式化程序(
可调用的[[str,int,str],str]
)–用于格式化链接的函数信息(
str
)–包含标记内容的字符串,在可视化中显示为信息图例(
bool
)–是否显示le< > > >图例标题(
str
)–图例的标题视图(
str
)–视图类型('front'、'back'、'top'、'bottom'、'right'、'left'或'free')搜索索引(
int
)–用于搜索的标签值中的索引
待办事项
- []添加绘制形状和颜色的功能
- [X]使输出模板化