<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.docking.org/index.php?action=history&amp;feed=atom&amp;title=ADMET_Builder</id>
	<title>ADMET Builder - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.docking.org/index.php?action=history&amp;feed=atom&amp;title=ADMET_Builder"/>
	<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ADMET_Builder&amp;action=history"/>
	<updated>2026-07-08T20:01:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ADMET_Builder&amp;diff=17377&amp;oldid=prev</id>
		<title>Bromero at 00:23, 7 July 2026</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ADMET_Builder&amp;diff=17377&amp;oldid=prev"/>
		<updated>2026-07-07T00:23:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:23, 7 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Introduction ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Introduction ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:ADMET builder webpage.png|thumb]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As of 7/6/26, &amp;#039;&amp;#039;&amp;#039;ADMET Builder&amp;#039;&amp;#039;&amp;#039; is an internal Irwin Lab web tool for submitting one or more compounds in SMILES format and receiving OpenADMET prediction results.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As of 7/6/26, &amp;#039;&amp;#039;&amp;#039;ADMET Builder&amp;#039;&amp;#039;&amp;#039; is an internal Irwin Lab web tool for submitting one or more compounds in SMILES format and receiving OpenADMET prediction results.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l18&quot;&gt;Line 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Human plasma protein binding&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Human plasma protein binding&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Downloadable CSV output&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Downloadable CSV output&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Results.png|thumb]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Created by Benjamin &amp;quot;Ben&amp;quot; Romero (Undergrad Northwestern University &amp;#039;29), Summer 2026.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Created by Benjamin &amp;quot;Ben&amp;quot; Romero (Undergrad Northwestern University &amp;#039;29), Summer 2026.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff::1.12:old-17374:rev-17377 --&gt;
&lt;/table&gt;</summary>
		<author><name>Bromero</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ADMET_Builder&amp;diff=17374&amp;oldid=prev</id>
		<title>Bromero at 00:18, 7 July 2026</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ADMET_Builder&amp;diff=17374&amp;oldid=prev"/>
		<updated>2026-07-07T00:18:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki.docking.org/index.php?title=ADMET_Builder&amp;amp;diff=17374&amp;amp;oldid=17373&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Bromero</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ADMET_Builder&amp;diff=17373&amp;oldid=prev</id>
		<title>Bromero: ADMET Builder is a lightweight very modular web interface for running OpenADMET predictions from typed SMILES strings. It was created to make ADMET prediction easier to use for chemists, students, and researchers who may not want to run command-line tools directly.</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ADMET_Builder&amp;diff=17373&amp;oldid=prev"/>
		<updated>2026-07-07T00:13:48Z</updated>

		<summary type="html">&lt;p&gt;ADMET Builder is a lightweight very modular web interface for running OpenADMET predictions from typed SMILES strings. It was created to make ADMET prediction easier to use for chemists, students, and researchers who may not want to run command-line tools directly.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;# ADMET Builder&lt;br /&gt;
