Streamlit多页面应用异常求助:核苷酸统计功能失效
问题解决:Streamlit多页面架构中核苷酸统计无输出
问题原因
单独运行nucleotide_eda.py时,Streamlit会自动渲染裸变量(直接写sequence或X),但在MultiApp多页面框架下,这种裸变量的输出方式无法被正确识别渲染,导致输入序列后看不到统计结果。
修复方案
将代码中直接输出裸变量的部分替换为Streamlit官方提供的显示组件(比如st.write()),确保内容能在多页面上下文里正常展示。
修改后的nucleotide_eda.py代码:
import streamlit as st def app(): st.title('Exploratory Data Analysis of Genomic Sequence') st.write('Nucleotide EDA allows you to perform Exploratory Data Analysis on any submitted genomic sequence') st.header("Enter Your DNA Sequence in FASTA Format") sequence_input = ">DNA\nATGCGCTAGGATACA" sequence = st.text_area("Sequence Input", sequence_input, height=250) sequence = sequence.splitlines() sequence = sequence[1:] sequence = ''.join(sequence) st.write('''***''') st.header("Input Query Sequence") st.write(sequence) # 替换原裸变量输出 st.write('''***''') st.header("Nucleotide Count") def nucleotide_count(seq): d = dict([('A', seq.count("A")),('T',seq.count("T")),('G',seq.count("G")),('C',seq.count("C"))]) return d X = nucleotide_count(sequence) X_label = list(X) X_values = list(X.values()) st.write(X) # 替换原裸变量输出 st.write('''***''')
额外优化建议
- 用
st.code(sequence, language="fasta")格式化显示输入序列,提升可读性 - 统计结果可改用
st.dataframe(X)或st.bar_chart(X)可视化,让数据展示更直观
内容的提问来源于stack exchange,提问作者satyam sangeet
相关产品推荐
相关产品推荐

