Hi, everyone!
I trying to deploy an app using Streamlit.
I have file packages.txt with package libxrender1 and file requirements.txt with such models as rdkit-pypi, stmol, py3Dmol and more important libraries, but the issue is, when I want to deploy an app, I have the same problem all the time:
2023-07-28 13:28:43.715 Uncaught app exception
Traceback (most recent call last):
File "/home/adminuser/venv/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 552, in _run_script
exec(code, module.__dict__)
File "/mount/src/streamlit_project/molecule_examine.py", line 2, in <module>
from rdkit import Chem
ModuleNotFoundError: No module named 'rdkit'
My molecule_examine.py contains
import streamlit as st
from rdkit import Chem
from stmol import showmol
import py3Dmol
from rdkit.Chem import AllChem
import deepchem as dc
import pandas as pd
from urllib.request import urlopen
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
from st_pages import Page, show_pages
show_pages(
[
# Page("main.py", "Home", "π "),
Page("molecule_examine.py", "Molecule Examine", "π§«"),
Page("chat.py", "ChatAI", "πͺ¬"),
Page("about_us.py", "About us", "π§π»βπ¬")
]
)
def CIRconvert(smi):
url = "https://cactus.nci.nih.gov/chemical/structure/" + smi + "/formula"
ans = urlopen(url).read().decode('utf8')
ans1 = "Π€ΠΎΡΠΌΡΠ»Π° Π²Π΅ΡΠ΅ΡΡΠ²Π°: " + ans
return ans1
def getSolubility(a):
c = a[0][0]
print(c)
b = "Π Π°ΡΡΡΠ²ΠΎΡΠΈΠΌΠΎΡΡΡ Π²Π΅ΡΠ΅ΡΡΠ²Π°: " + c.astype(str)
return b
def getPearson_r2_train_score(a):
b = "ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°: " + a.astype(str)
return b
def getPearson_r2_test_score(a):
b = "ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°: " + a.astype(str)
return b
def makeblock(smi):
mol = Chem.MolFromSmiles(smi)
mol = Chem.AddHs(mol)
AllChem.EmbedMolecule(mol)
mblock = Chem.MolToMolBlock(mol)
return mblock
def render_mol(xyz):
xyzview = py3Dmol.view()
xyzview.addModel(xyz, 'mol')
xyzview.setStyle({'stick': {}})
xyzview.setBackgroundColor('white')
xyzview.zoomTo()
showmol(xyzview, height=500, width=2000)
st.title('3D ΠΌΠΎΠ΄Π΅Π»Ρ Π²Π΅ΡΠ΅ΡΡΠ²Π° ΠΈ ΠΏΡΠΎΠ³Π½ΠΎΠ· ΡΠ°ΡΡΠ²ΠΎΡΠΈΠΌΠΎΡΡΠΈ π§¬')
st.write('ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΡΡΠ²ΠΎΡΠΈΠΌΠΎΡΡΠΈ Π²Π΅ΡΠ΅ΡΡΠ²Π° (ΠΌΠΎΠ»Π΅ΠΊΡΠ»Ρ). '
'**Π Π°ΡΡΡΠ²ΠΎΡΠΈΠΌΠΎΡΡΡ** - ΡΡΠΎ ΠΌΠ΅ΡΠ° ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Π³ΠΊΠΎ Π²Π΅ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΡΠ²ΠΎΡΡΠ΅ΡΡΡ Π² Π²ΠΎΠ΄Π΅. '
'ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Ρ
ΠΈΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²Π΅ΡΠ΅ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»Π΅ΠΊΠ°ΡΡΡΠ²Π°. '
'ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠ°ΡΡΠ²ΠΎΡΡΠ΅ΡΡΡ Ρ ΡΡΡΠ΄ΠΎΠΌ, '
'ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΠΊΡΠΎΠ²ΠΎΡΠΎΠΊ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ° Π΄Π»Ρ ΠΎΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ΅ΡΠ°ΠΏΠ΅Π²ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΡΠ΅ΠΊΡΠ°. '
'Π₯ΠΈΠΌΠΈΠΊΠΈ-ΡΠ°ΡΠΌΠ°ΡΠ΅Π²ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡ ΠΌΠΎΠ»Π΅ΠΊΡΠ»Ρ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠ²ΠΎΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠ΅ΠΏΠ°ΡΠ°ΡΠΎΠ².')
st.write('Π§ΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡ Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠΎΡΡΠΆΠΈΡΡΡ Π·Π½Π°Π½ΠΈΠ΅ΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΌΠΎΠ»Π΅ΠΊΡΠ»Ρ ΠΈΠ»ΠΈ Π²Π΅ΡΠ΅ΡΡΠ²ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅, '
'ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΌΠΎΠ³Π»Π° Π΅Π΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ, ΠΏΠΎΡΡΡΠΎΠΈΡΡ 3D ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈ ΡΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΡΠ²ΠΎΡΠΈΠΌΠΎΡΡΡ. '
'Π ΡΡΠ°ΡΡΡΡ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ΡΡΡ, ΠΈ ΠΎΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ **SMILES** (Simplified Molecular Input Line Entry System ΠΈΠ»ΠΈ '
'ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠΎΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ»Π΅ΠΊΡΠ» Π² ΡΡΡΠΎΠΊΠ΅ Π²Π²ΠΎΠ΄Π°) - ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠ°Π²ΠΈΠ» (ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ) ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π° ΠΈ '
'ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ»Π΅ΠΊΡΠ»Ρ Ρ
ΠΈΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²Π΅ΡΠ΅ΡΡΠ²Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ASCII. '
'ΠΠ°Π±Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ Π²Π°ΡΠ΅ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΠ΅ ΠΈ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΡΠ΅Π½ΠΈΡΡ Π·Π°Π΄ΡΠΌΠ°Π½Π½ΠΎΠ΅, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Ρ ΠΏΡΠΈΠ²Π΅Π΄Ρ Π΄Π»Ρ ΠΠ°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠ΅ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ SMILES.')
st.write('1. **Π’ΠΈΠ°ΠΌΠΈΠ½ ΠΈΠ»ΠΈ Π²ΠΈΡΠ°ΠΌΠΈΠ½ B1:** *CC1=C(SC=[N+]1CC2=CN=C(N=C2N)C)CCO* - ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡΠΌ ΠΌΠΈΠΊΡΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ ΠΈ ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ
. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΏΠΈΡΠ΅Π²ΡΡ
ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ
ΠΈ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈ ΡΠΈΠ½ΡΠ΅Π·ΠΈΡΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΈΡΠ΅Π²ΠΎΠΉ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ ΠΈΠ»ΠΈ Π»Π΅ΠΊΠ°ΡΡΡΠ²Π°. Π€ΠΎΡΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΎΡΠΌΡ ΡΠΈΠ°ΠΌΠΈΠ½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠ΅ΡΠ°Π±ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅Π°ΠΊΡΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Π³Π»ΡΠΊΠΎΠ·Ρ ΠΈ Π°ΠΌΠΈΠ½ΠΎΠΊΠΈΡΠ»ΠΎΡ.')
st.write('2. **ΠΠΎΡΠΌΠΎΠ½ ΠΏΡΠΎΠ³Π΅ΡΡΠ΅ΡΠΎΠ½:** *CC(=O)C1CCC2C1(CCC3C2CCC4=CC(=O)CCC34C)C* - ΡΠ½Π΄ΠΎΠ³Π΅Π½Π½ΡΠΉ ΡΡΠ΅ΡΠΎΠΈΠ΄ ΠΈ ΠΏΡΠΎΠ³Π΅ΡΡΠ°Π³Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΎΠΉ Π³ΠΎΡΠΌΠΎΠ½, ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΌΠ΅Π½ΡΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΊΠ», Π±Π΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΡΡ ΠΈ ΡΠΌΠ±ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ Π΄ΡΡΠ³ΠΈΡ
Π²ΠΈΠ΄ΠΎΠ². ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΠΌΠ΅ΡΠ°Π±ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ Π·Π²Π΅Π½ΠΎΠΌ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ
ΡΠ½Π΄ΠΎΠ³Π΅Π½Π½ΡΡ
ΡΡΠ΅ΡΠΎΠΈΠ΄ΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ»ΠΎΠ²ΡΠ΅ Π³ΠΎΡΠΌΠΎΠ½Ρ ΠΈ ΠΊΠΎΡΡΠΈΠΊΠΎΡΡΠ΅ΡΠΎΠΈΠ΄Ρ, ΠΈ ΠΈΠ³ΡΠ°Π΅Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ·Π³Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π΅ΠΉΡΠΎΡΡΠ΅ΡΠΎΠΈΠ΄Π°.')
st.write('3. **ΠΠΎΡΠ΅ΠΈΠ½:** *CN1C=NC2=C1C(=O)N(C(=O)N2C)C* - ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΡ
ΠΎΠ°ΠΊΡΠΈΠ²Π½ΡΠΌ Π²Π΅ΡΠ΅ΡΡΠ²ΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΊΠΎΡΠ΅, ΡΠ°Π΅, ΠΌΠ°ΡΠ΅, Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² ΡΠ½Π΅ΡΠ³Π΅ΡΠΈΠΊΠΎΠ² ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΏΡΠΎΡ
Π»Π°Π΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π½Π°ΠΏΠΈΡΠΊΠΎΠ². Π’Π°ΠΊΠΆΠ΅ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² Π°ΠΏΡΠ΅ΡΠ½ΡΡ
ΠΏΡΠ΅ΠΏΠ°ΡΠ°ΡΠΎΠ². ΠΠ½ ΡΠΈΠ½ΡΠ΅Π·ΠΈΡΡΠ΅ΡΡΡ ΡΠ°ΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ Π½Π°ΡΠ΅ΠΊΠΎΠΌΡΡ
, ΠΏΠΎΠ΅Π΄Π°ΡΡΠΈΡ
Π»ΠΈΡΡΡΡ, ΡΡΠ΅Π±Π»ΠΈ ΠΈ Π·ΡΡΠ½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΏΠΎΠΎΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ»ΠΈΡΠ΅Π»Π΅ΠΉ. Π£ ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ
ΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΊΠΎΡΠ΅ΠΈΠ½ ΡΡΠΈΠΌΡΠ»ΠΈΡΡΠ΅Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ Π½Π΅ΡΠ²Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΠΈΠ»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ΄Π΅ΡΠ½ΡΡ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΡΠ»ΡΡ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΎΠ²Π΅Π½ΠΎΡΠ½ΡΡ
ΡΠΎΡΡΠ΄ΠΎΠ² (ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΡΡΠ΄ΠΎΠ² ΡΠΊΠ΅Π»Π΅ΡΠ½ΡΡ
ΠΌΡΡΡ, Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ·Π³Π° (ΡΡΠΆΠ°Π΅Ρ ΠΏΡΠΎΡΠ²Π΅Ρ ΠΌΠΎΠ·Π³ΠΎΠ²ΡΡ
Π°ΡΡΠ΅ΡΠΈΠΉ), ΡΠ΅ΡΠ΄ΡΠ°, ΠΏΠΎΡΠ΅ΠΊ), ΡΡΠΈΠ»ΠΈΠ²Π°Π΅Ρ ΠΌΠΎΡΠ΅ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.')
st.write('4. **ΠΠ΅Π²ΠΎΡΠΈΡΠΈΡΠΈΠ·ΠΈΠ½:** *C1CN(CCN1CCOCC(=O)O)C(C2=CC=CC=C2)C3=CC=C(C=C3)Cl* - Π°Π½ΡΠΈΠ³ΠΈΡΡΠ°ΠΌΠΈΠ½Π½ΡΠΉ ΠΏΡΠ΅ΠΏΠ°ΡΠ°Ρ, ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π±Π»ΠΎΠΊΠ°ΡΠΎΡΠ°ΠΌ Π1-ΡΠ΅ΡΠ΅ΠΏΡΠΎΡΠΎΠ² Π³ΠΈΡΡΠ°ΠΌΠΈΠ½Π° Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠ΅ΠΏΠ°ΡΠ°Ρ ΠΏΡΠΎΡΠΈΠ² Π°Π»Π»Π΅ΡΠ³ΠΈΠΈ.')
st.write('5. **ΠΠ΅Ρ
Π»ΠΎΡΠ΅ΡΠ°ΠΌΠΈΠ½:** *CN(CCCl)CCCl* - ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΡΠΎΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠ΅ΠΏΠ°ΡΠ°Ρ (ΠΏΡΠΎΡΠΈΠ²ΠΎΠΎΠΏΡΡ
ΠΎΠ»Π΅Π²ΡΠΉ ΠΏΡΠ΅ΠΏΠ°ΡΠ°Ρ) Π°Π»ΠΊΠΈΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ΅ Π±ΠΈΡ-Ξ²-Ρ
Π»ΠΎΡΡΡΠΈΠ»Π°ΠΌΠΈΠ½Π°, Π°Π·ΠΎΡΠΈΡΡΡΠΉ Π°Π½Π°Π»ΠΎΠ³ ΠΈΠΏΡΠΈΡΠ°. ΠΡΠ΅ΠΏΠ°ΡΠ°Ρ Π±ΡΠ²Π°Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΏΡΠΈ ΠΎΡΡΡΠΎΠΌ ΠΈ Ρ
ΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΌΠΈΠ΅Π»ΠΎ- ΠΈ Π»ΠΈΠΌΡΠΎΠ»Π΅ΠΉΠΊΠΎΠ·Π΅, Π»ΠΈΠΌΡΠΎ- ΠΈ ΡΠ΅ΡΠΈΠΊΡΠ»ΠΎΡΠ°ΡΠΊΠΎΠΌΠ΅, Π»ΠΈΠΌΡΠΎΠ³ΡΠ°Π½ΡΠ»Π΅ΠΌΠ°ΡΠΎΠ·Π΅, Π³ΡΠΈΠ±ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΌ ΠΌΠΈΠΊΠΎΠ·Π΅, ΠΎΡΡΠ°ΡΡΠΈ ΠΏΡΠΈ ΠΌΠ΅Π»ΠΊΠΎΠΊΠ»Π΅ΡΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΊΠ΅ Π»ΡΠ³ΠΊΠΎΠ³ΠΎ.')
smiles = st.text_input('ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π²Π΅ΡΠ΅ΡΡΠ²Π° ΠΈΠ»ΠΈ ΠΌΠΎΠ»Π΅ΠΊΡΠ»Ρ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ SMILES. '
'ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΠΎΠ½Π° Π½ΠΈΠΆΠ΅, ΡΡΠΎ Ρ
ΠΈΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ "Π’Π΅ΡΠ±ΡΡΡΠΈΠ½", ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ '
'"ΠΠ΅ΡΠ±ΠΈΡΠΈΠ΄Π°" - Π²Π΅ΡΠ΅ΡΡΠ²Π°, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠ΅Π½ΠΈΠΉ.',
'CSc1nc(NC(C)C)nc(NC(C)C)n1')
st.success(CIRconvert(smiles), icon="β
οΈ")
st.write('**ΠΠ±ΡΠ΅ΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠ² Π² 3D ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ»Π΅ΠΊΡΠ»Ρ** β¬οΈ')
st.write('ΠΡΠ°ΡΠ½ΡΠΉ - ΠΊΠΈΡΠ»ΠΎΡΠΎΠ΄')
st.write('ΠΠ΅Π»ΡΠΉ - Π²ΠΎΠ΄ΠΎΡΠΎΠ΄')
st.write('Π‘Π΅ΡΡΠΉ - ΡΠ³Π»Π΅ΡΠΎΠ΄')
st.write('ΠΠΎΠ»ΡΠ±ΠΎΠΉ - Π°Π·ΠΎΡ')
st.write('ΠΡΠ»ΡΡΠΉ - ΡΠ΅ΡΠ° ΠΈΠ»ΠΈ Ρ
Π»ΠΎΡ')
st.info('3D ΠΌΠΎΠ΄Π΅Π»Ρ Π½ΠΈΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ', icon="βΉοΈ")
blk = makeblock(smiles)
render_mol(blk)
st.write('**ΠΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΏΠ°ΡΡ ΡΠ΅ΠΊΡΠ½Π΄, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ³Π½ΠΎΠ·** β¨')
# ML
solubility_tasks, solubility_datasets, transformers = dc. molnet.load_delaney(featurizer='GraphConv')
train_dataset, valid_dataset, test_dataset = solubility_datasets
model = dc.models.GraphConvModel(n_tasks=1, mode='regression', dropout=0.2)
model.fit(train_dataset, nb_epoch=50)
featurizer = dc.feat.ConvMolFeaturizer()
x = featurizer.featurize(smiles)
predicted_solubility = model.predict_on_batch(x)
st.success(getSolubility(predicted_solubility), icon="β
")
st.write('ΠΡΡΡΡ Π΄Π΅Π»ΡΡΠ° (Ξ΄) - ΡΡΠΎ Π½Π°ΡΠ΅ ΡΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠ³Π΄Π° Π΅ΡΠ»ΠΈ: ')
st.latex(r'''\lim\limits_{\delta\to -3} \delta = ΠΠ΅ΡΠ°ΡΡΠ²ΠΎΡΠΈΠΌΠΎ''')
st.latex(r'''\lim\limits_{\delta\to 3} \delta = Π Π°ΡΡΠ²ΠΎΡΠΈΠΌΠΎ''')
st.latex(r'''\delta \in (-2; 2) = ΠΠ°Π»ΠΎΡΠ°ΡΡΠ²ΠΎΡΠΈΠΌΠΎ''')
st.write('')
st.header('ΠΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ')
st.write('Π Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½Π½Π°Ρ Π³ΡΠ°ΡΠΎΠ²Π°Ρ ΡΠ²Π΅ΡΡΠΎΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠ°Ρ, ΡΡΠΎ ΠΌΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°ΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ ΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ '
'Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΠ°ΡΠ°ΡΡΡΡ Π²ΠΎΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΈΡ
ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ½Π΅Π΅. ΠΡΠΈΠΌ ΠΎΠ½Π° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΡΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ '
'ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΠΊΠ»Π°ΡΡΠΎΠ². Π ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡΠΊΠΈ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ **ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΠΈ ΠΠΈΡΡΠΎΠ½Π°**')
metric = dc.metrics.Metric(dc.metrics.pearson_r2_score)
train_score = model.evaluate(train_dataset, [metric], transformers)
test_score = model.evaluate(test_dataset, [metric], transformers)
st.write(getPearson_r2_train_score(train_score['pearson_r2_score']))
st.write(getPearson_r2_test_score(test_score['pearson_r2_score']))