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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

1、rdkit 獲取化合物每個位置的索引

from rdkit import Chem from rdkit.Chem.Draw import IPythonConsole from rdkit.Chem import Draw##正常效果是沒有的 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)

這是簡單通過加一句話就實現上面效果

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找不同化合物的差異對比

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

rdFMCS這個函數是找最大公共相同結構;有的話就可以通過MolFromSmarts獲取gonhgt共同結構的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)

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。