def reactants_to_fingerprint(args, config): """ Convert a SMILES string of reactants to a fingerprint :param args: the SMILES in the first element :type args: tuple :param config: the settings :type config: Config :return: the fingerprint :rtype: numpy.ndarray """ reactants_smiles = args[0] fingerprints = [] for smiles in reactants_smiles.split("."): try: mol = Molecule(smiles=smiles, sanitize=True) except MoleculeException: pass else: if mol.has_atom_mapping(): fingerprints.append( mol.fingerprint( config["fingerprint_radius"], config["fingerprint_len"] ) ) return sum(fingerprints)
def test_fingerprint(): mol = Molecule(smiles="O") assert sum(mol.fingerprint(2)) == 1 assert sum(mol.fingerprint(2, 10)) == 1