数据

将XYZ坐标转换为分子描述符

参数

  • XYZ2X

  • XYZfile=[带有XYZ坐标的输入文件S]

  • XfileOut=[带有X值的输出文件S]

分子描述符参数

如果用户仅使用 XYZfile 参数提供XYZ文件,首先需要将XYZ坐标转换为分子描述符。

  • molDescriptor=[分子描述符]

    • RE [默认]( 与平衡相关

      CM库仑矩阵

      ID (逆核间距)

    • RE 描述符非常适合于单分子PES的精确描述。

      CM 是一种流行(但有些过时)的描述符,原则上也可以应用于不同的分子。在MLatom中,使用了 完整的CM (矢量化),而不是原文中使用的特征值。

      ID 是一种流行的反核间距描述符,用于许多ML模型,适用于单分子PES,类似于RE描述符。

  • molDescrType=[分子描述符的类型]

    • unsorted [RE的默认值]

      sorted [CM的默认值]

      permuted (可选,RE和CM均可用)

    • unsorted 描述符是原始的描述符,但它们不能保证同核原子的排列不变性。

      sorted 描述符确保排列不变性,通常用于CM描述符(其中CM按其规范排序)。在正则描述符的情况下,排序是由核排斥完成的。它可以用于 基于结构的采样 ,但在插值中引入了不连续性,不应用于模拟。相关选项: XYZsortedFileOut , permInvGroups , permInvNuclei 。请参见 相关教程

      permuted 使用用户定义原子的排列来扩充描述符。相关参数:permInvKernel , permInvGroups , permInvNuclei 。请参见 相关教程

  • XYZsortedFileOut=[带有有序XYZ坐标的输出文件]

    • 可选。

      仅可与 molDescriptor=RE molDescrType=sorted 一起使用。

    • 按核斥力对选定的原子进行排序后,保存带有XYZ坐标的文件。按核斥力对选定的原子进行分类并打印。

  • permInvNuclei=[置换不变的原子核]

    • 可选。

      应与 molDescrType=permuted (通常还有 permInvKernel )一起使用

    • 例如, permInvNuclei=2-3.5-6 会改变原子2,3和6,7的排列。请参见 相关教程

  • permInvGroups=[置换不变群]

    • 可选。

      应与 molDescrType=permuted (通常还有 permInvKernel )一起使用

    • 例如,对于水二聚体 permInvGroups=1,2,3-4,5,6 通过翻转二聚体中的单体产生排列原子指数。

示例

MLatom.py XYZ2X XYZfile=CH3Cl.xyz XfileOut=CH3Cl.x

分析数据集

MLatom可以通过对比数据集来进行分析,例如,主要是通过计算ML预测值相对于可用参考值的误差。所有文件都是输入文件,MLatom输出的是统计分析。

参数

  • analyze

  • Yfile=[带值的输入文件]

  • YgradXYZfile=[带有XYZ坐标梯度的输出文件]

  • YestFile=[带有预估的Y值的输入文件]

  • YgradXYZestFile=[带有预估的XYZ梯度的输入文件]

示例

MLatom.py analyze Yfile=en.dat YestFile=enest.dat

采样和切片

采样和切片的参数

  • sample

    • iTrainOut , CVtest , LOOtest , CVopt , LOOopt 中至少选择一个

    • 参见 教程

  • XYZfile=[带有XYZ坐标的文件]XfileIn=[带有输入向量X的文件]

    • 必选。

  • iTrainOut=[带有训练点索引的文件]

    • 无默认文件名。

    • 生成训练集的索引。

  • iTestOut=[带有测试点索引的文件]

    • 无默认文件名。

    • 生成测试集的索引。

  • iSubtrainOut=[带有子训练点索引的文件]

    • 无默认文件名。

    • 生成子训练集的索引。

  • iValidateOut=[带有验证点索引的文件]

    • 无默认文件名。

    • 生成验证集的索引。

  • CVtest

    • 可选。

      相关选项 NcvOptFolds

    • 生成用于切片的N倍交叉验证的索引。默认情况下,使用5倍交叉验证。

  • NcvTestFolds=[CV折叠数]

    • 5 [默认]。

      仅可与 CVopt 一起使用。

    • 如果这个数字等于数据点的数量,则执行留一交叉验证。交叉验证只能使用随机抽样或不使用抽样。

  • LOOtest

    • 可选。

    • 留一交叉验证。只能使用随机抽样或不使用抽样。

  • iCVtestPrefOut=[带有CVtest索引的文件前缀]

    • 无默认前缀。

    • 文件名将包含所需的前缀。

  • CVopt

    • 可选。

      相关选项 NcvOptFolds

    • 生成用于超参数优化的N倍交叉验证的索引。默认情况下,使用5倍交叉验证。

  • NcvOptFolds=[CV折叠数]

    • 5 [默认]。

      仅可与 CVopt 一起使用。

    • 如果这个数字等于数据点的数量,则执行留一交叉验证。交叉验证只能使用随机抽样或不使用抽样。

  • LOOopt

    • 可选。

    • 留一交叉验证。只能使用随机抽样或不使用抽样。

  • iCVoptPrefOut=[带有CVopt索引的文件前缀]

    • 无默认前缀。

    • 文件名将包含所需的前缀。

采样的其他可选参数

参数需与 sample 一起使用。

  • sampling=[数据集采样切片的类型]

    • random [默认] 随机采样

    • none 简单地将未整理的数据集分成训练集和测试集(按此顺序)(以及子训练集和验证集)

    • structure-based 基于结构的采样

    • farthest-point 最远点遍历迭代过程

  • Nuse=[要使用的数据集文件的前N个条目]

    100% [默认]

    可选。

  • Ntrain=[子训练点的数量或训练点的一小部分]

    默认是总集的80% 。

    如果参数是小于1的十进制数,则认为它是总集的一部分。

  • Ntest=[验证点的数量或训练点的一小部分]

    默认情况下,是总集减去训练点后的剩余点。

    如果参数是小于1的十进制数,则认为它是总集的一部分。

  • Nsubtrain=[子训练点的数量或训练点的一小部分]

    默认是训练集的80% 。

    如果参数是小于1的十进制数,则认为它是训练集的一部分。

  • Nvalidate=[验证点的数量或训练点的一小部分]

    默认情况下,是训练集减去子训练点后的剩余点。

    如果参数是小于1的十进制数,则认为它是训练集的一部分。

示例

基于结构的采样:

mlatom sample sampling=structure-based XYZfile=CH3Cl.xyz Ntrain=1000 Ntest=10000 iTrainOut=itrain.dat iTestOut=itest.dat

切片

有时,按描述符到平衡描述符的欧几里得距离对数据进行切片很有用。参见 教程

切片的参数:

slice

必选。

XfileIn=[带有输入向量X的文件]

必选。

eqXfileIn=[带有平衡构型的输入向量的文件]

必选。

Nslices=[切片数]

3 [默认]。可选。

从切片中采样的参数:

sampleFromSlices

Ntrain=[所有切片中训练点的总整数N]

必选。

Nslices=[切片数]

3 [默认]。可选。

从切片合并索引的参数:

mergeSlices

Ntrain=[所有切片中训练点的总整数N]

必选。

Nslices=[切片数]

3 [默认]。可选。

示例

参见 教程

MLatom.py slice Nslices=3 XfileIn=x_sorted.dat eqXfileIn=eq.x

mlatom sampleFromSlices Nslices=3 sampling=structure-based Ntrain=4480

mlatom mergeSlices Nslices=3 Ntrain=4480