UMAP

UMAP是一种降维方法,此模块实现了基于坐标的和基于二面角的UMAP降维。

使用本模块前请注意前置处理已经完成!

Input YAML

- UMAP:
    atom_selection: protein and name CA  # protein for dihedrals 
    byType: atom # res_com, res_cog, res_coc
    n_neighbors: [50, 100, 200, 1000]
    min_dist: [1]
    target: coordinates  # dihedrals
- UMAP:
    mkdir: UMAP2
    atom_selection: protein # protein for dihedrals 
    byType: atom # res_com, res_cog, res_coc
    n_neighbors: [50]
    min_dist: [1, 2, 5, 10]
    target: dihedrals

这里同时列举了基于坐标和基于二面角的UMAP分析所需要的参数。

atom_selection:原子选择,用于指定需要进行UMAP的原子组。如果进行二面角分析的话,则所选的原子组必须包含形成骨架二面角的原子。这里的原子选择的语法完全遵从MDAnalysis的原子选择语法。请参考:https://userguide.mdanalysis.org/2.7.0/selections.html

byType:指定计算基于坐标的降维的方式,只有targetcoordinates时有效。有四种选择:atomres_comres_cogres_cocatom计算选中的所有原子坐标的降维;常见的,可以在atom_selection中选择CA原子protein and name CA来计算蛋白质的降维;res_com计算每个残基的质心的降维;res_cog计算每个残基的几何中心的降维;res_coc计算每个残基的电荷中心的降维。当为res_comres_cogres_coc时,原子选择器应当包含选中的残基的所有原子,否则只会计算某一残基中选中原子的质心、几何中心或者电荷中心的降维。

target:UMAP的目标,可以是coordinatesdihedrals。如果选择coordinates,则UMAP将基于原子的坐标进行分析;如果选择dihedrals,则UMAP将基于二面角进行分析。

需要注意的是:dPCA的文献中讨论到二面角与坐标不同,二面角具有周期性;因而dPCA的文章中是对角度进行了三角变换再将之应用于PCA分析,而此模块同样将二面角转换成sin和cos值再进行降维分析。用户在利用此模块进行二面角的降维分析的时候,需要妥善对照文献分析计算过程是否合适!如果不确定,请不要使用此模块的二面角降维分析 有任何问题或者改进的建议,请联系杜若,杜若和杜艾维非常欢迎任何的建议和argue,非常感谢!。

n_neighbors:近邻数量,用于指定UMAP算法中每个点的近邻数量, 通常可能无法先验的知道参数设置成多少比较合适,因而这里可以在一个列表中写入多个可能的参数,DIP会遍历每种参数生成结果供选择。

min_dist: 控制点堆积的紧密程度。

关于具体的参数的设置,可以参考UMAP的官方文档,以及 https://doi.org/10.1063/5.0099094

本模块还有三个隐藏参数可以对轨迹做帧的选择:

      frame_start:  # start frame index
      frame_end:   # end frame index, None for all frames
      frame_step:  # frame index step, default=1

这些参数可以指定计算轨迹的起始帧、终止帧(不包含)以及帧的步长。默认情况下,用户不需要设置这些参数,模块会自动分析整个轨迹。

例如我们计算从1000帧开始,到5000帧结束,每隔10帧的DCCM:

      frame_start: 1000 # start frame index
      frame_end:  5001 # end frame index, None for all frames
      frame_step: 10 # frame index step, default=1

如果三个参数中只需要设置一个或两个,其余的参数都可以省略。

Output

此模块会将降维得到的2维数据绘制成散点图,这里列举了基于坐标和基于二面角的UMAP的结果,其中参数为n_neighbors=50, min_dist=1

UMAP_coordinates

UMAP_dihedrals

References

如果您使用了DIP的本分析模块,请一定引用MDAnalysis、UMAP(https://doi.org/10.1162/neco_a_01434)、DuIvyTools(https://zenodo.org/doi/10.5281/zenodo.6339993),以及合理引用本文档(https://zenodo.org/doi/10.5281/zenodo.10646113)。