避免实验数据离开浏览器。
Pure Frontend Lab Tool
把原始 PRD 的 Next.js / Vue 思路,切换成更适合科研计算器的 Astro + Svelte + Cloudflare。
这个骨架保持了文档要求的“所有数据都在浏览器本地完成解析、计算与出图”,同时把整体工程改成静态优先、局部高交互的实现方式。
围绕数据输入、标记、计算、导出四段推进。
静态托管即可上线,后续可平滑升级边缘能力。
数据解析、科研图表与报告导出分层接入。
Updated Stack
新的技术栈更贴近这个产品本身
这不是把框架名字简单替换掉,而是把实现方式改成“Astro 管页面骨架,Svelte 管重交互,Cloudflare 管交付”的静态优先方案。
pnpm
统一包管理和锁文件,适合后续继续接入 SheetJS、Plotly.js、jsPDF 等工具库。
Astro
负责静态页面编排与内容骨架,让纯前端科研工具保持更轻的默认输出。
Svelte
专注 96 孔板选择、分组标记、参数面板和异常值剔除这类高频交互。
Cloudflare
用 Wrangler 托管静态构建产物,后续若引入 KV 或边缘缓存也能平滑扩展。
Wizard UX
按 PRD 保留四步式工作流
先把数据结构跑通,再把统计计算和导出逐层接上,避免一开始就把页面做成难维护的大而全单体。
数据输入
支持复制粘贴 Excel 表格,或上传 `.xlsx` / `.csv` 形成 8×12 矩阵。
孔板标记
交互式 96 孔板支持批量设置药物类型、处理方式、细胞类型、浓度和时间。
数据计算
在浏览器内完成空白扣除、存活率、抑制率、均值、SD、SEM 和异常值处理。
统计与导出
对接 T-test、ANOVA、IC50 拟合与图表导出,最终生成论文级报告。
Svelte Island
先用一个交互式 96 孔板占住最关键的产品入口
这里不是完整计算器,而是项目最需要的交互骨架。后面可以继续往这个组件里接入批量标签、空白孔/对照组绑定和异常值剔除。
96-Well Preview
孔位选择与批量标记
点击任意孔位即可模拟分组操作。
Tag Config
当前批量配置
默认按当前药物类型、浓度和时间写入分组标签。
Selection Summary
6 个孔位已选中
- 组别:实验组
- 药物:Drug A
- 处理:CCK-8 24h
- 细胞:HeLa
- 孔位:B3, B4, C3, C4, D3, D4
Implementation Roadmap
后续功能接入路线
先保住架构边界,再逐个把 PRD 里的解析、统计、图表和导出接上,不把页面逻辑和计算逻辑搅在一起。
Data Intake
用 SheetJS 解析 Excel / CSV,同时保留粘贴输入和矩阵校验。
Plate Tagging
Svelte 管理孔位选中、标签批量应用、Blank / Control 绑定和热图联动。
Stats Engine
simple-statistics / jStat 负责基础统计,后续引入拟合库补齐 IC50。
Charts & Export
Plotly.js 输出带误差线和显著性标记的图,配合 jsPDF / html2canvas 导出报告。