def penalized_logP(mol_or_smiles, masked=False, default=-5): mol = get_mol(mol_or_smiles) if mol is None: return default reward = logP(mol) - SA(mol) - get_num_rings_6(mol) if masked and not mol_passes_filters(mol): return default return reward
def process_molecule(mol_row, isomeric): mol_row = mol_row.decode('utf-8') smiles, _id = mol_row.split() if not mol_passes_filters(smiles): return None smiles = Chem.MolToSmiles(Chem.MolFromSmiles(smiles), isomericSmiles=isomeric) return _id, smiles