#Datawhale #AI夏令营

本文主要介绍Ai4Chemistry相关知识点补充

  首先SMILES是其主要方法,是一种将化学分子用ASCII字符表示的方法,

SMILES编码规则涵盖了原子、离子、相邻与分支、环状结构、单键/双键/三键/芳香键、三维结构以及旋光异构等多个方面。以下是SMILES将分子转化为序列数据的主要方法:

1. 原子和离子

原子:由原子缩写符号表示,如C代表碳原子,O代表氧原子等。

离子:在原子符号后加上电荷数,并用方括号括起来,如[Fe+++]表示铁离子。

2. 相邻与分支

相邻原子:在SMILES字符串中,相邻的原子表示彼此相连接。

分支:通过括号来表示,如CC(=O)C表示一个碳原子连接着一个羰基(C=O)和一个碳原子。

3. 环状结构

环状结构在SMILES中被断开成线性形式,并在断开键两端的原子上用数字表示(从1开始),如环己烷表示为C1CCCCC1。如果有多处断裂,则使用2、3等数字进行标记。

4. 键的类型

单键:在SMILES中通常省略不用表示。

双键:由“=”符号表示,如C=O表示羰基。

三键:由“#”符号表示。

芳香键:按单键处理,但有时会使用交替的单键和双键来表示芳香烃环状结构(取决于软件或库的实现)。

5. 三维结构和旋光异构

三维结构:同位素使用方括号和同位素质量数表示,如[13C]。双键的几何异构由“/”和“\”表示两端单键的方向。

旋光异构:由“@”或“@@”表示S对映异构体或R对映异构体。

6. 转换过程

SMILES字符串的生成通常依赖于化学信息学软件和库,如RDKit、OpenBabel等。这些工具能够解析分子的结构,并根据SMILES编码规则将其转化为相应的序列数据。

7. 应用场景

SMILES编码在化学信息学、药物设计、生物信息学等领域有广泛应用。它使得分子结构可以以文本形式存储、传输和处理,便于进行大规模的数据分析和计算。

8. 示例

假设有一个分子结构为乙酸(acetic acid),其SMILES编码为CC(=O)O。在这个字符串中,“CC”表示两个相连的碳原子,“(=O)”表示一个双键连接的氧原子(即羰基),“O”表示一个羟基氧原子。这个字符串准确地描述了乙酸分子的结构。

相关化学反应也可以用其表示,反应物和生成物之间用“>>”联系

对于结构复杂的分子,例如苯环上链接其他不同的分子式,可以用不同的向量来表示不同的结构,再将其结合到一块,实现分子到代码的转化。

RDkit也是强大的化学辅助工具

主要功能

分子表示:

RDKit采用SMILES(简化分子输入线式表示)和InChI(国际化唯一化学标识符)等标准来表示分子,使得分子数据可以方便地存储、搜索和比较。

提供了丰富的功能来表示和操作分子结构,如从SMILES字符串创建分子对象,计算各种分子描述符(如分子量、LogP、极化度等)。

几何优化:

内置的分子力学引擎可以计算分子的最优几何构型,这对于预测分子的物理特性至关重要。

子结构查询:

快速查找数据库中的特定分子模式,这是在大规模化合物库中筛选潜在活性物质的关键功能。

化合物描述符向量化:

通过对化合物进行一系列的物理化学性质计算,生成描述性统计特征向量,实现化合物的定量描述。这些描述符包括亲脂性、极性、氢键能力等,能够全面地表征化合物的性质。

部分结构检索:

允许用户根据分子的部分结构特征进行快速检索,对于寻找具有特定生物活性的化合物、设计新的药物等应用具有重要意义。

药物发现:

通过子结构匹配和分子性质预测,帮助研究人员从大量化合物中筛选出具有潜在药理活性的分子。

材料科学:

对于新材料的设计和评估,RDKit可以计算关键的化学属性,如极性、电荷分布等。

化学数据库管理:

能够有效地索引和搜索化学结构,对大型数据库进行管理和维护。

机器学习集成:

支持将化学描述符与各种机器学习算法结合,以构建预测模型,如定量构效关系(QSAR)模型。

机器学习按照目标可以分为分类任务(classification)和回归(regression)任务两大类。所谓分类任务,就是模型预测的结果是离散的值,例如类别;那么,回归任务中,模型预测的结果就是连续的值,例如房价等等。在本次竞赛中,我们需要预测的目标是反应的产率,是0-1之间的一个连续的数值,所以是一个回归任务。

决策树分为分类型决策树和回归型决策树,划分节点的值应该尽可能相同,以提高最终效率。

最终代码的补充词汇表:

<PAD> <CLS> <MASK>

<SEP>

[UNK]

>

C

c

1

(

-

2

s

N

=

)

n

Br

3

O

[

]

[nH]

[C@H]

/

\

[C@@H]

[C@]

o

4

[C@@]

5

6

7

[n+]

.

[Br-]

S

I

F

Cl

[O-]

#

P

[Na+]

[N+]

[Cl-]

8

[Si]

[N-]

[18F]

9

[I-]

B

[S+]

[2H]

[P+]

[125I]

%10

%11

[n-]

[B-]

[O]

[o+]

[N@@+]

[N@+]

[PH]

[se]

[Se]

[s+]

[Li+]

[P@]

[P@@]

[3H]

[K+]

[OH-]

[te+]

[se+]

[Te]

[S@+]

[BH2-]

[11CH3]

[11C]

[Cl+3]