&lt;br /&gt;
ADMET Builder is a lightweight web interface for running OpenADMET predictions from typed SMILES strings. It was created to make ADMET prediction easier to use for chemists, students, and researchers who may not want to run command-line tools directly.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## What It Does&lt;br /&gt;
&lt;br /&gt;
ADMET Builder lets a user paste one or more SMILES strings into a web interface and run ADMET predictions.&lt;br /&gt;
&lt;br /&gt;
The app returns:&lt;br /&gt;
&lt;br /&gt;
- A clean results table in the browser&lt;br /&gt;
- A downloadable CSV file&lt;br /&gt;
- Molecular formulas calculated from SMILES&lt;br /&gt;
- RDKit-generated 2D structure images&lt;br /&gt;
- Click-to-enlarge structure viewing&lt;br /&gt;
&lt;br /&gt;
The current OpenADMET model predicts:&lt;br /&gt;
&lt;br /&gt;
- logD&lt;br /&gt;
- Caco-2 A to B permeability&lt;br /&gt;
- Caco-2 B to A permeability&lt;br /&gt;
- Mouse plasma protein binding&lt;br /&gt;
- Human plasma protein binding&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## How It Works&lt;br /&gt;
&lt;br /&gt;
ADMET Builder has three main parts:&lt;br /&gt;
&lt;br /&gt;
| Layer | Technology | Purpose |&lt;br /&gt;
|---|---|---|&lt;br /&gt;
| Frontend | HTML, CSS, JavaScript | User interface, SMILES input, results table, structure display |&lt;br /&gt;
| Backend API | Flask | Receives SMILES, runs predictions, returns results |&lt;br /&gt;
| Prediction Engine | OpenADMET | Generates ADMET predictions from molecular input |&lt;br /&gt;
&lt;br /&gt;
The browser sends SMILES strings to the backend using:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
POST /predict-smiles&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The Flask backend then:&lt;br /&gt;
&lt;br /&gt;
1. Receives the SMILES strings.&lt;br /&gt;
2. Converts them into a temporary CSV file.&lt;br /&gt;
3. Runs the OpenADMET command-line prediction tool.&lt;br /&gt;
4. Reads the prediction output.&lt;br /&gt;
5. Generates molecular formulas and structure images using RDKit.&lt;br /&gt;
6. Sends results back to the web interface as JSON.&lt;br /&gt;
7. Provides the same results as a downloadable CSV file.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Why It Is Modular&lt;br /&gt;
&lt;br /&gt;
ADMET Builder is intentionally modular. The frontend, backend, and prediction engine are separated so each part can be changed or reused.&lt;br /&gt;
&lt;br /&gt;
This means:&lt;br /&gt;
&lt;br /&gt;
- The frontend can be redesigned without changing the model logic.&lt;br /&gt;
- The Flask backend can support new endpoints.&lt;br /&gt;
- Additional OpenADMET models can be added later.&lt;br /&gt;
- Other chemistry tools can be wrapped using the same backend pattern.&lt;br /&gt;
- The results table can be adapted for different prediction outputs.&lt;br /&gt;
- The SMILES-to-structure display can be reused in other cheminformatics apps.&lt;br /&gt;
- The app can serve as a template for future scientific web interfaces.&lt;br /&gt;
&lt;br /&gt;
Because of this structure, ADMET Builder can be used not only as a lab tool, but also as a starting point for other modular research software.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Getting The Code&lt;br /&gt;
&lt;br /&gt;
Clone the repository using HTTPS:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
git clone https://gitlab.docking.org/bromero/admet-builder.git&lt;br /&gt;
cd admet-builder&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Or clone using SSH:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
git clone git@gitlab.docking.org:bromero/admet-builder.git&lt;br /&gt;
cd admet-builder&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Requirements&lt;br /&gt;
&lt;br /&gt;
ADMET Builder expects OpenADMET to already be installed in a working conda environment.&lt;br /&gt;
&lt;br /&gt;
The C7 setup uses:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
module load anaconda3/2025.06.0&lt;br /&gt;
source &amp;quot;$(conda info --base)/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
conda activate openadmet-models&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Python dependencies include:&lt;br /&gt;
&lt;br /&gt;
- Flask&lt;br /&gt;
- pandas&lt;br /&gt;
- RDKit&lt;br /&gt;
- OpenADMET models package&lt;br /&gt;
&lt;br /&gt;
The app also expects the OpenADMET model directory to be available at:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
~/openadmet/permeability-logd-ppb-chemeleon-baseline/anvil_training&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Running The App&lt;br /&gt;
&lt;br /&gt;
From the repository folder:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
cd ~/openadmet/admet-builder&lt;br /&gt;
module load anaconda3/2025.06.0&lt;br /&gt;
source &amp;quot;$(conda info --base)/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
conda activate openadmet-models&lt;br /&gt;
python app.py&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The app runs on:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
http://169.230.26.173:8501&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Running In Screen&lt;br /&gt;
&lt;br /&gt;
For persistent use on C7, run ADMET Builder inside `screen`.&lt;br /&gt;
&lt;br /&gt;
Start a screen session:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
screen -S admet-builder&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Inside screen, run:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
module load anaconda3/2025.06.0&lt;br /&gt;
source &amp;quot;$(conda info --base)/etc/profile.d/conda.sh&amp;quot;&lt;br /&gt;
conda activate openadmet-models&lt;br /&gt;
cd ~/openadmet/admet-builder&lt;br /&gt;
python app.py&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Detach from screen while keeping the app running:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Ctrl+A&lt;br /&gt;
D&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Reconnect later:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
screen -r admet-builder&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
List running screen sessions:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
screen -ls&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Stop the app from inside screen:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
Ctrl+C&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Using The Website&lt;br /&gt;
&lt;br /&gt;
1. Open ADMET Builder in the browser.&lt;br /&gt;
2. Paste one SMILES string per line.&lt;br /&gt;
3. Click `RUN ADMET`.&lt;br /&gt;
4. View the results in the table.&lt;br /&gt;
5. A CSV file downloads automatically.&lt;br /&gt;
6. Click a molecular structure image to enlarge it.&lt;br /&gt;
&lt;br /&gt;
Example input:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
CCO&lt;br /&gt;
c1ccccc1&lt;br /&gt;
CC(=O)Oc1ccccc1C(=O)O&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Output&lt;br /&gt;
&lt;br /&gt;
The output table includes:&lt;br /&gt;
&lt;br /&gt;
| Column | Meaning |&lt;br /&gt;
|---|---|&lt;br /&gt;
| Molecule | Molecular formula calculated from the SMILES string |&lt;br /&gt;
| SMILES | Input molecule string |&lt;br /&gt;
| Structure Image | RDKit-generated 2D molecular structure |&lt;br /&gt;
| logD | Predicted distribution coefficient |&lt;br /&gt;
| Caco-2 A to B | Predicted apical-to-basolateral permeability |&lt;br /&gt;
| Caco-2 B to A | Predicted basolateral-to-apical permeability |&lt;br /&gt;
| Mouse PPB | Predicted mouse plasma protein binding |&lt;br /&gt;
| Human PPB | Predicted human plasma protein binding |&lt;br /&gt;
&lt;br /&gt;
The CSV download contains the same prediction values in a machine-readable format.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Access Through SwitchyOmega&lt;br /&gt;
&lt;br /&gt;
If using SwitchyOmega, the proxy should be:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
SOCKS5&lt;br /&gt;
localhost&lt;br /&gt;
1074&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The website itself is opened at:&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
http://169.230.26.173:8501&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The ports mean different things:&lt;br /&gt;
&lt;br /&gt;
| Port | Purpose |&lt;br /&gt;
|---|---|&lt;br /&gt;
| 1074 | Local SOCKS5 proxy used by SwitchyOmega |&lt;br /&gt;
| 8501 | ADMET Builder web app running on C7 |&lt;br /&gt;
&lt;br /&gt;
If the SOCKS proxy is not running, start it from a Mac terminal:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
ssh -f -N -D 1074 bromero@epsilon.compbio.ucsf.edu&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Repository Structure&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
admet-builder/&lt;br /&gt;
├── app.py&lt;br /&gt;
├── static/&lt;br /&gt;
│   ├── index.html&lt;br /&gt;
│   ├── styles.css&lt;br /&gt;
│   └── app.js&lt;br /&gt;
└── .gitignore&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### `app.py`&lt;br /&gt;
&lt;br /&gt;
The Flask backend. It receives SMILES input, runs OpenADMET, generates formulas and structure images, and returns results.&lt;br /&gt;
&lt;br /&gt;
### `static/index.html`&lt;br /&gt;
&lt;br /&gt;
The main web page structure.&lt;br /&gt;
&lt;br /&gt;
### `static/styles.css`&lt;br /&gt;
&lt;br /&gt;
The UCSF-style visual design and table layout.&lt;br /&gt;
&lt;br /&gt;
### `static/app.js`&lt;br /&gt;
&lt;br /&gt;
The browser-side logic. It sends SMILES to the backend, renders the results table, downloads CSV output, and handles structure image enlargement.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Current API Endpoint&lt;br /&gt;
&lt;br /&gt;
```text&lt;br /&gt;
POST /predict-smiles&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Example JSON request:&lt;br /&gt;
&lt;br /&gt;
```json&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;smiles&amp;quot;: [&lt;br /&gt;
    &amp;quot;CCO&amp;quot;,&lt;br /&gt;
    &amp;quot;c1ccccc1&amp;quot;,&lt;br /&gt;
    &amp;quot;CC(=O)Oc1ccccc1C(=O)O&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Example response includes:&lt;br /&gt;
&lt;br /&gt;
```json&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;csv&amp;quot;: &amp;quot;...&amp;quot;,&lt;br /&gt;
  &amp;quot;rows&amp;quot;: [],&lt;br /&gt;
  &amp;quot;columns&amp;quot;: []&lt;br /&gt;
}&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The frontend uses this response to display results and download the CSV.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Notes&lt;br /&gt;
&lt;br /&gt;
ADMET Builder is a research tool. Its predictions are intended for screening, comparison, prioritization, and exploration.&lt;br /&gt;
&lt;br /&gt;
Results should not be treated as experimental measurements.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Attribution&lt;br /&gt;
&lt;br /&gt;
Created by Benjamin &amp;quot;Ben&amp;quot; Romero (Undergrad Northwestern University &amp;#039;29), Summer 2026.  &lt;br /&gt;
Developed in the Irwin Lab at UCSF.  &lt;br /&gt;
Released as part of an open-source UCSF research tool; please credit the creator and lab when using or adapting this work.&lt;/div&gt;</summary>
		<author><name>Bromero</name></author>
	</entry>
</feed>