jannisborn commited on
Commit
ec53722
1 Parent(s): 8e66b23
README.md CHANGED
@@ -1,5 +1,5 @@
1
  ---
2
- title: PaccMann^GP
3
  emoji: 💡
4
  colorFrom: green
5
  colorTo: blue
@@ -7,7 +7,7 @@ sdk: gradio
7
  sdk_version: 3.9.1
8
  app_file: app.py
9
  pinned: false
10
- python_version: 3.8.13
11
  pypi_version: 20.2.4
12
  duplicated_from: GT4SD/paccmann_gp
13
  ---
 
1
  ---
2
+ title: PaccMann
3
  emoji: 💡
4
  colorFrom: green
5
  colorTo: blue
 
7
  sdk_version: 3.9.1
8
  app_file: app.py
9
  pinned: false
10
+ python_version: 3.7.16
11
  pypi_version: 20.2.4
12
  duplicated_from: GT4SD/paccmann_gp
13
  ---
app.py CHANGED
@@ -1,91 +1,105 @@
1
  import logging
2
  import pathlib
3
- from typing import List
4
 
 
 
5
  import gradio as gr
 
6
  import pandas as pd
7
- from gt4sd.algorithms.controlled_sampling.paccmann_gp import (
8
- PaccMannGPGenerator,
9
- PaccMannGP,
10
- )
11
- from gt4sd.algorithms.controlled_sampling.paccmann_gp.implementation import (
12
- MINIMIZATION_FUNCTIONS,
13
- )
14
-
15
- from gt4sd.algorithms.registry import ApplicationsRegistry
16
-
17
- from utils import draw_grid_generate
18
 
19
  logger = logging.getLogger(__name__)
20
  logger.addHandler(logging.NullHandler())
21
 
22
-
23
- MINIMIZATION_FUNCTIONS.pop("callable", None)
24
- MINIMIZATION_FUNCTIONS.pop("molwt", None)
 
 
 
25
 
26
 
27
  def run_inference(
28
- algorithm_version: str,
29
- targets: List[str],
30
- protein_target: str,
31
- temperature: float,
32
- length: float,
33
- number_of_samples: int,
34
- limit: int,
35
- number_of_steps: int,
36
- number_of_initial_points: int,
37
- number_of_optimization_rounds: int,
38
- sampling_variance: float,
39
- samples_for_evaluation: int,
40
- maximum_number_of_sampling_steps: int,
41
- seed: int,
42
  ):
