Update app.py
Browse files
app.py
CHANGED
|
@@ -42,7 +42,7 @@ def load_hf_encoder(repo_id, subfolder=None, base_tok=None):
|
|
| 42 |
"""
|
| 43 |
• repo_id : repositório HF ou caminho local
|
| 44 |
• subfolder : subpasta onde vivem pesos/config (None se não houver)
|
| 45 |
-
• base_tok : repo para o tokenizer (None
|
| 46 |
Converte tf_model.h5 → PyTorch on-the-fly (from_tf=True).
|
| 47 |
"""
|
| 48 |
if base_tok is None:
|
|
@@ -100,7 +100,7 @@ GO = mlb.classes_
|
|
| 100 |
st.set_page_config(page_title="Predição de Funções Moleculares de Proteínas",
|
| 101 |
page_icon="🧬", layout="centered")
|
| 102 |
|
| 103 |
-
# CSS: fundo branco
|
| 104 |
st.markdown(
|
| 105 |
"""
|
| 106 |
<style>
|
|
@@ -108,12 +108,13 @@ st.markdown(
|
|
| 108 |
.block-container { padding-top: 1.5rem; }
|
| 109 |
textarea { font-size: 0.9rem !important; }
|
| 110 |
|
| 111 |
-
/* traço vertical
|
| 112 |
div[data-testid="column"]:first-child {
|
| 113 |
border-right: 1px solid #E0E0E0;
|
| 114 |
padding-right: 1.2rem;
|
| 115 |
}
|
| 116 |
-
|
|
|
|
| 117 |
img.logo { margin-top: 0.5rem; }
|
| 118 |
</style>
|
| 119 |
""",
|
|
@@ -123,7 +124,8 @@ st.markdown(
|
|
| 123 |
# Logo (coloca logo.png na raiz do Space)
|
| 124 |
LOGO_PATH = "logo.png"
|
| 125 |
if os.path.exists(LOGO_PATH):
|
| 126 |
-
st.
|
|
|
|
| 127 |
|
| 128 |
st.title("Predição de Funções Moleculares de Proteínas (GO:MF)")
|
| 129 |
|
|
@@ -166,8 +168,12 @@ def uni_url(header):
|
|
| 166 |
def mostrar(header, y_pred):
|
| 167 |
"""Expander com botão UniProt + duas colunas de resultados."""
|
| 168 |
with st.expander(header, expanded=True):
|
| 169 |
-
# botão que abre UniProt noutra aba
|
| 170 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 171 |
st.markdown("---")
|
| 172 |
|
| 173 |
col1, col2 = st.columns(2)
|
|
|
|
| 42 |
"""
|
| 43 |
• repo_id : repositório HF ou caminho local
|
| 44 |
• subfolder : subpasta onde vivem pesos/config (None se não houver)
|
| 45 |
+
• base_tok : repo para o tokenizer (None ⇒ usa repo_id)
|
| 46 |
Converte tf_model.h5 → PyTorch on-the-fly (from_tf=True).
|
| 47 |
"""
|
| 48 |
if base_tok is None:
|
|
|
|
| 100 |
st.set_page_config(page_title="Predição de Funções Moleculares de Proteínas",
|
| 101 |
page_icon="🧬", layout="centered")
|
| 102 |
|
| 103 |
+
# CSS global: fundo branco, divisão de colunas e margem do logo
|
| 104 |
st.markdown(
|
| 105 |
"""
|
| 106 |
<style>
|
|
|
|
| 108 |
.block-container { padding-top: 1.5rem; }
|
| 109 |
textarea { font-size: 0.9rem !important; }
|
| 110 |
|
| 111 |
+
/* traço vertical entre as colunas de resultados */
|
| 112 |
div[data-testid="column"]:first-child {
|
| 113 |
border-right: 1px solid #E0E0E0;
|
| 114 |
padding-right: 1.2rem;
|
| 115 |
}
|
| 116 |
+
|
| 117 |
+
/* margem extra para o logo */
|
| 118 |
img.logo { margin-top: 0.5rem; }
|
| 119 |
</style>
|
| 120 |
""",
|
|
|
|
| 124 |
# Logo (coloca logo.png na raiz do Space)
|
| 125 |
LOGO_PATH = "logo.png"
|
| 126 |
if os.path.exists(LOGO_PATH):
|
| 127 |
+
st.markdown(f"<img src='{LOGO_PATH}' width='180' class='logo'/>",
|
| 128 |
+
unsafe_allow_html=True)
|
| 129 |
|
| 130 |
st.title("Predição de Funções Moleculares de Proteínas (GO:MF)")
|
| 131 |
|
|
|
|
| 168 |
def mostrar(header, y_pred):
|
| 169 |
"""Expander com botão UniProt + duas colunas de resultados."""
|
| 170 |
with st.expander(header, expanded=True):
|
| 171 |
+
# botão que abre UniProt noutra aba (necessita Streamlit ≥1.23)
|
| 172 |
+
try:
|
| 173 |
+
st.link_button("🔗 Ver na UniProt", uni_url(header), type="primary")
|
| 174 |
+
except AttributeError:
|
| 175 |
+
st.markdown(f"[🔗 Ver na UniProt]({uni_url(header)})")
|
| 176 |
+
|
| 177 |
st.markdown("---")
|
| 178 |
|
| 179 |
col1, col2 = st.columns(2)
|