Update the interface features and complete the API integration debugging.

#1
by YichaoLiu - opened
Files changed (2) hide show
  1. clm-frontend-dev.py +546 -74
  2. param.json +1428 -0
clm-frontend-dev.py CHANGED
@@ -1,32 +1,293 @@
1
  import gradio as gr
2
- from fastapi import FastAPI
3
  from starlette.staticfiles import StaticFiles
4
  import uvicorn
5
  import logging
6
  from pydantic import BaseModel
7
  import pandas as pd
8
  import time
9
- from fastapi.responses import RedirectResponse
 
 
10
 
 
11
  logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
12
  logger = logging.getLogger(__name__)
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  class SmilesData(BaseModel):
 
15
  smiles: str
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  app = FastAPI()
18
 
19
- # ketcher 目录挂载为静态资源,确保 ketcher/index.html 存在
20
  app.mount("/ketcher", StaticFiles(directory="ketcher"), name="ketcher")
21
 
22
- # 接收前端发送的SMILES数据的接口
23
  @app.post("/update_smiles")
24
  async def update_smiles(data: SmilesData):
25
- logger.info(f"Received SMILES from front-end: {data.smiles}")
26
- print(f"[PRINT-Backend] Received SMILES from front-end: {data.smiles}")
27
- return {"status": "ok", "received_smiles": data.smiles}
28
-
29
- # 前端嵌入的HTML和脚本
 
 
 
 
30
  KETCHER_HTML = r'''
31
  <iframe id="ifKetcher" src="/ketcher/index.html" width="100%" height="600px" style="border: 1px solid #ccc;"></iframe>
32
 
@@ -50,7 +311,6 @@ function updateGradioInput(smiles) {
50
  const input = findSmilesInput();
51
  if (input && input.value !== smiles) {
52
  input.value = smiles;
53
- // 手动触发input事件让 Gradio 更新状态
54
  input.dispatchEvent(new Event('input', { bubbles: true }));
55
  console.log("[Front-end] Updated Gradio input with SMILES:", smiles);
56
  }
@@ -65,8 +325,6 @@ async function handleKetcherChange() {
65
  lastSmiles = smiles;
66
  updateGradioInput(smiles);
67
 
68
- // 将SMILES发送给后端 (可以保留,但可能不是核心需求)
69
- console.log("[Front-end] Sending SMILES to backend...");
70
  fetch('/update_smiles', {
71
  method: 'POST',
72
  headers: {'Content-Type': 'application/json'},
@@ -102,7 +360,6 @@ function initKetcher() {
102
  ketcher = ketcherWindow.ketcher;
103
  console.log("[Front-end] Ketcher instance acquired:", ketcher);
104
 
105
- // 设置初始分子
106
  ketcher.setMolecule('C').then(() => {
107
  console.log("[Front-end] Initial molecule set to 'C'.");
108
  });
@@ -110,7 +367,6 @@ function initKetcher() {
110
  const editor = ketcher.editor;
111
  console.log("[Front-end] Editor object:", editor);
112
 
113
- // 尝试绑定变化事件
114
  let eventBound = false;
115
  if (editor && typeof editor.subscribe === 'function') {
116
  console.log("[Front-end] Using editor.subscribe('change', ...)");
@@ -130,39 +386,23 @@ document.getElementById('ifKetcher').addEventListener('load', () => {
130
  </script>
131
  '''
132
 
133
- # --- 模拟后端功能 (来自第二个版本) ---
134
- def smiles_to_structure(smiles):
135
- """Dummy function"""
136
- time.sleep(1)
137
- return f"Structure Generated from: {smiles}"
138
-
139
- def fragment_molecule(smiles):
140
- """Dummy function"""
141
- time.sleep(2)
142
- return "Fragment1", "Fragment2", "1-2"
143
-
144
- def generate_analogs(main_cls, minor_cls, number, delta_value):
145
- """Dummy function"""
146
- time.sleep(3)
147
- return [
148
- {"SMILE": "c1cccc1", "MolWt": 100, "TPSA": 20, "SLogP": 1, "SA": 30, "QED": 0.8},
149
- {"SMILE": "c1ccccc1", "MolWt": 105, "TPSA": 25, "SLogP": 1.2, "SA": 32, "QED": 0.9},
150
- ]
151
-
152
- def update_output_table(data):
153
- df = pd.DataFrame(data)
154
- return df
155
-
156
- # --- Gradio 界面 ---
157
  def create_combined_interface():
158
- with gr.Blocks() as demo:
 
 
 
 
159
  gr.Markdown("# Fragment Optimization Tools with Ketcher")
160
 
 
161
  with gr.Row():
 
162
  with gr.Column(scale=2):
163
- gr.HTML(KETCHER_HTML) # 嵌入 Ketcher
164
 
 
165
  with gr.Column(scale=1):
 
166
  with gr.Group():
167
  gr.Markdown("### Input SMILES (From Ketcher)")
168
  combined_smiles_input = gr.Textbox(
@@ -172,40 +412,222 @@ def create_combined_interface():
172
  elem_id="combined_smiles_input"
173
  )
174
  with gr.Row():
175
- # 可以保留一个按钮来触发某些操作,例如手动同步
176
- get_ketcher_smiles_btn = gr.Button("Get SMILES from Ketcher")
177
- # 示例:将当前输入框的 SMILES 设置到 Ketcher (需要额外的前端 JavaScript)
178
- # set_ketcher_smiles_btn = gr.Button("Set SMILES to Ketcher")
179
- fragment_btn = gr.Button("Fragmentize Molecule")
180
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
181
  with gr.Group():
 
182
  with gr.Row():
183
- constant_frag_input = gr.Textbox(label="Constant Fragment", placeholder="SMILES of constant fragment")
184
- variable_frag_input = gr.Textbox(label="Variable Fragment", placeholder="SMILES of variable fragment")
185
- attach_order_input = gr.Textbox(label="Attachment Order", placeholder="Attachment Order of SMILES")
186
-
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  with gr.Group():
188
- gr.Markdown("### Generate analogs")
 
 
189
  with gr.Row():
190
- main_cls_dropdown = gr.Dropdown(label="Main Cls", choices=["None", "Cl", "Br"])
191
- minor_cls_dropdown = gr.Dropdown(label="Minor Cls", choices=["None", "Cl", "Br"])
192
- number_input = gr.Number(label="Number", value=5, step=1)
193
-
194
- delta_value_slider = gr.Slider(minimum=0, maximum=10, step=1, label="Delta Value", interactive=True)
195
- generate_analogs_btn = gr.Button("Generate")
 
 
 
 
 
 
 
 
 
 
 
196
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
  with gr.Row():
198
  with gr.Column():
199
- selected_columns = gr.CheckboxGroup(["SMILE", "MolWt", "TPSA", "SLogP", "SA", "QED"], value=["SMILE", "MolWt", "TPSA", "SLogP"], label="")
200
-
201
- output_table = gr.Dataframe(headers=["SMILE", "MolWt", "TPSA", "SLogP", "SA", "QED"])
 
 
 
 
 
 
 
202
 
203
  with gr.Row():
204
- download_all_btn = gr.Button("Download All")
205
- download_selected_btn = gr.Button("Download Selected")
206
-
207
- # --- 事件处理 ---
208
- # 当点击按钮时,手动从 Ketcher 获取 SMILES 并更新输入框
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
209
  get_ketcher_smiles_btn.click(
210
  fn=None,
211
  inputs=None,
@@ -213,22 +635,72 @@ def create_combined_interface():
213
  js="async () => { const iframe = document.getElementById('ifKetcher'); if(iframe && iframe.contentWindow && iframe.contentWindow.ketcher) { const smiles = await iframe.contentWindow.ketcher.getSmiles(); return smiles; } else { console.error('Ketcher not ready'); return ''; } }"
214
  )
215
 
216
- fragment_btn.click(fragment_molecule, inputs=combined_smiles_input, outputs=[constant_frag_input, variable_frag_input, attach_order_input])
 
 
 
 
 
 
 
 
 
 
 
217
 
218
- def update_table_with_analogs(main_cls, minor_cls, number, delta_value):
219
- analogs_data = generate_analogs(main_cls, minor_cls, number, delta_value)
220
- return update_output_table(analogs_data)
 
 
 
221
 
222
- generate_analogs_btn.click(update_table_with_analogs,
223
- inputs=[main_cls_dropdown, minor_cls_dropdown, number_input, delta_value_slider],
224
- outputs=output_table)
 
 
 
 
 
 
 
 
225
 
226
- # TODO: 添加下载功能的回调
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
 
228
- return demo
229
 
 
230
  combined_demo = create_combined_interface()
231
  app = gr.mount_gradio_app(app, combined_demo, path="/")
232
 
233
  if __name__ == "__main__":
234
- uvicorn.run(app, host="0.0.0.0", port=7860)
 
1
  import gradio as gr
2
+ from fastapi import FastAPI, HTTPException
3
  from starlette.staticfiles import StaticFiles
4
  import uvicorn
5
  import logging
6
  from pydantic import BaseModel
7
  import pandas as pd
8
  import time
9
+ import requests
10
+ import json
11
+ from typing import List, Dict, Any, Optional, Tuple
12
 
13
+ # Set up logging configuration
14
  logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
15
  logger = logging.getLogger(__name__)
16
 
17
+ # API configurations
18
+ API_BASE_URL = "https://songyou-llm-fastapi.hf.space"
19
+ FRAGMENT_ENDPOINT = f"{API_BASE_URL}/fragmentize"
20
+ GENERATE_ENDPOINT = f"{API_BASE_URL}/generate"
21
+
22
+ # Load parameters from configuration file
23
+ try:
24
+ with open('param.json', 'r') as f:
25
+ params = json.load(f)
26
+ logger.info("Successfully loaded parameter configuration")
27
+ except Exception as e:
28
+ logger.error(f"Error loading parameter configuration: {str(e)}")
29
+ raise
30
+
31
+ # Data models
32
  class SmilesData(BaseModel):
33
+ """Model for SMILES data received from frontend"""
34
  smiles: str
35
 
36
+ class GenerateRequest(BaseModel):
37
+ """Request model for generate endpoint with updated fields"""
38
+ constSmiles: str
39
+ varSmiles: str
40
+ mainCls: str
41
+ minorCls: str
42
+ deltaValue: str
43
+ targetName: str = "target1" # default value
44
+ num: int
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+ # Helper functions for metric handling
55
+ def get_metrics_for_objective(objective: str) -> List[str]:
56
+ """Get the corresponding metrics for a given objective"""
57
+ if objective == "None" or objective not in params["Metrics"]:
58
+ return ["None"]
59
+ return ["None"] + params["Metrics"].get(objective, [])
60
+
61
+ def get_metric_full_name(objective: str, metric: str) -> str:
62
+ """
63
+ Constructs the full metric name based on objective and metric.
64
+ For general physical properties, returns just the metric name.
65
+ For others, returns the metric name as is.
66
+ """
67
+ if objective == "general physical properties":
68
+ return metric
69
+ return f"{metric}"
70
+
71
+ def get_metric_type(metric_name: str) -> str:
72
+ """
73
+ Determines if a metric is boolean or sequential based on the BoolOrSeq mapping.
74
+ Returns 'bool', 'seq', or '' if not found.
75
+ """
76
+ metric_type = params["BoolOrSeq"].get(metric_name, "")
77
+ logger.debug(f"Metric type for {metric_name}: {metric_type}")
78
+ return metric_type
79
+
80
+ def get_delta_choices(metric_type: str) -> List[str]:
81
+ """Returns the appropriate choices for delta value based on metric type."""
82
+ if metric_type == "bool":
83
+ return params["ImprovementAnticipationBool"]
84
+ elif metric_type == "seq":
85
+ return params["ImprovementAnticipationSeq"]
86
+ return []
87
+
88
+ def validate_metric_combination(objective: str, metric: str) -> bool:
89
+ """
90
+ Validates if the objective-metric combination is valid.
91
+ Returns True if valid, False otherwise.
92
+ """
93
+ if objective == "None" or metric == "None":
94
+ logger.debug(f"Invalid objective or metric: {objective} - {metric}")
95
+ return False
96
+ if objective not in params["Metrics"]:
97
+ logger.debug(f"Objective not found in metrics: {objective}")
98
+ return False
99
+ if metric not in params["Metrics"].get(objective, []):
100
+ logger.debug(f"Metric not found in objective: {metric}")
101
+ return False
102
+ logger.debug(f"Valid metric combination: {objective} - {metric}")
103
+ return True
104
+
105
+ def handle_generate_analogs(
106
+ main_cls: str,
107
+ minor_cls: str,
108
+ number: int,
109
+ bool_delta_val: str,
110
+ seq_delta_val: str,
111
+ const_smiles: str,
112
+ var_smiles: str,
113
+ metric_type: str
114
+ ) -> pd.DataFrame:
115
+ """
116
+ Handles the generation of analogs with appropriate delta value selection and error handling.
117
+ This function serves as the bridge between the UI and the generate_analogs API call.
118
+
119
+ Args:
120
+ main_cls (str): The main objective classification
121
+ minor_cls (str): The specific metric
122
+ number (int): Number of analogs to generate
123
+ bool_delta_val (str): Selected delta value for boolean metrics
124
+ seq_delta_val (str): Selected delta value for sequential metrics
125
+ const_smiles (str): Constant fragment SMILES
126
+ var_smiles (str): Variable fragment SMILES
127
+ metric_type (str): Type of metric ('bool' or 'seq')
128
+
129
+ Returns:
130
+ pd.DataFrame: DataFrame containing the generated analogs and their properties
131
+ """
132
+ try:
133
+ # Input validation
134
+ if not all([main_cls, minor_cls, const_smiles, var_smiles]):
135
+ logger.error("Missing required inputs")
136
+ return pd.DataFrame()
137
+
138
+ if not validate_metric_combination(main_cls, minor_cls):
139
+ logger.error(f"Invalid metric combination: {main_cls} - {minor_cls}")
140
+ return pd.DataFrame()
141
+
142
+ # Select appropriate delta value based on metric type
143
+ if metric_type not in ["bool", "seq"]:
144
+ logger.error(f"Invalid metric type: {metric_type}")
145
+ return pd.DataFrame()
146
+
147
+ delta_value = bool_delta_val if metric_type == "bool" else seq_delta_val
148
+
149
+ # Generate analogs using the API
150
+ analogs_data = generate_analogs(
151
+ main_cls=main_cls,
152
+ minor_cls=minor_cls,
153
+ number=number,
154
+ delta_value=delta_value,
155
+ const_smiles=const_smiles,
156
+ var_smiles=var_smiles
157
+ )
158
+
159
+ if not analogs_data:
160
+ logger.warning("No analogs generated")
161
+ return pd.DataFrame()
162
+
163
+ return update_output_table(analogs_data)
164
+
165
+ except Exception as e:
166
+ logger.error(f"Error in handle_generate_analogs: {str(e)}")
167
+ return pd.DataFrame()
168
+
169
+ # Update the fragment_molecule function to handle the new response format
170
+ def fragment_molecule(smiles: str) -> Tuple[str, str, str]:
171
+ """
172
+ Call the fragment API endpoint to get molecule fragments
173
+ Returns: List of fragments with their details
174
+ """
175
+ try:
176
+ logger.info(f"Calling fragment API with SMILES: {smiles}")
177
+ response = requests.get(f"{FRAGMENT_ENDPOINT}?smiles={smiles}")
178
+ response.raise_for_status()
179
+ data = response.json()
180
+ logger.info(f"Fragment API response: {data}")
181
+
182
+ # Return empty values if no fragments found
183
+ if not data.get("fragments"):
184
+ return "", "", ""
185
+
186
+ # Return the first fragment by default
187
+ first_fragment = data["fragments"][0]
188
+ return (
189
+ first_fragment.get("constant_smiles", ""),
190
+ first_fragment.get("variable_smiles", ""),
191
+ str(first_fragment.get("attachment_order", ""))
192
+ )
193
+ except Exception as e:
194
+ logger.error(f"Fragment API call failed: {str(e)}")
195
+ return "", "", ""
196
+
197
+ def generate_analogs(
198
+ main_cls: str,
199
+ minor_cls: str,
200
+ number: int,
201
+ delta_value: str,
202
+ const_smiles: str,
203
+ var_smiles: str
204
+ ) -> List[Dict[str, Any]]:
205
+ """
206
+ Generate molecule analogs using the generate API endpoint with improved error handling
207
+ and validation.
208
+ """
209
+ try:
210
+ # Validate inputs
211
+ if not all([const_smiles, var_smiles, main_cls, minor_cls, delta_value]):
212
+ logger.error("Missing required inputs for generate_analogs")
213
+ return []
214
+
215
+ # Create API request
216
+ payload = GenerateRequest(
217
+ constSmiles=const_smiles,
218
+ varSmiles=var_smiles,
219
+ mainCls=main_cls if main_cls != "None" else "",
220
+ minorCls=minor_cls if minor_cls != "None" else "",
221
+ deltaValue=delta_value,
222
+ num=int(number)
223
+ )
224
+
225
+ logger.info(f"Calling generate API with payload: {payload.dict()}")
226
+
227
+ # Make API request
228
+ response = requests.post(
229
+ GENERATE_ENDPOINT,
230
+ headers={'Content-Type': 'application/json'},
231
+ json=payload.dict(),
232
+ timeout=30
233
+ )
234
+
235
+ response.raise_for_status()
236
+ results = response.json()
237
+
238
+ if not isinstance(results, list):
239
+ logger.error(f"Unexpected response format: {results}")
240
+ return []
241
+
242
+ logger.info(f"Successfully generated {len(results)} analogs")
243
+ return results
244
+
245
+ except requests.exceptions.Timeout:
246
+ logger.error("Generate API request timed out")
247
+ return []
248
+ except requests.exceptions.RequestException as e:
249
+ logger.error(f"Generate API request failed: {str(e)}")
250
+ return []
251
+ except Exception as e:
252
+ logger.error(f"Unexpected error in generate_analogs: {str(e)}")
253
+ return []
254
+
255
+ def update_output_table(data: List[Dict[str, Any]]) -> pd.DataFrame:
256
+ """Convert API response data to pandas DataFrame for display"""
257
+ try:
258
+ df = pd.DataFrame(data)
259
+ return df
260
+ except Exception as e:
261
+ logger.error(f"Error creating DataFrame: {str(e)}")
262
+ return pd.DataFrame()
263
+
264
+ def save_to_csv(data: pd.DataFrame, selected_only: bool = False) -> Optional[str]:
265
+ """Save data to CSV file"""
266
+ try:
267
+ filename = f"molecule_analogs_{int(time.time())}.csv"
268
+ data.to_csv(filename, index=False)
269
+ return filename
270
+ except Exception as e:
271
+ logger.error(f"Error saving to CSV: {str(e)}")
272
+ return None
273
+
274
+ # FastAPI app initialization
275
  app = FastAPI()
