chemprep.fingerprints
1from rdkit import Chem 2from rdkit.Chem import AllChem, MACCSkeys 3from rdkit.Chem.rdmolops import RDKFingerprint 4from rdkit.Chem.AtomPairs import Pairs, Torsions 5from rdkit.Chem.Fingerprints import FingerprintMols 6 7def get_available_fingerprints(): 8 """ 9 Returns a list of available fingerprint types. 10 """ 11 return [ 12 "MACCS", 13 "RDKit", 14 "Topological/Daylight", 15 "AtomPair", 16 "TopologicalTorsion", 17 "Morgan", 18 "ECFP2", 19 "ECFP4", 20 "ECFP6", 21 "FCFP2", 22 "FCFP4", 23 "FCFP6", 24 ] 25 26def generate_fingerprint(smiles: str, fingerprint_type: str = "Morgan"): 27 """ 28 Generates a molecular fingerprint for a given SMILES string. 29 30 Args: 31 smiles: The SMILES string of the molecule. 32 fingerprint_type: The type of fingerprint to generate. 33 34 Returns: 35 The generated fingerprint. 36 """ 37 mol = Chem.MolFromSmiles(smiles) 38 if mol is None: 39 raise ValueError("Invalid SMILES string") 40 41 if fingerprint_type == "MACCS": 42 return MACCSkeys.GenMACCSKeys(mol) 43 elif fingerprint_type == "RDKit": 44 return RDKFingerprint(mol) 45 elif fingerprint_type == "Topological/Daylight": 46 return FingerprintMols.FingerprintMol(mol) 47 elif fingerprint_type == "AtomPair": 48 return Pairs.GetAtomPairFingerprint(mol) 49 elif fingerprint_type == "TopologicalTorsion": 50 return Torsions.GetTopologicalTorsionFingerprint(mol) 51 elif fingerprint_type == "Morgan": 52 return AllChem.GetMorganFingerprint(mol, 2) 53 elif fingerprint_type == "ECFP2": 54 return AllChem.GetMorganFingerprint(mol, 1) 55 elif fingerprint_type == "ECFP4": 56 return AllChem.GetMorganFingerprint(mol, 2) 57 elif fingerprint_type == "ECFP6": 58 return AllChem.GetMorganFingerprint(mol, 3) 59 elif fingerprint_type == "FCFP2": 60 return AllChem.GetMorganFingerprint(mol, 1, useFeatures=True) 61 elif fingerprint_type == "FCFP4": 62 return AllChem.GetMorganFingerprint(mol, 2, useFeatures=True) 63 elif fingerprint_type == "FCFP6": 64 return AllChem.GetMorganFingerprint(mol, 3, useFeatures=True) 65 else: 66 raise ValueError(f"Unsupported fingerprint type: {fingerprint_type}")
def
get_available_fingerprints():
8def get_available_fingerprints(): 9 """ 10 Returns a list of available fingerprint types. 11 """ 12 return [ 13 "MACCS", 14 "RDKit", 15 "Topological/Daylight", 16 "AtomPair", 17 "TopologicalTorsion", 18 "Morgan", 19 "ECFP2", 20 "ECFP4", 21 "ECFP6", 22 "FCFP2", 23 "FCFP4", 24 "FCFP6", 25 ]
Returns a list of available fingerprint types.
def
generate_fingerprint(smiles: str, fingerprint_type: str = 'Morgan'):
27def generate_fingerprint(smiles: str, fingerprint_type: str = "Morgan"): 28 """ 29 Generates a molecular fingerprint for a given SMILES string. 30 31 Args: 32 smiles: The SMILES string of the molecule. 33 fingerprint_type: The type of fingerprint to generate. 34 35 Returns: 36 The generated fingerprint. 37 """ 38 mol = Chem.MolFromSmiles(smiles) 39 if mol is None: 40 raise ValueError("Invalid SMILES string") 41 42 if fingerprint_type == "MACCS": 43 return MACCSkeys.GenMACCSKeys(mol) 44 elif fingerprint_type == "RDKit": 45 return RDKFingerprint(mol) 46 elif fingerprint_type == "Topological/Daylight": 47 return FingerprintMols.FingerprintMol(mol) 48 elif fingerprint_type == "AtomPair": 49 return Pairs.GetAtomPairFingerprint(mol) 50 elif fingerprint_type == "TopologicalTorsion": 51 return Torsions.GetTopologicalTorsionFingerprint(mol) 52 elif fingerprint_type == "Morgan": 53 return AllChem.GetMorganFingerprint(mol, 2) 54 elif fingerprint_type == "ECFP2": 55 return AllChem.GetMorganFingerprint(mol, 1) 56 elif fingerprint_type == "ECFP4": 57 return AllChem.GetMorganFingerprint(mol, 2) 58 elif fingerprint_type == "ECFP6": 59 return AllChem.GetMorganFingerprint(mol, 3) 60 elif fingerprint_type == "FCFP2": 61 return AllChem.GetMorganFingerprint(mol, 1, useFeatures=True) 62 elif fingerprint_type == "FCFP4": 63 return AllChem.GetMorganFingerprint(mol, 2, useFeatures=True) 64 elif fingerprint_type == "FCFP6": 65 return AllChem.GetMorganFingerprint(mol, 3, useFeatures=True) 66 else: 67 raise ValueError(f"Unsupported fingerprint type: {fingerprint_type}")
Generates a molecular fingerprint for a given SMILES string.
Args: smiles: The SMILES string of the molecule. fingerprint_type: The type of fingerprint to generate.
Returns: The generated fingerprint.