Skip to content
Snippets Groups Projects
Commit 8c21d2b3 authored by Hervé  MENAGER's avatar Hervé MENAGER
Browse files

modify FingerPrinter to use dicts instead of lists

Former-commit-id: e39dbb51e214e2b78e5cdcb3325aeb9ff2b106e9
parent e67b292b
No related branches found
No related tags found
No related merge requests found
...@@ -9,8 +9,8 @@ def mol2smi(mol_string): ...@@ -9,8 +9,8 @@ def mol2smi(mol_string):
class FingerPrinter(object): class FingerPrinter(object):
def __init__(self, name): def __init__(self, name="FP4"):
self.fingerprinter = ob.OBFingerprint.FindFingerprint("FP4") self.fingerprinter = ob.OBFingerprint.FindFingerprint(name)
self._smiles_parser = ob.OBConversion() self._smiles_parser = ob.OBConversion()
self._smiles_parser.SetInFormat("smi") self._smiles_parser.SetInFormat("smi")
...@@ -26,19 +26,16 @@ class FingerPrinter(object): ...@@ -26,19 +26,16 @@ class FingerPrinter(object):
self.fingerprinter.GetFingerprint(self.parse_smiles(smiles), fp) self.fingerprinter.GetFingerprint(self.parse_smiles(smiles), fp)
return fp return fp
def fp_list(self, smiles_list): def fp_dict(self, smiles_dict):
"generate a list of fingerprints from a list of SMILES strings" "generate a dict of {compound id: fingerprint} from a dict of {compound id: fingerprint}"
return [self.fp(smiles) for smiles in smiles_list] return {compound_id: self.fp(smiles_entry) for compound_id, smiles_entry in smiles_dict.items()}
def tanimoto_fps(self, smiles_query, fp_list): def tanimoto_fps(self, smiles_query, fp_dict):
"perform a tanimoto similarity search using a smiles query string on a fingerprints list" "perform a tanimoto similarity search using a smiles query string on a dict of {compound id: fingerprint}"
fp_query = self.fp(smiles_query) fp_query = self.fp(smiles_query)
db_tanimotos = [] return {compound_id: self.fingerprinter.Tanimoto(fp_query, fp_entry) for compound_id, fp_entry in fp_dict.items()}
for fp_entry in fp_list:
db_tanimotos.append(self.fingerprinter.Tanimoto(fp_query, fp_entry)) def tanimoto_smiles(self, query_smiles, smiles_dict):
return db_tanimotos "perform a tanimoto similarity search using a smiles query on a dict of {compound id: SMILES}"
fp_dict = self.fp_dict(smiles_dict)
def tanimoto_smiles(self, query_smiles, smiles_list): return self.tanimoto_fps(query_smiles, fp_dict)
"perform a tanimoto similarity search using a smiles query on a smiles list" \ No newline at end of file
fps = self.fp_list(smiles_list)
return self.tanimoto_fps(query_smiles, fps)
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment