

今天是生信星球陪你的第1070天
躺又躺不平,卷又卷不动。
做点数据处理和可视化,需要编程基础;做出来图表,需要解读和文献验证,又是大把的时间啊。 来自巴基斯坦费萨拉巴德政府大学的Muhammad Tahir ul Qamar团队开发了BioVix,提供文件+需求,自然语言交互,帮你写代码+跑代码+出图+解释+自动搜索相关文献,几天前新鲜热乎的预印本:
《BioVix: An Integrated Large Language Model Framework for Data Visualization, Graph Interpretation, and Literature-Aware Scientific Validation》
只需要输入简单的描述,如"请绘制一个展示蛋白表达组织分布的太阳图",BioVix就能自动生成高质量的可视化结果。这种直观的交互方式让数据分析变得更加高效。

很多大模型都可以给出代码,但是那些代码又不一定跑的通!
这个工具不一样,它的自然语言处理依靠的是DeepSeek V3.1,会测试代码是否能跑成功,跑不成功会自动纠错,一共有3次自动纠错的机制。如果3次还没成功,可以试着调整一下提示词了。 代码是基于python写的,集成了Plotly可视化,提供代码,可以复制。
依靠Qwen2.5-VL-32B 视觉大模型,不论是系统生成的图,还是你上传的本地科研图片(PNG/JPG),它都能识别出其中的异常值、趋势和模式 。
这是 BioVix 的独家秘笈。它能根据数据解读结果,自动生成精准的学术检索词,通过 Semantic Scholar API 实时推送 5 篇最相关的前沿文献,实现“数据-图表-证据”的闭环 。

在使用人类蛋白质组图谱(HPM)数据集的测试中,BioVix 表现出了强大的多维数据处理能力 。研究人员通过自然语言指令,成功生成了展示蛋白质表达丰度的层次化太阳图 。该功能不仅能直观呈现蛋白质在成人、胎儿及免疫组织中的分布,还能自动识别出组织特异性的表达模式,帮助研究者快速锁定高丰度蛋白 。

在针对 10,000 个人的外周血单个核细胞(PBMCs)的基因组峰值(Peak)注释数据集评估中,BioVix 展示了其在表观遗传学领域的应用潜力 。系统能够根据指令精准绘制 Peak 计数在染色体上的分布图,并生成展示“启动子-增强子”相互作用分布比例的漏斗图 。这种全局视角的自动化分析,让研究者能够迅速掌握染色质开放性的分布特征 。

针对复杂的临床诊断数据,BioVix 能够处理生理与临床预测指标间的多元关系 。系统成功构建了一个以血糖、BMI 和年龄为维度的 3D 散点图,清晰揭示了高年龄段中高 BMI 与糖尿病结果的正相关性 。此外,BioVix 还能自动关联并检索关于妊娠风险、胰岛素水平等关键风险因子的学术文献,为临床数据分析提供完整的闭环支持 。

****https://huggingface.co/spaces/MuhammadZain10/BioVix

使用过程简单直观:
整个流程通常只需要几分钟时间,让研究人员能够快速验证研究想法,把握科研方向。
BioVix完全开源,研究人员可以访问GitHub仓库获取完整源代码,根据自己的需求进行定制化开发。
源代码仓库在:https://github.com/MuhammadZain-Butt/BioVix
完成一些简单的分析还是可以的。比如我丢给他一个卵巢癌转录组的fpkm,提供分组信息,让它做个差异分析+火山图。它用的是t检验,给的代码是:
import plotly.graph_objects as go
import pandas as pd
from scipy import stats
import numpy as np
# Validation checks
required_columns = ['Normal_1', 'Normal_2', 'Normal_3', 'Normal_4', 'HGSOC_1', 'HGSOC_2', 'HGSOC_3', 'HGSOC_4', 'Name']
missing_columns = [col for col in required_columns if col not in df.columns]
if missing_columns:
raise ValueError(f"Missing required columns: {missing_columns}")
# Define control and treatment groups
control_cols = ['Normal_1', 'Normal_2', 'Normal_3', 'Normal_4']
treatment_cols = ['HGSOC_1', 'HGSOC_2', 'HGSOC_3', 'HGSOC_4']
# Calculate log2 fold change and p-values
log2_fc = []
p_values = []
for i in range(len(df)):
control_vals = df[control_cols].iloc[i].values
treatment_vals = df[treatment_cols].iloc[i].values
# Calculate log2 fold change
mean_control = np.mean(control_vals)
mean_treatment = np.mean(treatment_vals)
# Avoid division by zero by adding small constant
fc = (mean_treatment + 1e-6) / (mean_control + 1e-6)
log2_fc.append(np.log2(fc))
# Calculate t-test p-value
t_stat, p_value = stats.ttest_ind(treatment_vals, control_vals)
p_values.append(p_value)
# Convert p-values to -log10(p-value)
neg_log10_p = -np.log10(p_values)
# Create volcano plot
fig = go.Figure()
# Add scatter points
fig.add_trace(go.Scatter(
x=log2_fc,
y=neg_log10_p,
mode='markers',
marker=dict(
size=8,
color=neg_log10_p,
colorscale='Viridis',
showscale=True,
colorbar=dict(title='-log10(p-value)')
),
text=df['Name'],
hovertemplate='<b>%{text}</b><br>log2FC: %{x:.3f}<br>-log10(p): %{y:.3f}<extra></extra>'
))
# Add significance threshold lines (optional)
fig.add_hline(y=1.3, line_dash="dash", line_color="red", annotation_text="p=0.05")
fig.add_vline(x=1, line_dash="dash", line_color="red")
fig.add_vline(x=-1, line_dash="dash", line_color="red")
# Update layout
fig.update_layout(
title='Volcano Plot - Differential Expression Analysis',
xaxis_title='log2 Fold Change',
yaxis_title='-log10(p-value)',
showlegend=False,
width=800,
height=600
)
fig
出的图长这样:

还有一些解读和文献验证

(我用了“沉浸式翻译”插件实现的网页翻译)

确实都是一些卵巢癌数据差异分析的文章。
BioVix代表了生物信息学工具发展的新方向,从复杂的技术操作转向直观的科学研究。工具的结果仍需研究者的专业判断,但它显著降低了技术门槛,让研究人员能够更专注于科学问题本身。
什么时候能支持一下R语言就好咯。