276
 
277
+ # Mount Ketcher static files
278
  app.mount("/ketcher", StaticFiles(directory="ketcher"), name="ketcher")
279
 
 
280
  @app.post("/update_smiles")
281
  async def update_smiles(data: SmilesData):
282
+ """Endpoint to receive SMILES data from frontend"""
283
+ try:
284
+ logger.info(f"Received SMILES from front-end: {data.smiles}")
285
+ return {"status": "ok", "received_smiles": data.smiles}
286
+ except Exception as e:
287
+ logger.error(f"Error processing SMILES update: {str(e)}")
288
+ raise HTTPException(status_code=500, detail=str(e))
289
+
290
+ # Ketcher interface HTML template
291
  KETCHER_HTML = r'''
292
  <iframe id="ifKetcher" src="/ketcher/index.html" width="100%" height="600px" style="border: 1px solid #ccc;"></iframe>
293
 
 
311
  const input = findSmilesInput();
312
  if (input && input.value !== smiles) {
313
  input.value = smiles;
 
314
  input.dispatchEvent(new Event('input', { bubbles: true }));
315
  console.log("[Front-end] Updated Gradio input with SMILES:", smiles);
316
  }
 
325
  lastSmiles = smiles;
326
  updateGradioInput(smiles);
327
 
 
 
328
  fetch('/update_smiles', {
329
  method: 'POST',
330
  headers: {'Content-Type': 'application/json'},
 
360
  ketcher = ketcherWindow.ketcher;
361
  console.log("[Front-end] Ketcher instance acquired:", ketcher);
362
 
 
363
  ketcher.setMolecule('C').then(() => {
364
  console.log("[Front-end] Initial molecule set to 'C'.");
365
  });
 
367
  const editor = ketcher.editor;
368
  console.log("[Front-end] Editor object:", editor);
369
 
 
370
  let eventBound = false;
371
  if (editor && typeof editor.subscribe === 'function') {
372
  console.log("[Front-end] Using editor.subscribe('change', ...)");
 
386
  </script>
387
  '''
388
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
389
  def create_combined_interface():
390
+ """
391
+ Creates the main Gradio interface combining Ketcher, molecule fragmentation,
392
+ and analog generation functionalities with fragment selection.
393
+ """
394
+ with gr.Blocks(theme=gr.themes.Default()) as demo:
395
  gr.Markdown("# Fragment Optimization Tools with Ketcher")
396
 
397
+ # Main layout with two columns
398
  with gr.Row():
399
+ # Left column - Ketcher editor
400
  with gr.Column(scale=2):
401
+ gr.HTML(KETCHER_HTML)
402
 
403
+ # Right column - Controls and inputs
404
  with gr.Column(scale=1):
405
+ # SMILES Input section
406
  with gr.Group():
407
  gr.Markdown("### Input SMILES (From Ketcher)")
408
  combined_smiles_input = gr.Textbox(
 
412
  elem_id="combined_smiles_input"
413
  )
414
  with gr.Row():
415
+ get_ketcher_smiles_btn = gr.Button("Get SMILES from Ketcher", variant="primary")
416
+ fragment_btn = gr.Button("Find Fragments", variant="secondary")
 
 
 
417
 
418
+ # Fragment Selection section
419
+ # Fragment Selection section
420
+ # Fragment Selection section
421
+ with gr.Group():
422
+ gr.Markdown("### Available Fragments")
423
+ gr.Markdown("""
424
+ Select a fragmentation pattern:
425
+ - Variable Fragment: Part that will be modified
426
+ - Constant Fragment: Part that remains unchanged
427
+ - Order: Attachment point pattern between fragments
428
+ """)
429
+ fragments_table = gr.Dataframe(
430
+ headers=["Variable Fragment", "Constant Fragment", "Order"],
431
+ type="array",
432
+ interactive=True,
433
+ label="Click a row to select fragmentation pattern",
434
+ # Remove the invalid parameters
435
+ wrap=True, # Allow text wrapping for long SMILES strings
436
+ row_count=10 # Show 10 rows at a time
437
+ )
438
+
439
+ # Selected Fragment Display
440
  with gr.Group():
441
+ gr.Markdown("### Selected Fragment")
442
  with gr.Row():
443
+ constant_frag_input = gr.Textbox(
444
+ label="Constant Fragment",
445
+ placeholder="SMILES of constant fragment",
446
+ interactive=True
447
+ )
448
+ variable_frag_input = gr.Textbox(
449
+ label="Variable Fragment",
450
+ placeholder="SMILES of variable fragment",
451
+ interactive=True
452
+ )
453
+ attach_order_input = gr.Textbox(
454
+ label="Attachment Order",
455
+ placeholder="Attachment Order",
456
+ interactive=True
457
+ )
458
+
459
+ # Analog generation section
460
  with gr.Group():
461
+ gr.Markdown("### Generate Analogs")
462
+ current_metric_type = gr.State("")
463
+
464
  with gr.Row():
465
+ main_cls_dropdown = gr.Dropdown(
466
+ label="Objective",
467
+ choices=["None"] + params["Objective"],
468
+ value="None"
469
+ )
470
+ minor_cls_dropdown = gr.Dropdown(
471
+ label="Metrics",
472
+ choices=["None"],
473
+ value="None"
474
+ )
475
+ number_input = gr.Number(
476
+ label="Number of Analogs",
477
+ value=3,
478
+ step=1,
479
+ minimum=1,
480
+ maximum=10
481
+ )
482
 
483
+ with gr.Row():
484
+ bool_delta = gr.Dropdown(
485
+ choices=params["ImprovementAnticipationBool"],
486
+ label="Target Direction (Boolean)",
487
+ value="0-1",
488
+ visible=False,
489
+ info="Select desired change direction"
490
+ )
491
+ seq_delta = gr.Dropdown(
492
+ choices=params["ImprovementAnticipationSeq"],
493
+ label="Target Range (Sequential)",
494
+ value="(-0.5, 0.0]",
495
+ visible=False,
496
+ info="Select desired value range"
497
+ )
498
+
499
+ generate_analogs_btn = gr.Button("Generate Analogs", variant="primary")
500
+
501
+ # Results section
502
  with gr.Row():
503
  with gr.Column():
504
+ selected_columns = gr.CheckboxGroup(
505
+ ["smile", "molWt", "tpsa", "slogp", "sa", "qed"],
506
+ value=["smile", "molWt", "tpsa", "slogp"],
507
+ label="Select Columns to Display"
508
+ )
509
+
510
+ output_table = gr.Dataframe(
511
+ headers=["smile", "molWt", "tpsa", "slogp", "sa", "qed"],
512
+ label="Generated Analogs"
513
+ )
514
 
515
  with gr.Row():
516
+ download_all_btn = gr.Button("Download All Results", variant="secondary")
517
+ download_selected_btn = gr.Button("Download Selected Results", variant="secondary")
518
+
519
+ # Helper functions for fragment handling
520
+ def process_fragments_response(response_data):
521
+ """Process the API response into table format"""
522
+ try:
523
+ fragments = response_data.get("fragments", [])
524
+ return [[
525
+ fragment.get("variable_smiles", ""),
526
+ fragment.get("constant_smiles", ""),
527
+ str(fragment.get("attachment_order", ""))
528
+ ] for fragment in fragments]
529
+ except Exception as e:
530
+ logger.error(f"Error processing fragments: {str(e)}")
531
+ return []
532
+
533
+ def get_fragments(smiles: str):
534
+ """
535
+ Get and process fragments from API by calling the fragmentize endpoint.
536
+ Handles multiple fragmentation patterns returned by the API.
537
+
538
+ Args:
539
+ smiles (str): Input SMILES string to fragmentize
540
+
541
+ Returns:
542
+ list: A list of rows where each row represents a possible fragmentation pattern
543
+ """
544
+ try:
545
+ # URL encode the SMILES string to handle special characters
546
+ encoded_smiles = requests.utils.quote(smiles)
547
+ url = f"{FRAGMENT_ENDPOINT}?smiles={encoded_smiles}"
548
+ logger.info(f"Calling fragmentize API with URL: {url}")
549
+
550
+ response = requests.get(url)
551
+ response.raise_for_status()
552
+ data = response.json()
553
+
554
+ # Process fragments from the response
555
+ fragments = data.get('fragments', [])
556
+ logger.info(f"Found {len(fragments)} possible fragmentations")
557
+
558
+ # Convert each fragment into a table row format
559
+ processed_fragments = []
560
+ for fragment in fragments:
561
+ processed_fragments.append([
562
+ fragment.get('variable_smiles', ''),
563
+ fragment.get('constant_smiles', ''),
564
+ str(fragment.get('attachment_order', ''))
565
+ ])
566
+
567
+ return processed_fragments
568
+
569
+ except Exception as e:
570
+ logger.error(f"Error processing fragments: {str(e)}")
571
+ return []
572
+
573
+ def update_selected_fragment(evt: gr.SelectData, fragments_data):
574
+ """Update fragment fields when table row is selected"""
575
+ try:
576
+ if not fragments_data or evt.index[0] >= len(fragments_data):
577
+ logger.warning("No valid fragment selected")
578
+ return ["", "", ""]
579
+
580
+ selected = fragments_data[evt.index[0]]
581
+ logger.info(f"Selected fragment pattern {evt.index[0]}: var={selected[0]}, const={selected[1]}, order={selected[2]}")
582
+ return [selected[1], selected[0], selected[2]]
583
+
584
+ except Exception as e:
585
+ logger.error(f"Error updating selected fragment: {str(e)}")
586
+ return ["", "", ""]
587
+
588
+ def update_delta_inputs(objective: str, metric: str) -> dict:
589
+ """
590
+ Updates the visibility and options of delta inputs based on metric type.
591
+ Shows boolean or sequential delta input based on the metric's type.
592
+
593
+ Args:
594
+ objective (str): The selected objective
595
+ metric (str): The selected metric
596
+
597
+ Returns:
598
+ dict: Updates for both delta inputs and the current metric type
599
+ """
600
+ if not validate_metric_combination(objective, metric):
601
+ return {
602
+ bool_delta: gr.update(visible=False),
603
+ seq_delta: gr.update(visible=False),
604
+ current_metric_type: ""
605
+ }
606
+
607
+ metric_name = get_metric_full_name(objective, metric)
608
+ metric_type = get_metric_type(metric_name)
609
+
610
+ return {
611
+ bool_delta: gr.update(visible=metric_type == "bool"),
612
+ seq_delta: gr.update(visible=metric_type == "seq"),
613
+ current_metric_type: metric_type
614
+ }
615
+
616
+ def update_metrics_dropdown(objective: str) -> dict:
617
+ """
618
+ Updates the metrics dropdown based on the selected objective.
619
+ Uses the get_metrics_for_objective helper function to get valid metrics for the chosen objective.
620
+
621
+ Args:
622
+ objective (str): The selected objective from the main dropdown
623
+
624
+ Returns:
625
+ dict: A Gradio update object containing the new dropdown configuration
626
+ """
627
+ metrics = get_metrics_for_objective(objective)
628
+ return gr.Dropdown(choices=metrics, value="None")
629
+
630
+ # Event handlers
631
  get_ketcher_smiles_btn.click(
632
  fn=None,
633
  inputs=None,
 
635
  js="async () => { const iframe = document.getElementById('ifKetcher'); if(iframe && iframe.contentWindow && iframe.contentWindow.ketcher) { const smiles = await iframe.contentWindow.ketcher.getSmiles(); return smiles; } else { console.error('Ketcher not ready'); return ''; } }"
636
  )
637
 
638
+ # Fragment processing handlers
639
+ fragment_btn.click(
640
+ fn=get_fragments,
641
+ inputs=[combined_smiles_input],
642
+ outputs=[fragments_table]
643
+ )
644
+
645
+ fragments_table.select(
646
+ fn=update_selected_fragment,
647
+ inputs=[fragments_table],
648
+ outputs=[constant_frag_input, variable_frag_input, attach_order_input]
649
+ )
650
 
651
+ # Metric selection handlers
652
+ main_cls_dropdown.change(
653
+ fn=update_metrics_dropdown,
654
+ inputs=[main_cls_dropdown],
655
+ outputs=[minor_cls_dropdown]
656
+ )
657
 
658
+ main_cls_dropdown.change(
659
+ fn=update_delta_inputs,
660
+ inputs=[main_cls_dropdown, minor_cls_dropdown],
661
+ outputs=[bool_delta, seq_delta, current_metric_type]
662
+ )
663
+
664
+ minor_cls_dropdown.change(
665
+ fn=update_delta_inputs,
666
+ inputs=[main_cls_dropdown, minor_cls_dropdown],
667
+ outputs=[bool_delta, seq_delta, current_metric_type]
668
+ )
669
 
670
+ # Analog generation handler
671
+ generate_analogs_btn.click(
672
+ fn=handle_generate_analogs,
673
+ inputs=[
674
+ main_cls_dropdown,
675
+ minor_cls_dropdown,
676
+ number_input,
677
+ bool_delta,
678
+ seq_delta,
679
+ constant_frag_input,
680
+ variable_frag_input,
681
+ current_metric_type
682
+ ],
683
+ outputs=[output_table]
684
+ )
685
+
686
+ # Download handlers
687
+ download_all_btn.click(
688
+ lambda df: save_to_csv(df, False),
689
+ inputs=[output_table],
690
+ outputs=[gr.File(label="Download CSV")]
691
+ )
692
+
693
+ download_selected_btn.click(
694
+ lambda df, cols: save_to_csv(df[cols], True),
695
+ inputs=[output_table, selected_columns],
696
+ outputs=[gr.File(label="Download CSV")]
697
+ )
698
 
699
+ return demo
700
 
701
+ # Mount the Gradio app
702
  combined_demo = create_combined_interface()
703
  app = gr.mount_gradio_app(app, combined_demo, path="/")
704
 
705
  if __name__ == "__main__":
