RDKit|在化學(xué)反應(yīng)中對(duì)原子進(jìn)行保護(hù)

文章目錄

  • 1.rxn文件創(chuàng)建反應(yīng)
  • 2.保護(hù)目標(biāo)原子

在化學(xué)反應(yīng)中保護(hù)原子

本文是化學(xué)反應(yīng)的進(jìn)階操作,關(guān)于使用rdkit進(jìn)行化學(xué)反應(yīng)的操作可以參考這篇文章。有時(shí)在使用rxn文件時(shí),很難準(zhǔn)確表達(dá)或全面考慮到每個(gè)細(xì)節(jié),導(dǎo)致不需要的原子發(fā)生反應(yīng),并產(chǎn)生副產(chǎn)物。而rdkit也提供了保護(hù)原子的操作,避免不需要的原子參與到反應(yīng)中。還是以形成酰胺鍵為例。

1.rxn文件創(chuàng)建反應(yīng)

  • 通過(guò)rxn文件創(chuàng)建一個(gè)反應(yīng)模式:ReactionFromRxnFile()
  • 檢查一下該反應(yīng):ReactionToImage()
>>> import os
>>> from rdkit import Chem
>>> from rdkit.Chem import AllChem as Chem
>>> from rdkit import RDConfig
>>> rxn_file = os.path.join(RDConfig.RDDocsDir, 'Book\data\AmideBond.rxn')
>>> rxn = Chem.ReactionFromRxnFile(rxn_file)
>>> Chem.Draw.ReactionToImage(rxn, subImgSize=(300, 100))
1

在這個(gè)反應(yīng)中,氮原子只要連有氫原子,就可以發(fā)生反應(yīng)。當(dāng)使用一個(gè)已經(jīng)含有酰胺鍵的化合物作為反應(yīng)物時(shí),同樣也可以發(fā)生反應(yīng)。

  • 設(shè)置反應(yīng)物acid和base
  • 按照模式進(jìn)行反應(yīng):rxn.RunReactants()
  • 對(duì)反應(yīng)物進(jìn)行核對(duì):SanitizeMol()
>>> acid = Chem.MolFromSmiles('CC(=O)O')
>>> base = Chem.MolFromSmiles('CC(=O)NCCN')
>>> ps = rxn.RunReactants((acid,base))
>>> [Chem.SanitizeMol(x[0]) for x in ps]
>>> Chem.Draw.MolsToGridImage([x[0] for x in ps], molsPerRow=2, subImgSize=(300, 300))
2

2.保護(hù)目標(biāo)原子

如果不想讓酰胺氮原子發(fā)生反應(yīng),可以將它保護(hù)起來(lái)

  • 將要保護(hù)的基團(tuán)轉(zhuǎn)成SMARTS,記錄在amidep中
  • 在反應(yīng)物中查找所有符合amidep的子結(jié)構(gòu)
  • 遍歷每個(gè)符合的子結(jié)構(gòu),設(shè)置屬性,鍵為"_protected",值隨意
>>> amidep = Chem.MolFromSmarts('[N;$(NC=[O,S])]')
>>> for match in base.GetSubstructMatches(amidep):
>>>     base.GetAtomWithIdx(match[0]).SetProp('_protected', '1')
  • 再進(jìn)行反應(yīng),被保護(hù)的基團(tuán)就不會(huì)發(fā)生反應(yīng)了
>>> ps = rxn.RunReactants((acid,base))
>>> print(len(ps))
>>> Chem.MolToSmiles(ps[0][0])
1
'CC(=O)NCCNC(C)=O'

本文參考自rdkit官方文檔
代碼及源文件在這里。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容