From Command Line ========================== Analyze your dataset ----------------------- The command below will output the tanimoto similarity distribution among all dataset and all fingerprints, at the same time will show a plot of the two first components of the PCA over the fingerprint space coloured by similarity to your query molecule. If we hover the points of the plot we can inspect the different structures of the molecules. :: python -m analogs_finder.main --analysis #Use uniform manifold to plot the chemical space python -m analogs_finder.main analogs_finder/examples/database.sdf analogs_finder/examples/substructre_1.sdf --analysis --dim_type umap #Use pca to plot the chemical space python -m analogs_finder.main analogs_finder/examples/database.sdf analogs_finder/examples/substructre_1.sdf --analysis --dim_type pca We find the similarity_hist_DL.png: .. figure:: ../../images/fp_dist.png :scale: 80% :align: center And a firefox window opens retrieving and interactive plot: .. figure:: ../../images/chemical_space.png :scale: 80% :align: center N most similar structures --------------------------------------- Given a database.sdf and a molecule.sdf will output the n most similar structures to the query molecule (--n_structs to specify the number of outputted structures) :: python -m analogs_finder.mainpy --sb --n --output python -m analogs_finder.main analogs_finder/examples/database.sdf analogs_finder/examples/substructre_1.sdf --sb --n 20 --output most_similars.sdf Tanimoto similarity search ------------------------------------------------------ Will retrieve all molecules on the database.sdf that has a tanimoto similarity higher than treshold in respect to the query molecule (0.7 by default, you can specify by --tresh 0.6) :: python -m analogs_finder.main --treshold tanimoto_treshold --output python -m analogs_finder.main analogs_finder/examples/database.sdf analogs_finder/examples/substructre_1.sdf --output most_similars.sdf --tresh 0.7 Search for one or more substructure -------------------------------------------------- For each entry in database.py search for the substructure/s present in the query_molecule.sdf :: python -m analogs_finder.main --substructure --output python -m analogs_finder.main analogs_finder/examples/database.sdf analogs_finder/examples/substructre_1.sdf --output most_similars.sdf --substructure Search for at least one of the substructures in each sdf file ------------------------------------------------------------------- For each entry in database.py search for **at least** one substructure present in the **each** sdf file :: python -m analogs_finder.main --combi_subsearch --output python -m analogs_finder.main analogs_finder/examples/database.sdf analogs_finder/examples/substructre_*.sdf --output most_similars.sdf --combi_subsearch Search for similarity and substructure ---------------------------------------- For each entry in database.py search for **at least** one substructure present in the **each** sdf file :: python -m analogs_finder.main --output --hybrid python -m analogs_finder.main analogs_finder/examples/database.sdf analogs_finder/examples/substructure_2.sdf --output most_similars.sdf --hybrid analogs_finder/examples/substructure_1.sdf Change fingerprint type ---------------------------------------- :: python -m analogs_finder.main --output --hybrid --fp_type [ DL, circular, MACCS, torsions, pharm] python -m analogs_finder.main analogs_finder/examples/database.sdf analogs_finder/examples/substructre_2.sdf --output most_similars.sdf --hybrid analogs_finder/examples/substructure_1.sdf --fp_type circular Use all fingerprints in one job with different tresholds -------------------------------------------------------------- :: python -m analogs_finder.main --tresh --fp_type python -m analogs_finder.main ~/repos/analogs_finder/tests/data/database.sdf ~/repos/analogs_finder/tests/data/substructre_1.sdf --tresh 0.7 0.4 0.7 0.27 --fp_type DL circular torsions MACCS Turbo search method: ---------------------- Instead of just querying the reference molecule and setting a tanimoto treshold, we first look for the N most similar neighbours and we run similarity search with the reference molecule and theses neghbours, finally performing data fusion. For more details: https://onlinelibrary.wiley.com/doi/abs/10.1002/sam.10037 :: python -m analogs_finder.main --turbo --neighbours --tresh --fp_type python -m analogs_finder.main ~/repos/analogs_finder/tests/data/database.sdf ~/repos/analogs_finder/tests/data/substructre_1.sdf --turbo --neighbours 5 --tresh 0.7 --fp_type circular PostFilter by: ---------------- To postfilter, add the flags to apply the filters after the method search command. For instance, here we remove duplicates after doing a tanimoto similarity search :: python -m analogs_finder.main result_search.sdf substructre_1.sdf --most_similars --remove_duplicates To postfilter a previously done analog search provide the sdf of the previous analog search as the database followed by -only_postprocess. Here, we remove duplicates of the previous analog serch resut_search.sdf :: python -m analogs_finder.main result_search.sdf substructre_1.sdf --only_postfilter --remove_duplicates Position of growing +++++++++++++++++++++++ To only keep the molecules that have a radical growin in a specific initial atom (atom 2 for example) use the command below. To know the indexes of the atoms you can select them with maestro/pymol with the option of labeling atoms by index. :: python -m analogs_finder.main result_search.sdf substructre_1.sdf --only_postfilter --atom_to_grow 2 It is also possible to sum them up. For intance, here we keep analogs grown by the atom index 2 **or** 4 :: python -m analogs_finder.main result_search.sdf substructre_1.sdf --only_postfilter --atom_to_grow 2 4 To keep analogs that have no radical in a specific atom use --atom_to_avoid. For example, next we keep all molecules that have no radical in the atom index 2 **and** 4 :: python -m analogs_finder.main result_search.sdf substructre_1.sdf --only_postfilter --atom_to_avoid 2 4