Files
Ric 880a8e5725 Reformat Python code for 2023.03 release (#6294)
* run yapf

* run isort

---------

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
2023-04-28 06:53:56 +02:00
..
2018-04-10 17:47:37 +02:00

IFG Algorithm.

Implementation of

    An algorithm to identify functional groups in organic molecules
    Peter Ertl

    https://jcheminf.springeropen.com/articles/10.1186/s13321-017-0225-z


Authors:
    Richard Hall,
    Guillaume Godin modified function output to be more readable


    Usage:
    ```python
        # return the list of IFG (atomIds, atoms & type) for a molecule object:
        m = Chem.MolFromSmiles(smiles)
        fgs = identify_functional_groups(m)
        print fgs
    ```
    Output example:
        [IFG(atomIds=(2,), atoms='n', type='cnc'),
         IFG(atomIds=(4, 5, 6, 7), atoms='NS(=O)=O', type='cNS(c)(=O)=O'),
         IFG(atomIds=(12,), atoms='N', type='cN'),
         IFG(atomIds=(15,), atoms='n', type='cnc')]

Notes:

This implementation of Ertl paper was made by Richard Hall in summer 2017.
Cause RDKit and Peter tool can have distinct aromaticity dectection behaviours, list
of functionnal groups in aromatic rings may differ in presence of conjugated aromatics rings.