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.