This package is intended to be used as a Molecule Draw component on Streamlit applications. It uses jsme-react. It _was inspired by chemstreamlit_js; so, the credit all to them.
Build | |
Source Code | |
Python Versions | |
Dependencies | |
License | |
Downloads |
pip install StreamJSME
from StreamJSME import StreamJSME
from rdkit import Chem
from rdkit.Chem import Descriptors
from rdkit.Chem import Draw
from io import BytesIO
import streamlit as st
st.title('✍️ molecules with JSME in Streamlit 🤩')
# Create a first plot with an input SMILES, by default smiles = 'C'
update_smiles = StreamJSME(smiles='CCC')
st.subheader('Using the draw molecule inside RDKit')
st.write(f"New SMILES = {update_smiles}")
mol = Chem.MolFromSmiles(update_smiles)
st.write(f"MolLogP = {Descriptors.MolLogP(mol)}\n\nTPSA = {Descriptors.TPSA(mol)}")
st.subheader('Getting the RDKit image')
img = Draw.MolToImage(mol)
bio = BytesIO()
img.save(bio, format='png')
st.image(img)
If trying to run the Streamlit application you get OSError: [Errno 28] inotify watch limit reached
,
just use the flag --server.fileWatcherType none
:
streamlit run app.py --server.fileWatcherType none
If you have found a bug, please open an issue on the GitHub Issues.
If you have questions on how to use StreamJSME, or if you want to give feedback or share ideas and new features, please head to the GitHub Discussions.