Spaces:
Running
Running
File size: 7,737 Bytes
b61c416 2e88125 db741c8 2e88125 db741c8 2e88125 b61c416 8a0150f c3ebcce b60b17e 318ecf5 c3ebcce 8a0150f d461ae3 8a0150f b61c416 db741c8 b61c416 1e012c1 1bd1714 4727ea5 1bd1714 d461ae3 1bd1714 3517598 02107f0 4727ea5 d620477 6acf4f9 f57bc74 6acf4f9 2f97a7e d461ae3 f57bc74 c55a531 1bd1714 d0ae7ed bbff065 1bd1714 2e88125 1bd1714 2e88125 1bd1714 2e88125 1bd1714 2e88125 1bd1714 2e88125 c6b95e4 1bd1714 b61c416 1bd1714 d0ae7ed 1bd1714 02107f0 4727ea5 c55a531 1bd1714 4727ea5 d461ae3 1bd1714 b61c416 2e88125 5bd7198 2e88125 5bd7198 2e88125 b61c416 2e88125 81fcd16 fcfbdc8 81fcd16 b61c416 db741c8 2642c3c db741c8 b61c416 db741c8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 |
import streamlit as st
import requests
import os
from login import LOGIN
from register import REGISTER
tok=os.getenv("TOK")
def InitSession():
if "username" not in st.session_state:
st.session_state.username=""
if "projectname" not in st.session_state:
st.session_state.projectname=""
if "loggedin" not in st.session_state:
st.session_state.loggedin=False
InitSession()
def APP():
col1,col2=st.columns(2)
with col1:
st.markdown("""
<h2>new <i style='color:red'>MATTER</i> </h2>
""",unsafe_allow_html=True)
with col2:
st.image("https://pub-e4d20ff4ef334a2894d440ac56d680db.r2.dev/flask.gif",width=80)
tab1, tab2, tab3 = st.tabs(["PROTEIN ENGINEERING LAB", "EXECUTED OPERATIONS", "LAB OUTPUT"])
def SHOWTABS():
with tab1:
option_map = {
0: ":material/pill:",
1: ":material/vaccines:",
2: ":material/labresearch:",
3: ":material/warning:"
}
selection = st.pills(
"BIOLOGICS",
options=option_map.keys(),
format_func=lambda option: option_map[option],
selection_mode="single",
)
#match selection:
if selection == 0:
st.markdown("<p style='color:white;background-color:orange;font-weight:bold'> Nanobody [CANCER targeted]</p>",unsafe_allow_html=True)
#with st.expander("info"):
#st.info("This Interface lets u specify a high level biological query (Protein Engineering Query) and execute the pipeline for the end product i.e Engineered Nanobody",icon=":material/info:")
with st.form("bio",border=False):
uid=None
project_name=None
with st.expander("settings",icon=":material/settings:"):
uid=st.text_input("enter username")
project_name=st.text_input("enter project name ")
if not uid or not project_name:
st.markdown(":orange-badge[⚠️ Set Username and Projectname]")
bio_input = st.text_area(
"Protein Engineering Query",
placeholder="Type your query here."
)
execute_button=st.form_submit_button("execute")
if execute_button:
if uid and project_name: # Only process if fields are filled
st.session_state.projectname = project_name
st.session_state.username = uid
payload={
"uid":uid,
"pid":project_name,
"high_level_bio_query":bio_input
}
response=requests.post("https://thexforce-combat-backend.hf.space/bio_context_language_plan",json=payload,headers={
"Content-Type":"application/json",
"Authorization":f"Bearer {tok}"
})
plan_response=response.json()
if plan_response.get("status")=="active":
st.code(f"{plan_response.get('plan')}", language="python")
else:
st.warning(">>>Error")
else:
st.error("Please fill in both username and project name before submitting")
if selection == 1:
st.markdown("<p style='color:white;background-color:orange;font-weight:bold'>Vaccine [Supported] </p>",unsafe_allow_html=True)
with st.expander("info"):
st.info("This Interface lets u specify a high level biological query and execute the pipeline for the end product i.e Vaccine",icon=":material/info:")
st.code("coming soon")
if selection ==2:
st.markdown("<p style='color:white;background-color:orange;font-weight:bold'>Operation Details </p>",unsafe_allow_html=True)
if selection==3:
st.markdown("<p style='color:white;background-color:orange;font-weight:bold'> This system is running in trial phase </p>",unsafe_allow_html=True)
with tab2:
st.markdown("### newMATTER Bio Lab Operations")
@st.cache_data(ttl=10)
def fetch_ops():
response=requests.get(f"https://thexforce-combat-backend.hf.space/user/operations/{st.session_state.get('username')}",headers={
"Content-Type":"application/json",
"Authorization":f"Bearer {tok}"
})
useroperations_json=response.json()
return useroperations_json
userops=fetch_ops()
with st.expander("operations"):
st.json(userops)
with tab3:
st.markdown("### newMATTER Bio Lab Outputs")
projectname=st.text_input("projectname to look the results for ")
if st.button("lookup"):
response=requests.get(
f"https://thexforce-combat-backend.hf.space/{st.session_state.get('username')}/{projectname}/individual/experiment",
headers={
"Content-Type":"application/json",
"Authorization":f"Bearer {tok}"
})
ie=response.json()
st.json(ie)
base_option_map = {
0: ":material/login:",
1: ":material/personadd:",
}
selection = st.pills(
"ACCESS",
options=option_map.keys(),
format_func=lambda option: base_option_map[option],
selection_mode="single",
)
if selection==0:
logged_in_object=LOGIN()
if logged_in_object.get("loggedin")==True :
SHOWTABS()
elif logged_in_object.get("loggedin")==False:
st.write("login failed , try again")
if selection==1:
REGISTER()
|