43
-
44
- config = PaccMannGPGenerator(
45
- algorithm_version=algorithm_version.split("_")[-1],
46
- batch_size=32,
47
- temperature=temperature,
48
- generated_length=length,
49
- limit=limit,
50
- acquisition_function="EI",
51
- number_of_steps=number_of_steps,
52
- number_of_initial_points=number_of_initial_points,
53
- initial_point_generator="random",
54
- number_of_optimization_rounds=number_of_optimization_rounds,
55
- sampling_variance=sampling_variance,
56
- samples_for_evaluation=samples_for_evaluation,
57
- maximum_number_of_sampling_steps=maximum_number_of_sampling_steps,
58
- seed=seed,
59
- )
60
- target = {i: {} for i in targets}
61
- if "affinity" in targets:
62
- if protein_target == "" or not isinstance(protein_target, str):
63
- raise ValueError(
64
- f"Protein target must be specified for affinity prediction, not ={protein_target}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  )
66
- target["affinity"]["protein"] = protein_target
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  else:
68
- protein_target = ""
69
-
70
- model = PaccMannGP(config, target=target)
71
- samples = list(model.sample(number_of_samples))
72
 
73
- return draw_grid_generate(
74
- samples=samples,
75
- n_cols=5,
76
- properties=set(target.keys()),
77
- protein_target=protein_target,
78
  )
79
 
 
80
 
81
- if __name__ == "__main__":
82
 
83
- # Preparation (retrieve all available algorithms)
84
- all_algos = ApplicationsRegistry.list_available()
85
- algos = [
86
- x["algorithm_version"]
87
- for x in list(filter(lambda x: "PaccMannGP" in x["algorithm_name"], all_algos))
88
- ]
89
 
90
  # Load metadata
91
  metadata_root = pathlib.Path(__file__).parent.joinpath("model_cards")
@@ -93,7 +107,6 @@ if __name__ == "__main__":
93
  examples = pd.read_csv(
94
  metadata_root.joinpath("examples.csv"), header=None, sep="|"
95
  ).fillna("")
96
- examples[1] = examples[1].apply(eval)
97
 
98
  with open(metadata_root.joinpath("article.md"), "r") as f:
99
  article = f.read()
@@ -102,63 +115,26 @@ if __name__ == "__main__":
102
 
103
  demo = gr.Interface(
104
  fn=run_inference,
105
- title="PaccMannGP",
106
  inputs=[
107
- gr.Dropdown(algos, label="Algorithm version", value="v0"),
108
- gr.CheckboxGroup(
109
- choices=list(MINIMIZATION_FUNCTIONS.keys()),
110
- value=["qed"],
111
- multiselect=True,
112
- label="Property goals",
113
- ),
114
  gr.Textbox(
115
- label="Protein target",
116
- placeholder="MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTT",
117
  lines=1,
118
  ),
119
- gr.Slider(minimum=0.5, maximum=2, value=1, label="Decoding temperature"),
120
- gr.Slider(
121
- minimum=5,
122
- maximum=400,
123
- value=100,
124
- label="Maximal sequence length",
125
- step=1,
126
- ),
127
- gr.Slider(
128
- minimum=1, maximum=50, value=10, label="Number of samples", step=1
129
- ),
130
- gr.Slider(minimum=1, maximum=8, value=4.0, label="Limit"),
131
- gr.Slider(minimum=1, maximum=32, value=8, label="Number of steps", step=1),
132
- gr.Slider(
133
- minimum=1, maximum=32, value=4, label="Number of initial points", step=1
134
- ),
135
- gr.Slider(
136
- minimum=1,
137
- maximum=4,
138
- value=1,
139
- label="Number of optimization rounds",
140
- step=1,
141
- ),
142
- gr.Slider(minimum=0.01, maximum=1, value=0.1, label="Sampling variance"),
143
- gr.Slider(
144
- minimum=1,
145
- maximum=10,
146
- value=1,
147
- label="Samples used for evaluation",
148
- step=1,
149
  ),
150
- gr.Slider(
151
- minimum=1,
152
- maximum=64,
153
- value=4,
154
- label="Maximum number of sampling steps",
155
- step=1,
156
  ),
157
- gr.Number(value=42, label="Seed", precision=0),
158
  ],
159
- outputs=gr.HTML(label="Output"),
160
  article=article,
161
  description=description,
162
- examples=examples.values.tolist(),
163
  )
164
  demo.launch(debug=True, show_error=True)
 
1
  import logging
2
  import pathlib
3
+ from typing import List, Optional
4
 
5
+ from rdkit import Chem
6
+ from tqdm import tqdm
7
  import gradio as gr
8
+ from submission import submission
9
  import pandas as pd
10
+ from configuration import GENE_EXPRESSION_METADATA
 
 
 
 
 
 
 
 
 
 
11
 
12
  logger = logging.getLogger(__name__)
13
  logger.addHandler(logging.NullHandler())
14
 
15
+ site_mapper = {
16
+ "central_nervous_system": "CNS",
17
+ "haematopoietic_and_lymphoid_tissue": "Haema_lymph",
18
+ "upper_aerodigestive_tract": "digestive",
19
+ "autonomic_ganglia": "ganglia",
20
+ }
21
 
22
 
23
  def run_inference(
24
+ smiles: Optional[str],
25
+ smiles_path: Optional[str],
26
+ omic_path: Optional[str],
27
+ confidence: bool,
 
 
 
 
 
 
 
 
 
 
28
  ):
29
+ # Read SMILES
30
+ if not isinstance(smiles_path, (str, type(None))):
31
+ raise TypeError(
32
+ f"SMILES file pass has to be None or str, not {type(smiles_path)}"
33
+ )
34
+ if smiles is None and smiles_path is None:
35
+ raise TypeError(f"Pass either single SMILES or a file")
36
+ elif smiles is not None:
37
+ smiles = [smiles]
38
+ elif smiles_path is not None:
39
+ smiles_data = pd.read_csv(smiles_path, sep="\t", header=False)
40
+ smiles = smiles_data[0]
41
+ for smi in smiles:
42
+ if Chem.MolFromSmiles(smi) is None:
43
+ raise ValueError(f"Found invalid SMILES {smi}")
44
+
45
+ # Read omics and otherwise load baseline
46
+ if not isinstance(omic_path, (str, type(None))):
47
+ raise TypeError(f"Omics file pass has to be None or str, not {type(omic_path)}")
48
+
49
+ # ToDo: Add progress bar for multiple smiles
50
+ results = {}
51
+ for smi in tqdm(smiles, total=len(smiles)):
52
+ result = submission(
53
+ drug={"smiles": smi},
54
+ workspace_id="emulated_workspace_id",
55
+ task_id="emulated_task_id",
56
+ estimate_confidence=confidence,
57
+ omics_file=omic_path,
58
+ )
59
+ # For the moment no attention analysis
60
+ result.pop("gene_attention")
61
+ result.pop("smiles_attention", None)
62
+ result.pop("IC50")
63
+
64
+ results[f"IC50_{smi}"] = result["log_micromolar_IC50"].squeeze().round(3)
65
+ results[f"IC50_{smi}"].shape
66
+ if confidence:
67
+ results[f"aleatoric_confidence_{smi}"] = (
68
+ result["aleatoric_confidence"].squeeze().round(3)
69
+ )
70
+ results[f"epistemic_confidence_{smi}"] = (
71
+ result["aleatoric_confidence"].squeeze().round(3)
72
  )
73
+ print(results)
74
+ predicted_df = pd.DataFrame(results)
75
+
76
+ # Prepare DF to visualize
77
+ if omic_path is None:
78
+ df = GENE_EXPRESSION_METADATA
79
+ print(df.columns)
80
+ df.drop(
81
+ [
82
+ "histology",
83
+ "cell_line_name",
84
+ "IC50 (min/max scaled)",
85
+ "IC50 (log(μmol))",
86
+ ],
87
+ axis=1,
88
+ inplace=True,
89
+ )
90
+ df["site"] = df["site"].apply(lambda x: site_mapper.get(x, x))
91
+ df["cell_line"] = df["cell_line"].apply(lambda x: x.split("_")[0])
92
  else:
93
+ pass
 
 
 
94
 
95
+ result_df = pd.concat(
96
+ [df["cell_line"], predicted_df, df.drop(["cell_line"], axis=1)], axis=1
 
 
 
97
  )
98
 
99
+ return result_df, result_df
100
 
 
101
 
102
+ if __name__ == "__main__":
 
 
 
 
 
103
 
104
  # Load metadata
105
  metadata_root = pathlib.Path(__file__).parent.joinpath("model_cards")
 
107
  examples = pd.read_csv(
108
  metadata_root.joinpath("examples.csv"), header=None, sep="|"
109
  ).fillna("")
 
110
 
111
  with open(metadata_root.joinpath("article.md"), "r") as f:
112
  article = f.read()
 
115
 
116
  demo = gr.Interface(
117
  fn=run_inference,
118
+ title="PaccMann",
119
  inputs=[
 
 
 
 
 
 
 
120
  gr.Textbox(
121
+ label="SMILES",
122
+ placeholder="COc1cc(O)c2c(c1)C=CCC(O)C(O)C(=O)C=CCC(C)OC2=O",
123
  lines=1,
124
  ),
125
+ gr.File(
126
+ file_types=[".smi", ".tsv"],
127
+ label="List of SMILES (tab-separated file with SMILES in first column)",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  ),
129
+ gr.File(
130
+ file_types=[".csv"],
131
+ label="Transcriptomics data with cell lines in rows and genes in columns",
 
 
 
132
  ),
133
+ gr.Radio(choices=[True, False], label="Estimate confidence", value=False),
134
  ],
135
+ outputs=[gr.DataFrame(label="Output"), gr.File()],
136
  article=article,
137
  description=description,
138
+ # examples=examples.values.tolist(),
139
  )
140
  demo.launch(debug=True, show_error=True)
artifacts/dump_cos_data.sh ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ mc cp chcls-cos/paccmann-storage/model.pt model.pt
4
+ mc cp chcls-cos/paccmann-storage/model.json model.json
5
+ mc cp chcls-cos/paccmann-storage/gene_expression_standardization.pkl gene_expression_standardization.pkl
6
+ mc cp chcls-cos/paccmann-storage/genes.pkl genes.pkl
7
+ mc cp chcls-cos/paccmann-storage/gene_expression.csv.zip gene_expression.csv.zip
8
+ mc cp chcls-cos/paccmann-storage/smiles_language.pkl smiles_language.pkl
9
+
artifacts/gdsc_1_2_ccle.smi ADDED
@@ -0,0 +1,893 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ CN(C)CCNC(=O)c1cc2CSc3cc(Cl)ccc3-c2s1 CIL55
2
+ CC(C)N1C(=O)S\C(=C\c2ccc(Sc3nc4ccccc4[nH]3)o2)C1=O BRD4132
3
+ C(Cn1c2ccccc2c2ccccc12)c1nc2ccccc2[nH]1 BRD6340
4
+ C1CN(CCO1)c1nnc(-c2ccccc2)c(n1)-c1ccccc1 ML006
5
+ OC(CN1CCNCC1)Cn1c2ccc(Br)cc2c2cc(Br)ccc12 Bax channel blocker
6
+ CC(C)(C)c1ccc2cc(C#N)c(cc2c1)C#N BRD9876
7
+ CC(=CC=CC(=CC(=O)O)C)C=CC1=C(C)CCCC1(C)C tretinoin
8
+ CC(=C)[C@@H]1CC[C@@]2(CC[C@]3(C)[C@H](CC[C@@H]4[C@@]5(C)CC[C@H](O)C(C)(C)[C@@H]5CC[C@@]34C)[C@@H]12)C(O)=O betulinic acid
9
+ Oc1ccc(CCC(=O)c2c(O)cc(O)cc2O)cc1 phloretin
10
+ O=C1N(C2CCC(=O)NC2=O)C(=O)c2ccccc12 thalidomide
11
+ CC(C)c1c(O)c(O)c(C=O)c2c(O)c(c(C)cc12)-c1c(C)cc2c(C(C)C)c(O)c(O)c(C=O)c2c1O gossypol
12
+ OC(=O)CCCc1ccc(cc1)N(CCCl)CCCl chlorambucil
13
+ Fc1c[nH]c(=O)[nH]c1=O fluorouracil
14
+ Oc1ccc(cc1)\C=C\C(=O)c1ccc(O)cc1O isoliquiritigenin
15
+ CN\C(NCCSCc1nc[nH]c1C)=N/C#N cimetidine
16
+ Nc1ncn([C@@H]2O[C@H](CO)[C@@H](O)[C@H]2O)c(=O)n1 azacitidine
17
+ CN1CCN(CCCN2c3ccccc3Sc3ccc(cc23)C(F)(F)F)CC1 trifluoperazine
18
+ CC(=O)O[C@@H]1C2=C(C)[C@H](C[C@@](O)([C@@H](OC(=O)c3ccccc3)C3[C@@]4(CO[C@@H]4C[C@H](O)[C@@]3(C)C1=O)OC(C)=O)C2(C)C)OC(=O)[C@H](O)[C@@H](NC(=O)c1ccccc1)c1ccccc1 paclitaxel
19
+ CC\C(c1ccccc1)=C(/c1ccccc1)c1ccc(OCCN(C)C)cc1 tamoxifen
20
+ O=C1O[Pt]OC(=O)C11CCC1 carboplatin
21
+ COc1cc(cc(OC)c1O)[C@H]1[C@@H]2C(COC2=O)C(O[C@@H]2O[C@@H]3CO[C@H](OC3[C@H](O)[C@H]2O)c2cccs2)c2cc3OCOc3cc12 teniposide
22
+ CCCc1nn(C)c2C(=O)NC(=Nc12)c3cc(ccc3OCC)S(=O)(=O)N4CCN(C)CC4 sildenafil
23
+ CCC(C)(C)C(=O)O[C@H]1C[C@@H](C)C=C2C=C[C@H](C)[C@H](CC[C@@H]3C[C@@H](O)CC(=O)O3)[C@@H]12 simvastatin
24
+ CCCCc1ccc2[nH]c(NC(=O)OC)nc2c1 parbendazole
25
+ CNNCc1ccc(cc1)C(=O)NC(C)C procarbazine
26
+ COc1cc(C=CC(=O)CC(=O)C=Cc2ccc(O)c(OC)c2)ccc1O curcumin
27
+ Cc1cc(C2CCCCC2)n(O)c(=O)c1 ciclopirox
28
+ Oc1cc(O)c2C[C@@H](OC(=O)c3cc(O)c(O)c(O)c3)[C@H](Oc2c1)c1cc(O)c(O)c(O)c1 epigallocatechin-3-monogallate
29
+ Oc1cc(O)c2c(c1)oc(-c1cc(O)c(O)c(O)c1)c(O)c2=O myricetin
30
+ CN(Cc1cnc2nc(N)nc(N)c2n1)c1ccc(cc1)C(=O)N[C@@H](CCC(O)=O)C(O)=O methotrexate
31
+ CCC(C)C(=O)OC1CC(C)C=C2C=CC(C)C(CCC(O)CC(O)CC(O)=O)C12 lovastatin
32
+ Cc1onc(c1-c1ccc(cc1)S(N)(=O)=O)-c1ccccc1 valdecoxib
33
+ ClCCN(CCCl)P1(=O)NCCCO1 cyclophosphamide
34
+ CN(C)\N=N\c1[nH]cnc1C(N)=O dacarbazine
35
+ Oc1ccc(Cl)cc1C(=O)Nc1ccc(cc1Cl)[N+]([O-])=O niclosamide
36
+ CN1CCN(CCCN2c3ccccc3Sc3ccc(Cl)cc23)CC1 prochlorperazine
37
+ ClCCNP1(=O)OCCCN1CCCl ifosfamide
38
+ COc1cccc2C(=O)c3c(O)c4C[C@](O)(C[C@H](O[C@H]5C[C@H](N)[C@H](O)[C@H](C)O5)c4c(O)c3C(=O)c12)C(=O)CO doxorubicin
39
+ C[C@@H]1O[C@@H](O[C@H]2C[C@@H](O)[C@]3(CO)[C@H]4[C@H](O)C[C@]5(C)[C@H](CC[C@]5(O)[C@@H]4CC[C@]3(O)C2)C2=CC(=O)OC2)[C@H](O)[C@H](O)[C@H]1O ouabain
40
+ COc1ccc(cc1)N(C(=O)c1ccccc1)S(=O)(=O)c1cc(OC)ccc1OC BRD9647
41
+ COc1cc(cc(OC)c1OC)\C=C\C(=O)N1CCC=CC1=O piperlongumine
42
+ COc1cc(CCC(=O)N2CCC=CC2=O)cc(OC)c1OC BRD-K26531177
43
+ CCN(CC)CCCC(C)Nc1nc(C)cc(Nc2ccc3nc(C)cc(N)c3c2)n1 NSC23766
44
+ O=C1c2ccccc2-c2n[nH]c3cccc1c23 pyrazolanthrone
45
+ CCCCCCCCCCCCC\C=C\[C@@H](O)[C@H](CO)NC(=O)CCCCC C6-ceramide
46
+ CC[C@@]1(O)C(=O)OCc2c1cc1-c3nc4ccc(O)c(CN(C)C)c4cc3Cn1c2=O topotecan
47
+ CC(C)n1cnc2c(NCc3ccccc3)nc(NCCO)nc12 N9-isopropylolomoucine
48
+ CC(Nc1nc(nc2ccccc12)N1CCCC1)c1ccccc1 importazole
49
+ COc1cc(cc(OC)c1O)[C@H]1[C@@H]2[C@H](COC2=O)[C@H](O[C@@H]2O[C@@H]3CO[C@@H](C)O[C@H]3[C@H](O)[C@H]2O)c2cc3OCOc3cc12 etoposide
50
+ OCC1(CO)N2CCC(CC2)C1=O PRIMA-1
51
+ CO[C@H]1C[C@H](C)CC2=C(NCC=C)C(=O)C=C(NC(=O)\C(C)=C\C=C/[C@H](OC)[C@@H](OC(N)=O)\C(C)=C\[C@H](C)[C@H]1O)C2=O tanespimycin
52
+ Cc1ccc2N=C3N(CCC3(O)C(=O)c2c1)c1ccccc1 blebbistatin
53
+ C[C@H]1[C@H]2[C@H](Cc3ccccc3)NC(=O)[C@]22OC(=O)\C=C\[C@H](O)CCC[C@@H](C)C\C=C\[C@H]2[C@H](O)C1=C cytochalasin B
54
+ OCCSC1=C(SCCO)C(=O)c2ccccc2C1=O NSC95397
55
+ CCCC[C@@H](C)\C=C(C)\C=C(/C)C(=O)NC1=C[C@@](O)(\C=C\C=C\C=C\C(=O)NC2C(=O)CCC2=O)[C@@H]2O[C@@H]2C1=O manumycin A
56
+ CO[C@]12[C@H]3N[C@H]3CN1C1=C([C@H]2COC(N)=O)C(=O)C(N)=C(C)C1=O mitomycin
57
+ CO[C@@H]1C[C@@H](CC[C@H]1O)\C=C(/C)[C@H]1OC(=O)[C@@H]2CCCCN2C(=O)C(=O)[C@]2(O)O[C@@H]([C@H](C[C@H]2C)OC)[C@H](C[C@@H](C)C\C(C)=C\[C@@H](CC=C)C(=O)C[C@H](O)[C@H]1C)OC tacrolimus
58
+ Cc1ccc(cc1)C(=O)Cn1c2CCCCc2sc1=N pifithrin-alpha
59
+ NC(=O)c1ccc(cc1)-c1nc(c([nH]1)-c1ccccn1)-c1ccc2OCOc2c1 SB-431542
60
+ CN[C@@H]1C[C@H]2O[C@@](C)([C@@H]1OC)n1c3ccccc3c3c4CNC(=O)c4c4c5ccccc5n2c4c13 staurosporine
61
+ Oc1cc(ccc1NC(=O)Nc1ccccc1Br)[N+]([O-])=O SB-225002
62
+ COc1cc2ncnc(Nc3cccc(Br)c3)c2cc1OC PD 153035
63
+ C\C=C\C\C=C\CCC(=O)[C@H]1O[C@H]1C(N)=O cerulenin
64
+ C1CCC(CC1)n1cnc2c(Nc3ccc(cc3)N3CCOCC3)nc(Oc3cccc4ccccc34)nc12 purmorphamine
65
+ O\N=C1/C(Nc2ccccc12)=C1/C(=O)Nc2cc(Br)ccc12 GSK-3 inhibitor IX
66
+ Cc1nc(Nc2ncc(s2)C(=O)Nc2c(C)cccc2Cl)cc(n1)N1CCN(CCO)CC1 dasatinib
67
+ COc1cc2ncnc(Nc3ccc(F)c(Cl)c3)c2cc1OCCCN1CCOCC1 gefitinib
68
+ COCCOc1cc2ncnc(Nc3cccc(c3)C#C)c2cc1OCCOC erlotinib
69
+ COCCOC(=O)N1C(=O)[C@]2([C@@H]([C@@H]3N([C@@H]2c2ccccc2OCCO)[C@H]([C@H](OC3=O)c2ccccc2)c2ccccc2)C(=O)NCC=C)c2cc(ccc12)C#CCC(C(=O)OC)C(=O)OC BRD-K94991378
70
+ COc1cc2nc(nc(NC3CCN(Cc4ccccc4)CC3)c2cc1OC)N1CCCN(C)CC1 BIX-01294
71
+ CC(=O)Nc1ccc(cc1)C(=O)Nc1ccccc1N tacedinaline
72
+ Cc1[nH]c2ccccc2c1CCNCc1ccc(\C=C\C(=O)NO)cc1 LBH-589
73
+ Cc1ccccc1-n1c(Cn2cnc3c(N)ncnc23)nc2cccc(C)c2c1=O IC-87114
74
+ CCC1NC(=O)C([C@H](O)[C@H](C)C\C=C\C)N(C)C(=O)C(C(C)C)N(C)C(=O)C(CC(C)C)N(C)C(=O)C(CC(C)C)N(C)C(=O)[C@@H](C)NC(=O)C(C)NC(=O)C(CC(C)C)N(C)C(=O)C(NC(=O)C(CC(C)C)N(C)C(=O)CN(C)C1=O)C(C)C ciclosporin
75
+ ONC(=O)CCCCCCC(=O)Nc1ccccc1 vorinostat
76
+ CO[C@@H]1C[C@H](C[C@@H](C)[C@@H]2CC(=O)[C@H](C)\C=C(C)\[C@@H](O)[C@@H](OC)C(=O)[C@H](C)C[C@H](C)\C=C\C=C\C=C(C)\[C@H](C[C@@H]3CC[C@@H](C)[C@@](O)(O3)C(=O)C(=O)N3CCCC[C@H]3C(=O)O2)OC)CC[C@H]1O sirolimus
77
+ O=c1cc(oc(c1)-c1cccc2Sc3ccccc3Sc12)N1CCOCC1 KU-55933
78
+ N[C@@H](CC(=O)N1CCn2c(C1)nnc2C(F)(F)F)Cc1cc(F)c(F)cc1F sitagliptin
79
+ CC1(C)CCC(C)(C)c2cc(ccc12)C(=O)Nc1ccc(cc1)C(O)=O AM-580
80
+ CCCCCCCCCC(=O)N[C@H](CN1CCOCC1)[C@H](O)c1ccccc1 PDMP
81
+ COC(=O)C(CC#Cc1ccc2NC(=O)[C@@]3([C@H]([C@H]4N([C@H]3c3ccccc3OCCO)[C@@H]([C@@H](OC4=O)c3ccccc3)c3ccccc3)C(=O)N3CCN(CC3)c3ncccn3)c2c1)C(=O)OC BRD-K71935468
82
+ CC(C)C[C@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CC(C)C)NC(=O)OCc1ccccc1)C=O MG-132
83
+ Nc1ccccc1NC(=O)c1ccc(CNC(=O)OCc2cccnc2)cc1 entinostat
84
+ ONC(=O)\C=C\c1cccc(c1)S(=O)(=O)Nc1ccccc1 belinostat
85
+ N[C@H](CSCCB(O)O)C(O)=O BEC
86
+ CC[C@@H](C)[C@@H]1NC(=O)[C@H](Cc2cn(OC)c3ccccc23)NC(=O)[C@H](CCCCCC(=O)CC)NC(=O)[C@H]2CCCCN2C1=O apicidin
87
+ CC(=O)Nc1ccc(cc1)C(=O)Nc1cc(ccc1N)-c1cccs1 Merck60
88
+ CN1CCCCC1NC(=O)[C@H](CCCCCC(C)=O)C(=O)Nc1nc(cs1)-c1ccccc1 BRD-A94377914
89
+ CCCCCCN(CCCCCC)C(=O)Cc1c([nH]c2ccccc12)-c1ccc(F)cc1 FGIN-1-27
90
+ CCN(CC)c1ccc(cc1[N+]([O-])=O)C1=NNC(=O)CC1C compound 1B
91
+ CC[C@]1(O)C[C@@H]2CN(C1)CCc1c([nH]c3ccccc13)[C@@](C2)(C(=O)OC)c1cc2c(cc1OC)N(C=O)[C@@H]1[C@]22CCN3CC=C[C@](CC)([C@@H]23)[C@@H](OC(C)=O)[C@]1(O)C(=O)OC vincristine
92
+ Nc1ccn([C@@H]2O[C@H](CO)[C@@H](O)[C@@H]2O)c(=O)n1 cytarabine hydrochloride
93
+ CCC(C)n1ncn(-c2ccc(cc2)N2CCN(CC2)c2ccc(OCC3COC(Cn4cncn4)(O3)c3ccc(Cl)cc3Cl)cc2)c1=O itraconazole
94
+ CCOc1ccccc1-n1c(=O)c2ccccc2nc1C(C)N1CCN(CC1)C(=O)COc1ccc(Cl)cc1 erastin
95
+ Cc1cc(C(=O)CN2C(=O)CCC2=O)c(C)n1Cc1ccccc1 ML031
96
+ ON=C1c2cc(ccc2-c2ccc(cc12)S(=O)(=O)N1CCCCC1)S(=O)(=O)N1CCCCC1 CIL56
97
+ CCOc1ccccc1C1CC(=O)Nc2cc3OCOc3cc12 FQI-1
98
+ COc1ccc(cc1[N+]([O-])=O)S(=O)(=O)N(C(C)=O)c1ccc(OC(C)=O)c2ccccc12 BRD-K92856060
99
+ O=c1n(Cc2ccccc2)c(\C=C\c2cccnc2)nc2ccccc12 B02
100
+ ClC1=C(NCC=C)C(=O)c2ccccc2C1=O BRD-K45681478
101
+ Brc1cc2OCOc2cc1C1Nc2ccccc2C2C=CCC12 ML050
102
+ COc1ccc(cc1Cl)N(C(C(=O)NCCc1ccccc1)c1cccs1)C(=O)CCl ML162
103
+ N=C(NOC(=O)C12CC3CC(CC(C3)C1)C2)c1ccccc1 CIL41
104
+ OC(=O)c1cc2cc(OCc3ccccc3)ccc2[nH]1 NSC30930
105
+ Clc1ccc(CC(=N)NOC(=O)c2cccc3ccccc23)cc1 CIL70
106
+ CC1(C)CN=C(S1)N1CCN(CC1)c1ncnc2sc3CCCCc3c12 MI-1
107
+ C(Nc1nc(NCc2ccccc2)c2ccccc2n1)c1ccccc1 DBeQ
108
+ COc1cc(c(Cl)cc1Cl)-n1c(=S)[nH]c2ccccc2c1=O Mdivi-1
109
+ COc1ccc(cc1)S(=O)(=O)N1CCN(CC1)S(=O)(=O)c1ccc2OCCOc2c1 ML083
110
+ CN(C1CCS(=O)(=O)C1)C(=O)COC(=O)\C=C\c1cccc(c1)[N+]([O-])=O CID-5951923
111
+ Cc1cc(C(=O)CN2CCCC2)c(C)n1-c1ccc(F)cc1 IU1
112
+ CC1CC2C3CCC4=CC(=O)C=CC4(C)C3(F)C(O)CC2(C)C1(O)C(=O)CO dexamethasone
113
+ CCN1CCN(CC1)C(c1ccc(cc1)C(F)(F)F)c1ccc2cccnc2c1O ML311
114
+ CN1CCN(CC1)c1cc(Nc2cc(C)[nH]n2)nc(Sc2ccc(NC(=O)C3CC3)cc2)n1 VX-680
115
+ CN1CCN(Cc2ccc(cc2)C(=O)Nc2ccc(C)c(Nc3nccc(n3)-c3cccnc3)c2)CC1 imatinib
116
+ Nc1nc(OCc2ccccc2)c2[nH]cnc2n1 O-6-benzylguanine
117
+ Nc1ncn([C@H]2C[C@H](O)[C@@H](CO)O2)c(=O)n1 decitabine
118
+ Cc1c[nH]c(n1)-c1cnc(NCCNc2ccc(cn2)C#N)nc1-c1ccc(Cl)cc1Cl CHIR-99021
119
+ CC[C@H]1N(C2CCCC2)c2nc(Nc3ccc(cc3OC)C(=O)NC3CCN(C)CC3)ncc2N(C)C1=O BI-2536
120
+ Nc1ccc(cc1NC(=O)c1ccc(cc1)C(=O)NCCc1ccncc1)-c1cccs1 BRD-K61166597
121
+ CNC(=O)c1ccccc1Sc1ccc2c(\C=C\c3ccccn3)n[nH]c2c1 axitinib
122
+ Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO selumetinib
123
+ Cn1c2cnc3ccc(cc3c2n(-c2ccc(cc2)C(C)(C)C#N)c1=O)-c1cnc2ccccc2c1 NVP-BEZ235
124
+ COc1cc2ncn(-c3cc(OCc4ccccc4C(F)(F)F)c(s3)C(N)=O)c2cc1OC GW-843682X
125
+ COc1cc2c(Nc3ccc(Br)cc3F)ncnc2cc1OCC1CCN(C)CC1 vandetanib
126
+ CNC(=O)c1cc(Oc2ccc(NC(=O)Nc3ccc(Cl)c(c3)C(F)(F)F)cc2)ccn1 sorafenib
127
+ Cc1cc2nc(NCCCO)n(CC(=O)c3cc(c(O)c(c3)C(C)(C)C)C(C)(C)C)c2cc1C ML029
128
+ CN1N=Nc2c(ncn2C1=O)C(=O)N temozolomide
129
+ COC(=O)c1ccc2n(CCCc3ccccc3)c(NC(=O)c3ccccc3)nc2c1 QW-BI-011
130
+ CC(=O)N[C@@H]1C\C=C\CCC(=O)N[C@@H](COC1=O)c1ccccc1 BRD-K90370028
131
+ CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 navitoclax
132
+ Cc1cc2c(cc1C(=C)c1ccc(cc1)C(O)=O)C(C)(C)CCC2(C)C bexarotene
133
+ Cc1cn(cn1)-c1cc(NC(=O)c2ccc(C)c(Nc3nccc(n3)-c3cccnc3)c2)cc(c1)C(F)(F)F nilotinib
134
+ CCN(CC)CCNC(=O)c1c(C)[nH]c(\C=C2/C(=O)Nc3ccc(F)cc23)c1C sunitinib
135
+ Cn1c(CCCC(O)=O)nc2cc(ccc12)N(CCCl)CCCl bendamustine
136
+ COC(=O)C[C@](O)(CCCC(C)(C)O)C(=O)O[C@H]1[C@H]2c3cc4OCOc4cc3CCN3CCC[C@]23C=C1OC omacetaxine mepesuccinate
137
+ OC(=O)c1ccc2cc(ccc2c1)-c1ccc(O)c(c1)C12CC3CC(CC(C3)C1)C2 CD-437
138
+ CC(C)c1ccc(Cn2ccc3c2ccc2nc(NC4CC4)nc(N)c32)cc1 SCH-79797
139
+ CN1c2cc3c(cc2N=C(c2ccc(cc2)C(O)=O)c2ccccc12)C(C)(C)CCC3(C)C LE-135
140
+ Oc1ccc(Nc2nc(cs2)-c2ccc(Cl)cc2)cc1 SKI-II
141
+ CCCCCCCCCCC(C)(C)C(=O)Nc1c(OC)cc(OC)cc1OC CI-976
142
+ N[Pt](N)(Cl)Cl Platin
143
+ CN1C(=S)NC(Cc2c[nH]c3ccccc23)C1=O necrostatin-1
144
+ COc1ccc2n(C(=O)c3cccc(Cl)c3Cl)c(C)c(CCN3CCOCC3)c2c1 GW-405833
145
+ CCCCCCCCc1ccc(cc1)-c1ccc(cc1)C(O)=O AC55649
146
+ OCc1ccc(s1)-c1ccc(o1)-c1ccc(CO)s1 RITA
147
+ CN(C)C(=O)n1nnnc1Cc1ccc(cc1)-c1ccccc1 LY-2183240
148
+ COc1cc2nccc(Oc3ccc(NC(=O)Nc4ccc(F)cc4F)c(F)c3)c2cc1OC Ki8751
149
+ OC(=O)c1ccc(cc1)-c1ccc2cc(c(O)cc2c1)C12CC3CC(CC(C3)C1)C2 CD-1530
150
+ NC(=O)Nc1sc(cc1C(N)=O)-c1ccc(F)cc1 TPCA-1
151
+ O=C1O[Pt]2(NC3CCCCC3N2)OC1=O oxaliplatin
152
+ Cc1ccc(C=C2CNCC(=Cc3ccc(C)cc3)C2=O)cc1 NSC632839
153
+ NS(=O)(=O)C#Cc1ccccc1 pifithrin-mu
154
+ CCc1c2Cn3c(cc4c(COC(=O)C4(O)CC)c3=O)-c2nc2ccc(O)cc12 SN-38
155
+ CC(=O)N1CCC(CC1)C(=O)Nc1cc(ccc1N)-c1cccs1 BRD-K80183349
156
+ Nc1ccc(cc1NC(=O)C1=CCCC1)-c1cccs1 BRD-K66532283
157
+ NC1(CCC1)c1ccc(cc1)-c1nc2ccn3c(n[nH]c3=O)c2cc1-c1ccccc1 MK-2206
158
+ COc1ccc(OC)c(c1)-c1nnc2SCC(=Nn12)c1ccc(OC)c(OC)c1 triazolothiadiazine
159
+ C[C@@H](CO)N1C[C@H](C)[C@H](CN(C)S(=O)(=O)c2ccc(Cl)cc2)Oc2ccc(NC(=O)CCC(F)(F)F)cc2CC1=O BRD-K66453893
160
+ CC(=O)NC1CCN(CC1)C(=O)Nc1cc(ccc1N)-c1cccs1 BRD-K11533227
161
+ C[C@@H](CO)N1C[C@H](C)[C@@H](CN(C)C(=O)C2CCOCC2)Oc2ncc(cc2C1=O)C#CC1(O)CCCC1 BRD-K27224038
162
+ C[C@H](CO)N1C[C@@H](C)[C@H](CN(C)C(=O)Nc2ccc3OCOc3c2)Oc2cc(ccc2S1(=O)=O)C#Cc1ccncc1 BRD-K33514849
163
+ CC(C)CC#Cc1ccc2c(O[C@@H](CN(C)C(=O)c3cnccn3)[C@H](C)CN([C@H](C)CO)S2(=O)=O)c1 BRD-K14844214
164
+ C[C@@H](CO)N1C[C@H](C)[C@@H](CN(C)Cc2ccc(cc2)C(O)=O)Oc2cc(ccc2S1(=O)=O)C#CCC1CCCC1 BRD1835
165
+ C[C@H](CO)N1C[C@H](C)[C@H](CN(C)C(=O)Nc2cc(F)ccc2F)Oc2cc(ccc2S1(=O)=O)C#CC1CCCC1 BRD-K41597374
166
+ C[C@@H](CO)N1C[C@H](C)[C@@H](CN(C)C(=O)Nc2ccc3OCOc3c2)Oc2cc(ccc2S1(=O)=O)C#Cc1ccncc1 BRD-K63431240
167
+ C[C@@H](CO)N1C[C@H](C)[C@H](CN(C)C(=O)Cc2ccncc2)Oc2cc(ccc2S1(=O)=O)C#Cc1ccccc1F BRD-K13999467
168
+ C\C=C\c1ccc2c(O[C@@H](CN(C)C(=O)c3ccccc3)[C@@H](C)CN([C@@H](C)CO)S2(=O)=O)c1 BRD-K96970199
169
+ CC1CCC\C=C/C2CC(O)CC2C(O)\C=C/C(=O)O1 brefeldin A
170
+ Clc1ccc(Cl)c(c1)-c1ccc(\C=C(/C#N)C(=O)Nc2cccc3ncccc23)o1 AGK-2
171
+ CC(C)C[C@H](NC(=O)[C@@H](C[C@@H](O)[C@H](Cc1ccccc1)NC(=O)OC(C)(C)C)Cc1ccccc1)C(=O)N[C@@H](Cc1ccccc1)C(N)=O L-685458
172
+ O=C(Nc1ccccc1)N1CCC(Cc2cnc3ccccc3c2)CC1 PF-750
173
+ CC(C)[C@]12O[C@H]1[C@@H]1O[C@]11[C@]3(O[C@H]3CC3C4=C(CC[C@]13C)C(=O)OC4)[C@@H]2O triptolide
174
+ COc1ccc(C2=NC(C(N2C(=O)N2CCNC(=O)C2)c2ccc(Cl)cc2)c2ccc(Cl)cc2)c(OC(C)C)c1 nutlin-3
175
+ CCCCC\C=C/C\C=C/C\C=C/C\C=C/CCCC(=O)C(F)(F)F AA-COCF3
176
+ C[C@]12CC[C@H]3[C@@H](CC[C@H]4C[C@H](O)CC[C@]34C)[C@@H]1C[C@H](Br)C2=O 16-beta-bromoandrosterone
177
+ Brc1ccc(OCc2ccccc2Br)c(\C=C2\SC(=S)NC2=O)c1 PRL-3 inhibitor I
178
+ CCc1ccccc1NC(=O)CSC(=O)NNC(=O)[C@@H](Cc1c[nH]c2ccccc12)NC(=O)OC(C)(C)C SID 26681509
179
+ O=C(NC1CC1)c1cc(on1)-c1cccs1 neuronal differentiation inducer III
180
+ Cc1ccc(cc1)S(=O)(=O)OCC(=O)Nc1ccc(C(O)=O)c(O)c1 NSC 74859
181
+ CC(C)C[C@H](NC(=O)[C@H](Cc1ccccc1)NC(=O)c1cnccn1)B(O)O bortezomib
182
+ CN(C)CC[C@H](CSc1ccccc1)Nc1ccc(cc1[N+]([O-])=O)S(=O)(=O)NC(=O)c1ccc(cc1)N1CCN(Cc2ccccc2-c2ccc(Cl)cc2)CC1 ABT-737
183
+ OC[C@H]1O[C@H](C(O)[C@H]1O)n1cccnc1=O zebularine
184
+ CN1CCc2c(C1)c1ccccc1n2Cc1ccc(cc1)C(=O)NO tubastatin A
185
+ CON(C)C(=O)[C@H]1[C@@H](O)[C@@]2(O)c3c(O[C@]2([C@@H]1c1ccccc1)c1ccc(OC)cc1)cc(OC)cc3OC SR-II-138A
186
+ CCC[C@H]1C[C@H](C[C@H](C)C[C@@H]2C[C@H](C[C@H](CC(=O)O1)O2)OC(=O)\C=C/CCc1coc(\C=C/CNC(=O)OC)n1)OC neopeltolide
187
+ C\C1=C\CC[C@@]2(C)O[C@@H]2[C@H]2OC(=O)C(=C)[C@@H]2CC1 parthenolide
188
+ CCOC(=O)\C=C/n1nnc(n1)-c1cccc(Cl)c1 Compound 7d-cis
189
+ Cc1cnc(Nc2ccc(OCCN3CCCC3)cc2)nc1Nc1cccc(c1)S(=O)(=O)NC(C)(C)C TG-101348
190
+ NS(=O)(=O)OC[C@@H]1C[C@H](C[C@@H]1O)n1ccc2c(N[C@H]3CCc4ccccc34)ncnc12 pevonedistat
191
+ CN(C)C(=O)c1ccc(cc1)S(=O)(=O)c1ccc(NC(=O)[C@@](C)(O)C(F)(F)F)c(Cl)c1 AZD7545
192
+ Nc1ncnc2n([C@@H]3O[C@H](COCc4ccc(cc4)C#N)[C@@H](O)[C@H]3O)c(NCc3ccc(Cl)c(Cl)c3)nc12 VER-155008
193
+ Nc1cccc(c1)S(=O)(=O)N1CCCN(CC1)S(=O)(=O)c1ccc2OCCOc2c1 ML203
194
+ O=C(Nc1cc(CN2CCNCC2)cc(c1)-c1nc2ccccc2[nH]1)c1cnc2ccccc2n1 SRT-1720
195
+ O=C(NCCN1CCC2(CC1)N(CNC2=O)c1ccccc1)c1ccc2ccccc2c1 CAY10594
196
+ Oc1cccc2cc(C(=O)Nc3cccc(c3)-c3cn4ccccc4n3)c(=O)oc12 Compound 1541A
197
+ OC(=O)[C@H](Cc1c[nH]c2ccccc12)N1C(=O)c2ccccc2C1=O RG-108
198
+ Oc1c(CC=C)cccc1\C=N\NC(=O)CN1CCN(Cc2ccccc2)CC1 PAC-1
199
+ CN1C(=O)N(Cc2cnc(Nc3cc(C)nn3C)nc12)c1cc(NC(=O)c2cccc(c2)C(F)(F)F)ccc1C pluripotin
200
+ Clc1ccc(OCCCCCC\N=C(\NC#N)Nc2ccncc2)cc1 GMX-1778
201
+ CC1(C)Oc2ccc3C4=C[C@@]56NC(=O)[C@]7(CCCN7C5=O)C[C@H]6C(C)(C)C4=[N+]([O-])c3c2C=C1 avrainvillamide
202
+ Cc1cc(cc2[nH]c(nc12)-c1c(NC[C@@H](O)c2cccc(Cl)c2)cc[nH]c1=O)N1CCOCC1 BMS-536924
203
+ Nc1ccn([C@@H]2O[C@H](CO)[C@@H](O)C2(F)F)c(=O)n1 gemcitabine
204
+ Oc1cccc(C(=O)Nc2cccc(NC(=O)c3cccc(O)c3O)c2)c1O MST-312
205
+ Fc1ccc(Cc2n[nH]c(=O)c3ccccc23)cc1C(=O)N1CCN(CC1)C(=O)C1CC1 olaparib
206
+ CCC1CCC2OC3(CC[C@@H](C)C(C[C@H](C)O)O3)[C@H](C)C(OC(=O)\C=C\[C@@H](C)[C@H](O)[C@@H](C)C(=O)[C@H](C)[C@@H](O)[C@H](C)C(=O)[C@@](C)(O)[C@H](O)[C@@H](C)C\C=C\C=C\1)[C@H]2C oligomycin A
207
+ NS(=O)(=O)c1ccc(cc1)S(=O)(=O)Nc1cccc2c(Cl)c[nH]c12 indisulam
208
+ OC[C@@H]1O[C@@H](CC(=O)NCc2ccncn2)CC[C@H]1NC(=O)c1ccc(F)cc1 BRD-K49290616
209
+ CN1CCN(CC1)C(=O)C[C@@H]1O[C@H](CO)[C@@H](NS(=O)(=O)c2cccc(F)c2)C=C1 BRD-K02492147
210
+ CC(C)(O)CCc1ccc(O)c2c1oc1cc3O[C@H]4OC=C[C@@]4(O)c3c(O)c1c2=O austocystin D
211
+ CCOc1cc(cc(Cl)c1OCC(=O)OC)\C=C1C(=O)N(N=C/1C)c1ccccc1 SJ-172550
212
+ C[C@@H](NC(=O)C[C@@H]1CC[C@@H](NC(=O)CN2CCOCC2)[C@H](CO)O1)c1ccccc1 BRD-K09587429
213
+ ONC(=O)\C=C\c1ccc(cc1)C(=O)N\N=C\c1ccc(O)c(O)c1O pandacostat
214
+ CN1CCN(CC1)C(=O)C[C@H]1CC[C@H](NC(=O)c2ccc3OCOc3c2)[C@@H](CO)O1 BRD-K96431673
215
+ Fc1ccc(Nc2c(cnc3c(Cl)cc(NCc4cnc[nH]4)cc23)C#N)cc1Cl cyanoquinoline 11
216
+ Cn1cncc1[C@@](N)(c1ccc(Cl)cc1)c1ccc2n(C)c(=O)cc(-c3cccc(Cl)c3)c2c1 tipifarnib-P2
217
+ Cn1cncc1[C@](N)(c1ccc(Cl)cc1)c1ccc2n(C)c(=O)cc(-c3cccc(Cl)c3)c2c1 tipifarnib-P1
218
+ CN(C)[C@H]1CC[C@H]2[C@@H](CC[C@H]3[C@@H]4CC=C(c5ccc6cnccc6c5)[C@@]4(C)CC[C@H]23)C1 Compound 23 citrate
219
+ C[C@H]1C[C@@H](OC1=O)[C@@H](O)[C@@H](C(Cl)Cl)c1ccc2[C@@H]3C[C@@H](Br)[C@]45O[C@H](C[C@]4(C)[C@H]3C(=O)c2c1C)CO[C@H]5O nakiterpiosin
220
+ Cc1[nH]c2ccccc2c1C(Nc1ccccn1)c1ccc(Cl)cc1 CCT036477
221
+ COc1cc(Nc2ncc(F)c(Nc3ccc4OC(C)(C)C(=O)Nc4n3)n2)cc(OC)c1OC tamatinib
222
+ CCCCCCC(=O)CCCCCC\C=C\C[C@H](O)[C@@H](O)C(N)(CO)C(O)=O myriocin
223
+ COCCn1c2c(C(=O)c3ccccc3C2=O)[n+](Cc2cnccn2)c1C YM-155
224
+ C[C@]1(CCCN1c1nc(Nc2cc(n[nH]2)C2CC2)c2cccn2n1)C(=O)Nc1ccc(F)nc1 BMS-754807
225
+ C\C(=C/C(=O)Nc1ccccc1C(O)=O)c1ccc2ccccc2c1 BIBR-1532
226
+ CC(C)C[C@H]([C@H](O)C(=O)NO)C(=O)N[C@H](C(=O)OC1CCCC1)c1ccccc1 tosedostat
227
+ CCOc1cc2ncc(C#N)c(Nc3ccc(OCc4ccccn4)c(Cl)c3)c2cc1NC(=O)\C=C\CN(C)C neratinib
228
+ Oc1ccc(C[C@@H]2N3[C@H](CN(Cc4cccc5ccccc45)C2=O)N(CCC3=O)C(=O)NCc2ccccc2)cc1 BRD1812
229
+ CC1=NN(C(=O)C\1=C\c1ccc(o1)-c1cc(C)c(C)cc1[N+]([O-])=O)c1ccc(cc1)C(O)=O BRD8958
230
+ C(Cc1c[nH]c2ccccc12)Nc1cccc(Nc2ccncc2)c1 serdemetan
231
+ O=C(NCCCCC1CCN(CC1)C(=O)c1ccccc1)\C=C\c1cccnc1 daporinad
232
+ CN1CCN(CC1)c1ccc(Nc2ncc3c(n2)n(-c2cccc(n2)C(C)(C)O)n(CC=C)c3=O)cc1 MK-1775
233
+ COc1cc2nccc(Oc3ccc(NC(=O)Nc4cc(C)on4)c(Cl)c3)c2cc1OC tivozanib
234
+ COc1ccc2c3C[C@@H]4N([C@@H](CC(C)C)c3[nH]c2c1)C(=O)[C@H](CCC(=O)OC(C)(C)C)NC4=O Ko-143
235
+ CONC(=O)[C@H]1[C@@H](O)[C@@]2(O)c3c(O[C@]2([C@@H]1c1ccccc1)c1ccc(OC)cc1)cc(OC)cc3OC CR-1-31B
236
+ OC(=O)c1ccc(NCc2nc3cc4ccccc4cc3[nH]2)cc1 BRD-K71781559
237
+ CO[C@@H]1CC[C@H]2CCN(C)C(=O)[C@@H](C)[C@H](CN(C)C(=O)c3cccc(C#N)c3OC[C@H]1O2)OC BRD-K86535717
238
+ C[C@H](CO)N1C[C@H](C)[C@@H](CN(C)C(=O)NC2CCCCC2)Oc2ccc(NC(=O)Cc3cn(C)c4ccccc34)cc2C1=O BRD-K48334597
239
+ CC(C)NC(=O)Nc1ccc2O[C@@H](CN(C)S(=O)(=O)c3ccc(Cl)cc3)[C@H](C)CN([C@H](C)CO)C(=O)c2c1 ML312
240
+ C[C@@H](CO)N1C[C@@H](C)[C@@H](CN(C)CC2CCCCC2)Oc2ccc(NC(=O)Nc3c(C)noc3C)cc2C1=O BRD-K04800985
241
+ C[C@H](CO)N1C[C@H](C)[C@H](CN(C)CC2CC2)Oc2ccc(NS(=O)(=O)c3cn(C)cn3)cc2C1=O BRD-K78574327
242
+ C[C@H](CO)N1C[C@H](C)[C@H](CN(C)Cc2ccc(Cl)c(Cl)c2)Oc2ccc(cc2C1=O)N(C)C BRD-K19103580
243
+ CC(C)NC(=O)N(C)C[C@H]1Oc2ccc(cc2C(=O)N(C[C@H]1C)[C@H](C)CO)N(C)C BRD-K30019337
244
+ C[C@H](CO)N1C[C@H](C)[C@@H](CN(C)C)Oc2c(NC(=O)c3cc(C)nn3C)cccc2C1=O BRD-K84807411
245
+ COc1ccc(NC(=O)Nc2ccc3O[C@@H](CN(C)Cc4ccc5OCOc5c4)[C@@H](C)CN([C@@H](C)CO)C(=O)c3c2)cc1 BRD-K01737880
246
+ CNC[C@@H]1Oc2ccc(NC(=O)C3CCCCC3)cc2C(=O)N(C[C@@H]1C)[C@@H](C)CO BRD-K44224150
247
+ C[C@@H](CO)N1C[C@@H](C)[C@H](CN(C)C(=O)Nc2cccc3ccccc23)Oc2c(NC(=O)c3ccncc3)cccc2C1=O BRD-K75293299
248
+ COc1ccc(cc1)S(=O)(=O)N(C)C[C@@H]1Oc2c(NC(=O)Nc3cccc4ccccc34)cccc2C(=O)N(C[C@H]1C)[C@@H](C)CO BRD-K64610608
249
+ C[C@H](CO)N1C[C@@H](C)[C@H](CN(C)Cc2ccc3OCOc3c2)Oc2c(NC(=O)c3ccncc3)cccc2C1=O BRD-K09344309
250
+ C[C@H](CO)N1C[C@H](C)[C@H](CN(C)C(=O)NC2CCCCC2)Oc2c(NS(=O)(=O)c3ccc(F)cc3)cccc2C1=O BRD-K02251932
251
+ C[C@@H](CO)N1C[C@@H](C)[C@@H](CN(C)Cc2ccc(cc2)C(=O)Nc2ccccc2N)Oc2c(NC(=O)Nc3ccccc3)cccc2C1=O BRD-K55116708
252
+ CNC[C@@H]1Oc2ccc(NS(C)(=O)=O)cc2CC(=O)N(C[C@@H]1C)[C@H](C)CO BRD-K41334119
253
+ CNC[C@@H]1Oc2ccc(NC(=O)CCN3CCOCC3)cc2CC(=O)N(C[C@@H]1C)[C@H](C)CO BRD-K34485477
254
+ CC(C)NC(=O)Nc1ccc2O[C@@H](CN(C)S(C)(=O)=O)[C@@H](C)CN([C@H](C)CO)C(=O)Cc2c1 BRD-K16147474
255
+ C[C@H](CO)N1C[C@@H](C)[C@@H](CN(C)Cc2ccc(cc2)C(O)=O)Oc2ccc(NC(=O)Nc3ccc(F)cc3)cc2CC1=O BRD-K29086754
256
+ CNC[C@@H]1Oc2ccc(cc2CC(=O)N(C[C@@H]1C)[C@@H](C)CO)N(C)C BRD-K33199242
257
+ C[C@@H](CO)N1C[C@H](C)[C@H](CN(C)C(=O)Nc2cccc3ccccc23)Oc2ccc(NC(=O)NC3CCCCC3)cc2CC1=O BRD-K52037352
258
+ C[C@H](CO)N1C[C@H](C)[C@H](CN(C)Cc2ccc3OCCOc3c2)OCc2cn(CCCC1=O)nn2 BRD-K27986637
259
+ C[C@H](CO)N1C[C@H](C)[C@@H](CN(C)C(=O)Nc2cccc3ccccc23)Oc2ccc(NC(=O)c3ccncc3)cc2CC1=O BRD-K37390332
260
+ COc1cc2c(ncnc2cc1OCCCN1CCCCC1)N1CCN(CC1)C(=O)Nc1ccc(OC(C)C)cc1 tandutinib
261
+ C[C@]12CC[C@H]3[C@H]([C@@H]1CC[C@@H]2O)[C@H](CCCCCCCCCS(=O)CCCC(F)(F)C(F)(F)F)Cc1cc(O)ccc31 fulvestrant
262
+ CO[C@H]1\C=C\C=C(C)\C[C@@H](C)[C@H](O)[C@H](C)\C=C(C)\C=C(OC)\C(=O)O[C@@H]1[C@@H](C)[C@@H](O)[C@H](C)[C@H]1C[C@@H](O)[C@H](C)[C@H](O1)C(C)C bafilomycin A1
263
+ ONC(=O)c1ccncc1 isonicotinohydroxamic acid
264
+ CN(C)CCCNc1c2ccccc2n(C)c2nc(=O)n(C)c(=O)c12 HLI 373
265
+ CCC(=O)OCN1C(=O)C=CC1=O NSC19630
266
+ O[As](O)(=O)c1ccc(Cc2ccc(cc2)[As](O)(O)=O)cc1 NSC48300
267
+ COC[C@]1(CO)[N@@]2CC[C@@H](CC2)C1=O PRIMA-1-Met
268
+ CN1C2N(CCc3c2[nH]c2ccccc32)C(=O)c2ccccc12 isoevodiamine
269
+ COc1cc2c(NC3CCN(CC3)C(C)C)nc(nc2cc1OCCCN1CCCC1)C1CCCCC1 UNC0638
270
+ CC(C)(O)\C=C\C(=O)[C@](C)(O)C1[C@H](O)C[C@@]2(C)C3CC=C4C(CC(=O)C(=O)C4(C)C)[C@]3(C)C(=O)C[C@]12C cucurbitacin I
271
+ COc1ccccc1-c1cccc(c1)-c1nc(cc2CN([C@@H](CCO)c12)[S@@](=O)C(C)(C)C)C(=O)NCc1ccncc1 BRD-K50799972
272
+ CN(C)CC(=O)N[C@@H]1CC[C@@H](CCNC(=O)Nc2ccc(F)cc2)O[C@H]1CO BRD-K17060750
273
+ CCN(CCO)CCCOc1ccc2c(Nc3cc(CC(=O)Nc4cccc(F)c4)[nH]n3)ncnc2c1 barasertib
274
+ Cc1ccc(F)c(NC(=O)Nc2ccc(cc2)-c2cccc3[nH]nc(N)c23)c1 linifanib
275
+ C[C@@]1(CCCN1)c1nc2c(cccc2[nH]1)C(N)=O veliparib
276
+ CN1CCN(CCOc2cc(OC3CCOCC3)c3c(Nc4c5OCOc5ccc4Cl)ncnc3c2)CC1 saracatinib
277
+ CN(C)C\C=C\C(=O)Nc1cc2c(Nc3ccc(F)c(Cl)c3)ncnc2cc1O[C@H]1CCOC1 afatinib
278
+ COc1cc2c(Oc3ccc4[nH]c(C)cc4c3F)ncnc2cc1OCCCN1CCCC1 cediranib
279
+ Fc1ccc(Nc2ncnc3cc(OCCCN4CCOCC4)c(NC(=O)C=C)cc23)cc1Cl canertinib
280
+ COC1=CC(=N\C\1=C/c1[nH]c(C)cc1C)c1cc2ccccc2[nH]1 obatoclax
281
+ CN1CCN(Cc2ccc(cc2)C(=O)Nc2ccc(C)c(Nc3nc(cs3)-c3cccnc3)c2)CC1 masitinib
282
+ FC(F)c1nc2ccccc2n1-c1nc(nc(n1)N1CCOCC1)N1CCOCC1 ZSTK474
283
+ C[C@@H](O)COc1cn2ncnc(Oc3ccc4[nH]c(C)cc4c3F)c2c1C brivanib
284
+ OCCn1cc(c(n1)-c1ccncc1)-c1ccc2c(CC\C2=N/O)c1 GDC-0879
285
+ COc1cc(ccc1Nc1ncc(Cl)c(Nc2ccccc2S(=O)(=O)C(C)C)n1)N1CCC(CC1)N1CCN(C)CC1 NVP-TAE684
286
+ CC(C)(C)c1cnc(CSc2cnc(NC(=O)C3CCNCC3)s2)o1 SNS-032
287
+ CCCS(=O)(=O)Nc1ccc(F)c(C(=O)c2c[nH]c3ncc(Cl)cc23)c1F PLX-4720
288
+ CC(Nc1ccccc1)c1cc(C)cn2c1nc(cc2=O)N1CCOCC1 TGX-221
289
+ COc1ccc(cc1CO)-c1ccc2c(nc(nc2n1)N1C[C@H](C)O[C@H](C)C1)N1CCOCC1 KU-0063794
290
+ Nc1nc(N)c2nc(-c3cccc(O)c3)c(nc2n1)-c1cccc(O)c1 TG-100-115
291
+ O=C1NC(=O)\C(S1)=C\c1ccc2nccc(-c3ccncc3)c2c1 GSK1059615
292
+ CN(c1cccc(Cl)c1)S(=O)(=O)c1ccc2NC(=O)\C(=C/c3[nH]c(C)c(C(=O)N4CCN(C)CC4)c3C)c2c1 SU11274
293
+ COc1ccc(Cn2ccc3ccc(cc23)C(=O)NO)cc1 BRD-K88742110
294
+ COc1cc(ccc1Nc1ncc2N(C)C(=O)c3ccccc3N(C)c2n1)C(=O)N1CCC(CC1)N1CCN(C)CC1 LRRK2-IN-1
295
+ CC(=O)NC[C@@H]1C[C@H](CN1)NS(=O)(=O)c1cccc2cncc(C)c12 BRD8899
296
+ NC(=O)[C@H]1CCCc2c1[nH]c1ccc(Cl)cc21 EX-527
297
+ O=S(=O)(N1CCCc2ccccc12)c1ccc(cc1)-c1cnc(o1)C1CC1 ELCPK
298
+ CCOC(=O)c1c(NC(=O)c2ccc(s2)[N+]([O-])=O)sc2c1CC(C)(C)NC2(C)C NPC-26
299
+ COC(=O)[C@H]1Cc2c([nH]c3ccccc23)[C@@H](N1C(=O)CCl)c1ccc(cc1)C(=O)OC 1S-3R-RSL-3
300
+ CN(C)CCNC(=O)c1cc2CSc3ccc(Cl)cc3-c2s1 CIL55A
301
+ CN(C)CCCNc1nc(CN2CCN(CC2)C(c2ccc(Cl)cc2)c2ccc(Cl)cc2)nc2ccccc12 SCH-529074
302
+ CC(C)n1cnc2c(NCCc3ccc(O)cc3)nc(nc12)-c1csc2ccccc12 StemRegenin 1
303
+ CCOc1ccccc1-c1cc(=O)[nH]c2cc3OCOc3cc12 FQI-2
304
+ Cc1onc(C(=O)N2CCN(CC2)C(c2ccc(Cl)cc2)c2ccc(Cl)cc2)c1[N+]([O-])=O ML210
305
+ C[As](C)SC[C@H](NC(=O)CC[C@H](N)C(O)=O)C(=O)NCC(O)=O darinaparsin
306
+ CCC(C)SSc1ncc[nH]1 PX-12
307
+ CN(C)c1ccccc1CN1CCCN(Cc2ccccc2N(C)C)C1c1ccncc1 GANT-61
308
+ COc1cc(\C=C\C(=O)N2CCC=CC2=O)cc(OC)c1OCCN(C)CCOc1c(OC)cc(\C=C\C(=O)N2CCC=CC2=O)cc1OC PL-DI
309
+ CC(C)c1ccccc1Cc1cc(C(=O)Nc2ccc(cc2)S(=O)(=O)c2ccccc2C(C)(C)C)c(O)c(O)c1O TW-37
310
+ COc1ccc(cc1CO)-c1ccc2c(nc(nc2n1)N1CCOC[C@@H]1C)N1CCOC[C@@H]1C AZD8055
311
+ Fc1ccccc1-c1cc(=O)c2cc3OCOc3cc2[nH]1 CHM-1
312
+ OC[C@H](Cc1ccccc1)Nc1nc(Oc2ccc3CCCc3c2)nc2n(Cc3ccc(cc3)-c3ccccc3)cnc12 QS-11
313
+ Clc1cc(Cl)c(OCC(=O)N\N=C\c2ccc[nH]2)c(Cl)c1 ML239
314
+ CC(C(=O)Nc1cccc(c1)\N=C\c1c(O)ccc2ccccc12)c1ccccc1 salermide
315
+ CCCC[C@@H](C)[C@@H](OC(=O)C[C@@H](CC(O)=O)C(O)=O)[C@H](CC(C)C[C@H](O)CCCC[C@@H](O)C[C@H](O)[C@H](C)N)OC(=O)C[C@@H](CC(O)=O)C(O)=O fumonisin B1
316
+ Cc1sc-2c(c1C)C(=N[C@@H](CC(=O)OC(C)(C)C)c1nnc(C)n-21)c1ccc(Cl)cc1 JQ-1
317
+ ONC(=O)c1cccc(c1)C(=O)Nc1ccccc1 BRD-K51490254
318
+ CC(=O)N[C@H]1C[C@H](C1)C(=O)Nc1cc(ccc1N)-c1ccc(F)cc1 BRD-K85133207
319
+ Cc1cnc2c(NCCN)nc3ccc(C)cc3n12 BMS-345541
320
+ COc1cc2ncn(-c3cc(OCc4ccccc4S(C)(=O)=O)c(s3)C#N)c2cc1OC CAY10576
321
+ Cc1ccc(cc1)C(=O)NCCCCCC(=O)Nc1ccc(F)cc1N Repligen 136
322
+ COC(=O)c1ccc2c(NC(=O)\C2=C(/Nc2ccc(cc2)N(C)C(=O)CN2CCN(C)CC2)c2ccccc2)c1 nintedanib
323
+ C[C@@H](Oc1cc(cnc1N)-c1cnn(c1)C1CCNCC1)c1c(Cl)ccc(F)c1Cl crizotinib
324
+ COc1cc2c(Oc3ccc(NC(=O)C4(CC4)C(=O)Nc4ccc(F)cc4)cc3F)ccnc2cc1OCCCN1CCOCC1 foretinib
325
+ CNC(=O)c1cc(Oc2ccc(NC(=O)Nc3ccc(Cl)c(c3)C(F)(F)F)c(F)c2)ccn1 regorafenib
326
+ CN1CCN(CC1)c1ccc(Nc2ncc(Cl)c(Sc3cccc(NC(=O)C=C)c3)n2)cc1 WZ8040
327
+ FC(F)(F)Oc1ccc(NC(=O)c2sccc2NCc2ccnc3ccccc23)cc1 OSI-930
328
+ Cn1cnc(c1)-c1cc2nccc(Oc3ccc(NC(=S)NC(=O)Cc4ccccc4)cc3F)c2s1 MGCD-265
329
+ COc1cc2nccc(Oc3ccc(NC(=O)NC4CC4)c(Cl)c3)c2cc1C(N)=O lenvatinib
330
+ COc1ccc(cc1)C(=O)CC1(O)C(=O)Nc2c1c(Cl)ccc2Cl YK 4-279
331
+ O=C(CCCCCCCn1cc(nn1)-c1cccnc1)Nc1ccccc1-c1ccccc1 CAY10618
332
+ CCN1CCN(CC(=O)Nc2ccc(-c3cccc4c3oc(cc4=O)N3CCOCC3)c3sc4ccccc4c23)CC1 KU 0060648
333
+ O[C@H]1C=C2[C@@H](NC(=O)c3c(O)c4OCOc4cc23)[C@H](O)[C@@H]1O narciclasine
334
+ CC(C)C[C@H](NC(=O)CNC(=O)c1cc(Cl)ccc1Cl)B(O)O MLN2238
335
+ CC(C)(C)OC(=O)Nc1ccc(cc1)-c1cc(no1)C(=O)NCCCCCCC(=O)NO ISOX
336
+ CS(=O)(=O)CCNCc1ccc(o1)-c1ccc2ncnc(Nc3ccc(OCc4cccc(F)c4)c(Cl)c3)c2c1 lapatinib
337
+ CC(=O)Nc1ccc(cc1)C(=O)Nc1ccc(F)cc1N BRD-K29313308
338
+ COc1cc2c(NC3CCN(C)CC3)nc(nc2cc1OCCOCCN(C)C)N1CCCN(C)CC1 UNC0321
339
+ Cn1cc(cn1)-c1ccc2nnc(Sc3ccc4ncccc4c3)n2n1 SGX-523
340
+ C[C@H]1CN(C[C@@H](C)O1)c1ccc(NC(=O)c2cccc(-c3ccc(OC(F)(F)F)cc3)c2C)cn1 erismodegib
341
+ COc1cc(Nc2ncc3CN=C(c4cc(Cl)ccc4-c3n2)c2c(F)cccc2OC)ccc1C(O)=O alisertib
342
+ C[C@@H](Nc1ccccc1C(O)=O)c1cc(C)cn2c1nc(cc2=O)N1CCOCC1 AZD6482
343
+ N#CC[C@H](C1CCCC1)n1cc(cn1)-c1ncnc2[nH]ccc12 ruxolitinib
344
+ C[C@@H](O)[C@@H](NC(=O)[C@H](C)[C@@H](O)[C@H](C)NC(=O)[C@@H](NC(=O)c1nc(nc(N)c1C)[C@H](CC(N)=O)NC[C@@H](N)C(N)=O)C(O[C@H]1O[C@H](CO)[C@H](O)[C@@H](O)[C@H]1O[C@H]1O[C@H](CO)[C@@H](O)[C@H](OC(N)=O)[C@@H]1O)c1c[nH]cn1)C(=O)NCCc1nc(cs1)-c1nc(cs1)C(=O)NCCC[S+](C)C bleomycin A2
345
+ CS(=O)(=O)N1CCN(Cc2cc3nc(nc(N4CCOCC4)c3s2)-c2cccc3[nH]ncc23)CC1 GDC-0941
346
+ Cc1cccc(n1)-c1[nH]c(nc1-c1ccc2nccnc2c1)C(C)(C)C SB-525334
347
+ CC(C)CC(=O)Nc1n[nH]c2c1CN(C(=O)C1CCN(C)CC1)C2(C)C PHA-793887
348
+ CC(C)(C)c1cc(NC(=O)Nc2ccc(cc2)-c2cn3c(n2)sc2cc(OCCN4CCOCC4)ccc32)no1 quizartinib
349
+ CCCCCCCCc1ccc(CCC(N)(CO)CO)cc1 fingolimod
350
+ CN(c1ccc2c(C)n(C)nc2c1)c1ccnc(Nc2ccc(C)c(c2)S(N)(=O)=O)n1 pazopanib
351
+ COc1cc(ccc1Nc1ncc(Cl)c(Oc2cccc(NC(=O)C=C)c2)n1)N1CCN(C)CC1 WZ4002
352
+ CN(C)CC1CN(C1)C(=O)Nc1cc(ccc1N)-c1ccc(F)cc1 BRD-K24690302
353
+ COc1ccc(cc1)S(=O)(=O)N(C(=O)C)c2ccccc2C=Cc3cc[n+]([O-])cc3 BRD-K70511574
354
+ CCCS(=O)(=O)Nc1ccc(F)c(C(=O)c2c[nH]c3ncc(cc23)-c2ccc(Cl)cc2)c1F PLX-4032
355
+ Cc1n[nH]c2NC3=C([C@@H](c12)c1ccccc1)C(=O)CC(C)(C)C3 BRD-K48477130
356
+ C[C@@H](Oc1cc(sc1C(N)=O)-n1cnc2ccc(CN3CCN(C)CC3)cc12)c1ccccc1C(F)(F)F GSK461364
357
+ CC[C@H](C)[C@H](NC(=O)[C@H](CCCNC(N)=N)NC(=O)[C@H](CCCNC(N)=N)NC(=O)CCNC(C)=O)C(=O)N[C@]1(C)CCC\C=C/CCC[C@@](C)(NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CCSC)NC1=O)C(=O)N[C@@H](C)C(=O)N[C@@H](C)C(=O)N[C@@H](CC(N)=O)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H](CCCNC(N)=N)C(O)=O YL54
358
+ CC[C@H](C)[C@H](NC(=O)[C@H](CCCNC(N)=N)NC(=O)[C@H](CCCNC(N)=N)NC(=O)CCNC(C)=O)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CCSC)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H](C)C(=O)N[C@@H](C)C(=O)N[C@@H](CC(N)=O)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@]1(C)CCC\C=C/CCC[C@@](C)(NC(=O)[C@H](CCCNC(N)=N)NC(=O)[C@H](CCCNC(N)=N)NC(=O)[C@H](CCC(O)=O)NC1=O)C(=O)N[C@@H](CCCNC(N)=N)C(N)=O BRD-K20514654
359
+ CCC(C)C(NC(=O)C(CCCNC(=N)N)NC(=O)C(CCCNC(=N)N)NC(=O)C(CCCNC(=N)N)NC(=O)C(CC(C)C)NC(=O)C(CCCNC(=N)N)NC(=O)C(CCC(=O)O)NC(=O)CCNC(=O)C)C(=O)NC1(C)CCCC=CCCCC(C)(NC(=O)C(CCCNC(=N)N)NC(=O)C(CS)NC(=O)C(CC(C)C)NC1=O)C(=O)NC(Cc2c[nH]cn2)C(=O)NC(Cc3c[nH]cn3)C(=O)NC(CO)C(=O)NC(C(C)O)C(=O)N BRD-K55473186
360
+ Cc1c(oc2ccc3ccccc3c12)[N+]([O-])=O BRD-K28456706
361
+ CC(C)(C)c1ccc(cc1)S(=O)(=O)NCc1ccc(cc1)C(=O)Nc1cccnc1 STF-31
362
+ OC(=O)[C@@H]1CCCC[C@@H]1C(=O)N1CCc2ccccc2[C@H]1CN1C(=O)c2ccccc2C1=O ML334 diastereomer
363
+ Fc1ccc(CNc2ncnc3ccc(F)cc23)cc1 spautin-1
364
+ FC(F)(F)c1ccc(Nc2nccc(n2)-c2cccc(Cl)c2)cc1 VAF-347
365
+ CC(C)N(CCCNC(=O)Nc1ccc(cc1)C(C)(C)C)C[C@H]1O[C@H](C(O)[C@H]1O)n1cnc2c(N)ncnc12 BRD-A02303741
366
+ COc1ccccc1[C@H]1c2c(NC3=C1C(=O)CC(C)(C)C3)n[nH]c2C(F)(F)F ML320
367
+ CN(C)[C@H]1[C@@H]2C[C@@H]3Cc4c(cc(NC(=O)CNC(C)(C)C)c(O)c4C(=O)C3C(=O)[C@]2(O)C(=O)C(C(N)=O)C1=O)N(C)C tigecycline
368
+ CC(C)N1C[C@@H](C)[C@H](CN(C)Cc2ccc(Oc3ccccc3)cc2)Oc2c(NC(=O)c3ccncc3)cccc2C1=O BRD-K34099515
369
+ Cc1cc(CS(=O)(=O)c2ccccc2)cc(OCc2ccc(CN3CCC[C@@H]3CO)cc2)c1 PF-543
370
+ CS(=O)(=O)c1cccc(CNc2nc(Nc3ccc4NC(=O)CCc4c3)ncc2C(F)(F)F)c1 PF-573228
371
+ COc1ccc(\C=C\C(=O)c2c(-c3ccccc3)c3ccccc3[nH]c2=O)cc1 ceranib-2
372
+ CCOC(=O)NC(=O)C(=C\c1ccc(Cl)c(Cl)c1)\C#N FSC231
373
+ CN(C)c1ccc(cc1Br)C1Nc2ccc3ccccc3c2C2=C1C(=O)CC(C)(C)C2 968
374
+ CC(C)(C)OC(=O)CN(Cc1ccc(s1)[N+]([O-])=O)Cc1ccc(Cl)cc1 GSK4112
375
+ OC(=O)[C@@]1(CCCCCCOc2ccc(Cl)cc2)CO1 etomoxir
376
+ Cc1c(cc(-c2ccccc2)n1CCCN1CCOCC1)C(=O)Nc1cccc(c1)C(F)(F)F HC-067047
377
+ CC1CC(C)CN(C1)c1cc(Nc2ccccc2C(O)=O)c2C(=O)c3ccccc3-c3onc1c23 IPR-456
378
+ CCOC(=O)c1c(C(=CN)C#N)c2ccc(Cl)c(Cl)c2n1C KH-CB19
379
+ CCC(\C=C\[C@@H]1OC(=O)C=C[C@@H]1C)=C\[C@H](C)C\C=C\C(C)=C\[C@@H](C)C(=O)[C@@H](C)[C@H](O)[C@@H](C)C\C(C)=C\C(O)=O leptomycin B
380
+ COc1cc(OC2CCN(C)CC2)ccc1Nc1ncc2n(C)c(=O)n(C3CCCC3)c2n1 AZ-3146
381
+ O=C(NCCN1CCC(CC1)n1c2ccccc2[nH]c1=O)c1ccc2ccccc2c1 VU0155056
382
+ Cc1sc-2c(c1C)C(=N[C@@H](CC(=O)OC(C)(C)C)c1nnc(C)n-21)c1ccc(Cl)cc1.COc1cc2c(NC3CCN(CC3)C(C)C)nc(nc2cc1OCCCN1CCCC1)C1CCCCC1 JQ-1:UNC0638 (2:1 mol/mol)
383
+ O=C1O[Pt]OC(=O)C11CCC1.COc1cc2c(NC3CCN(CC3)C(C)C)nc(nc2cc1OCCCN1CCCC1)C1CCCCC1 carboplatin:UNC0638 (2:1 mol/mol)
384
+ O=C1O[Pt]OC(=O)C11CCC1.ONC(=O)CCCCCCC(=O)Nc1ccccc1 vorinostat:carboplatin (1:1 mol/mol)
385
+ C(Cc1c[nH]c2ccccc12)Nc1ccc(Nc2ccncc2)cc1.CN(C)CCCNc1nc(CN2CCN(CC2)C(c2ccc(Cl)cc2)c2ccc(Cl)cc2)nc2ccccc12 serdemetan:SCH-529074 (1:1 mol/mol)
386
+ Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO.CCCS(=O)(=O)Nc1ccc(F)c(C(=O)c2c[nH]c3ncc(cc23)-c2ccc(Cl)cc2)c1F selumetinib:PLX-4032 (8:1 mol/mol)
387
+ CC(C)C[C@H](NC(=O)[C@H](Cc1ccccc1)NC(=O)c1cnccn1)B(O)O.CO[C@@H]1C[C@H](C[C@@H](C)[C@@H]2CC(=O)[C@H](C)\C=C(C)\[C@@H](O)[C@@H](OC)C(=O)[C@H](C)C[C@H](C)\C=C\C=C\C=C(C)\[C@H](C[C@@H]3CC[C@@H](C)[C@@](O)(O3)C(=O)C(=O)N3CCCC[C@H]3C(=O)O2)OC)CC[C@H]1O sirolimus:bortezomib (250:1 mol/mol)
388
+ CN(CCc1cc(Br)c(OCCCNc2ncnc3n(C)cnc23)c(Br)c1)C(=O)c1ccc(C)cc1 BRD-K97651142
389
+ CCOC(=O)N[C@@H]1CC[C@@H]2[C@H](C[C@@H]3[C@@H]([C@@H](C)OC3=O)[C@H]2\C=C\c2ccc(cn2)-c2cccc(F)c2)C1 vorapaxar
390
+ CC(C)(C)c1cc(cc(c1)C(C)(C)C)C(=O)\C=C\c1ccc(cc1)C(O)=O Ch-55
391
+ CC(C)C[C@@H]1NC(=O)[C@H](CCCNC(N)=N)NC(=O)[C@H](Cc2c[nH]c3ccccc23)NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CC(N)=O)NC(=O)[C@@](C)(CCCCCC\C=C/CCC[C@](C)(NC(=O)[C@H](CC(C)C)NC1=O)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CC(N)=O)C(N)=O)NC(=O)[C@H](Cc1ccccc1)NC(=O)[C@@H](NC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](CO)NC(=O)[C@H](CCC(N)=O)NC(C)=O)[C@@H](C)O BRD-K79669418
392
+ CC[C@H](C)[C@H](NC(C)=O)C(=O)N[C@@H](Cc1c[nH]c2ccccc12)C(=O)N[C@@H]([C@@H](C)CC)C(=O)N[C@@H](C)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@]1(C)CCC\C=C/CCC[C@](C)(NC(=O)[C@H](CC(O)=O)NC(=O)CNC(=O)[C@@H](NC1=O)[C@@H](C)CC)C(=O)N[C@@H](Cc1ccccc1)C(=O)N[C@@H](CC(N)=O)C(=O)N[C@@H](C)C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](C)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CCCNC(N)=N)C(N)=O BRD-K99584050
393
+ Fc1cccc(c1)N(C(C(=O)NC1CCCCC1)c1ccccc1Cl)C(=O)Cc1cccs1 BRD-A71883111
394
+ CC[C@H](NC(=O)[C@H](C)NC)C(=O)N1C[C@@H](O)C[C@H]1Cc1c([nH]c2cc(F)ccc12)-c1cc2c(C[C@@H]3C[C@H](O)CN3C(=O)[C@H](CC)NC(=O)[C@H](C)NC)cc(F)cc2[nH]1.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 navitoclax:birinapant (1:1 mol/mol)
395
+ CC(C)C[C@H](NC(=O)[C@H](Cc1ccccc1)NC(=O)c1cnccn1)B(O)O.CC(C)(C)OC(=O)Nc1ccc(cc1)-c1cc(no1)C(=O)NCCCCCCC(=O)NO ISOX:bortezomib (250:1 mol/mol)
396
+ Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO.CS(=O)(=O)N1CCN(Cc2cc3nc(nc(N4CCOCC4)c3s2)-c2cccc3[nH]ncc23)CC1 selumetinib:GDC-0941 (4:1 mol/mol)
397
+ CC(=C/CO)\C=C\C=C(C)\C=C\C1=C(C)CCCC1(C)C.Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO selumetinib:tretinoin (2:1 mol/mol)
398
+ ONC(=O)CCCCCCC(=O)Nc1ccccc1.Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO selumetinib:vorinostat (8:1 mol/mol)
399
+ Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO.Cc1sc-2c(c1C)C(=N[C@@H](CC(=O)OC(C)(C)C)c1nnc(C)n-21)c1ccc(Cl)cc1 selumetinib:JQ-1 (4:1 mol/mol)
400
+ Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO.CC(C)N(CCCNC(=O)Nc1ccc(cc1)C(C)(C)C)C[C@H]1O[C@H]([C@H](O)[C@@H]1O)n1ccc2c(N)ncnc12 selumetinib:BRD-A02303741 (4:1 mol/mol)
401
+ CC(=C/CO)\C=C\C=C(C)\C=C\C1=C(C)CCCC1(C)C.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 tretinoin:navitoclax (4:1 mol/mol)
402
+ Nc1ncn([C@H]2C[C@H](O)[C@@H](CO)O2)c(=O)n1.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 decitabine:navitoclax (2:1 mol/mol)
403
+ O=C1O[Pt]OC(=O)C11CCC1.CC(\C=C\C=C(C)\C=C\C1=C(C)CCCC1(C)C)=C/CO tretinoin:carboplatin (2:1 mol/mol)
404
+ Fc1ccc(cc1)-c1n[nH]cc1C=C1SC(=N)N(C1=O)c1nccs1 necrostatin-7
405
+ CCOC(=O)c1ccc(cc1)N1NC(=O)C(=Cc2ccc(o2)[N+]([O-])=O)C1=O PYR-41
406
+ COc1cc2c3n([C@H](C)c4ccccn4)c(=O)[nH]c3cnc2cc1-c1c(C)noc1C I-BET151
407
+ Nc1nc(OCc2cc(Br)cs2)c2[nH]cnc2n1 lomeguatrib
408
+ C[C@@]1(CO)CN(C[C@]1(C)CO)c1cc(C(=O)Nc2ccc3CCc4c(nn(c4-c3c2)-c2ccc(F)cc2)C(N)=O)c(Cl)cn1 PF-184
409
+ Nc1ccn([C@@H]2O[C@H](CO)[C@@H](O)C2(F)F)c(=O)n1.CO[C@H]1C[C@H](C)CC2=C(NCC=C)C(=O)C=C(NC(=O)\C(C)=C\C=C/[C@H](OC)[C@@H](OC(N)=O)\C(C)=C\[C@H](C)[C@H]1O)C2=O tanespimycin:gemcitabine (1:1 mol/mol)
410
+ CO[C@H]1C[C@H](C)CC2=C(NCC=C)C(=O)C=C(NC(=O)\C(C)=C\C=C/[C@H](OC)[C@@H](OC(N)=O)\C(C)=C\[C@H](C)[C@H]1O)C2=O.CC(=O)O[C@@]12CO[C@@H]1C[C@H](O)[C@]1(C)C2[C@H](OC(=O)c2ccccc2)[C@]2(O)C[C@H](OC(=O)[C@H](O)[C@@H](NC(=O)OC(C)(C)C)c3ccccc3)C(C)=C([C@@H](O)C1=O)C2(C)C docetaxel:tanespimycin (2:1 mol/mol)
411
+ Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO.NC1(CCC1)c1ccc(cc1)-c1nc2ccn3c(n[nH]c3=O)c2cc1-c1ccccc1 selumetinib:MK-2206 (8:1 mol/mol)
412
+ CCCS(=O)(=O)Nc1ccc(F)c(C(=O)c2c[nH]c3ncc(cc23)-c2ccc(Cl)cc2)c1F.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 navitoclax:PLX-4032 (1:1 mol/mol)
413
+ COc1cc(\C=C\C(=O)N2CCC=CC2=O)cc(OC)c1OC.Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO selumetinib:piperlongumine (8:1 mol/mol)
414
+ CC(C)C[C@H](NC(=O)[C@H](Cc1ccccc1)NC(=O)c1cnccn1)B(O)O.CO[C@H]1C[C@H](C)CC2=C(NCC=C)C(=O)C=C(NC(=O)\C(C)=C\C=C/[C@H](OC)[C@@H](OC(N)=O)\C(C)=C\[C@H](C)[C@H]1O)C2=O tanespimycin:bortezomib (250:1 mol/mol)
415
+ Oc1cccc(C(=O)Nc2cccc(NC(=O)c3cccc(O)c3O)c2)c1O.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 navitoclax:MST-312 (1:1 mol/mol)
416
+ O=C1O[Pt]OC(=O)C11CCC1.COc1cc(cc(OC)c1O)[C@H]1[C@@H]2[C@H](COC2=O)[C@H](O[C@@H]2O[C@@H]3CO[C@@H](C)O[C@H]3[C@H](O)[C@H]2O)c2cc3OCOc3cc12 carboplatin:etoposide (40:17 mol/mol)
417
+ COc1cc(\C=C\C(=O)N2CCC=CC2=O)cc(OC)c1OC.Oc1cccc(C(=O)Nc2cccc(NC(=O)c3cccc(O)c3O)c2)c1O piperlongumine:MST-312 (1:1 mol/mol)
418
+ Nc1ccn([C@@H]2O[C@H](CO)[C@@H](O)C2(F)F)c(=O)n1.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 navitoclax:gemcitabine (1:1 mol/mol)
419
+ CC(C)c1ccccc1OC(=O)NCCc1ccc2ccccc2c1 JW-480
420
+ CC1(C)CC=C(c2cnc3ccccc3c2)c2cc(ccc12)C(=O)Nc1ccc(cc1)C(O)=O BMS-195614
421
+ CCOc1ccccc1N\N=C1C(=O)N(N=C\1C)c1nc(cs1)-c1ccccc1 BRD-K07442505
422
+ Cc1cs\c(=N/C2CCCCC2)n1\N=C\c1ccc(O)c(O)c1O BRD-K35604418
423
+ CC(C)[C@H](N(CCCN)C(=O)c1ccc(C)cc1)c1oc2cc(Cl)ccc2c(=O)c1Cc1ccccc1 SB-743921
424
+ CCNC(=O)C[C@@H]1N=C(c2ccc(Cl)cc2)c2cc(OC)ccc2-n2c(C)nnc12 GSK525762A
425
+ CN1C(=O)N(Cc2cnc(Nc3cc(C)nn3C)nc12)c1cc(NC(=O)c2cccc(c2)C(F)(F)F)ccc1C.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 navitoclax:pluripotin (1:1 mol/mol)
426
+ O=C1O[Pt]OC(=O)C11CCC1.Cc1sc-2c(c1C)C(=N[C@@H](CC(=O)OC(C)(C)C)c1nnc(C)n-21)c1ccc(Cl)cc1 JQ-1:carboplatin (1:1 mol/mol)
427
+ Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 selumetinib:navitoclax (8:1 mol/mol)
428
+ Nc1ncn([C@H]2C[C@H](O)[C@@H](CO)O2)c(=O)n1.Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO selumetinib:decitabine (4:1 mol/mol)
429
+ O=C1O[Pt]OC(=O)C11CCC1.Nc1ncn([C@H]2C[C@H](O)[C@@H](CO)O2)c(=O)n1 decitabine:carboplatin (1:1 mol/mol)
430
+ CC(C)C[C@H](NC(=O)[C@H](Cc1ccccc1)NC(=O)c1cnccn1)B(O)O.CC1(C)Cc2c(c(nn2-c2ccc(C(N)=O)c(N[C@H]3CC[C@H](O)CC3)c2)C(F)(F)F)C(=O)C1 SNX-2112:bortezomib (250:1 mol/mol)
431
+ Cc1sc-2c(c1C)C(=N[C@@H](CC(=O)OC(C)(C)C)c1nnc(C)n-21)c1ccc(Cl)cc1.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 JQ-1:navitoclax (2:1 mol/mol)
432
+ OC(=O)CC[C@H]1CC[C@@](CC1)(c1cc(F)ccc1F)S(=O)(=O)c1ccc(Cl)cc1.Cc1sc-2c(c1C)C(=N[C@@H](CC(=O)OC(C)(C)C)c1nnc(C)n-21)c1ccc(Cl)cc1 JQ-1:MK-0752 (1:1 mol/mol)
433
+ CC(C)N(CCCNC(=O)Nc1ccc(cc1)C(C)(C)C)C[C@H]1O[C@H]([C@H](O)[C@@H]1O)n1ccc2c(N)ncnc12.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 BRD-A02303741:navitoclax (2:1 mol/mol)
434
+ CC(C(=O)Nc1cccc(c1)\N=C\c1c(O)ccc2ccccc12)c1ccccc1.CCCS(=O)(=O)Nc1ccc(F)c(C(=O)c2c[nH]c3ncc(cc23)-c2ccc(Cl)cc2)c1F salermide:PLX-4032 (12:1 mol/mol)
435
+ COc1cc2c(NC3CCN(CC3)C(C)C)nc(nc2cc1OCCCN1CCCC1)C1CCCCC1.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 UNC0638:navitoclax (1:1 mol/mol)
436
+ O=C1O[Pt]OC(=O)C11CCC1.CC(C)N(CCCNC(=O)Nc1ccc(cc1)C(C)(C)C)C[C@H]1O[C@H]([C@H](O)[C@@H]1O)n1ccc2c(N)ncnc12 BRD-A02303741:carboplatin (1:1 mol/mol)
437
+ COc1cccc2C(=O)c3c(O)c4C[C@](O)(C[C@H](O[C@H]5C[C@H](N)[C@H](O)[C@H](C)O5)c4c(O)c3C(=O)c12)C(=O)CO.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 doxorubicin:navitoclax (2:1 mol/mol)
438
+ Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(cc12)C(=O)NOCCO.COc1cc2c(NC3CCN(CC3)C(C)C)nc(nc2cc1OCCCN1CCCC1)C1CCCCC1 selumetinib:UNC0638 (4:1 mol/mol)
439
+ COc1cc(Nc2ncc3CN=C(c4cc(Cl)ccc4-c3n2)c2c(F)cccc2OC)ccc1C(O)=O.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 alisertib:navitoclax (2:1 mol/mol)
440
+ CNC(=O)c1cc(Oc2ccc(NC(=O)Nc3ccc(Cl)c(c3)C(F)(F)F)cc2)ccn1.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 navitoclax:sorafenib (1:1 mol/mol)
441
+ COc1cc(\C=C\C(=O)N2CCC=CC2=O)cc(OC)c1OC.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 navitoclax:piperlongumine (1:1 mol/mol)
442
+ O=C1c2ccccc2-c2nc3nonc3nc12 SMER-3
443
+ Nc1ncnc2n(cc(-c3cccc(OCc4ccccc4)c3)c12)[C@H]1C[C@H](CN2CCCC2)C1 NVP-ADW742
444
+ Nc1nc(Cl)nc2n(cnc12)[C@@H]1O[C@H](CO)[C@@H](O)[C@@H]1F clofarabine
445
+ ONC(=O)CCCCCCC(=O)Nc1ccccc1.CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1 vorinostat:navitoclax (4:1 mol/mol)
446
+ COc1cc(Nc2nc3ccccc3nc2NS(=O)(=O)c2ccc(NC(=O)c3ccc(C)c(OC)c3)cc2)cc(OC)c1 XL765
447
+ C[C@H](Nc1ncc(Cl)c(Nc2cc(C)[nH]n2)n1)c1ncc(F)cn1 AZD1480
448
+ COc1ccc(CN2c3nnnn3C3C(C2=O)C2(CCCC2)Cc2ccccc32)cc1 ML258
449
+ CC(=O)Nc1nc(C)c(s1)S(=O)(=O)Nc1ccc(cc1)C(O)(C(F)(F)F)C(F)(F)F SR1001
450
+ COC(=O)[C@@]12CCC(C)(C)C[C@@H]1[C@@H]1C(=O)C=C3[C@]4(C)C=C(C#N)C(=O)C(C)(C)[C@H]4CC[C@]3(C)[C@@]1(C)CC2 bardoxolone methyl
451
+ CCC(O)(CC)\C=C\CC(C)C1=CC[C@@H]2[C@]1(C)CCC\C2=C/C=C1/C[C@@H](O)C[C@H](F)C1=C elocalcitol
452
+ CC1(C)CCC(C)(C)c2cc(ccc12)[C@@H](O)C(=O)Nc1ccc(cc1F)C(O)=O BMS-270394
453
+ CC(C)N1C(\C=C\C(O)CC(O)CC(O)=O)C(c2ccccc12)c1ccc(F)cc1 fluvastatin
454
+ COc1cc(CCc2cc(NC(=O)c3ccc(cc3)N3C[C@H](C)N[C@H](C)C3)n[nH]2)cc(OC)c1 AZD4547
455
+ CC(C)C(=O)[C@@]12C(=O)C(CC=C(C)C)C(=O)C(CC=C(C)C)(C[C@H](CC=C(C)C)[C@@]1(C)CCC=C(C)C)C2=O hyperforin
456
+ O=C(Nc1nc2ccc(NC(=O)C34C[C@H]5C[C@H](C[C@H](C5)C3)C4)cc2s1)c1ccccc1 NVP-231
457
+ OC(=O)CC[C@H]1CC[C@@](CC1)(c1cc(F)ccc1F)S(=O)(=O)c1ccc(Cl)cc1 MK-0752
458
+ CC(C)[C@H](O)C(=O)N[C@@H](C)C(=O)N[C@H]1c2ccccc2CCN(C)C1=O semagacestat
459
+ Cc1ccccc1C(N(C(=O)Cc1ccncc1)c1cccc(F)c1)C(=O)NC1CCCCC1 BRD-A05715709
460
+ COc1cc(Nc2cc(nc3cc(OCCCN4CCN(C)CC4)c(OC)cc23)C#N)c(Cl)cc1Cl bosutinib
461
+ CO[C@@H]1C[C@H](C[C@@H](C)[C@@H]2CC(=O)[C@H](C)\C=C(C)\[C@@H](O)[C@@H](OC)C(=O)[C@H](C)C[C@H](C)\C=C\C=C\C=C(C)\[C@H](C[C@@H]3CC[C@@H](C)[C@@](O)(O3)C(=O)C(=O)N3CCCC[C@H]3C(=O)O2)OC)CC[C@H]1OC(=O)C(C)(CO)CO temsirolimus
462
+ C[C@]12CC[C@H]3[C@@H](CC=C4C[C@@H](O)CC[C@]34C)[C@@H]1CC=C2c1cccnc1 abiraterone
463
+ CC(=O)O[C@@]12CO[C@@H]1C[C@H](O)[C@]1(C)C2[C@H](OC(=O)c2ccccc2)[C@]2(O)C[C@H](OC(=O)[C@H](O)[C@@H](NC(=O)OC(C)(C)C)c3ccccc3)C(C)=C([C@@H](O)C1=O)C2(C)C docetaxel
464
+ COc1nc(N)nc2n(cnc12)[C@@H]1O[C@H](CO)[C@@H](O)[C@@H]1O nelarabine
465
+ COc1cc(OC)c(\C=C\S(=O)(=O)Cc2ccc(OC)c(NCC(O)=O)c2)c(OC)c1 rigosertib
466
+ Clc1ccc(cc1)C1(CCNCC1)c1ccc(cc1)-c1cn[nH]c1 AT7867
467
+ OCC(O)CONC(=O)c1cc(Br)c(F)c(F)c1Nc1ccc(I)cc1F PD318088
468
+ C[C@H]1CN(CC(=O)Nc2ccc3Sc4c(Cc3c2)cccc4-c2cc(=O)cc(o2)N2CCOCC2)C[C@@H](C)O1 KU-60019
469
+ Cc1ccc(cc1)-n1nc(cc1NC(=O)Nc1ccc(OCCN2CCOCC2)c2ccccc12)C(C)(C)C BIRB-796
470
+ O=C(N1CCNCC1)c1ccc(cc1)\C=C\c1n[nH]c2ccccc12 KW-2449
471
+ Cn1c(Nc2ccc(cc2)C(F)(F)F)nc2cc(Oc3ccnc(c3)-c3ncc([nH]3)C(F)(F)F)ccc12 RAF265
472
+ OC(=O)c1ccc2c(c1)nc(Nc1cccc(Cl)c1)c1ccncc21 silmitasertib
473
+ CCCC[C@H](NC(=O)[C@H](CCCNC(N)=N)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@@H](NC(=O)[C@]1(C)CCC\C=C/CCC[C@](C)(NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CO)NC(=O)[C@H](CCCNC(N)=N)NC(=O)[C@H](CCC(O)=O)NC(=O)[C@H](CCCNC(N)=N)NC(=O)[C@H](Cc2cnc[nH]2)NC(=O)[C@H](CCC(O)=O)NC(=O)[C@H](CC(C)C)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](CCC(O)=O)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](CO)NC(=O)[C@H](CC(C)C)NC(C)=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N1)[C@@H](C)CC)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](Cc1ccccc1)C(N)=O BRD-K03911514
474
+ CC[C@H](C)[C@H](NC(C)=O)C(=O)N[C@@H](Cc1c[nH]c2ccccc12)C(=O)N[C@@H]([C@@H](C)CC)C(=O)N[C@@H](C)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CC(O)=O)C(=O)N[C@@]1(C)CCC\C=C/CCC[C@](C)(NC(=O)[C@H](CC(O)=O)NC(=O)CNC(=O)[C@@H](NC1=O)[C@@H](C)CC)C(=O)N[C@@H](Cc1ccccc1)C(=O)N[C@@H](CC(N)=O)C(=O)N[C@@H](C)C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](C)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CCCNC(N)=N)C(N)=O BRD-K16130065
475
+ O=C(NCC#N)c1ccc(cc1)-c1ccnc(Nc2ccc(cc2)N2CCOCC2)n1 momelotinib
476
+ CC[C@H](Nc1ncnc2[nH]cnc12)c1nc2cccc(F)c2c(=O)n1-c1ccccc1 CAL-101
477
+ Cc1cccc(n1)-c1nn2CCCc2c1-c1ccnc2ccc(cc12)C(N)=O LY-2157299
478
+ CCC[C@H](NC(=O)C(=C\c1cccc(Br)n1)\C#N)c1ccccc1 WP1130
479
+ COc1cccc2cc([nH]c12)-c1nc([C@H]2CC[C@@H](CC2)C(O)=O)n2ncnc(N)c12 OSI-027
480
+ Fc1cc(cc(F)c1CN1CCOCC1)-c1cccc2ncc(nc12)-c1cnn(c1)C1CCNCC1 NVP-BSK805
481
+ COCCOc1cc2ncnc(Nc3cccc(c3)C#C)c2cc1OCCOC.CCCS(=O)(=O)Nc1ccc(F)c(C(=O)c2c[nH]c3ncc(cc23)-c2ccc(Cl)cc2)c1F erlotinib:PLX-4032 (2:1 mol/mol)
482
+ CC(=O)Nc1nc(C)c(s1)-c1ccc(Cl)c(c1)S(=O)(=O)NCCO PIK-93
483
+ NC(=O)Nc1cc(sc1C(=O)N[C@H]1CCCNC1)-c1cccc(F)c1 AZD7762
484
+ CC[C@H](NC(=O)[C@H](C)NC)C(=O)N1C[C@@H](O)C[C@H]1Cc1c([nH]c2cc(F)ccc12)-c1cc2c(C[C@@H]3C[C@H](O)CN3C(=O)[C@H](CC)NC(=O)[C@H](C)NC)cc(F)cc2[nH]1 birinapant
485
+ O=C(Cc1ccc(cn1)-c1ccc(OCCN2CCOCC2)cc1)NCc1ccccc1 KX2-391
486
+ OC(=O)\C=C\c1ccc(c(Cl)c1)-c1ccc(O)c(c1)C12C[C@H]3C[C@H](C[C@H](C3)C1)C2 3-Cl-AHPC
487
+ CC(C)C[C@H](NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCNC(N)=N)NC(C)=O)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](C(C)C)C(=O)NCC(=O)N[C@@H](CC(O)=O)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H](C(C)C)C(=O)N[C@@]1(C)CCC\C=C/CCC[C@](C)(NC(=O)[C@H](Cc2cnc[nH]2)NC(=O)[C@H](CC(N)=O)NC(=O)[C@H](CCCNC(N)=N)NC1=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](C)C(=O)N[C@@H](Cc1ccccc1)C(N)=O BRD-K58730230
488
+ CC(C)C[C@H](NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCNC(N)=N)NC(C)=O)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](C(C)C)C(=O)NCC(=O)N[C@@H](CC(O)=O)C(=O)NCC(=O)N[C@@H](C(C)C)C(=O)N[C@@]1(C)CCC\C=C/CCC[C@](C)(NC(=O)[C@H](Cc2cnc[nH]2)NC(=O)[C@H](CC(N)=O)NC(=O)[C@H](CCCNC(N)=N)NC1=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](C)C(=O)N[C@@H](Cc1ccccc1)C(N)=O BRD-K27188169
489
+ CC(C)CNc1ccnc(NCc2csc(n2)-c2ccccc2)n1 KHS101
490
+ CC(C)OC(=O)C1=CN(CC(C)(C)c2c1[nH]c1ccccc21)C(=O)c1ccc(F)c(F)c1 WAY-362450
491
+ ONC(=O)CCCCCCC(=O)Nc1ccccc1.Cc1sc-2c(c1C)C(=N[C@@H](CC(=O)OC(C)(C)C)c1nnc(C)n-21)c1ccc(Cl)cc1 JQ-1:vorinostat (2:1 mol/mol)
492
+ CC(C)C[C@H](NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCNC(N)=N)NC(C)=O)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](C(C)C)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H](CC(O)=O)C(=O)NCC(=O)N[C@@H](C(C)C)C(=O)N[C@@]1(C)CCC\C=C/CCC[C@](C)(NC(=O)[C@H](Cc2cnc[nH]2)NC(=O)[C@H](CC(N)=O)NC(=O)[C@H](CCCNC(N)=N)NC1=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](C)C(=O)N[C@@H](Cc1ccccc1)C(N)=O BRD-K13185470
493
+ COc1cc2nccc(Oc3ccc(NC(=O)C4(CC4)C(=O)Nc4ccc(F)cc4)cc3)c2cc1OC cabozantinib
494
+ C[C@@H](Oc1cc(cnc1N)-c1cnn(c1)C1CCNCC1)c1c(Cl)ccc(F)c1Cl.CCCS(=O)(=O)Nc1ccc(F)c(C(=O)c2c[nH]c3ncc(cc23)-c2ccc(Cl)cc2)c1F crizotinib:PLX-4032 (2:1 mol/mol)
495
+ C[C@H](O)[C@@H]1[C@H](CO)ON(Cc2cccc(CN(CCN(C)C)[C@H](C3CCCCC3)c3ccccc3)c2)[C@@H]1C(=O)N[C@H]1C[C@H]2C[C@@H]([C@@H]1C)C2(C)C.C[C@H](O)[C@@H]1[C@H](CO)ON(Cc2cccc(CN(CCN(C)C)[C@@H](C3CCCCC3)c3ccccc3)c2)[C@@H]1C(=O)N[C@H]1C[C@H]2C[C@@H]([C@@H]1C)C2(C)C BRD-M00053801
496
+ COc1cc(cc(c1)C(F)(F)F)-c1ncn(\C=C/C(=O)OC(C)C)n1 KPT185
497
+ Brc1ccc(cc1)\C=C1/SC(NS(=O)(=O)c2cccc3ccccc23)=NC1=O pitstop2
498
+ Nc1nc(Nc2ccc3CC[C@@H](CCc3c2)N2CCCC2)nn1-c1cc2CCCc3ccccc3-c2nn1 R428
499
+ Nc1ncnc2n(nc(-c3ccc(Oc4ccccc4)cc3)c12)[C@@H]1CCCN(C1)C(=O)C=C ibrutinib
500
+ CN1CCN(CC1)c1nc(C2=C(C(=O)NC2=O)c2c[nH]c3ccccc23)c2ccccc2n1 sotrastaurin
501
+ C[C@H](\N=C(\NC#N)Nc1cccc2ncccc12)c1ccccc1 A-804598
502
+ CC1(C)CCC(=C(CN2CCN(CC2)c2ccc(cc2)C(=O)NS(=O)(=O)c2ccc(N[C@H](CCN3CCOCC3)CSc3ccccc3)c(c2)S(=O)(=O)C(F)(F)F)C1)c1ccc(Cl)cc1.CC(C)C[C@H](NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCNC(N)=N)NC(C)=O)C(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](C(C)C)C(=O)NCC(=O)N[C@@H](CC(O)=O)C(=O)NCC(=O)N[C@@H](C(C)C)C(=O)N[C@@]1(C)CCC\C=C/CCC[C@](C)(NC(=O)[C@H](Cc2cnc[nH]2)NC(=O)[C@H](CC(N)=O)NC(=O)[C@H](CCCNC(N)=N)NC1=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](C)C(=O)N[C@@H](Cc1ccccc1)C(N)=O BRD-K27188169:navitoclax (2:1 mol/mol)
503
+ NC(=O)C1C(=O)C[C@@H]2C[C@@H]3Cc4cccc(O)c4C(=O)C3C(=O)[C@]2(O)C1=O COL-3
504
+ CC1(C)CCC(CN2CCN(CC2)c2ccc(C(=O)NS(=O)(=O)c3ccc(NCC4CCOCC4)c(c3)[N+]([O-])=O)c(Oc3cnc4[nH]ccc4c3)c2)=C(C1)c1ccc(Cl)cc1 ABT-199
505
+ CC(C)(C#N)c1ccc(cc1)N1C(=O)OCc2cnc3ccc(cc3c12)-c1cnc2ccccc2c1 ETP-46464
506
+ Oc1ccccc1C(=O)c1[nH]c(Cl)c(Cl)c1-n1c(cc(Cl)c1Cl)C(=O)c1ccccc1O marinopyrrole A
507
+ COC(=O)\C=C\C(=O)N(O)CCCCNCc1ccc(COC(=O)Nc2cccc3ccccc23)cc1 methylstat
508
+ Cc1nc(NC(=O)N2CCC[C@H]2C(N)=O)sc1-c1ccnc(c1)C(C)(C)C(F)(F)F BYL-719
509
+ Cc1nc2c(cc(cc2n1Cc1cccc(c1C)C(F)(F)F)N1CCOCC1)C(O)=O GSK2636771
510
+ CCOC(=O)C1Cc2ccccc2CN1C(=O)c1ccc(SC)s1 SR8278
511
+ COc1ccc(cc1)-n1c(SCc2nc(no2)-c2ccc(C)cc2)nnc1-c1ccncc1 JW-74
512
+ COc1nccnc1NS(=O)(=O)c1ccc(NC(=O)\C=C\c2ccc(s2)[N+]([O-])=O)cc1 necrosulfonamide
513
+ Clc1ccc-2c(c1)C(=O)c1nc(C#N)c(nc-21)C#N HBX-41108
514
+ CCCCCCCCCC[C@H]1[C@H](CCc2ccc(OC)c(OC)c2)OC1=O palmostatin B
515
+ COc1ccc(cc1)C1(CNC(=O)c2ccc(NC(=O)c3ccco3)cc2)CCOCC1 JW-55
516
+ CC1=NN(C(=O)C\1=N\Nc1ccccc1C(O)=O)c1nc(cs1)-c1ccccc1 BRD-K03536150
517
+ CCN(CC)c1ccc(cc1)C1=NNC(=O)C[C@H]1C BRD-K99006945
518
+ O=C1NC(=O)[C@H]([C@@H]1c1c[nH]c2ccccc12)c1cn2CCCc3cccc1c23 tivantinib
519
+ CC(=O)Nc1cccc(c1)-n1c2c(C)c(=O)n(C)c(Nc3ccc(I)cc3F)c2c(=O)n(C2CC2)c1=O trametinib
520
+ CC(C)(C(=O)NCC(F)(F)C(F)(F)F)C(=O)N[C@H]1c2ccccc2-c2ccccc2NC1=O RO4929097
521
+ CCc1cnn2c(NCc3ccc[n+]([O-])c3)cc(nc12)N1CCCC[C@H]1CCO dinaciclib
522
+ C[C@@H](NC(=O)c1ncnc(N)c1Cl)c1ncc(s1)C(=O)Nc1cc(c(Cl)cn1)C(F)(F)F MLN2480
523
+ CC(C)n1ncc2c(cc(Br)cc12)C(=O)NCc1c(C)cc(C)[nH]c1=O BRD-K51831558
524
+ CCn1c2nc(\C=C\c3ccc(OC)c(OC)c3)n(C)c2c(=O)n(CC)c1=O istradefylline
525
+ CCCc1cc2c(ncnc2s1)N1CCN(CC1)C1=NCC(C)(C)S1 MI-2
526
+ CC(C)n1ncc2c(cc(cc12)-c1ccc(nc1)N1CCNCC1)C(=O)NCc1c(C)cc(C)[nH]c1=O BRD-K42260513
527
+ CN1CC[C@H]([C@H](O)C1)c1c(O)cc(O)c2c1oc(cc2=O)-c1ccccc1Cl alvocidib
528
+ COC(=O)c1cc(CN2CCN(CC2)C(N)=N)cc(c1)C(=O)N1CCN(CC1)C(=O)c1ccc(cc1)C(N)=N CBB-1007
529
+ CCOC(=O)CCNc1cc(nc(n1)-c1ccccn1)N1CCc2ccccc2CC1 GSK-J4
530
+ Cc1ccc(cc1)C(NC(=O)c1ccccc1)c1ccc2cccnc2c1O BRD-A86708339
531
+ CN(C)C[C@@H](NC(=O)N1Cc2c(Nc3nc(C)nc4ccsc34)n[nH]c2C1(C)C)c1ccccc1 PF-3758309
532
+ CC(C)(C)c1nc(c(s1)-c1ccnc(N)n1)-c1cccc(NS(=O)(=O)c2c(F)cccc2F)c1F dabrafenib
533
+ CC1(C)CCN(CC1)c1ccc(cc1)C(=O)NS(=O)(=O)c1ccc(NCCSc2ccccc2)c(c1)[N+]([O-])=O SZ4TA2
534
+ CC(C)c1cc(C(=O)N2Cc3ccc(CN4CCN(C)CC4)cc3C2)c(O)cc1O AT13387
535
+ COc1ccc(cc1)C1C(C(=O)Nc2ccccc2)=C(C)N=c2s\c(=C/c3cn(Cc4ccccc4)c4ccccc34)c(=O)n12 BCL-LZH-4
536
+ OC[C@@H](O)COc1ccc2CCc3cc(Nc4ccc(F)cc4F)ccc3C(=O)c2c1 skepinone-L
537
+ COc1ccc(cc1)C#CC1=CCCN(C(=O)\C=C\c2cc(OC)c(OC)c(OC)c2)C1=O BRD-K34222889
538
+ Nc1ncnc2n(nc(COc3cccc(Cl)c3)c12)C1CCOCC1 PF-4800567 hydrochloride
539
+ CC1O[C@@H](OCC2O[C@@H](O[C@H]3CC[C@@]4(C)C(CC[C@]5(C)C4CC=C4C6CC(C)(C)[C@H](C[C@@]6([C@H](O)C[C@@]54C)C(=O)O[C@@H]4OC(CO)[C@@H](O)[C@@H](O)[C@@H]4O[C@@H]4OC(C)[C@H](O[C@@H]5O[C@@H](CO)[C@H](O)[C@@H]5O)[C@@H](O[C@@H]5OC(CO)[C@@H](O)[C@@H](O)[C@@H]5O)[C@@H]4O)OC(=O)C(\CO)=C\CC[C@](C)(O[C@@H]4OC(C)[C@@H](OC(=O)C(\CO)=C\CCC(C)(O)C=C)[C@@H](O)[C@@H]4O)C=C)C3(C)C)[C@@H](NC(C)=O)[C@H](O)[C@@H]2O)[C@@H](O[C@@H]2OC[C@@H](O)[C@@H](O)[C@@H]2O)[C@H](O)[C@H]1O avicin D
540
+ CC(C)(C)c1ccc2cc(C#N)c(cc2c1)C#N.CN1CCN(CC1)c1ccc(Nc2ncc3c(n2)n(-c2cccc(n2)C(C)(C)O)n(CC=C)c3=O)cc1 BRD9876:MK-1775 (4:1 mol/mol)
541
+ Cc1c(sc(=O)n1C)-c1ccnc(Nc2ccc(cc2)N2CCNCC2)n1 BRD-K30748066
542
+ CC1(O)CC(C1)c2nc(c3ccc4ccc(nc4c3)c5ccccc5)c6c(N)nccn26 linsitinib
543
+ CNC(C)C(=O)NC1CN(CCC2CCC(N2C1=O)C(=O)NC(c3ccccc3)c4ccccc4)C(=O)CC(C)C AT-406
544
+ CCc1cnn2c(NCc3ccc[n+]([O-])c3)cc(N3CCCC[C@H]3CCO)nc12 Dinaciclib
545
+ CC(=O)O[C@H]1C(=O)[C@]2(C)[C@@H](O)C[C@H]3OC[C@@]3(OC(C)=O)[C@H]2[C@H](OC(=O)c2ccccc2)[C@]2(O)C[C@H](OC(=O)[C@H](O)[C@@H](NC(=O)c3ccccc3)c3ccccc3)C(C)=C1C2(C)C Paclitaxel
546
+ C#Cc1cccc(Nc2ncnc3cc(OC)c(OCCCCCCC(=O)NO)cc23)c1 CUDC-101
547
+ CC(C)N(CCCNC(=O)Nc1ccc(C(C)(C)C)cc1)CC1OC(n2cc(Br)c3c(N)ncnc32)C(O)C1O SGC0946
548
+ Cn1nnc2c(C(N)=O)ncn2c1=O Temozolomide
549
+ c1cn2cc(-c3ccc4cn[nH]c4c3)nc(Nc3ccc(N4CCOCC4)cc3)c2n1 Entospletinib
550
+ CN1CCc2c(c3ccccc3n2Cc2ccc(C(=O)NO)cc2)C1 Tubastatin A
551
+ COc1cc([C@@H]2c3cc4c(cc3[C@@H](O[C@@H]3O[C@@H]5CO[C@@H](c6cccs6)O[C@H]5[C@H](O)[C@H]3O)[C@H]3COC(=O)[C@H]23)OCO4)cc(OC)c1O Teniposide
552
+ CCCCC(C=O)NC(=O)[C@H](CC(C)C)NC(=O)[C@@H](CC(C)C)NC(=O)OCc1ccccc1 Z-LLNle-CHO
553
+ CCNC(=O)Nc1ncc(-c2cc(-c3c(C)cc(OC)cc3C)nc(-c3cnccn3)n2)s1 LIMK1 inhibitor BMS4
554
+ Nc1nc(F)nc2c1ncn2[C@@H]1O[C@H](COP(=O)(O)O)[C@@H](O)[C@@H]1O Fludarabine
555
+ CCn1c(-c2nonc2N)nc2c(C#CC(C)(C)O)ncc(OCC3CCCNC3)c21 GSK690693
556
+ Cc1c(CN2CCN(C(=O)[C@H](C)O)CC2)sc2c(N3CCOCC3)nc(-c3cnc(N)nc3)nc12 Apitolisib
557
+ Cc1oncc1C(=O)Nc1ccc(C(F)(F)F)cc1 Leflunomide
558
+ Cc1cc([N+](=O)[O-])ccc1NS(=O)(=O)c1cc(Cl)ccc1Cl FH535
559
+ NCCOc1cc(C(=O)Nc2cc(OCCN)c3ccccc3n2)nc(C(=O)Nc2cc(OCCN)c3ccccc3n2)c1 Pyridostatin
560
+ Cn1cnc2c(F)c(Nc3ccc(Br)cc3Cl)c(C(=O)NOCCO)cc21 Selumetinib
561
+ COc1cc2c(cc1OC)[C@@H]1C(=O)c3ccc4c(c3O[C@@H]1CO2)C[C@H](C(C)C)O4 Dihydrorotenone
562
+ Cc1cc(Nc2nc(N[C@@H](C)c3ccc(F)cc3)c(C#N)cc2F)n[nH]1 AZ960
563
+ O=C(NOCC1CC1)c1ccc(F)c(F)c1Nc1ccc(I)cc1Cl CI-1040
564
+ CN1CCN(c2ccc([N+](=O)[O-])c3no[n+]([O-])c23)CC1 NSC-207895
565
+ CNCc1ccc(-c2[nH]c3cc(F)cc4c3c2CCNC4=O)cc1 Rucaparib
566
+ Br.C=C1N(CCCCCC(=O)O)c2ccccc2C1(C)C Cetuximab
567
+ N#CCCC1CCCCC1=NNc1ccc([N+](=O)[O-])cc1[N+](=O)[O-] JW-7-24-1
568
+ c1ccc(-c2nn3c(c2-c2ccnc4cc(OCCN5CCOCC5)ccc24)CCC3)nc1 LY2109761
569
+ Nc1cccc(-c2cc3c(Oc4cccc(O)c4)ncnc3[nH]2)c1 TWS119
570
+ Nc1nc2c(ncn2[C@@H]2O[C@H](CO)[C@@H](O)[C@@H]2O)c(=O)[nH]1 Ara-G
571
+ CN(C)CC=CC(=O)Nc1cc2c(Nc3ccc(F)c(Cl)c3)ncnc2cc1OC1CCOC1 Afatinib
572
+ Cc1c2oc3c(C)ccc(C(=O)N[C@@H]4C(=O)N[C@H](C(C)C)C(=O)N5CCC[C@H]5C(=O)N(C)CC(=O)N(C)[C@@H](C(C)C)C(=O)O[C@@H]4C)c3nc-2c(C(=O)N[C@@H]2C(=O)N[C@H](C(C)C)C(=O)N3CCC[C@H]3C(=O)N(C)CC(=O)N(C)[C@@H](C(C)C)C(=O)O[C@@H]2C)c(N)c1=O Dactinomycin
573
+ Cl.Cl.c1cc(-c2cc(C3CCNCC3)[nH]n2)ccn1 ETP-45835
574
+ COc1ncc(-c2ccc3nccc(-c4ccnnc4)c3c2)cc1NS(=O)(=O)c1ccc(F)cc1F Omipalisib
575
+ O=C(NC[C@H](O)CN1CCc2ccccc2C1)c1ccnc(NC2CCC2)c1 GSK591
576
+ COc1ccc(Cl)c(Nc2nc3ccccc3nc2NS(=O)(=O)c2cccc(NC(=O)C(C)(C)N)c2)c1 Pilaralisib
577
+ C/C(=C\c1csc(C)n1)[C@@H]1C[C@@H]2O[C@@]2(C)CCC[C@H](C)[C@@H](O)[C@H](C)C(=O)C(C)(C)[C@H](O)CC(=O)O1 Epothilone B
578
+ C[C@]12O[C@H](C[C@]1(O)CO)n1c3ccccc3c3c4c(c5c6ccccc6n2c5c31)CNC4=O Lestaurtinib
579
+ O=P(O)(O)C(O)(Cn1ccnc1)P(=O)(O)O Zoledronate
580
+ Cc1cnc(Nc2ccc(F)cc2Cl)nc1-c1c[nH]c(C(=O)NC(CO)c2cccc(Cl)c2)c1 VX-11e
581
+ C/C=C(/C)C(=O)O[C@H]1C(C)=C2[C@@H]3OC(=O)[C@@](C)(O)[C@@]3(O)[C@@H](OC(=O)CCC)C[C@](C)(OC(C)=O)[C@H]2[C@@H]1OC(=O)CCCCCCC Thapsigargin
582
+ O=c1[nH]cc(F)c(=O)[nH]1 5-Fluorouracil
583
+ CNC(=O)c1ccc(Nc2cc(Nc3ccccc3S(=O)(=O)C(C)C)c3cc[nH]c3n2)nc1 HG-5-113-01
584
+ Cc1cc(Nc2nc(N[C@@H](C)c3ccc(F)cc3)c(C#N)cc2F)n[nH]1 Telomerase Inhibitor IX
585
+ Nc1[nH]nc2nnc(-c3c(-c4ccccc4)nn4ccccc34)cc12 FR-180204
586
+ Cc1cccc(Nc2nc(-c3ccncc3)cs2)c1 STF-62247
587
+ O=C(C=Cc1cccnc1)NCCCCC1CCN(C(=O)c2ccccc2)CC1 Daporinad
588
+ CCc1nc(N)nc(N)c1-c1ccc(Cl)cc1 Pyrimethamine
589
+ Cc1ccccc1[C@@H](C(=O)NC1CCCCC1)N(C(=O)Cn1ccnc1C)c1cccc(F)c1 AGI-5198
590
+ NC(=O)C1CCCc2c1[nH]c1ccc(Cl)cc21 Selisistat
591
+ COc1cc(F)c(F)c(Nc2ccc(I)cc2F)c1NS(=O)(=O)C1(CC(O)CO)CC1 Refametinib
592
+ CNC(=O)c1ccccc1Sc1ccc2c(C=Cc3ccccn3)n[nH]c2c1 Axitinib
593
+ C[C@]12CC[C@@H]3c4ccc(O)cc4C[C@@H](CCCCCCCCC[S@](=O)CCCC(F)(F)C(F)(F)F)[C@H]3[C@@H]1CC[C@@H]2O Fulvestrant
594
+ CC(Oc1cc(-c2cnn(C3CCNCC3)c2)cnc1N)c1c(Cl)ccc(F)c1Cl Crizotinib
595
+ Cc1cc(-c2ncc(CC(=O)Nc3ccc(-c4cnccn4)cn3)cc2C)ccn1 LGK974
596
+ CC1=C(/C=C/C(C)=C/C=C/C(C)=C/C(=O)O)C(C)(C)CCC1 Tretinoin
597
+ Cc1cc(Nc2cc(N3CCN(C)CC3)nc(Sc3ccc(NC(=O)C4CC4)cc3)n2)n[nH]1 Tozasertib
598
+ N#CC1=C(N)NC(=C2C(=O)C=CC=C2OCC2CC2)C=C1C1CCNCC1 KIN001-260
599
+ C[C@@H](Nc1cc(F)cc(F)c1)c1cc(C(=O)N(C)C)cc2c(=O)cc(N3CCOCC3)oc12 AZD8186
600
+ CNc1nc(Nc2ccc(C(=O)N3CCOCC3)cc2OC)ncc1Cl HG-5-88-01
601
+ NS(=O)(=O)OC[C@@H]1C[C@@H](n2ccc3c(N[C@H]4CCc5ccccc54)ncnc32)C[C@@H]1O Pevonedistat
602
+ CN(C)CCOc1ccc(-c2nc(=c3ccc4c(c3)CCC=4N=O)c(=C3C=CNC=C3)[nH]2)cc1 SB590885
603
+ Cc1cc(C(C)Nc2ccccc2)c2nc(N3CCOCC3)cc(=O)n2c1 TGX221
604
+ O=C(C=Cc1ccccc1)NC(NC(=S)Nc1cccc2cccnc12)C(Cl)(Cl)Cl Salubrinal
605
+ CCC1=C[C@@H]2CN(C1)Cc1c([nH]c3ccccc13)[C@@](C(=O)OC)(c1cc3c(cc1OC)N(C)[C@H]1[C@@](O)(C(=O)OC)[C@H](OC(C)=O)[C@]4(CC)C=CCN5CC[C@]31[C@@H]54)C2 Vinorelbine
606
+ COC(=O)c1ccc2c(C(=Nc3ccc(N(C)C(=O)CN4CCN(C)CC4)cc3)c3ccccc3)c(O)[nH]c2c1 BIBF-1120
607
+ Cc1cc(-c2ccc(CC(=O)Nc3ccc(-c4cccnc4)cc3)cc2)ccn1 Wnt-C59
608
+ CC(C)c1ccc(-c2cc(=O)c3ccccc3o2)cc1 MN-64
609
+ CN(NC(=O)CC(=O)NN(C)C(=S)c1ccccc1)C(=S)c1ccccc1 Elesclomol
610
+ Nc1ccc(-c2ccc3ncc4ccc(=O)n(-c5cccc(C(F)(F)F)c5)c4c3c2)cn1 Torin 2
611
+ CNC(=O)Nc1ccc(-c2nc(N3C[C@@H]4CC[C@H](C3)O4)c3cnn(C4CCC5(CC4)OCCO5)c3n2)cc1 WYE-125132
612
+ COc1cc2ncn(-c3cc(OCc4ccccc4S(C)(=O)=O)c(C#N)s3)c2cc1OC GSK319347A
613
+ C=CC(=O)Nc1cc2c(Nc3ccc(F)c(Cl)c3)ncnc2cc1OCCCN1CCOCC1 CI-1033
614
+ NC(=O)C(CCC(F)(F)F)N(Cc1ccc(-c2ncon2)cc1F)S(=O)(=O)c1ccc(Cl)cc1 Avagacestat
615
+ CCOC(=O)C1=C(C)NC2=C(C(=O)CC(C)(C)C2)[C@@H]1c1ccc(-c2ccccc2)cc1 RVX-208
616
+ O=C(Nc1cccc(Nc2ncc(Br)c(NCCc3cnc[nH]3)n2)c1)N1CCCC1 BX-912
617
+ Cc1sc2c(c1C)C(c1ccc(Cl)cc1)=N[C@@H](CC(=O)Nc1ccc(O)cc1)c1nnc(C)n1-2 OTX015
618
+ Cc1ccc(Nc2nccc(N(C)c3ccc4c(C)n(C)nc4c3)n2)cc1S(N)(=O)=O Pazopanib
619
+ Cc1nc(Nc2ncc(C(=O)Nc3c(C)cccc3Cl)s2)cc(N2CCN(CCO)CC2)n1 Dasatinib
620
+ Nc1ccn([C@@H]2O[C@H](CO)[C@@H](O)C2(F)F)c(=O)n1 Gemcitabine
621
+ O=C(C=Cc1cccc(S(=O)(=O)Nc2ccccc2)c1)NO Belinostat
622
+ O=C(O)CCCC[C@H](CCSCc1ccccc1)SCc1ccccc1 CPI-613
623
+ O=[P@]1(N(CCCl)CCCl)NCCCO1 Cyclophosphamide
624
+ CN[C@@H](C)C(=O)N[C@H](C(=O)N1CCC[C@H]1C(=O)N[C@H]1c2ccccc2C[C@H]1OCC#CC#CCO[C@@H]1Cc2ccccc2[C@@H]1NC(=O)[C@@H]1CCCN1C(=O)[C@@H](NC(=O)[C@H](C)NC)C1CCCCC1)C1CCCCC1 AZD5582
625
+ C=CC(=O)N1CCCC(Nc2nc(Nc3ccc(N(C)C(=O)CC)cc3)nc3nc[nH]c23)C1 WZ-1-84
626
+ Cc1ccc(-c2c(C(=O)CCl)n(CCCO)c3ncnc(N)c23)cc1 CMK
627
+ COc1cc(Nc2ncc3c(n2)-c2ccc(Cl)cc2C(c2c(F)cccc2OC)=NC3)ccc1C(=O)O Alisertib
628
+ C=C(c1ccc(C(=O)O)cc1)c1cc2c(cc1C)C(C)(C)CCC2(C)C Bexarotene
629
+ CN(C)CC[C@H](CSc1ccccc1)Nc1ccc(S(=O)(=O)NC(=O)c2ccc(N3CCN(Cc4ccccc4-c4ccc(Cl)cc4)CC3)cc2)cc1[N+](=O)[O-] ABT737
630
+ COc1cc2ncnc(-n3nc(-c4ccccn4)nc3N)c2cc1OC CP466722
631
+ CCn1cc(-c2ccnc3[nH]c(-c4cccc(CN(C)C)c4)cc23)c(-c2ccc(NC(=O)N(C)C)cc2)n1 GSK1070916
632
+ CCNC(=O)C1=C(c2ccc(CN3CCOCC3)cc2)C(=C2C=C(C(C)C)C(O)=CC2=O)ON1 Luminespib
633
+ OCC(Cc1ccccc1)Nc1nc(Oc2ccc3c(c2)CCC3)nc2c1ncn2Cc1ccc(-c2ccccc2)cc1 QS11
634
+ O=C(/C=C/N1C[C@H]2C[C@@H]1CN2c1ccccn1)c1ccccc1O PFI3
635
+ CCC(=O)Nc1cccc(Oc2nc(Nc3ccc(N4CCN(C)CC4)cc3OC)ncc2Cl)c1 WZ4003
636
+ Cn1cc(C2=C(c3cn(C4CCN(Cc5ccccn5)CC4)c4ccccc34)C(=O)NC2=O)c2ccccc21 Enzastaurin
637
+ O=C1NCCSc2c1sc1ccc(O)cc21 kb NB 142-70
638
+ O=C1C(=NNc2ccc3cc(S(=O)(=O)O)ccc3c2)C=C(S(=O)(=O)O)c2cccnc21 NSC-87877
639
+ Cc1nc(NC(=O)N2CCC[C@H]2C(N)=O)sc1-c1ccnc(C(C)(C)C(F)(F)F)c1 Alpelisib
640
+ CC(C)C[C@H](NC(=O)[C@H](Cc1ccccc1)NC(=O)c1cnccn1)B(O)O Bortezomib
641
+ Fc1cc(-c2ccnc(Nc3ccc(-n4cnc(N5CCOCC5)n4)cc3)n2)cc(N2CCOCC2)c1 JNK-9L
642
+ CC1(C)CCC(CN2CCN(c3ccc(C(=O)NS(=O)(=O)c4ccc(NCC5CCOCC5)c([N+](=O)[O-])c4)c(Oc4cnc5[nH]ccc5c4)c3)CC2)=C(c2ccc(Cl)cc2)C1 Venotoclax
643
+ CCN1CCC(n2cc(CNc3cc(Cl)c4ncc(C#N)c(Nc5ccc(F)c(Cl)c5)c4c3)nn2)CC1 KIN001-266
644
+ CC[C@@H](C)CNCC(=O)N1CCc2sccc2[C@@H]1COc1cccc(C)c1 RU-SKI 43
645
+ O=C(NCCCNc1nc(Nc2cccc(NC(=O)N3CCCC3)c2)ncc1I)c1cccs1 BX795
646
+ COc1cc2ncnc(Nc3ccc(F)c(Cl)c3)c2cc1NC(=O)/C=C/CN1CCCCC1 PF-00299804
647
+ O=C(C=Cc1ccc(CN(CCO)CCc2c[nH]c3ccccc23)cc1)NO Dacinostat
648
+ Cc1ccc(Nc2cc(-c3cccc(N4C(=O)c5ccccc5C4=O)c3)ncn2)cc1NS(C)(=O)=O KIN001-270
649
+ CCn1cc(-c2cccc(C(F)(F)F)c2)c2sc(/C(N)=N/C3CCS(=O)(=O)CC3)cc2c1=O I-BRD9
650
+ CCc1cc(Nc2nccc(-c3c(-c4ccc(OC)c(C(=O)Nc5c(F)cccc5F)c4)nc4ccccn34)n2)c(OC)cc1N1CCC(N2CCN(S(C)(=O)=O)CC2)CC1 GSK1904529A
651
+ CC1(C)CCC(CN2CCN(c3ccc(C(=O)NS(=O)(=O)c4ccc(NCC5CCOCC5)c([N+](=O)[O-])c4)c(Oc4cnc5[nH]ccc5c4)c3)CC2)=C(c2ccc(Cl)cc2)C1 Venetoclax
652
+ CC(C)=CC[C@@H](O)C1=CC(=O)c2c(O)ccc(O)c2C1=O Shikonin
653
+ NC1=NC(=O)C(=Cc2ccc(O)cc2)S1 Mirin
654
+ CC[C@@]1(O)C(=O)OCc2c1cc1n(c2=O)Cc2cc3c(CN(C)C)c(O)ccc3nc2-1 Topotecan
655
+ CCNC(=O)CC1N=C(c2ccc(Cl)cc2)c2cc(OC)ccc2-n2c(C)nnc21 I-BET-762
656
+ COC(=O)NC1(NC(=O)OC)NC(=O)c2cc(OC)c(OC)c(OC)c2N1 Gallibiscoquinazole
657
+ COc1cc(N2CCN(C)CC2)ccc1Nc1nc(N)c(C(=O)c2c(Cl)cccc2Cl)s1 XMD14-99
658
+ CC1(c2nc3c(C(N)=O)cccc3[nH]2)CCCN1 Veliparib
659
+ CC1=C2CC3C(CC=C4CC(O)CCC43C)C2CCC12OC1CC(C)CNC1C2C Cyclopamine
660
+ CN1CCN(CCOc2cc(OC3CCOCC3)c3c(Nc4c(Cl)ccc5c4OCO5)ncnc3c2)CC1 Saracatinib
661
+ Cc1sc2c(c1C)C(c1ccc(Cl)cc1)=NC(CC(=O)OC(C)(C)C)c1nnc(C)n1-2 JQ1
662
+ O=c1[nH]c2ccccc2n1C1CCN(Cc2ccc(-c3nc4cc5[nH]cnc5cc4nc3-c3ccccc3)cc2)CC1 AKT inhibitor VIII
663
+ Nc1cc(C(F)(F)F)c(-c2cc(N3CCOCC3)nc(N3CCOCC3)n2)cn1 Buparlisib
664
+ Cc1ccc(NC(=O)c2ccc(CN3CCN(C)CC3)cc2)cc1Nc1nccc(-c2cccnc2)n1 Imatinib
665
+ CN(C)Cc1cccc(NC(=C2C(=O)Nc3cc(C(=O)N(C)C)ccc32)c2ccccc2)c1 BIX02189
666
+ COCCNCCCn1c(C(=O)CF)c(-c2ccc(C)cc2)c2c(N)ncnc21 FMK
667
+ CN(C)C(=O)c1cc2cnc(Nc3ccc(N4CCNCC4)cn3)nc2n1C1CCCC1 Ribociclib
668
+ Cn1cc(-c2ccc3c(c2)CCN3C(=O)Cc2cccc(C(F)(F)F)c2)c2c(N)ncnc21 GSK2606414
669
+ COc1cc(N2CCN(C)CC2)ccc1Nc1ncc2c(n1)N(C)c1ccccc1C(=O)N2C XMD8-85
670
+ NCC(=O)Nc1ccc(-n2nc(C(F)(F)F)cc2-c2ccc3c(ccc4ccccc43)c2)cc1 OSU-03012
671
+ c1ccc2c(CCNc3ccc(Nc4ccncc4)cc3)c[nH]c2c1 Serdemetan
672
+ COc1nc(N)nc2c1ncn2[C@@H]1O[C@H](CO)[C@@H](O)[C@@H]1O Nelarabine
673
+ Cn1cc(-c2cnn3c(N)c(Br)c([C@@H]4CCCNC4)nc23)cn1 MK-8776
674
+ O=C1c2c(O)ccc(O)c2C(=O)c2c(NCCNCCO)ccc(NCCNCCO)c21 Mitoxantrone
675
+ NC1(C(=O)N[C@@H](CCO)c2ccc(Cl)cc2)CCN(c2ncnc3[nH]ccc23)CC1 AZD5363
676
+ COC1CC2CCC(C)C(O)(O2)C(=O)C(=O)N2CCCCC2C(=O)OC(C(C)CC2CCC(OC(=O)C(C)(CO)CO)C(OC)C2)CC(=O)C(C)C=C(C)C(O)C(OC)C(=O)C(C)CC(C)C=CC=CC=C1C Temsirolimus
677
+ Cn1ncc(Cl)c1-c1cc(C(=O)N[C@H](CN)Cc2ccc(F)c(F)c2)oc1Cl Uprosertib
678
+ CCC(Nc1ncnc2nc[nH]c12)c1nc2cccc(F)c2c(=O)n1-c1ccccc1 Idelalisib
679
+ CN[C@@H](C)C(=O)N[C@H](C(=O)N1CCC[C@H]1c1nc(C(=O)c2ccc(F)cc2)cs1)C1CCCCC1 LCL161
680
+ CC1=C(C(=O)Nc2cc3cn[nH]c3cc2F)C(c2ccc(C(F)(F)F)cc2)CC(=O)N1 GSK429286A
681
+ COc1ccc(COc2ccc(Cc3cnc(N)nc3N)cc2OC)cc1 GW-2580
682
+ S=C(NCc1ccc2c(c1)OCO2)N1CCN(c2ncnc3c2oc2ccccc23)CC1 Amuvatinib
683
+ CCCC(=O)OCc1ccc(OC(=O)\C=C(/C)\C=C\C=C(/C)\C=C\C2=C(C)CCCC2(C)C)cc1 VNLG/124
684
+ C=CC(=O)Nc1cc(-n2c(=O)ccc3cnc4ccc(-c5ccc(NS(C)(=O)=O)cc5)cc4c32)ccc1C QL-XII-61
685
+ CC1(C)Cc2c(c(nn2-c2ccc(C(N)=O)c(N[C@H]3CC[C@H](O)CC3)c2)C(F)(F)F)C(=O)C1 SNX-2112
686
+ O=C(CCCCCCNC(=O)c1cnc(N(c2ccccc2)c2ccccc2)nc1)NO ACY-1215
687
+ O=C(O)CSc1cc(NS(=O)(=O)c2ccc(Br)cc2)c2ccccc2c1O UMI-77
688
+ CCN1CCN(Cc2ccc(NC(=O)c3ccc(C)c(C=Cc4cnc5[nH]ccc5c4OC)c3)cc2C(F)(F)F)CC1 HG6-64-1
689
+ Cc1cc2c(C(=O)NC[C@H](C)c3ccccc3)c(O)c(O)cc2c(O)c1-c1c(C)cc2c(C(=O)NC[C@H](C)c3ccccc3)c(O)c(O)cc2c1O Sabutoclax
690
+ Oc1cccc(c1)-c1nc(N2CCOCC2)c2oc3ncccc3c2n1 PI-103
691
+ CC(O)=C(C#N)C(=O)Nc1cc(Br)ccc1Br LFM-A13
692
+ Cc1cnc(-c2ccccc2C(C)C)nc1NCc1ccc(-n2ccnn2)cc1 ML323
693
+ CCCc1cc(C)[nH]c(=O)c1CNC(=O)c1cc(-c2ccnc(N3CCN(C)CC3)c2)cc2c1cnn2C(C)C GSK343
694
+ NC(N)=N/C(N)=N\CCc1ccccc1 Phenformin
695
+ Cc1cccc(-c2[nH]c(C(C)(C)C)nc2-c2ccc3c(c2)OCO3)n1 SB505124
696
+ CC(C)C(C(=O)Nc1ccc(C(=O)NO)cc1)c1ccccc1 AR-42
697
+ COc1ccc(C2=NC(c3ccc(Cl)cc3)C(c3ccc(Cl)cc3)N2C(=O)N2CCNC(=O)C2)c(OC(C)C)c1 Nutlin-3a (-)
698
+ NC(=O)c1ccc(N(C(N)=O)c2c(F)cccc2F)nc1-c1ccc(F)cc1F VX-702
699
+ CC(C)N(C[C@H]1O[C@@H](n2cnc3c(N)ncnc32)[C@H](O)[C@@H]1O)C1CC(CCc2nc3cc(C(C)(C)C)ccc3[nH]2)C1 EPZ5676
700
+ CCN(CC)CCCCNc1ncc2cc(-c3cc(OC)cc(OC)c3)c(NC(=O)NC(C)(C)C)nc2n1 PD173074
701
+ C[C@@H](c1ccc2nccn2c1)n1nnc2ncc(-c3cnn(C)c3)nc21 Savolitinib
702
+ CN(C)C/C=C/C(=O)Nc1cccc(C(=O)Nc2cccc(Nc3ncc(Cl)c(-c4c[nH]c5ccccc45)n3)c2)c1 THZ-2-102-1
703
+ C=CC(=O)Nc1cc(-n2c(=O)ccc3cnc4ccc(-c5cn[nH]c5)cc4c32)ccc1C QL-X-138
704
+ COc1nc(C)cnc1NS(=O)(=O)c1cccnc1-c1ccc(-c2nnco2)cc1 Zibotentan
705
+ CCOc1cc2ncc(C#N)c(Nc3ccc(F)c(Cl)c3)c2cc1NC(=O)C=CCN(C)C Pelitinib
706
+ CC(=O)OC1C(C)OC(Oc2c(-c3ccc(O)cc3)oc3cc(O)cc(O)c3c2=O)C(O)C1OC(C)=O SL0101
707
+ CN1CC[C@H](c2c(O)cc(O)c3c(=O)cc(-c4ccccc4Cl)oc23)[C@H](O)C1 Flavopiridol
708
+ CN(C)CCCCC(=O)Nc1ccc(NC(=S)NC(=O)c2ccc(C(C)(C)C)cc2)cc1 Tenovin-6
709
+ CC\C(=C(\c1ccc(\C=C\C(=O)O)cc1)/c2ccc3[nH]ncc3c2)\c4ccc(F)cc4Cl GDC0810
710
+ CC(=O)Oc1ccc(C2(c3ccc(OC(C)=O)cc3)C(=O)Nc3ccccc32)cc1 Acetalax
711
+ N[C@@H]1CCCN(c2c(/C=C3/SC(=O)NC3=O)cccc2-c2ccccc2)C1 Kobe2602
712
+ CC[C@]1(O)C[C@H]2CN(CCc3c([nH]c4ccccc34)[C@@](C(=O)OC)(c3cc4c(cc3OC)N(C=O)[C@H]3[C@@](O)(C(=O)OC)[C@H](OC(C)=O)[C@]5(CC)C=CCN6CC[C@]43[C@@H]65)C2)C1 Vincristine
713
+ N#CCC(C1CCCC1)n1cc(-c2ncnc3[nH]ccc23)cn1 Ruxolitinib
714
+ Nc1ncc(-c2ccc3ncc4ccc(=O)n(-c5ccc(N6CCNCC6)c(Cl)c5)c4c3c2)cn1 QL-VIII-58
715
+ Cc1ccc(C(=O)Nc2ccc(CN3CCN(C)CC3)c(C(F)(F)F)c2)cc1C#Cc1cnc2cccnn12 Ponatinib
716
+ Cc1ccc(NC(=O)c2ccc(CN3CCN(C)CC3)cc2)cc1Nc1nc(-c2cccnc2)cs1 Masitinib
717
+ C=CC(=O)N1CCc2ccc(-n3c(=O)ccc4cnc5ccc(-c6cnn(C)c6)cc5c43)cc21 QL-XII-47
718
+ Cn1ncnc1C1C2=c3c(cc(F)cc3=NC1c1ccc(F)cc1)C(=O)NN2 Talazoparib
719
+ O=C(O)c1ccc(-c2c[nH]c3ncc(-c4ccccc4)cc23)cc1C1CCCC1 GSK650394
720
+ CC(C)N(CCCNC(=O)Nc1ccc(C(C)(C)C)cc1)C[C@H]1O[C@@H](n2ccc3c(N)ncnc32)[C@H](O)[C@@H]1O EPZ004777
721
+ C/C(=N\NC(=S)N1CCC1)c1ccccn1 NSC319726
722
+ CCC(C)C(NC(=O)C(CCC(N)=O)NC(=O)C(CCC(=O)O)NC(=O)C(CCC(N)=O)NC(=O)C(CC(C)C)NC(=O)C(NC(=O)C(CO)NC(=O)C(N)C(C)O)C(C)O)C(=O)NCC(=O)NC(Cc1c[nH]c2ccccc12)C(=O)O TW 37
723
+ C=CC(=O)Nc1cc(NC(=O)c2ccc(C)c(NC(=O)c3ccno3)c2)cc(C(F)(F)F)c1 QL-XI-92
724
+ O=C(/C=C/N1C[C@H]2C[C@@H]1CN2c1ccccn1)c1ccccc1O PFI-3
725
+ COc1cc2c(Oc3ccc(NC(=O)C4(C(=O)Nc5ccc(F)cc5)CC4)cc3F)ccnc2cc1OCCCN1CCOCC1 Foretinib
726
+ COC1CC2CCC(C)C(O)(O2)C(=O)C(=O)N2CCCCC2C(=O)OC(C(C)CC2CCC(O)C(OC)C2)CC(=O)C(C)C=C(C)C(O)C(OC)C(=O)C(C)CC(C)C=CC=CC=C1C Rapamycin
727
+ N#CC(c1ccnc(NCCc2cccnc2)n1)c1nc2ccccc2s1 AS601245
728
+ C=C1C(=O)OC(CCCCCCCC)C1C(=O)O C-75
729
+ O=C(Nc1ccc(Nc2nccc(Nc3cc(C4CCCC4)[nH]n3)n2)cc1)Nc1cccc(C(F)(F)F)c1 CD532
730
+ CCOc1nc(NC(=O)Cc2cc(OC)ccc2OC)cc(N)c1C#N JNK Inhibitor VIII
731
+ COc1cc2nccc(Oc3ccc(NC(=O)C4(C(=O)Nc5ccc(F)cc5)CC4)cc3)c2cc1OC Cabozantinib
732
+ C=CCNC1=C2CC(C)CC(OC)C(O)C(C)C=C(C)C(OC(N)=O)C(OC)C=CC=C(C)C(=O)NC(=CC1=O)C2=O Tanespimycin
733
+ COC[C@]1(CO)C(=O)C2CCN1CC2 PRIMA-1MET
734
+ CCc1c2c(nc3ccc(OC(=O)N4CCC(N5CCCCC5)CC4)cc13)-c1cc3c(c(=O)n1C2)COC(=O)[C@]3(O)CC Irinotecan
735
+ CC(C)Nc1cc(-c2c[nH]c(C(=O)N[C@H](CO)c3cccc(Cl)c3)c2)c(Cl)cn1 Ulixertinib
736
+ NC(=O)c1cccc2cn(-c3ccc([C@@H]4CCCNC4)cc3)nc12 Niraparib
737
+ OCCCNc1cc(-c2ccnc(Nc3cccc(Cl)c3)n2)ccn1 CGP-60474
738
+ COc1cc(Nc2c(C#N)cnc3cc(OCCCN4CCN(C)CC4)c(OC)cc23)c(Cl)cc1Cl Bosutinib
739
+ Oc1ccc(Nc2nc(-c3ccc(Cl)cc3)cs2)cc1 Sphingosine Kinase 1 Inhibitor II
740
+ COC(=O)C(CCSC)NC(=O)c1ccc(NCC(N)CS)cc1-c1ccccc1 FTI-277
741
+ COc1cc2ncnc(Nc3cccc(Cl)c3F)c2cc1OC(=O)N1CCN(C)C[C@H]1C AZD3759
742
+ Cc1nc(-c2cn3c(n2)-c2ccc(-c4cnn(C(C)(C)C(N)=O)c4)cc2OCC3)n(C(C)C)n1 Taselisib
743
+ CCN1CCN(Cc2ccc(NC(=O)c3ccc(C)c(Oc4ccnc5[nH]ccc45)c3)cc2C(F)(F)F)CC1 NG-25
744
+ Cn1cncc1C(N)(c1ccc(Cl)cc1)c1ccc2c(c1)c(-c1cccc(Cl)c1)cc(=O)n2C Tipifarnib
745
+ CC(C)(C)OC(=O)Nc1ccc(-c2cc(C(=O)NCCCCCCC(=O)NO)no2)cc1 CAY10603
746
+ COc1cc(O)c2c(c1)C=CCC(O)C(O)C(=O)C=CCC(C)OC2=O (5Z)-7-Oxozeaenol
747
+ CCCCCCCCCCCC1=C(O)C(=O)C=C(O)C1=O Embelin
748
+ CCOc1ccccc1N/N=C1/C(=O)N(c2nc(-c3ccccc3)cs2)N=C1C BAM7
749
+ CC1(O)CC(c2nc(-c3ccc4ccc(-c5ccccc5)nc4c3)c3c(N)nccn23)C1 Linsitinib
750
+ NC[C@@](O)(c1ccc(Cl)cc1)c1ccc(-c2cn[nH]c2)cc1 AT13148
751
+ Cc1cnc(Nc2ccc(OCCN3CCCC3)cc2)nc1Nc1cccc(S(=O)(=O)NC(C)(C)C)c1 Fedratinib
752
+ Cc1ccc(C(=O)Nc2cccc(C(F)(F)F)c2)cc1Nc1nc(-c2cccnc2)nc2c1cnn2C NVP-BHG712
753
+ N=c1nc(N2CCCCC2)cc(N)n1O Cisplatin
754
+ CO[C@@]12[C@H](COC(N)=O)C3=C(C(=O)C(C)=C(N)C3=O)N1C[C@@H]1N[C@@H]12 Mitomycin-C
755
+ O=C(O)CNC(=O)c1c(O)c2ccccc2n(Cc2ccccc2)c1=O IOX2
756
+ CN(Cc1cnc2nc(N)nc(N)c2n1)c1ccc(C(=O)N[C@@H](CCC(=O)O)C(=O)O)cc1 Methotrexate
757
+ CC(C)NC[C@@H](C(=O)N1CCN(c2ncnc3c2[C@H](C)C[C@H]3O)CC1)c1ccc(Cl)cc1 Ipatasertib
758
+ O=C(Nc1cccc(C(F)(F)F)c1)Nc1cc(S(=O)(=O)NC2CC2)ccc1-c1ccsc1 AGI-6780
759
+ COc1cccc2c1C(=O)c1c(O)c3c(c(O)c1C2=O)C[C@@](O)(C(=O)CO)C[C@@H]3O[C@H]1C[C@H](N)[C@H](O)[C@H](C)O1 Doxorubicin
760
+ COc1cc(C)c(Sc2cnc(NC(=O)c3ccc(CNC(C)C(C)(C)C)cc3)s2)cc1C(=O)N1CCN(C(C)=O)CC1 BMS-509744
761
+ CCC(=C(c1ccccc1)c1ccc(OCCN(C)C)cc1)c1ccccc1 Tamoxifen
762
+ CS(=O)(=O)CCNCc1ccc(-c2ccc3ncnc(Nc4ccc(OCc5cccc(F)c5)c(Cl)c4)c3c2)o1 Lapatinib
763
+ CC(/C=C/C(=O)NO)=C\[C@@H](C)C(=O)c1ccc(N(C)C)cc1 Trichostatin A
764
+ CS(=O)(=O)c1ccc(-c2cnc(N)c(C(=O)Nc3ccccc3)n2)cc1 VE821
765
+ C=C1C(=O)O[C@H]2C[C@@H]1CC[C@@]1(C)O[C@@H]1CC/C(C)=C\CC[C@@]2(C)O Sinularin
766
+ Cc1[nH]c2ccccc2c1CCNCc1ccc(/C=C/C(=O)NO)cc1 Panobinostat
767
+ Ic1cccc(CSc2nnc(-c3ccncc3)o2)c1 KIN001-042
768
+ NC(=O)c1cccc(-c2cc(Nc3ccc(OC(F)(F)F)cc3)ncn2)c1 GNF-2
769
+ C[C@@H]1COCCN1c1cc(C2([S@](C)(=N)=O)CC2)nc(-c2ccnc3[nH]ccc23)n1 AZD6738
770
+ NC(=O)c1ncn(C2OC(COP(=O)(O)O)C(O)C2O)c1N AICA Ribonucleotide
771
+ COC1(c2sc3c(N4CCOCC4)nc(-c4cnc(N)nc4)nc3c2C)COC1 GNE-317
772
+ CS(=O)(=O)c1ccc(C(=O)Nc2ccc(Cl)c(-c3ccccn3)c2)c(Cl)c1 Vismodegib
773
+ Cc1[nH]nc2ccc(-c3cncc(OCC(N)Cc4c[nH]c5ccccc45)c3)cc12 A-443654
774
+ Cc1csc(=NC2CCCCC2)n1/N=C/c1ccc(O)c(O)c1O MIM1
775
+ O=C(NOCC(O)CO)c1ccc(F)c(F)c1Nc1ccc(I)cc1F PD0325901
776
+ NC(CSC(c1ccccc1)(c1ccccc1)c1ccccc1)C(=O)O S-Trityl-L-cysteine
777
+ CCc1nc(-c2cccc(C)c2)c(-c2ccnc(NC(=O)c3ccccc3)c2)s1 TAK-715
778
+ COc1cc(C(=O)NC2CCN(C)CC2)ccc1Nc1ncc2c(n1)N(C1CCCC1)C(C)CC(=O)N2C NPK76-II-72-1
779
+ Nc1nc2[nH]cc(CCc3ccc(C(=O)N[C@H](CCC(=O)O)C(=O)O)cc3)c2c(=O)[nH]1 Pemetrexed
780
+ CCNc1cc(NC2CCC(O)CC2)nc(Nc2ccc3c(ccn3Cc3ccccc3)c2)n1 CGP-082996
781
+ C#Cc1cccc(Nc2ncnc3cc(OCCOC)c(OCCOC)cc23)c1 Erlotinib
782
+ CC(=O)Nc1cccc(-n2c(=O)n(C3CC3)c(=O)c3c(Nc4ccc(I)cc4F)n(C)c(=O)c(C)c32)c1 Trametinib
783
+ COCC(=O)NCC=Cc1ccc2ncnc(Nc3ccc(Oc4ccc(C)nc4)c(C)c3)c2c1 CP724714
784
+ COc1cc2c(cc1NS(=O)(=O)c1ccc(Br)cc1C)n(C)c(=O)n2C OF-1
785
+ CON(C)C(=O)N1N=C(c2cc(F)ccc2F)S[C@@]1(CCCN)c1ccccc1 ARRY-520
786
+ COc1ccccc1S(=O)(=O)Nc1ccc2c(c1)CN(C)C(=O)N2 PFI-1
787
+ C=CC(=O)N1CCC[C@@H](n2nc(-c3ccc(Oc4ccccc4)cc3)c3c(N)ncnc32)C1 Ibrutinib
788
+ Cn1ncc(Cl)c1-c1cc(C(=O)N[C@H](CN)Cc2cccc(F)c2)sc1Cl Afuresertib
789
+ COCC[n+]1c2c(n(Cc3cnccn3)c1C)C(=O)c1ccccc1C2=O Sepantronium bromide
790
+ Cc1[nH]c(C=C2C(=O)Nc3ccc(S(=O)(=O)Cc4c(Cl)cccc4Cl)cc32)c(C)c1C(=O)N1CCCC1CN1CCCC1 PHA-665752
791
+ CNC(=O)c1cc(Oc2ccc(NC(=O)Nc3ccc(Cl)c(C(F)(F)F)c3)cc2)ccn1 Sorafenib
792
+ CCn1c(=O)c(-c2ccn[nH]2)cc2c(C)nc(N)nc21 Voxtalisib
793
+ CC(N)c1ccc(C(=O)Nc2ccnc3[nH]ccc23)cc1.Cl Y-39983
794
+ C=CC(=O)Nc1cc(Nc2nccc(-c3cn(C)c4ccccc34)n2)c(OC)cc1N(C)CCN(C)C Osimertinib
795
+ CC(=O)O[C@@]12CO[C@@H]1C[C@H](O)[C@@]1(C)C(=O)[C@H](O)C3=C(C)[C@@H](OC(=O)[C@H](O)[C@@H](NC(=O)OC(C)(C)C)c4ccccc4)C[C@@](O)([C@@H](OC(=O)c4ccccc4)[C@@H]12)C3(C)C Docetaxel
796
+ O=c1nc(-c2ccc(C(F)(F)F)cc2)[nH]c2c1CSCC2 XAV939
797
+ O=C(NC(COc1ccc2[nH]c(=O)[nH]c2c1)c1ccccc1)c1cccn(Cc2ccc(F)c(F)c2)c1=O KIN001-244
798
+ COC1C(N(C)C(=O)c2ccccc2)CC2OC1(C)n1c3ccccc3c3c4c(c5c6ccccc6n2c5c31)C(=O)NC4 Midostaurin
799
+ COc1cc2ncnc(Nc3cc(Br)c(O)c(Br)c3)c2cc1OC WHI-P97
800
+ COc1cc(/C=C/C(=O)N2CCC=CC2=O)cc(OC)c1OC Piperlongumine
801
+ CS(=O)(=O)N1CCN(Cc2cc3nc(-c4cccc5[nH]ncc45)nc(N4CCOCC4)c3s2)CC1 Pictilisib
802
+ O=C1NC(=O)C(=Cc2ccc3nccnc3c2)S1 AS605240
803
+ Cn1cc(C=C2C(=O)Nc3cccnc32)c2ccccc21 GW441756
804
+ COc1ccc(Cn2ccc3ccc(C(=O)NO)cc32)cc1 PCI-34051
805
+ CCc1cc2c(cc1N1CCC(N3CCOCC3)CC1)C(C)(C)c1[nH]c3cc(C#N)ccc3c1C2=O Alectinib
806
+ CCCCCCCCc1ccc(CCC(N)(CO)CO)cc1.Cl FTY-720
807
+ Cc1cccc(-c2[nH]c(C(C)(C)C)nc2-c2ccc3nccnc3c2)n1 SB52334
808
+ CCC1(O)C(=O)OCc2c1cc1n(c2=O)Cc2cc3ccccc3nc2-1 Camptothecin
809
+ Cn1cc(C2=C(c3ccc(Cl)cc3Cl)C(=O)NC2=O)c2ccccc21 SB216763
810
+ O=c1cc(N2CCOCC2)oc2c(-c3cccc4c3sc3ccccc34)cccc12 NU7441
811
+ O=S(=O)(c1ccccc1)N(CC(F)(F)F)c1ccc(C(O)(C(F)(F)F)C(F)(F)F)cc1 T0901317
812
+ COc1cc2ncnc(Nc3ccc(F)c(Cl)c3)c2cc1OCCCN1CCOCC1 Gefitinib
813
+ CCn1c(=O)c2cc(C(N)=O)c(N)nc2n(C2CC2)c1=O eEF2K Inhibitor, A-484954
814
+ Cc1nnc(-c2ccc(N3CCC(Oc4cc(F)ccc4Cl)CC3)nn2)o1 CAY10566
815
+ Cc1ccc(F)c(NC(=O)Nc2ccc(-c3cccc4[nH]nc(N)c34)cc2)c1 Linifanib
816
+ CCn1c(-c2nonc2N)nc2cnc(Oc3cccc(NC(=O)c4ccc(OCCN5CCOCC5)cc4)c3)cc21 GSK269962A
817
+ CCOc1cc(N2CCC(O)CC2)ccc1Nc1ncc2c(n1)N(C)c1ccccc1C(=O)N2C XMD8-92
818
+ COc1cc2ncn(-c3cc(OCc4ccccc4C(F)(F)F)c(C(N)=O)s3)c2cc1OC GW843682X
819
+ COc1ccc(-n2c(SCCCN3C(=O)c4cccc5cccc(c45)C3=O)nnc2-c2ccncc2)cc1 WIKI4
820
+ CC1(C)CCC(c2ccc(Cl)cc2)=C(CN2CCN(c3ccc(C(=O)NS(=O)(=O)c4ccc(NC(CCN5CCOCC5)CSc5ccccc5)c(S(=O)(=O)C(F)(F)F)c4)cc3)CC2)C1 Navitoclax
821
+ CN(c1ncccc1CNc1nc(Nc2ccc3c(c2)CC(=O)N3)ncc1C(F)(F)F)S(C)(=O)=O PF-562271
822
+ CC1(C)CNc2cc(NC(=O)c3cccnc3NCc3ccncc3)ccc21 Motesanib
823
+ COc1cc(C(=O)NC2CCN(C)CC2)ccc1Nc1ncc2c(n1)N(C1CCCC1)CCC(=O)N2C(C)C XMD11-85h
824
+ COc1ccc(C(=O)C[C@@]2(O)C(=O)Nc3c(Cl)ccc(Cl)c32)cc1 YK-4-279
825
+ CS(=O)(=O)c1ccc(-c2cnc(N)c(C(=O)Nc3ccccc3)n2)cc1 A-83-01
826
+ CCN(CC)CCNC(=O)c1c(C)[nH]c(C=C2C(=O)Nc3ccc(F)cc32)c1C Sunitinib
827
+ CC(C)(C)NS(=O)(=O)c1cncc(-c2cc(F)c3nc(N)nn3c2)c1 CZC24832
828
+ C[C@H](Nc1ncnc2nc[nH]c12)c1cc2ccc(F)cc2nc1-c1ccccn1 AMG-319
829
+ COC(=O)CNC(=O)C(=O)OC DMOG
830
+ CNCc1ccc(-c2cc(-c3nc(-c4ccc(S(=O)(=O)C(C)C)cc4)cnc3N)on2)cc1 VE-822
831
+ CN(C)CC=CC(=O)Nc1ccc(C(=O)Nc2cccc(Nc3nccc(-c4cccnc4)n3)c2)cc1 ZG-10
832
+ COc1cc(N2CCC(O)CC2)ccc1Nc1cc(Nc2ccccc2S(=O)(=O)C(C)C)c2cc[nH]c2n1 MPS-1-IN-1
833
+ COc1cc(C2c3cc4c(cc3C(OC3OC5COC(C)OC5C(O)C3O)C3COC(=O)C23)OCO4)cc(OC)c1O Etoposide
834
+ Cl.Cl.O=c1cc(CN2CCOCC2)occ1OCCCCCSc1ccnc2cc(C(F)(F)F)ccc12 EHT-1864
835
+ C=CC(=O)Nc1ccc2ncnc(Nc3ccc(OCc4cccc(F)c4)c(Cl)c3)c2c1 AST-1306
836
+ Oc1c(F)cc(-c2cnccc2-c2ccc(N3CCOCC3)cc2)cc1F LJI308
837
+ Nc1ccc(C(=O)Nc2cccc(-c3nc(N4CCOCC4)c4oc5ncccc5c4n3)c2)cn1 YM201636
838
+ COc1cc(=C2C=c3ccccc3=N2)[nH]c1=Cc1[nH]c(C)cc1C.CS(=O)(=O)O Obatoclax Mesylate
839
+ CCC1=CC(=C2NNC(C)=C2c2ccc3c(c2)OCCO3)C(=O)C=C1O CCT-018159
840
+ COc1cccc2c1C(=O)c1c(O)c3c(c(O)c1C2=O)C[C@@](O)(C(=O)CO)C[C@@H]3O[C@H]1C[C@@H](N)[C@H](O)[C@H](C)O1 Epirubicin
841
+ COc1cc2c(NC3CCN(C(C)C)CC3)nc(N3CCC(F)(F)CC3)nc2cc1OCCCN1CCCC1 UNC0642
842
+ Cc1cn(-c2cc(NC(=O)c3ccc(C)c(Nc4nccc(-c5cccnc5)n4)c3)cc(C(F)(F)F)c2)cn1 Nilotinib
843
+ COc1cc2c(Nc3ccc(NC(=O)c4ccccc4)cc3)ncnc2cc1OCCCN1CCOCC1 ZM447439
844
+ Cc1cc2c(F)c(Oc3ncnn4cc(OC[C@@H](C)O)c(C)c34)ccc2[nH]1 Brivanib, BMS-540215
845
+ C=C1C(=O)O[C@H]2[C@H]1[C@@H](OC(=O)C=C(C)C)CC1=C[C@@H](C[C@@]3(C)O[C@H]23)OC1=O Elephantin
846
+ O=C1C(=Cc2cccs2)CCC1=Cc1cccs1 CCT007093
847
+ Cc1cc(N2C[C@H](C)N[C@H](C)C2)ncc1-c1ccc(-c2nc(=O)c3ccn(C)c3[nH]2)cc1 AZ6102
848
+ Nc1ccccc1NC(=O)c1ccc(CNC(=O)OCc2cccnc2)cc1 Entinostat
849
+ O=C(Nc1cc(C(F)(F)F)cc(C(F)(F)F)c1)c1cc(Cl)ccc1O IMD-0354
850
+ Cc1c(N)nc([C@H](CC(N)=O)NC[C@H](N)C(N)=O)nc1C(=O)N[C@H](C(=O)N[C@H](C)[C@@H](O)[C@H](C)C(=O)N[C@H](C(=O)NCCc1nc(-c2nc(C(=O)NCCC[S+](C)C)cs2)cs1)[C@@H](C)O)[C@@H](OC1OC(CO)C(O)C(O)C1OC1OC(CO)C(O)C(OC(N)=O)C1O)c1cnc[nH]1 Bleomycin
851
+ O=C1NC(=O)c2c1c(-c1ccccc1Cl)cc1[nH]c3ccc(O)cc3c21 Wee1 Inhibitor
852
+ O=C(Nc1cccnc1)c1cc(-c2ccnc(F)c2)ccc1OCc1ccccc1 GSK2578215A
853
+ NC(=O)c1cnc(N[C@@H]2CCCC[C@@H]2N)nc1Nc1cccc(-n2nccn2)c1 PRT062607
854
+ CCC(CO)Nc1nc(NCc2ccccc2)c2ncn(C(C)C)c2n1 Seliciclib
855
+ CCCC=CC=CC(=O)OC1C(=CC(=O)OC)CC2CC(C(C)O)OC(=O)CC(O)CC3CC(OC(C)=O)C(C)(C)C(O)(CC4CC(=CC(=O)OC)CC(C=CC(C)(C)C1(O)O2)O4)O3 Bryostatin 1
856
+ Cc1ccc2nc(NC(=O)CSc3nc4c(c(=O)n3-c3ccccc3)SCC4)sc2c1 IWP-2
857
+ Nc1ccn([C@@H]2O[C@H](CO)[C@@H](O)[C@@H]2O)c(=O)n1 Cytarabine
858
+ Cc1ccc(NC(=O)c2cccc(C(C)(C)C#N)c2)cc1Nc1ccc2ncn(C)c(=O)c2c1 AZ628
859
+ CC(=O)c1c(C)c2cnc(Nc3ccc(N4CCNCC4)cn3)nc2n(C2CCCC2)c1=O Palbociclib
860
+ Cn1cc(-c2ccc3nnc(C(F)(F)c4ccc5ncccc5c4)n3n2)cn1 JNJ38877605
861
+ CCc1cncnc1N1CCN(Cc2nc3ccc(C(F)(F)F)cc3[nH]2)CC1 PF-4708671
862
+ CC[C@]1(O)C[C@@H]2CN(CCc3c([nH]c4ccccc34)[C@@](C(=O)OC)(c3cc4c(cc3OC)N(C)[C@H]3[C@@](O)(C(=O)OC)[C@H](OC(C)=O)[C@]5(CC)C=CCN6CC[C@]43[C@@H]65)C2)C1 Vinblastine
863
+ CNC(=O)CN1CCC(Oc2cc3c(Nc4cccc(Cl)c4F)ncnc3cc2OC)CC1 Sapitinib
864
+ COc1cc(-c2nn(C3CCC(N4CCN(C(C)=O)CC4)CC3)c3ncnc(N)c23)ccc1NC(=O)c1cc2ccccc2n1C A-770041
865
+ CC(=O)c1cc([N+](=O)[O-])c(Sc2ccc(F)cc2F)s1 P22077
866
+ CCC(=O)OCN1C(=O)C=CC1=O MIRA-1
867
+ CC(C)(C)c1nc(-c2cccc(NS(=O)(=O)c3c(F)cccc3F)c2F)c(-c2ccnc(N)n2)s1 Dabrafenib
868
+ O=C1N=C(NCc2cccs2)SC1=Cc1ccc2ncccc2c1 RO-3306
869
+ O=C(CCCCCCC(=O)Nc1ccccc1)NO Vorinostat
870
+ O=C(Nc1ccc2[nH]nc(-c3ccncc3)c2c1)[C@@H]1CCN(CC(=O)N2CCN(c3ccc(-c4ncccn4)cc3)CC2)C1 SCH772984
871
+ COc1cc2c(Oc3ccc4[nH]c(C)cc4c3F)ncnc2cc1OCCCN1CCCC1 Cediranib
872
+ C=C1C(=O)OC2C1CCC(C)=CCCC1(C)OC21 Parthenolide
873
+ O=C(NC1CCNCC1)c1[nH]ncc1NC(=O)c1c(Cl)cccc1Cl AT-7519
874
+ Cc1c(N)nc([C@H](CC(N)=O)NC[C@H](N)C(N)=O)nc1C(=O)N[C@H](C(=O)N[C@H](C)[C@@H](O)[C@H](C)C(=O)N[C@H](C(=O)NCCc1nc(-c2nc(C(=O)NCCC[S+](C)C)cs2)cs1)[C@@H](C)O)[C@@H](O[C@@H]1O[C@@H](CO)[C@@H](O)[C@H](O)[C@@H]1O[C@H]1O[C@H](CO)[C@@H](O)[C@H](OC(N)=O)[C@@H]1O)c1cnc[nH]1 Bleomycin (50 uM)
875
+ O=C(NC1CC1)c1cccc(-c2ccc3c(NC(=O)C4CC4)n[nH]c3c2)c1 XMD13-2
876
+ O=C(c1ccc(C(=O)N2CCC(N3CCCC3)CC2)c(Nc2ccccc2)c1)N1CCC(N2CCCC2)CC1 UNC1215
877
+ Nc1cccc2c1CN(C1CCC(=O)NC1=O)C2=O Lenalidomide
878
+ O=C(Nc1cccc(Nc2ncc(Br)c(NCCc3c[nH]cn3)n2)c1)N1CCCC1 LDN-193189
879
+ C=CC(=O)Nc1cccc(Nc2nc(NC3CCC(N(C)C)CC3)nc3c2ncn3C(C)C)c1 WZ3105
880
+ O=NN(CCCl)C(=O)NCCCl Carmustine
881
+ COc1ccc(-c2cc3nccn3c(Nc3ncccc3C(N)=O)n2)cc1OC.Cl.Cl BAY-61-3606
882
+ Cn1c(=O)n(-c2ccc(C(C)(C)C#N)cc2)c2c3cc(-c4cnc5ccccc5c4)ccc3ncc21 Dactolisib
883
+ Oc1ccc2ccccc2c1SSc1c(O)ccc2ccccc12 IPA-3
884
+ COc1ccc(N(C(=O)Oc2c(C)cccc2C)c2ccnc(Nc3ccc(N4CCN(C)CC4)cc3)n2)c(OC)c1 WH-4-023
885
+ NCc1ccc(OCCCc2sc(-c3ccc4c(c3)/C(=N/Nc3nc5ccccc5s3)CCC4)nc2C(=O)O)cc1 WEHI-539
886
+ O=C([O-])C(=O)[O-].[NH-][C@@H]1CCCC[C@H]1[NH-].[Pt+4] Oxaliplatin
887
+ O=C(c1cc(Cc2n[nH]c(=O)c3ccccc23)ccc1F)N1CCN(C(=O)C2CC2)CC1 Olaparib
888
+ COc1cc2nccc(Oc3ccc(NC(=O)Nc4cc(C)on4)c(Cl)c3)c2cc1OC Tivozanib
889
+ CC(C)(C)c1cc(NC(=O)Nc2ccc(-c3cn4c(n3)sc3cc(OCCN5CCOCC5)ccc34)cc2)no1 Quizartinib
890
+ CS(=O)(=O)O.Cc1ccc(C(=O)N(CCCN)C(c2nc3cc(Cl)ccc3c(=O)n2Cc2ccccc2)C(C)C)cc1 Ispinesib Mesylate
891
+ CC(O)(CS(=O)(=O)c1ccc(F)cc1)C(=O)Nc1ccc(C#N)c(C(F)(F)F)c1 Bicalutamide
892
+ Cc1ccc(-n2nc(C(C)(C)C)cc2NC(=O)Nc2ccc(OCCN3CCOCC3)c3ccccc23)cc1 Doramapimod
893
+ Cc1cnc(CNC(=O)c2c(=O)c3ccc(N4CCCN(C)CC4)nc3n3c2sc2ccccc23)cn1 CX-5461
artifacts/gene_expression_standardization.pkl ADDED
Binary file (34.3 kB). View file
 
artifacts/genes.pkl ADDED
Binary file (31.8 kB). View file
 
artifacts/model.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"drug_sensitivity_min_max": true, "gene_expression_min_max": false, "gene_expression_standardize": false, "augment_smiles": false, "canonical": false, "kekulize": false, "all_bonds_explicit": false, "all_hs_explicit": false, "randomize": false, "remove_bonddir": false, "remove_chirality": false, "selfies": false, "smiles_start_stop_token": true, "number_of_genes": 2128, "smiles_padding_length": 465, "stacked_dense_hidden_sizes": [512], "activation_fn": "relu", "dropout": 0.4, "batch_norm": true, "filters": [64, 64, 64], "multiheads": [4, 4, 4, 4], "smiles_embedding_size": 16, "kernel_sizes": [[3, 16], [5, 16], [11, 16]], "smiles_attention_size": 64, "embed_scale_grad": false, "final_activation": true, "gene_to_dense": false, "batch_size": 2048, "dataset_device": "cuda", "lr": 0.001, "optimizer": "adam", "loss_fn": "mse", "epochs": 200, "save_model": 25, "smiles_vocabulary_size": 108, "drug_sensitivity_processing_parameters": {"processing": "min_max", "parameters": {"min": -11.998083341987641, "max": 12.359055999999999}}, "gene_expression_processing_parameters": {}, "number_of_parameters": 7217361}
artifacts/smiles_language.pkl ADDED
Binary file (3.76 kB). View file
 
attention.py ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Get/put submission results concerning attention from/on COS."""
2
+ import os
3
+ import json
4
+ import dill
5
+ import logging
6
+ import numpy as np
7
+ from typing import Iterable
8
+ from configuration import GENES
9
+ from cos import (
10
+ RESULTS_PREFIX,
11
+ bytes_from_key,
12
+ string_from_key,
13
+ bytes_to_key,
14
+ )
15
+ from utils import Drug
16
+ from plots import embed_barplot
17
+ from smiles import smiles_attention_to_svg
18
+
19
+ logger = logging.getLogger("openapi_server:attention")
20
+
21
+
22
+ def download_attention(workspace_id: str, task_id: str, sample_name: str) -> dict:
23
+ """
24
+ Download attention figures and related data.
25
+
26
+ Args:
27
+ workspace_id (str): workspace identifier.
28
+ task_id (str): task identifier.
29
+ sample_name (str): name of the sample.
30
+
31
+ Returns:
32
+ dict: attention figures and related data.
33
+ """
34
+
35
+ def _remote_to_bytes(basename: str) -> bytes:
36
+ object_name = os.path.join(workspace_id, task_id, sample_name, basename)
37
+ key = os.path.join(RESULTS_PREFIX, object_name)
38
+ return bytes_from_key(key)
39
+
40
+ drug_path = os.path.join(workspace_id, task_id, "drug.json")
41
+ key = os.path.join(RESULTS_PREFIX, drug_path)
42
+ drug = Drug(**json.loads(string_from_key(key)))
43
+ logger.debug(f"download attention results from COS for {drug.smiles}.")
44
+ # omic
45
+ logger.debug("gene attention.")
46
+ gene_attention = dill.loads(_remote_to_bytes("gene_attention.pkl"))
47
+ genes = np.array(GENES)
48
+ order = gene_attention.argsort()[::-1] # descending
49
+ gene_attention_js, gene_attention_html = embed_barplot(
50
+ genes[order], gene_attention[order]
51
+ )
52
+ logger.debug("gene attention plots created.")
53
+ # smiles
54
+ logger.debug("SMILES attention.")
55
+ smiles_attention = dill.loads(_remote_to_bytes("smiles_attention.pkl"))
56
+ drug_attention_svg, drug_color_bar_svg = smiles_attention_to_svg(
57
+ drug.smiles, smiles_attention
58
+ )
59
+ logger.debug("SMILES attention plots created.")
60
+ return {
61
+ "drug": drug,
62
+ "sample_name": sample_name,
63
+ "sample_drug_attention_svg": drug_attention_svg,
64
+ "sample_drug_color_bar_svg": drug_color_bar_svg,
65
+ "sample_gene_attention_js": gene_attention_js,
66
+ "sample_gene_attention_html": gene_attention_html,
67
+ }
68
+
69
+
70
+ def _upload_ndarray(sample_prefix: str, array: np.ndarray, filename: str) -> None:
71
+ bytes_to_key(dill.dumps(array), os.path.join(sample_prefix, f"{filename}.pkl"))
72
+
73
+
74
+ def upload_attention(
75
+ prefix: str,
76
+ sample_names: Iterable[str],
77
+ omic_attention: np.ndarray,
78
+ smiles_attention: np.ndarray,
79
+ ) -> None:
80
+ """
81
+ Upload attention profiles.
82
+
83
+ Args:
84
+ prefix (str): base prefix used as a root.
85
+ sample_names (Iterable[str]): name of the samples.
86
+ omic_attention (np.ndarray): attention values for genes.
87
+ smiles_attention (np.ndarray): attention values for SMILES.
88
+
89
+ Raises:
90
+ ValueError: mismatch in sample names and gene attention.
91
+ ValueError: mismatch in sample names and SMILES attention.
92
+ ValueError: mismatch in number of genes and gene attention.
93
+ """
94
+ omic_entities = np.array(GENES)
95
+ # sanity checks
96
+ if len(sample_names) != omic_attention.shape[0]:
97
+ raise ValueError(
98
+ f"length of sample_names {len(sample_names)} does not "
99
+ f"match omic_attention {omic_attention.shape[0]}"
100
+ )
101
+ if len(sample_names) != len(smiles_attention):
102
+ raise ValueError(
103
+ f"length of sample_names {len(sample_names)} does not "
104
+ f"match smiles_attention {len(smiles_attention)}"
105
+ )
106
+ if len(omic_entities) != omic_attention.shape[1]:
107
+ raise ValueError(
108
+ f"length of omic_entities {len(omic_entities)} "
109
+ f"does not match omic_attention.shape[1] {omic_attention.shape[1]}"
110
+ )
111
+ # special case first
112
+ sample_name = "average"
113
+ # omic
114
+ res = {}
115
+ omic_alphas = omic_attention.mean(axis=0)
116
+ res["gene_attention"] = omic_alphas
117
+
118
+ # smiles
119
+ smiles_alphas = smiles_attention.mean(axis=0)
120
+ res["smiles_attention"] = smiles_alphas
121
+
122
+ # logging.debug('uploaded "average" attention figures.')
123
+ # for index, sample_name in enumerate(sample_names):
124
+ # res[f"gene_attention_{index}"] = omic_attention[index]
125
+ # res[f"smiles_attention_{index}"] = smiles_attention[index]
126
+ return res
configuration.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Configuration utils."""
2
+ import os
3
+ import json
4
+ import dill
5
+ import pandas as pd
6
+ from pytoda.transforms import Compose
7
+ from pytoda.smiles.transforms import SMILESToTokenIndexes, LeftPadding
8
+ from cos import ensure_filepath_from_uri, COS_BUCKET_URI
9
+
10
+ # model files
11
+ MODEL_WEIGHTS_URI = ensure_filepath_from_uri(os.path.join(COS_BUCKET_URI, "model.pt"))
12
+ MODEL_PARAMS_URI = ensure_filepath_from_uri(os.path.join(COS_BUCKET_URI, "model.json"))
13
+ # SMILES language file
14
+ SMILES_LANGUAGE_URI = ensure_filepath_from_uri(
15
+ os.path.join(COS_BUCKET_URI, "smiles_language.pkl")
16
+ )
17
+ # gene expression file
18
+ GENE_EXPRESSION_URI = ensure_filepath_from_uri(
19
+ os.path.join(COS_BUCKET_URI, "gene_expression.csv.zip")
20
+ )
21
+ # genes file
22
+ GENES_URI = ensure_filepath_from_uri(os.path.join(COS_BUCKET_URI, "genes.pkl"))
23
+ # genes standardization parameters
24
+ GENE_EXPRESSION_STANDARDIZATION_URI = ensure_filepath_from_uri(
25
+ os.path.join(COS_BUCKET_URI, "gene_expression_standardization.pkl")
26
+ )
27
+ # load the model
28
+ with open(MODEL_PARAMS_URI) as fp:
29
+ MODEL_PARAMS = json.load(fp)
30
+ MAX_LENGTH = MODEL_PARAMS["smiles_padding_length"]
31
+ # load SMILES language
32
+ with open(SMILES_LANGUAGE_URI, "rb") as fp:
33
+ SMILES_LANGUAGE = dill.load(fp)
34
+ # load gene expression
35
+ GENE_EXPRESSION = pd.read_csv(GENE_EXPRESSION_URI, compression="zip", low_memory=False)
36
+ # load genes
37
+ with open(GENES_URI, "rb") as fp:
38
+ GENES = dill.load(fp)
39
+ # load gene standardization parameters
40
+ with open(GENE_EXPRESSION_STANDARDIZATION_URI, "rb") as fp:
41
+ GENE_STANDARDIZATION_PARAMETERS = dill.load(fp)
42
+ # smiles transformations
43
+ SMILES_TRANSFORMS = [
44
+ SMILESToTokenIndexes(smiles_language=SMILES_LANGUAGE),
45
+ LeftPadding(padding_length=MAX_LENGTH, padding_index=SMILES_LANGUAGE.padding_index),
46
+ ]
47
+ SMILES_TOKENIZE_FN = Compose(SMILES_TRANSFORMS)
48
+ # prepare default gene expression data
49
+ # NOTE: transpose and reset work around to ensure we have all needed genes
50
+ GENE_EXPRESSION_DATA = GENE_EXPRESSION.T.reindex(GENES).fillna(0.0).T.values
51
+ # NOTE: sub-selecting exisiting columns to remove all the genes
52
+ to_drop = list(set(GENES) & set(GENE_EXPRESSION.columns))
53
+ GENE_EXPRESSION_METADATA = GENE_EXPRESSION.drop(to_drop, axis=1)
54
+ del GENE_EXPRESSION
55
+ # housekeeping
56
+ RESULTS_EXPIRATION_SECONDS = float(
57
+ os.environ.get(
58
+ "PACCMANN_RESULTS_EXPIRATION_SECONDS",
59
+ # every week
60
+ 60 * 60 * 24 * 7,
61
+ )
62
+ )
63
+ # SMILES parameters
64
+ # TODO: think whether we should enforce canonicalization
65
+ CANON = {
66
+ "canonical": MODEL_PARAMS["canonical"],
67
+ "kekulize": MODEL_PARAMS["kekulize"],
68
+ "all_bonds_explicit": MODEL_PARAMS["all_bonds_explicit"],
69
+ "all_hs_explicit": MODEL_PARAMS["all_hs_explicit"],
70
+ "randomize": MODEL_PARAMS["randomize"],
71
+ "remove_bonddir": MODEL_PARAMS["remove_bonddir"],
72
+ "smiles_maximum_length": MODEL_PARAMS["smiles_padding_length"],
73
+ }
cos.py ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """COS utitities."""
2
+ import logging
3
+ import os
4
+ import tempfile
5
+ from io import BufferedReader
6
+ from typing import List, Optional, Tuple
7
+ from urllib.parse import urlparse
8
+
9
+ import boto3
10
+ from boto3_type_annotations.s3 import Bucket
11
+ from botocore.client import Config
12
+
13
+ logger = logging.getLogger(__name__)
14
+
15
+
16
+ def connect_bucket(s3_uri: str) -> Tuple[Bucket, List[str]]:
17
+ parsed_uri = urlparse(s3_uri)
18
+ # parse bucket and path, where path can be empty list
19
+ _, bucket_name, *split_key = parsed_uri.path.split("/")
20
+ # parsing credentials and host
21
+ credentials, host = parsed_uri.netloc.split("@")
22
+ # getting keys
23
+ access, secret = credentials.split(":")
24
+ # establish connection
25
+ connection = boto3.resource(
26
+ "s3",
27
+ endpoint_url="http://{}".format(host),
28
+ aws_access_key_id=access,
29
+ aws_secret_access_key=secret,
30
+ config=Config(signature_version="s3v4"),
31
+ region_name="us-east-1",
32
+ )
33
+ return connection.Bucket(bucket_name), split_key
34
+
35
+
36
+ def ensure_filepath_from_uri(file_uri: str) -> str:
37
+ """
38
+ Get a file on the local storage.
39
+ In case the file_uri provided is a S3 URI, dowloads the
40
+ file and return the local path.
41
+ Args:
42
+ file_uri (str): a uri, either filesystem or S3.
43
+ Returns:
44
+ str: the path to the file on the local filesystem.
45
+ """
46
+ if file_uri.startswith("s3://"):
47
+ try:
48
+ bucket, split_key = connect_bucket(file_uri)
49
+ path = os.path.join(*split_key)
50
+ # create a file handle for storing the file locally
51
+ a_file = tempfile.NamedTemporaryFile(delete=False)
52
+ # make sure we close the file
53
+ a_file.close()
54
+ # download the file
55
+ bucket.download_file(path, a_file.name)
56
+ return a_file.name
57
+ except Exception:
58
+ message = "Getting file from COS failed " "for the provided URI: {}".format(
59
+ file_uri
60
+ )
61
+ logger.exception(message)
62
+ raise RuntimeError(message)
63
+ else:
64
+ logger.debug(f"Searching for {file_uri}")
65
+ if os.path.exists(file_uri):
66
+ return file_uri
67
+ else:
68
+ message = "File not found on local filesystem."
69
+ logger.error(message)
70
+ raise RuntimeError(message)
71
+
72
+
73
+ # COS configuration
74
+ COS_BUCKET_URI = os.environ.get(
75
+ "COS_BUCKET_URI", os.path.join(os.getcwd(), "artifacts")
76
+ )
77
+ COS_UPLOAD_POLICY = os.environ.get("COS_UPLOAD_POLICY", "public-read-write")
78
+ # results prefix
79
+ RESULTS_PREFIX = "results"
80
+
81
+
82
+ def download_from_key(key: str, file_path: Optional[str] = None) -> None:
83
+ """Download a single file from COS.
84
+ If no file_path is given, object name is taken as relative local path.
85
+ Args:
86
+ key (str): S3 key.
87
+ file_path (str, optional): Path of downloaded file. Defaults to None.
88
+ """
89
+ file_path = key if file_path is None else file_path
90
+ os.makedirs(os.path.dirname(file_path), exist_ok=True)
91
+ BUCKET.download_file(key, file_path)
92
+
93
+
94
+ def upload_to_key(file_path: str, key: str) -> None:
95
+ """Upload local file to COS.
96
+ Args:
97
+ file_path (str): Local filepath.
98
+ key (str): S3 key.
99
+ """
100
+ BUCKET.upload_file(file_path, key)
101
+
102
+
103
+ def fileobject_to_key(readable_binary: BufferedReader, key: str) -> None:
104
+ """Upload readable, binary file from handle to COS.
105
+ Args:
106
+ readable_binary (BufferedReader): filehandle, e.g. opened in 'rb' mode.
107
+ key (str): S3 key.
108
+ """
109
+ BUCKET.upload_fileobj(readable_binary, key)
110
+
111
+
112
+ def delete_from_key(key_or_prefix: str) -> None:
113
+ """Delete all files matching given prefix from COS.
114
+ Args:
115
+ key_or_prefix (str): S3 uri including object name prefix.
116
+ """
117
+ BUCKET.objects.filter(Prefix=key_or_prefix).delete()
118
+
119
+
120
+ def string_to_key(string: str, key: str) -> None:
121
+ """Upload string as object to COS.
122
+ Args:
123
+ string (str): object to be stored.
124
+ key (str): S3 key.
125
+ """
126
+ BUCKET.put_object(Key=key, Body=string.encode())
127
+
128
+
129
+ def bytes_to_key(some_bytes: bytes, key: str) -> None:
130
+ """Upload bytes as object to COS.
131
+ Args:
132
+ some_bytes (bytes): object to be stored.
133
+ key (str): S3 key.
134
+ """
135
+ BUCKET.put_object(Key=key, Body=some_bytes)
136
+
137
+
138
+ def string_from_key(key: str) -> str:
139
+ """Get object from COS as string.
140
+ Args:
141
+ key (str): S3 key.
142
+ Returns:
143
+ str: object.
144
+ """
145
+ return BUCKET.Object(key).get()["Body"].read().decode("utf-8")
146
+
147
+
148
+ def bytes_from_key(key: str) -> bytes:
149
+ """Get object from COS as bytes.
150
+ Args:
151
+ key (str): S3 key.
152
+ Returns:
153
+ bytes: object.
154
+ """
155
+ return BUCKET.Object(key).get()["Body"].read()
forward.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Inference utilities."""
2
+ import logging
3
+ import torch
4
+ import numpy as np
5
+ from paccmann_predictor.models.paccmann import MCA
6
+ from pytoda.transforms import Compose
7
+ from pytoda.smiles.transforms import ToTensor
8
+ from configuration import (
9
+ MODEL_WEIGHTS_URI,
10
+ MODEL_PARAMS,
11
+ SMILES_LANGUAGE,
12
+ SMILES_TRANSFORMS,
13
+ )
14
+
15
+ logger = logging.getLogger("openapi_server:inference")
16
+ # NOTE: to avoid segfaults
17
+ torch.set_num_threads(1)
18
+
19
+
20
+ def predict(
21
+ smiles: str, gene_expression: np.ndarray, estimate_confidence: bool = False
22
+ ) -> dict:
23
+ """
24
+ Run PaccMann prediction.
25
+
26
+ Args:
27
+ smiles (str): SMILES representing a compound.
28
+ gene_expression (np.ndarray): gene expression data.
29
+ estimate_confidence (bool, optional): estimate confidence of the
30
+ prediction. Defaults to False.
31
+ Returns:
32
+ dict: the prediction dictionaty from the model.
33
+ """
34
+ logger.debug("running predict.")
35
+ logger.debug("gene expression shape: {}.".format(gene_expression.shape))
36
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
37
+ logger.debug("device selected: {}.".format(device))
38
+ logger.debug("loading model for prediction.")
39
+ model = MCA(MODEL_PARAMS)
40
+ model.load_state_dict(torch.load(MODEL_WEIGHTS_URI, map_location=device))
41
+ model.eval()
42
+ if estimate_confidence:
43
+ logger.debug("associating SMILES language for confidence estimates.")
44
+ model._associate_language(SMILES_LANGUAGE)
45
+ logger.debug("model loaded.")
46
+ logger.debug("set up the transformation.")
47
+ smiles_transform_fn = Compose(SMILES_TRANSFORMS + [ToTensor(device=device)])
48
+ logger.debug("starting the prediction.")
49
+ with torch.no_grad():
50
+ _, prediction_dict = model(
51
+ smiles_transform_fn(smiles).view(1, -1).repeat(gene_expression.shape[0], 1),
52
+ torch.tensor(gene_expression).float(),
53
+ confidence=estimate_confidence,
54
+ )
55
+ logger.debug("successful prediction.")
56
+ return prediction_dict
plots.py ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Plotting utilities."""
2
+ import numpy as np
3
+ from typing import Tuple
4
+ from bokeh.layouts import column
5
+ from bokeh.models import CustomJS, Slider
6
+ from bokeh.plotting import figure, Figure, ColumnDataSource
7
+ from bokeh.embed import components
8
+
9
+
10
+ def barplot(attended: np.ndarray, weights: np.ndarray) -> Figure:
11
+ """
12
+ Bokeh barplot showing top k attention weights.
13
+
14
+ k is interactively changable via a slider.
15
+
16
+ Args:
17
+ attended (np.ndarray): Names of the attended entities
18
+ weights (np.ndarray): Attention weights
19
+
20
+ Returns:
21
+ bokeh.plotting.Figure: Can be visualized for debugging,
22
+ via bokeh.plotting (i.e. output_file, show)
23
+ """
24
+ K = 4
25
+ # reset from slider callback
26
+ source = ColumnDataSource(
27
+ data=dict(attended=attended, weights=weights),
28
+ )
29
+ top_k_slider = Slider(start=1, end=len(attended), value=K, step=1, title="k")
30
+ p = figure(
31
+ x_range=source.data["attended"][:K], # adapted by callback
32
+ plot_height=350,
33
+ title="Top k Gene Attention Weights",
34
+ toolbar_location="below",
35
+ tools="pan,wheel_zoom,box_zoom,save,reset",
36
+ )
37
+ p.vbar(x="attended", top="weights", source=source, width=0.9)
38
+ # define the callback
39
+ callback = CustomJS(
40
+ args=dict(
41
+ source=source,
42
+ xrange=p.x_range,
43
+ yrange=p.y_range,
44
+ attended=attended,
45
+ weights=weights,
46
+ top_k=top_k_slider,
47
+ ),
48
+ code="""
49
+ var data = source.data;
50
+ const k = top_k.value;
51
+
52
+ data['attended'] = attended.slice(0, k)
53
+ data['weights'] = weights.slice(0, k)
54
+
55
+ source.change.emit();
56
+
57
+ // not need if data is in descending order
58
+ var yrange_arr = data['weights'];
59
+ var yrange_max = Math.max(...yrange_arr) * 1.05;
60
+ yrange.end = yrange_max;
61
+
62
+ xrange.factors = data['attended'];
63
+
64
+ source.change.emit();
65
+ """,
66
+ )
67
+ top_k_slider.js_on_change("value", callback)
68
+ layout = column(top_k_slider, p)
69
+ p.xgrid.grid_line_color = None
70
+ p.y_range.start = 0
71
+ return layout
72
+
73
+
74
+ def embed_barplot(attended: np.ndarray, weights: np.ndarray) -> Tuple[str, str]:
75
+ """Bokeh barplot showing top k attention weights.
76
+ k is interactively changable via a slider.
77
+
78
+
79
+ Args:
80
+ attended (np.ndarray): Names of the attended entities
81
+ weights (np.ndarray): Attention weights
82
+
83
+ Returns:
84
+ Tuple[str, str]: javascript and html
85
+ """
86
+ return components(barplot(attended, weights))
requirements.txt CHANGED
@@ -1,30 +1,20 @@
1
- -f https://download.pytorch.org/whl/cpu/torch_stable.html
2
- -f https://data.pyg.org/whl/torch-1.12.1+cpu.html
3
- # pip==20.2.4
4
- torch==1.12.1
5
- torch-scatter
6
- torch-spline-conv
7
- torch-sparse
8
- torch-geometric
9
- torchvision==0.13.1
10
- torchaudio==0.12.1
11
- gt4sd>=1.1.6
12
- diffusers==0.6.0
13
- molgx>=0.22.0a1
14
- molecule_generation
15
- nglview
16
- PyTDC==0.3.7
17
- gradio==3.12.0
18
- markdown-it-py>=2.1.0
19
- mols2grid>=0.2.0
20
- numpy==1.23.5
21
- pandas>=1.0.0
22
- terminator @ git+https://github.com/IBM/regression-transformer@gt4sd
23
- guacamol_baselines @ git+https://github.com/GT4SD/guacamol_baselines.git@v0.0.2
24
- moses @ git+https://github.com/GT4SD/moses.git@v0.1.0
25
- paccmann_chemistry @ git+https://github.com/PaccMann/paccmann_chemistry@0.0.4
26
- paccmann_generator @ git+https://github.com/PaccMann/paccmann_generator@0.0.2
27
- paccmann_gp @ git+https://github.com/PaccMann/paccmann_gp@0.1.1
28
- paccmann_omics @ git+https://github.com/PaccMann/paccmann_omics@0.0.1.1
29
- paccmann_predictor @ git+https://github.com/PaccMann/paccmann_predictor@sarscov2
30
- reinvent_models @ git+https://github.com/GT4SD/reinvent_models@v0.0.1
 
1
+ rdkit-pypi
2
+ pytoda @git+https://git@github.com/PaccMann/paccmann_datasets@0.0.3
3
+ paccmann_predictor @ git+https://github.com/PaccMann/paccmann_predictor@0.0.1.1
4
+ tqdm
5
+ connexion==2.6.0
6
+ swagger-ui-bundle==0.0.2
7
+ python_dateutil==2.6.0
8
+ setuptools>=21.0.0
9
+ numpy>=1.14.3
10
+ scikit-learn==0.21.3
11
+ pandas==0.24.1
12
+ torch>=1.3.0
13
+ matplotlib>=2.2.2
14
+ seaborn>=0.9.0
15
+ boto3==1.11.16
16
+ boto3_type_annotations==0.3.1
17
+ gunicorn==20.0.4
18
+ regex==2020.1.8
19
+ bokeh==1.4.0
20
+ importlib_resources
 
 
 
 
 
 
 
 
 
 
smiles.py ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """SMILES utilities."""
2
+ import os
3
+ import regex
4
+ import logging
5
+ import matplotlib
6
+ import matplotlib as mpl
7
+ import matplotlib.cm as cm
8
+ import matplotlib.pyplot as plt
9
+ from io import StringIO
10
+ from operator import itemgetter
11
+ from typing import Callable, Iterable, Tuple
12
+ from matplotlib.ticker import FormatStrFormatter, ScalarFormatter
13
+ from rdkit import Chem
14
+ from rdkit.Chem.Draw import rdMolDraw2D
15
+ from configuration import SMILES_LANGUAGE, SMILES_TOKENIZE_FN
16
+
17
+ logger = logging.getLogger(__name__)
18
+ # NOTE: avoid segfaults in matplotlib
19
+ matplotlib.use("Agg")
20
+
21
+ MOLECULE_TOKENS = set(SMILES_LANGUAGE.token_to_index.keys())
22
+ NON_ATOM_REGEX = regex.compile(r"^(\d|\%\d+|\p{P}+|\p{Math}+)$")
23
+ NON_ATOM_TOKENS = set(
24
+ [token for token in MOLECULE_TOKENS if NON_ATOM_REGEX.match(token)]
25
+ )
26
+ CMAP = cm.Oranges
27
+ COLOR_NORMALIZERS = {"linear": mpl.colors.Normalize, "logarithmic": mpl.colors.LogNorm}
28
+ ATOM_RADII = float(os.environ.get("PACCMANN_ATOM_RADII", 0.5))
29
+ SVG_WIDTH = int(os.environ.get("PACCMANN_SVG_WIDTH", 400))
30
+ SVG_HEIGHT = int(os.environ.get("PACCMANN_SVG_HEIGHT", 200))
31
+ COLOR_NORMALIZATION = os.environ.get("PACCMANN_COLOR_NORMALIZATION", "logarithmic")
32
+
33
+
34
+ def validate_smiles(smiles: str) -> bool:
35
+ """
36
+ Validate a SMILES.
37
+
38
+ Args:
39
+ smiles (str): a SMILES string.
40
+
41
+ Returns:
42
+ bool: flag indicating whether the SMILES is a valid molecule.
43
+ """
44
+ molecule = Chem.MolFromSmiles(smiles)
45
+ return not (molecule is None)
46
+
47
+
48
+ def canonicalize_smiles(smiles: str) -> str:
49
+ """
50
+ Canonicalize a SMILES.
51
+
52
+ Args:
53
+ smiles (str): a SMILES string.
54
+
55
+ Returns:
56
+ str: the canonicalized SMILES.
57
+ """
58
+ molecule = Chem.MolFromSmiles(smiles)
59
+ return Chem.MolToSmiles(molecule)
60
+
61
+
62
+ def remove_housekeeping_from_tokens_and_smiles_attention(
63
+ tokens: Iterable[str], smiles_attention: Iterable[float]
64
+ ) -> Tuple[Iterable[str], Iterable[float]]:
65
+ """
66
+ Remove housekeeping tokens and corresponding attention weights.
67
+
68
+ Args:
69
+ tokens (Iterable[str]): tokens obtained from the SMILES.
70
+ smiles_attention (Iterable[float]): SMILES attention.
71
+
72
+ Returns:
73
+ Tuple[Iterable[str], Iterable[float]]: a tuple containing the filtered
74
+ tokens and attention values.
75
+ """
76
+ to_keep = [index for index, token in enumerate(tokens) if token in MOLECULE_TOKENS]
77
+ return (
78
+ list(itemgetter(*to_keep)(tokens)),
79
+ list(itemgetter(*to_keep)(smiles_attention)),
80
+ )
81
+
82
+
83
+ def _get_index_and_colors(
84
+ values: Iterable[float],
85
+ tokens: Iterable[str],
86
+ predicate: Callable[[tuple], bool],
87
+ color_mapper: cm.ScalarMappable,
88
+ ) -> Tuple[Iterable[int], Iterable[tuple]]:
89
+ """
90
+ Get index and RGB colors from a color map using a rule.
91
+
92
+ Args:
93
+ values (Iterable[float]): values associated to tokens.
94
+ tokens (Iterable[str]): tokens.
95
+ predicate (Callable[[tuple], bool]): a predicate that acts on a tuple
96
+ of (value, object).
97
+ color_mapper (cm.ScalarMappable): a color mapper.
98
+
99
+ Returns:
100
+ Tuple[Iterable[int], Iterable[tuple]]: tuple with indexes and RGB
101
+ colors associated to the given index.
102
+ """
103
+ indices = []
104
+ colors = {}
105
+ for index, value in enumerate(
106
+ map(lambda t: t[0], filter(lambda t: predicate(t), zip(values, tokens)))
107
+ ):
108
+ indices.append(index)
109
+ colors[index] = color_mapper.to_rgba(value)
110
+ return indices, colors
111
+
112
+
113
+ def smiles_attention_to_svg(
114
+ smiles: str, smiles_attention: Iterable[float]
115
+ ) -> Tuple[str, str]:
116
+ """
117
+ Generate an svg of the molecule highlighiting SMILES attention.
118
+
119
+ Args:
120
+ smiles (str): SMILES representing a molecule.
121
+ smiles_attention (Iterable[float]): SMILES attention.
122
+
123
+ Returns:
124
+ Tuple[str, str]: drawing, colorbar
125
+ the svg of the molecule highlighiting SMILES attention
126
+ and the svg displaying the colorbar
127
+ """
128
+ # remove padding
129
+ logger.debug("SMILES attention:\n{}.".format(smiles_attention))
130
+ logger.debug(
131
+ "SMILES attention range: [{},{}].".format(
132
+ min(smiles_attention), max(smiles_attention)
133
+ )
134
+ )
135
+ # get the molecule
136
+ molecule = Chem.MolFromSmiles(smiles)
137
+ tokens = [
138
+ SMILES_LANGUAGE.index_to_token[token_index]
139
+ for token_index in SMILES_TOKENIZE_FN(smiles)
140
+ ]
141
+ logger.debug("SMILES tokens:{}.".format(tokens))
142
+ tokens, smiles_attention = remove_housekeeping_from_tokens_and_smiles_attention(
143
+ tokens, smiles_attention
144
+ ) # yapf:disable
145
+ logger.debug(
146
+ "tokens and SMILES attention after removal:\n{}\n{}.".format(
147
+ tokens, smiles_attention
148
+ )
149
+ )
150
+ logger.debug(
151
+ "SMILES attention range after padding removal: [{},{}].".format(
152
+ min(smiles_attention), max(smiles_attention)
153
+ )
154
+ )
155
+ # define a color map
156
+ normalize = COLOR_NORMALIZERS.get(COLOR_NORMALIZATION, mpl.colors.LogNorm)(
157
+ vmin=min(smiles_attention), vmax=min(1.0, 2 * max(smiles_attention))
158
+ )
159
+ color_mapper = cm.ScalarMappable(norm=normalize, cmap=CMAP)
160
+ # get atom colors
161
+ highlight_atoms, highlight_atom_colors = _get_index_and_colors(
162
+ smiles_attention, tokens, lambda t: t[1] not in NON_ATOM_TOKENS, color_mapper
163
+ )
164
+ logger.debug("atom colors:\n{}.".format(highlight_atom_colors))
165
+ # get bond colors
166
+ highlight_bonds, highlight_bond_colors = _get_index_and_colors(
167
+ smiles_attention, tokens, lambda t: t[1] in NON_ATOM_TOKENS, color_mapper
168
+ )
169
+ logger.debug("bond colors:\n{}.".format(highlight_bond_colors))
170
+ # add coordinates
171
+ logger.debug("compute 2D coordinates")
172
+ Chem.rdDepictor.Compute2DCoords(molecule)
173
+ # draw the molecule
174
+ logger.debug("get a drawer")
175
+ drawer = rdMolDraw2D.MolDraw2DSVG(SVG_WIDTH, SVG_HEIGHT)
176
+ logger.debug("draw the molecule")
177
+ drawer.DrawMolecule(
178
+ molecule,
179
+ highlightAtoms=highlight_atoms,
180
+ highlightAtomColors=highlight_atom_colors,
181
+ highlightBonds=highlight_bonds,
182
+ highlightBondColors=highlight_bond_colors,
183
+ highlightAtomRadii={index: ATOM_RADII for index in highlight_atoms},
184
+ )
185
+ logger.debug("finish drawing")
186
+ drawer.FinishDrawing()
187
+ # the drawn molecule as str
188
+ logger.debug("drawing to string")
189
+ drawing = drawer.GetDrawingText().replace("\n", " ")
190
+ # the respective colorbar
191
+ logger.debug("draw the colorbar")
192
+ fig, ax = plt.subplots(figsize=(0.5, 6))
193
+ mpl.colorbar.ColorbarBase(
194
+ ax,
195
+ cmap=CMAP,
196
+ norm=normalize,
197
+ orientation="vertical",
198
+ extend="both",
199
+ extendrect=True,
200
+ )
201
+ # instead of LogFormatterSciNotation
202
+ logger.debug("format the colorbar")
203
+ ax.yaxis.set_minor_formatter(ScalarFormatter())
204
+ ax.yaxis.set_major_formatter(FormatStrFormatter("%.2f")) # fixes 0.1, 0.20
205
+ # the colorbar svg as str
206
+ logger.debug("colorbar to string")
207
+ file_like = StringIO()
208
+ plt.savefig(file_like, format="svg", bbox_inches="tight")
209
+ colorbar = file_like.getvalue().replace("\n", " ")
210
+ plt.close(fig)
211
+ return drawing, colorbar
submission.py ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Submission-related utilities."""
2
+ import os
3
+ import json
4
+ import logging
5
+ import numpy as np
6
+ import pandas as pd
7
+ from io import StringIO
8
+ from typing import Optional
9
+ from sklearn.preprocessing import StandardScaler
10
+ from configuration import (
11
+ GENE_EXPRESSION_DATA,
12
+ GENE_EXPRESSION_METADATA,
13
+ GENES,
14
+ GENE_STANDARDIZATION_PARAMETERS,
15
+ )
16
+ from cos import RESULTS_PREFIX, string_to_key
17
+ from forward import predict
18
+
19
+ # from attention import upload_attention
20
+
21
+ logger = logging.getLogger("openapi_server:submission")
22
+
23
+
24
+ def submission(
25
+ drug: dict,
26
+ workspace_id: str,
27
+ task_id: str,
28
+ estimate_confidence: bool = False,
29
+ omics_file: Optional[str] = None,
30
+ ) -> None:
31
+ """
32
+ Submit PaccMann prediction
33
+
34
+ Args:
35
+ drug (dict): drug to analyse in dictionary format.
36
+ workspace_id (str): workspace identifier for the submission.
37
+ task_id (str): task identifier.
38
+ estimate_confidence (bool, optional): estimate confidence of the
39
+ prediction. Defaults to False.
40
+ omics_file (Optional[str], optional): binary string containing
41
+ expression data. Defaults to None.
42
+ """
43
+ prefix = os.path.join(RESULTS_PREFIX, workspace_id, task_id)
44
+ logger.debug("processing omic data.")
45
+ # NOTE: this trick is used in case a single example is passed
46
+ single_example = False
47
+ result = {}
48
+ if omics_file is None:
49
+ gene_expression, gene_expression_metadata = (
50
+ GENE_EXPRESSION_DATA,
51
+ GENE_EXPRESSION_METADATA,
52
+ )
53
+ else:
54
+ logger.debug("parsing uploaded omic data.")
55
+ logger.debug(omics_file)
56
+ gene_expression_df = pd.read_csv(omics_file, low_memory=False)
57
+ logger.debug(gene_expression_df.columns)
58
+ to_drop = list(set(GENES) & set(gene_expression_df.columns))
59
+ gene_expression_data, gene_expression_metadata = (
60
+ gene_expression_df.T.reindex(GENES).fillna(0.0).T,
61
+ gene_expression_df.drop(to_drop, axis=1),
62
+ )
63
+ logger.debug("peek parsed expression and metadata.")
64
+ logger.debug("gene_expression_data:\n{}".format(gene_expression_data.head()))
65
+ logger.debug(
66
+ "gene_expression_metadata:\n{}".format(gene_expression_metadata.head())
67
+ )
68
+ if gene_expression_data.shape[0] < 2:
69
+ logger.debug(
70
+ "single example, standardizing with default parameters:\n{}".format(
71
+ GENE_STANDARDIZATION_PARAMETERS
72
+ )
73
+ )
74
+ single_example = True
75
+ gene_expression = (
76
+ gene_expression_data.values - GENE_STANDARDIZATION_PARAMETERS[0]
77
+ ) / GENE_STANDARDIZATION_PARAMETERS[1]
78
+ gene_expression = np.vstack(2 * [gene_expression])
79
+ logger.debug(gene_expression.shape)
80
+ else:
81
+ gene_expression = StandardScaler().fit_transform(
82
+ gene_expression_data.values
83
+ )
84
+ logger.debug("gene_expression:\n{}".format(gene_expression[:10]))
85
+ logger.debug("omic data prepared if present.")
86
+ prediction_dict = predict(
87
+ smiles=drug["smiles"],
88
+ gene_expression=gene_expression,
89
+ estimate_confidence=estimate_confidence,
90
+ )
91
+ # from tensors
92
+ for key, value in prediction_dict.items():
93
+ prediction_dict[key] = value.numpy()[:1] if single_example else value.numpy()
94
+
95
+ result.update(prediction_dict)
96
+ # merge for single table, index is unique identifier for samples.
97
+ gene_expression_metadata["IC50 (min/max scaled)"] = prediction_dict["IC50"]
98
+ gene_expression_metadata["IC50 (log(μmol))"] = prediction_dict[
99
+ "log_micromolar_IC50"
100
+ ]
101
+ if estimate_confidence:
102
+ gene_expression_metadata["epistemic_confidence"] = prediction_dict[
103
+ "epistemic_confidence"
104
+ ]
105
+ gene_expression_metadata["aleatoric_confidence"] = prediction_dict[
106
+ "aleatoric_confidence"
107
+ ]
108
+ logger.debug("uploaded predicted sensitivity table including metadata.")
109
+ # attention
110
+ # result.update(
111
+ # upload_attention(
112
+ # prefix,
113
+ # sample_names=list(map(str, gene_expression_metadata.index)),
114
+ # omic_attention=prediction_dict["gene_attention"],
115
+ # smiles_attention=prediction_dict["smiles_attention"],
116
+ # )
117
+ # )
118
+ logger.debug("uploaded attention for each sample.")
119
+ logger.debug("uploading drug information and sensitivity.")
120
+ # prediction (is sensitivity_json in API)
121
+ logger.debug("uploaded drug information and sensitivity.")
122
+
123
+ # NOTE: Ordering corresponds to IDs in GEP metadata!
124
+ return result
utils.py CHANGED
@@ -1,76 +1,325 @@
1
- import logging
2
- from collections import defaultdict
3
- from typing import List, Callable
4
- from gt4sd.properties import PropertyPredictorRegistry
5
- from gt4sd.algorithms.prediction.paccmann.core import PaccMann, AffinityPredictor
6
- import torch
7
-
8
- import mols2grid
9
- import pandas as pd
10
-
11
- logger = logging.getLogger(__name__)
12
- logger.addHandler(logging.NullHandler())
13
-
14
-
15
- def get_affinity_function(target: str) -> Callable:
16
- return lambda mols: torch.stack(
17
- list(
18
- PaccMann(
19
- AffinityPredictor(protein_targets=[target] * len(mols), ligands=mols)
20
- ).sample(len(mols))
21
- )
22
- ).tolist()
23
-
24
-
25
- EVAL_DICT = {
26
- "qed": PropertyPredictorRegistry.get_property_predictor("qed"),
27
- "sa": PropertyPredictorRegistry.get_property_predictor("sas"),
28
- }
29
-
30
-
31
- def draw_grid_generate(
32
- samples: List[str],
33
- properties: List[str],
34
- protein_target: str,
35
- n_cols: int = 3,
36
- size=(140, 200),
37
- ) -> str:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  """
39
- Uses mols2grid to draw a HTML grid for the generated molecules
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
- Args:
42
- samples: The generated samples.
43
- n_cols: Number of columns in grid. Defaults to 5.
44
- size: Size of molecule in grid. Defaults to (140, 200).
45
 
46
- Returns:
47
- HTML to display
 
 
 
 
 
 
 
48
  """
49
 
50
- if protein_target != "":
51
- EVAL_DICT.update({"affinity": get_affinity_function(protein_target)})
52
-
53
- result = defaultdict(list)
54
- result.update(
55
- {"SMILES": samples, "Name": [f"Generated_{i}" for i in range(len(samples))]},
56
- )
57
- if "affinity" in properties:
58
- properties.remove("affinity")
59
- vals = EVAL_DICT["affinity"](samples)
60
- result["affinity"] = vals
61
- # Fill properties
62
- for sample in samples:
63
- for prop in properties:
64
- value = EVAL_DICT[prop](sample)
65
- result[prop].append(f"{prop} = {value}")
66
-
67
- result_df = pd.DataFrame(result)
68
- obj = mols2grid.display(
69
- result_df,
70
- tooltip=list(result.keys()),
71
- height=1100,
72
- n_cols=n_cols,
73
- name="Results",
74
- size=size,
75
- )
76
- return obj.data
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding: utf-8
2
+
3
+ from __future__ import absolute_import
4
+
5
+ import datetime
6
+ import pprint
7
+ import sys
8
+ import typing
9
+ from datetime import datetime # noqa: F401
10
+ from typing import Dict, List # noqa: F401
11
+
12
+ import six
13
+
14
+ if sys.version_info < (3, 7):
15
+ import typing
16
+
17
+ def is_generic(klass):
18
+ """Determine whether klass is a generic class"""
19
+ return type(klass) == typing.GenericMeta
20
+
21
+ def is_dict(klass):
22
+ """Determine whether klass is a Dict"""
23
+ return klass.__extra__ == dict
24
+
25
+ def is_list(klass):
26
+ """Determine whether klass is a List"""
27
+ return klass.__extra__ == list
28
+
29
+ else:
30
+
31
+ def is_generic(klass):
32
+ """Determine whether klass is a generic class"""
33
+ return hasattr(klass, "__origin__")
34
+
35
+ def is_dict(klass):
36
+ """Determine whether klass is a Dict"""
37
+ return klass.__origin__ == dict
38
+
39
+ def is_list(klass):
40
+ """Determine whether klass is a List"""
41
+ return klass.__origin__ == list
42
+
43
+
44
+ def _deserialize(data, klass):
45
+ """Deserializes dict, list, str into an object.
46
+
47
+ :param data: dict, list or str.
48
+ :param klass: class literal, or string of class name.
49
+
50
+ :return: object.
51
+ """
52
+ if data is None:
53
+ return None
54
+
55
+ if klass in six.integer_types or klass in (float, str, bool, bytearray):
56
+ return _deserialize_primitive(data, klass)
57
+ elif klass == object:
58
+ return _deserialize_object(data)
59
+ elif klass == datetime.date:
60
+ return deserialize_date(data)
61
+ elif klass == datetime.datetime:
62
+ return deserialize_datetime(data)
63
+ elif typing_utils.is_generic(klass):
64
+ if typing_utils.is_list(klass):
65
+ return _deserialize_list(data, klass.__args__[0])
66
+ if typing_utils.is_dict(klass):
67
+ return _deserialize_dict(data, klass.__args__[1])
68
+ else:
69
+ return deserialize_model(data, klass)
70
+
71
+
72
+ def _deserialize_primitive(data, klass):
73
+ """Deserializes to primitive type.
74
+
75
+ :param data: data to deserialize.
76
+ :param klass: class literal.
77
+
78
+ :return: int, long, float, str, bool.
79
+ :rtype: int | long | float | str | bool
80
+ """
81
+ try:
82
+ value = klass(data)
83
+ except UnicodeEncodeError:
84
+ value = six.u(data)
85
+ except TypeError:
86
+ value = data
87
+ return value
88
+
89
+
90
+ def _deserialize_object(value):
91
+ """Return an original value.
92
+
93
+ :return: object.
94
+ """
95
+ return value
96
+
97
+
98
+ def deserialize_date(string):
99
+ """Deserializes string to date.
100
+
101
+ :param string: str.
102
+ :type string: str
103
+ :return: date.
104
+ :rtype: date
105
+ """
106
+ try:
107
+ from dateutil.parser import parse
108
+
109
+ return parse(string).date()
110
+ except ImportError:
111
+ return string
112
+
113
+
114
+ def deserialize_datetime(string):
115
+ """Deserializes string to datetime.
116
+
117
+ The string should be in iso8601 datetime format.
118
+
119
+ :param string: str.
120
+ :type string: str
121
+ :return: datetime.
122
+ :rtype: datetime
123
+ """
124
+ try:
125
+ from dateutil.parser import parse
126
+
127
+ return parse(string)
128
+ except ImportError:
129
+ return string
130
+
131
+
132
+ def deserialize_model(data, klass):
133
+ """Deserializes list or dict to model.
134
+
135
+ :param data: dict, list.
136
+ :type data: dict | list
137
+ :param klass: class literal.
138
+ :return: model object.
139
+ """
140
+ instance = klass()
141
+
142
+ if not instance.openapi_types:
143
+ return data
144
+
145
+ for attr, attr_type in six.iteritems(instance.openapi_types):
146
+ if (
147
+ data is not None
148
+ and instance.attribute_map[attr] in data
149
+ and isinstance(data, (list, dict))
150
+ ):
151
+ value = data[instance.attribute_map[attr]]
152
+ setattr(instance, attr, _deserialize(value, attr_type))
153
+
154
+ return instance
155
+
156
+
157
+ def _deserialize_list(data, boxed_type):
158
+ """Deserializes a list and its elements.
159
+
160
+ :param data: list to deserialize.
161
+ :type data: list
162
+ :param boxed_type: class literal.
163
+
164
+ :return: deserialized list.
165
+ :rtype: list
166
  """
167
+ return [_deserialize(sub_data, boxed_type) for sub_data in data]
168
+
169
+
170
+ def _deserialize_dict(data, boxed_type):
171
+ """Deserializes a dict and its elements.
172
+
173
+ :param data: dict to deserialize.
174
+ :type data: dict
175
+ :param boxed_type: class literal.
176
+
177
+ :return: deserialized dict.
178
+ :rtype: dict
179
+ """
180
+ return {k: _deserialize(v, boxed_type) for k, v in six.iteritems(data)}
181
+
182
+
183
+ T = typing.TypeVar("T")
184
+
185
+
186
+ class Model(object):
187
+ # openapiTypes: The key is attribute name and the
188
+ # value is attribute type.
189
+ openapi_types = {}
190
+
191
+ # attributeMap: The key is attribute name and the
192
+ # value is json key in definition.
193
+ attribute_map = {}
194
+
195
+ @classmethod
196
+ def from_dict(cls: typing.Type[T], dikt) -> T:
197
+ """Returns the dict as a model"""
198
+ return util.deserialize_model(dikt, cls)
199
+
200
+ def to_dict(self):
201
+ """Returns the model properties as a dict
202
+
203
+ :rtype: dict
204
+ """
205
+ result = {}
206
+
207
+ for attr, _ in six.iteritems(self.openapi_types):
208
+ value = getattr(self, attr)
209
+ if isinstance(value, list):
210
+ result[attr] = list(
211
+ map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value)
212
+ )
213
+ elif hasattr(value, "to_dict"):
214
+ result[attr] = value.to_dict()
215
+ elif isinstance(value, dict):
216
+ result[attr] = dict(
217
+ map(
218
+ lambda item: (item[0], item[1].to_dict())
219
+ if hasattr(item[1], "to_dict")
220
+ else item,
221
+ value.items(),
222
+ )
223
+ )
224
+ else:
225
+ result[attr] = value
226
+
227
+ return result
228
+
229
+ def to_str(self):
230
+ """Returns the string representation of the model
231
+
232
+ :rtype: str
233
+ """
234
+ return pprint.pformat(self.to_dict())
235
+
236
+ def __repr__(self):
237
+ """For `print` and `pprint`"""
238
+ return self.to_str()
239
 
240
+ def __eq__(self, other):
241
+ """Returns true if both objects are equal"""
242
+ return self.__dict__ == other.__dict__
 
243
 
244
+ def __ne__(self, other):
245
+ """Returns true if both objects are not equal"""
246
+ return not self == other
247
+
248
+
249
+ class Drug(Model):
250
+ """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
251
+
252
+ Do not edit the class manually.
253
  """
254
 
255
+ def __init__(self, smiles=None, name=None): # noqa: E501
256
+ """Drug - a model defined in OpenAPI
257
+
258
+ :param smiles: The smiles of this Drug. # noqa: E501
259
+ :type smiles: str
260
+ :param name: The name of this Drug. # noqa: E501
261
+ :type name: str
262
+ """
263
+ self.openapi_types = {"smiles": str, "name": str}
264
+
265
+ self.attribute_map = {"smiles": "smiles", "name": "name"}
266
+
267
+ self._smiles = smiles
268
+ self._name = name
269
+
270
+ @classmethod
271
+ def from_dict(cls, dikt) -> "Drug":
272
+ """Returns the dict as a model
273
+
274
+ :param dikt: A dict.
275
+ :type: dict
276
+ :return: The Drug of this Drug. # noqa: E501
277
+ :rtype: Drug
278
+ """
279
+ return util.deserialize_model(dikt, cls)
280
+
281
+ @property
282
+ def smiles(self):
283
+ """Gets the smiles of this Drug.
284
+
285
+
286
+ :return: The smiles of this Drug.
287
+ :rtype: str
288
+ """
289
+ return self._smiles
290
+
291
+ @smiles.setter
292
+ def smiles(self, smiles):
293
+ """Sets the smiles of this Drug.
294
+
295
+
296
+ :param smiles: The smiles of this Drug.
297
+ :type smiles: str
298
+ """
299
+ if smiles is None:
300
+ raise ValueError(
301
+ "Invalid value for `smiles`, must not be `None`"
302
+ ) # noqa: E501
303
+
304
+ self._smiles = smiles
305
+
306
+ @property
307
+ def name(self):
308
+ """Gets the name of this Drug.
309
+
310
+
311
+ :return: The name of this Drug.
312
+ :rtype: str
313
+ """
314
+ return self._name
315
+
316
+ @name.setter
317
+ def name(self, name):
318
+ """Sets the name of this Drug.
319
+
320
+
321
+ :param name: The name of this Drug.
322
+ :type name: str
323
+ """
324
+
325
+ self._name = name