You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:40:39