赛题分析与理解
1. 赛题背景
mRNA 疫苗在新冠预防领域的成功,推动了核酸类药物研发的关注。本次比赛的焦点是利用化学修饰后的 siRNA 序列预测 RNA 干扰机制下对靶基因的沉默效率。这一指标直接与药物疗效相关。RNAi 是一种天然的基因表达调控机制,通过 siRNA 实现靶基因表达的抑制。化学修饰可以影响siRNA 的毒性、稳定性、靶向效果和药效,因此在实际药物设计中至关重要。
2. 比赛任务
参赛者需通过机器学习模型,预测化学修饰后的siRNA序列对已知靶基因的沉默效率。数据包括多个特征,如siRNA裸序列、修饰序列、实验条件等。训练数据约占总数据的85%,其余15%用于测试和评分。
3. 数据集介绍
- train_data.csv:训练数据,包含19个字段,记录实验条件和测量结果。
- sample_submission.csv:测试数据,需参赛者预测mRNA_remaining_pct。
- vocab.csv:化学修饰缩写表,描述各种修饰核苷酸的化学结构。
- baseline.py:基线模型,使用RNN预测,主要特征是siRNA_sense_seq。
4. 数据字段说明
- id:唯一识别号
- publication_id:公开文献号
- gene_target_symbol_name:靶基因名称
- gene_target_ncbi_id:靶基因NCBI标识
- gene_target_species:靶基因物种
- siRNA_duplex_id:siRNA双链编号
- siRNA_sense_seq:siRNA的sense序列
- siRNA_antisense_seq:siRNA的antisense序列
- cell_line_donor:实验细胞系
- siRNA_concentration:siRNA浓度
- concentration_unit:浓度单位
- Transfection_method:转染方法
- Duration_after_transfection_h:转染后持续时间
- modified_siRNA_sense_seq:修饰后的siRNA的sense序列
- modified_siRNA_antisense_seq:修饰后的siRNA的antisense序列
- modified_siRNA_sense_seq_list:修饰后sense序列分解列表
- modified_siRNA_antisense_seq_list:修饰后antisense序列分解列表
- gene_target_seq:靶基因参考序列
- mRNA_remaining_pct:实验后的mRNA剩余百分比(目标变量)
5. 比赛评价指标
- 平均绝对误差(MAE):整体预测精度,范围[0,100]。
- 范围内平均绝对误差(Range-MAE):预测值在[0,30]范围内的平均绝对误差,关注低Remaining区间的预测精度。
- 范围内的F1指标(F1):衡量低Remaining区间的预测准确率。
6. 比赛得分计算
最终得分综合考虑整体区间预测精度和低 Remaining 区间的预测精度与准确性:
7. 基线方法
提供的基线方法使用RNN模型,仅使用 siRNA_sense_seq 作为输入特征进行预测。
分析与理解
-
什么是RNAi机制?它在基因治疗中的作用是什么? 深入了解RNAi机制及其在基因治疗中的应用,特别是化学修饰siRNA的作用和重要性,能够帮助你更好地理解赛题背景和目标。
-
比赛的核心目标是什么? 明确本次比赛的目标是通过机器学习模型预测化学修饰siRNA对靶基因的沉默效率,这一目标决定了数据处理、特征选择和模型设计的方向
baseline思路概述(RNN)
该基线模型使用了 RNN(递归神经网络)来处理和预测 siRNA 数据。
1.数据预处理与特征工程
Tokenization:
- 使用 GenomicTokenizer 将siRNA序列进行 tokenization 。根据指定的 ngram 和 stride ,将序列分解为 n-gram tokens。
- GenomoicVocab 类创建了一个词汇表(vocab),以将这些tokens映射到整数索引。
数据集:
- SiRNADataset 继承自 PyTorch 的 Dataset 类,负责从 DataFrame 中提取数据,并将其转化为模型可以处理的格式。包括对 siRNA 序列进行 tokenization 和 padding 操作。
2. 模型设计
-
Embedding Layer:
- nn.Embedding 层将 token 的整数索引映射到密集的向量表示。它的输入是词汇表的大小和嵌入维度。
-
GRU Layer:
- nn.GRU用于处理序列数据。GRU(门控循环单元)是一种 RNN 的变体,旨在处理长期依赖问题。
- 该层是双向的(bidirectional = True),意味着它会从两个方向处理序列信息,这有助于捕获更多上下文信息。
- dropout 用于减少过拟合。
-
Fully Connected Layer:
- nn.Linear 层将GRU的输出映射到目标值。由于 GRU 是双向的,因此需要将两个方向的输出拼接在一起。
3. 训练与评估
-
训练过程:
- 在每个epoch中,模型会被训练数据迭代训练。使用均方误差(MSE)作为损失函数(nn.MSELoss),计算预测值与真实值之间的差异。
- 使用Adam优化器(optim.Adam)来更新模型的权重。
-
评估过程:
- 训练完成后,在验证集上进行评估。模型在验证集上的预测会被用来计算不同的指标:
- 平均绝对误差(MAE): 衡量预测值的总体精度。
- Range-MAE: 在 mRNA 剩余百分比的低区间(0到30)内的 MAE ,关注模型在低效果值范围内的表现。
- F1 Score: 计算模型在低效果值范围内的precision和recall的综合表现。
- 训练完成后,在验证集上进行评估。模型在验证集上的预测会被用来计算不同的指标: