gpt4 book ai didi

python - 如何根据某个原子上连接的氢原子数来分离分子列表?

转载 作者:行者123 更新时间:2023-12-02 15:49:15 24 4
gpt4 key购买 nike

我有分子式为 C9H17B 的烯烃分子。我怎样才能将这些分子分成三类,一类是 C-B-H2,一类是 C2-B-H,一类是 C3-B。我该怎么做?我尝试过使用微笑,也尝试过使用 mol,但我的方法不起作用。

最佳答案

要查找特定的子结构,请使用 SMARTS。

https://www.daylight.com/dayhtml/doc/theory/theory.smarts.html

如果我没看错,这就是您要查找的三种硼。

from rdkit import Chem
from rdkit.Chem import Draw

smiles = ['CCB', 'CCBC', 'CCB(C)(C)']

mols = [Chem.MolFromSmiles(s) for s in smiles]
Draw.MolsToGridImage(mols)

enter image description here

用三个连接 BX3 和氢的数量 H2H1H0 为硼编写 SMARTS。

smarts = ['[BX3;H2]', '[BX3;H1]', '[BX3;H0]']
patts = [Chem.MolFromSmarts(s) for s in smarts]

现在您可以证明每个分子中的子结构。

for p in patts:
for m in mols:
print(m.HasSubstructMatch(p))
print()

True
False
False

False
True
False

False
False
True

关于python - 如何根据某个原子上连接的氢原子数来分离分子列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73107497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com