forked from enviPath/enviPy
Functional Group Calculation (#44)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch> Reviewed-on: enviPath/enviPy#44
This commit is contained in:
@ -12,6 +12,7 @@ from rdkit.Chem import MACCSkeys
|
||||
from rdkit.Chem import rdChemReactions
|
||||
from rdkit.Chem.Draw import rdMolDraw2D
|
||||
from rdkit.Chem.MolStandardize import rdMolStandardize
|
||||
from rdkit.Contrib.IFG import ifg
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
RDLogger.DisableLog('rdApp.*')
|
||||
@ -87,6 +88,21 @@ class FormatConverter(object):
|
||||
bitvec = MACCSkeys.GenMACCSKeys(mol)
|
||||
return bitvec.ToList()
|
||||
|
||||
@staticmethod
|
||||
def get_functional_groups(smiles: str) -> List[str]:
|
||||
res = list()
|
||||
|
||||
try:
|
||||
m = Chem.MolFromSmiles(smiles)
|
||||
fgs = ifg.identify_functional_groups(m)
|
||||
for fg in fgs:
|
||||
# TODO atoms or type?
|
||||
res.append(fg.atoms)
|
||||
except AttributeError:
|
||||
logger.debug(f"Could not get functional groups for {smiles}")
|
||||
|
||||
return res
|
||||
|
||||
@staticmethod
|
||||
def to_svg(smiles, mol_size=(200, 150), kekulize=True):
|
||||
mol = FormatConverter.from_smiles(smiles)
|
||||
|
||||
Reference in New Issue
Block a user