返回案例库

精选案例 · Agent / 实践案例

张轩屹(xuanyizhang)— AI 辅助科研代码开发

这个案例围绕「张轩屹(xuanyizhang)— AI 辅助科研代码开发」记录了一条真实 AI 实践线索,正文重点集中在「相关 AI 工具」「利用大模型辅助 Swabian TimeTagger 上位机二次开发:面向 SPAD 标定的自动化采集与分析」,适合先按任务意图阅读再判断复用。

案例速读

README 标题「张轩屹(xuanyizhang)— AI 辅助科研代码开发」下已经出现运行/配置路径、脚本或接口线索、结果证据,正文重点集中在「相关 AI 工具」「利用大模型辅助 Swabian TimeTagger 上位机二次开发:面向 SPAD 标定的自动化采集与分析」,比纯概念介绍更适合进入精选阅读流。 这篇案例的阅读价值在于,它把真实任务、模型辅助过程和可迁移做法放在同一个上下文里,读者可以从 「张轩屹(xuanyizhang)— AI 辅助科研代码开发」、「相关 AI 工具」、「利用大模型辅助 Swabian TimeTagger 上位机二次开发:面向 SPAD 标定的自动化采集与分析」、「一、背景:从"采到数据"到"自动完成标定分析"」 进入正文。

  • 建议重点看 可参考其中的运行与配置路径、包含可迁移的命令、脚本或接口线索、已有结果或观测证据可用于判断复用价值。结合 Agent / 实践案例 和「任务驱动用户、AI 实践者」这一受众定位,它更适合作为任务检索后的精读材料,而不是只看一句短摘要后快速跳过。
  • 正文目录和原始材料仍然是判断依据;导读只帮助你更快定位阅读重点。
看点
张轩屹(xuanyizhang)— AI 辅助科研代码开发
读者
任务驱动用户、AI 实践者
复用
可参考其中的运行与配置路径
结构
9 个目录入口

原文内容

张轩屹(xuanyizhang)— AI 辅助科研代码开发

相关 AI 工具

  • ChatGPT — 需求梳理、代码生成、逻辑检查
  • Claude Code — 代码重构、模块拆分、单位换算检查

利用大模型辅助 Swabian TimeTagger 上位机二次开发:面向 SPAD 标定的自动化采集与分析

一、背景:从"采到数据"到"自动完成标定分析"

我的研究方向涉及近红外二区荧光共聚焦、FLIM,以及 InGaAs SPAD 单光子探测器。在实验过程中,我经常需要使用 Swabian TimeTagger 进行单光子时间标记采集,例如采集 photon arrival time、生成 histogram,并基于这些数据对 SPAD 探测器进行性能标定。

一开始,厂商提供的 TimeTagger 接口和示例程序可以完成比较基础的功能,例如:

  • 连接和初始化 TimeTagger;
  • 采集 TDC 原始数据;
  • 实时生成和显示 histogram;
  • 保存基础实验数据。

但是在实际科研工作中,仅仅完成数据采集是不够的。对于 SPAD 标定来说,我更关心的是探测器在不同实验条件下的关键性能指标,例如:

  • PDE(Photon Detection Efficiency,光子探测效率)
  • DCR(Dark Count Rate,暗计数率)
  • APP(Afterpulsing Probability,后脉冲概率)
  • 不同偏压、温度、光功率、门宽等条件下的指标变化
  • 多组实验之间的自动画图、对比和筛选

如果完全依靠人工处理,每次实验后都需要手动打开数据文件、读取实验参数、计算指标、整理表格、修改文件名,再进行画图对比。这个过程不仅重复,而且容易出错。尤其是在一组 SPAD 标定实验中,往往会产生大量 TDC 原始数据文件,人工追踪非常困难。

因此,我希望在 Swabian TimeTagger 原有上位机功能的基础上进行二次开发:不仅实现常规 histogram 的采集和显示,还能在采集过程中自动完成 SPAD 标定指标分析,并把分析好的结果写入 TDC 原始数据的表头和文件名中。

二、AI 工具:将大模型作为科研代码开发助手

我使用 AI 的方式不是简单地让它"一次性写完整程序",而是把整个上位机二次开发过程拆解成多个具体任务:

  1. 理解 Swabian TimeTagger 厂商接口
  2. 设计上位机程序整体结构
  3. 编写和修改 Python 采集代码
  4. 实现 histogram 的实时采集和显示
  5. 增加 SPAD 标定指标的自动分析模块
  6. 将 PDE、DCR、APP 等结果写入数据文件表头
  7. 将实验参数和分析结果写入文件名
  8. 编写批量后处理脚本,自动读取文件名并画图
  9. 检查代码中的单位换算、边界条件和逻辑错误