[N@@]

[S-]

[C+]

[P@+]

[C-]

[Zn+2]

[Ca+2]

[Mg+2]

[SeH]

[BH-]

[SH2]

[TeH2]

[SiH4]

[N@]

[14CH2]

[Ag]

[S@@+]

[I+]

[MgH2]

[125IH]

[Se+]

[As]

[SiH2]

[Ra]

[IH2]

[P-]

[Na]

[NH-]

[Cs]

[Zn]

[Li]

[As+]

[te]

[131I]

[Ag+]

p

[Al-3]

[Rb+]

[13CH]

[11CH]

[11CH2]

[14c]

[14C@@]

[127I]

[Mg]

[14C]

[123I]

[124I]

[F-]

[14CH3]

[135I]

%12

[NH+]

[76Br]

[32PH]

[35S]

b

[73Se]

[11C@@H]

[Se-]

[c+]

[14C@H]

[18OH]

[SH]

[S@@]

[Cs+]

[He]

[O+]

[nH+]

[NH2+]

[32P]

[Zn+]

[BH3-]

[I+3]

[Si-]

[SH+]

[19F]

[Br+2]

[I+2]

[Al+3]

[123I-]

[131I-]

[127Xe]

[133Xe]

[89Sr+2]

[N]

[82Rb+]

[75Se]

[Rb]

[81Kr]

[18F-]

[13NH3]

[K]

[Cl+2]

[Zn-2]

[SeH2]

[AsH3]

[Kr]

[Xe]

[S@]

[cH-]

[NH4+]

[Al]

[Si@]

[15n]

[SH-]

[SiH]

[11c]

[OH]

[c-]

[18FH]

[123IH]

[13c]

[13cH]

[14cH]

[Cl+]

[Sr+2]

[CH-]

[Bi]

[B]

[Ba+2]

[Bi+3]

[SiH-]

[b-]

[H+]

[13C]

[OH+]

[14CH]

[15nH]

[CaH2]

[LiH]

[C]

[Ca]

[42K+]

[123Te]

[S-2]

[223Ra+2]

[S]

[Ra+2]

[22Na+]

[125I-]

[85Sr+2]

[PH2]

[SrH2]

[15OH2]

[47Ca+2]

[85SrH2]

[45Ca+2]

[B@@-]

[B@-]

[17F]

[PH2+]

[11C-]

[Mg+]

[NaH]

[P@@+]

[SiH3-]

[P-3]

[KH]

[Be+2]

[NH3+]

[Ag-4]

[18O]

[14C@@H]

[CH]

[CH2]

[O-2]

[124I-]

[As-]

[Ba]

[223Ra]

[82Rb]

[76BrH]

[AsH]

[131Cs]

[Ru-2]

[Cu+]

[Cu+2]

[Co+2]

[Fe+2]

[Pd]

[Pd-2]

[Sc+3]

[In+3]

[SiH3]

[NH2-]

%13

[Fe+3][Sb-]

[Cu]

[Pt+4]

[Ni]

[PH+]

[Pd-]

[H]

[H-]

[Ru+2]

[Rh+]

[Ru+4]

[Ni+2]

[Mn+2]

[Mo]

[Pd+2]

[La+3]

[Cr]

[Au]

[Pd+]

[Pd-3]

[Mn]

最后补充Rnn

RNN(Recurrent Neural Network),即循环神经网络,是一种特殊的神经网络结构,主要用于处理序列数据。与传统的前馈神经网络(Feedforward Neural Network)不同,RNN 能够在处理序列的每个元素时保留对前面元素的信息,这使得它特别适合处理那些元素之间有时间或空间依赖性的任务,比如时间序列分析、文本生成、语音识别、机器翻译等。

RNN 的基本结构

RNN 的基本结构包括输入层、隐藏层和输出层,但与传统的神经网络不同的是,RNN 在隐藏层之间也建立了连接,这种连接允许信息从一个时间步传递到下一个时间步。具体来说,RNN 的隐藏层不仅接收当前时间步的输入,还接收来自上一个时间步隐藏层的输出。这样,RNN 就能够捕获序列中的历史信息。

工作原理

在 RNN 中,每个时间步的隐藏层状态 h_t 是由当前时间步的输入 x_t 和上一个时间步的隐藏层状态 h_{t-1} 共同决定的。这个过程可以表示为:

ht​=f(Wxh​xt​+Whh​ht−1​+bh​)

其中,Wxh​ 和 Whh​ 是权重矩阵,bh​ 是偏置项,f 是激活函数(如 tanh 或 ReLU)。

然后,隐藏层状态 h_t 被用于计算当前时间步的输出 y_t:

yt​=g(Why​ht​+by​)

其中,Why​ 是权重矩阵,by​ 是偏置项,g 是输出层的激活函数(如 softmax,用于分类任务)。

RNN 的变体

尽管 RNN 在处理序列数据方面表现出色,但它也面临着梯度消失或梯度爆炸的问题,这限制了它学习长期依赖关系的能力。为了解决这个问题,研究者们提出了 RNN 的多种变体,包括:

LSTM(Long Short-Term Memory):通过引入门控机制(遗忘门、输入门、输出门)来控制信息的流动,LSTM 能够有效地学习长期依赖关系。

GRU(Gated Recurrent Unit):作为 LSTM 的一个简化版本,GRU 减少了门的数量(只有两个门:更新门和重置门),同时保持了 LSTM 的大部分性能优势,同时计算更加高效。

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值