706
+ uvicorn.run(app, host="127.0.0.1", port=6861)
param.json ADDED
@@ -0,0 +1,1428 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "Objective": [
3
+ "activity",
4
+ "absorption",
5
+ "distribution",
6
+ "metabolism",
7
+ "excretion",
8
+ "toxicity",
9
+ "general physical properties"
10
+ ],
11
+ "ImprovementAnticipationBool": [
12
+ "0-1",
13
+ "1-0",
14
+ "0-0"
15
+ ],
16
+ "ImprovementAnticipationSeq": [
17
+ "(-inf, -10.5]",
18
+ "(-10.5, -8.5]",
19
+ "(-8.5, -6.5]",
20
+ "(-6.5, -4.5]",
21
+ "(-4.5, -2.5]",
22
+ "(-2.5, -1.5]",
23
+ "(-1.5, -1.0]",
24
+ "(-1.0, -0.5]",
25
+ "(-0.5, 0.0]",
26
+ "(0.0, 0.5]",
27
+ "(0.5, 1.0]",
28
+ "(1.0, 1.5]",
29
+ "(1.5, 2.5]",
30
+ "(2.5, 4.5]",
31
+ "(4.5, 6.5]",
32
+ "(6.5, 8.5]",
33
+ "(8.5, 10.5]",
34
+ "(10.5, inf]"
35
+ ],
36
+ "Metrics": {
37
+ "activity": [
38
+ "IC50",
39
+ "Ki",
40
+ "Kd",
41
+ "EC50"
42
+ ],
43
+ "absorption": [
44
+ "Drug uptake",
45
+ "Papp",
46
+ "permeability",
47
+ "F",
48
+ "Fu",
49
+ "Tmax",
50
+ "Cmax",
51
+ "lipophilicity_astrazeneca",
52
+ "solubility_aqsoldb",
53
+ "hydrationfreeenergy_freesolv",
54
+ "caco2_wang",
55
+ "pampa_ncats",
56
+ "hia_hou",
57
+ "pgp_broccatelli",
58
+ "bioavailability_ma"
59
+ ],
60
+ "distribution": [
61
+ "Vdss",
62
+ "Cp",
63
+ "vdss_lombardo",
64
+ "bbb_martins",
65
+ "ppbr_az"
66
+ ],
67
+ "metabolism": [
68
+ "Drug metabolism",
69
+ "LogD",
70
+ "LogP",
71
+ "cyp2c19_veith",
72
+ "cyp2d6_veith",
73
+ "cyp3a4_veith",
74
+ "cyp1a2_veith",
75
+ "cyp2c9_veith",
76
+ "cyp2c9_substrate_carbonmangels",
77
+ "cyp2d6_substrate_carbonmangels",
78
+ "cyp3a4_substrate_carbonmangels"
79
+ ],
80
+ "excretion": [
81
+ "AUC",
82
+ "CL",
83
+ "FC",
84
+ "half_life_obach",
85
+ "clearance_hepatocyte_az",
86
+ "clearance_microsome_az"
87
+ ],
88
+ "toxicity": [
89
+ "Stability",
90
+ "LD50",
91
+ "LC50",
92
+ "T1/2",
93
+ "tox21-NR-AR",
94
+ "tox21-NR-AR-LBD",
95
+ "tox21-NR-AhR",
96
+ "tox21-NR-Aromatase",
97
+ "tox21-NR-ER",
98
+ "tox21-NR-ER-LBD",
99
+ "tox21-NR-PPAR-gamma",
100
+ "tox21-SR-ARE",
101
+ "tox21-SR-ATAD5",
102
+ "tox21-SR-HSE",
103
+ "tox21-SR-MMP",
104
+ "tox21-SR-p53",
105
+ "toxcast-ACEA_T47D_80hr_Negative",
106
+ "toxcast-ACEA_T47D_80hr_Positive",
107
+ "toxcast-APR_HepG2_CellCycleArrest_24h_dn",
108
+ "toxcast-APR_HepG2_CellCycleArrest_24h_up",
109
+ "toxcast-APR_HepG2_CellCycleArrest_72h_dn",
110
+ "toxcast-APR_HepG2_CellLoss_24h_dn",
111
+ "toxcast-APR_HepG2_CellLoss_72h_dn",
112
+ "toxcast-APR_HepG2_MicrotubuleCSK_24h_dn",
113
+ "toxcast-APR_HepG2_MicrotubuleCSK_24h_up",
114
+ "toxcast-APR_HepG2_MicrotubuleCSK_72h_dn",
115
+ "toxcast-APR_HepG2_MicrotubuleCSK_72h_up",
116
+ "toxcast-APR_HepG2_MitoMass_24h_dn",
117
+ "toxcast-APR_HepG2_MitoMass_24h_up",
118
+ "toxcast-APR_HepG2_MitoMass_72h_dn",
119
+ "toxcast-APR_HepG2_MitoMass_72h_up",
120
+ "toxcast-APR_HepG2_MitoMembPot_1h_dn",
121
+ "toxcast-APR_HepG2_MitoMembPot_24h_dn",
122
+ "toxcast-APR_HepG2_MitoMembPot_72h_dn",
123
+ "toxcast-APR_HepG2_MitoticArrest_24h_up",
124
+ "toxcast-APR_HepG2_MitoticArrest_72h_up",
125
+ "toxcast-APR_HepG2_NuclearSize_24h_dn",
126
+ "toxcast-APR_HepG2_NuclearSize_72h_dn",
127
+ "toxcast-APR_HepG2_NuclearSize_72h_up",
128
+ "toxcast-APR_HepG2_OxidativeStress_24h_up",
129
+ "toxcast-APR_HepG2_OxidativeStress_72h_up",
130
+ "toxcast-APR_HepG2_StressKinase_1h_up",
131
+ "toxcast-APR_HepG2_StressKinase_24h_up",
132
+ "toxcast-APR_HepG2_StressKinase_72h_up",
133
+ "toxcast-APR_HepG2_p53Act_24h_up",
134
+ "toxcast-APR_HepG2_p53Act_72h_up",
135
+ "toxcast-APR_Hepat_Apoptosis_24hr_up",
136
+ "toxcast-APR_Hepat_Apoptosis_48hr_up",
137
+ "toxcast-APR_Hepat_CellLoss_24hr_dn",
138
+ "toxcast-APR_Hepat_CellLoss_48hr_dn",
139
+ "toxcast-APR_Hepat_DNADamage_24hr_up",
140
+ "toxcast-APR_Hepat_DNADamage_48hr_up",
141
+ "toxcast-APR_Hepat_DNATexture_24hr_up",
142
+ "toxcast-APR_Hepat_DNATexture_48hr_up",
143
+ "toxcast-APR_Hepat_MitoFxnI_1hr_dn",
144
+ "toxcast-APR_Hepat_MitoFxnI_24hr_dn",
145
+ "toxcast-APR_Hepat_MitoFxnI_48hr_dn",
146
+ "toxcast-APR_Hepat_NuclearSize_24hr_dn",
147
+ "toxcast-APR_Hepat_NuclearSize_48hr_dn",
148
+ "toxcast-APR_Hepat_Steatosis_24hr_up",
149
+ "toxcast-APR_Hepat_Steatosis_48hr_up",
150
+ "toxcast-ATG_AP_1_CIS_dn",
151
+ "toxcast-ATG_AP_1_CIS_up",
152
+ "toxcast-ATG_AP_2_CIS_dn",
153
+ "toxcast-ATG_AP_2_CIS_up",
154
+ "toxcast-ATG_AR_TRANS_dn",
155
+ "toxcast-ATG_AR_TRANS_up",
156
+ "toxcast-ATG_Ahr_CIS_dn",
157
+ "toxcast-ATG_Ahr_CIS_up",
158
+ "toxcast-ATG_BRE_CIS_dn",
159
+ "toxcast-ATG_BRE_CIS_up",
160
+ "toxcast-ATG_CAR_TRANS_dn",
161
+ "toxcast-ATG_CAR_TRANS_up",
162
+ "toxcast-ATG_CMV_CIS_dn",
163
+ "toxcast-ATG_CMV_CIS_up",
164
+ "toxcast-ATG_CRE_CIS_dn",
165
+ "toxcast-ATG_CRE_CIS_up",
166
+ "toxcast-ATG_C_EBP_CIS_dn",
167
+ "toxcast-ATG_C_EBP_CIS_up",
168
+ "toxcast-ATG_DR4_LXR_CIS_dn",
169
+ "toxcast-ATG_DR4_LXR_CIS_up",
170
+ "toxcast-ATG_DR5_CIS_dn",
171
+ "toxcast-ATG_DR5_CIS_up",
172
+ "toxcast-ATG_E2F_CIS_dn",
173
+ "toxcast-ATG_E2F_CIS_up",
174
+ "toxcast-ATG_EGR_CIS_up",
175
+ "toxcast-ATG_ERE_CIS_dn",
176
+ "toxcast-ATG_ERE_CIS_up",
177
+ "toxcast-ATG_ERRa_TRANS_dn",
178
+ "toxcast-ATG_ERRg_TRANS_dn",
179
+ "toxcast-ATG_ERRg_TRANS_up",
180
+ "toxcast-ATG_ERa_TRANS_up",
181
+ "toxcast-ATG_E_Box_CIS_dn",
182
+ "toxcast-ATG_E_Box_CIS_up",
183
+ "toxcast-ATG_Ets_CIS_dn",
184
+ "toxcast-ATG_Ets_CIS_up",
185
+ "toxcast-ATG_FXR_TRANS_up",
186
+ "toxcast-ATG_FoxA2_CIS_dn",
187
+ "toxcast-ATG_FoxA2_CIS_up",
188
+ "toxcast-ATG_FoxO_CIS_dn",
189
+ "toxcast-ATG_FoxO_CIS_up",
190
+ "toxcast-ATG_GAL4_TRANS_dn",
191
+ "toxcast-ATG_GATA_CIS_dn",
192
+ "toxcast-ATG_GATA_CIS_up",
193
+ "toxcast-ATG_GLI_CIS_dn",
194
+ "toxcast-ATG_GLI_CIS_up",
195
+ "toxcast-ATG_GRE_CIS_dn",
196
+ "toxcast-ATG_GRE_CIS_up",
197
+ "toxcast-ATG_GR_TRANS_dn",
198
+ "toxcast-ATG_GR_TRANS_up",
199
+ "toxcast-ATG_HIF1a_CIS_dn",
200
+ "toxcast-ATG_HIF1a_CIS_up",
201
+ "toxcast-ATG_HNF4a_TRANS_dn",
202
+ "toxcast-ATG_HNF4a_TRANS_up",
203
+ "toxcast-ATG_HNF6_CIS_dn",
204
+ "toxcast-ATG_HNF6_CIS_up",
205
+ "toxcast-ATG_HSE_CIS_dn",
206
+ "toxcast-ATG_HSE_CIS_up",
207
+ "toxcast-ATG_IR1_CIS_dn",
208
+ "toxcast-ATG_IR1_CIS_up",
209
+ "toxcast-ATG_ISRE_CIS_dn",
210
+ "toxcast-ATG_ISRE_CIS_up",
211
+ "toxcast-ATG_LXRa_TRANS_dn",
212
+ "toxcast-ATG_LXRa_TRANS_up",
213
+ "toxcast-ATG_LXRb_TRANS_dn",
214
+ "toxcast-ATG_LXRb_TRANS_up",
215
+ "toxcast-ATG_MRE_CIS_up",
216
+ "toxcast-ATG_M_06_TRANS_up",
217
+ "toxcast-ATG_M_19_CIS_dn",
218
+ "toxcast-ATG_M_19_TRANS_dn",
219
+ "toxcast-ATG_M_19_TRANS_up",
220
+ "toxcast-ATG_M_32_CIS_dn",
221
+ "toxcast-ATG_M_32_CIS_up",
222
+ "toxcast-ATG_M_32_TRANS_dn",
223
+ "toxcast-ATG_M_32_TRANS_up",
224
+ "toxcast-ATG_M_61_TRANS_up",
225
+ "toxcast-ATG_Myb_CIS_dn",
226
+ "toxcast-ATG_Myb_CIS_up",
227
+ "toxcast-ATG_Myc_CIS_dn",
228
+ "toxcast-ATG_Myc_CIS_up",
229
+ "toxcast-ATG_NFI_CIS_dn",
230
+ "toxcast-ATG_NFI_CIS_up",
231
+ "toxcast-ATG_NF_kB_CIS_dn",
232
+ "toxcast-ATG_NF_kB_CIS_up",
233
+ "toxcast-ATG_NRF1_CIS_dn",
234
+ "toxcast-ATG_NRF1_CIS_up",
235
+ "toxcast-ATG_NRF2_ARE_CIS_dn",
236
+ "toxcast-ATG_NRF2_ARE_CIS_up",
237
+ "toxcast-ATG_NURR1_TRANS_dn",
238
+ "toxcast-ATG_NURR1_TRANS_up",
239
+ "toxcast-ATG_Oct_MLP_CIS_dn",
240
+ "toxcast-ATG_Oct_MLP_CIS_up",
241
+ "toxcast-ATG_PBREM_CIS_dn",
242
+ "toxcast-ATG_PBREM_CIS_up",
243
+ "toxcast-ATG_PPARa_TRANS_dn",
244
+ "toxcast-ATG_PPARa_TRANS_up",
245
+ "toxcast-ATG_PPARd_TRANS_up",
246
+ "toxcast-ATG_PPARg_TRANS_up",
247
+ "toxcast-ATG_PPRE_CIS_dn",
248
+ "toxcast-ATG_PPRE_CIS_up",
249
+ "toxcast-ATG_PXRE_CIS_dn",
250
+ "toxcast-ATG_PXRE_CIS_up",
251
+ "toxcast-ATG_PXR_TRANS_dn",
252
+ "toxcast-ATG_PXR_TRANS_up",
253
+ "toxcast-ATG_Pax6_CIS_up",
254
+ "toxcast-ATG_RARa_TRANS_dn",
255
+ "toxcast-ATG_RARa_TRANS_up",
256
+ "toxcast-ATG_RARb_TRANS_dn",
257
+ "toxcast-ATG_RARb_TRANS_up",
258
+ "toxcast-ATG_RARg_TRANS_dn",
259
+ "toxcast-ATG_RARg_TRANS_up",
260
+ "toxcast-ATG_RORE_CIS_dn",
261
+ "toxcast-ATG_RORE_CIS_up",
262
+ "toxcast-ATG_RORb_TRANS_dn",
263
+ "toxcast-ATG_RORg_TRANS_dn",
264
+ "toxcast-ATG_RORg_TRANS_up",
265
+ "toxcast-ATG_RXRa_TRANS_dn",
266
+ "toxcast-ATG_RXRa_TRANS_up",
267
+ "toxcast-ATG_RXRb_TRANS_dn",
268
+ "toxcast-ATG_RXRb_TRANS_up",
269
+ "toxcast-ATG_SREBP_CIS_dn",
270
+ "toxcast-ATG_SREBP_CIS_up",
271
+ "toxcast-ATG_STAT3_CIS_dn",
272
+ "toxcast-ATG_STAT3_CIS_up",
273
+ "toxcast-ATG_Sox_CIS_dn",
274
+ "toxcast-ATG_Sox_CIS_up",
275
+ "toxcast-ATG_Sp1_CIS_dn",
276
+ "toxcast-ATG_Sp1_CIS_up",
277
+ "toxcast-ATG_TAL_CIS_dn",
278
+ "toxcast-ATG_TAL_CIS_up",
279
+ "toxcast-ATG_TA_CIS_dn",
280
+ "toxcast-ATG_TA_CIS_up",
281
+ "toxcast-ATG_TCF_b_cat_CIS_dn",
282
+ "toxcast-ATG_TCF_b_cat_CIS_up",
283
+ "toxcast-ATG_TGFb_CIS_dn",
284
+ "toxcast-ATG_TGFb_CIS_up",
285
+ "toxcast-ATG_THRa1_TRANS_dn",
286
+ "toxcast-ATG_THRa1_TRANS_up",
287
+ "toxcast-ATG_VDRE_CIS_dn",
288
+ "toxcast-ATG_VDRE_CIS_up",
289
+ "toxcast-ATG_VDR_TRANS_dn",
290
+ "toxcast-ATG_VDR_TRANS_up",
291
+ "toxcast-ATG_XTT_Cytotoxicity_up",
292
+ "toxcast-ATG_Xbp1_CIS_dn",
293
+ "toxcast-ATG_Xbp1_CIS_up",
294
+ "toxcast-ATG_p53_CIS_dn",
295
+ "toxcast-ATG_p53_CIS_up",
296
+ "toxcast-BSK_3C_Eselectin_down",
297
+ "toxcast-BSK_3C_HLADR_down",
298
+ "toxcast-BSK_3C_ICAM1_down",
299
+ "toxcast-BSK_3C_IL8_down",
300
+ "toxcast-BSK_3C_MCP1_down",
301
+ "toxcast-BSK_3C_MIG_down",
302
+ "toxcast-BSK_3C_Proliferation_down",
303
+ "toxcast-BSK_3C_SRB_down",
304
+ "toxcast-BSK_3C_Thrombomodulin_down",
305
+ "toxcast-BSK_3C_Thrombomodulin_up",
306
+ "toxcast-BSK_3C_TissueFactor_down",
307
+ "toxcast-BSK_3C_TissueFactor_up",
308
+ "toxcast-BSK_3C_VCAM1_down",
309
+ "toxcast-BSK_3C_Vis_down",
310
+ "toxcast-BSK_3C_uPAR_down",
311
+ "toxcast-BSK_4H_Eotaxin3_down",
312
+ "toxcast-BSK_4H_MCP1_down",
313
+ "toxcast-BSK_4H_Pselectin_down",
314
+ "toxcast-BSK_4H_Pselectin_up",
315
+ "toxcast-BSK_4H_SRB_down",
316
+ "toxcast-BSK_4H_VCAM1_down",
317
+ "toxcast-BSK_4H_VEGFRII_down",
318
+ "toxcast-BSK_4H_uPAR_down",
319
+ "toxcast-BSK_4H_uPAR_up",
320
+ "toxcast-BSK_BE3C_HLADR_down",
321
+ "toxcast-BSK_BE3C_IL1a_down",
322
+ "toxcast-BSK_BE3C_IP10_down",
323
+ "toxcast-BSK_BE3C_MIG_down",
324
+ "toxcast-BSK_BE3C_MMP1_down",
325
+ "toxcast-BSK_BE3C_MMP1_up",
326
+ "toxcast-BSK_BE3C_PAI1_down",
327
+ "toxcast-BSK_BE3C_SRB_down",
328
+ "toxcast-BSK_BE3C_TGFb1_down",
329
+ "toxcast-BSK_BE3C_tPA_down",
330
+ "toxcast-BSK_BE3C_uPAR_down",
331
+ "toxcast-BSK_BE3C_uPAR_up",
332
+ "toxcast-BSK_BE3C_uPA_down",
333
+ "toxcast-BSK_CASM3C_HLADR_down",
334
+ "toxcast-BSK_CASM3C_IL6_down",
335
+ "toxcast-BSK_CASM3C_IL6_up",
336
+ "toxcast-BSK_CASM3C_IL8_down",
337
+ "toxcast-BSK_CASM3C_LDLR_down",
338
+ "toxcast-BSK_CASM3C_LDLR_up",
339
+ "toxcast-BSK_CASM3C_MCP1_down",
340
+ "toxcast-BSK_CASM3C_MCP1_up",
341
+ "toxcast-BSK_CASM3C_MCSF_down",
342
+ "toxcast-BSK_CASM3C_MCSF_up",
343
+ "toxcast-BSK_CASM3C_MIG_down",
344
+ "toxcast-BSK_CASM3C_Proliferation_down",
345
+ "toxcast-BSK_CASM3C_Proliferation_up",
346
+ "toxcast-BSK_CASM3C_SAA_down",
347
+ "toxcast-BSK_CASM3C_SAA_up",
348
+ "toxcast-BSK_CASM3C_SRB_down",
349
+ "toxcast-BSK_CASM3C_Thrombomodulin_down",
350
+ "toxcast-BSK_CASM3C_Thrombomodulin_up",
351
+ "toxcast-BSK_CASM3C_TissueFactor_down",
352
+ "toxcast-BSK_CASM3C_VCAM1_down",
353
+ "toxcast-BSK_CASM3C_VCAM1_up",
354
+ "toxcast-BSK_CASM3C_uPAR_down",
355
+ "toxcast-BSK_CASM3C_uPAR_up",
356
+ "toxcast-BSK_KF3CT_ICAM1_down",
357
+ "toxcast-BSK_KF3CT_IL1a_down",
358
+ "toxcast-BSK_KF3CT_IP10_down",
359
+ "toxcast-BSK_KF3CT_IP10_up",
360
+ "toxcast-BSK_KF3CT_MCP1_down",
361
+ "toxcast-BSK_KF3CT_MCP1_up",
362
+ "toxcast-BSK_KF3CT_MMP9_down",
363
+ "toxcast-BSK_KF3CT_SRB_down",
364
+ "toxcast-BSK_KF3CT_TGFb1_down",
365
+ "toxcast-BSK_KF3CT_TIMP2_down",
366
+ "toxcast-BSK_KF3CT_uPA_down",
367
+ "toxcast-BSK_LPS_CD40_down",
368
+ "toxcast-BSK_LPS_Eselectin_down",
369
+ "toxcast-BSK_LPS_Eselectin_up",
370
+ "toxcast-BSK_LPS_IL1a_down",
371
+ "toxcast-BSK_LPS_IL1a_up",
372
+ "toxcast-BSK_LPS_IL8_down",
373
+ "toxcast-BSK_LPS_IL8_up",
374
+ "toxcast-BSK_LPS_MCP1_down",
375
+ "toxcast-BSK_LPS_MCSF_down",
376
+ "toxcast-BSK_LPS_PGE2_down",
377
+ "toxcast-BSK_LPS_PGE2_up",
378
+ "toxcast-BSK_LPS_SRB_down",
379
+ "toxcast-BSK_LPS_TNFa_down",
380
+ "toxcast-BSK_LPS_TNFa_up",
381
+ "toxcast-BSK_LPS_TissueFactor_down",
382
+ "toxcast-BSK_LPS_TissueFactor_up",
383
+ "toxcast-BSK_LPS_VCAM1_down",
384
+ "toxcast-BSK_SAg_CD38_down",
385
+ "toxcast-BSK_SAg_CD40_down",
386
+ "toxcast-BSK_SAg_CD69_down",
387
+ "toxcast-BSK_SAg_Eselectin_down",
388
+ "toxcast-BSK_SAg_Eselectin_up",
389
+ "toxcast-BSK_SAg_IL8_down",
390
+ "toxcast-BSK_SAg_IL8_up",
391
+ "toxcast-BSK_SAg_MCP1_down",
392
+ "toxcast-BSK_SAg_MIG_down",
393
+ "toxcast-BSK_SAg_PBMCCytotoxicity_down",
394
+ "toxcast-BSK_SAg_PBMCCytotoxicity_up",
395
+ "toxcast-BSK_SAg_Proliferation_down",
396
+ "toxcast-BSK_SAg_SRB_down",
397
+ "toxcast-BSK_hDFCGF_CollagenIII_down",
398
+ "toxcast-BSK_hDFCGF_EGFR_down",
399
+ "toxcast-BSK_hDFCGF_EGFR_up",
400
+ "toxcast-BSK_hDFCGF_IL8_down",
401
+ "toxcast-BSK_hDFCGF_IP10_down",
402
+ "toxcast-BSK_hDFCGF_MCSF_down",
403
+ "toxcast-BSK_hDFCGF_MIG_down",
404
+ "toxcast-BSK_hDFCGF_MMP1_down",
405
+ "toxcast-BSK_hDFCGF_MMP1_up",
406
+ "toxcast-BSK_hDFCGF_PAI1_down",
407
+ "toxcast-BSK_hDFCGF_Proliferation_down",
408
+ "toxcast-BSK_hDFCGF_SRB_down",
409
+ "toxcast-BSK_hDFCGF_TIMP1_down",
410
+ "toxcast-BSK_hDFCGF_VCAM1_down",
411
+ "toxcast-CEETOX_H295R_11DCORT_dn",
412
+ "toxcast-CEETOX_H295R_ANDR_dn",
413
+ "toxcast-CEETOX_H295R_CORTISOL_dn",
414
+ "toxcast-CEETOX_H295R_DOC_dn",
415
+ "toxcast-CEETOX_H295R_DOC_up",
416
+ "toxcast-CEETOX_H295R_ESTRADIOL_dn",
417
+ "toxcast-CEETOX_H295R_ESTRADIOL_up",
418
+ "toxcast-CEETOX_H295R_ESTRONE_dn",
419
+ "toxcast-CEETOX_H295R_ESTRONE_up",
420
+ "toxcast-CEETOX_H295R_OHPREG_up",
421
+ "toxcast-CEETOX_H295R_OHPROG_dn",
422
+ "toxcast-CEETOX_H295R_OHPROG_up",
423
+ "toxcast-CEETOX_H295R_PROG_up",
424
+ "toxcast-CEETOX_H295R_TESTO_dn",
425
+ "toxcast-CLD_ABCB1_48hr",
426
+ "toxcast-CLD_ABCG2_48hr",
427
+ "toxcast-CLD_CYP1A1_24hr",
428
+ "toxcast-CLD_CYP1A1_48hr",
429
+ "toxcast-CLD_CYP1A1_6hr",
430
+ "toxcast-CLD_CYP1A2_24hr",
431
+ "toxcast-CLD_CYP1A2_48hr",
432
+ "toxcast-CLD_CYP1A2_6hr",
433
+ "toxcast-CLD_CYP2B6_24hr",
434
+ "toxcast-CLD_CYP2B6_48hr",
435
+ "toxcast-CLD_CYP2B6_6hr",
436
+ "toxcast-CLD_CYP3A4_24hr",
437
+ "toxcast-CLD_CYP3A4_48hr",
438
+ "toxcast-CLD_CYP3A4_6hr",
439
+ "toxcast-CLD_GSTA2_48hr",
440
+ "toxcast-CLD_SULT2A_24hr",
441
+ "toxcast-CLD_SULT2A_48hr",
442
+ "toxcast-CLD_UGT1A1_24hr",
443
+ "toxcast-CLD_UGT1A1_48hr",
444
+ "toxcast-NCCT_HEK293T_CellTiterGLO",
445
+ "toxcast-NCCT_QuantiLum_inhib_2_dn",
446
+ "toxcast-NCCT_QuantiLum_inhib_dn",
447
+ "toxcast-NCCT_TPO_AUR_dn",
448
+ "toxcast-NCCT_TPO_GUA_dn",
449
+ "toxcast-NHEERL_ZF_144hpf_TERATOSCORE_up",
450
+ "toxcast-NVS_ADME_hCYP19A1",
451
+ "toxcast-NVS_ADME_hCYP1A1",
452
+ "toxcast-NVS_ADME_hCYP1A2",
453
+ "toxcast-NVS_ADME_hCYP2A6",
454
+ "toxcast-NVS_ADME_hCYP2B6",
455
+ "toxcast-NVS_ADME_hCYP2C19",
456
+ "toxcast-NVS_ADME_hCYP2C9",
457
+ "toxcast-NVS_ADME_hCYP2D6",
458
+ "toxcast-NVS_ADME_hCYP3A4",
459
+ "toxcast-NVS_ADME_hCYP4F12",
460
+ "toxcast-NVS_ADME_rCYP2C12",
461
+ "toxcast-NVS_ENZ_hAChE",
462
+ "toxcast-NVS_ENZ_hAMPKa1",
463
+ "toxcast-NVS_ENZ_hAurA",
464
+ "toxcast-NVS_ENZ_hBACE",
465
+ "toxcast-NVS_ENZ_hCASP5",
466
+ "toxcast-NVS_ENZ_hCK1D",
467
+ "toxcast-NVS_ENZ_hDUSP3",
468
+ "toxcast-NVS_ENZ_hES",
469
+ "toxcast-NVS_ENZ_hElastase",
470
+ "toxcast-NVS_ENZ_hFGFR1",
471
+ "toxcast-NVS_ENZ_hGSK3b",
472
+ "toxcast-NVS_ENZ_hMMP1",
473
+ "toxcast-NVS_ENZ_hMMP13",
474
+ "toxcast-NVS_ENZ_hMMP2",
475
+ "toxcast-NVS_ENZ_hMMP3",
476
+ "toxcast-NVS_ENZ_hMMP7",
477
+ "toxcast-NVS_ENZ_hMMP9",
478
+ "toxcast-NVS_ENZ_hPDE10",
479
+ "toxcast-NVS_ENZ_hPDE4A1",
480
+ "toxcast-NVS_ENZ_hPDE5",
481
+ "toxcast-NVS_ENZ_hPI3Ka",
482
+ "toxcast-NVS_ENZ_hPTEN",
483
+ "toxcast-NVS_ENZ_hPTPN11",
484
+ "toxcast-NVS_ENZ_hPTPN12",
485
+ "toxcast-NVS_ENZ_hPTPN13",
486
+ "toxcast-NVS_ENZ_hPTPN9",
487
+ "toxcast-NVS_ENZ_hPTPRC",
488
+ "toxcast-NVS_ENZ_hSIRT1",
489
+ "toxcast-NVS_ENZ_hSIRT2",
490
+ "toxcast-NVS_ENZ_hTrkA",
491
+ "toxcast-NVS_ENZ_hVEGFR2",
492
+ "toxcast-NVS_ENZ_oCOX1",
493
+ "toxcast-NVS_ENZ_oCOX2",
494
+ "toxcast-NVS_ENZ_rAChE",
495
+ "toxcast-NVS_ENZ_rCNOS",
496
+ "toxcast-NVS_ENZ_rMAOAC",
497
+ "toxcast-NVS_ENZ_rMAOAP",
498
+ "toxcast-NVS_ENZ_rMAOBC",
499
+ "toxcast-NVS_ENZ_rMAOBP",
500
+ "toxcast-NVS_ENZ_rabI2C",
501
+ "toxcast-NVS_GPCR_bAdoR_NonSelective",
502
+ "toxcast-NVS_GPCR_bDR_NonSelective",
503
+ "toxcast-NVS_GPCR_g5HT4",
504
+ "toxcast-NVS_GPCR_gH2",
505
+ "toxcast-NVS_GPCR_gLTB4",
506
+ "toxcast-NVS_GPCR_gLTD4",
507
+ "toxcast-NVS_GPCR_gMPeripheral_NonSelective",
508
+ "toxcast-NVS_GPCR_gOpiateK",
509
+ "toxcast-NVS_GPCR_h5HT2A",
510
+ "toxcast-NVS_GPCR_h5HT5A",
511
+ "toxcast-NVS_GPCR_h5HT6",
512
+ "toxcast-NVS_GPCR_h5HT7",
513
+ "toxcast-NVS_GPCR_hAT1",
514
+ "toxcast-NVS_GPCR_hAdoRA1",
515
+ "toxcast-NVS_GPCR_hAdoRA2a",
516
+ "toxcast-NVS_GPCR_hAdra2A",
517
+ "toxcast-NVS_GPCR_hAdra2C",
518
+ "toxcast-NVS_GPCR_hAdrb1",
519
+ "toxcast-NVS_GPCR_hAdrb2",
520
+ "toxcast-NVS_GPCR_hAdrb3",
521
+ "toxcast-NVS_GPCR_hDRD1",
522
+ "toxcast-NVS_GPCR_hDRD2s",
523
+ "toxcast-NVS_GPCR_hDRD4.4",
524
+ "toxcast-NVS_GPCR_hH1",
525
+ "toxcast-NVS_GPCR_hLTB4_BLT1",
526
+ "toxcast-NVS_GPCR_hM1",
527
+ "toxcast-NVS_GPCR_hM2",
528
+ "toxcast-NVS_GPCR_hM3",
529
+ "toxcast-NVS_GPCR_hM4",
530
+ "toxcast-NVS_GPCR_hNK2",
531
+ "toxcast-NVS_GPCR_hOpiate_D1",
532
+ "toxcast-NVS_GPCR_hOpiate_mu",
533
+ "toxcast-NVS_GPCR_hTXA2",
534
+ "toxcast-NVS_GPCR_p5HT2C",
535
+ "toxcast-NVS_GPCR_r5HT1_NonSelective",
536
+ "toxcast-NVS_GPCR_r5HT_NonSelective",
537
+ "toxcast-NVS_GPCR_rAdra1B",
538
+ "toxcast-NVS_GPCR_rAdra1_NonSelective",
539
+ "toxcast-NVS_GPCR_rAdra2_NonSelective",
540
+ "toxcast-NVS_GPCR_rAdrb_NonSelective",
541
+ "toxcast-NVS_GPCR_rNK1",
542
+ "toxcast-NVS_GPCR_rNK3",
543
+ "toxcast-NVS_GPCR_rOpiate_NonSelective",
544
+ "toxcast-NVS_GPCR_rOpiate_NonSelectiveNa",
545
+ "toxcast-NVS_GPCR_rSST",
546
+ "toxcast-NVS_GPCR_rTRH",
547
+ "toxcast-NVS_GPCR_rV1",
548
+ "toxcast-NVS_GPCR_rabPAF",
549
+ "toxcast-NVS_GPCR_rmAdra2B",
550
+ "toxcast-NVS_IC_hKhERGCh",
551
+ "toxcast-NVS_IC_rCaBTZCHL",
552
+ "toxcast-NVS_IC_rCaDHPRCh_L",
553
+ "toxcast-NVS_IC_rNaCh_site2",
554
+ "toxcast-NVS_LGIC_bGABARa1",
555
+ "toxcast-NVS_LGIC_h5HT3",
556
+ "toxcast-NVS_LGIC_hNNR_NBungSens",
557
+ "toxcast-NVS_LGIC_rGABAR_NonSelective",
558
+ "toxcast-NVS_LGIC_rNNR_BungSens",
559
+ "toxcast-NVS_MP_hPBR",
560
+ "toxcast-NVS_MP_rPBR",
561
+ "toxcast-NVS_NR_bER",
562
+ "toxcast-NVS_NR_bPR",
563
+ "toxcast-NVS_NR_cAR",
564
+ "toxcast-NVS_NR_hAR",
565
+ "toxcast-NVS_NR_hCAR_Antagonist",
566
+ "toxcast-NVS_NR_hER",
567
+ "toxcast-NVS_NR_hFXR_Agonist",
568
+ "toxcast-NVS_NR_hFXR_Antagonist",
569
+ "toxcast-NVS_NR_hGR",
570
+ "toxcast-NVS_NR_hPPARa",
571
+ "toxcast-NVS_NR_hPPARg",
572
+ "toxcast-NVS_NR_hPR",
573
+ "toxcast-NVS_NR_hPXR",
574
+ "toxcast-NVS_NR_hRAR_Antagonist",
575
+ "toxcast-NVS_NR_hRARa_Agonist",
576
+ "toxcast-NVS_NR_hTRa_Antagonist",
577
+ "toxcast-NVS_NR_mERa",
578
+ "toxcast-NVS_NR_rAR",
579
+ "toxcast-NVS_NR_rMR",
580
+ "toxcast-NVS_OR_gSIGMA_NonSelective",
581
+ "toxcast-NVS_TR_gDAT",
582
+ "toxcast-NVS_TR_hAdoT",
583
+ "toxcast-NVS_TR_hDAT",
584
+ "toxcast-NVS_TR_hNET",
585
+ "toxcast-NVS_TR_hSERT",
586
+ "toxcast-NVS_TR_rNET",
587
+ "toxcast-NVS_TR_rSERT",
588
+ "toxcast-NVS_TR_rVMAT2",
589
+ "toxcast-OT_AR_ARELUC_AG_1440",
590
+ "toxcast-OT_AR_ARSRC1_0480",
591
+ "toxcast-OT_AR_ARSRC1_0960",
592
+ "toxcast-OT_ER_ERaERa_0480",
593
+ "toxcast-OT_ER_ERaERa_1440",
594
+ "toxcast-OT_ER_ERaERb_0480",
595
+ "toxcast-OT_ER_ERaERb_1440",
596
+ "toxcast-OT_ER_ERbERb_0480",
597
+ "toxcast-OT_ER_ERbERb_1440",
598
+ "toxcast-OT_ERa_EREGFP_0120",
599
+ "toxcast-OT_ERa_EREGFP_0480",
600
+ "toxcast-OT_FXR_FXRSRC1_0480",
601
+ "toxcast-OT_FXR_FXRSRC1_1440",
602
+ "toxcast-OT_NURR1_NURR1RXRa_0480",
603
+ "toxcast-OT_NURR1_NURR1RXRa_1440",
604
+ "toxcast-TOX21_ARE_BLA_Agonist_ch1",
605
+ "toxcast-TOX21_ARE_BLA_Agonist_ch2",
606
+ "toxcast-TOX21_ARE_BLA_agonist_ratio",
607
+ "toxcast-TOX21_ARE_BLA_agonist_viability",
608
+ "toxcast-TOX21_AR_BLA_Agonist_ch1",
609
+ "toxcast-TOX21_AR_BLA_Agonist_ch2",
610
+ "toxcast-TOX21_AR_BLA_Agonist_ratio",
611
+ "toxcast-TOX21_AR_BLA_Antagonist_ch1",
612
+ "toxcast-TOX21_AR_BLA_Antagonist_ch2",
613
+ "toxcast-TOX21_AR_BLA_Antagonist_ratio",
614
+ "toxcast-TOX21_AR_BLA_Antagonist_viability",
615
+ "toxcast-TOX21_AR_LUC_MDAKB2_Agonist",
616
+ "toxcast-TOX21_AR_LUC_MDAKB2_Antagonist",
617
+ "toxcast-TOX21_AR_LUC_MDAKB2_Antagonist2",
618
+ "toxcast-TOX21_AhR_LUC_Agonist",
619
+ "toxcast-TOX21_Aromatase_Inhibition",
620
+ "toxcast-TOX21_AutoFluor_HEK293_Cell_blue",
621
+ "toxcast-TOX21_AutoFluor_HEK293_Media_blue",
622
+ "toxcast-TOX21_AutoFluor_HEPG2_Cell_blue",
623
+ "toxcast-TOX21_AutoFluor_HEPG2_Cell_green",
624
+ "toxcast-TOX21_AutoFluor_HEPG2_Media_blue",
625
+ "toxcast-TOX21_AutoFluor_HEPG2_Media_green",
626
+ "toxcast-TOX21_ELG1_LUC_Agonist",
627
+ "toxcast-TOX21_ERa_BLA_Agonist_ch1",
628
+ "toxcast-TOX21_ERa_BLA_Agonist_ch2",
629
+ "toxcast-TOX21_ERa_BLA_Agonist_ratio",
630
+ "toxcast-TOX21_ERa_BLA_Antagonist_ch1",
631
+ "toxcast-TOX21_ERa_BLA_Antagonist_ch2",
632
+ "toxcast-TOX21_ERa_BLA_Antagonist_ratio",
633
+ "toxcast-TOX21_ERa_BLA_Antagonist_viability",
634
+ "toxcast-TOX21_ERa_LUC_BG1_Agonist",
635
+ "toxcast-TOX21_ERa_LUC_BG1_Antagonist",
636
+ "toxcast-TOX21_ESRE_BLA_ch1",
637
+ "toxcast-TOX21_ESRE_BLA_ch2",
638
+ "toxcast-TOX21_ESRE_BLA_ratio",
639
+ "toxcast-TOX21_ESRE_BLA_viability",
640
+ "toxcast-TOX21_FXR_BLA_Antagonist_ch1",
641
+ "toxcast-TOX21_FXR_BLA_Antagonist_ch2",
642
+ "toxcast-TOX21_FXR_BLA_agonist_ch2",
643
+ "toxcast-TOX21_FXR_BLA_agonist_ratio",
644
+ "toxcast-TOX21_FXR_BLA_antagonist_ratio",
645
+ "toxcast-TOX21_FXR_BLA_antagonist_viability",
646
+ "toxcast-TOX21_GR_BLA_Agonist_ch1",
647
+ "toxcast-TOX21_GR_BLA_Agonist_ch2",
648
+ "toxcast-TOX21_GR_BLA_Agonist_ratio",
649
+ "toxcast-TOX21_GR_BLA_Antagonist_ch2",
650
+ "toxcast-TOX21_GR_BLA_Antagonist_ratio",
651
+ "toxcast-TOX21_GR_BLA_Antagonist_viability",
652
+ "toxcast-TOX21_HSE_BLA_agonist_ch1",
653
+ "toxcast-TOX21_HSE_BLA_agonist_ch2",
654
+ "toxcast-TOX21_HSE_BLA_agonist_ratio",
655
+ "toxcast-TOX21_HSE_BLA_agonist_viability",
656
+ "toxcast-TOX21_MMP_ratio_down",
657
+ "toxcast-TOX21_MMP_ratio_up",
658
+ "toxcast-TOX21_MMP_viability",
659
+ "toxcast-TOX21_NFkB_BLA_agonist_ch1",
660
+ "toxcast-TOX21_NFkB_BLA_agonist_ch2",
661
+ "toxcast-TOX21_NFkB_BLA_agonist_ratio",
662
+ "toxcast-TOX21_NFkB_BLA_agonist_viability",
663
+ "toxcast-TOX21_PPARd_BLA_Agonist_viability",
664
+ "toxcast-TOX21_PPARd_BLA_Antagonist_ch1",
665
+ "toxcast-TOX21_PPARd_BLA_agonist_ch1",
666
+ "toxcast-TOX21_PPARd_BLA_agonist_ch2",
667
+ "toxcast-TOX21_PPARd_BLA_agonist_ratio",
668
+ "toxcast-TOX21_PPARd_BLA_antagonist_ratio",
669
+ "toxcast-TOX21_PPARd_BLA_antagonist_viability",
670
+ "toxcast-TOX21_PPARg_BLA_Agonist_ch1",
671
+ "toxcast-TOX21_PPARg_BLA_Agonist_ch2",
672
+ "toxcast-TOX21_PPARg_BLA_Agonist_ratio",
673
+ "toxcast-TOX21_PPARg_BLA_Antagonist_ch1",
674
+ "toxcast-TOX21_PPARg_BLA_antagonist_ratio",
675
+ "toxcast-TOX21_PPARg_BLA_antagonist_viability",
676
+ "toxcast-TOX21_TR_LUC_GH3_Agonist",
677
+ "toxcast-TOX21_TR_LUC_GH3_Antagonist",
678
+ "toxcast-TOX21_VDR_BLA_Agonist_viability",
679
+ "toxcast-TOX21_VDR_BLA_Antagonist_ch1",
680
+ "toxcast-TOX21_VDR_BLA_agonist_ch2",
681
+ "toxcast-TOX21_VDR_BLA_agonist_ratio",
682
+ "toxcast-TOX21_VDR_BLA_antagonist_ratio",
683
+ "toxcast-TOX21_VDR_BLA_antagonist_viability",
684
+ "toxcast-TOX21_p53_BLA_p1_ch1",
685
+ "toxcast-TOX21_p53_BLA_p1_ch2",
686
+ "toxcast-TOX21_p53_BLA_p1_ratio",
687
+ "toxcast-TOX21_p53_BLA_p1_viability",
688
+ "toxcast-TOX21_p53_BLA_p2_ch1",
689
+ "toxcast-TOX21_p53_BLA_p2_ch2",
690
+ "toxcast-TOX21_p53_BLA_p2_ratio",
691
+ "toxcast-TOX21_p53_BLA_p2_viability",
692
+ "toxcast-TOX21_p53_BLA_p3_ch1",
693
+ "toxcast-TOX21_p53_BLA_p3_ch2",
694
+ "toxcast-TOX21_p53_BLA_p3_ratio",
695
+ "toxcast-TOX21_p53_BLA_p3_viability",
696
+ "toxcast-TOX21_p53_BLA_p4_ch1",
697
+ "toxcast-TOX21_p53_BLA_p4_ch2",
698
+ "toxcast-TOX21_p53_BLA_p4_ratio",
699
+ "toxcast-TOX21_p53_BLA_p4_viability",
700
+ "toxcast-TOX21_p53_BLA_p5_ch1",
701
+ "toxcast-TOX21_p53_BLA_p5_ch2",
702
+ "toxcast-TOX21_p53_BLA_p5_ratio",
703
+ "toxcast-TOX21_p53_BLA_p5_viability",
704
+ "toxcast-Tanguay_ZF_120hpf_AXIS_up",
705
+ "toxcast-Tanguay_ZF_120hpf_ActivityScore",
706
+ "toxcast-Tanguay_ZF_120hpf_BRAI_up",
707
+ "toxcast-Tanguay_ZF_120hpf_CFIN_up",
708
+ "toxcast-Tanguay_ZF_120hpf_CIRC_up",
709
+ "toxcast-Tanguay_ZF_120hpf_EYE_up",
710
+ "toxcast-Tanguay_ZF_120hpf_JAW_up",
711
+ "toxcast-Tanguay_ZF_120hpf_MORT_up",
712
+ "toxcast-Tanguay_ZF_120hpf_OTIC_up",
713
+ "toxcast-Tanguay_ZF_120hpf_PE_up",
714
+ "toxcast-Tanguay_ZF_120hpf_PFIN_up",
715
+ "toxcast-Tanguay_ZF_120hpf_PIG_up",
716
+ "toxcast-Tanguay_ZF_120hpf_SNOU_up",
717
+ "toxcast-Tanguay_ZF_120hpf_SOMI_up",
718
+ "toxcast-Tanguay_ZF_120hpf_SWIM_up",
719
+ "toxcast-Tanguay_ZF_120hpf_TRUN_up",
720
+ "toxcast-Tanguay_ZF_120hpf_TR_up",
721
+ "toxcast-Tanguay_ZF_120hpf_YSE_up",
722
+ "clintox",
723
+ "herg",
724
+ "herg_central-hERG_at_1uM",
725
+ "herg_central-hERG_at_10uM",
726
+ "herg_central-hERG_inhib",
727
+ "dili",
728
+ "skin_reaction",
729
+ "ames",
730
+ "carcinogens_lagunin",
731
+ "ld50_zhu"
732
+ ],
733
+ "general physical properties": [
734
+ "solubility",
735
+ "Thermal melting change",
736
+ "pKa"
737
+ ]
738
+ },
739
+ "BoolOrSeq": {
740
+ "T1-2": "seq",
741
+ "F": "bool",
742
+ "permeability": "seq",
743
+ "Stability": "seq",
744
+ "Drug metabolism": "seq",
745
+ "Cp": "seq",
746
+ "Cmax": "seq",
747
+ "FC": "seq",
748
+ "CL": "seq",
749
+ "Tmax": "bool",
750
+ "LD50": "seq",
751
+ "EC50": "seq",
752
+ "Drug uptake": "seq",
753
+ "Thermal melting change": "seq",
754
+ "solubility": "bool",
755
+ "LogD": "bool",
756
+ "LogP": "bool",
757
+ "Fu": "bool",
758
+ "pKa": "bool",
759
+ "Kd": "seq",
760
+ "Vdss": "bool",
761
+ "AUC": "seq",
762
+ "Ki": "seq",
763
+ "IC50": "seq",
764
+ "Papp": "seq",
765
+ "LC50": "seq",
766
+ "lipophilicity_astrazeneca": "seq",
767
+ "solubility_aqsoldb": "seq",
768
+ "hydrationfreeenergy_freesolv": "seq",
769
+ "caco2_wang": "seq",
770
+ "pampa_ncats": "bool",
771
+ "hia_hou": "bool",
772
+ "pgp_broccatelli": "bool",
773
+ "bioavailability_ma": "bool",
774
+ "vdss_lombardo": "seq",
775
+ "cyp2c19_veith": "bool",
776
+ "cyp2d6_veith": "bool",
777
+ "cyp3a4_veith": "bool",
778
+ "cyp1a2_veith": "bool",
779
+ "cyp2c9_veith": "bool",
780
+ "cyp2c9_substrate_carbonmangels": "bool",
781
+ "cyp2d6_substrate_carbonmangels": "bool",
782
+ "cyp3a4_substrate_carbonmangels": "bool",
783
+ "bbb_martins": "bool",
784
+ "ppbr_az": "seq",
785
+ "half_life_obach": "seq",
786
+ "clearance_hepatocyte_az": "seq",
787
+ "clearance_microsome_az": "seq",
788
+ "tox21-NR-AR": "bool",
789
+ "tox21-NR-AR-LBD": "bool",
790
+ "tox21-NR-AhR": "bool",
791
+ "tox21-NR-Aromatase": "bool",
792
+ "tox21-NR-ER": "bool",
793
+ "tox21-NR-ER-LBD": "bool",
794
+ "tox21-NR-PPAR-gamma": "bool",
795
+ "tox21-SR-ARE": "bool",
796
+ "tox21-SR-ATAD5": "bool",
797
+ "tox21-SR-HSE": "bool",
798
+ "tox21-SR-MMP": "bool",
799
+ "tox21-SR-p53": "bool",
800
+ "toxcast-ACEA_T47D_80hr_Negative": "bool",
801
+ "toxcast-ACEA_T47D_80hr_Positive": "bool",
802
+ "toxcast-APR_HepG2_CellCycleArrest_24h_dn": "bool",
803
+ "toxcast-APR_HepG2_CellCycleArrest_24h_up": "bool",
804
+ "toxcast-APR_HepG2_CellCycleArrest_72h_dn": "bool",
805
+ "toxcast-APR_HepG2_CellLoss_24h_dn": "bool",
806
+ "toxcast-APR_HepG2_CellLoss_72h_dn": "bool",
807
+ "toxcast-APR_HepG2_MicrotubuleCSK_24h_dn": "bool",
808
+ "toxcast-APR_HepG2_MicrotubuleCSK_24h_up": "bool",
809
+ "toxcast-APR_HepG2_MicrotubuleCSK_72h_dn": "bool",
810
+ "toxcast-APR_HepG2_MicrotubuleCSK_72h_up": "bool",
811
+ "toxcast-APR_HepG2_MitoMass_24h_dn": "bool",
812
+ "toxcast-APR_HepG2_MitoMass_24h_up": "bool",
813
+ "toxcast-APR_HepG2_MitoMass_72h_dn": "bool",
814
+ "toxcast-APR_HepG2_MitoMass_72h_up": "bool",
815
+ "toxcast-APR_HepG2_MitoMembPot_1h_dn": "bool",
816
+ "toxcast-APR_HepG2_MitoMembPot_24h_dn": "bool",
817
+ "toxcast-APR_HepG2_MitoMembPot_72h_dn": "bool",
818
+ "toxcast-APR_HepG2_MitoticArrest_24h_up": "bool",
819
+ "toxcast-APR_HepG2_MitoticArrest_72h_up": "bool",
820
+ "toxcast-APR_HepG2_NuclearSize_24h_dn": "bool",
821
+ "toxcast-APR_HepG2_NuclearSize_72h_dn": "bool",
822
+ "toxcast-APR_HepG2_NuclearSize_72h_up": "bool",
823
+ "toxcast-APR_HepG2_OxidativeStress_24h_up": "bool",
824
+ "toxcast-APR_HepG2_OxidativeStress_72h_up": "bool",
825
+ "toxcast-APR_HepG2_StressKinase_1h_up": "bool",
826
+ "toxcast-APR_HepG2_StressKinase_24h_up": "bool",
827
+ "toxcast-APR_HepG2_StressKinase_72h_up": "bool",
828
+ "toxcast-APR_HepG2_p53Act_24h_up": "bool",
829
+ "toxcast-APR_HepG2_p53Act_72h_up": "bool",
830
+ "toxcast-APR_Hepat_Apoptosis_24hr_up": "bool",
831
+ "toxcast-APR_Hepat_Apoptosis_48hr_up": "bool",
832
+ "toxcast-APR_Hepat_CellLoss_24hr_dn": "bool",
833
+ "toxcast-APR_Hepat_CellLoss_48hr_dn": "bool",
834
+ "toxcast-APR_Hepat_DNADamage_24hr_up": "bool",
835
+ "toxcast-APR_Hepat_DNADamage_48hr_up": "bool",
836
+ "toxcast-APR_Hepat_DNATexture_24hr_up": "bool",
837
+ "toxcast-APR_Hepat_DNATexture_48hr_up": "bool",
838
+ "toxcast-APR_Hepat_MitoFxnI_1hr_dn": "bool",
839
+ "toxcast-APR_Hepat_MitoFxnI_24hr_dn": "bool",
840
+ "toxcast-APR_Hepat_MitoFxnI_48hr_dn": "bool",
841
+ "toxcast-APR_Hepat_NuclearSize_24hr_dn": "bool",
842
+ "toxcast-APR_Hepat_NuclearSize_48hr_dn": "bool",
843
+ "toxcast-APR_Hepat_Steatosis_24hr_up": "bool",
844
+ "toxcast-APR_Hepat_Steatosis_48hr_up": "bool",
845
+ "toxcast-ATG_AP_1_CIS_dn": "bool",
846
+ "toxcast-ATG_AP_1_CIS_up": "bool",
847
+ "toxcast-ATG_AP_2_CIS_dn": "bool",
848
+ "toxcast-ATG_AP_2_CIS_up": "bool",
849
+ "toxcast-ATG_AR_TRANS_dn": "bool",
850
+ "toxcast-ATG_AR_TRANS_up": "bool",
851
+ "toxcast-ATG_Ahr_CIS_dn": "bool",
852
+ "toxcast-ATG_Ahr_CIS_up": "bool",
853
+ "toxcast-ATG_BRE_CIS_dn": "bool",
854
+ "toxcast-ATG_BRE_CIS_up": "bool",
855
+ "toxcast-ATG_CAR_TRANS_dn": "bool",
856
+ "toxcast-ATG_CAR_TRANS_up": "bool",
857
+ "toxcast-ATG_CMV_CIS_dn": "bool",
858
+ "toxcast-ATG_CMV_CIS_up": "bool",
859
+ "toxcast-ATG_CRE_CIS_dn": "bool",
860
+ "toxcast-ATG_CRE_CIS_up": "bool",
861
+ "toxcast-ATG_C_EBP_CIS_dn": "bool",
862
+ "toxcast-ATG_C_EBP_CIS_up": "bool",
863
+ "toxcast-ATG_DR4_LXR_CIS_dn": "bool",
864
+ "toxcast-ATG_DR4_LXR_CIS_up": "bool",
865
+ "toxcast-ATG_DR5_CIS_dn": "bool",
866
+ "toxcast-ATG_DR5_CIS_up": "bool",
867
+ "toxcast-ATG_E2F_CIS_dn": "bool",
868
+ "toxcast-ATG_E2F_CIS_up": "bool",
869
+ "toxcast-ATG_EGR_CIS_up": "bool",
870
+ "toxcast-ATG_ERE_CIS_dn": "bool",
871
+ "toxcast-ATG_ERE_CIS_up": "bool",
872
+ "toxcast-ATG_ERRa_TRANS_dn": "bool",
873
+ "toxcast-ATG_ERRg_TRANS_dn": "bool",
874
+ "toxcast-ATG_ERRg_TRANS_up": "bool",
875
+ "toxcast-ATG_ERa_TRANS_up": "bool",
876
+ "toxcast-ATG_E_Box_CIS_dn": "bool",
877
+ "toxcast-ATG_E_Box_CIS_up": "bool",
878
+ "toxcast-ATG_Ets_CIS_dn": "bool",
879
+ "toxcast-ATG_Ets_CIS_up": "bool",
880
+ "toxcast-ATG_FXR_TRANS_up": "bool",
881
+ "toxcast-ATG_FoxA2_CIS_dn": "bool",
882
+ "toxcast-ATG_FoxA2_CIS_up": "bool",
883
+ "toxcast-ATG_FoxO_CIS_dn": "bool",
884
+ "toxcast-ATG_FoxO_CIS_up": "bool",
885
+ "toxcast-ATG_GAL4_TRANS_dn": "bool",
886
+ "toxcast-ATG_GATA_CIS_dn": "bool",
887
+ "toxcast-ATG_GATA_CIS_up": "bool",
888
+ "toxcast-ATG_GLI_CIS_dn": "bool",
889
+ "toxcast-ATG_GLI_CIS_up": "bool",
890
+ "toxcast-ATG_GRE_CIS_dn": "bool",
891
+ "toxcast-ATG_GRE_CIS_up": "bool",
892
+ "toxcast-ATG_GR_TRANS_dn": "bool",
893
+ "toxcast-ATG_GR_TRANS_up": "bool",
894
+ "toxcast-ATG_HIF1a_CIS_dn": "bool",
895
+ "toxcast-ATG_HIF1a_CIS_up": "bool",
896
+ "toxcast-ATG_HNF4a_TRANS_dn": "bool",
897
+ "toxcast-ATG_HNF4a_TRANS_up": "bool",
898
+ "toxcast-ATG_HNF6_CIS_dn": "bool",
899
+ "toxcast-ATG_HNF6_CIS_up": "bool",
900
+ "toxcast-ATG_HSE_CIS_dn": "bool",
901
+ "toxcast-ATG_HSE_CIS_up": "bool",
902
+ "toxcast-ATG_IR1_CIS_dn": "bool",
903
+ "toxcast-ATG_IR1_CIS_up": "bool",
904
+ "toxcast-ATG_ISRE_CIS_dn": "bool",
905
+ "toxcast-ATG_ISRE_CIS_up": "bool",
906
+ "toxcast-ATG_LXRa_TRANS_dn": "bool",
907
+ "toxcast-ATG_LXRa_TRANS_up": "bool",
908
+ "toxcast-ATG_LXRb_TRANS_dn": "bool",
909
+ "toxcast-ATG_LXRb_TRANS_up": "bool",
910
+ "toxcast-ATG_MRE_CIS_up": "bool",
911
+ "toxcast-ATG_M_06_TRANS_up": "bool",
912
+ "toxcast-ATG_M_19_CIS_dn": "bool",
913
+ "toxcast-ATG_M_19_TRANS_dn": "bool",
914
+ "toxcast-ATG_M_19_TRANS_up": "bool",
915
+ "toxcast-ATG_M_32_CIS_dn": "bool",
916
+ "toxcast-ATG_M_32_CIS_up": "bool",
917
+ "toxcast-ATG_M_32_TRANS_dn": "bool",
918
+ "toxcast-ATG_M_32_TRANS_up": "bool",
919
+ "toxcast-ATG_M_61_TRANS_up": "bool",
920
+ "toxcast-ATG_Myb_CIS_dn": "bool",
921
+ "toxcast-ATG_Myb_CIS_up": "bool",
922
+ "toxcast-ATG_Myc_CIS_dn": "bool",
923
+ "toxcast-ATG_Myc_CIS_up": "bool",
924
+ "toxcast-ATG_NFI_CIS_dn": "bool",
925
+ "toxcast-ATG_NFI_CIS_up": "bool",
926
+ "toxcast-ATG_NF_kB_CIS_dn": "bool",
927
+ "toxcast-ATG_NF_kB_CIS_up": "bool",
928
+ "toxcast-ATG_NRF1_CIS_dn": "bool",
929
+ "toxcast-ATG_NRF1_CIS_up": "bool",
930
+ "toxcast-ATG_NRF2_ARE_CIS_dn": "bool",
931
+ "toxcast-ATG_NRF2_ARE_CIS_up": "bool",
932
+ "toxcast-ATG_NURR1_TRANS_dn": "bool",
933
+ "toxcast-ATG_NURR1_TRANS_up": "bool",
934
+ "toxcast-ATG_Oct_MLP_CIS_dn": "bool",
935
+ "toxcast-ATG_Oct_MLP_CIS_up": "bool",
936
+ "toxcast-ATG_PBREM_CIS_dn": "bool",
937
+ "toxcast-ATG_PBREM_CIS_up": "bool",
938
+ "toxcast-ATG_PPARa_TRANS_dn": "bool",
939
+ "toxcast-ATG_PPARa_TRANS_up": "bool",
940
+ "toxcast-ATG_PPARd_TRANS_up": "bool",
941
+ "toxcast-ATG_PPARg_TRANS_up": "bool",
942
+ "toxcast-ATG_PPRE_CIS_dn": "bool",
943
+ "toxcast-ATG_PPRE_CIS_up": "bool",
944
+ "toxcast-ATG_PXRE_CIS_dn": "bool",
945
+ "toxcast-ATG_PXRE_CIS_up": "bool",
946
+ "toxcast-ATG_PXR_TRANS_dn": "bool",
947
+ "toxcast-ATG_PXR_TRANS_up": "bool",
948
+ "toxcast-ATG_Pax6_CIS_up": "bool",
949
+ "toxcast-ATG_RARa_TRANS_dn": "bool",
950
+ "toxcast-ATG_RARa_TRANS_up": "bool",
951
+ "toxcast-ATG_RARb_TRANS_dn": "bool",
952
+ "toxcast-ATG_RARb_TRANS_up": "bool",
953
+ "toxcast-ATG_RARg_TRANS_dn": "bool",
954
+ "toxcast-ATG_RARg_TRANS_up": "bool",
955
+ "toxcast-ATG_RORE_CIS_dn": "bool",
956
+ "toxcast-ATG_RORE_CIS_up": "bool",
957
+ "toxcast-ATG_RORb_TRANS_dn": "bool",
958
+ "toxcast-ATG_RORg_TRANS_dn": "bool",
959
+ "toxcast-ATG_RORg_TRANS_up": "bool",
960
+ "toxcast-ATG_RXRa_TRANS_dn": "bool",
961
+ "toxcast-ATG_RXRa_TRANS_up": "bool",
962
+ "toxcast-ATG_RXRb_TRANS_dn": "bool",
963
+ "toxcast-ATG_RXRb_TRANS_up": "bool",
964
+ "toxcast-ATG_SREBP_CIS_dn": "bool",
965
+ "toxcast-ATG_SREBP_CIS_up": "bool",
966
+ "toxcast-ATG_STAT3_CIS_dn": "bool",
967
+ "toxcast-ATG_STAT3_CIS_up": "bool",
968
+ "toxcast-ATG_Sox_CIS_dn": "bool",
969
+ "toxcast-ATG_Sox_CIS_up": "bool",
970
+ "toxcast-ATG_Sp1_CIS_dn": "bool",
971
+ "toxcast-ATG_Sp1_CIS_up": "bool",
972
+ "toxcast-ATG_TAL_CIS_dn": "bool",
973
+ "toxcast-ATG_TAL_CIS_up": "bool",
974
+ "toxcast-ATG_TA_CIS_dn": "bool",
975
+ "toxcast-ATG_TA_CIS_up": "bool",
976
+ "toxcast-ATG_TCF_b_cat_CIS_dn": "bool",
977
+ "toxcast-ATG_TCF_b_cat_CIS_up": "bool",
978
+ "toxcast-ATG_TGFb_CIS_dn": "bool",
979
+ "toxcast-ATG_TGFb_CIS_up": "bool",
980
+ "toxcast-ATG_THRa1_TRANS_dn": "bool",
981
+ "toxcast-ATG_THRa1_TRANS_up": "bool",
982
+ "toxcast-ATG_VDRE_CIS_dn": "bool",
983
+ "toxcast-ATG_VDRE_CIS_up": "bool",
984
+ "toxcast-ATG_VDR_TRANS_dn": "bool",
985
+ "toxcast-ATG_VDR_TRANS_up": "bool",
986
+ "toxcast-ATG_XTT_Cytotoxicity_up": "bool",
987
+ "toxcast-ATG_Xbp1_CIS_dn": "bool",
988
+ "toxcast-ATG_Xbp1_CIS_up": "bool",
989
+ "toxcast-ATG_p53_CIS_dn": "bool",
990
+ "toxcast-ATG_p53_CIS_up": "bool",
991
+ "toxcast-BSK_3C_Eselectin_down": "bool",
992
+ "toxcast-BSK_3C_HLADR_down": "bool",
993
+ "toxcast-BSK_3C_ICAM1_down": "bool",
994
+ "toxcast-BSK_3C_IL8_down": "bool",
995
+ "toxcast-BSK_3C_MCP1_down": "bool",
996
+ "toxcast-BSK_3C_MIG_down": "bool",
997
+ "toxcast-BSK_3C_Proliferation_down": "bool",
998
+ "toxcast-BSK_3C_SRB_down": "bool",
999
+ "toxcast-BSK_3C_Thrombomodulin_down": "bool",
1000
+ "toxcast-BSK_3C_Thrombomodulin_up": "bool",
1001
+ "toxcast-BSK_3C_TissueFactor_down": "bool",
1002
+ "toxcast-BSK_3C_TissueFactor_up": "bool",
1003
+ "toxcast-BSK_3C_VCAM1_down": "bool",
1004
+ "toxcast-BSK_3C_Vis_down": "bool",
1005
+ "toxcast-BSK_3C_uPAR_down": "bool",
1006
+ "toxcast-BSK_4H_Eotaxin3_down": "bool",
1007
+ "toxcast-BSK_4H_MCP1_down": "bool",
1008
+ "toxcast-BSK_4H_Pselectin_down": "bool",
1009
+ "toxcast-BSK_4H_Pselectin_up": "bool",
1010
+ "toxcast-BSK_4H_SRB_down": "bool",
1011
+ "toxcast-BSK_4H_VCAM1_down": "bool",
1012
+ "toxcast-BSK_4H_VEGFRII_down": "bool",
1013
+ "toxcast-BSK_4H_uPAR_down": "bool",
1014
+ "toxcast-BSK_4H_uPAR_up": "bool",
1015
+ "toxcast-BSK_BE3C_HLADR_down": "bool",
1016
+ "toxcast-BSK_BE3C_IL1a_down": "bool",
1017
+ "toxcast-BSK_BE3C_IP10_down": "bool",
1018
+ "toxcast-BSK_BE3C_MIG_down": "bool",
1019
+ "toxcast-BSK_BE3C_MMP1_down": "bool",
1020
+ "toxcast-BSK_BE3C_MMP1_up": "bool",
1021
+ "toxcast-BSK_BE3C_PAI1_down": "bool",
1022
+ "toxcast-BSK_BE3C_SRB_down": "bool",
1023
+ "toxcast-BSK_BE3C_TGFb1_down": "bool",
1024
+ "toxcast-BSK_BE3C_tPA_down": "bool",
1025
+ "toxcast-BSK_BE3C_uPAR_down": "bool",
1026
+ "toxcast-BSK_BE3C_uPAR_up": "bool",
1027
+ "toxcast-BSK_BE3C_uPA_down": "bool",
1028
+ "toxcast-BSK_CASM3C_HLADR_down": "bool",
1029
+ "toxcast-BSK_CASM3C_IL6_down": "bool",
1030
+ "toxcast-BSK_CASM3C_IL6_up": "bool",
1031
+ "toxcast-BSK_CASM3C_IL8_down": "bool",
1032
+ "toxcast-BSK_CASM3C_LDLR_down": "bool",
1033
+ "toxcast-BSK_CASM3C_LDLR_up": "bool",
1034
+ "toxcast-BSK_CASM3C_MCP1_down": "bool",
1035
+ "toxcast-BSK_CASM3C_MCP1_up": "bool",
1036
+ "toxcast-BSK_CASM3C_MCSF_down": "bool",
1037
+ "toxcast-BSK_CASM3C_MCSF_up": "bool",
1038
+ "toxcast-BSK_CASM3C_MIG_down": "bool",
1039
+ "toxcast-BSK_CASM3C_Proliferation_down": "bool",
1040
+ "toxcast-BSK_CASM3C_Proliferation_up": "bool",
1041
+ "toxcast-BSK_CASM3C_SAA_down": "bool",
1042
+ "toxcast-BSK_CASM3C_SAA_up": "bool",
1043
+ "toxcast-BSK_CASM3C_SRB_down": "bool",
1044
+ "toxcast-BSK_CASM3C_Thrombomodulin_down": "bool",
1045
+ "toxcast-BSK_CASM3C_Thrombomodulin_up": "bool",
1046
+ "toxcast-BSK_CASM3C_TissueFactor_down": "bool",
1047
+ "toxcast-BSK_CASM3C_VCAM1_down": "bool",
1048
+ "toxcast-BSK_CASM3C_VCAM1_up": "bool",
1049
+ "toxcast-BSK_CASM3C_uPAR_down": "bool",
1050
+ "toxcast-BSK_CASM3C_uPAR_up": "bool",
1051
+ "toxcast-BSK_KF3CT_ICAM1_down": "bool",
1052
+ "toxcast-BSK_KF3CT_IL1a_down": "bool",
1053
+ "toxcast-BSK_KF3CT_IP10_down": "bool",
1054
+ "toxcast-BSK_KF3CT_IP10_up": "bool",
1055
+ "toxcast-BSK_KF3CT_MCP1_down": "bool",
1056
+ "toxcast-BSK_KF3CT_MCP1_up": "bool",
1057
+ "toxcast-BSK_KF3CT_MMP9_down": "bool",
1058
+ "toxcast-BSK_KF3CT_SRB_down": "bool",
1059
+ "toxcast-BSK_KF3CT_TGFb1_down": "bool",
1060
+ "toxcast-BSK_KF3CT_TIMP2_down": "bool",
1061
+ "toxcast-BSK_KF3CT_uPA_down": "bool",
1062
+ "toxcast-BSK_LPS_CD40_down": "bool",
1063
+ "toxcast-BSK_LPS_Eselectin_down": "bool",
1064
+ "toxcast-BSK_LPS_Eselectin_up": "bool",
1065
+ "toxcast-BSK_LPS_IL1a_down": "bool",
1066
+ "toxcast-BSK_LPS_IL1a_up": "bool",
1067
+ "toxcast-BSK_LPS_IL8_down": "bool",
1068
+ "toxcast-BSK_LPS_IL8_up": "bool",
1069
+ "toxcast-BSK_LPS_MCP1_down": "bool",
1070
+ "toxcast-BSK_LPS_MCSF_down": "bool",
1071
+ "toxcast-BSK_LPS_PGE2_down": "bool",
1072
+ "toxcast-BSK_LPS_PGE2_up": "bool",
1073
+ "toxcast-BSK_LPS_SRB_down": "bool",
1074
+ "toxcast-BSK_LPS_TNFa_down": "bool",
1075
+ "toxcast-BSK_LPS_TNFa_up": "bool",
1076
+ "toxcast-BSK_LPS_TissueFactor_down": "bool",
1077
+ "toxcast-BSK_LPS_TissueFactor_up": "bool",
1078
+ "toxcast-BSK_LPS_VCAM1_down": "bool",
1079
+ "toxcast-BSK_SAg_CD38_down": "bool",
1080
+ "toxcast-BSK_SAg_CD40_down": "bool",
1081
+ "toxcast-BSK_SAg_CD69_down": "bool",
1082
+ "toxcast-BSK_SAg_Eselectin_down": "bool",
1083
+ "toxcast-BSK_SAg_Eselectin_up": "bool",
1084
+ "toxcast-BSK_SAg_IL8_down": "bool",
1085
+ "toxcast-BSK_SAg_IL8_up": "bool",
1086
+ "toxcast-BSK_SAg_MCP1_down": "bool",
1087
+ "toxcast-BSK_SAg_MIG_down": "bool",
1088
+ "toxcast-BSK_SAg_PBMCCytotoxicity_down": "bool",
1089
+ "toxcast-BSK_SAg_PBMCCytotoxicity_up": "bool",
1090
+ "toxcast-BSK_SAg_Proliferation_down": "bool",
1091
+ "toxcast-BSK_SAg_SRB_down": "bool",
1092
+ "toxcast-BSK_hDFCGF_CollagenIII_down": "bool",
1093
+ "toxcast-BSK_hDFCGF_EGFR_down": "bool",
1094
+ "toxcast-BSK_hDFCGF_EGFR_up": "bool",
1095
+ "toxcast-BSK_hDFCGF_IL8_down": "bool",
1096
+ "toxcast-BSK_hDFCGF_IP10_down": "bool",
1097
+ "toxcast-BSK_hDFCGF_MCSF_down": "bool",
1098
+ "toxcast-BSK_hDFCGF_MIG_down": "bool",
1099
+ "toxcast-BSK_hDFCGF_MMP1_down": "bool",
1100
+ "toxcast-BSK_hDFCGF_MMP1_up": "bool",
1101
+ "toxcast-BSK_hDFCGF_PAI1_down": "bool",
1102
+ "toxcast-BSK_hDFCGF_Proliferation_down": "bool",
1103
+ "toxcast-BSK_hDFCGF_SRB_down": "bool",
1104
+ "toxcast-BSK_hDFCGF_TIMP1_down": "bool",
1105
+ "toxcast-BSK_hDFCGF_VCAM1_down": "bool",
1106
+ "toxcast-CEETOX_H295R_11DCORT_dn": "bool",
1107
+ "toxcast-CEETOX_H295R_ANDR_dn": "bool",
1108
+ "toxcast-CEETOX_H295R_CORTISOL_dn": "bool",
1109
+ "toxcast-CEETOX_H295R_DOC_dn": "bool",
1110
+ "toxcast-CEETOX_H295R_DOC_up": "bool",
1111
+ "toxcast-CEETOX_H295R_ESTRADIOL_dn": "bool",
1112
+ "toxcast-CEETOX_H295R_ESTRADIOL_up": "bool",
1113
+ "toxcast-CEETOX_H295R_ESTRONE_dn": "bool",
1114
+ "toxcast-CEETOX_H295R_ESTRONE_up": "bool",
1115
+ "toxcast-CEETOX_H295R_OHPREG_up": "bool",
1116
+ "toxcast-CEETOX_H295R_OHPROG_dn": "bool",
1117
+ "toxcast-CEETOX_H295R_OHPROG_up": "bool",
1118
+ "toxcast-CEETOX_H295R_PROG_up": "bool",
1119
+ "toxcast-CEETOX_H295R_TESTO_dn": "bool",
1120
+ "toxcast-CLD_ABCB1_48hr": "bool",
1121
+ "toxcast-CLD_ABCG2_48hr": "bool",
1122
+ "toxcast-CLD_CYP1A1_24hr": "bool",
1123
+ "toxcast-CLD_CYP1A1_48hr": "bool",
1124
+ "toxcast-CLD_CYP1A1_6hr": "bool",
1125
+ "toxcast-CLD_CYP1A2_24hr": "bool",
1126
+ "toxcast-CLD_CYP1A2_48hr": "bool",
1127
+ "toxcast-CLD_CYP1A2_6hr": "bool",
1128
+ "toxcast-CLD_CYP2B6_24hr": "bool",
1129
+ "toxcast-CLD_CYP2B6_48hr": "bool",
1130
+ "toxcast-CLD_CYP2B6_6hr": "bool",
1131
+ "toxcast-CLD_CYP3A4_24hr": "bool",
1132
+ "toxcast-CLD_CYP3A4_48hr": "bool",
1133
+ "toxcast-CLD_CYP3A4_6hr": "bool",
1134
+ "toxcast-CLD_GSTA2_48hr": "bool",
1135
+ "toxcast-CLD_SULT2A_24hr": "bool",
1136
+ "toxcast-CLD_SULT2A_48hr": "bool",
1137
+ "toxcast-CLD_UGT1A1_24hr": "bool",
1138
+ "toxcast-CLD_UGT1A1_48hr": "bool",
1139
+ "toxcast-NCCT_HEK293T_CellTiterGLO": "bool",
1140
+ "toxcast-NCCT_QuantiLum_inhib_2_dn": "bool",
1141
+ "toxcast-NCCT_QuantiLum_inhib_dn": "bool",
1142
+ "toxcast-NCCT_TPO_AUR_dn": "bool",
1143
+ "toxcast-NCCT_TPO_GUA_dn": "bool",
1144
+ "toxcast-NHEERL_ZF_144hpf_TERATOSCORE_up": "bool",
1145
+ "toxcast-NVS_ADME_hCYP19A1": "bool",
1146
+ "toxcast-NVS_ADME_hCYP1A1": "bool",
1147
+ "toxcast-NVS_ADME_hCYP1A2": "bool",
1148
+ "toxcast-NVS_ADME_hCYP2A6": "bool",
1149
+ "toxcast-NVS_ADME_hCYP2B6": "bool",
1150
+ "toxcast-NVS_ADME_hCYP2C19": "bool",
1151
+ "toxcast-NVS_ADME_hCYP2C9": "bool",
1152
+ "toxcast-NVS_ADME_hCYP2D6": "bool",
1153
+ "toxcast-NVS_ADME_hCYP3A4": "bool",
1154
+ "toxcast-NVS_ADME_hCYP4F12": "bool",
1155
+ "toxcast-NVS_ADME_rCYP2C12": "bool",
1156
+ "toxcast-NVS_ENZ_hAChE": "bool",
1157
+ "toxcast-NVS_ENZ_hAMPKa1": "bool",
1158
+ "toxcast-NVS_ENZ_hAurA": "bool",
1159
+ "toxcast-NVS_ENZ_hBACE": "bool",
1160
+ "toxcast-NVS_ENZ_hCASP5": "bool",
1161
+ "toxcast-NVS_ENZ_hCK1D": "bool",
1162
+ "toxcast-NVS_ENZ_hDUSP3": "bool",
1163
+ "toxcast-NVS_ENZ_hES": "bool",
1164
+ "toxcast-NVS_ENZ_hElastase": "bool",
1165
+ "toxcast-NVS_ENZ_hFGFR1": "bool",
1166
+ "toxcast-NVS_ENZ_hGSK3b": "bool",
1167
+ "toxcast-NVS_ENZ_hMMP1": "bool",
1168
+ "toxcast-NVS_ENZ_hMMP13": "bool",
1169
+ "toxcast-NVS_ENZ_hMMP2": "bool",
1170
+ "toxcast-NVS_ENZ_hMMP3": "bool",
1171
+ "toxcast-NVS_ENZ_hMMP7": "bool",
1172
+ "toxcast-NVS_ENZ_hMMP9": "bool",
1173
+ "toxcast-NVS_ENZ_hPDE10": "bool",
1174
+ "toxcast-NVS_ENZ_hPDE4A1": "bool",
1175
+ "toxcast-NVS_ENZ_hPDE5": "bool",
1176
+ "toxcast-NVS_ENZ_hPI3Ka": "bool",
1177
+ "toxcast-NVS_ENZ_hPTEN": "bool",
1178
+ "toxcast-NVS_ENZ_hPTPN11": "bool",
1179
+ "toxcast-NVS_ENZ_hPTPN12": "bool",
1180
+ "toxcast-NVS_ENZ_hPTPN13": "bool",
1181
+ "toxcast-NVS_ENZ_hPTPN9": "bool",
1182
+ "toxcast-NVS_ENZ_hPTPRC": "bool",
1183
+ "toxcast-NVS_ENZ_hSIRT1": "bool",
1184
+ "toxcast-NVS_ENZ_hSIRT2": "bool",
1185
+ "toxcast-NVS_ENZ_hTrkA": "bool",
1186
+ "toxcast-NVS_ENZ_hVEGFR2": "bool",
1187
+ "toxcast-NVS_ENZ_oCOX1": "bool",
1188
+ "toxcast-NVS_ENZ_oCOX2": "bool",
1189
+ "toxcast-NVS_ENZ_rAChE": "bool",
1190
+ "toxcast-NVS_ENZ_rCNOS": "bool",
1191
+ "toxcast-NVS_ENZ_rMAOAC": "bool",
1192
+ "toxcast-NVS_ENZ_rMAOAP": "bool",
1193
+ "toxcast-NVS_ENZ_rMAOBC": "bool",
1194
+ "toxcast-NVS_ENZ_rMAOBP": "bool",
1195
+ "toxcast-NVS_ENZ_rabI2C": "bool",
1196
+ "toxcast-NVS_GPCR_bAdoR_NonSelective": "bool",
1197
+ "toxcast-NVS_GPCR_bDR_NonSelective": "bool",
1198
+ "toxcast-NVS_GPCR_g5HT4": "bool",
1199
+ "toxcast-NVS_GPCR_gH2": "bool",
1200
+ "toxcast-NVS_GPCR_gLTB4": "bool",
1201
+ "toxcast-NVS_GPCR_gLTD4": "bool",
1202
+ "toxcast-NVS_GPCR_gMPeripheral_NonSelective": "bool",
1203
+ "toxcast-NVS_GPCR_gOpiateK": "bool",
1204
+ "toxcast-NVS_GPCR_h5HT2A": "bool",
1205
+ "toxcast-NVS_GPCR_h5HT5A": "bool",
1206
+ "toxcast-NVS_GPCR_h5HT6": "bool",
1207
+ "toxcast-NVS_GPCR_h5HT7": "bool",
1208
+ "toxcast-NVS_GPCR_hAT1": "bool",
1209
+ "toxcast-NVS_GPCR_hAdoRA1": "bool",
1210
+ "toxcast-NVS_GPCR_hAdoRA2a": "bool",
1211
+ "toxcast-NVS_GPCR_hAdra2A": "bool",
1212
+ "toxcast-NVS_GPCR_hAdra2C": "bool",
1213
+ "toxcast-NVS_GPCR_hAdrb1": "bool",
1214
+ "toxcast-NVS_GPCR_hAdrb2": "bool",
1215
+ "toxcast-NVS_GPCR_hAdrb3": "bool",
1216
+ "toxcast-NVS_GPCR_hDRD1": "bool",
1217
+ "toxcast-NVS_GPCR_hDRD2s": "bool",
1218
+ "toxcast-NVS_GPCR_hDRD4.4": "bool",
1219
+ "toxcast-NVS_GPCR_hH1": "bool",
1220
+ "toxcast-NVS_GPCR_hLTB4_BLT1": "bool",
1221
+ "toxcast-NVS_GPCR_hM1": "bool",
1222
+ "toxcast-NVS_GPCR_hM2": "bool",
1223
+ "toxcast-NVS_GPCR_hM3": "bool",
1224
+ "toxcast-NVS_GPCR_hM4": "bool",
1225
+ "toxcast-NVS_GPCR_hNK2": "bool",
1226
+ "toxcast-NVS_GPCR_hOpiate_D1": "bool",
1227
+ "toxcast-NVS_GPCR_hOpiate_mu": "bool",
1228
+ "toxcast-NVS_GPCR_hTXA2": "bool",
1229
+ "toxcast-NVS_GPCR_p5HT2C": "bool",
1230
+ "toxcast-NVS_GPCR_r5HT1_NonSelective": "bool",
1231
+ "toxcast-NVS_GPCR_r5HT_NonSelective": "bool",
1232
+ "toxcast-NVS_GPCR_rAdra1B": "bool",
1233
+ "toxcast-NVS_GPCR_rAdra1_NonSelective": "bool",
1234
+ "toxcast-NVS_GPCR_rAdra2_NonSelective": "bool",
1235
+ "toxcast-NVS_GPCR_rAdrb_NonSelective": "bool",
1236
+ "toxcast-NVS_GPCR_rNK1": "bool",
1237
+ "toxcast-NVS_GPCR_rNK3": "bool",
1238
+ "toxcast-NVS_GPCR_rOpiate_NonSelective": "bool",
1239
+ "toxcast-NVS_GPCR_rOpiate_NonSelectiveNa": "bool",
1240
+ "toxcast-NVS_GPCR_rSST": "bool",
1241
+ "toxcast-NVS_GPCR_rTRH": "bool",
1242
+ "toxcast-NVS_GPCR_rV1": "bool",
1243
+ "toxcast-NVS_GPCR_rabPAF": "bool",
1244
+ "toxcast-NVS_GPCR_rmAdra2B": "bool",
1245
+ "toxcast-NVS_IC_hKhERGCh": "bool",
1246
+ "toxcast-NVS_IC_rCaBTZCHL": "bool",
1247
+ "toxcast-NVS_IC_rCaDHPRCh_L": "bool",
1248
+ "toxcast-NVS_IC_rNaCh_site2": "bool",
1249
+ "toxcast-NVS_LGIC_bGABARa1": "bool",
1250
+ "toxcast-NVS_LGIC_h5HT3": "bool",
1251
+ "toxcast-NVS_LGIC_hNNR_NBungSens": "bool",
1252
+ "toxcast-NVS_LGIC_rGABAR_NonSelective": "bool",
1253
+ "toxcast-NVS_LGIC_rNNR_BungSens": "bool",
1254
+ "toxcast-NVS_MP_hPBR": "bool",
1255
+ "toxcast-NVS_MP_rPBR": "bool",
1256
+ "toxcast-NVS_NR_bER": "bool",
1257
+ "toxcast-NVS_NR_bPR": "bool",
1258
+ "toxcast-NVS_NR_cAR": "bool",
1259
+ "toxcast-NVS_NR_hAR": "bool",
1260
+ "toxcast-NVS_NR_hCAR_Antagonist": "bool",
1261
+ "toxcast-NVS_NR_hER": "bool",
1262
+ "toxcast-NVS_NR_hFXR_Agonist": "bool",
1263
+ "toxcast-NVS_NR_hFXR_Antagonist": "bool",
1264
+ "toxcast-NVS_NR_hGR": "bool",
1265
+ "toxcast-NVS_NR_hPPARa": "bool",
1266
+ "toxcast-NVS_NR_hPPARg": "bool",
1267
+ "toxcast-NVS_NR_hPR": "bool",
1268
+ "toxcast-NVS_NR_hPXR": "bool",
1269
+ "toxcast-NVS_NR_hRAR_Antagonist": "bool",
1270
+ "toxcast-NVS_NR_hRARa_Agonist": "bool",
1271
+ "toxcast-NVS_NR_hTRa_Antagonist": "bool",
1272
+ "toxcast-NVS_NR_mERa": "bool",
1273
+ "toxcast-NVS_NR_rAR": "bool",
1274
+ "toxcast-NVS_NR_rMR": "bool",
1275
+ "toxcast-NVS_OR_gSIGMA_NonSelective": "bool",
1276
+ "toxcast-NVS_TR_gDAT": "bool",
1277
+ "toxcast-NVS_TR_hAdoT": "bool",
1278
+ "toxcast-NVS_TR_hDAT": "bool",
1279
+ "toxcast-NVS_TR_hNET": "bool",
1280
+ "toxcast-NVS_TR_hSERT": "bool",
1281
+ "toxcast-NVS_TR_rNET": "bool",
1282
+ "toxcast-NVS_TR_rSERT": "bool",
1283
+ "toxcast-NVS_TR_rVMAT2": "bool",
1284
+ "toxcast-OT_AR_ARELUC_AG_1440": "bool",
1285
+ "toxcast-OT_AR_ARSRC1_0480": "bool",
1286
+ "toxcast-OT_AR_ARSRC1_0960": "bool",
1287
+ "toxcast-OT_ER_ERaERa_0480": "bool",
1288
+ "toxcast-OT_ER_ERaERa_1440": "bool",
1289
+ "toxcast-OT_ER_ERaERb_0480": "bool",
1290
+ "toxcast-OT_ER_ERaERb_1440": "bool",
1291
+ "toxcast-OT_ER_ERbERb_0480": "bool",
1292
+ "toxcast-OT_ER_ERbERb_1440": "bool",
1293
+ "toxcast-OT_ERa_EREGFP_0120": "bool",
1294
+ "toxcast-OT_ERa_EREGFP_0480": "bool",
1295
+ "toxcast-OT_FXR_FXRSRC1_0480": "bool",
1296
+ "toxcast-OT_FXR_FXRSRC1_1440": "bool",
1297
+ "toxcast-OT_NURR1_NURR1RXRa_0480": "bool",
1298
+ "toxcast-OT_NURR1_NURR1RXRa_1440": "bool",
1299
+ "toxcast-TOX21_ARE_BLA_Agonist_ch1": "bool",
1300
+ "toxcast-TOX21_ARE_BLA_Agonist_ch2": "bool",
1301
+ "toxcast-TOX21_ARE_BLA_agonist_ratio": "bool",
1302
+ "toxcast-TOX21_ARE_BLA_agonist_viability": "bool",
1303
+ "toxcast-TOX21_AR_BLA_Agonist_ch1": "bool",
1304
+ "toxcast-TOX21_AR_BLA_Agonist_ch2": "bool",
1305
+ "toxcast-TOX21_AR_BLA_Agonist_ratio": "bool",
1306
+ "toxcast-TOX21_AR_BLA_Antagonist_ch1": "bool",
1307
+ "toxcast-TOX21_AR_BLA_Antagonist_ch2": "bool",
1308
+ "toxcast-TOX21_AR_BLA_Antagonist_ratio": "bool",
1309
+ "toxcast-TOX21_AR_BLA_Antagonist_viability": "bool",
1310
+ "toxcast-TOX21_AR_LUC_MDAKB2_Agonist": "bool",
1311
+ "toxcast-TOX21_AR_LUC_MDAKB2_Antagonist": "bool",
1312
+ "toxcast-TOX21_AR_LUC_MDAKB2_Antagonist2": "bool",
1313
+ "toxcast-TOX21_AhR_LUC_Agonist": "bool",
1314
+ "toxcast-TOX21_Aromatase_Inhibition": "bool",
1315
+ "toxcast-TOX21_AutoFluor_HEK293_Cell_blue": "bool",
1316
+ "toxcast-TOX21_AutoFluor_HEK293_Media_blue": "bool",
1317
+ "toxcast-TOX21_AutoFluor_HEPG2_Cell_blue": "bool",
1318
+ "toxcast-TOX21_AutoFluor_HEPG2_Cell_green": "bool",
1319
+ "toxcast-TOX21_AutoFluor_HEPG2_Media_blue": "bool",
1320
+ "toxcast-TOX21_AutoFluor_HEPG2_Media_green": "bool",
1321
+ "toxcast-TOX21_ELG1_LUC_Agonist": "bool",
1322
+ "toxcast-TOX21_ERa_BLA_Agonist_ch1": "bool",
1323
+ "toxcast-TOX21_ERa_BLA_Agonist_ch2": "bool",
1324
+ "toxcast-TOX21_ERa_BLA_Agonist_ratio": "bool",
1325
+ "toxcast-TOX21_ERa_BLA_Antagonist_ch1": "bool",
1326
+ "toxcast-TOX21_ERa_BLA_Antagonist_ch2": "bool",
1327
+ "toxcast-TOX21_ERa_BLA_Antagonist_ratio": "bool",
1328
+ "toxcast-TOX21_ERa_BLA_Antagonist_viability": "bool",
1329
+ "toxcast-TOX21_ERa_LUC_BG1_Agonist": "bool",
1330
+ "toxcast-TOX21_ERa_LUC_BG1_Antagonist": "bool",
1331
+ "toxcast-TOX21_ESRE_BLA_ch1": "bool",
1332
+ "toxcast-TOX21_ESRE_BLA_ch2": "bool",
1333
+ "toxcast-TOX21_ESRE_BLA_ratio": "bool",
1334
+ "toxcast-TOX21_ESRE_BLA_viability": "bool",
1335
+ "toxcast-TOX21_FXR_BLA_Antagonist_ch1": "bool",
1336
+ "toxcast-TOX21_FXR_BLA_Antagonist_ch2": "bool",
1337
+ "toxcast-TOX21_FXR_BLA_agonist_ch2": "bool",
1338
+ "toxcast-TOX21_FXR_BLA_agonist_ratio": "bool",
1339
+ "toxcast-TOX21_FXR_BLA_antagonist_ratio": "bool",
1340
+ "toxcast-TOX21_FXR_BLA_antagonist_viability": "bool",
1341
+ "toxcast-TOX21_GR_BLA_Agonist_ch1": "bool",
1342
+ "toxcast-TOX21_GR_BLA_Agonist_ch2": "bool",
1343
+ "toxcast-TOX21_GR_BLA_Agonist_ratio": "bool",
1344
+ "toxcast-TOX21_GR_BLA_Antagonist_ch2": "bool",
1345
+ "toxcast-TOX21_GR_BLA_Antagonist_ratio": "bool",
1346
+ "toxcast-TOX21_GR_BLA_Antagonist_viability": "bool",
1347
+ "toxcast-TOX21_HSE_BLA_agonist_ch1": "bool",
1348
+ "toxcast-TOX21_HSE_BLA_agonist_ch2": "bool",
1349
+ "toxcast-TOX21_HSE_BLA_agonist_ratio": "bool",
1350
+ "toxcast-TOX21_HSE_BLA_agonist_viability": "bool",
1351
+ "toxcast-TOX21_MMP_ratio_down": "bool",
1352
+ "toxcast-TOX21_MMP_ratio_up": "bool",
1353
+ "toxcast-TOX21_MMP_viability": "bool",
1354
+ "toxcast-TOX21_NFkB_BLA_agonist_ch1": "bool",
1355
+ "toxcast-TOX21_NFkB_BLA_agonist_ch2": "bool",
1356
+ "toxcast-TOX21_NFkB_BLA_agonist_ratio": "bool",
1357
+ "toxcast-TOX21_NFkB_BLA_agonist_viability": "bool",
1358
+ "toxcast-TOX21_PPARd_BLA_Agonist_viability": "bool",
1359
+ "toxcast-TOX21_PPARd_BLA_Antagonist_ch1": "bool",
1360
+ "toxcast-TOX21_PPARd_BLA_agonist_ch1": "bool",
1361
+ "toxcast-TOX21_PPARd_BLA_agonist_ch2": "bool",
1362
+ "toxcast-TOX21_PPARd_BLA_agonist_ratio": "bool",
1363
+ "toxcast-TOX21_PPARd_BLA_antagonist_ratio": "bool",
1364
+ "toxcast-TOX21_PPARd_BLA_antagonist_viability": "bool",
1365
+ "toxcast-TOX21_PPARg_BLA_Agonist_ch1": "bool",
1366
+ "toxcast-TOX21_PPARg_BLA_Agonist_ch2": "bool",
1367
+ "toxcast-TOX21_PPARg_BLA_Agonist_ratio": "bool",
1368
+ "toxcast-TOX21_PPARg_BLA_Antagonist_ch1": "bool",
1369
+ "toxcast-TOX21_PPARg_BLA_antagonist_ratio": "bool",
1370
+ "toxcast-TOX21_PPARg_BLA_antagonist_viability": "bool",
1371
+ "toxcast-TOX21_TR_LUC_GH3_Agonist": "bool",
1372
+ "toxcast-TOX21_TR_LUC_GH3_Antagonist": "bool",
1373
+ "toxcast-TOX21_VDR_BLA_Agonist_viability": "bool",
1374
+ "toxcast-TOX21_VDR_BLA_Antagonist_ch1": "bool",
1375
+ "toxcast-TOX21_VDR_BLA_agonist_ch2": "bool",
1376
+ "toxcast-TOX21_VDR_BLA_agonist_ratio": "bool",
1377
+ "toxcast-TOX21_VDR_BLA_antagonist_ratio": "bool",
1378
+ "toxcast-TOX21_VDR_BLA_antagonist_viability": "bool",
1379
+ "toxcast-TOX21_p53_BLA_p1_ch1": "bool",
1380
+ "toxcast-TOX21_p53_BLA_p1_ch2": "bool",
1381
+ "toxcast-TOX21_p53_BLA_p1_ratio": "bool",
1382
+ "toxcast-TOX21_p53_BLA_p1_viability": "bool",
1383
+ "toxcast-TOX21_p53_BLA_p2_ch1": "bool",
1384
+ "toxcast-TOX21_p53_BLA_p2_ch2": "bool",
1385
+ "toxcast-TOX21_p53_BLA_p2_ratio": "bool",
1386
+ "toxcast-TOX21_p53_BLA_p2_viability": "bool",
1387
+ "toxcast-TOX21_p53_BLA_p3_ch1": "bool",
1388
+ "toxcast-TOX21_p53_BLA_p3_ch2": "bool",
1389
+ "toxcast-TOX21_p53_BLA_p3_ratio": "bool",
1390
+ "toxcast-TOX21_p53_BLA_p3_viability": "bool",
1391
+ "toxcast-TOX21_p53_BLA_p4_ch1": "bool",
1392
+ "toxcast-TOX21_p53_BLA_p4_ch2": "bool",
1393
+ "toxcast-TOX21_p53_BLA_p4_ratio": "bool",
1394
+ "toxcast-TOX21_p53_BLA_p4_viability": "bool",
1395
+ "toxcast-TOX21_p53_BLA_p5_ch1": "bool",
1396
+ "toxcast-TOX21_p53_BLA_p5_ch2": "bool",
1397
+ "toxcast-TOX21_p53_BLA_p5_ratio": "bool",
1398
+ "toxcast-TOX21_p53_BLA_p5_viability": "bool",
1399
+ "toxcast-Tanguay_ZF_120hpf_AXIS_up": "bool",
1400
+ "toxcast-Tanguay_ZF_120hpf_ActivityScore": "bool",
1401
+ "toxcast-Tanguay_ZF_120hpf_BRAI_up": "bool",
1402
+ "toxcast-Tanguay_ZF_120hpf_CFIN_up": "bool",
1403
+ "toxcast-Tanguay_ZF_120hpf_CIRC_up": "bool",
1404
+ "toxcast-Tanguay_ZF_120hpf_EYE_up": "bool",
1405
+ "toxcast-Tanguay_ZF_120hpf_JAW_up": "bool",
1406
+ "toxcast-Tanguay_ZF_120hpf_MORT_up": "bool",
1407
+ "toxcast-Tanguay_ZF_120hpf_OTIC_up": "bool",
1408
+ "toxcast-Tanguay_ZF_120hpf_PE_up": "bool",
1409
+ "toxcast-Tanguay_ZF_120hpf_PFIN_up": "bool",
1410
+ "toxcast-Tanguay_ZF_120hpf_PIG_up": "bool",
1411
+ "toxcast-Tanguay_ZF_120hpf_SNOU_up": "bool",
1412
+ "toxcast-Tanguay_ZF_120hpf_SOMI_up": "bool",
1413
+ "toxcast-Tanguay_ZF_120hpf_SWIM_up": "bool",
1414
+ "toxcast-Tanguay_ZF_120hpf_TRUN_up": "bool",
1415
+ "toxcast-Tanguay_ZF_120hpf_TR_up": "bool",
1416
+ "toxcast-Tanguay_ZF_120hpf_YSE_up": "bool",
1417
+ "clintox": "bool",
1418
+ "herg": "bool",
1419
+ "herg_central-hERG_at_1uM": "seq",
1420
+ "herg_central-hERG_at_10uM": "seq",
1421
+ "herg_central-hERG_inhib": "bool",
1422
+ "dili": "bool",
1423
+ "skin_reaction": "bool",
1424
+ "ames": "bool",
1425
+ "carcinogens_lagunin": "bool",
1426
+ "ld50_zhu": "seq"
1427
+ }
1428
+ }