返回列表

3rd place solution

525. Novozymes Enzyme Stability Prediction | novozymes-enzyme-stability-prediction

开始: 2022-09-21 结束: 2023-01-03 药物研发 数据算法赛
第三名解决方案

第三名解决方案

作者:Rongchu | 比赛排名:第3名

非常感谢主办方和 Kaggle 举办这场有趣的比赛。祝贺其他参赛者分享了出色的解决方案和结果。特别感谢在比赛期间无私分享知识的参赛者:@cdeotte, @tilii7, @ropeonmars, @roberthatch, @dschettler8845, @jinyuansun, @kvigly55, @vslaykovsky, @oxzplvifi, @shlomoron 等。如果我遗漏了谁,请告诉我。

训练集

我使用了数据集 D1D2D3

特征工程

我选择了距离突变氨基酸最近的 21 个氨基酸来构建特征。

  • 计算了 21 个氨基酸突变位点的相对距离。
    $$D_{ci}=\frac{r_{c}-r_{i}}{max_{i∈K}{(r_{c}-r_{i})}}$$,$$r_{ci}=\sqrt{{(x_{c}-x_{i})}^{2}+{(y_{c}-y_{i})}^{2}+{(z_{c}-z_{i})}^{2}}$$
  • 计算了 21 个氨基酸与突变位点之间的平均相对距离。
  • 计算了 21 个氨基酸相对于突变位点的角度。
    $$\alpha_{1}=arccos\frac{(z_{c}-z_{i})}{r}$$
    $$\alpha_{2}=arccos\frac{(x_{c}-x_{i})}{r}$$
    $$\alpha_{3}=arccos\frac{(y_{c}-y_{i})}{r}$$
    $$\beta_{4}=arctan\frac{(y_{c}-y_{i})}{(x_{c}-x_{i})}$$
    $$\beta_{5}=arctan\frac{(z_{c}-z_{i})}{(y_{c}-y_{i})}$$
    $$\beta_{6}=arctan\frac{(x_{c}-x_{i})}{(z_{c}-z_{i})}$$
  • B_factor, sasa, blosum, demask 等。
  • 使用调整后的 blosum62 乘以 sasa, b_factor 等。
def sigmoid_w_adjustment(x, adjustment_factor=3.0):
    return 1-(1/(1+np.exp(-x/adjustment_factor)))
  • 通过 esm 提取的整个蛋白质序列、突变氨基酸和 21 个氨基酸的特征。
  • 还有一些其他有趣的特性 在这里

模型

XGB_v1

该模型的公开分数为 0.52132,私有分数为:0.46642
我们使用 D1 来训练我的第一个 Xgboost 模型。该数据集是从 Kaggle 训练集中选出的野生型和突变体,包含 4000 多行训练数据。首先,我对数据集做了一些简单的处理,去除重复行和缺失突变,删除与 pdb 不匹配的行,保留突变样本 > 20 的组。最后,我们得到了一个包含 1800 多行的训练集。
我们使用了上述特征,并以 Tm 排名为目标来训练模型,因此我们的模型共有 298 个特征。

XGB_v2

该模型的公开分数为 0.40512,私有分数为

同比赛其他方案