RDKit로 분자 중의 등효(대칭) 원자를 검출하다
4564 단어 RDKit
개시하다
분자 중의 원자가 기계 학습 등을 통해 데이터 처리를 할 때 분자 중의 등효 원자는 불필요하기 때문에 각각 다른 데이터가 아니라 하나의 데이터로 처리하기를 바란다.이를 위해 우리는 분자 중등효 원자를 검출하는 방법을 조사해 저장했다.
컨디션
방법
먼저 샘플의 원자로 읽어서 표시한다.
from rdkit.Chem import AllChem, Draw, rdmolops
from rdkit.Chem.Draw import IPythonConsole
mols = AllChem.SDMolSupplier("../som/17.mequitazine.mol")
mol = mols[0]
Draw.MolToImage(mol)
이런 느낌을 나타내는 분자를 가정해 보자.여기에는 세 개의 연속 고리 양측의 벤젠 고리의 원자가 완전히 등가이다.
CannoniccalRankAtoms는 이와 같은 원자를 감지하기 위해 다음과 같이 사용합니다.이렇게 하면 rankAtoms에서 원자의 색인 순서에 따라 등급을 얻는다.이 등급은 같은 번호가 같은 원자다.
rankAtoms = list(rdkit.Chem.rdmolfiles.CanonicalRankAtoms(mol, breakTies=False))
print(rankAtoms)
[13, 20, 12, 21, 10, 8, 19, 8, 10, 22, 17, 6, 2, 0, 4, 15, 14, 15, 4, 0, 2, 6, 17]
그럼 번호만 보면 이해하기 어려우니 분자의 각 원자에 위의 등급을 표시합시다.for atom in mol.GetAtoms():
atom.SetProp('molAtomMapNumber',str(rankAtoms[atom.GetIdx()]))
mol
그래서 이런 느낌으로 표현했다.문자가 변형된 후 똑똑히 보기 어려워서 두 벤젠 고리에 대응하는 원자가 같은 등급(번호)이라는 것을 확실히 알 수 있다.
참고 자료
Reference
이 문제에 관하여(RDKit로 분자 중의 등효(대칭) 원자를 검출하다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kimisyo/items/a2b3760c7e90547b9608텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)