private static string Generate(string smi, SubstructureSelectionMode mode, int[] idxs) { var smipar = CDK.SmilesParser; var mol = smipar.ParseSmiles(smi); var subsmarts = new SmartsFragmentExtractor(mol); subsmarts.SetMode(mode); return(subsmarts.Generate(idxs)); }
/// <summary> /// Set the mode of SMARTS substructure selection /// </summary> /// <param name="mode">the mode</param> public void SetMode(SubstructureSelectionMode mode) { // check arg switch (mode) { case SubstructureSelectionMode.ExactSmarts: case SubstructureSelectionMode.JCompoundMapper: break; default: throw new ArgumentException("Invalid mode specified!"); } this.mode = mode; // re-gen atom expressions int numAtoms = mol.Atoms.Count; for (int atomIdx = 0; atomIdx < numAtoms; atomIdx++) { this.aexpr[atomIdx] = EncodeAtomExpr(atomIdx); } }