汇报人:研究生二年级 白海龙
今天向大家介绍一个实用的可视化工具——ChemPlot。该工具已发表在权威杂志《Chemistry—Methods》(IF: 6.2,Q1),题为“ChemPlot, a Python Library for Chemical Space Visualization.”。可视化化学空间通过将信息简化到人类可感知的层面,简化了分子数据集的分析,在分子设计中起着重要作用,包括化学库设计、高通量筛选、多样性分析和离群点检测。我们在此介绍ChemPlot,它使用户能够以静态和交互方式可视化分子数据集的化学空间。ChemPlot提供结构相似性和定制相似性方法,以及三种不同的降维方法:PCA、t-SNE和UMAP。ChemPlot是首个通过整合定制相似性解决活性/性质悬崖问题的可视化软件。通过定制相似性,化学空间在考虑目标性质的情况下以监督方式构建。此外,提出了一个指标,距离性质关系分数,用于量化在可视化化学空间中相似分子的性质差异。ChemPlot可以通过Conda或PyPI(pip)安装,并且可以免费访问其网络应用。
Installation
ChemPloy是一个开源Python库,其源代码存储在GitHub库中。除了从存储库直接安装之外,用户还可以通过Conda和PyPI包管理环境安装已部署的包。ChemPt在Python框架上运行,可以使用以下命令中的任何一个,通过命令提示符从两个备选源安装它。
conda install -c conda-forge chemplot
or
pip install chemplot
Visualization
要可视化数据集的化学空间,用户首先需要构建一个Plotter对象。该对象可以从包含化合物SMILES或InChI表示的分子数据集中创建。下面的代码展示了一个从SMILES数据进行t-SNE绘图的基本示例:
from chemplot import Plotter
cp=Plotter.from_smiles(smiles_list)
cp.tsne()
cp.visualize_plot()
图1a和c展示了通过t-SNE方法(使用默认参数)生成的β-分泌酶1(BACE)和脂溶性数据集的化学空间的代表性可视化。
Target Coloring
ChemPlot 允许根据给定的目标属性对分子进行着色。给定的属性会自动被分类为数值型或类别型变量,并据此应用着色。用户也可以自行指定目标属性的类型。以下代码示例展示了在创建 Plotter 对象时如何应用目标属性的赋值。
cp=Plotter.from_smiles(smiles_list,
target=target_list,
target_type=“C")
图1b和d展示了通过t-SNE方法生成的BACE(类别型)和脂溶性(数值型)数据集的化学空间的代表性可视化,并根据目标属性进行着色。
图1. 通过ChemPlot可视化的BACE(a和b)和脂溶性(c和d)数据集。在a和c中,所有数据点以单一颜色显示,而在b和d中,数据点根据目标的值进行着色。在b中,目标属性是类别型值,因此数据点根据目标的类别进行着色。在d中,目标属性是连续值,因此数据点根据预定义的颜色映射表中的相应颜色进行着色。类别颜色和渐变区间的对应值显示在图例中。
Dimensionality Reduction
在ChemPlot中,可以应用三种不同的降维方法(PCA、t-SNE和UMAP)将分子映射到二维空间。图2展示了通过应用这三种方法生成的血脑屏障通透性(BBBP)和AqSolDB数据集的代表性可视化。PCA提供的是给定维度的线性投影,而t-SNE和UMAP则通过聚类和根据分子的局部邻域定位分子,应用非线性二维映射。PCA图展示了每个成分的解释方差,这些方差可以为降维空间的总覆盖度提供有价值的信息。例如,如图2所示,使用结构相似性方法时,PCA的方差较低。对于t-SNE和UMAP的参数,用户可以在以下两种可选方式之间选择:i)采用ChemPlot自动计算并分配的优化值,ii)自行指定参数。
图2. 通过结构相似性可视化的BBBP(a、b和c)和AqSolDB(d、e和f)数据集。在a和d中,维度通过PCA降维,第一主成分和第二主成分分别用作水平和垂直坐标轴。每个成分的解释方差显示在括号中。在b和e中,维度通过t-SNE降维。在c和f中,维度通过UMAP降维。
Molecular Similarity
ChemPlot 实现了两种分子相似性方法:结构相似性和定制相似性。结构相似性方法使用生成的分子子结构,并在评估相似性时忽略目标属性。结构相似性方法基于分子本身的子结构来评估分子之间的相似性。它通过比较分子中存在的基本结构单元(如环、键、官能团等)来判断分子之间的相似度,而不考虑任何外部的目标属性(如生物活性、溶解度等)。而定制相似性方法则仅使用与目标属性相关的描述符(如与药物活性、毒性等相关的特征)。也就是说,它只使用与目标属性(如药理性质)有相关性的特征来评估分子之间的相似性。因此,结构相似性生成的是更为通用的、多用途的化学空间,而定制相似性则生成对特定属性敏感、聚焦的化学空间。图2和图3分别展示了使用这两种相似性方法对同一数据集进行可视化的结果,展示了结构相似性和定制相似性方法的不同影响。在ChemPlot中,用户可以在创建Plotter对象时指定相似性类型。当提供目标列表时,默认的相似性类型为“定制”(tailored),否则默认为“结构”(structural)。以下代码展示了如何进行相似性类型的指定。
cp=Plotter.from smiles(smiles_list,
target=target_list,
sim_type=“structural")
图3. BBBP(a、b和c)和AqSolDB(d、e和f)数据集以与图2相同的布局进行可视化,但使用的是定制相似性。与结构相似性相比,在通过PCA降维的图中,解释的方差更高,但空间的利用效率较低。而在通过t-SNE和UMAP降维的图中,各个聚类之间的分离更加清晰。
Clustering
ChemPlot 具有在降维化学空间中对分子进行聚类的功能。聚类的总数由n_cluster 参数定义。在可视化中,包含一个图例,显示每个聚类的分配颜色、聚类编号以及该聚类在整个数据集中所占的覆盖比例。作为替代,用户可以在可视化中交互式地选择特定的聚类,并根据需求重新着色,以便更加清晰地分辨不同的聚类。这个选项特别适合于评估机器学习模型的外推性能,例如,在训练和测试数据集之间,测试集可能位于远离训练集的位置,用户可以通过重新着色来突出显示这些测试集点,从而评估模型的外推能力。此外,突出显示特定的聚类或单一分子(单例)也可以在探索和学习数据集的化学空间时提供有用的信息。图4展示了(a)聚类后的化学空间和(b)用户突出显示的聚类,数据集为脂溶性图4展示了使用聚类后的脂溶性(Lipophilicity)数据集的化学空间(a图为聚类结果,b图为用户高亮显示的聚类)。以下代码示例展示了如何使用ChemPlot对化学空间进行聚类并选择特定聚类。
cp=Plotter.from smiles(smiles list)
cp.umap()cp.cluster(n_cluster=5)
#visualize all clusters
cp.visualize_plot(clusters=True)
#highlight selected cluster(s)
cp.visualize_plot(clusters=0)
图4. 脂溶性数据集的子空间聚类。在(a)中,化学空间被分布到五个聚类中。聚类的颜色、标识符和分配比例在图例中显示。在(b)中,用户选择的聚类(蓝色,id=0)与数据集中的其他聚类(橙色)明显区分开来。
Plotting Options
ChemPlot 支持静态和交互式绘图。静态图是可以导出为各种文件格式的图像,包括 PNG、JPEG、PDF 和 SVG。图1至图4展示的可视化图就是静态图的示例。与此不同,交互式图允许用户拖动、缩放和高亮显示可视化数据的某些部分。当用户将鼠标悬停在数据点上时,会显示一个工具提示,包含该数据点对应分子的二维化学结构图和目标值。用户可以选择保存图像,既可以保存原始状态的图像,也可以保存经过编辑后的版本。此外,交互式图是以HTML格式创建的,因此用户可以将其导出并嵌入到自己的网站上。图5展示了BBBP数据集的一个交互式绘图示例。以下代码展示了使用PCA方法降维后生成的化学空间的交互式绘图。
cp.pca()
cp.interactive_plot(show_plot=True)
图5. ChemPlot Web应用程序的截图,用于交互式可视化BBBP数据集。左侧面板包含配置选项,右侧面板显示根据选定配置生成的交互式图。将鼠标悬停在数据点上时,会显示包含分子二维图像的工具提示。在右上角面板,用户可以激活拖动、高亮、缩放、保存和重置功能。
Additional Features
ChemPlot包含随机过程(t-SNE和UMAP),每次运行都会生成不同的可视化图。为了创建可重复的图形,用户可以设置随机状态参数,如下所示。
cp.umap(random_state=0)
使用ChemPlot,用户可以识别并移除离群分子。此选项由一个布尔参数控制,默认设置为“False”。若要移除数据中的离群点,用户可以将此参数设置为“True”,如下所示。
cp.visualize_plot(remove_outliers=True)
为了加速大数据集的绘图过程,ChemPlot提供了一个PCA预降维选项,在应用t-SNE或UMAP降维方法之前,将维度减少到10。用户可以将该参数设置为“True”,以包括PCA预降维步骤。
cp.umap(PCA=True)
cp.tsne(PCA=True)
ChemPlot生成的静态和交互式图像的默认大小分别为20×20英寸和700×700像素。作为替代,用户可以为静态图和交互式图定义自定义大小,如下所示。
cp.visualize_plot(size=20)
cp.interactive_plot(size=700)
在ChemPlot中,默认的绘图类型是散点图(Scatter)。此外,ChemPlot还提供了核密度估计(KDE)和六边形(Hexagonal)绘图选项。图6展示了同一数据集使用三种绘图类型的可视化效果。用户可以按照如下代码设置绘图类型。
cp.visualize_plot(kind=“kde")
cp.visualize_plot(kind=“hex")
图6。ChemPlot中的绘图类型,通过应用t-SNE和结构相似性方法对AqSolDB数据集进行可视化演示。在a中,展示了散点图(scatter plot),其中每个点代表一个分子。在b中,展示了KDE图(核密度估计图),浅色和深色分别表示分子相对较低和较高的密度区域。在c中,展示了六边形箱形图(hexagonal bin plot),其中六边形的颜色表示它所包含的分子的密度。图的右侧提供了一个颜色刻度,显示代表性颜色与分子数量之间的关系。
Additional Features
软件测试是构建稳健且可持续软件开发的重要步骤。在这里通过在库的代码库中添加自动化单元测试工作流,实现了持续集成。单元测试旨在隔离软件的每个单独单元或模块,并验证其是否按预期执行。测试工作流包含了共270个测试用例,涵盖了ChemPlot中所有可用方法的所有参数组合。单元测试的总行覆盖率为99%,这一点通过Coveralls自动化测试运行得到了验证。这些测试在三种操作系统上执行(GitHub提供的最新版本),包括Linux(Ubuntu)、Microsoft Windows Server和macOS,并支持Python的四个最新主要版本(3.6–3.9)。当前版本的ChemPlot成功通过了所有单元测试。此外,单元测试与库一起打包,用户可以在本地验证他们的安装情况。自动化测试会在每次推送新更改到主代码库时构建并运行。
除了自动化测试工作,开发了专门的可视化和性能测试。这些测试并不检查代码的正确性,而是为软件输出的整体质量提供新的见解。可视化和性能测试并不是自动化的。然而,通过运行GitHub代码库中提供的测试文件,用户仍然可以在自己的环境中手动执行这些测试。
性能测试旨在评估软件在不同情况下的速度。为此 开发了一个测试代码,衡量ChemPlot在知名分子数据集上的可视化性能,数据集大小从642个分子到41,127个分子不等。表1显示了ChemPlot在一台普通个人计算机(2.80 GHz时钟速度和8 GB内存的处理器)上的性能指标。数据展示了可视化过程的两个连续阶段的耗时(秒)。第一个是构建阶段,显示将SMILES表示法转换为数字多维表示所花费的时间。第二个是降维阶段,显示将多维数据降至二维所花费的时间。分别对PCA、t-SNE和UMAP这三种降维算法执行了降维阶段。结构相似性的构建阶段与数据集的大小呈线性相关,并且速度大约比定制相似性快三到六倍。对于表1中显示的最大数据集,结构相似性的构建时间大约为74秒,而定制相似性的构建时间为453秒。在降维阶段,PCA的耗时与数据集的大小呈线性相关,而UMAP和t-SNE的耗时与数据集的大小呈多项式相关。对于最大数据集,使用结构相似性时,PCA、UMAP和t-SNE的降维时间分别为约19秒、180秒和429秒。
表1。ChemPlot在基准数据集上不同配置的性能结果。构建阶段和降维阶段的耗时(秒)分别列出。
Distance Property Relationship Comparison
在这组实验中,比较了化学空间可视化的不同配置在处理APC(activity/property cliffs)问题上的表现。传统方法,如结构-活性关系(SAR)和结构-活性景观(SAL)指数,提供了对分子数据集中APC的量化和检测,但目前尚无方法用于量化化学空间可视化中的APC。为了衡量在可视化化学空间中相似(即接近)分子之间的活性/性质差异,使用了本文提出的DPR(Distance Property Relationship)评分指标。与SAR和SAL指数不同,DPR评分通过基于分子在降维后的化学空间中的距离来定义相似性,而不是基于它们的共同化学子结构。
为此,DPR算法首先计算所有分子对之间的Euclidean距离,并按升序排序(即最接近的分子排在前)。接下来,对于选定的前一定百分比,计算其性质差异的平均值。DPR得分反映了在化学空间可视化中,尽管分子在空间上很接近,但它们在性质上的差异。如果DPR得分较高,说明这些相似的分子在性质上差异较大,可能存在APC问题。如果DPR得分较低,说明这些相似的分子在性质上也相似,表明没有明显的APC。表2展示了通过不同实验配置获得的化学空间可视化的前1%、2%和5%的DPR评分。在所有数据集中,三种降维方法中,t-SNE方法产生了最好的DPR评分,而UMAP的表现优于PCA。此外,在大多数实验中,定制相似性比结构相似性表现更好。
表2. ChemPlot在不同实验配置下对样本数据集应用的前1%、2%和5%的DPR得分。S和T分别表示结构相似性和定制相似性方法。
Additional Features
ChemPlot web应用程序为用户提供了一个易于使用的应用程序接口(API)可视化化学空间。用户可以上传自己的分子数据集,并从左侧面板中选择可用的可视化选项。该API支持ChemPlot的主要功能,包括相似性方法、降维方法和绘图类型。此外,它还可以用于移除异常值并设置随机状态,以实现可重复的绘图。它生成交互式图形,并允许用户将可视化的化学空间导出为图像或HTML文件。图5展示了该web应用程序的示例视图,用户可以通过以下链接访问:
https://www.amdlab.nl/chemplot/。
文献链接:https://chemistry-europe.onlinelibrary.wiley.com/doi/10.1002/cmtd.202200005