You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
st.markdown("The [ASAPDiscovery antiviral drug discovery consortium](https://asapdiscovery.org) has developed a series of machine learning models (primarily Graph Attention Networks (GATs)) to predict molecular properties based on our experimental data, much of which is [available](https://asapdiscovery.org/outputs/) as part of our [open science](https://asapdiscovery.org/open-science/) and public disclosure policy.")
69
-
st.markdown("These models are trained on a variety of endpoints, including in-vitro activity, assayed LogD, and more \n Some models are specific to a target, while others are global models that predict properties across all targets.")
70
-
st.markdown("This web app gives you easy API-less access to the models, I hope you find it useful!\n As scientists we should always be looking to get our models into people's hands as easily as possible.")
71
-
st.markdown("These models are trained bi-weekly. The latest models are used for prediction where possible. Note that predictions are pre-alpha and are provided as is, we are still working very actively on improving and validating models.")
70
+
st.markdown(
71
+
"**The [ASAP Discovery antiviral drug discovery consortium](https://asapdiscovery.org) has developed a series of local machine learning models (GAT architecture) to predict properties based on our local data, much of which is [available](https://asapdiscovery.org/outputs/) as part of our [open science policy](https://asapdiscovery.org/open-science/).**"
72
+
)
73
+
st.markdown(
74
+
"**These models are trained on a variety of experimental endpoints that are found in ASAP's CDD vault, including biochemical and antiviral potency, assayed LogD, and more. Some models are specific to a target, while others are global models that predict properties across all targets.**"
75
+
)
76
+
st.markdown(
77
+
"This web app gives you easy access to the trained models without having to write or execute any code. The intention is to empower anyone across ASAP to make these predictions."
78
+
)
79
+
st.markdown("---")
80
+
st.markdown(
81
+
"These models are trained bi-weekly. The latest models are used for prediction where possible. Note that predictions are pre-alpha and are provided as is, work is on-going on improving and validating these models. As a general rule of thumb, predictions on your data will be better when your query compound(s) is/are closer chemically to the compounds in the CDD. Are you having problems using this UI or do you have a feature request? Please open an issue on [our issue tracker](https://github.com/asapdiscovery/asap-ml-streamlit/issues/new)."
82
+
)
72
83
73
-
st.markdown("## Select input")
84
+
st.markdown("## Input :clipboard:")
74
85
75
86
76
-
input=st.selectbox("How would you like to enter your input?", ["Upload a CSV file", "Draw a molecule", "Enter SMILES", "Upload an SDF file"])
87
+
input=st.selectbox(
88
+
"How would you like to enter your input?",
89
+
["Upload a CSV file", "Draw a molecule", "Enter SMILES", "Upload an SDF file"],
90
+
)
77
91
78
92
multismiles=False
79
93
ifinput=="Draw a molecule":
80
-
st.write("Draw a molecule")
81
94
smiles=st_ketcher(None)
82
95
if_is_valid_smiles(smiles):
83
-
st.success("Valid SMILES string", icon="✅")
96
+
st.success("Valid molecule", icon="✅")
84
97
else:
85
-
st.error("Invalid SMILES string", icon="🚨")
98
+
st.error("Invalid molecule", icon="🚨")
86
99
st.stop()
87
100
smiles= [smiles]
88
101
df=pd.DataFrame(smiles, columns=["SMILES"])
89
102
column="SMILES"
90
103
smiles_column=df["SMILES"]
91
104
elifinput=="Enter SMILES":
92
-
st.write("Enter SMILES")
93
105
smiles=st.text_input("Enter a SMILES string")
94
106
if_is_valid_smiles(smiles):
95
107
st.success("Valid SMILES string", icon="✅")
@@ -101,10 +113,10 @@ def convert_df(df):
101
113
column="SMILES"
102
114
smiles_column=df["SMILES"]
103
115
elifinput=="Upload a CSV file":
104
-
st.write("Upload a CSV file")
105
-
106
116
# Create a file uploader for CSV files
107
-
uploaded_file=st.file_uploader("Choose a CSV file to upload your predictions to", type="csv")
117
+
uploaded_file=st.file_uploader(
118
+
"Choose a CSV file to upload your predictions to", type="csv"
119
+
)
108
120
109
121
# If a file is uploaded, parse it into a DataFrame
0 commit comments