What is the return if more than one sanitization check fails?
-
Jean-Paul Ebejer
Early Stage Researcher
On 15 February 2012 05:37, Greg Landrum <[email protected]> wrote:
> Dear all,
>
> A couple days ago I created a branch to work on adding some
> sanitization changes to the RDKit
> (
> http://rdkit.svn.sourceforge.net/viewvc/rdkit/branches/SanitizationChanges_11Feb2012/
> ).
>
> I've added two things, the ability to specify which sanitization
> operations should be carried out and the ability to get a return value
> from the SanitizeMol function instead of having it raise an exception.
>
> Here's what it looks like:
>
> In [5]: Chem.SanitizeMol?
> Type: function
> Base Class: <type 'builtin_function_or_method'>
> String Form:<Boost.Python.function object at 0x1ec6740>
> Namespace: Interactive
> Docstring:
> SanitizeMol( (Mol)mol [,
> (int)sanitizeOps=rdkit.Chem.rdmolops.SanitizeFlags.SANITIZE_ALL [,
> (bool)catchErrors=False]]) -> SanitizeFlags :
> Kekulize, check valencies, set aromaticity, conjugation and
> hybridization
>
> - The molecule is modified in place.
>
> - If sanitization fails, an exception will be thrown unless
> catchErrors is set
>
> ARGUMENTS:
>
> - mol: the molecule to be modified
> - sanitizeOps: (optional) sanitization operations to be carried out
> these should be constructed by or'ing together the
> operations in rdkit.Chem.SanitizeFlags
> - catchErrors: (optional) if provided, instead of raising an
> exception
> when sanitization fails (the default behavior), the
> operations that failed (as defined in
> rdkit.Chem.SanitizeFlags)
> is returned. Zero is returned on success.
>
>
>
> C++ signature :
> RDKit::MolOps::SanitizeFlags SanitizeMol(RDKit::ROMol {lvalue}
> [,unsigned int=rdkit.Chem.rdmolops.SanitizeFlags.SANITIZE_ALL
> [,bool=False]])
>
>
>
> An example of using it:
>
> #---------------------------
> In [6]: m = Chem.MolFromSmiles('c1cccc1',sanitize=False)
>
> In [7]: Chem.SanitizeMol(m)
> [06:17:24] Can't kekulize mol
>
> ---------------------------------------------------------------------------
> ValueError Traceback (most recent call last)
> /scratch/RDKit_sanit/<ipython-input-7-dd6845fa341c> in <module>()
> ----> 1 Chem.SanitizeMol(m)
>
> ValueError: Sanitization error: Can't kekulize mol
> #---------------------------
>
> That's the same as the current behavior.
>
> Now let's see what the problem was:
>
> #---------------------------
> In [8]: m = Chem.MolFromSmiles('c1cccc1',sanitize=False)
>
> In [9]: Chem.SanitizeMol(m,catchErrors=True)
> [06:17:41] Can't kekulize mol
>
> Out[9]: rdkit.Chem.rdmolops.SanitizeFlags.SANITIZE_KEKULIZE
> #---------------------------
>
> Ok, so it failed in sanitization, so let's try sanitizing the molecule
> without doing the kekulization step:
>
> #---------------------------
> In [10]: m = Chem.MolFromSmiles('c1cccc1',sanitize=False)
>
> In [11]:
> Chem.SanitizeMol(m,sanitizeOps=Chem.SanitizeFlags.SANITIZE_ALL^Chem.SanitizeFlags.SANITIZE_KEKULIZE)
> Out[11]: rdkit.Chem.rdmolops.SanitizeFlags.SANITIZE_NONE
> #---------------------------
>
> Note that there is a change even in the default behavior in that
> Chem.SanitizeMol now always returns a value. Previously it always
> returned None, but now you get a value back.
>
>
> Any comments or suggestions about the API?
> -greg
>
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Rdkit-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss