{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "mcZ0Typlpgo4"
},
"source": [
"### Import Libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "uxKy-17omWHA"
},
"outputs": [],
"source": [
"import sys\n",
"sys.path.append(\"../models\")\n",
"sys.path.append(\"../\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"id": "4X6vQLWvbKti"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/indrapriyadarsinis/.pyenv/versions/3.11.0/envs/aia/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
" from .autonotebook import tqdm as notebook_tqdm\n"
]
}
],
"source": [
"import models.fm4m as fm4m\n",
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.svm import SVR\n",
"from sklearn.compose import TransformedTargetRegressor\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"from sklearn.metrics import mean_squared_error\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "i13QCnEE1lST"
},
"source": [
"## FM4M Architecture\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "bfWB8iz8KkjS"
},
"source": [
"## Workflow\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Bgdx5GgF2V6k"
},
"source": [
"## 1. Load Data\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"id": "9ArI5cjbiUGo"
},
"outputs": [],
"source": [
"train_df = pd.read_csv(f\"../data/bace/train.csv\")\n",
"test_df = pd.read_csv(f\"../data/bace/test.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 310
},
"id": "pox2cVP_5YFt",
"outputId": "3ae492e8-30b4-4c87-bfab-e5baeac3a44d"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"shape of train_df: (1209, 595)\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" smiles | \n",
" CID | \n",
" Class | \n",
" Unnamed: 3 | \n",
" pIC50 | \n",
" MW | \n",
" AlogP | \n",
" HBA | \n",
" HBD | \n",
" RB | \n",
" ... | \n",
" PEOE6 (PEOE6) | \n",
" PEOE7 (PEOE7) | \n",
" PEOE8 (PEOE8) | \n",
" PEOE9 (PEOE9) | \n",
" PEOE10 (PEOE10) | \n",
" PEOE11 (PEOE11) | \n",
" PEOE12 (PEOE12) | \n",
" PEOE13 (PEOE13) | \n",
" PEOE14 (PEOE14) | \n",
" canvasUID | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" O1CC[C@@H](NC(=O)[C@@H](Cc2cc3cc(ccc3nc2N)-c2c... | \n",
" BACE_1 | \n",
" 1 | \n",
" NaN | \n",
" 9.154901 | \n",
" 431.56979 | \n",
" 4.4014 | \n",
" 3 | \n",
" 2 | \n",
" 5 | \n",
" ... | \n",
" 53.205711 | \n",
" 78.640335 | \n",
" 226.85541 | \n",
" 107.43491 | \n",
" 37.133846 | \n",
" 0.000000 | \n",
" 7.98017 | \n",
" 0.0 | \n",
" 0.000000 | \n",
" 1 | \n",
"
\n",
" \n",
" | 1 | \n",
" S1(=O)(=O)N(c2cc(cc3c2n(cc3CC)CC1)C(=O)N[C@H](... | \n",
" BACE_3 | \n",
" 1 | \n",
" NaN | \n",
" 8.698970 | \n",
" 591.74091 | \n",
" 2.5499 | \n",
" 4 | \n",
" 3 | \n",
" 11 | \n",
" ... | \n",
" 70.365707 | \n",
" 47.941147 | \n",
" 192.40652 | \n",
" 255.75255 | \n",
" 23.654478 | \n",
" 0.230159 | \n",
" 15.87979 | \n",
" 0.0 | \n",
" 24.663788 | \n",
" 3 | \n",
"
\n",
" \n",
" | 2 | \n",
" S1(=O)(=O)N(c2cc(cc3c2n(cc3CC)CC1)C(=O)N[C@H](... | \n",
" BACE_5 | \n",
" 1 | \n",
" NaN | \n",
" 8.698970 | \n",
" 629.71283 | \n",
" 3.5086 | \n",
" 3 | \n",
" 3 | \n",
" 11 | \n",
" ... | \n",
" 78.945702 | \n",
" 39.361153 | \n",
" 179.71288 | \n",
" 220.46130 | \n",
" 23.654478 | \n",
" 0.230159 | \n",
" 15.87979 | \n",
" 0.0 | \n",
" 26.100143 | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
3 rows × 595 columns
\n",
"
"
],
"text/plain": [
" smiles CID Class \\\n",
"0 O1CC[C@@H](NC(=O)[C@@H](Cc2cc3cc(ccc3nc2N)-c2c... BACE_1 1 \n",
"1 S1(=O)(=O)N(c2cc(cc3c2n(cc3CC)CC1)C(=O)N[C@H](... BACE_3 1 \n",
"2 S1(=O)(=O)N(c2cc(cc3c2n(cc3CC)CC1)C(=O)N[C@H](... BACE_5 1 \n",
"\n",
" Unnamed: 3 pIC50 MW AlogP HBA HBD RB ... PEOE6 (PEOE6) \\\n",
"0 NaN 9.154901 431.56979 4.4014 3 2 5 ... 53.205711 \n",
"1 NaN 8.698970 591.74091 2.5499 4 3 11 ... 70.365707 \n",
"2 NaN 8.698970 629.71283 3.5086 3 3 11 ... 78.945702 \n",
"\n",
" PEOE7 (PEOE7) PEOE8 (PEOE8) PEOE9 (PEOE9) PEOE10 (PEOE10) \\\n",
"0 78.640335 226.85541 107.43491 37.133846 \n",
"1 47.941147 192.40652 255.75255 23.654478 \n",
"2 39.361153 179.71288 220.46130 23.654478 \n",
"\n",
" PEOE11 (PEOE11) PEOE12 (PEOE12) PEOE13 (PEOE13) PEOE14 (PEOE14) \\\n",
"0 0.000000 7.98017 0.0 0.000000 \n",
"1 0.230159 15.87979 0.0 24.663788 \n",
"2 0.230159 15.87979 0.0 26.100143 \n",
"\n",
" canvasUID \n",
"0 1 \n",
"1 3 \n",
"2 5 \n",
"\n",
"[3 rows x 595 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(f\"shape of train_df: {train_df.shape}\")\n",
"train_df.head(3)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"id": "0YTd9mLGiYg6"
},
"outputs": [],
"source": [
"input = \"smiles\"\n",
"output = \"Class\"\n",
"\n",
"xtrain = list(train_df[input].values)\n",
"ytrain = list(train_df[output].values)\n",
"\n",
"xtest = list(test_df[input].values)\n",
"ytest = list(test_df[output].values)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7JXZHUhaLFL2"
},
"source": [
"## 2. Representation\n",
""
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 235
},
"id": "v_tG9IoVL9RJ",
"outputId": "9d6bcec8-8984-4b0e-8fa1-ad3ae37aca93"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Model Name | \n",
" Description | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" SMI-TED | \n",
" SMILES based encoder decoder model | \n",
"
\n",
" \n",
" | 1 | \n",
" SELFIES-TED | \n",
" BART model for string based SELFIES modality | \n",
"
\n",
" \n",
" | 2 | \n",
" MolFormer | \n",
" MolFormer model for string based SMILES modality | \n",
"
\n",
" \n",
" | 3 | \n",
" MHG-GED | \n",
" Molecular hypergraph model | \n",
"
\n",
" \n",
" | 4 | \n",
" POS-EGNN | \n",
" 3D atom position model | \n",
"
\n",
" \n",
" | 5 | \n",
" Mordred | \n",
" Baseline: A descriptor-calculation software ap... | \n",
"
\n",
" \n",
" | 6 | \n",
" MorganFingerprint | \n",
" Baseline: Circular atom environments based des... | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Model Name Description\n",
"0 SMI-TED SMILES based encoder decoder model\n",
"1 SELFIES-TED BART model for string based SELFIES modality\n",
"2 MolFormer MolFormer model for string based SMILES modality\n",
"3 MHG-GED Molecular hypergraph model\n",
"4 POS-EGNN 3D atom position model\n",
"5 Mordred Baseline: A descriptor-calculation software ap...\n",
"6 MorganFingerprint Baseline: Circular atom environments based des..."
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fm4m.avail_models()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "g8HyHf-hNnuk"
},
"source": [
"### 2-2. Encoding"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Wl_FUWXaLzNi",
"outputId": "63ad7451-8163-43d1-f8db-8d347c884dc3"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.\n",
"Encoding: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:45<00:00, 4.51s/it]\n",
"Encoding: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:05<00:00, 2.91s/it]\n"
]
}
],
"source": [
"x_batch, x_batch_test = fm4m.get_representation(xtrain, xtest, model_type = 'SELFIES-TED', return_tensor = False)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 456
},
"id": "x80OEJatMgSc",
"outputId": "491f3557-7c74-4ede-e336-9f80d4ef094c"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"x_batch shape: (1209, 1024), x_batch_test shape: (152, 1024)\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 0 | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
" 9 | \n",
" ... | \n",
" 1014 | \n",
" 1015 | \n",
" 1016 | \n",
" 1017 | \n",
" 1018 | \n",
" 1019 | \n",
" 1020 | \n",
" 1021 | \n",
" 1022 | \n",
" 1023 | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" -0.503222 | \n",
" -0.215451 | \n",
" -0.189493 | \n",
" -0.092524 | \n",
" -0.035685 | \n",
" 0.397157 | \n",
" 0.330146 | \n",
" 0.150706 | \n",
" -0.183842 | \n",
" -0.057736 | \n",
" ... | \n",
" -0.214623 | \n",
" 0.223324 | \n",
" -0.303108 | \n",
" -0.024436 | \n",
" 0.024316 | \n",
" 0.172946 | \n",
" 0.169884 | \n",
" 0.132786 | \n",
" -0.248269 | \n",
" 0.118214 | \n",
"
\n",
" \n",
" | 1 | \n",
" -0.262858 | \n",
" -0.157044 | \n",
" 0.010717 | \n",
" -0.075510 | \n",
" 0.095870 | \n",
" 0.136186 | \n",
" 0.294165 | \n",
" 0.032292 | \n",
" -0.254854 | \n",
" 0.195016 | \n",
" ... | \n",
" -0.060452 | \n",
" 0.235328 | \n",
" -0.366607 | \n",
" 0.103591 | \n",
" 0.119203 | \n",
" 0.179035 | \n",
" -0.110913 | \n",
" -0.044079 | \n",
" -0.196783 | \n",
" 0.313273 | \n",
"
\n",
" \n",
" | 2 | \n",
" -0.190330 | \n",
" -0.072514 | \n",
" -0.033795 | \n",
" -0.079492 | \n",
" 0.037558 | \n",
" -0.004621 | \n",
" 0.197854 | \n",
" 0.042624 | \n",
" -0.186029 | \n",
" 0.173207 | \n",
" ... | \n",
" -0.041576 | \n",
" 0.335282 | \n",
" -0.214752 | \n",
" 0.137056 | \n",
" 0.132862 | \n",
" 0.201215 | \n",
" -0.026738 | \n",
" -0.131475 | \n",
" -0.246607 | \n",
" 0.240186 | \n",
"
\n",
" \n",
" | 3 | \n",
" -0.204094 | \n",
" -0.168750 | \n",
" -0.161950 | \n",
" -0.000271 | \n",
" -0.058145 | \n",
" 0.109174 | \n",
" 0.294738 | \n",
" 0.090971 | \n",
" -0.240900 | \n",
" -0.025513 | \n",
" ... | \n",
" -0.121242 | \n",
" 0.246883 | \n",
" -0.093617 | \n",
" -0.013088 | \n",
" -0.068637 | \n",
" 0.101699 | \n",
" -0.115710 | \n",
" 0.041726 | \n",
" -0.113143 | \n",
" 0.138386 | \n",
"
\n",
" \n",
" | 4 | \n",
" -0.368866 | \n",
" -0.212452 | \n",
" -0.132715 | \n",
" 0.003404 | \n",
" 0.061549 | \n",
" 0.142789 | \n",
" 0.364729 | \n",
" 0.193885 | \n",
" -0.192515 | \n",
" 0.111891 | \n",
" ... | \n",
" 0.059363 | \n",
" 0.103790 | \n",
" -0.256474 | \n",
" 0.163211 | \n",
" 0.069861 | \n",
" 0.058194 | \n",
" 0.020981 | \n",
" -0.018040 | \n",
" -0.211265 | \n",
" 0.167820 | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 1204 | \n",
" 0.654451 | \n",
" 0.312957 | \n",
" -0.159943 | \n",
" -0.293057 | \n",
" 0.119688 | \n",
" 0.350459 | \n",
" -0.232167 | \n",
" -0.034983 | \n",
" -0.145768 | \n",
" 0.022117 | \n",
" ... | \n",
" -0.022270 | \n",
" 0.210995 | \n",
" -0.228188 | \n",
" 0.071640 | \n",
" -0.435477 | \n",
" 0.270041 | \n",
" 0.000416 | \n",
" -0.012726 | \n",
" -0.129631 | \n",
" 0.084580 | \n",
"
\n",
" \n",
" | 1205 | \n",
" -0.300281 | \n",
" -0.058460 | \n",
" -0.058468 | \n",
" 0.052775 | \n",
" 0.148249 | \n",
" 0.212024 | \n",
" 0.006644 | \n",
" 0.006859 | \n",
" -0.122563 | \n",
" -0.061714 | \n",
" ... | \n",
" -0.127536 | \n",
" 0.062538 | \n",
" -0.358881 | \n",
" 0.022708 | \n",
" 0.238863 | \n",
" 0.390067 | \n",
" 0.095684 | \n",
" 0.029819 | \n",
" -0.239767 | \n",
" -0.103145 | \n",
"
\n",
" \n",
" | 1206 | \n",
" -0.292924 | \n",
" -0.040612 | \n",
" -0.023364 | \n",
" 0.020886 | \n",
" 0.122309 | \n",
" 0.126330 | \n",
" 0.029767 | \n",
" 0.029145 | \n",
" -0.167494 | \n",
" -0.012668 | \n",
" ... | \n",
" -0.081089 | \n",
" 0.131623 | \n",
" -0.353299 | \n",
" -0.029195 | \n",
" 0.238403 | \n",
" 0.395394 | \n",
" -0.014697 | \n",
" 0.041535 | \n",
" -0.209609 | \n",
" -0.083603 | \n",
"
\n",
" \n",
" | 1207 | \n",
" 0.003649 | \n",
" 0.197198 | \n",
" 0.072717 | \n",
" -0.030299 | \n",
" 0.218701 | \n",
" 0.022115 | \n",
" -0.147039 | \n",
" -0.041022 | \n",
" -0.164113 | \n",
" 0.130745 | \n",
" ... | \n",
" 0.104708 | \n",
" 0.383577 | \n",
" -0.057095 | \n",
" 0.078466 | \n",
" -0.028817 | \n",
" 0.177734 | \n",
" 0.269799 | \n",
" -0.034831 | \n",
" -0.003169 | \n",
" -0.123625 | \n",
"
\n",
" \n",
" | 1208 | \n",
" -0.343892 | \n",
" 0.137349 | \n",
" -0.136823 | \n",
" -0.219161 | \n",
" -0.181459 | \n",
" 0.077936 | \n",
" 0.050087 | \n",
" 0.091977 | \n",
" -0.127780 | \n",
" 0.161149 | \n",
" ... | \n",
" 0.028696 | \n",
" 0.380964 | \n",
" -0.083658 | \n",
" 0.087751 | \n",
" -0.118513 | \n",
" 0.357678 | \n",
" 0.057652 | \n",
" 0.105037 | \n",
" -0.342994 | \n",
" 0.134058 | \n",
"
\n",
" \n",
"
\n",
"
1209 rows × 1024 columns
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4 5 6 \\\n",
"0 -0.503222 -0.215451 -0.189493 -0.092524 -0.035685 0.397157 0.330146 \n",
"1 -0.262858 -0.157044 0.010717 -0.075510 0.095870 0.136186 0.294165 \n",
"2 -0.190330 -0.072514 -0.033795 -0.079492 0.037558 -0.004621 0.197854 \n",
"3 -0.204094 -0.168750 -0.161950 -0.000271 -0.058145 0.109174 0.294738 \n",
"4 -0.368866 -0.212452 -0.132715 0.003404 0.061549 0.142789 0.364729 \n",
"... ... ... ... ... ... ... ... \n",
"1204 0.654451 0.312957 -0.159943 -0.293057 0.119688 0.350459 -0.232167 \n",
"1205 -0.300281 -0.058460 -0.058468 0.052775 0.148249 0.212024 0.006644 \n",
"1206 -0.292924 -0.040612 -0.023364 0.020886 0.122309 0.126330 0.029767 \n",
"1207 0.003649 0.197198 0.072717 -0.030299 0.218701 0.022115 -0.147039 \n",
"1208 -0.343892 0.137349 -0.136823 -0.219161 -0.181459 0.077936 0.050087 \n",
"\n",
" 7 8 9 ... 1014 1015 1016 \\\n",
"0 0.150706 -0.183842 -0.057736 ... -0.214623 0.223324 -0.303108 \n",
"1 0.032292 -0.254854 0.195016 ... -0.060452 0.235328 -0.366607 \n",
"2 0.042624 -0.186029 0.173207 ... -0.041576 0.335282 -0.214752 \n",
"3 0.090971 -0.240900 -0.025513 ... -0.121242 0.246883 -0.093617 \n",
"4 0.193885 -0.192515 0.111891 ... 0.059363 0.103790 -0.256474 \n",
"... ... ... ... ... ... ... ... \n",
"1204 -0.034983 -0.145768 0.022117 ... -0.022270 0.210995 -0.228188 \n",
"1205 0.006859 -0.122563 -0.061714 ... -0.127536 0.062538 -0.358881 \n",
"1206 0.029145 -0.167494 -0.012668 ... -0.081089 0.131623 -0.353299 \n",
"1207 -0.041022 -0.164113 0.130745 ... 0.104708 0.383577 -0.057095 \n",
"1208 0.091977 -0.127780 0.161149 ... 0.028696 0.380964 -0.083658 \n",
"\n",
" 1017 1018 1019 1020 1021 1022 1023 \n",
"0 -0.024436 0.024316 0.172946 0.169884 0.132786 -0.248269 0.118214 \n",
"1 0.103591 0.119203 0.179035 -0.110913 -0.044079 -0.196783 0.313273 \n",
"2 0.137056 0.132862 0.201215 -0.026738 -0.131475 -0.246607 0.240186 \n",
"3 -0.013088 -0.068637 0.101699 -0.115710 0.041726 -0.113143 0.138386 \n",
"4 0.163211 0.069861 0.058194 0.020981 -0.018040 -0.211265 0.167820 \n",
"... ... ... ... ... ... ... ... \n",
"1204 0.071640 -0.435477 0.270041 0.000416 -0.012726 -0.129631 0.084580 \n",
"1205 0.022708 0.238863 0.390067 0.095684 0.029819 -0.239767 -0.103145 \n",
"1206 -0.029195 0.238403 0.395394 -0.014697 0.041535 -0.209609 -0.083603 \n",
"1207 0.078466 -0.028817 0.177734 0.269799 -0.034831 -0.003169 -0.123625 \n",
"1208 0.087751 -0.118513 0.357678 0.057652 0.105037 -0.342994 0.134058 \n",
"\n",
"[1209 rows x 1024 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(f\"x_batch shape: {x_batch.shape}, x_batch_test shape: {x_batch_test.shape}\")\n",
"x_batch"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Ja0ztrJB2gY6"
},
"source": [
"## 3. Model usage\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "PRHZHxMfm4jH"
},
"source": [
"### 3-1. List of Downstream Models"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 235
},
"id": "RPreJFXA9sUE",
"outputId": "5f4dc4f3-5aef-40dc-f52a-7f24b60e62eb"
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Name | \n",
" Task Type | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" XGBClassifier | \n",
" Classfication | \n",
"
\n",
" \n",
" | 1 | \n",
" DefaultClassifier | \n",
" Classfication | \n",
"
\n",
" \n",
" | 2 | \n",
" SVR | \n",
" Regression | \n",
"
\n",
" \n",
" | 3 | \n",
" Kernel Ridge | \n",
" Regression | \n",
"
\n",
" \n",
" | 4 | \n",
" Linear Regression | \n",
" Regression | \n",
"
\n",
" \n",
" | 5 | \n",
" DefaultRegressor | \n",
" Regression | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Name Task Type\n",
"0 XGBClassifier Classfication\n",
"1 DefaultClassifier Classfication\n",
"2 SVR Regression\n",
"3 Kernel Ridge Regression\n",
"4 Linear Regression Regression\n",
"5 DefaultRegressor Regression"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fm4m.avail_downstream_models()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2Y5KSbDh9510"
},
"source": [
"### 3-2. Example of single-modal model usage"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "kGpbLIq3IQuy",
"outputId": "e72a8123-753f-4f85-def2-62b0598972fe"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"POS-EGNN\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Batch Encoding: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [03:06<00:00, 18.67s/it]\n",
"Batch Encoding: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:21<00:00, 10.98s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Calculating ROC AUC Score ...\n",
"ROC-AUC Score: 0.7860\n",
"Generating latent plots\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/indrapriyadarsinis/.pyenv/versions/3.11.0/envs/aia/lib/python3.11/site-packages/sklearn/utils/deprecation.py:151: FutureWarning: 'force_all_finite' was renamed to 'ensure_all_finite' in 1.6 and will be removed in 1.8.\n",
" warnings.warn(\n",
"OMP: Info #276: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Generating latent plots : Done\n"
]
}
],
"source": [
"result = fm4m.single_modal(model=\"POS-EGNN\", x_train=xtrain, y_train=ytrain, x_test=xtest, y_test=ytest, downstream_model=\"DefaultClassifier\")"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "cfbRhXso-IwP",
"outputId": "058df36e-5352-4a4e-9580-c71fd14de652"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"result[0]: Result, 'ROC-AUC Score: 0.7860', \n",
"result[1]: Row score, 0.7859501100513573, \n",
"result[2]: False Positive Rate, type \n",
"result[3]: True Positive Rate, type \n",
"result[4]: Class_0 latent space, type \n",
"result[5]: Class_1 latent space, type \n"
]
}
],
"source": [
"print(f\"result[0]: Result, '{result[0]}', {type(result[0])}\")\n",
"print(f\"result[1]: Row score, {result[1]}, {type(result[1])}\")\n",
"print(f\"result[2]: False Positive Rate, type {type(result[2])}\")\n",
"print(f\"result[3]: True Positive Rate, type {type(result[3])}\")\n",
"print(f\"result[4]: Class_0 latent space, type {type(result[4])}\")\n",
"print(f\"result[5]: Class_1 latent space, type {type(result[5])}\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "S-vj4E53IRbo"
},
"source": [
"### 3-3. Example of multi-modal model usage"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "RecrqDUN92ql",
"outputId": "83c9e79e-8c02-4ec6-e133-39185e830ca3"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Random Seed: 12345\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n",
"Using Rotation Embedding\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/indrapriyadarsinis/.pyenv/versions/3.11.0/envs/aia/lib/python3.11/site-packages/numpy/core/fromnumeric.py:59: FutureWarning: 'Series.swapaxes' is deprecated and will be removed in a future version. Please use 'Series.transpose' instead.\n",
" return bound(*args, **kwds)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Vocab size: 2393\n",
"[INFERENCE MODE - smi-ted-Light]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 12/12 [00:18<00:00, 1.57s/it]\n",
"100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:02<00:00, 2.57s/it]\n",
"/Users/indrapriyadarsinis/.pyenv/versions/3.11.0/envs/aia/lib/python3.11/site-packages/sklearn/utils/deprecation.py:151: FutureWarning: 'force_all_finite' was renamed to 'ensure_all_finite' in 1.6 and will be removed in 1.8.\n",
" warnings.warn(\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Representations loaded successfully\n",
"Generating latent plots\n",
"Generating latent plots : Done\n",
" Calculating ROC AUC Score ...\n",
"ROC-AUC Score: 0.8837\n",
"ROC-AUC Score: 0.8837\n"
]
}
],
"source": [
"result = fm4m.multi_modal(model_list=[\"MHG-GED\",\"SMI-TED\"], x_train=xtrain, y_train=ytrain, x_test=xtest, y_test=ytest, downstream_model=\"DefaultClassifier\")"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
},
"id": "f3E4EgVZJpyC",
"outputId": "d492c00e-ec6c-4965-a286-01d9865b1ba7"
},
"outputs": [
{
"data": {
"text/plain": [
"'ROC-AUC Score: 0.8837'"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result[0]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "k6pshJmc-FAW"
},
"source": [
"## 4. Visualization\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "x5dGKqnVPwO5"
},
"source": [
"### 4-1. ROC-AUC: Classification task"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 489
},
"id": "mzIKDIIiQsGG",
"outputId": "df0cb4ca-5ff1-45cb-bcf3-caee314a0e3a"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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mzY/4IMPtqm5gqJjEEREZJnYIpQaOELMqvn53UTXrltw8eJ9tb179yXs2HGRI8KIiNIAfk0lSqLIyChMn35ILZNhCIJkPqClS1vjnXdK6l09IiJKBLYIESVBYOBj9OixFQcP/mcsq1YtL9av74iSJXPoWjciIko8BkJEZtqw4SwGDNiJR4+eq20ZCT9yZD1MmNAQjo72elePiIjMwEAopYbJCw6VtzpHj15Hly4/Grfd3LJgzZr2aNCgsK71IiKipGGOUHIOk396w/SmRb28n0PlrUbt2gXQo0dF9XPnzuVw+vQABkFERGkYW4RSciFVwcVU07SoKA12dqazQH/zTUu0alUC771XjjNEExGlcQyEkhOHyVuVgICH6N59C4YOra2CHoMsWZzQuXN5XetGRETJg4EQUQwyGeKaNX9j0KBdePIkHOfP70CdOgXg5pZV76oREVEyY44QUTQPH4aqZOhevX5SQZDInj2DceFUIiKyLmwRIvp/Bw5cVXMDXb8ebCzz9KyMr79uARcXJ13rRkREKYOBENm88PBIeHvvx4wZh2FYIixbNmcsWfIOOnV6lRtERETWh4EQwdYTojt12oQTJ17N+dSwYWGsXt2OOUFERDaAOUJk0zJkSI9r1x6rnx0c7DBjRlPs29eTQRARkY1gIEQ2LW9eFyxb1galS+fE0aN98dlndWPNG0RERNaLXWNkU/buDUCVKnmQI0dGY1mbNqXwv/8Vh4MD1wkjIrI1bBEim/D8eQS8vPagWbM16N9/h5orKDoGQUREtomBEFm9M2fuoGbNpZg795ja/vHH89iz55Le1SIiIgvAQIisep2wefOOokaNpThz5q4qc3KyV/MCtWhRXO/qERGRBWCOEFmlW7eeoHfvbfDxuWwsq1AhF9av74jy5XPpWjciIrIcDITI6mzf7o8+fbYjKOiZsczLqzamTm0CZ2d+5ImI6BVeFciqHD58DW3b/mDczpMnM1ataofmzYvpWi8iIrJMzBEiq+Lu7ob27Uurn9u2LYUzZwYyCCIionixRYjSNBkGny7dqwkQ5eelS1uruYF69apkch8REVFMbBGiNCsw8DEaN16NHTsumpTLZImyajyDICIieh22CFGatHHjOTUx4qNHz3Hu3F38/fdAlQ9ERERkDrYIUZoSHBwGT8+f0LnzZhUECRkJdvPmE72rRkREaRBb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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.set_title(\"ROC-AUC Curve\")\n",
"ax.plot(result[2], result[3], color='darkorange', lw=2, label=f'ROC curve (area = {result[1]:.4f})')\n",
"ax.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')\n",
"ax.set_xlim([0.0, 1.0])\n",
"ax.set_ylim([0.0, 1.05])\n",
"ax.set_xlabel('False Positive Rate')\n",
"ax.set_ylabel('True Positive Rate')\n",
"ax.set_title('Receiver Operating Characteristic')\n",
"ax.legend(loc='lower right')\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "rJNnyd6cSuWf"
},
"source": [
"### 4-2. Latent space: Classification task"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 489
},
"id": "QZbBFscLRRLO",
"outputId": "8f671726-8dc6-4111-fd86-645643e6652c"
},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Dataset Distribution')"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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Z555Bt999x2mTp2Kp59+GnfeeWfYda+77jq/z2bixImIFxYsWIBRo0YpwfbFF1/g2GOPxbnnnouNGzeaLv/hhx9i8ODBSvB9+eWXSizI9J///AfxjHzH5Ab48ccf4+2331YX0XPOOQc7d+4MuZ5UG/U9d6tXr0a8c9RRR/mN+f3337dcNlHP56effup3jHJOhQEDBiT0uZTvo/wG5QZmhlw7Hn/8cXXt+fe//60EgPxe5aExWr/xeDjWXbt2qbHec8896m9paal6KLn44ouj+v2Ph3MqiKjxHfO8efNCbjNq51RSyEl4evTooU2dOtX28r/88ot24IEHasXFxd5533//vaTrax999JGWKEycOFE7+OCDQy5z5plnaoWFhVq8ctJJJ2kjRozwvvZ4PFr37t21hx9+2HT5yy67TLvgggv85p188snaDTfcoCUSGzduVN+3d99913KZF154QWvfvr2WSIwfP1479thjbS+fLOdTfmO9evXSamtrk+Zcyvdz8eLF3tdybN26ddMmTZrkdy1t3ry5Nm/evKj9xuPhWM345JNP1HKrV6+O2vc/Ho7zqquu0vr16+doO9E6p7TkOEDcU+J6Ov744zFp0iTU1NRYLvv555+rJ2kxtRqISfGggw7CRx99hERh+/bt6NSpU9jlXnnlFXTu3BlHH3007rjjDvWUEg+Iq03Ohe95kB5m8trqPMh83+UFeYJIpPNmnDsh3Pn77bff0KNHD9Usr1+/fsqKF++I+0JM44cccgiGDh2KNWvWWC6bDOdTvsdz5szBX//615DNhRPxXPqycuVKrF+/3u98Sb8icVVYna9IfuPx/JuV89uhQ4eoff/jhfLycuVG/93vfofhw4djy5YtlstG85ymVIPOhnDLLbfgj3/8o7phiPlbbuRicpsyZYrp8vJDbdasWdCXtWvXruq9ROCnn37CjBkzMHny5JDLDRkyRF1Y5Uf3zTffKD+zmF3F/NrUbN68GR6PR33uvshrcc+ZIefHbPlEOW+CuB2Liopw2mmnKeFphVxwnn/+efzhD39QF1g516eeeqq6OUazmW00kRuexJ/I2OU3OGHCBOTm5ir3k8QjJeP5lBiHX375RcU2JNO5DMQ4J07OVyS/8XhE3HFy7RTXaqiGlU6///GAuKokVEPiPVesWKFCIM4//3wlWNxud0zPaUqLnNtvvx2PPvpoyGW+//57ZYER36CBXEREwNxwww0q2DPeS3A7OU6Dqqoq9cUU/7/E24Ti+uuv9/5fgugkYLBPnz7qyyzBy6TxkdgcueiF89WfcsopajKQm+KRRx6p4rLuv/9+xCNycfT9LcpFX0T2woULVdxNMvJ///d/6rjlQSKZziXREav/ZZddpoKun3rqqaT7/g8aNMjvHiHjlnuDWHfkXhFLUlrkjB49OuSTkSDmQDPkiyXuKslIEkUdSLdu3ZTJTZ6+fK05kl0l78XzcUqAdO/evdVFctasWY73J5+NYQlqapEjLjR5UgjMagt1HmS+k+XjjZtuugmvv/66ynhw+gR/4IEHKnesnLtEQX5fhx9+uOWYE/18SvDw0qVLHVtGE/FcGudEzo88LBnI6+OOOy5qv/F4FDhynt95552QVpxIvv/xiNxv5LzJmM1ETjTPaUrH5GRkZCjrRahJLDZmfPXVV8pHKD5GM0444QR1kVm2bJl3nrhwxHfq+7QVb8cpFhxJCZfxv/DCC+oYnSKfjeB7kWoq5LjkWHzPg7hy5LXVeZD5vssLktnS2OfNKfIUKAJn8eLF6mIppmGniIn422+/jYtzZxeJQxGrodWYE/V8GsjvUK4zF1xwQdKfS/nOyk3M93zt2LFDZVlZna9IfuPxJnAkxkaErMR8Rvv7H49UVlaqmByrMUf1nDoKU05RPvzwQ5VZ9dVXX2krVqzQ5syZo2VkZGhXXnmld5nKykrtd7/7nfbvf//bO2/YsGHaQQcdpL3zzjvaZ599pp1yyilqilfkGA499FCtT58+6v/V1dXeyeo4f/rpJ+2+++5Tx7dy5UptyZIl2iGHHKKdccYZWrwwf/58lZ0xe/Zs7b///a92/fXXax06dNDWr1+v3r/iiiu022+/3bv8Bx98oB1wwAHa5MmTVUacZDNIpty3336rxTPDhw9X2TXl5eV+527Xrl3eZQKPdcKECdpbb72lvteff/65NmjQIK1Fixbad999p8Uro0ePVsco3zc5V3379tU6d+6sssmS6XwaGSVyDbntttuC3kvUc/nrr79qX375pZrkFjRlyhT1fyOj6JFHHlG/T7mWfPPNNyorRzI8d+/e7d3GWWedpc2YMcP2bzwej3Xfvn3axRdfrGVnZ6t7i+9vdu/evZbHGu77H2/H+euvv2q33nqryiqWMS9dulT74x//qB122GHanj17Yn5OKXJsIBcMSTmVG4hcNI488kjtoYce8jtBcvLk5JaVlXnnyY/yxhtv1Dp27Ki1atVKu/TSS/0EQ7whKahyDGaT1XGuWbNGCZpOnTqpL6SIpDFjxmjbt2/X4gn58cjNolmzZio18eOPP/ZLgZcUR18WLlyoHX744Wr5o446SvvHP/6hxTtW507Oq9WxFhUVeT+Xrl27an/5y1+0L774QotnBg4cqGVmZqoxZ2VlqdcitpPtfAoiWuQcLl++POi9RD2Xcu0w+54axyJp5Pfcc486BrmmyENX4PFLSQ8Rq3Z/4/F4rMa11GzyvY8EHmu473+8HeeuXbu0c845RxkG5OFCjue6664LEiuxOqcu+aehpidCCCGEkHgjpWNyCCGEEJK8UOQQQgghJCmhyCGEEEJIUkKRQwghhJCkhCKHEEIIIUkJRQ4hhBBCkhKKHEIIIYQkJRQ5hBBCCElKKHIIIVFDGsG6XK6gKVrNA2fPnu3X8LYpkManF110keoILsf26quvNul4CCHWUOQQQqLKeeedh+rqar8pkmahjdEcMRJ27tyJY489Fk8++WTUx0QIiS4UOYSQqNK8eXPVSdp3crvd6r0lS5bgj3/8I1q0aIFDDjkEEyZMQE1NjXfdKVOm4JhjjkHr1q2Rk5ODG2+8UXVZFsrLy3HNNddg+/btXgvRvffeq94zs6iIxUcsP8KqVavUMgsWLMCZZ56p9v/KK6+o95577jkceeSRat4RRxyBmTNnhjy+888/Hw888AAuvfTSKH9yhJBoc0DUt0gIISZUVFTgyiuvxOOPP47c3FysWLEC119/vXpv/Pjx6m9aWpp6Xyw/P//8sxI5Y8eOVcLj1FNPxbRp0zBu3DgsX75cLd+mTRtHY7j99tvx2GOP4fjjj/cKHdneE088oeZ9+eWXuO6665TIuuqqq2LwKRBCGpWGdh8lhBAD6Trsdru11q1be6eCggL1nnSTfuihh/yWf/nll1VHZSuKi4u19PR072vpqN6+ffug5eRStnjxYr95spzRgd3o+Dxt2jS/ZXr16qXNnTvXb97999+vnXLKKbaO12y/hJD4gZYcQkhU6d27N5566inva7GKCF9//TU++OADPPjgg973PB4P9uzZg127dqFVq1ZYunQpHn74Yfzwww/YsWOHcmX5vt9Q/vSnP/nF1og16dprr1XWGwPZZ/v27Ru8L0JI00ORQwiJKiJqDj300KD5ElsjMTj5+flB74nrSOJmLrzwQgwfPlwJoU6dOuH9999XImTfvn0hRY7E2+iGldCBxYbgMsYjPPvsszj55JP9ljNiiAghiQ1FDiGkUZCAY4mlMRNAwueff47a2loVMyOxOcLChQv9lmnWrJmy/gSSkZGhsrgMfvzxR2X9CUXXrl1VGrjE/gwdOjTCoyKExDMUOYSQRkECfMVSc9BBB6GgoEAJGXFh/ec//1HZSiJ+xPoyY8YMVYdGXFtPP/203zZ69uypLDDLli1Tadxi3ZHprLPOUsHDp5xyihJBt912Gw488MCwYxLL0i233KLcU5L6vnfvXnz22WfYtm0bRo0aZbqO7N+37s/KlSvx1VdfKcuTHBshJI5o6qAgQkhyBR7369fP8v0333xTO/XUU7WWLVtq7dq100466SRt1qxZ3venTJmiApHl/XPPPVd76aWXVHDvtm3bvMsMGzZMBSPL/PHjx6t5VVVV2jnnnKMCnQ877DDtjTfeMA08/vLLL4PG9Morr2jHHXec1qxZM61jx47aGWecoZWWlloeQ1lZmdpW4CTHTgiJL1zyT1MLLUIIIYSQaMNigIQQQghJSihyCCGEEJKUUOQQQgghJCmhyCGEEEJIUkKRQwghhJCkhCKHEEIIIUkJRQ4hhBBCkhKKHEIIIYQkJRQ5hBBCCElKKHIIIYQQkpRQ5BBCCCEkKaHIIYQQQgiSkf8Hg+wxkvXsITYAAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.set_title(\"T-SNE Plot\")\n",
"\n",
"class_0 = result[4]\n",
"class_1 = result[5]\n",
"\n",
"plt.scatter(class_1[:, 0], class_1[:, 1], c='red', label='Class 1')\n",
"plt.scatter(class_0[:, 0], class_0[:, 1], c='blue', label='Class 0')\n",
"\n",
"ax.set_xlabel('Feature 1')\n",
"ax.set_ylabel('Feature 2')\n",
"ax.legend(loc='lower right')\n",
"\n",
"ax.set_title('Dataset Distribution')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "R6Re4bs8gB2p"
},
"source": [
"### 4-3. Parity Plot: Regression task"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"id": "Mi-yXnfoRuEZ"
},
"outputs": [],
"source": [
"train_df = pd.read_csv(f\"../data/esol/train.csv\")\n",
"test_df = pd.read_csv(f\"../data/esol/test.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 111
},
"id": "cLhdbWjBUAQd",
"outputId": "881ee72c-ec07-441f-d6ea-6e69e96552b5"
},
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"train_df\",\n \"rows\": 854,\n \"fields\": [\n {\n \"column\": \"Unnamed: 0\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 246,\n \"min\": 0,\n \"max\": 853,\n \"num_unique_values\": 854,\n \"samples\": [\n 66,\n 434,\n 198\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"selfies\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 852,\n \"samples\": [\n \"[C] [C] [C] [=C] [C] [=C] [C] [=C] [Ring1] [=Branch1] [C] [C]\",\n \"[C] [=C] [C] [=C] [C] [=C] [Ring1] [=Branch1] [C] [Branch1] [C] [O] [C] [Branch1] [C] [O] [C] [=C] [C] [=C] [C] [=C] [Ring1] [=Branch1]\",\n \"[C] [C] [=N] [N] [=C] [C] [N] [=C] [Branch1] [#Branch2] [C] [=C] [C] [=C] [C] [=C] [Ring1] [=Branch1] [Cl] [C] [=C] [C] [Branch1] [C] [Cl] [=C] [C] [=C] [Ring1] [#Branch1] [N] [Ring2] [Ring1] [=Branch1] [Ring2] [Ring1] [Ring1]\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"prop\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.6792089958132854,\n \"min\": -9.589,\n \"max\": 1.091,\n \"num_unique_values\": 726,\n \"samples\": [\n -3.927,\n -4.074,\n -1.621\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"smiles\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 854,\n \"samples\": [\n \"CCc1ccccc1CC\",\n \"CC(=O)CC(c1ccccc1)c3c(O)c2ccccc2oc3=O \",\n \"Cc3nnc4CN=C(c1ccccc1Cl)c2cc(Cl)ccc2n34\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "train_df"
},
"text/html": [
"\n",
" \n",
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Unnamed: 0 | \n",
" selfies | \n",
" prop | \n",
" smiles | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0 | \n",
" [O] [C] [C] [O] [C] [Branch2] [Ring2] [Ring1] ... | \n",
" -0.974 | \n",
" OCC3OC(OCC2OC(OC(C#N)c1ccccc1)C(O)C(O)C2O)C(O)... | \n",
"
\n",
" \n",
" | 1 | \n",
" 1 | \n",
" [C] [C] [O] [C] [=C] [C] [=Ring1] [Branch1] [C... | \n",
" -2.885 | \n",
" Cc1occc1C(=O)Nc2ccccc2 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n"
],
"text/plain": [
" Unnamed: 0 selfies prop \\\n",
"0 0 [O] [C] [C] [O] [C] [Branch2] [Ring2] [Ring1] ... -0.974 \n",
"1 1 [C] [C] [O] [C] [=C] [C] [=Ring1] [Branch1] [C... -2.885 \n",
"\n",
" smiles \n",
"0 OCC3OC(OCC2OC(OC(C#N)c1ccccc1)C(O)C(O)C2O)C(O)... \n",
"1 Cc1occc1C(=O)Nc2ccccc2 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_df.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"id": "vxLVhmB0nlwS"
},
"outputs": [],
"source": [
"input = \"smiles\"\n",
"output = \"prop\"\n",
"\n",
"xtrain = list(train_df[input].values)\n",
"ytrain = list(train_df[output].values)\n",
"\n",
"xtest = list(test_df[input].values)\n",
"ytest = list(test_df[output].values)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "QJpZbsLun4-U",
"outputId": "ed0e743b-cff1-4770-837e-a571dd6e5dcd"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MHG-GED\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/content/materials/models/mhg_model/load.py:84: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n",
" model_dict = torch.load(f)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Calculating ROC AUC Score ...\n",
"RMSE Score: 0.5289\n",
"Generating latent plots\n",
"Generating latent plots : Done\n"
]
}
],
"source": [
"# can set hyper parameter for downstream-model\n",
"params = {'kernel': 'rbf', 'C': 2.0}\n",
"result = fm4m.single_modal(model=\"MHG-GED\", x_train=xtrain, y_train=ytrain, x_test=xtest, y_test=ytest, downstream_model=\"SVR\", params=params)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "yXhTC5lQ96_P",
"outputId": "63fdfd38-9590-4876-b07f-9bddf0d70269"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"result[0]: Result, 'RMSE Score: 0.5289', \n",
"result[1]: Row score, 0.5289183453984735, \n",
"result[2]: Actual property values, type \n",
"result[3]: Predicted property values, type \n",
"result[4] & result[5]: latent space, shape (1708, 2)\n"
]
}
],
"source": [
"print(f\"result[0]: Result, '{result[0]}', {type(result[0])}\")\n",
"print(f\"result[1]: Row score, {result[1]}, {type(result[1])}\")\n",
"print(f\"result[2]: Actual property values, type {type(result[2])}\")\n",
"print(f\"result[3]: Predicted property values, type {type(result[3])}\")\n",
"print(f\"result[4] & result[5]: latent space, shape {np.concatenate([result[4], result[5]]).shape}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 489
},
"id": "f4-kEk1jn9tl",
"outputId": "1bbb43e0-75b0-4bc3-94e1-cc2e3ec35ff7"
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAHHCAYAAABHp6kXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB2EklEQVR4nO3dd3xT1f/H8VdaoJRVVgtIK1sURKagKDIEGQ4QZG8R4SsqywHCT4YKKiggoOIABAXKqAsURYaUIcgoDmTKkr0suyO9vz+uCU2btkmbNB3v5+ORR5ubO05a6P3knM/5HIthGAYiIiIi2ZyfrxsgIiIi4gkKakRERCRHUFAjIiIiOYKCGhEREckRFNSIiIhIjqCgRkRERHIEBTUiIiKSIyioERERkRxBQY2IiIjkCApqRCTLsVgsjB071tfNsFu3bh0Wi4V169b5uikikgoFNSLikrlz52KxWOyP/Pnzc9ttt/Hss89y+vRpr15706ZNjB07ln///der1/GG7777LksFaCI5WR5fN0BEspfx48dToUIFbty4wYYNG/jggw/47rvv+OOPPyhQoIBHrnH9+nXy5Ln552nTpk2MGzeOPn36ULRoUY9cI7N89913zJw5U4GNSCZQUCMibmndujX16tUD4KmnnqJEiRK8++67fP3113Tt2jXd501ISCA2Npb8+fOTP39+TzVXRHIRDT+JSIY0a9YMgEOHDgEwefJkGjZsSIkSJQgMDKRu3bosXbo02XEWi4Vnn32WL774gurVqxMQEMDKlSvtr9l6NsaOHcuLL74IQIUKFezDX4cPH6Zx48bUrFnTabuqVq1Ky5YtU217+fLleeSRR/jxxx+pVasW+fPnp1q1akRERLj03pcsWULdunUJDAykZMmS9OjRg+PHj9tf79OnDzNnzrS/J9tDRLxDQY2IZMjBgwcBKFGiBADTpk2jdu3ajB8/ngkTJpAnTx46duzIihUrkh27Zs0ahg4dSufOnZk2bRrly5dPtk/79u3tPUBTpkxh/vz5zJ8/n+DgYHr27Mlvv/3GH3/84XDMr7/+yr59++jRo0ea7d+/fz+dO3emdevWTJw40d7eVatWpXrc3Llz6dSpE/7+/kycOJH+/fsTERHB/fffb8/9GTBgAC1atACwt3v+/PlptklE0skQEXHBnDlzDMD46aefjLNnzxrHjh0zFi1aZJQoUcIIDAw0/vnnH8MwDOPatWsOx8XGxhp33nmn0axZM4ftgOHn52f8+eefya4FGGPGjLE/nzRpkgEYhw4dctjv33//NfLnz2+8/PLLDtuff/55o2DBgsaVK1dSfU/lypUzAGPZsmX2bdHR0UaZMmWM2rVr27etXbvWAIy1a9fa31NISIhx5513GtevX7fvt3z5cgMwXn31Vfu2QYMGGfpTK5I51FMjIm5p3rw5wcHBhIWF0aVLFwoVKsSXX35J2bJlAQgMDLTve/HiRaKjo2nUqBE7duxIdq7GjRtTrVq1dLclKCiItm3bsnDhQgzDAMBqtRIeHk67du0oWLBgmue45ZZbePzxx+3PixQpQq9evdi5cyenTp1yesy2bds4c+YMzzzzjEP+z8MPP8ztt9/utFdKRLxPicIi4paZM2dy2223kSdPHkqVKkXVqlXx87v5+Wj58uW8/vrrREVFERMTY9/uLJekQoUKGW5Pr169CA8PJzIykgceeICffvqJ06dP07NnT5eOr1y5crK23XbbbQAcPnyY0qVLJzvmyJEjgJm3k9Ttt9/Ohg0b3H0bIuIBCmpExC3169e3z35KKjIykscee4wHHniA999/nzJlypA3b17mzJnDggULku2fuFcnvVq2bEmpUqX4/PPPeeCBB/j8888pXbo0zZs3z/C5RSR70fCTiHjMsmXLyJ8/Pz/88ANPPvkkrVu39khwkdqMIX9/f7p168bSpUu5ePEiX331FV27dsXf39+lcx84cMA+dGWzb98+AKeJywDlypUDYO/evcle27t3r/31tNouIp6loEZEPMbf3x+LxYLVarVvO3z4MF999VWGzmvLjUmponDPnj25ePEiAwYM4MqVKy7NerI5ceIEX375pf35pUuXmDdvHrVq1XI69ARQr149QkJC+PDDDx2G2L7//nv++usvHn74YZfbLiKeo+EnEfGYhx9+mHfffZdWrVrRrVs3zpw5w8yZM6lcuTK//fZbus9bt25dAEaNGkWXLl3Imzcvjz76qD1gqF27NnfeeSdLlizhjjvuoE6dOi6f+7bbbqNfv378+uuvlCpVitmzZ3P69GnmzJmT4jF58+blrbfeom/fvjRu3JiuXbty+vRp+7T0oUOHJmv7888/T8uWLfH396dLly7p+TGISBrUUyMiHtOsWTM+/fRTTp06xZAhQ1i4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BvPmzWv/vn79+uzZs8fl9+iqqlWrUrVqVfvzhg0bcvDgQaZMmcL8+fOT7T9o0CD++OMPh94VMGeS/fvvv/z000+ULFmSr776ik6dOhEZGUmNGjWoXr06n332GcOGDWPkyJH4+/vz/PPPU6pUqWTF9AIDA72+3pxPh59GjBiRYma47bFnzx4Mw2DQoEGEhIQQGRnJ1q1badeuHY8++ignT55M8fwTJ04kKCjI/ggLC/POG4mPh//7P3joITOgqVHDTAZWQCM5TCr/3dK1n7uaNm1KVFQU+/fv5/r163z22WcULFjQ/nri7wGuXLlC3bp1iYqKcnjs27ePbt26pasNtq51d9iGh1asWOHQjt27dzsM7aRH9+7dWb16NWfOnOGrr74iMDCQVq1aAeaNd9WqVXz//fdUq1aN6dOnU7VqVQ4dOuT0XLaht/fff588efKQJ08eypYtS3x8vD1hOD3vH8wPp0kDxbi4OPv3mzdvpnv37rRp04bly5ezc+dORo0a5VbCd8mSJQG4ePFistcKFixI5cqVqVmzJrNnz2bLli18+umnTs9TokQJHnnkEfr168eNGzdo3bp1itcsW7YsPXv2ZMaMGfz555/cuHGDDz/80GGfChUqULlyZfsjaRJzWkqXLs3p06cdtp0+fZrSpUu7dZ769etz4MCBZNufffZZli9fztq1awkNDbVvP3jwIDNmzGD27Nk8+OCD1KxZkzFjxlCvXj1mzpxp369bt26cOnWK48ePc/78ecaOHcvZs2epWLGiw3UuXLhAcHCwW212l0+DmuHDh/PXX3+l+qhYsSJr1qxh+fLlLFq0iPvuu486derw/vvvExgYyGeffZbi+UeOHEl0dLT9cezYMc+/ibg4aNECXn/d/Jg6YABs2QK33+75a4n4WKIPnx7Zz122G9Ott95q70lITZ06ddi/fz8hISEON5XKlSvbP+yUKVOGLVu22I+Jj49n+/btKZ6zRo0aJCQk2HNhkrL1FCWeAVOtWjUCAgI4evRosnbYPmzdcccdbN261eFcSacWO9OwYUPCwsIIDw/niy++oGPHjg49ARaLhfvuu49x48axc+dO8uXLl2LO0BdffEFoaCi7du1yCL5seUdWq5W77rqLf/75h3379qX4/pPO/gEIDg52+BC6f/9+h0/tmzZtoly5cowaNYp69epRpUoVjhw5kub7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NWqwcOHCVM/rbMiraNGiDtc5duwYnTp1omjRohQvXpy2bdty+PBh++vr1q2jfv36FCxYkKJFi3Lfffdx5MgRl9+biKROQY2IOLV48WJuv/12qlatSo8ePZg9e7bDgoUrVqzg8ccfp02bNuzcuZPVq1dTv359ACIiIggNDWX8+PGcPHmSkydPunzdy5cv07t3bzZs2MAvv/xClSpVaNOmDZcvX3bp+Dx58tCrVy/mzp3r0N4lS5ZgtVrp2rUrN27coG7duqxYsYI//viDp59+mp49e7J161aX25lUXFwcLVu2pHDhwkRGRrJx40YKFSpEq1atiI2NJT4+nnbt2tG4cWN+++03Nm/ezNNPP20P+EQk47RKt4g49emnn9KjRw8AWrVqRXR0ND///DNNmjQB4I033qBLly6MGzfOfoxtBfrixYvj7+9P4cKFKV26tFvXbdasmcPzjz76iKJFi/Lzzz/zyCOPuHSOJ598kkmTJjm0d86cOXTo0IGgoCCCgoJ44YUX7Ps/99xz/PDDDyxevNgemLkrPDychIQEPvnkE3ugMmfOHIoWLcq6deuoV68e0dHRPPLII1SqVAmAO+64I13XEhHn1FMjIsns3buXrVu30rVrV8Ds/ejcuTOffvqpfZ+oqCgefPBBj1/79OnT9O/fnypVqhAUFESRIkW4cuUKR48edfkct99+Ow0bNmT27NkAHDhwgMjISPr16weA1Wrltddeo0aNGhQvXpxChQrxww8/uHWNpHbt2sWBAwcoXLgwhQoVolChQhQvXpwbN25w8OBBihcvTp8+fWjZsiWPPvoo06ZNc6sHS0TSpp4aEUnm008/JT4+nltuucW+zTAMAgICmDFjBkFBQQQGBrp9Xj8/P4chITCHbRLr3bs358+fZ9q0aZQrV46AgADuvfdeYmNj3bpWv379eO6555g5cyZz5syhUqVKNG7cGIBJkyYxbdo0pk6dSo0aNShYsCBDhgxJ9RoWiyXVtl+5coW6devyxRdfJDs2ODgYMHtunn/+eVauXEl4eDijR49m1apV3HPPPW69NxFxTj01IuIgPj6eefPm8c477xAVFWV/7Nq1i1tuucWeUHvXXXexevXqFM+TL18+rFarw7bg4GBOnTrlEBxERUU57LNx40aef/552rRpQ/Xq1QkICODcuXNuv49OnTrh5+fHggULmDdvHk8++aR9WGjjxo20bduWHj16ULNmTSpWrMi+fftSPV9wcLBDz8r+/fu5du2a/XmdOnXYv38/ISEhVK5c2eERFBRk36927dqMHDmSTZs2ceedd7JgwQK335uIOKegRkQcLF++nIsXL9KvXz/uvPNOh0eHDh3sQ1Bjxoxh4cKFjBkzhr/++ovff/+dt956y36e8uXLs379eo4fP24PSpo0acLZs2d5++23OXjwIDNnzuT77793uH6VKlWYP38+f/31F1u2bKF79+7p6hUqVKgQnTt3ZuTIkZw8eZI+ffo4XGPVqlVs2rSJv/76iwEDBnD69OlUz9esWTNmzJjBzp072bZtGwMHDiRv3rz217t3707JkiVp27YtkZGRHDp0iHXr1vH888/zzz//cOjQIUaOHMnmzZs5cuQIP/74I/v371dejYgHKagREQeffvopzZs3d+hdsOnQoQPbtm3jt99+o0mTJixZsoRvvvmGWrVq0axZM4fZQ+PHj+fw4cNUqlTJPvxyxx138P777zNz5kxq1qzJ1q1bHRJ2bde/ePEiderUoWfPnjz//POEhISk673069ePixcv0rJlS4ehtNGjR1OnTh1atmxJkyZNKF26NO3atUv1XO+88w5hYWE0atSIbt268cILL1CgQAH76wUKFGD9+vXceuuttG/fnjvuuIN+/fpx48YNihQpQoECBdizZw8dOnTgtttu4+mnn2bQoEEMGDAgXe9NRJKzGEkHiUVERESyIfXUiIiISI6goEZERERyBAU1IiIikiMoqBEREZEcQUGNiIiI5AgKakRERCRHUFAjIiIiOYKCGhEREckRFNSIiIhIjqCgRkRERHIEBTUiIiKSIyioERERkRzh/wEiUfqXn5Db0gAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.set_title(\"Parity plot\")\n",
"y_batch_test = np.array(result[2], dtype=float)\n",
"y_prob = np.array(result[3], dtype=float)\n",
"ax.scatter(y_batch_test, y_prob, color=\"blue\", label=f\"Predicted vs Actual (RMSE: {result[1]:.4f})\")\n",
"min_val = min(min(y_batch_test), min(y_prob))\n",
"max_val = max(max(y_batch_test), max(y_prob))\n",
"ax.plot([min_val, max_val], [min_val, max_val], 'r-')\n",
"\n",
"ax.set_xlabel('Actual Values')\n",
"ax.set_ylabel('Predicted Values')\n",
"ax.legend(loc='lower right')"
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"collapsed_sections": [
"qzrjtsflvPlZ"
],
"gpuType": "T4",
"provenance": []
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.0"
}
},
"nbformat": 4,
"nbformat_minor": 4
}