なぜnitrenium ionにする必要があるのかはここではふれないので、ココらへんを見てください。
import pybel smarts = pybel.Smarts("c[#7]([#1])[#1]") mol = pybel.readstring('smi', 'c1ccccc1N') mol.make3D() matches = smarts.findall(mol) mol.OBMol.DeleteAtom(mol.atoms[matches[0][2]-1].OBAtom) mol.OBMol.SetTotalCharge(1) print mol.write('mol')
分子に修飾をしたい時はpybelにメソッドがないので、OpenBabelのオブジェクトを直接触る必要があるのであまりスマートではない気がする。