Hi,

 

Excellent - that works very well.

 

Thanks.
 
> Date: Sun, 15 Mar 2009 06:34:08 +0100
> Subject: Re: [Rdkit-discuss] Sanity check of a SMARTS expression
> From: [email protected]
> To: [email protected]
> CC: [email protected]
> 
> Dear George,
> 
> On Sat, Mar 14, 2009 at 9:40 PM, George Oakman <[email protected]> wrote:
> > Hi All,
> >
> > Unsurprisingly, the following C++ code craches:
> >
> >    ROMol *mol=SmilesToMol("O1c2cc(c(COCCOCCOCCCC)cc2OC1)CCC");
> >    ROMol *pattern=SmartsToMol("O1c2cc");
> >    std::vector<MatchVectType> matches;
> >    unsigned int nMatches = SubstructMatch(*mol,*pattern,matches)
> >
> > I guess because the SMARTS "O1c2cc" is not a valid SMARTS (unclosed
> > branches).
> 
> That would be my guess too. :-)
> 
> >
> > The problem is that at runtime SubstructMatch fires an unhandled exception
> > (access violation). Rather than letting the exception crash the thread, it
> > would be better to validate the SMARTS string before sending it to
> > SubstructMatch.
> >
> > Are there any existing ways in the RDKit to do a sanity check on a SMARTS
> > string in C++?
> 
> Sure; if the SMARTS parser (or the SMILES parser, or any of the
> molecule parsers) fails to generate a valid molecule, it returns NULL.
> so if you just check the return value of SmartsToMol() you should be
> fine.
> 
> -greg

_________________________________________________________________
 25GB of FREE Online Storage – Find out more
http://clk.atdmt.com/UKM/go/134665320/direct/01/

Reply via email to