Spaces:
Running
Running
jannisborn
commited on
Commit
•
ec53722
1
Parent(s):
8e66b23
update
Browse files- README.md +2 -2
- app.py +94 -118
- artifacts/dump_cos_data.sh +9 -0
- artifacts/gdsc_1_2_ccle.smi +893 -0
- artifacts/gene_expression_standardization.pkl +0 -0
- artifacts/genes.pkl +0 -0
- artifacts/model.json +1 -0
- artifacts/smiles_language.pkl +0 -0
- attention.py +126 -0
- configuration.py +73 -0
- cos.py +155 -0
- forward.py +56 -0
- plots.py +86 -0
- requirements.txt +20 -30
- smiles.py +211 -0
- submission.py +124 -0
- utils.py +320 -71
README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
---
|
2 |
-
title: PaccMann
|
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.
|
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
|
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 |
-
|
24 |
-
|
|
|
|
|
|
|
25 |
|
26 |
|
27 |
def run_inference(
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
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 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
)
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
else:
|
68 |
-
|
69 |
-
|
70 |
-
model = PaccMannGP(config, target=target)
|
71 |
-
samples = list(model.sample(number_of_samples))
|
72 |
|
73 |
-
|
74 |
-
|
75 |
-
n_cols=5,
|
76 |
-
properties=set(target.keys()),
|
77 |
-
protein_target=protein_target,
|
78 |
)
|
79 |
|
|
|
80 |
|
81 |
-
if __name__ == "__main__":
|
82 |
|
83 |
-
|
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="
|
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="
|
116 |
-
placeholder="
|
117 |
lines=1,
|
118 |
),
|
119 |
-
gr.
|
120 |
-
|
121 |
-
|
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.
|
151 |
-
|
152 |
-
|
153 |
-
value=4,
|
154 |
-
label="Maximum number of sampling steps",
|
155 |
-
step=1,
|
156 |
),
|
157 |
-
gr.
|
158 |
],
|
159 |
-
outputs=gr.
|
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 |
-
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
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 |
-
|
2 |
-
|
3 |
-
from
|
4 |
-
|
5 |
-
|
6 |
-
import
|
7 |
-
|
8 |
-
import
|
9 |
-
import
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
def
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
"""
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
size: Size of molecule in grid. Defaults to (140, 200).
|
45 |
|
46 |
-
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
"""
|
49 |
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|