#include #include #include #include #include #include // SMARTSを利用する場合はこれをincludeする #include using namespace std; using namespace OpenBabel; int main(int argc, char* argv[]) { OBConversion conv; conv.SetInAndOutFormats("SMI", "SDF"); OBMol mol; conv.ReadString(&mol, "COc1cc2ncnc(c2cc1OCCCN1CCOCC1)Nc1ccc(c(c1)Cl)F"); generateDiagram(&mol); mol.SetDimension(2); OBSmartsPattern smp; // パターンマッチするためのクラスを宣言する smp.Init("c1ccccc1"); // SMARTSパターンの翻訳 smp.Match(mol); // パターンマッチの実行 vector > mlist = smp.GetUMapList(); // 実行結果の取得 for (int i = 0; i < mlist.size(); i++) { cout << "match" << i + 1 << ":"; for (int j = 0; j < mlist[i].size(); j++) { cout << " " << mlist[i][j]; } cout << endl; } }