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));
        }
예제 #2
0
        /// <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);
            }
        }