AI 最有价值的地方不是替我凭空创造一个软件,而是作为一个随时可以讨论的代码助手,帮助我把实验需求转化成清晰的程序结构和可执行代码。

三、使用方式:从自然语言需求到可运行程序

1. 先让 AI 帮助梳理需求和程序结构

用自然语言向 AI 描述实验需求,AI 会帮助拆解成多个模块:

  • TimeTagger 初始化模块
  • histogram 采集模块
  • 实时显示模块
  • 原始数据保存模块
  • SPAD 指标计算模块
  • metadata 管理模块
  • 文件名和表头生成模块
  • 批量后处理和画图模块

这种拆解对我很有帮助。科研代码往往一开始只是一个临时脚本,但如果没有提前设计结构,后期会变得很难维护。

2. 让 AI 辅助修改已有代码,而不是完全重写

把厂商接口的示例代码、已有的 Python 代码、报错信息或想增加的功能发给 AI,让它在现有代码基础上修改。提示词包含:

  • 当前代码已经实现了什么
  • 哪些功能不能被破坏
  • 我要新增什么功能
  • 输入参数有哪些
  • 输出结果要保存到哪里
  • 需要特别注意哪些实验细节

3. 把 SPAD 标定指标转化为程序逻辑

让 AI 帮忙把实验公式和程序接口对应起来,例如设计 PDE、DCR、APP 的计算函数:

calculate_dcr(dark_count, integration_time)
calculate_pde(photon_count, dark_count, optical_power, wavelength, integration_time)
calculate_app(afterpulse_count, main_peak_count)
build_filename(metadata)
write_header(file, metadata)

这样上位机程序不再只是一个"数据记录器",而是逐渐变成了和实验流程结合起来的自动标定工具。

4. 自动写入文件名和表头,提高数据可追溯性

在 AI 辅助下,对文件命名和表头信息进行了规范化。文件名格式:

date_bias_temperature_power_dcr_pde_app

例如:2026-05-18_bias5.0V_temp-30C_power10nW_DCR1200cps_PDE18.5_APP0.8

同时在 TDC 原始数据文件表头中写入完整 metadata(Device、Bias voltage、Temperature、Optical power、Wavelength、Integration time、DCR、PDE、APP 等)。

5. 批量读取文件名并自动画图

利用 AI 辅助编写 Python 后处理脚本,批量读取文件夹中的数据文件,从文件名或表头解析出 PDE、DCR、APP 等指标,自动生成:

  1. PDE vs bias voltage
  2. DCR vs bias voltage
  3. APP vs bias voltage
  4. PDE-DCR trade-off 图
  5. 不同温度条件下的对比图

四、成果与收获

  1. 保留了常规 histogram 采集和显示功能:保证程序没有脱离原有仪器接口
  2. 增加了面向 SPAD 标定的自动分析功能:采集过程中自动分析 PDE、DCR、APP 等指标
  3. 提高了数据可追溯性:实验参数和分析结果写入文件名和数据表头
  4. 实现了批量自动画图和对比:从"采集—人工整理—手动画图"变成"采集—自动分析—自动画图"
  5. 提高了代码开发效率:重复性代码(文件名解析、metadata 写入、批量读取、自动画图、单位检查、异常值处理)在 AI 辅助下更快完成

五、心得与建议

  1. 不要只让 AI “写完整程序”,而要让它帮助拆解问题 — 先描述具体场景再让 AI 拆解模块
  2. 提示词越具体,代码越接近可用 — 告诉 AI 当前代码实现了什么、不能破坏什么、要新增什么
  3. AI 生成的代码必须自己验证 — 单位换算、采集时间、count rate 计算、histogram bin 设置等必须人工确认
  4. 人负责物理,AI 负责工程实现 — 我判断实验需求和物理意义,AI 帮助实现工程代码
  5. 从小功能开始逐步迭代 — histogram 采集 → 实时显示 → DCR → PDE → APP → 文件名/header → 批量画图

六、总结

我依靠大模型,在厂商仪器接口的基础上,实现了从常规 histogram 采集和显示,到 SPAD 标定指标自动分析,再到数据文件自动命名、表头写入和批量画图的完整流程。AI 并不是替代科研人员完成实验,而是帮助科研人员更快地把想法变成可运行、可验证、可复用的工具。

返回顶部