日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

rdkit GetAtoms获取化合物每个位置的索引;rdkit FindMCS大公共相同结构 找不同化合物之间的差异

發(fā)布時(shí)間:2023/12/31 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rdkit GetAtoms获取化合物每个位置的索引;rdkit FindMCS大公共相同结构 找不同化合物之间的差异 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、rdkit 獲取化合物每個(gè)位置的索引

from rdkit import Chem from rdkit.Chem.Draw import IPythonConsole from rdkit.Chem import Draw##正常效果是沒(méi)有的 mol = Chem.MolFromSmiles("C1CC2=C3C(=CC=C2)C(=CN3C1)[C@H]4[C@@H](C(=O)NC4=O)C5=CNC6=CC=CC=C65") # Default mol

## 這是加上效果 def mol_with_atom_index(mol):for atom in mol.GetAtoms():atom.SetAtomMapNum(atom.GetIdx())return molmol = Chem.MolFromSmiles("C1CC2=C3C(=CC=C2)C(=CN3C1)[C@H]4[C@@H](C(=O)NC4=O)C5=CNC6=CC=CC=C65") mol_with_atom_index(mol)

這是簡(jiǎn)單通過(guò)加一句話就實(shí)現(xiàn)上面效果

IPythonConsole.drawOptions.addAtomIndices = True

from rdkit import Chem from rdkit.Chem.Draw import IPythonConsole from rdkit.Chem import Draw IPythonConsole.drawOptions.addAtomIndices = True IPythonConsole.molSize = 300,300Chem.MolFromSmiles("C1CC2=C3C(=CC=C2)C(=CN3C1)[C@H]4[C@@H](C(=O)NC4=O)C5=CNC6=CC=CC=C65")

2、 rdkit找不同化合物的差異對(duì)比

參考:https://projects.volkamerlab.org/teachopencadd/talktorials/T006_compound_maximum_common_substructures.html

rdFMCS這個(gè)函數(shù)是找最大公共相同結(jié)構(gòu);有的話就可以通過(guò)MolFromSmarts獲取gonhgt共同結(jié)構(gòu)的smarts

from rdkit import Chem from rdkit.Chem import Draw from rdkit.Chem.Draw import IPythonConsole from rdkit.Chem import rdFMCS from rdkit.Chem.Draw import rdDepictormol1 = Chem.MolFromSmiles('FC1=CC=C2C(=C1)C=NN2') mol2 = Chem.MolFromSmiles('CCC1=C2NN=CC2=CC(Cl)=C1')def view_difference(mol1, mol2):mcs = rdFMCS.FindMCS([mol1,mol2])mcs_mol = Chem.MolFromSmarts(mcs.smartsString)match1 = mol1.GetSubstructMatch(mcs_mol)target_atm1 = []for atom in mol1.GetAtoms():if atom.GetIdx() not in match1:target_atm1.append(atom.GetIdx())match2 = mol2.GetSubstructMatch(mcs_mol)target_atm2 = []for atom in mol2.GetAtoms():if atom.GetIdx() not in match2:target_atm2.append(atom.GetIdx())return Draw.MolsToGridImage([mol1, mol2],highlightAtomLists=[target_atm1, target_atm2])view_difference(mol1,mol2)

總結(jié)

以上是生活随笔為你收集整理的rdkit GetAtoms获取化合物每个位置的索引;rdkit FindMCS大公共相同结构 找不同化合物之间的差异的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。