{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"executionInfo": {
"elapsed": 947,
"status": "ok",
"timestamp": 1699354862142,
"user": {
"displayName": "Laurent Lefort",
"userId": "10454990283758645335"
},
"user_tz": -60
},
"id": "zgPHBoEzveMr"
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5VShoE4nAHgp"
},
"source": [
"# REAXYS + SCIFINDER SEARCH v3.3 (match based on ligand/substrate/solvent)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3168\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Data group_jnj \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" Ligand#_jnj \n",
" Temperature [°C]_jnj \n",
" Hydrogen [bar]_jnj \n",
" Time [h]_jnj \n",
" Conversion [-]_jnj \n",
" Enantiomeric excess [-]_jnj \n",
" |ee| [-]_jnj \n",
" |ee| [-] (2digits)_jnj \n",
" ΔΔG‡ [kJ/mol]_jnj \n",
" ΔΔG‡ [kJ/mol] with sign_jnj \n",
" Absolute stereochemistry [-]_jnj \n",
" Product_jnj \n",
" Product SMILES_jnj \n",
" Comment_jnj \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Main data set \n",
" SM1 \n",
" Methanol \n",
" L1 \n",
" 25 \n",
" 5 \n",
" 1 \n",
" 1.0 \n",
" 0.346869 \n",
" 0.346869 \n",
" 0.347 \n",
" 1.794176 \n",
" 1.79 \n",
" (R) \n",
" (R)-P1 \n",
" O=C(OC)[C@H](NC(C)=O)CC1=CC=CC=C1 \n",
" NaN \n",
" \n",
" \n",
" 1 \n",
" Main data set \n",
" SM1 \n",
" Methanol \n",
" L2 \n",
" 25 \n",
" 5 \n",
" 1 \n",
" 1.0 \n",
" -0.000289 \n",
" 0.000289 \n",
" 0.000 \n",
" 0.001431 \n",
" 0.00 \n",
" (S) \n",
" (S)-P1 \n",
" O=C(OC)[C@@H](NC(C)=O)CC1=CC=CC=C1 \n",
" NaN \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Data group_jnj Starting material_jnj Solvent_jnj Ligand#_jnj \\\n",
"0 Main data set SM1 Methanol L1 \n",
"1 Main data set SM1 Methanol L2 \n",
"\n",
" Temperature [°C]_jnj Hydrogen [bar]_jnj Time [h]_jnj Conversion [-]_jnj \\\n",
"0 25 5 1 1.0 \n",
"1 25 5 1 1.0 \n",
"\n",
" Enantiomeric excess [-]_jnj |ee| [-]_jnj |ee| [-] (2digits)_jnj \\\n",
"0 0.346869 0.346869 0.347 \n",
"1 -0.000289 0.000289 0.000 \n",
"\n",
" ΔΔG‡ [kJ/mol]_jnj ΔΔG‡ [kJ/mol] with sign_jnj \\\n",
"0 1.794176 1.79 \n",
"1 0.001431 0.00 \n",
"\n",
" Absolute stereochemistry [-]_jnj Product_jnj \\\n",
"0 (R) (R)-P1 \n",
"1 (S) (S)-P1 \n",
"\n",
" Product SMILES_jnj Comment_jnj \n",
"0 O=C(OC)[C@H](NC(C)=O)CC1=CC=CC=C1 NaN \n",
"1 O=C(OC)[C@@H](NC(C)=O)CC1=CC=CC=C1 NaN "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#IMPORT JNJ EXP DATA\n",
"jnj_exp = pd.read_excel('C=C_AH_dataset_v3.6red.xlsx','All data')\n",
"jnj_exp = jnj_exp.drop(['Ligand','Rh [mol%]','L [mol%]'], axis = 1)\n",
"jnj_exp = jnj_exp[jnj_exp['Data group'].isin(['Main data set','Additional set', 'Pressure effect'])]\n",
"jnj_exp.columns = [f'{i}_jnj' for i in jnj_exp.columns]\n",
"\n",
"all_jnj_conv = jnj_exp['Conversion [-]_jnj'].values\n",
"all_jnj_ee = jnj_exp['|ee| [-] (2digits)_jnj'].values\n",
"all_jnj_ddg = jnj_exp['ΔΔG‡ [kJ/mol]_jnj'].values\n",
"\n",
"print(len(jnj_exp))\n",
"jnj_exp.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"236\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Data group \n",
" Ligand# \n",
" Substrate \n",
" Solvent \n",
" Temperature [°C] \n",
" Hydrogen [bar] \n",
" Time [h] \n",
" Yield [-] \n",
" |ee| [-] \n",
" Enantiomeric excess [-] \n",
" ΔΔG‡ [kJ/mol] \n",
" Absolute stereochemistry [-] \n",
" ΔΔG‡ [kJ/mol] with sign \n",
" \n",
" \n",
" \n",
" \n",
" 28 \n",
" Cleaned Reaxys export \n",
" L64 \n",
" Methyl (Z)-2-acetylamino-3-phenylpropenoate \n",
" Methanol \n",
" 30 \n",
" 10 \n",
" NaN \n",
" NaN \n",
" 0.990 \n",
" 0.990 \n",
" 13.34199 \n",
" (S) \n",
" -13.34 \n",
" \n",
" \n",
" 61 \n",
" Cleaned Reaxys export \n",
" L67 \n",
" Methyl (Z)-2-acetylamino-3-phenylpropenoate \n",
" Methanol \n",
" 35 \n",
" 3 \n",
" NaN \n",
" NaN \n",
" 0.999 \n",
" 0.999 \n",
" NaN \n",
" (R) \n",
" 19.47 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Data group Ligand# \\\n",
"28 Cleaned Reaxys export L64 \n",
"61 Cleaned Reaxys export L67 \n",
"\n",
" Substrate Solvent Temperature [°C] \\\n",
"28 Methyl (Z)-2-acetylamino-3-phenylpropenoate Methanol 30 \n",
"61 Methyl (Z)-2-acetylamino-3-phenylpropenoate Methanol 35 \n",
"\n",
" Hydrogen [bar] Time [h] Yield [-] |ee| [-] Enantiomeric excess [-] \\\n",
"28 10 NaN NaN 0.990 0.990 \n",
"61 3 NaN NaN 0.999 0.999 \n",
"\n",
" ΔΔG‡ [kJ/mol] Absolute stereochemistry [-] ΔΔG‡ [kJ/mol] with sign \n",
"28 13.34199 (S) -13.34 \n",
"61 NaN (R) 19.47 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#IMPORT REAXYS DATA\n",
"reaxys = pd.read_excel('C=C_AH_dataset_v3.6red.xlsx','Cleaned Reaxys export')\n",
"\n",
"#save raw values to compare distributions (not only overlapping ligands)\n",
"raw_reaxys_yield = reaxys['Yield [-]'].values\n",
"raw_reaxys_ee = reaxys['|ee| [-]'].values\n",
"raw_reaxys_ddg = reaxys['ΔΔG‡ [kJ/mol]'].values\n",
"\n",
"reaxys = reaxys[reaxys['Ligand#'].notnull()]\n",
"reaxys = reaxys[reaxys.Solvent.isin(['Methanol','1,2-Dichloroethane'])]\n",
"reaxys = reaxys.loc[:,['Data group','Ligand#','Substrate', 'Solvent','Temperature [°C]', \n",
" 'Hydrogen [bar]','Time [h]', 'Yield [-]','|ee| [-]','Enantiomeric excess [-]', \n",
" 'ΔΔG‡ [kJ/mol]','Absolute stereochemistry [-]']]\n",
"\n",
"#replace with median\n",
"reaxys['Temperature [°C]'] = reaxys['Temperature [°C]'].fillna(np.nanmedian(np.array(reaxys['Temperature [°C]'].values)))\n",
"reaxys['Hydrogen [bar]'] = reaxys['Hydrogen [bar]'].fillna(np.nanmedian(np.array(reaxys['Hydrogen [bar]'].values)))\n",
"\n",
"reaxys['Temperature [°C]'] = reaxys['Temperature [°C]'].astype(int)\n",
"reaxys['Hydrogen [bar]'] = reaxys['Hydrogen [bar]'].astype(int)\n",
"#=ROUND(IF(R2=\"(S)\";(8.3145*(I2+273.15)*LN((O2+1)/(1-O2))*0.001)*(-1);8.3145*(I2+273.15)*LN((O2+1)/(1-O2))*0.001);2)\n",
"reaxys['ΔΔG‡ [kJ/mol] with sign'] = np.round((-1 + 2*(reaxys['Absolute stereochemistry [-]']==\"(R)\"))*8.3145*(reaxys['Temperature [°C]']+273.15)*np.log((reaxys['|ee| [-]']+1)/(1-reaxys['|ee| [-]']))*0.001, decimals = 2)\n",
"print(len(reaxys))\n",
"reaxys.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxUAAAGGCAYAAAANcKzOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAACU2UlEQVR4nOzdd3hUVfrA8e+dmpn0XiAJAULvXZQm0myruMoqFtT1h4tlWVQQWRRcBcVV0VWxA6tib6wigiIgAtItEHoglIQQUiZ16v39MclADCVlkpkk7+d57jMzd849804IOfPOaYqqqipCCCGEEEIIUUsaXwcghBBCCCGEaNwkqRBCCCGEEELUiSQVQgghhBBCiDqRpEIIIYQQQghRJ5JUCCGEEEIIIepEkgohhBBCCCFEnUhSIYQQQgghhKgTSSqEEEIIIYQQdSJJhRBCCCGEEKJOJKkQzcKvv/7K7bffTkpKCgEBAQQFBdGrVy/mzZtHbm6ur8NrEIsWLUJRFA4dOuTrUIQQolFr1aoVs2bNqvfXGTp0KBMmTLhguQkTJqAoCoqi0KVLl2rVfc0119T4GiHOR5IK0eS98cYb9O7dm82bN/PQQw+xfPlyPv/8c66//npeffVV7rzzTl+H2CCuuOIKNmzYQHx8vK9DEUII4WVxcXFs2LCBJUuWVKv8vHnz2LBhAz179qznyERzofN1AELUpw0bNvC3v/2NESNG8MUXX2A0Gj3PjRgxggceeIDly5f7MMK6cTqdOByOSu/rXKKjo4mOjm6AqIQQQjQ0o9HIgAEDql2+Xbt2AISEhJCTk1NfYYlmRHoqRJM2Z84cFEXh9ddfP+sHb4PBwNVXXw2Ay+Vi3rx5dOjQAaPRSExMDLfeeitHjx6tdM3QoUPp0qULmzdvZtCgQZjNZlq3bs1TTz2Fy+UC4OTJkxgMBmbOnFnlNXfv3o2iKLz44ouec1lZWUycOJGWLVtiMBhISUlh9uzZOBwOT5lDhw6hKArz5s3jiSeeICUlBaPRyA8//IDL5eKJJ56gffv2mEwmwsLC6NatGy+88ILn+nMNf3r77bfp3r07AQEBREREcO2115KWllapzIQJEwgKCmL//v1cfvnlBAUFkZiYyAMPPIDVaq3mv4YQQjRtH374IRdddBGBgYEEBQUxatQotm/fXqXcli1buPrqq4mIiCAgIICePXvy0Ucf+SBiIbxHkgrRZDmdTlatWkXv3r1JTEy8YPm//e1vTJs2jREjRrB06VL+9a9/sXz5cgYOHFjlW5ysrCzGjx/PzTffzNKlSxkzZgzTp0/n3XffBdy9AldeeSWLFy/2JBoVFi5ciMFgYPz48Z66+vXrx7fffsujjz7KN998w5133sncuXO56667qsT54osvsmrVKv7973/zzTff0KFDB+bNm8esWbO48cYb+frrr/nwww+58847yc/PP+97njt3LnfeeSedO3fms88+44UXXuDXX3/loosuYt++fZXK2u12rr76aoYPH86XX37JHXfcwfPPP8/TTz99wZ+tEEI0dXPmzOHGG2+kU6dOfPTRR7zzzjsUFhYyaNAgdu3a5Sn3ww8/cPHFF5Ofn8+rr77Kl19+SY8ePRg3bhyLFi3y3RsQoq5UIZqorKwsFVD/8pe/XLBsWlqaCqiTJk2qdP7nn39WAfWRRx7xnBsyZIgKqD///HOlsp06dVJHjRrlebx06VIVUFesWOE553A41ISEBPW6667znJs4caIaFBSkHj58uFJ9//73v1VA3blzp6qqqpqenq4Caps2bVSbzVap7JVXXqn26NHjvO9x4cKFKqCmp6erqqqqeXl5qslkUi+//PJK5TIyMlSj0ajedNNNnnO33XabCqgfffRRpbKXX3652r59+/O+rhBCNDXJycnqY4895nmckZGh6nQ69b777qtUrrCwUI2Li1NvuOEGz7kOHTqoPXv2VO12e6WyV155pRofH686nU7PuSFDhqi33XbbBeO57bbb1OTk5Fq9lyFDhqidO3eu1bVCnEl6KoTA/c0RUGWVjX79+tGxY0e+//77Sufj4uLo169fpXPdunXj8OHDnsdjxowhLi6OhQsXes59++23HD9+nDvuuMNz7quvvmLYsGEkJCTgcDg8x5gxYwBYs2ZNpde5+uqr0ev1VeL85ZdfmDRpEt9++y0Wi+WC73nDhg2UlpZWec+JiYlceumlVd6zoihcddVV533PQgjRHH377bc4HA5uvfXWSn/HAwICGDJkCKtXrwZg//797N6929NTfWbZyy+/nMzMTPbs2eO1uFwuV6XXcDqdXqtbiD+SpEI0WVFRUZjNZtLT0y9Y9tSpUwBnXRkpISHB83yFyMjIKuWMRiOlpaWexzqdjltuuYXPP//cMwxp0aJFxMfHM2rUKE+5EydO8L///Q+9Xl/p6Ny5M0CVoVdni3H69On8+9//ZuPGjYwZM4bIyEiGDx/Oli1bvPaezWYzAQEBVd5zWVnZOV9DCCGagxMnTgDQt2/fKn/LP/zwQ8/f8YpyDz74YJVykyZNAqr+za+LO+64o9JrDB8+3Gt1C/FHsvqTaLK0Wi3Dhw/nm2++4ejRo7Rs2fKcZSuShMzMzCrljh8/TlRUVK1iuP3223nmmWf44IMPGDduHEuXLmXy5MlotVpPmaioKLp168aTTz551joSEhIqPVYUpUoZnU7HlClTmDJlCvn5+Xz33Xc88sgjjBo1iiNHjmA2m6tcc+Z7/qO6vGchhGhuKv5efvLJJyQnJ1+w3PTp0xk7duxZy7Rv395rcc2aNYt7773X8zg4ONhrdQvxR5JUiCZt+vTpLFu2jLvuuosvv/wSg8FQ6Xm73c7y5cu59NJLAXj33Xfp27ev5/nNmzeTlpbGjBkzavX6HTt2pH///ixcuBCn04nVauX222+vVObKK69k2bJltGnThvDw8Fq9zpnCwsL485//zLFjx5g8eTKHDh2iU6dOVcpddNFFmEwm3n33Xa6//nrP+aNHj7Jq1Sr+/Oc/1zkWIYRoDkaNGoVOp+PAgQNcd9115yzXvn17UlNT+eWXX5gzZ069x9WqVStatWpV768jBEhSIZq4iy66iAULFjBp0iR69+7N3/72Nzp37ozdbmf79u28/vrrdOnShc8//5z/+7//4z//+Q8ajYYxY8Zw6NAhZs6cSWJiIv/4xz9qHcMdd9zBxIkTOX78OAMHDqzyLdTjjz/OypUrGThwIPfffz/t27enrKyMQ4cOsWzZMl599dXz9rIAXHXVVXTp0oU+ffoQHR3N4cOHmT9/PsnJyaSmpp71mrCwMGbOnMkjjzzCrbfeyo033sipU6eYPXs2AQEBPPbYY7V+z0II0Zy0atWKxx9/nBkzZnDw4EFGjx5NeHg4J06cYNOmTQQGBjJ79mwAXnvtNcaMGcOoUaOYMGECLVq0IDc3l7S0NLZt28bHH3/s43cjRO1IUiGavLvuuot+/fp5lj/NyspCr9fTrl07brrpJk/X8IIFC2jTpg1vvfUWL7/8MqGhoYwePZq5c+eedQ5Fdf3lL39h8uTJHD169Kwf1OPj49myZQv/+te/eOaZZzh69CjBwcGkpKR4GqYLGTZsGJ9++ilvvvkmFouFuLg4RowYwcyZM6tM6j7T9OnTiYmJ4cUXX+TDDz/EZDIxdOhQ5syZc85kRAghRFXTp0+nU6dOvPDCC7z//vtYrVbi4uLo27cvd999t6fcsGHD2LRpE08++SSTJ08mLy+PyMhIOnXqxA033ODDdyBE3Siqqqq+DkIIIYQQorFo1aoVEyZMYNasWfX6OkOHDqVVq1YX3L9iwoQJrF69mv3796MoSqV5e+ficrlwuVwMHz6cU6dO8fvvv3spatFcyepPQgghhBCN3OHDh9Hr9XTv3r1a5ceOHYter2ft2rX1HJloLmT4kxBCCCFEI3bmKk8mk6la1zz77LP885//rNE1QpyPJBVCCCGEEI1YbVZ5atOmTf0EI5otmVMhhBBCCCGEqBOZUyGEEEIIIYSoE0kqhBBCCCGEEHXi0zkVa9eu5ZlnnmHr1q1kZmby+eefc80113ieV1WV2bNn8/rrr5OXl0f//v15+eWX6dy5s6eM1WrlwQcf5P3336e0tJThw4fzyiuvXHCzsDO5XC6OHz9OcHAwiqJ48y0KIUSjpKoqhYWFJCQkoNE0n++fpD0QQojKqt0eqD60bNkydcaMGeqnn36qAurnn39e6fmnnnpKDQ4OVj/99FP1t99+U8eNG6fGx8erFovFU+buu+9WW7Rooa5cuVLdtm2bOmzYMLV79+6qw+GodhxHjhxRATnkkEMOOf5wHDlyxFt/8hsFaQ/kkEMOOc5+XKg98JuJ2oqiVOqpUFWVhIQEJk+ezLRp0wB3r0RsbCxPP/00EydOpKCggOjoaN555x3GjRsHwPHjx0lMTGTZsmWMGjWqWq9dUFBAWFgYR44cISQkpF7enxBCNCYWi4XExETy8/MJDQ31dTgNRtoDIYSorLrtgd8uKZuenk5WVhYjR470nDMajQwZMoT169czceJEtm7dit1ur1QmISGBLl26sH79+monFRVd3CEhIdKICCHEGZrbECBpD4QQ4uwu1B74bVKRlZUFQGxsbKXzsbGxHD582FPGYDAQHh5epUzF9WdjtVqxWq2exxaLxVthCyGEEEII0ez4/ey7P2ZFqqpeMFO6UJm5c+cSGhrqORITE70SqxBCCCGEEM2R3yYVcXFxAFV6HLKzsz29F3FxcdhsNvLy8s5Z5mymT59OQUGB5zhy5IiXoxdCCCGEEKL58NvhTykpKcTFxbFy5Up69uwJgM1mY82aNTz99NMA9O7dG71ez8qVK7nhhhsAyMzM5Pfff2fevHnnrNtoNGI0Gmsck9PpxG631+LdCNGwDAZDs1oGVIiGJu2BaCz0ej1ardbXYYhmwKdJRVFREfv37/c8Tk9PZ8eOHURERJCUlMTkyZOZM2cOqamppKamMmfOHMxmMzfddBMAoaGh3HnnnTzwwANERkYSERHBgw8+SNeuXbnsssu8FqeqqmRlZZGfn++1OoWoTxqNhpSUFAwGg69DEaJJkfZANEZhYWHExcU1u4UXRMPyaVKxZcsWhg0b5nk8ZcoUAG677TYWLVrE1KlTKS0tZdKkSZ7N71asWEFwcLDnmueffx6dTscNN9zg2fxu0aJFXs3KKxqQmJgYzGaz/KcUfq1i867MzEySkpLk91UIL5L2QDQmqqpSUlJCdnY2APHx8T6OSDRlfrNPhS9ZLBZCQ0MpKCiosoSg0+lk7969xMTEEBkZ6aMIhaiZgoICjh8/Ttu2bdHr9b4ORzRC5/u72JRJeyCaolOnTpGdnU27du1kKJSoseq2BzLo+gIqxsyazWYfRyJE9VUMe3I6nT6ORIimQ9oD0VhV/M7KPCBRnySpqCbp4haNify+ClF/5P+XaGzkd1Y0BEkqhBBCCCGEEHUiSYUQQgghhBCiTvx2nwohhGiOMjIyyMnJ8Vp9UVFRJCUlea0+IYQQDaOxtQeSVIgGYbPZZM8EIS4gIyODjh07UFJS6rU6zWYTaWm7JbEQfkPaAyEurDG2B5JUiFopLCzk7rvv5osvviAkJISpU6fy5Zdf0qNHD+bPn0+rVq3461//yv79+/n888+55pprWLx4MZ9++imPPvoo+/fvJz4+nvvuu48HHnjAU6+iKJ7yFcLCwpg/fz4TJkzg0KFDpKSk8P777/Piiy+ybds22rRpw8svv8zQoUMb/gchhBfl5ORQUlLKu4/cQMek6DrXl5ZxkpvnfEROTo4kFaLeSHsghPc1xvZAkgpRK1OmTOGnn35i6dKlxMbG8uijj7Jt2zZ69OjhKfPMM88wc+ZM/vnPfwKwdetWbrjhBmbNmsW4ceNYv349kyZNIjIykgkTJtTo9R966CHmz59Pp06deO6557j66qtJT0+XteNFk9AxKZpe7Vr4OgwhqkXaAyHqT2NqDySpEDVWWFjI4sWLWbJkCcOHDwdg4cKFJCQkVCp36aWX8uCDD3oejx8/nuHDhzNz5kwA2rVrx65du3jmmWdq3Ijce++9XHfddQAsWLCA5cuX89ZbbzF16tQ6vDMhhBA1Ie2BEKKCrP4kauzgwYPY7Xb69evnORcaGkr79u0rlevTp0+lx2lpaVx88cWVzl188cXs27evxpu0XXTRRZ77Op2OPn36kJaWVqM6hBBC1I20B0KICpJUiBpTVRWouplOxfkKgYGBVZ6/0DWKolQ5V90dQGVzHyGEaFjSHgghKkhSIWqsTZs26PV6Nm3a5DlnsVjYt2/fea/r1KkT69atq3Ru/fr1tGvXDq1WC0B0dDSZmZme5/ft20dJSUmVujZu3Oi573A42Lp1Kx06dKjV+xFCCFE70h4IISrInApRY8HBwdx222089NBDREREEBMTw2OPPYZGoznvt0MPPPAAffv25V//+hfjxo1jw4YNvPTSS7zyyiueMpdeeikvvfQSAwYMwOVyMW3aNPR6fZW6Xn75ZVJTU+nYsSPPP/88eXl53HHHHfXyfoUQQpydtAdCiArSUyFq5bnnnuOiiy7iyiuv5LLLLuPiiy+mY8eOBAQEnPOaXr168dFHH/HBBx/QpUsXHn30UR5//PFKk/KeffZZEhMTGTx4MDfddBMPPvggZrO5Sl1PPfUUTz/9NN27d+fHH3/kyy+/JCoqqj7eqhBCiPOQ9kAIAdJTIWopODiY9957z/O4uLiY2bNn83//938AHDp06KzXXXfddZ5VOs4mISGBb7/9ttK5/Pz8KuU6duxYqctbCCGEb0h7IIQASSpELW3fvp3du3fTr18/CgoKePzxxwH405/+5OPIhBBCNCRpD4QQIEmFqIN///vf7NmzB4PBQO/evfnxxx+ly1kIIZohaQ+EEJJUiFrp2bMnW7dubfDXbdWqVZUlBoUQQviOtAdCCJCJ2kIIIYQQQog6kqRCCCGEEEIIUSeSVAghhBBCCCHqRJIKIYQQfm/u3Ln07duX4OBgYmJiuOaaa9izZ0+lMhMmTEBRlErHgAEDfBSxEEI0L5JUCCGE8Htr1qzhnnvuYePGjaxcuRKHw8HIkSMpLi6uVG706NFkZmZ6jmXLlvkoYiGEaF5k9SchhBB+b/ny5ZUeL1y4kJiYGLZu3crgwYM9541GI3FxcQ0dnhBCNHuSVNRSRkYGOTk5DfZ6UVFRJCUlNdjrCSGEPysoKAAgIiKi0vnVq1cTExNDWFgYQ4YM4cknnyQmJuac9VitVqxWq+exxWKpcSzSHgghhCQVtZKRkUGHjh0pLSlpsNc0mc3sTkurdkMyYcIE8vPz+eKLLyqdX716NcOGDSMvL4/JkyezePHi89ajqioTJkw4a7lRo0ZV+fawwqxZs5g9ezYAWq2WsLAwOnXqxNixY/nb3/6G0Wis1vv4Y8xhYWHVvk4I0TSpqsqUKVO45JJL6NKli+f8mDFjuP7660lOTiY9PZ2ZM2dy6aWXsnXr1nP+zZk7d67nb1VtSHvgJu2BEEKSilrIycmhtKSE8dOeITapTb2/3omMA7z39EPk5OR49dupF154gaeeesrzOD4+noULFzJ69OgqZUePHs3ChQsrnbtQQ9C5c2e+++47XC4Xp06dYvXq1TzxxBO88847rF69muDgYO+8ESFEs3Lvvffy66+/sm7dukrnx40b57nfpUsX+vTpQ3JyMl9//TVjx449a13Tp09nypQpnscWi4XExMRqxyLtgZu0B0IISSrqIDapDS1TO/s6jFoLDQ0lNDS00rmwsLCzjkeuzThlnU7nuSYhIYGuXbsyYsQIunfvztNPP80TTzwBwLvvvsv8+fPZs2cPgYGBXHrppcyfP5+YmBgOHTrEsGHDAAgPDwfgtttuY9GiRSxfvpwnnniC33//Ha1Wy0UXXcQLL7xAmzb137ALIXzjvvvuY+nSpaxdu5aWLVuet2x8fDzJycns27fvnGWMRmONvik/F2kPzk/aAyGaPln9STSoDh06MGbMGD777DPPOZvNxr/+9S9++eUXvvjiC9LT05kwYQIAiYmJfPrppwDs2bOHzMxMXnjhBQCKi4uZMmUKmzdv5vvvv0ej0XDttdficrka/H0J0WBK82DDS7DpNdi/EtTm8fuuqir33nsvn332GatWrSIlJeWC15w6dYojR44QHx/fABGKmpL2QIimRXoqmrCvvvqKoKCgSuecTqfX6po2bRozZ86scV0dOnRgxYoVnsd33HGH537r1q158cUX6devH0VFRQQFBXkmYlZMvqxw3XXXVar3rbfeIiYmhl27dlUaZy1Ek5KzF2xF7vvHtkJEW4i48Afsxu6ee+5hyZIlfPnllwQHB5OVlQW4v2E3mUwUFRUxa9YsrrvuOuLj4zl06BCPPPIIUVFRXHvttT6O3vekPRBC1DdJKpqwYcOGsWDBgkrnfv75Z26++Wav1PXHVVeqS1VVFEXxPN6+fTuzZs1ix44d5Obmer5ZysjIoFOnTues58CBA8ycOZONGzeSk5NT6TppRESTVXyy8uOirGaRVFT8/Rk6dGil8wsXLmTChAlotVp+++03/vvf/5Kfn098fDzDhg3jww8/lPH6SHsghKh/klQ0YYGBgbRt27bSuaNHj3qtrtpKS0vzDF0oLi5m5MiRjBw5knfffZfo6GgyMjIYNWoUNpvtvPVcddVVJCYm8sYbb5CQkIDL5aJLly4XvE6IRq0iqQhpAZZjUJjl23gaiKqq533eZDLx7bffNlA0jY+0B0KI+iZJhWhQu3fvZvny5UyfPt3zOCcnh6eeesqz4sqWLVsqXWMwGIDKXfWnTp0iLS2N1157jUGDBgFUWQlGiCZHdUFx+X4IcV3Lk4pM38YkRC1JeyBE0yJJhagWq9XqGcNcQafTERUVdc5rHA4HWVlZVZYQ7NGjBw899BAASUlJGAwG/vOf/3D33Xfz+++/869//atSPcnJySiKwldffcXll1+OyWQiPDycyMhIXn/9deLj48nIyODhhx/2/hsXwp+U5oHqBI0eojrA3uVgtYC9BPRmX0cnmglpD4QQZyNJRR2cyDjQpF7nfJYvX15lBZX27duze/fuc16zc+dO4uPj0Wq1hIaG0qlTJ6ZPn15ps6Po6GgWLVrEI488wosvvkivXr3497//zdVXX+2pp0WLFsyePZuHH36Y22+/nVtvvZVFixbxwQcfcP/999OlSxfat2/Piy++WGW8tRBNSsXQp8Ao0AeAKdydaBRmQURr38bWzEl7IO2BEM2dol5ooGozYLFYCA0NpaCggJCQkErPlZWVkZ6eTkpKCgEBAUDj2EFVNG9n+70V/m/btm307t2bra/eQ692LaoWSF8LGeshrhu0vxzSlkL2Lmg1GJIHVq1v7zF63/0yW7dupVevXjWK5Xx/F5syaQ9EUyRtQuNzwfagpvU1QHsgPRW1kJSUxO60NHJychrsNaOioqQBEaK58/RURLtvg2LdSUVR85is7Y+kPRBCCDdJKmopKSlJ/qgLIRpWaa771lw+dt0c6b4ty/dJOMJN2gMhhJAdtYUQovGwFbtvjeX7LgSEum/LLL6JRwghhCgnSYUQQjQGLic4ytz3K1Z6MpaPbXWUgcPqm7iEEEIIJKkQQojGwV56+r6+fKKlzgi68vtW6a0QQgjhO5JUCCFEY2AvX11IbwbljD/dAeW9FWUFDR+TEEIIUU6SCiGEaAzOTCrOZJR5FUIIIXxPkgohhGgMPEmFqfL5ip4Kq/RUCCGE8B1JKoQQojGwlScVhsDK5z09FZJUCCGE8B3Zp6KWMjIyZLOjJmjo0KH06NGD+fPnX7Bsq1atmDx5MpMnT671661evZphw4aRl5dHWFhYresRzcC5hj/JsrI+J+1B0yTtgRA1I0lFLWRkZNCxYwdKSkovXNhLzGYTaWm7a9SQTJgwgcWLFwOg1WpJSEjgiiuuYM6cOYSHh9dXqD71ww8/8Pjjj/PLL79QVlZGixYtGDhwIG+99RY63YV/3T/77DP0er3n8dChQ1mzZk2Vcna7nc2bNxMYGFjlOSHqxYWSChn+5BPSHvgvaQ+EaFiSVNRCTk4OJSWlvPvIDXRMiq7310vLOMnNcz4iJyenxt9OjR49moULF+JwONi1axd33HEH+fn5vP/++/UUbf1q1aoVixYtYujQoVWe27lzJ2PGjOH+++/nP//5DyaTiX379vHJJ5/gcrmqVX9ERESVc3fddRePP/54pXM6nY7o6Pr/t68Om82GwWDwdRiivlVsfFclqQg5/bzLARr5s96QpD3wHWkPqpL2QPiSzKmog45J0fRq16Lej7o0VEajkbi4OFq2bMnIkSMZN24cK1as8Dy/cOFCOnbsSEBAAB06dOCVV16pdP20adNo164dZrOZ1q1bM3PmTOx2OwCqqnLZZZcxevRoVFUFID8/n6SkJGbMmIGqqrRt25Z///vfler8/fff0Wg0HDhwAIBZs2aRlJSE0WgkISGB+++/v1bvdeXKlcTHxzNv3jy6dOlCmzZtGD16NG+++WalP7I//fQTQ4YMwWw2Ex4ezqhRo8jLywPc30T9sfvabDYTFxdX6QB3g3Zmt7iiKLz55ptce+21mM1mUlNTWbp0aaW6li1bRrt27TCZTAwbNoxDhw5VeR/r169n8ODBmEwmEhMTuf/++ykuLvY836pVK5544gkmTJhAaGgod911V61+XqKRqdinwvCHpEJnAk35t6kyBMpnpD2Q9kDaA9HcSVLRjBw8eJDly5d7unPfeOMNZsyYwZNPPklaWhpz5sxh5syZni5ygODgYBYtWsSuXbt44YUXeOONN3j++ecB9x/NxYsXs2nTJl588UUA7r77bmJjY5k1axaKonDHHXewcOHCSnG8/fbbDBo0iDZt2vDJJ5/w/PPP89prr7Fv3z6++OILunbtWqv3FxcXR2ZmJmvXrj1nmR07djB8+HA6d+7Mhg0bWLduHVdddRVOp7NWr/lHs2fP5oYbbuDXX3/l8ssvZ/z48eTm5gJw5MgRxo4dy+WXX86OHTv461//ysMPP1zp+t9++41Ro0YxduxYfv31Vz788EPWrVvHvffeW6ncM888Q5cuXdi6dSszZ870SuzCz51r+JOigDHYfd9W2LAxiUZL2gNpD4TwNr/uJ3c4HMyaNYv33nuPrKws4uPjmTBhAv/85z/RaNz5kKqqzJ49m9dff528vDz69+/Pyy+/TOfOnX0cvX/46quvCAoKwul0UlZWBsBzzz0HwL/+9S+effZZxo4dC0BKSgq7du3itdde47bbbgPgn//8p6euVq1a8cADD/Dhhx8ydepUAFq0aMFrr73GLbfcwokTJ/jf//7H9u3bPQ3V7bffzqOPPsqmTZvo168fdrudd999l2eeeQZwj0eOi4vjsssuQ6/Xk5SURL9+/Wr1Xq+//nq+/fZbhgwZQlxcHAMGDGD48OHceuuthIS4h4jMmzePPn36VPoG7kK/K6+88gpvvvmm5/HEiRN59tlnz1p2woQJ3HjjjQDMmTOH//znP2zatInRo0ezYMECWrduzfPPP4+iKLRv357ffvuNp59+2nP9M888w0033eT5diw1NZUXX3yRIUOGsGDBAgIC3LsnX3rppTz44IM1/yGJxst+juFPAIYgKM09PURKiLOQ9kDaAyHqk1/3VDz99NO8+uqrvPTSS6SlpTFv3jyeeeYZ/vOf/3jKzJs3j+eee46XXnqJzZs3ExcXx4gRIygslG/sAIYNG8aOHTv4+eefue+++xg1ahT33XcfJ0+e5MiRI9x5550EBQV5jieeeMLTDQ3wySefcMkllxAXF0dQUBAzZ84kIyOj0mtcf/31jB07lrlz5/Lss8/Srl07z3Px8fFcccUVvP3224C7USsrK+P666/3XFtaWkrr1q256667+Pzzz3E4HJ7r77777krxZWRkMGbMmCrnwD35cOHChRw9epR58+aRkJDAk08+SefOncnMzAROfzNVE+PHj2fHjh2eY/r06ecs261bN8/9wMBAgoODyc7OBiAtLY0BAwagKIqnzEUXXVTp+q1bt7Jo0aJK72/UqFG4XC7S09M95fr06VOj9yAaOZcTHFb3/T8OfwIwBrlvrUUNF5NodKQ9kPZAiPrk10nFhg0b+NOf/sQVV1xBq1at+POf/8zIkSPZsmUL4O6lmD9/PjNmzGDs2LF06dKFxYsXU1JSwpIlS3wcvX8IDAykbdu2dOvWjRdffBGr1crs2bM9E9XeeOONSn8gf//9dzZu3AjAxo0b+ctf/sKYMWP46quv2L59OzNmzMBms1V6jZKSErZu3YpWq2Xfvn1VYvjrX//KBx98QGlpKQsXLmTcuHGYze4PRomJiezZs4eXX34Zk8nEpEmTGDx4sGec7uOPP14pvoSEBN58880q587UokULbrnlFl5++WV27dpFWVkZr776KgAm0x82DquG0NBQ2rZt6zmioqLOWfbMlULAPSSg4mddMc74fFwuFxMnTqz0/n755Rf27dtHmzZtPOVklZFmpmLoE4p7DsUfVexdYZOkQpybtAfSHghRn/x6+NMll1zCq6++yt69e2nXrh2//PIL69at80yGSk9PJysri5EjR3quMRqNDBkyhPXr1zNx4sSz1mu1WrFarZ7HFkvzmdz42GOPMWbMGP72t7/RokULDh48yPjx489a9qeffiI5OZkZM2Z4zh0+fLhKuQceeACNRsM333zD5ZdfzhVXXMGll17qef7yyy8nMDCQBQsW8M0331QZ42oymbj66qu5+uqrueeee+jQoQO//fYbvXr1IiYmhpiYGE9ZnU5HixYtaNu2bbXeb3h4OPHx8Z6Jbd26deP7779n9uzZ1bremzp16sQXX3xR6VxFg12hV69e7Ny5s9rvTzQTZ+6mfcY3mx6G8p4KGf4kakDaA2kPhPAmv04qpk2bRkFBAR06dECr1eJ0OnnyySc9YxSzsrIAiI2NrXRdbGzsWf/YVZg7d65P/oj4g6FDh9K5c2fmzJnDrFmzuP/++wkJCWHMmDFYrVa2bNlCXl4eU6ZMoW3btmRkZPDBBx/Qt29fvv76az7//PNK9X399de8/fbbbNiwgV69evHwww9z22238euvv3rWPtdqtUyYMIHp06fTtm3bSl28ixYtwul00r9/f8xmM++88w4mk4nk5OQav7fXXnuNHTt2cO21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o02aNEHPnj3Rp08f+Pn5ISUlRetj9e7dG25ubjh//jxGjBihsa1///7YtWsX0tLS0KVLF3Tr1g1LliyBj49Pjfu0sbHBzJkzERgYiJ49e8LKygqbN2+usq+npyf27NmDzMxMdOrUCXFxcRg7duxLJy5ERKQdBwcHHDlyBP/5z38wZMgQtG/fHmPGjMHDhw/VZy7GjRuHH3/8EevXr8drr72GiIgIrF+/Hq1bt67j6Il0o5CKi6qJiIiISGuHDx9GbGxspe+h0FdsbCx8fX2r/b6ggoICtG7dGtnZ2QgKCqrVPhUKBbZv317tvYREuuKZCiIiIiIzFh4ejvDw8Br7xMXFwcnJyUQRkSXijdpEREREZsjLywsXL14EANja2tbYd968eZg6dSqA548KJzI0TiqIiIiI9ODr64spU6YYfL+DBw+Gq6trtduVSmWtn/TUvHlzNG/e3ECREVXGeyqIiIiIiEgvvKeCiIiIiIj0wkkFERERERHphZMKIiIiIiLSCycVRERERESkF04qiIiIiIhIL5xUEBERERGRXjipICIiIiIivXBSQUREREREevl/s6SxgjiXbEAAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# COMPARE DISTRIBUTIONS\n",
"import seaborn as sns\n",
"\n",
"fig, axes = plt.subplots(1,2, figsize = (8,4))\n",
"\n",
"for pair, ax, lab in zip([(all_jnj_conv, raw_reaxys_yield),\n",
" #(all_jnj_ee, raw_reaxys_ee),\n",
" (all_jnj_ee, raw_reaxys_ee)], axes.flatten(), \n",
" ['Conversion','|ee| [-]']):\n",
" \n",
" dftmp = pd.DataFrame({lab:list(pair[0])+list(pair[1]), \n",
" 'group':['HTE Data']*len(pair[0])+['Reaxys+SciFinder']*len(pair[1])})\n",
" sns.histplot(data=dftmp, x=lab, kde=True, hue = 'group', ax=ax, bins = 15,\n",
" stat='percent', common_norm=False)\n",
" ax.set_title(lab)\n",
" \n",
"plt.savefig('hist_lit.svg')\n",
"plt.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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9T2/+OILEhIS+OabbwgODrZt79q1K127drU979GjB+3bt+ett97izTffrL7Ar1CZ82jRogUtWrSwPe/WrRvJycm8+uqr9OrVq0rHrC5Vfc/ExET8/Py444477LY76vtRWc76++GsJP9I/qkJkn+saur3o0H2NAUGBqLVaktUmGlpaSUq0WKhoaGlttfpdDRq1KjcNmUd81pV5TyKLVu2jFGjRvHll19y8803l9tWo9HQqVOnGvvL4lrO43Jdu3a1i7EufT9UVeXjjz/mwQcfxNXVtdy2Nf39qApn/P1wVpJ/JP/UBMk/tfP70SCLJldXVzp06MC6devstq9bt47u3buXuk+3bt1KtF+7di0dO3bExcWl3DZlHfNaVeU8wPoX3siRI1myZAm33HLLVd9HVVV27dpFWFjYNcdcmqqex5V27txpF2Nd+X6A9XbZw4cPM2rUqKu+T01/P6rCGX8/nJXkH8k/NUHyTy39flRq2Hg9Unxr5sKFC9V9+/ap48ePVz09PW13DTz//PPqgw8+aGtffEvjM888o+7bt09duHBhiVsaf/31V1Wr1aovv/yympSUpL788su1dotpRc9jyZIlqk6nU9955x2720czMzNtbRISEtTVq1erR44cUXfu3Kk+/PDDqk6nU//44w+nOY833nhDXblypXrw4EH177//Vp9//nkVUJcvX25rUxe+H8UeeOABtUuXLqUe0xHfj5ycHHXnzp3qzp07VUB9/fXX1Z07d9puXa4rvx/OSvKP5B9nOI9ikn8qrsEWTaqqqu+8844aHR2turq6qu3bt1c3btxoe23EiBFq79697dpv2LBBbdeunerq6qrGxMSoCxYsKHHM//u//1NbtGihuri4qC1btrT7JaoplTmP3r17q0CJx4gRI2xtxo8fr0ZFRamurq5qUFCQOmDAAHXLli1OdR5z585VmzVrprq5uan+/v7qjTfeqK5atarEMZ39+6Gq1rlS3N3d1Q8++KDU4zni+1F8S3VZPyd16ffDWUn+kfzj6PNQVck/laWo6sXRUkIIIYQQokwNckyTEEIIIURlSdEkhBBCCFEBUjQJIYQQQlSAFE1CCCGEEBUgRZMQQgghRAVI0SSEEEIIUQFSNAkhhBBCVIAUTUIIIYQQFSBFkxDA8ePHURSFXbt2OToUIYQDbdiwgZiYmGo95siRI0lISKjWYwrHkKJJVEpqaipPPvkkTZs2Ra/XExkZyZAhQ/jpp58cHdo1iYyMJCUlhdatWzs6FCGEEE5K5+gARN1x/PhxevTogZ+fH/PmzaNt27YYjUbWrFnDuHHj2L9/v6NDLJPRaLStdl0arVZLaGhoLUYkhBCirpGeJlFhY8eORVEU/vzzT/75z3/SvHlz4uPjmTBhAr///jsAJ0+e5Pbbb8fLywsfHx/uuecezp49aztGQkICN9xwA59++ikxMTH4+vpy3333kZOTA8D7779PREQEFovF7r1vu+02RowYYXv+v//9jw4dOuDm5kbTpk2ZMWMGJpPJ9rqiKLz33nvcfvvteHp6MmvWLDIyMhg+fDhBQUG4u7sTFxfHokWLgNIvz23cuJHOnTuj1+sJCwvj+eeft3uPPn368NRTTzFp0iQCAgIIDQ2VLngh6pnTp09z77334u/vT6NGjbj99ts5fvy4XZtFixZx3XXX4ebmRsuWLXn33XcdE6yocVI0iQq5cOECq1evZty4cXh6epZ43c/PD1VVueOOO7hw4QIbN25k3bp1HDlyhHvvvdeu7ZEjR/j666/57rvv+O6779i4cSMvv/wyAHfffTfnzp1j/fr1tvYZGRmsWbOG4cOHA7BmzRoeeOABnnrqKfbt28f7779PYmIiL730kt37TJ8+ndtvv509e/bwyCOPMG3aNPbt28cPP/xAUlISCxYsIDAwsNTzPX36NP/4xz/o1KkTu3fvZsGCBSxcuJBZs2bZtVu8eDGenp788ccfzJs3j5kzZ7Ju3brKf4GFEE4nPz+fvn374uXlxaZNm9i8eTNeXl4MGjSIoqIiAD788EOmTp3KSy+9RFJSErNnz2batGksXrzYwdGLGqEKUQF//PGHCqgrVqwos83atWtVrVarnjx50rZt7969KqD++eefqqqq6vTp01UPDw81Ozvb1ua5555Tu3TpYnt+2223qY888ojt+fvvv6+GhoaqJpNJVVVV7dmzpzp79my79/7000/VsLAw23NAHT9+vF2bIUOGqA8//HCpsR87dkwF1J07d6qqqqr//ve/1RYtWqgWi8XW5p133lG9vLxUs9msqqqq9u7dW73xxhvtjtOpUyd18uTJZXyFhBDObv369Wp0dLSqqqq6cOHCEnnAYDCo7u7u6po1a1RVVdXIyEh1yZIldsd48cUX1W7dutmejxgxQp0+fXqNxy5qnvQ0iQpRVRWwXvYqS1JSEpGRkURGRtq2tWrVCj8/P5KSkmzbYmJi8Pb2tj0PCwsjLS3N9nz48OEsX74cg8EAwOeff859992HVqsFYPv27cycORMvLy/b47HHHiMlJYX8/HzbcTp27GgX3+OPP87SpUu54YYbmDRpElu2bCn3XLp162Z3vj169CA3N5dTp07ZtrVt29ZuvyvPRQhRd23fvp3Dhw/j7e1tyzUBAQEUFhZy5MgR0tPTSU5OZtSoUXb5aNasWRw5csTR4YsaIAPBRYXExcWhKApJSUnccccdpbZRVbXUourK7VcOyFYUxW4M05AhQ7BYLKxatYpOnTrxyy+/8Prrr9tet1gszJgxg6FDh5Z4Lzc3N9vnV15GHDx4MCdOnGDVqlX8+OOP3HTTTYwbN45XX321QudSWuF4tXMRQtRdFouFDh068Pnnn5d4LSgoiMLCQsB6ia5Lly52rxf/kSfqFymaRIUEBAQwcOBA3nnnHZ566qkSBUlmZiatWrXi5MmTJCcn23qb9u3bR1ZWFtddd12F38vd3Z2hQ4fy+eefc/jwYZo3b06HDh1sr7dv354DBw4QGxtb6fMICgpi5MiRjBw5kp49e/Lcc8+VWjS1atWK5cuX2xVPW7Zswdvbm4iIiEq/rxCi7mnfvj3Lli0jODgYHx+fEq/7+voSERHB0aNHbWMuRf0ml+dEhb377ruYzWY6d+7M8uXLOXToEElJSbz55pt069aNm2++mbZt2zJ8+HB27NjBn3/+yUMPPUTv3r1LXCq7muHDh7Nq1So+/vhjHnjgAbvXXnjhBT755BMSEhLYu3cvSUlJLFu2jP/85z/lHvOFF17gm2++4fDhw+zdu5fvvvuuzGJu7NixJCcn8+STT7J//36++eYbpk+fzoQJE9Bo5NdGiIZg+PDhBAYGcvvtt/PLL79w7NgxNm7cyNNPP227TJ+QkMCcOXP473//y8GDB9mzZw+LFi2y6x0X9Ydkf1FhTZo0YceOHfTt25eJEyfSunVr+vfvz08//cSCBQtQFIWvv/4af39/evXqxc0330zTpk1ZtmxZpd+rX79+BAQEcODAAYYNG2b32sCBA/nuu+9Yt24dnTp1omvXrrz++utER0eXe0xXV1emTJlC27Zt6dWrF1qtlqVLl5baNiIigu+//54///yT66+/njFjxjBq1KirFmZCiPrDw8ODTZs2ERUVxdChQ7nuuut45JFHKCgosPU8Pfroo3z00UckJibSpk0bevfuTWJiIk2aNHFw9KImKGrxQA0hhBCigduwYQMjR44sMRfTtRg5ciQxMTEyj1s9ID1NQgghhBAVIEWTEEIIIUQFyN1zQgghxEUxMTGMHz++Wo95xx134OfnV63HFI4hY5qEEEIIISpALs8JIYQQQlSAFE1CCCGEEBUgRZMQQgghRAVI0SSEEEIIUQFSNAkhhBBCVIAUTUIIIYQQFSBFkxBCCCFEBUjRJIQQQghRAf8PNVcVPVm2YTgAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# COMPARE DISTRIBUTIONS\n",
"import seaborn as sns\n",
"\n",
"fig, axes = plt.subplots(1,2, figsize = (6,3))\n",
"\n",
"for pair, ax, lab in zip([(all_jnj_conv, raw_reaxys_yield),\n",
" #(all_jnj_ee, raw_reaxys_ee),\n",
" (all_jnj_ee, raw_reaxys_ee)], axes.flatten(), \n",
" ['Conversion','|ee|']):\n",
" \n",
" dftmp = pd.DataFrame({lab:list(pair[0])+list(pair[1]), \n",
" 'group':['HTE Data']*len(pair[0])+['Reaxys+SciFinder']*len(pair[1])})\n",
" sns.histplot(data=dftmp, x=lab, kde=True, hue = 'group', ax=ax, bins = 15,\n",
" stat='percent', common_norm=False)\n",
" #ax.set_title(lab)\n",
" \n",
"plt.savefig('hist_lit_small.svg')\n",
"plt.tight_layout()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"subs_name_df= pd.DataFrame({'id':['SM1','SM1','SM1','SM2','SM3','SM4','SM4','SM5'],\n",
" 'name':['Methyl (Z)-2-acetylamino-3-phenylpropenoate',\n",
" 'Methyl (E/Z)-2-acetylamino-3-phenylpropenoate',\n",
" 'Methyl (E)-2-acetylamino-3-phenylpropenoate',\n",
" 'Methyl 2-acetylamino-2-propenoate',\n",
" '2-Acetylamino-3-phenylpropenoic acid',\n",
" '(E)-2-methyl-3-phenylacrylic acid',\n",
" '2-Methyl-3-phenylacrylic acid',\n",
" '2-Phenylacrylic acid']})"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 199
},
"executionInfo": {
"elapsed": 3602,
"status": "ok",
"timestamp": 1699019655737,
"user": {
"displayName": "Cecile Valsecchi",
"userId": "07365043477514203846"
},
"user_tz": -60
},
"id": "XDJ4tIlauXbz",
"outputId": "8d182598-63cf-4f17-f068-ecda167baf09"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"144 85\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Data group_rea \n",
" Ligand#_rea \n",
" Substrate_rea \n",
" Solvent_rea \n",
" Temperature [°C]_rea \n",
" Hydrogen [bar]_rea \n",
" Time [h]_rea \n",
" Yield [-]_rea \n",
" |ee| [-]_rea \n",
" Enantiomeric excess [-]_rea \n",
" ΔΔG‡ [kJ/mol]_rea \n",
" Absolute stereochemistry [-]_rea \n",
" ΔΔG‡ [kJ/mol] with sign_rea \n",
" id_rea \n",
" name_rea \n",
" Ligand#_v1_rea \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Cleaned Reaxys export \n",
" L64 \n",
" Methyl (Z)-2-acetylamino-3-phenylpropenoate \n",
" Methanol \n",
" 30 \n",
" 10 \n",
" NaN \n",
" NaN \n",
" 0.990 \n",
" 0.990 \n",
" 13.34199 \n",
" (S) \n",
" -13.34 \n",
" SM1 \n",
" Methyl (Z)-2-acetylamino-3-phenylpropenoate \n",
" L64 \n",
" \n",
" \n",
" 1 \n",
" Cleaned Reaxys export \n",
" L67 \n",
" Methyl (Z)-2-acetylamino-3-phenylpropenoate \n",
" Methanol \n",
" 35 \n",
" 3 \n",
" NaN \n",
" NaN \n",
" 0.999 \n",
" 0.999 \n",
" NaN \n",
" (R) \n",
" 19.47 \n",
" SM1 \n",
" Methyl (Z)-2-acetylamino-3-phenylpropenoate \n",
" L67 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Data group_rea Ligand#_rea \\\n",
"0 Cleaned Reaxys export L64 \n",
"1 Cleaned Reaxys export L67 \n",
"\n",
" Substrate_rea Solvent_rea \\\n",
"0 Methyl (Z)-2-acetylamino-3-phenylpropenoate Methanol \n",
"1 Methyl (Z)-2-acetylamino-3-phenylpropenoate Methanol \n",
"\n",
" Temperature [°C]_rea Hydrogen [bar]_rea Time [h]_rea Yield [-]_rea \\\n",
"0 30 10 NaN NaN \n",
"1 35 3 NaN NaN \n",
"\n",
" |ee| [-]_rea Enantiomeric excess [-]_rea ΔΔG‡ [kJ/mol]_rea \\\n",
"0 0.990 0.990 13.34199 \n",
"1 0.999 0.999 NaN \n",
"\n",
" Absolute stereochemistry [-]_rea ΔΔG‡ [kJ/mol] with sign_rea id_rea \\\n",
"0 (S) -13.34 SM1 \n",
"1 (R) 19.47 SM1 \n",
"\n",
" name_rea Ligand#_v1_rea \n",
"0 Methyl (Z)-2-acetylamino-3-phenylpropenoate L64 \n",
"1 Methyl (Z)-2-acetylamino-3-phenylpropenoate L67 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# add substrate label to reaxys\n",
"reaxys = pd.merge(reaxys, subs_name_df, left_on='Substrate', right_on='name', how='inner')\n",
"# ignore enantiomers\n",
"reaxys['Ligand#_v1']=[i.replace(' (Enant)','') for i in reaxys['Ligand#']]\n",
"# split reaxys and scifinder data and add suffix _rea and _sci to their columns\n",
"scifinder = reaxys[reaxys['Data group']=='SciFinder']\n",
"scifinder.columns = [f'{i}_sci' for i in scifinder.columns]\n",
"reaxys = reaxys[reaxys['Data group']!='SciFinder']\n",
"reaxys.columns = [f'{i}_rea' for i in reaxys.columns]\n",
"\n",
"print(len(reaxys), len(scifinder))\n",
"reaxys.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 719
},
"executionInfo": {
"elapsed": 7,
"status": "ok",
"timestamp": 1699019656982,
"user": {
"displayName": "Cecile Valsecchi",
"userId": "07365043477514203846"
},
"user_tz": -60
},
"id": "ShcxqvBwBIRK",
"outputId": "c389524f-be09-40d9-f75b-e8ea716789b9"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"566\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Ligand#_v1_sci \n",
" id_sci \n",
" Solvent_sci \n",
" Temperature [°C]_sci \n",
" Hydrogen [bar]_sci \n",
" Time [h]_sci \n",
" |ee| [-]_sci \n",
" Absolute stereochemistry [-]_sci \n",
" Ligand#_v1_rea \n",
" id_rea \n",
" ... \n",
" |ee| [-]_rea \n",
" Absolute stereochemistry [-]_rea \n",
" Ligand#_jnj \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" Temperature [°C]_jnj \n",
" Hydrogen [bar]_jnj \n",
" Time [h]_jnj \n",
" |ee| [-]_jnj \n",
" Absolute stereochemistry [-]_jnj \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" L64 \n",
" SM1 \n",
" ... \n",
" 0.99 \n",
" (S) \n",
" L64 \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 1 \n",
" 0.993098 \n",
" (S) \n",
" \n",
" \n",
" 1 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" L64 \n",
" SM1 \n",
" ... \n",
" 0.99 \n",
" (S) \n",
" L64 \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.980832 \n",
" (S) \n",
" \n",
" \n",
"
\n",
"
2 rows × 24 columns
\n",
"
"
],
"text/plain": [
" Ligand#_v1_sci id_sci Solvent_sci Temperature [°C]_sci Hydrogen [bar]_sci \\\n",
"0 NaN NaN NaN NaN NaN \n",
"1 NaN NaN NaN NaN NaN \n",
"\n",
" Time [h]_sci |ee| [-]_sci Absolute stereochemistry [-]_sci Ligand#_v1_rea \\\n",
"0 NaN NaN NaN L64 \n",
"1 NaN NaN NaN L64 \n",
"\n",
" id_rea ... |ee| [-]_rea Absolute stereochemistry [-]_rea Ligand#_jnj \\\n",
"0 SM1 ... 0.99 (S) L64 \n",
"1 SM1 ... 0.99 (S) L64 \n",
"\n",
" Starting material_jnj Solvent_jnj Temperature [°C]_jnj Hydrogen [bar]_jnj \\\n",
"0 SM1 Methanol 25 5 \n",
"1 SM1 Methanol 25 5 \n",
"\n",
" Time [h]_jnj |ee| [-]_jnj Absolute stereochemistry [-]_jnj \n",
"0 1 0.993098 (S) \n",
"1 16 0.980832 (S) \n",
"\n",
"[2 rows x 24 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# merge jnj, reaxys and scifinder dataframes on ligand, substrate and solvent, filtering out some columns for readbility\n",
"df_merged = pd.merge(reaxys.loc[:,['Ligand#_v1_rea','id_rea',\n",
" 'Solvent_rea','Temperature [°C]_rea',\n",
" 'Hydrogen [bar]_rea','Time [h]_rea',\n",
" '|ee| [-]_rea',\n",
" 'Absolute stereochemistry [-]_rea']],\n",
" jnj_exp.loc[:,['Ligand#_jnj','Starting material_jnj',\n",
" 'Solvent_jnj','Temperature [°C]_jnj',\n",
" 'Hydrogen [bar]_jnj','Time [h]_jnj',\n",
" '|ee| [-]_jnj',\n",
" 'Absolute stereochemistry [-]_jnj']],\n",
" left_on=['Ligand#_v1_rea','id_rea','Solvent_rea'],\n",
" right_on=['Ligand#_jnj','Starting material_jnj','Solvent_jnj'], how='inner')\n",
"\n",
"df_merged = pd.merge(scifinder.loc[:,['Ligand#_v1_sci','id_sci','Solvent_sci',\n",
" 'Temperature [°C]_sci','Hydrogen [bar]_sci',\n",
" 'Time [h]_sci',\n",
" '|ee| [-]_sci',\n",
" 'Absolute stereochemistry [-]_sci']],\n",
" df_merged,\n",
" left_on=['Ligand#_v1_sci','id_sci','Solvent_sci'],\n",
" right_on=['Ligand#_jnj','Starting material_jnj','Solvent_jnj'], how='right')\n",
"\n",
"print(len(df_merged))\n",
"df_merged.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Ligand#_jnj \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" L64 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 3 \n",
" L67 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 9 \n",
" L22 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 12 \n",
" L20 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 15 \n",
" L170 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 536 \n",
" L165 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 540 \n",
" L134 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 544 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 560 \n",
" L56 \n",
" SM3 \n",
" Methanol \n",
" \n",
" \n",
" 562 \n",
" L25 \n",
" SM4 \n",
" Methanol \n",
" \n",
" \n",
"
\n",
"
75 rows × 3 columns
\n",
"
"
],
"text/plain": [
" Ligand#_jnj Starting material_jnj Solvent_jnj\n",
"0 L64 SM1 Methanol\n",
"3 L67 SM1 Methanol\n",
"9 L22 SM1 Methanol\n",
"12 L20 SM1 Methanol\n",
"15 L170 SM1 Methanol\n",
".. ... ... ...\n",
"536 L165 SM2 Methanol\n",
"540 L134 SM2 Methanol\n",
"544 L102 SM2 Methanol\n",
"560 L56 SM3 Methanol\n",
"562 L25 SM4 Methanol\n",
"\n",
"[75 rows x 3 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#unique triplets\n",
"df_merged.loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" |ee| [-]_sci \n",
" |ee| [-]_rea \n",
" |ee| [-]_jnj \n",
" \n",
" \n",
" \n",
" \n",
" |ee| [-]_sci \n",
" 1.000000 \n",
" 0.283927 \n",
" 0.431674 \n",
" \n",
" \n",
" |ee| [-]_rea \n",
" 0.283927 \n",
" 1.000000 \n",
" 0.643189 \n",
" \n",
" \n",
" |ee| [-]_jnj \n",
" 0.431674 \n",
" 0.643189 \n",
" 1.000000 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" |ee| [-]_sci |ee| [-]_rea |ee| [-]_jnj\n",
"|ee| [-]_sci 1.000000 0.283927 0.431674\n",
"|ee| [-]_rea 0.283927 1.000000 0.643189\n",
"|ee| [-]_jnj 0.431674 0.643189 1.000000"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# first correlation (without any refinement)\n",
"df_merged.loc[:,['|ee| [-]_sci','|ee| [-]_rea','|ee| [-]_jnj']].corr(method = 'spearman')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"executionInfo": {
"elapsed": 8,
"status": "ok",
"timestamp": 1699019657255,
"user": {
"displayName": "Cecile Valsecchi",
"userId": "07365043477514203846"
},
"user_tz": -60
},
"id": "v3Zmks8qJEma",
"outputId": "6d317302-8488-4f3c-e2f3-a1d6e2c6ec9c"
},
"outputs": [
{
"data": {
"text/plain": [
"SM1 324\n",
"SM2 236\n",
"SM4 4\n",
"SM3 2\n",
"Name: Starting material_jnj, dtype: int64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# mostly sm1 and sm2 in the overlap\n",
"df_merged['Starting material_jnj'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"# add columns with absolute difference between rea/jnj, sci/jnj and rea/sci\n",
"df_merged['DELTA_REA_JNJ']=np.abs(df_merged['|ee| [-]_rea'].values - df_merged['|ee| [-]_jnj'].values)\n",
"df_merged['DELTA_REA_SCI']=np.abs(df_merged['|ee| [-]_rea'].values - df_merged['|ee| [-]_sci'].values)\n",
"df_merged['DELTA_SCI_JNJ']=np.abs(df_merged['|ee| [-]_sci'].values - df_merged['|ee| [-]_jnj'].values)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['L25', 'L56', 'L120', 'L1', 'L3', 'L9', 'L147', 'L65', 'L102',\n",
" 'L52', 'L2', 'L7', 'L70', 'L75', 'L69', 'L68', 'L167', 'L121',\n",
" 'L66', 'L77', 'L108', 'L80', 'L143', 'L78', 'L134'], dtype=object)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 0.2 = thr for discrepancy in rea vs jnj\n",
"# which ligands have discrepancies?\n",
"df_merged[(df_merged['DELTA_REA_JNJ']>0.2)]['Ligand#_jnj'].unique()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Ligand#_v1_sci \n",
" id_sci \n",
" Solvent_sci \n",
" Temperature [°C]_sci \n",
" Hydrogen [bar]_sci \n",
" Time [h]_sci \n",
" |ee| [-]_sci \n",
" Absolute stereochemistry [-]_sci \n",
" Ligand#_v1_rea \n",
" id_rea \n",
" ... \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" Temperature [°C]_jnj \n",
" Hydrogen [bar]_jnj \n",
" Time [h]_jnj \n",
" |ee| [-]_jnj \n",
" Absolute stereochemistry [-]_jnj \n",
" DELTA_REA_JNJ \n",
" DELTA_REA_SCI \n",
" DELTA_SCI_JNJ \n",
" \n",
" \n",
" \n",
" \n",
" 27 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 25.0 \n",
" 1.0 \n",
" 1.0 \n",
" 0.600000 \n",
" NaN \n",
" L25 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 1 \n",
" 0.537949 \n",
" (S) \n",
" 0.342051 \n",
" 0.280000 \n",
" 0.062051 \n",
" \n",
" \n",
" 28 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 20.0 \n",
" 1.0 \n",
" 16.0 \n",
" 0.630000 \n",
" (S) \n",
" L25 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 1 \n",
" 0.537949 \n",
" (S) \n",
" 0.342051 \n",
" 0.250000 \n",
" 0.092051 \n",
" \n",
" \n",
" 29 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 25.0 \n",
" 1.0 \n",
" 20.5 \n",
" 0.600000 \n",
" (R) \n",
" L25 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 1 \n",
" 0.537949 \n",
" (S) \n",
" 0.342051 \n",
" 0.280000 \n",
" 0.062051 \n",
" \n",
" \n",
" 30 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 25.0 \n",
" 1.0 \n",
" 1.0 \n",
" 0.600000 \n",
" NaN \n",
" L25 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.525981 \n",
" (S) \n",
" 0.354019 \n",
" 0.280000 \n",
" 0.074019 \n",
" \n",
" \n",
" 31 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 20.0 \n",
" 1.0 \n",
" 16.0 \n",
" 0.630000 \n",
" (S) \n",
" L25 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.525981 \n",
" (S) \n",
" 0.354019 \n",
" 0.250000 \n",
" 0.104019 \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",
" 555 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.887125 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" SM2 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 1 \n",
" 0.855030 \n",
" (S) \n",
" 0.725030 \n",
" 0.757125 \n",
" 0.032095 \n",
" \n",
" \n",
" 556 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.900500 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" SM2 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.866353 \n",
" (S) \n",
" 0.736353 \n",
" 0.770500 \n",
" 0.034147 \n",
" \n",
" \n",
" 557 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.902313 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" SM2 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.866353 \n",
" (S) \n",
" 0.736353 \n",
" 0.772313 \n",
" 0.035959 \n",
" \n",
" \n",
" 558 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.888000 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" SM2 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.866353 \n",
" (S) \n",
" 0.736353 \n",
" 0.758000 \n",
" 0.021647 \n",
" \n",
" \n",
" 559 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.887125 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" SM2 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.866353 \n",
" (S) \n",
" 0.736353 \n",
" 0.757125 \n",
" 0.020772 \n",
" \n",
" \n",
"
\n",
"
202 rows × 27 columns
\n",
"
"
],
"text/plain": [
" Ligand#_v1_sci id_sci Solvent_sci Temperature [°C]_sci \\\n",
"27 L25 SM1 Methanol 25.0 \n",
"28 L25 SM1 Methanol 20.0 \n",
"29 L25 SM1 Methanol 25.0 \n",
"30 L25 SM1 Methanol 25.0 \n",
"31 L25 SM1 Methanol 20.0 \n",
".. ... ... ... ... \n",
"555 L102 SM2 Methanol 25.0 \n",
"556 L102 SM2 Methanol 25.0 \n",
"557 L102 SM2 Methanol 25.0 \n",
"558 L102 SM2 Methanol 25.0 \n",
"559 L102 SM2 Methanol 25.0 \n",
"\n",
" Hydrogen [bar]_sci Time [h]_sci |ee| [-]_sci \\\n",
"27 1.0 1.0 0.600000 \n",
"28 1.0 16.0 0.630000 \n",
"29 1.0 20.5 0.600000 \n",
"30 1.0 1.0 0.600000 \n",
"31 1.0 16.0 0.630000 \n",
".. ... ... ... \n",
"555 2.0 1.0 0.887125 \n",
"556 2.0 1.0 0.900500 \n",
"557 2.0 1.0 0.902313 \n",
"558 2.0 1.0 0.888000 \n",
"559 2.0 1.0 0.887125 \n",
"\n",
" Absolute stereochemistry [-]_sci Ligand#_v1_rea id_rea ... \\\n",
"27 NaN L25 SM1 ... \n",
"28 (S) L25 SM1 ... \n",
"29 (R) L25 SM1 ... \n",
"30 NaN L25 SM1 ... \n",
"31 (S) L25 SM1 ... \n",
".. ... ... ... ... \n",
"555 NaN L102 SM2 ... \n",
"556 NaN L102 SM2 ... \n",
"557 NaN L102 SM2 ... \n",
"558 NaN L102 SM2 ... \n",
"559 NaN L102 SM2 ... \n",
"\n",
" Starting material_jnj Solvent_jnj Temperature [°C]_jnj \\\n",
"27 SM1 Methanol 25 \n",
"28 SM1 Methanol 25 \n",
"29 SM1 Methanol 25 \n",
"30 SM1 Methanol 25 \n",
"31 SM1 Methanol 25 \n",
".. ... ... ... \n",
"555 SM2 Methanol 25 \n",
"556 SM2 Methanol 25 \n",
"557 SM2 Methanol 25 \n",
"558 SM2 Methanol 25 \n",
"559 SM2 Methanol 25 \n",
"\n",
" Hydrogen [bar]_jnj Time [h]_jnj |ee| [-]_jnj \\\n",
"27 5 1 0.537949 \n",
"28 5 1 0.537949 \n",
"29 5 1 0.537949 \n",
"30 5 16 0.525981 \n",
"31 5 16 0.525981 \n",
".. ... ... ... \n",
"555 5 1 0.855030 \n",
"556 5 16 0.866353 \n",
"557 5 16 0.866353 \n",
"558 5 16 0.866353 \n",
"559 5 16 0.866353 \n",
"\n",
" Absolute stereochemistry [-]_jnj DELTA_REA_JNJ DELTA_REA_SCI \\\n",
"27 (S) 0.342051 0.280000 \n",
"28 (S) 0.342051 0.250000 \n",
"29 (S) 0.342051 0.280000 \n",
"30 (S) 0.354019 0.280000 \n",
"31 (S) 0.354019 0.250000 \n",
".. ... ... ... \n",
"555 (S) 0.725030 0.757125 \n",
"556 (S) 0.736353 0.770500 \n",
"557 (S) 0.736353 0.772313 \n",
"558 (S) 0.736353 0.758000 \n",
"559 (S) 0.736353 0.757125 \n",
"\n",
" DELTA_SCI_JNJ \n",
"27 0.062051 \n",
"28 0.092051 \n",
"29 0.062051 \n",
"30 0.074019 \n",
"31 0.104019 \n",
".. ... \n",
"555 0.032095 \n",
"556 0.034147 \n",
"557 0.035959 \n",
"558 0.021647 \n",
"559 0.020772 \n",
"\n",
"[202 rows x 27 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#how many discrepancies?\n",
"df_merged[(df_merged['DELTA_REA_JNJ']>0.2)]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Ligand#_v1_sci \n",
" id_sci \n",
" Solvent_sci \n",
" Temperature [°C]_sci \n",
" Hydrogen [bar]_sci \n",
" Time [h]_sci \n",
" |ee| [-]_sci \n",
" Absolute stereochemistry [-]_sci \n",
" Ligand#_v1_rea \n",
" id_rea \n",
" ... \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" Temperature [°C]_jnj \n",
" Hydrogen [bar]_jnj \n",
" Time [h]_jnj \n",
" |ee| [-]_jnj \n",
" Absolute stereochemistry [-]_jnj \n",
" DELTA_REA_JNJ \n",
" DELTA_REA_SCI \n",
" DELTA_SCI_JNJ \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" L64 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 1 \n",
" 0.993098 \n",
" (S) \n",
" 0.003098 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 1 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" L64 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.980832 \n",
" (S) \n",
" 0.009168 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 2 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" L64 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 30 \n",
" 16 \n",
" 0.988250 \n",
" (S) \n",
" 0.001750 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 3 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" L67 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 1 \n",
" 0.989575 \n",
" (R) \n",
" 0.009425 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 4 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" L67 \n",
" SM1 \n",
" ... \n",
" SM1 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.993033 \n",
" (R) \n",
" 0.005967 \n",
" NaN \n",
" NaN \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",
" 561 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" L56 \n",
" SM3 \n",
" ... \n",
" SM3 \n",
" Methanol \n",
" 25 \n",
" 5 \n",
" 16 \n",
" 0.866461 \n",
" (S) \n",
" 0.043539 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 562 \n",
" L25 \n",
" SM4 \n",
" Methanol \n",
" 25.0 \n",
" 5.0 \n",
" 20.0 \n",
" 0.82 \n",
" NaN \n",
" L25 \n",
" SM4 \n",
" ... \n",
" SM4 \n",
" Methanol \n",
" 50 \n",
" 5 \n",
" 16 \n",
" 0.840631 \n",
" (S) \n",
" 0.010631 \n",
" 0.01 \n",
" 0.020631 \n",
" \n",
" \n",
" 563 \n",
" L25 \n",
" SM4 \n",
" Methanol \n",
" 25.0 \n",
" 5.0 \n",
" 16.0 \n",
" 0.87 \n",
" NaN \n",
" L25 \n",
" SM4 \n",
" ... \n",
" SM4 \n",
" Methanol \n",
" 50 \n",
" 5 \n",
" 16 \n",
" 0.840631 \n",
" (S) \n",
" 0.010631 \n",
" 0.04 \n",
" 0.029369 \n",
" \n",
" \n",
" 564 \n",
" L25 \n",
" SM4 \n",
" Methanol \n",
" 20.0 \n",
" 20.0 \n",
" 16.0 \n",
" 0.83 \n",
" (S) \n",
" L25 \n",
" SM4 \n",
" ... \n",
" SM4 \n",
" Methanol \n",
" 50 \n",
" 5 \n",
" 16 \n",
" 0.840631 \n",
" (S) \n",
" 0.010631 \n",
" 0.00 \n",
" 0.010631 \n",
" \n",
" \n",
" 565 \n",
" L25 \n",
" SM4 \n",
" Methanol \n",
" 25.0 \n",
" 5.0 \n",
" 0.2 \n",
" 0.82 \n",
" (R) \n",
" L25 \n",
" SM4 \n",
" ... \n",
" SM4 \n",
" Methanol \n",
" 50 \n",
" 5 \n",
" 16 \n",
" 0.840631 \n",
" (S) \n",
" 0.010631 \n",
" 0.01 \n",
" 0.020631 \n",
" \n",
" \n",
"
\n",
"
364 rows × 27 columns
\n",
"
"
],
"text/plain": [
" Ligand#_v1_sci id_sci Solvent_sci Temperature [°C]_sci \\\n",
"0 NaN NaN NaN NaN \n",
"1 NaN NaN NaN NaN \n",
"2 NaN NaN NaN NaN \n",
"3 NaN NaN NaN NaN \n",
"4 NaN NaN NaN NaN \n",
".. ... ... ... ... \n",
"561 NaN NaN NaN NaN \n",
"562 L25 SM4 Methanol 25.0 \n",
"563 L25 SM4 Methanol 25.0 \n",
"564 L25 SM4 Methanol 20.0 \n",
"565 L25 SM4 Methanol 25.0 \n",
"\n",
" Hydrogen [bar]_sci Time [h]_sci |ee| [-]_sci \\\n",
"0 NaN NaN NaN \n",
"1 NaN NaN NaN \n",
"2 NaN NaN NaN \n",
"3 NaN NaN NaN \n",
"4 NaN NaN NaN \n",
".. ... ... ... \n",
"561 NaN NaN NaN \n",
"562 5.0 20.0 0.82 \n",
"563 5.0 16.0 0.87 \n",
"564 20.0 16.0 0.83 \n",
"565 5.0 0.2 0.82 \n",
"\n",
" Absolute stereochemistry [-]_sci Ligand#_v1_rea id_rea ... \\\n",
"0 NaN L64 SM1 ... \n",
"1 NaN L64 SM1 ... \n",
"2 NaN L64 SM1 ... \n",
"3 NaN L67 SM1 ... \n",
"4 NaN L67 SM1 ... \n",
".. ... ... ... ... \n",
"561 NaN L56 SM3 ... \n",
"562 NaN L25 SM4 ... \n",
"563 NaN L25 SM4 ... \n",
"564 (S) L25 SM4 ... \n",
"565 (R) L25 SM4 ... \n",
"\n",
" Starting material_jnj Solvent_jnj Temperature [°C]_jnj \\\n",
"0 SM1 Methanol 25 \n",
"1 SM1 Methanol 25 \n",
"2 SM1 Methanol 25 \n",
"3 SM1 Methanol 25 \n",
"4 SM1 Methanol 25 \n",
".. ... ... ... \n",
"561 SM3 Methanol 25 \n",
"562 SM4 Methanol 50 \n",
"563 SM4 Methanol 50 \n",
"564 SM4 Methanol 50 \n",
"565 SM4 Methanol 50 \n",
"\n",
" Hydrogen [bar]_jnj Time [h]_jnj |ee| [-]_jnj \\\n",
"0 5 1 0.993098 \n",
"1 5 16 0.980832 \n",
"2 30 16 0.988250 \n",
"3 5 1 0.989575 \n",
"4 5 16 0.993033 \n",
".. ... ... ... \n",
"561 5 16 0.866461 \n",
"562 5 16 0.840631 \n",
"563 5 16 0.840631 \n",
"564 5 16 0.840631 \n",
"565 5 16 0.840631 \n",
"\n",
" Absolute stereochemistry [-]_jnj DELTA_REA_JNJ DELTA_REA_SCI \\\n",
"0 (S) 0.003098 NaN \n",
"1 (S) 0.009168 NaN \n",
"2 (S) 0.001750 NaN \n",
"3 (R) 0.009425 NaN \n",
"4 (R) 0.005967 NaN \n",
".. ... ... ... \n",
"561 (S) 0.043539 NaN \n",
"562 (S) 0.010631 0.01 \n",
"563 (S) 0.010631 0.04 \n",
"564 (S) 0.010631 0.00 \n",
"565 (S) 0.010631 0.01 \n",
"\n",
" DELTA_SCI_JNJ \n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"3 NaN \n",
"4 NaN \n",
".. ... \n",
"561 NaN \n",
"562 0.020631 \n",
"563 0.029369 \n",
"564 0.010631 \n",
"565 0.020631 \n",
"\n",
"[364 rows x 27 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#how many consistencies?\n",
"df_merged[(df_merged['DELTA_REA_JNJ']<=0.2)]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"75"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#how many triplets in total\n",
"len(df_merged.loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates())"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"30"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#how many triplets ligand/substrate/solvent have at least one discrepancy?\n",
"len(df_merged[(df_merged['DELTA_REA_JNJ']>0.2)].loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates())"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"60"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#how many triplets ligand/substrate/solvent have at least one consistency?\n",
"len(df_merged[(df_merged['DELTA_REA_JNJ']<=0.2)].loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates())"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#how many triplets ligand/substrate/solvent have consistencies&discrepancies?\n",
"len(df_merged[(df_merged['DELTA_REA_JNJ']>0.2)].loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates().merge(df_merged[(df_merged['DELTA_REA_JNJ']<=0.2)].loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates(), on = ['Ligand#_jnj','Starting material_jnj','Solvent_jnj']))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Ligand#_jnj \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" L56 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 1 \n",
" L120 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 2 \n",
" L1 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 3 \n",
" L3 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 4 \n",
" L9 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 5 \n",
" L147 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 6 \n",
" L65 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 7 \n",
" L102 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 8 \n",
" L52 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 9 \n",
" L7 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 10 \n",
" L9 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 11 \n",
" L70 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 12 \n",
" L66 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 13 \n",
" L77 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 14 \n",
" L80 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Ligand#_jnj Starting material_jnj Solvent_jnj\n",
"0 L56 SM1 Methanol\n",
"1 L120 SM1 Methanol\n",
"2 L1 SM1 Methanol\n",
"3 L3 SM1 Methanol\n",
"4 L9 SM1 Methanol\n",
"5 L147 SM1 Methanol\n",
"6 L65 SM1 Methanol\n",
"7 L102 SM1 Methanol\n",
"8 L52 SM2 Methanol\n",
"9 L7 SM2 Methanol\n",
"10 L9 SM2 Methanol\n",
"11 L70 SM2 Methanol\n",
"12 L66 SM2 Methanol\n",
"13 L77 SM2 Methanol\n",
"14 L80 SM2 Methanol"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_merged[(df_merged['DELTA_REA_JNJ']>0.2)].loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates().merge(df_merged[(df_merged['DELTA_REA_JNJ']<=0.2)].loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates(), on = ['Ligand#_jnj','Starting material_jnj','Solvent_jnj'])"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Ligand#_v1_sci_x \n",
" id_sci_x \n",
" Solvent_sci_x \n",
" Temperature [°C]_sci_x \n",
" Hydrogen [bar]_sci_x \n",
" Time [h]_sci_x \n",
" |ee| [-]_sci_x \n",
" Absolute stereochemistry [-]_sci_x \n",
" Ligand#_v1_rea_x \n",
" id_rea_x \n",
" ... \n",
" |ee| [-]_rea_y \n",
" Absolute stereochemistry [-]_rea_y \n",
" Temperature [°C]_jnj_y \n",
" Hydrogen [bar]_jnj_y \n",
" Time [h]_jnj_y \n",
" |ee| [-]_jnj_y \n",
" Absolute stereochemistry [-]_jnj_y \n",
" DELTA_REA_JNJ_y \n",
" DELTA_REA_SCI_y \n",
" DELTA_SCI_JNJ_y \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 25.0 \n",
" 1.0 \n",
" 1.0 \n",
" 0.600000 \n",
" NaN \n",
" L25 \n",
" SM1 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 1 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 20.0 \n",
" 1.0 \n",
" 16.0 \n",
" 0.630000 \n",
" (S) \n",
" L25 \n",
" SM1 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 2 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 25.0 \n",
" 1.0 \n",
" 20.5 \n",
" 0.600000 \n",
" (R) \n",
" L25 \n",
" SM1 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 3 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 25.0 \n",
" 1.0 \n",
" 1.0 \n",
" 0.600000 \n",
" NaN \n",
" L25 \n",
" SM1 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 4 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 20.0 \n",
" 1.0 \n",
" 16.0 \n",
" 0.630000 \n",
" (S) \n",
" L25 \n",
" SM1 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \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",
" 377 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.887125 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 378 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.900500 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 379 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.902313 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 380 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.888000 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" 381 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 25.0 \n",
" 2.0 \n",
" 1.0 \n",
" 0.887125 \n",
" NaN \n",
" L102 \n",
" SM2 \n",
" ... \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
"
\n",
"
153 rows × 51 columns
\n",
"
"
],
"text/plain": [
" Ligand#_v1_sci_x id_sci_x Solvent_sci_x Temperature [°C]_sci_x \\\n",
"0 L25 SM1 Methanol 25.0 \n",
"1 L25 SM1 Methanol 20.0 \n",
"2 L25 SM1 Methanol 25.0 \n",
"3 L25 SM1 Methanol 25.0 \n",
"4 L25 SM1 Methanol 20.0 \n",
".. ... ... ... ... \n",
"377 L102 SM2 Methanol 25.0 \n",
"378 L102 SM2 Methanol 25.0 \n",
"379 L102 SM2 Methanol 25.0 \n",
"380 L102 SM2 Methanol 25.0 \n",
"381 L102 SM2 Methanol 25.0 \n",
"\n",
" Hydrogen [bar]_sci_x Time [h]_sci_x |ee| [-]_sci_x \\\n",
"0 1.0 1.0 0.600000 \n",
"1 1.0 16.0 0.630000 \n",
"2 1.0 20.5 0.600000 \n",
"3 1.0 1.0 0.600000 \n",
"4 1.0 16.0 0.630000 \n",
".. ... ... ... \n",
"377 2.0 1.0 0.887125 \n",
"378 2.0 1.0 0.900500 \n",
"379 2.0 1.0 0.902313 \n",
"380 2.0 1.0 0.888000 \n",
"381 2.0 1.0 0.887125 \n",
"\n",
" Absolute stereochemistry [-]_sci_x Ligand#_v1_rea_x id_rea_x ... \\\n",
"0 NaN L25 SM1 ... \n",
"1 (S) L25 SM1 ... \n",
"2 (R) L25 SM1 ... \n",
"3 NaN L25 SM1 ... \n",
"4 (S) L25 SM1 ... \n",
".. ... ... ... ... \n",
"377 NaN L102 SM2 ... \n",
"378 NaN L102 SM2 ... \n",
"379 NaN L102 SM2 ... \n",
"380 NaN L102 SM2 ... \n",
"381 NaN L102 SM2 ... \n",
"\n",
" |ee| [-]_rea_y Absolute stereochemistry [-]_rea_y \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 NaN NaN \n",
".. ... ... \n",
"377 NaN NaN \n",
"378 NaN NaN \n",
"379 NaN NaN \n",
"380 NaN NaN \n",
"381 NaN NaN \n",
"\n",
" Temperature [°C]_jnj_y Hydrogen [bar]_jnj_y Time [h]_jnj_y \\\n",
"0 NaN NaN NaN \n",
"1 NaN NaN NaN \n",
"2 NaN NaN NaN \n",
"3 NaN NaN NaN \n",
"4 NaN NaN NaN \n",
".. ... ... ... \n",
"377 NaN NaN NaN \n",
"378 NaN NaN NaN \n",
"379 NaN NaN NaN \n",
"380 NaN NaN NaN \n",
"381 NaN NaN NaN \n",
"\n",
" |ee| [-]_jnj_y Absolute stereochemistry [-]_jnj_y DELTA_REA_JNJ_y \\\n",
"0 NaN NaN NaN \n",
"1 NaN NaN NaN \n",
"2 NaN NaN NaN \n",
"3 NaN NaN NaN \n",
"4 NaN NaN NaN \n",
".. ... ... ... \n",
"377 NaN NaN NaN \n",
"378 NaN NaN NaN \n",
"379 NaN NaN NaN \n",
"380 NaN NaN NaN \n",
"381 NaN NaN NaN \n",
"\n",
" DELTA_REA_SCI_y DELTA_SCI_JNJ_y \n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 NaN NaN \n",
"4 NaN NaN \n",
".. ... ... \n",
"377 NaN NaN \n",
"378 NaN NaN \n",
"379 NaN NaN \n",
"380 NaN NaN \n",
"381 NaN NaN \n",
"\n",
"[153 rows x 51 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#how many triplets ligand/substrate/solvent have only discrepancies?\n",
"df1 = df_merged[(df_merged['DELTA_REA_JNJ']>0.2)]\n",
"df2 = df_merged[(df_merged['DELTA_REA_JNJ']<=0.2)]\n",
"# Specify the columns to match on\n",
"common_columns = ['Ligand#_jnj','Starting material_jnj','Solvent_jnj']\n",
"# Merge with an indicator, specifying the columns to match on, and filter out the rows present in df2\n",
"result = pd.merge(df1, df2, on=common_columns, how='outer', indicator=True).query('_merge == \"left_only\"').drop(columns=['_merge'])\n",
"result"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(result.loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates())"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Ligand#_jnj \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" \n",
" \n",
" \n",
" \n",
" 258 \n",
" L68 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 270 \n",
" L167 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 288 \n",
" L121 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Ligand#_jnj Starting material_jnj Solvent_jnj\n",
"258 L68 SM2 Methanol\n",
"270 L167 SM2 Methanol\n",
"288 L121 SM2 Methanol"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# which ligands have discrepancies sci/jnj in result?\n",
"result[(result['DELTA_SCI_JNJ_x']>0.2)].loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Ligand#_jnj \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" \n",
" \n",
" 221 \n",
" L69 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 257 \n",
" L68 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 269 \n",
" L167 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 281 \n",
" L121 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 343 \n",
" L65 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 347 \n",
" L108 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 366 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Ligand#_jnj Starting material_jnj Solvent_jnj\n",
"0 L25 SM1 Methanol\n",
"221 L69 SM2 Methanol\n",
"257 L68 SM2 Methanol\n",
"269 L167 SM2 Methanol\n",
"281 L121 SM2 Methanol\n",
"343 L65 SM2 Methanol\n",
"347 L108 SM2 Methanol\n",
"366 L102 SM2 Methanol"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# which ligands have discrepancies sci/jnj in result?\n",
"result[(result['DELTA_SCI_JNJ_x']<=0.2)].loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" |ee| [-]_sci \n",
" |ee| [-]_rea \n",
" Ligand#_jnj \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" |ee| [-]_jnj \n",
" DELTA_REA_JNJ \n",
" DELTA_REA_SCI \n",
" DELTA_SCI_JNJ \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.600000 \n",
" 0.88 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 0.537949 \n",
" 0.342051 \n",
" 0.280000 \n",
" 0.062051 \n",
" \n",
" \n",
" 1 \n",
" 0.630000 \n",
" 0.88 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 0.537949 \n",
" 0.342051 \n",
" 0.250000 \n",
" 0.092051 \n",
" \n",
" \n",
" 2 \n",
" 0.600000 \n",
" 0.88 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 0.537949 \n",
" 0.342051 \n",
" 0.280000 \n",
" 0.062051 \n",
" \n",
" \n",
" 3 \n",
" 0.600000 \n",
" 0.88 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 0.525981 \n",
" 0.354019 \n",
" 0.280000 \n",
" 0.074019 \n",
" \n",
" \n",
" 4 \n",
" 0.630000 \n",
" 0.88 \n",
" L25 \n",
" SM1 \n",
" Methanol \n",
" 0.525981 \n",
" 0.354019 \n",
" 0.250000 \n",
" 0.104019 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 377 \n",
" 0.887125 \n",
" 0.13 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 0.855030 \n",
" 0.725030 \n",
" 0.757125 \n",
" 0.032095 \n",
" \n",
" \n",
" 378 \n",
" 0.900500 \n",
" 0.13 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 0.866353 \n",
" 0.736353 \n",
" 0.770500 \n",
" 0.034147 \n",
" \n",
" \n",
" 379 \n",
" 0.902313 \n",
" 0.13 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 0.866353 \n",
" 0.736353 \n",
" 0.772313 \n",
" 0.035959 \n",
" \n",
" \n",
" 380 \n",
" 0.888000 \n",
" 0.13 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 0.866353 \n",
" 0.736353 \n",
" 0.758000 \n",
" 0.021647 \n",
" \n",
" \n",
" 381 \n",
" 0.887125 \n",
" 0.13 \n",
" L102 \n",
" SM2 \n",
" Methanol \n",
" 0.866353 \n",
" 0.736353 \n",
" 0.757125 \n",
" 0.020772 \n",
" \n",
" \n",
"
\n",
"
153 rows × 9 columns
\n",
"
"
],
"text/plain": [
" |ee| [-]_sci |ee| [-]_rea Ligand#_jnj Starting material_jnj Solvent_jnj \\\n",
"0 0.600000 0.88 L25 SM1 Methanol \n",
"1 0.630000 0.88 L25 SM1 Methanol \n",
"2 0.600000 0.88 L25 SM1 Methanol \n",
"3 0.600000 0.88 L25 SM1 Methanol \n",
"4 0.630000 0.88 L25 SM1 Methanol \n",
".. ... ... ... ... ... \n",
"377 0.887125 0.13 L102 SM2 Methanol \n",
"378 0.900500 0.13 L102 SM2 Methanol \n",
"379 0.902313 0.13 L102 SM2 Methanol \n",
"380 0.888000 0.13 L102 SM2 Methanol \n",
"381 0.887125 0.13 L102 SM2 Methanol \n",
"\n",
" |ee| [-]_jnj DELTA_REA_JNJ DELTA_REA_SCI DELTA_SCI_JNJ \n",
"0 0.537949 0.342051 0.280000 0.062051 \n",
"1 0.537949 0.342051 0.250000 0.092051 \n",
"2 0.537949 0.342051 0.280000 0.062051 \n",
"3 0.525981 0.354019 0.280000 0.074019 \n",
"4 0.525981 0.354019 0.250000 0.104019 \n",
".. ... ... ... ... \n",
"377 0.855030 0.725030 0.757125 0.032095 \n",
"378 0.866353 0.736353 0.770500 0.034147 \n",
"379 0.866353 0.736353 0.772313 0.035959 \n",
"380 0.866353 0.736353 0.758000 0.021647 \n",
"381 0.866353 0.736353 0.757125 0.020772 \n",
"\n",
"[153 rows x 9 columns]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result = result.loc[:,['|ee| [-]_sci_x','|ee| [-]_rea_x','Ligand#_jnj',\n",
" 'Starting material_jnj', 'Solvent_jnj', '|ee| [-]_jnj_x',\n",
" 'DELTA_REA_JNJ_x','DELTA_REA_SCI_x', 'DELTA_SCI_JNJ_x']]\n",
"result.columns = ['|ee| [-]_sci','|ee| [-]_rea','Ligand#_jnj',\n",
" 'Starting material_jnj', 'Solvent_jnj', '|ee| [-]_jnj',\n",
" 'DELTA_REA_JNJ','DELTA_REA_SCI', 'DELTA_SCI_JNJ']\n",
"result"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Ligand#_jnj \n",
" Starting material_jnj \n",
" Solvent_jnj \n",
" \n",
" \n",
" \n",
" \n",
" 194 \n",
" L120 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 198 \n",
" L2 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 205 \n",
" L3 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 217 \n",
" L75 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 354 \n",
" L143 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 358 \n",
" L78 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
" 362 \n",
" L134 \n",
" SM2 \n",
" Methanol \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Ligand#_jnj Starting material_jnj Solvent_jnj\n",
"194 L120 SM2 Methanol\n",
"198 L2 SM2 Methanol\n",
"205 L3 SM2 Methanol\n",
"217 L75 SM2 Methanol\n",
"354 L143 SM2 Methanol\n",
"358 L78 SM2 Methanol\n",
"362 L134 SM2 Methanol"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result[result['|ee| [-]_sci'].isna()].loc[:,['Ligand#_jnj','Starting material_jnj','Solvent_jnj']].drop_duplicates()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Methanol'], dtype=object)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"result['Solvent_jnj'].unique()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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ww8/lEGDBknfvn0lKipK7rrrLtm3b1+J1/Xr108mT55ck6FWaPz48TJw4EDJzs6WvLw8+de//iVhYWGyZcsWEfH/NylahOgtlyeeeEKCgoLk2muvlZtvvlnWrFnj2+dyucpcY0Nvefzf//2fDBo0SEREVq9eLQ0aNJBnnnlGnE6neDyegMhj5MiRMmjQIFmyZIls3bpV+vXrJ1arVYYOHSpLly4t83V6O99Hjhwpt956qxw6dEj++OMPadOmjRw+fFhWrFghq1atkv3795f6Or3l4fX444/LgAED/LYdOnRIBg0aJDabTWbPnl3q6/T03ipqwYIFMmHCBImLi5PmzZtLdHS0fPHFFzJq1CiZM2eOuN3uEueL3nIZP3683HTTTeJ2u8XtdssTTzwhDz/8sDzwwAPSqVMnmTNnTqmv0zqPtWvXSr169eS///2vbN26Vf75z39Ku3bt5MCBA6Ue7/2wu2jRImnZsqVkZmbWZLhlWrNmjdStW1d++OEHycnJkalTp8rzzz8vP/30k7z33nsSHx/vK8hF9JtHUUb6vGW0a3BRLJyqwW+//SZms1lOnTolIuoHwzZt2kibNm0kOjpaoqOj5b///a/veO+H2iVLlkiDBg1KjHpoxSh5eDkcDhk5cqS88MILvm2PPPKItGrVSt5991354YcfpG3bttK1a1fJysryHfPdd99Jw4YNfX8PepCYmCitWrWSDRs2+G2/5ZZbZO7cuX7bjh8/7vtvveWSlJQk119/vbz88suyePFiGT58uLRu3VomTpwohw8f9h2XmpoqP/30k++53vLYvn27KIoie/fuFRF1FG3GjBnSoEED+frrr8t8nZ7y2Ldvn9SvX1+OHj3q2/b9999Lp06dpEuXLhISEiLffvutb59ez/dDhw5J48aN/d4/ffr0ke7du0vdunUlNjZWxowZI6dPnxaRC9906i0PL7fbLRMmTJDx48eLiBqv0+n07V+8eLGEhYXJ66+/7jteRF/vreIOHDgg3bp1kz179sjx48flxRdflODgYFEUxW/k2fsBUW+5HDlyRJo2bSqbN2/2bRs3bpw0b95cxo8fL3PmzJHw8HCZNGmSr7AS0UcevXv3lueee873/PTp09KxY0d55plnRERKHRXweDwSHh4uH3zwQY3FWZHrr7/eL4///Oc/Eh0dLddee600a9ZM6tSpU2IE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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# SHOW DISCREPANCY FOR SM1\n",
"import matplotlib.pyplot as plt\n",
"df_discr = result.groupby(['Ligand#_jnj', 'Starting material_jnj']).agg({'|ee| [-]_jnj': list, \n",
" '|ee| [-]_rea': list, \n",
" '|ee| [-]_sci': list}).reset_index()\n",
"\n",
"# Create a temporary column to hold the first element of each list in 'C'\n",
"df_discr['temp_sort'] = df_discr['|ee| [-]_sci'].apply(lambda x: x[0] if x else None)\n",
"df_discr = df_discr.sort_values(by='temp_sort').drop(columns=['temp_sort'])\n",
"# Extract data and plot\n",
"\n",
"plt.figure(figsize=(10,3))\n",
"for idx, row in df_discr.iterrows():\n",
" x = row['Ligand#_jnj']+'_'+row['Starting material_jnj']\n",
" y1 = row['|ee| [-]_jnj']\n",
" y2 = row['|ee| [-]_rea']\n",
" y3 = row['|ee| [-]_sci']\n",
" \n",
" plt.scatter([x] * len(y1), y1, c='tab:blue', marker='o', label='JNJ', alpha=0.5)\n",
" plt.scatter([x] * len(y2), y2, c='tab:orange', marker='o', label='Reaxys', alpha=0.5)\n",
" plt.scatter([x] * len(y3), y3, c='darkred', marker='x', label='SciFinder', alpha=0.5)\n",
"\n",
"plt.ylabel('|EE|')\n",
"\n",
"# Show the plot\n",
"plt.xticks(df_discr['Ligand#_jnj']+'_'+df_discr['Starting material_jnj'], rotation = 60)\n",
"\n",
"#plt.title('SM1')\n",
"#plt.grid(True)\n",
"#plt.savefig('data_analysis_EE_v3.svg')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"df_mergedred = df_merged.groupby(['Ligand#_jnj','Starting material_jnj', 'Solvent_jnj']).agg({'|ee| [-]_jnj': list, \n",
" '|ee| [-]_rea': list, \n",
" '|ee| [-]_sci': list}).reset_index()\n",
"\n",
"x_jnj_rea = []\n",
"y_jnj_rea = []\n",
"x_jnj_sci = []\n",
"y_jnj_sci = []\n",
"delta_rea = []\n",
"delta_sci = []\n",
"lab_jnj_sci=[]\n",
"lab_jnj_rea = []\n",
"\n",
"for idx, row in df_mergedred.iterrows():\n",
" \n",
" for eei in row['|ee| [-]_jnj']:\n",
" idxmin_rea = np.abs(np.array(row['|ee| [-]_rea'])-eei).argmin() \n",
" if sum(row['|ee| [-]_sci'])>0:\n",
" idxmin_sci = np.abs(np.array(row['|ee| [-]_sci'])-eei).argmin()\n",
"\n",
" if abs(np.array(row['|ee| [-]_rea'])[idxmin_rea]-eei)0:\n",
" for j, b_val in enumerate(row['|ee| [-]_rea']):\n",
" diff = abs(a_val - b_val)\n",
" if diff < min_diff:\n",
" min_diff = diff\n",
" min_indices = (i, j)\n",
" flag_sci = False\n",
" for j, b_val in enumerate(row['|ee| [-]_sci']):\n",
" diff = abs(a_val - b_val)\n",
" if diff < min_diff:\n",
" min_diff = diff\n",
" min_indices = (i, j)\n",
" flag_sci = True\n",
" \n",
" else:\n",
" for j, b_val in enumerate(row['|ee| [-]_rea']):\n",
" diff = abs(a_val - b_val)\n",
" if diff < min_diff:\n",
" min_diff = diff\n",
" min_indices = (i, j)\n",
" flag_sci = False\n",
" \n",
" if flag_sci:\n",
" y_jnj_sci.append(row['|ee| [-]_jnj'][min_indices[0]])\n",
" x_jnj_sci.append(row['|ee| [-]_sci'][min_indices[1]])\n",
" delta_sci.append(min_diff<=0.2)\n",
" lab_jnj_sci.append(row)\n",
" else:\n",
" y_jnj_rea.append(row['|ee| [-]_jnj'][min_indices[0]])\n",
" x_jnj_rea.append(row['|ee| [-]_rea'][min_indices[1]])\n",
" delta_rea.append(min_diff<=0.2)\n",
" lab_jnj_rea.append(row)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"df_mergedred = df_merged.groupby(['Ligand#_jnj','Starting material_jnj', 'Solvent_jnj']).agg({'|ee| [-]_jnj': list, \n",
" '|ee| [-]_rea': list, \n",
" '|ee| [-]_sci': list}).reset_index()\n",
"\n",
"x_jnj_rea = []\n",
"y_jnj_rea = []\n",
"x_jnj_sci = []\n",
"y_jnj_sci = []\n",
"delta_rea = []\n",
"delta_sci = []\n",
"lab_jnj_sci=[]\n",
"lab_jnj_rea = []\n",
"\n",
"for idx, row in df_mergedred.iterrows():\n",
" flag_sci = False\n",
" min_diff = np.inf\n",
" min_indices = (-1, -1)\n",
" # Calculate the absolute difference between each pair\n",
" for i, a_val in enumerate(row['|ee| [-]_jnj']):\n",
" for j, b_val in enumerate(row['|ee| [-]_rea']):\n",
" diff = abs(a_val - b_val)\n",
" if diff < min_diff:\n",
" min_diff = diff\n",
" min_indices = (i, j)\n",
" flag_sci = False\n",
"\n",
" y_jnj_rea.append(row['|ee| [-]_jnj'][min_indices[0]])\n",
" x_jnj_rea.append(row['|ee| [-]_rea'][min_indices[1]])\n",
" delta_rea.append(min_diff<=0.2)\n",
" lab_jnj_rea.append(row)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(349, 217, 349, 217, 349, 217, 217, 349)"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(x_jnj_rea), len(x_jnj_sci),len(y_jnj_rea), len(y_jnj_sci),len(delta_rea), len(delta_sci), len(lab_jnj_sci), len(lab_jnj_rea)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(349, 301)"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(delta_rea), sum(delta_rea)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"x_jnj_rea = np.array(x_jnj_rea)\n",
"y_jnj_rea = np.array(y_jnj_rea)\n",
"x_jnj_sci = np.array(x_jnj_sci)\n",
"y_jnj_sci = np.array(y_jnj_sci)\n",
"delta_rea = np.array(delta_rea)\n",
"delta_sci = np.array(delta_sci)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGxCAYAAACeKZf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABp7UlEQVR4nO3deXwU9f0/8Nfskd3sJrtcmoOcCCjKIQZBoBg8AMEfXm2h6ldFQaG0HlClUtoqaqWFilQtiMphW0SqCJUWlbQqIFiUCJWKIkgwiUlAELLJbrLHzOf3R7rLbg7IsZvZnXk9H488NJPZyXuHzcx7Pu/PIQkhBIiIiIg0wqB2AERERETRxOSGiIiINIXJDREREWkKkxsiIiLSFCY3REREpClMboiIiEhTmNwQERGRpjC5ISIiIk0xqR2AGhRFQUVFBVJTUyFJktrhEBFRKwghUFNTg8zMTBgMfDanlukyuamoqEB2drbaYRARUTuUlZUhKytL7TAojukyuUlNTQXQ8AficDhUjoaIiFrD5XIhOzs7dA0naokuk5tgKcrhcDC5ISJKMOxOQGejy+Qmat5bEJvjXjE3NsclIiLSAfbIIiIiIk1hckNERESaEnfJzbZt2zBx4kRkZmZCkiRs3Lgx4udCCDz66KPIzMxEcnIyRo8ejc8++0ydYImIiCjuxF1y43a7MWjQIDz33HPN/nzhwoVYvHgxnnvuOXz88cdIT0/HmDFjUFNT08mREhERUTyKuw7F48ePx/jx45v9mRACS5Yswbx583DTTTcBAF5++WWkpaXhlVdewfTp0zszVCIiIopDcddycyYlJSWoqqrC2LFjQ9ssFgsKCwuxc+fOFl/n9XrhcrkivoiIiEibEiq5qaqqAgCkpaVFbE9LSwv9rDkLFiyA0+kMfXF2YiIiIu1KqOQmqPEETkKIM07qNHfuXFRXV4e+ysrKYh0iERERqSTu+tycSXp6OoCGFpyMjIzQ9mPHjjVpzQlnsVhgsVhiHh8RERGpL6FabvLz85Geno6ioqLQNp/Ph61bt2LEiBEqRkZERETxIu5abmpra3Ho0KHQ9yUlJdi7dy+6deuGnJwcPPDAA3jyySfRp08f9OnTB08++SRsNhtuueUWFaMmIiKieBF3yc3u3btxxRVXhL6fPXs2AOCOO+7A6tWrMWfOHNTV1WHmzJk4efIkhg0bhi1btnCVWCIiIgIASEIIoXYQnc3lcsHpdKK6urpjq4Jz4Uwiok4TtWs3aV7ctdwQEZHK+OBGCS6hOhQTERERnQ2TGyIiItIUJjdERESkKUxuiIiISFOY3BAREZGmMLkhIiIiTeFQcCKiRBSr4dpEGsCWGyIiItIUJjdERESkKUxuiIiISFOY3BAREZGmMLkhIiIiTWFyQ0RERJrC5IaIiIg0hckNERERaQqTGyIiItIUJjdERESkKUxuiIiISFOY3BAREZGmRDW5+elPf4rvvvsumockIiIiapMOrwpeXl6OrKwsAMArr7yCOXPmoFu3bhgwYAA2b96M7OzsDgepO4m22u8Vc9WOgIiIKKTDyc0FF1yA7t27Y+TIkaivr0dZWRlycnJw5MgR+P3+aMRIRERE1GodLktVV1fjtddeQ0FBARRFwYQJE9C3b194vV688847qKqqikacRERERK3S4eTG7/dj6NCh+NnPfobk5GTs2bMHq1atgtFoxMqVK3Heeefh/PPPj0asRERERGfV4bKUw+HA4MGDMXLkSPh8Png8HowcORImkwnr1q1DVlYWPvroo2jESkRERHRWHW65qaiowC9/+UtYLBYEAgEMGTIEo0aNgs/nwyeffAJJkvC9730vGrESERERnVWHk5sePXpg4sSJWLBgAWw2Gz7++GPce++9kCQJDz74IBwOBwoLC6MRKxEREdFZdbgs1ZjT6cSkSZMwdepUvPvuu7DZbNi6dWu0fw1Rx3C4PTUWq88E/+2IOl1Uk5tPP/0UPXv2BADk5ubCbDYjPT0dkydPjuavISIiImpRVJOb8An7/vvf/0bz0EREREStwrWliIiISFOY3BAREZGmMLkhIiIiTWFyQ0RERJoS9aHgREQxlWjD+BMtXiINYMsNERERaQqTGyIiItIUJjdERESkKUxuiIiISFOY3BAREZGmMLkhIiIiTeFQcOo4DnWl5vBzQUQqYcsNERERaQqTGyIiItIUJjdERESkKUxuiIiISFOY3BAREZGmMLkhIiIiTeFQcCI943BtItIgttwQERGRpjC5ISIiIk1hckNERESawuSGiIiINIXJDREREWkKkxsiIiLSFA4FJ0oEHLJNRNRqbLkhIiIiTWFyQ0RERJqSsMnN0qVLkZ+fD6vVioKCAmzfvl3tkIiIiCgOJGRys27dOjzwwAOYN28e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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"from matplotlib.gridspec import GridSpec\n",
"\n",
"x_rea = x_jnj_rea\n",
"y_rea = y_jnj_rea\n",
"\n",
"x_sci = x_jnj_sci\n",
"y_sci = y_jnj_sci\n",
"\n",
"fig = plt.figure()\n",
"\n",
"gs = GridSpec(4,4)\n",
"\n",
"ax_joint = fig.add_subplot(gs[1:4,0:3])\n",
"ax_marg_x = fig.add_subplot(gs[0,0:3])\n",
"ax_marg_y = fig.add_subplot(gs[1:4,3])\n",
"\n",
"ax_joint.scatter(x_rea[delta_rea], y_rea[delta_rea], marker = '.', c = 'green')\n",
"ax_joint.scatter(x_rea[np.array(delta_rea)==0], y_rea[np.array(delta_rea)==0], marker = '.', c = 'red')\n",
"#ax_joint.scatter(x_sci[delta_sci], y_sci[delta_sci], marker = 'x',c = 'darkgreen')\n",
"#ax_joint.scatter(x_sci[np.array(delta_sci)==0], y_sci[np.array(delta_sci)==0], marker = 'x',c = 'orange')\n",
"\n",
"ax_marg_x.hist(list(x_rea), bins= 15, alpha =0.5, color = 'tab:orange')\n",
"#ax_marg_x.hist(x_discr_rea, bins= 15, alpha =0.5, color = 'green')\n",
"#ax_marg_x.hist(x_sci, bins= 15, alpha =0.3, color = 'blue')\n",
"\n",
"ax_marg_y.hist(list(y_rea),orientation=\"horizontal\", bins= 15, alpha =0.5, color = 'tab:blue')\n",
"#ax_marg_y.hist(y_discr_rea,orientation=\"horizontal\", bins= 15, alpha =0.5, color = 'green')\n",
"#ax_marg_y.hist(y_sci,orientation=\"horizontal\", bins= 15, alpha =0.3, color = 'blue')\n",
"\n",
"xlin = np.linspace(-0.05, 1.05, 11)\n",
"y_est = xlin\n",
"y_err = [0.2]*11\n",
"ax_joint.plot(xlin, y_est, 'k:', alpha = 0.5)\n",
"ax_joint.fill_between(xlin, y_est - y_err, y_est + y_err, alpha=0.1, color = 'grey')\n",
"ax_joint.set_xlim((-0.05,1.05))\n",
"ax_joint.set_ylim((-0.05,1.05))\n",
"\n",
"# Turn off tick labels on marginals\n",
"plt.setp(ax_marg_x.get_xticklabels(), visible=False)\n",
"plt.setp(ax_marg_y.get_yticklabels(), visible=False)\n",
"\n",
"# Set labels on joint\n",
"ax_joint.set_xlabel('Reaxys+SciFinder |EE|')\n",
"ax_joint.set_ylabel('JNJ |EE|')\n",
"# Set labels on marginals\n",
"ax_marg_y.set_xlabel('#')\n",
"ax_marg_x.set_ylabel('#')\n",
"\n",
"#plt.savefig('data_analysis_ref_EE_v3.svg')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAGxCAYAAACEFXd4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB9+0lEQVR4nO3deXhTVd4H8O/N0qRNm7BJFyhlVzZZyiLwIriwD4o6UB1fpYqMDIpW1BkY3hmFccSRAauMICpSHRE7qDAyYqFugKBYClUQFxCkhRYQlKZN2iw35/2jk7RpU9qm2fP9PE8fmpN7b04uae7vnt9ZJCGEABEREVGEUgS7AkRERET+xGCHiIiIIhqDHSIiIopoDHaIiIgoojHYISIioojGYIeIiIgiGoMdIiIiimgMdoiIiCiiqYJdgVDgcDhQWlqKhIQESJIU7OoQEVEzCCFQUVGBlJQUKBS8d6fGMdgBUFpaitTU1GBXg4iIvFBSUoLOnTsHuxoUwhjsAEhISABQ8wej1+uDXBsiImoOo9GI1NRU13c4UWMY7ACu1JVer2ewQ0QUZtj9gJrCYIeIiC7t42X+Oe41i/xzXKJ62KOLiIiIIhqDHSIiIopoDHaIiIgoojHYISIioojGYIeIiIgiGoMdIiIiimgMdoiIiCiiMdghIiKiiMZgh4iIiCIagx0iIiKKaAx2iIiIKKIx2CEiIqKIxmCHiIiIIhqDHSIiIopoDHaIiIgoojHYISIioojGYIeIiIgiGoMdIiIiimgMdoiIiCiiMdghIiKiiMZgh4iIiCIagx0iIiKKaAx2iIiIKKIFNdjZtWsXpk2bhpSUFEiShC1btrg9L4TA448/jpSUFMTGxmLcuHH4+uuv3baxWCyYP38+OnToAJ1OhxtuuAGnTp0K4LsgIiKiUBbUYMdkMmHgwIH4xz/+4fH5p59+GitXrsQ//vEPFBQUICkpCePHj0dFRYVrm6ysLGzevBlvvvkmPv30U1RWVuJXv/oVZFkO1NsgIiKiEKYK5otPnjwZkydP9vicEALZ2dlYvHgxbr75ZgDAq6++isTERLzxxhu49957UV5ejnXr1uGf//wnrr/+egDA66+/jtTUVHzwwQeYOHFiwN4LERERhaaQ7bNz4sQJnDlzBhMmTHCVaTQajB07Fnv37gUAFBYWwmazuW2TkpKC/v37u7YhIiKi6BbUlp1LOXPmDAAgMTHRrTwxMREnT550bRMTE4O2bds22Ma5vycWiwUWi8X12Gg0+qraREREFGJCtmXHSZIkt8dCiAZl9TW1zbJly2AwGFw/qampPqkrERERhZ6QDXaSkpIAoEELzblz51ytPUlJSbBarfjll18a3caTRYsWoby83PVTUlLi49oTERFRqAjZYKdbt25ISkpCfn6+q8xqtWLnzp0YNWoUACA9PR1qtdptm7KyMhw+fNi1jScajQZ6vd7th4iIiCJTUPvsVFZW4tixY67HJ06cQFFREdq1a4cuXbogKysLTz75JHr16oVevXrhySefRFxcHH7zm98AAAwGA2bPno2HH34Y7du3R7t27fDII49gwIABrtFZREREFN2CGuzs378f11xzjevxggULAACzZs1CTk4Ofv/736Oqqgrz5s3DL7/8ghEjRmDHjh1ISEhw7fPMM89ApVJh5syZqKqqwnXXXYecnBwolcqAvx8iIiIKPZIQQniz4/3334+lS5eiXbt2vq5TwBmNRhgMBpSXlzOlRURU38fL/HPcaxa1and+d1NztajPTt1lGN544w1UVlYCAAYMGMBOvkRERBSSWpTGuuKKK9C+fXuMHj0a1dXVKCkpQZcuXfDjjz/CZrP5q45EREREXmtRy055eTk2bdqE9PR0OBwOTJkyBb1794bFYsH27dsvOZEfERERUTC0KNix2WwYPnw4Hn74YcTGxuLgwYNYv349lEolXnnlFfTo0QOXX365v+pKRERE1GItSmPp9XoMHjwYo0ePhtVqhdlsxujRo6FSqZCbm4vOnTvjiy++8FddiYiIiFqsRS07paWl+L//+z9oNBrY7XYMHToUY8aMgdVqxYEDByBJEv7nf/7HX3UlIiIiarEWBTsdOnTAtGnTsGzZMsTFxaGgoADz58+HJEl45JFHoNfrMXbsWH/VlYiIiKjFWrVchMFgwMyZM6FWq/HRRx/hxIkTmDdvnq/qRkRERNRqXs+g/NVXX6FTp04AgLS0NKjVaiQlJSEjI8NnlSMiIiJqLa+DndTUVNfvhw8f9klliIiIiHwtZFc9JyIiIvIFBjtEREQU0RjsEBERUUTzus8OeRCiKwMTERFFM7bsEBERUURjsENEREQRjcEOERERRTQGO0RERBTR2EGZiCiQOJCBKOAY7BARRQJ/BVFEEYBpLCIi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lA899JA4cuSIWLduXcQNPW/uuXjjjTeESqUSzz//vCgrK3P9XLx4MVhvwWdaei7qi5TRWC09DxUVFaJz587i17/+tfj666/Fzp07Ra9evcQ999wTrLfgMy09F+vXrxcqlUqsXr1a/PDDD+LTTz8VQ4cOFcOHDw/WW/CJiooKcfDgQXHw4EEBQKxcuVIcPHjQNYQ7VL8zm/r/C1dN/X889dRTwmAwiHfeeUccOnRI3HbbbR6Hnnfu3Fl88MEH4sCBA+Laa6/l0PNI9Pzzz4u0tDQRExMjhgwZInbu3Ol6btasWWLs2LFu23/yySdi8ODBIiYmRnTt2lWsWbMmwDX2n5aci7FjxwoADX5mzZoV+Ir7QUs/F3VFSrAjRMvPwzfffCOuv/56ERsbKzp37iwWLFggzGZzgGvtHy09F88995zo27eviI2NFcnJyeL2228Xp06dCnCtfevjjz++5N99KH9nXur/L1w19f/hcDjEY489JpKSkoRGoxFXX321OHTokNsxqqqqxP333y/atWsnYmNjxa9+9StRXFwchHfjHUmIKGorJSIioqjDPjtEREQU0RjsEBERUURjsENEREQRjcEOERERRTQGO0RERBTRGOwQERFRRGOwQ0RERBGNwQ4RERFFNAY7RFFg3LhxyMrKata2Xbt2RXZ2dqte75NPPoEkSbh48WKrjtPYsbt27erz4/74449hs4IzEbUMgx0KK5mZmZAkCZIkQaVSoUuXLvjd736HX375JdhV86uPP/4Y11xzDdq1a4e4uDj06tULs2bNgt1ub9b+77zzDv7yl7+4Ho8bN851Huv+2O12FBQU4Le//a2/3opfeHovkiThzTffBFAbfHn6qb/KNVGk+emnn6BWq2E2m2G326HT6VBcXBzsagUUgx0KO5MmTUJZWRl+/PFHvPzyy9i6dSvmzZsX7Gq1SteuXfHJJ594fO7rr7/G5MmTMWzYMOzatQuHDh3CqlWroFar4XA4mnX8du3aISEhwa1szpw5KCsrc/tRqVS47LLLEBcX19q31GpWq7VF269fv77B+5k+fbrbNt99912DbTp27OjDWhOFns8++wyDBg1CXFwcCgsL0a5dO3Tp0iXY1QooBjsUdjQaDZKSktC5c2dMmDABGRkZ2LFjh9s269evR58+faDVanHFFVdg9erVbs//4Q9/QO/evREXF4fu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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"from matplotlib.gridspec import GridSpec\n",
"\n",
"x_rea = x_jnj_rea\n",
"y_rea = y_jnj_rea\n",
"\n",
"x_sci = x_jnj_sci\n",
"y_sci = y_jnj_sci\n",
"\n",
"fig = plt.figure()\n",
"\n",
"gs = GridSpec(4,4)\n",
"\n",
"ax_joint = fig.add_subplot(gs[1:4,0:3])\n",
"ax_marg_x = fig.add_subplot(gs[0,0:3])\n",
"ax_marg_y = fig.add_subplot(gs[1:4,3])\n",
"\n",
"ax_joint.scatter(x_rea[delta_rea], y_rea[delta_rea], marker = '.', c = 'green')\n",
"ax_joint.scatter(x_rea[np.array(delta_rea)==0], y_rea[np.array(delta_rea)==0], marker = '.', c = 'red')\n",
"ax_joint.scatter(x_sci[delta_sci], y_sci[delta_sci], marker = 'x',c = 'darkgreen')\n",
"ax_joint.scatter(x_sci[np.array(delta_sci)==0], y_sci[np.array(delta_sci)==0], marker = 'x',c = 'orange')\n",
"\n",
"ax_marg_x.hist(list(x_rea)+list(x_sci), bins= 15, alpha =0.5, color = 'tab:orange')\n",
"#ax_marg_x.hist(x_discr_rea, bins= 15, alpha =0.5, color = 'green')\n",
"#ax_marg_x.hist(x_sci, bins= 15, alpha =0.3, color = 'blue')\n",
"\n",
"ax_marg_y.hist(list(y_rea)+list(y_sci),orientation=\"horizontal\", bins= 15, alpha =0.5, color = 'tab:blue')\n",
"#ax_marg_y.hist(y_discr_rea,orientation=\"horizontal\", bins= 15, alpha =0.5, color = 'green')\n",
"#ax_marg_y.hist(y_sci,orientation=\"horizontal\", bins= 15, alpha =0.3, color = 'blue')\n",
"\n",
"xlin = np.linspace(-0.05, 1.05, 11)\n",
"y_est = xlin\n",
"y_err = [0.2]*11\n",
"ax_joint.plot(xlin, y_est, 'k:', alpha = 0.5)\n",
"ax_joint.fill_between(xlin, y_est - y_err, y_est + y_err, alpha=0.1, color = 'grey')\n",
"ax_joint.set_xlim((-0.05,1.05))\n",
"ax_joint.set_ylim((-0.05,1.05))\n",
"\n",
"# Turn off tick labels on marginals\n",
"plt.setp(ax_marg_x.get_xticklabels(), visible=False)\n",
"plt.setp(ax_marg_y.get_yticklabels(), visible=False)\n",
"\n",
"# Set labels on joint\n",
"ax_joint.set_xlabel('Reaxys+SciFinder |EE|')\n",
"ax_joint.set_ylabel('JNJ |EE|')\n",
"# Set labels on marginals\n",
"ax_marg_y.set_xlabel('#')\n",
"ax_marg_x.set_ylabel('#')\n",
"\n",
"#plt.savefig('data_analysis_ref_EE_v3.svg')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"x_jnj_rea = list(x_jnj_rea)\n",
"y_jnj_rea = list(y_jnj_rea)\n",
"x_jnj_sci = list(x_jnj_sci)\n",
"y_jnj_sci = list(y_jnj_sci)\n",
"delta_rea = list(delta_rea)\n",
"delta_sci = list(delta_sci)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"for idx, row in df_mergedred.iterrows():\n",
" for eei in row['|ee| [-]_jnj']:\n",
" idxmin_rea = np.abs(np.array(row['|ee| [-]_rea'])-eei).argmin() \n",
" if sum(row['|ee| [-]_sci'])>0:\n",
" idxmin_sci = np.abs(np.array(row['|ee| [-]_sci'])-eei).argmin()\n",
"\n",
" if abs(np.array(row['|ee| [-]_rea'])[idxmin_rea]-eei)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"axd = plt.figure(layout=\"constrained\", figsize = (12,6)).subplot_mosaic(\n",
" [[\"barpl1\", \"barpl2\",\"scattpl\"],[\"empty\", \"barpl3\",\"barpl3\"]], \n",
" empty_sentinel=None, gridspec_kw={'width_ratios': [1,1,1],'height_ratios': [1,0.7]})\n",
"\n",
"for pair, ax, lab, nm in zip([(all_jnj_conv, raw_reaxys_yield),\n",
" #(all_jnj_ee, raw_reaxys_ee),\n",
" (all_jnj_ee, raw_reaxys_ee)], axes.flatten(), \n",
" ['Conversion','|ee|'], [\"barpl1\", \"barpl2\"]):\n",
" \n",
" dftmp = pd.DataFrame({lab:list(pair[0])+list(pair[1]), \n",
" 'group':['HTE Data']*len(pair[0])+['Reaxys+SciFinder']*len(pair[1])})\n",
" sns.histplot(data=dftmp, x=lab, kde=True, hue = 'group', ax=axd[nm], bins = 15,\n",
" stat='percent', common_norm=False)\n",
" ax.set_title(lab)\n",
"\n",
"\n",
"\n",
"df_scttpl = pd.DataFrame({'Literature |ee|':list(x_jnj_rea)+list(x_jnj_sci),\n",
" 'HTE data |ee|':list(y_jnj_rea)+list(y_jnj_sci),\n",
" 'cl':list(delta_rea)+list(delta_sci)})\n",
" \n",
"\n",
"\n",
"# Scatter plot\n",
"sns.scatterplot(data=df_scttpl, x='Literature |ee|', y='HTE data |ee|', hue=\"cl\", \n",
" palette=['tab:red','tab:green'], ax=axd['scattpl'])\n",
"\n",
"\n",
"\n",
"for idx, row in df_discr.iterrows():\n",
" x = row['Ligand#_jnj']+'_'+row['Starting material_jnj']\n",
" y1 = row['|ee| [-]_jnj']\n",
" y2 = row['|ee| [-]_rea']\n",
" y3 = row['|ee| [-]_sci']\n",
" \n",
" axd[\"barpl3\"].axvspan(-0.5, 7.5, facecolor='b', alpha=0.005)\n",
" axd[\"barpl3\"].scatter([x] * len(y1), y1, c='tab:blue', marker='o', label='JNJ', alpha=0.5)\n",
" axd[\"barpl3\"].scatter([x] * len(y2), y2, c='tab:orange', marker='o', label='Reaxys', alpha=0.5)\n",
" axd[\"barpl3\"].scatter([x] * len(y3), y3, c='darkred', marker='x', label='SciFinder', alpha=0.5)\n",
" axd[\"barpl3\"].set_xlim([-0.5, 14.5])\n",
" \n",
"\n",
"axd[\"barpl3\"].set_ylabel('|ee|')\n",
"\n",
"# Show the plot\n",
"plt.xticks(df_discr['Ligand#_jnj']+' '+df_discr['Starting material_jnj'], rotation = 60)\n",
"plt.savefig('fig5.svg')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"colab": {
"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.9.13"
}
},
"nbformat": 4,
"nbformat_minor": 1
}