识别反应中心原子
之前一直用rdkit的GetReactAtom方法,实在是对输入的aam要求很高,所以自己写了一个。
from rdkit import Chem
from rdkit.Chem import AllChem, rdmolops
import pandas as pd
import numpy as np
import os
from tqdm import tqdm
class GetReaAtom(object):
def __init__(self,aam_file, w):
self.aam_file = aam_file
self.w = w
@staticmethod
def map2id(mol):
dic = {}
for atom in mol.GetAtoms():
atom_map = atom.GetAtomMapNum()
if atom_map == 0:
pass
# print('atom {}'.format(atom.GetSymbol()), 'id: {} not map'.format(atom.GetIdx()))
else:
dic[atom.GetAtomMapNum()] = atom.GetIdx()
return dic
@staticmethod
def id2map(mol):
dic = {}
for atom in mol.GetAtoms():
if atom.GetAtomMapNum() != 0:
dic[atom.GetIdx()] = atom.GetAtomMapNum()