科学家重命名基因,以防 Microsoft Excel 将其误读为日期(2020)

基因组学领域的科学家长期面临 Microsoft Excel 会自动把某些基因名(如 SEPT2)转换成日期的问题,导致通过 CSV 文件共享的研究数据被破坏。评论者争论,这主要是 Excel 过于激进的类型推断造成的可用性失败,还是研究人员没有把列锁定为文本、没有使用替代工具的“技能问题”,抑或只是支撑 Excel 流行的便捷隐式转换所必然带来的代价。讨论还触及更广泛的主题:机构对 Microsoft 工具的锁定、没有模式约束时 CSV 格式的局限,以及在广泛部署的软件中严格类型与易用性之间的张力。

Excel 自动转换与新开关

  • Excel 历来会自动把“像基因名”的字符串(例如 SEPT2、MARCHF1)转换成日期或数字,破坏科学数据,尤其是在 CSV 来回导入导出时。
  • 2023 年,Microsoft 在 Windows/macOS 上加入了按文件关闭自动数据转换的开关;有人认为这来得太晚,而且仍不完善(边缘情况、宏、旧版本)。
  • 也有人认为 Excel 早就允许设置列类型(“设置单元格格式” → “文本”、导入文本向导、Power Query),所以问题在于用户工作流和认知。

隐式转换是更广泛的问题

  • 一些评论把这看作 JavaScript、MySQL、YAML、PHP 等中常见的更大“隐式转换 / 类型安全”问题的一部分,有时与空指针一起被称为另一个“十亿美元错误”。
  • 也有人反驳说,宽松的转换同样带来了巨大的生产力提升,而且人们之所以广泛选择它们,就是因为它们方便。
  • 讨论还涉及:究竟应该把问题表述为“类型安全”(更可操作),还是笼统的“期望与现实不一致”。

为什么科学家仍在使用 Excel

  • 许多人认为,科学家受限于机构 IT、许可证和标准化要求;即使想换,也无法自由选择替代工具。
  • 有人说,大多数领域专家在这个用途上已经不用 Excel 了,但仍有少数人(再加上管理员、临床人员、编辑)会继续破坏共享数据。
  • 支持重命名的观点认为:把少数基因名改掉,是一种低摩擦、可覆盖整个领域的缓解措施,比起让所有人重新培训并替换工具更现实。

CSV、格式与替代方案

  • CSV 被批评为本质上含糊不清(没有模式、没有类型);Excel 双击打开 CSV 的行为会悄悄转换并丢弃前导零、加号以及像基因名一样的标识符。
  • 解决办法包括:先把列预格式化为文本、使用导入向导、小宏,或者在 CSV 中把文本编码成 Excel 公式(="Data")。
  • 提到的替代方案包括:LibreOffice(同样会自动转换,但更慢、兼容性更差)、带有假想 .xljson 扩展名的 JSON、数据库、Jupyter/R/Python、Emacs org-mode。

责任与预期

  • 有人把责任归咎于科学家没有掌握工具;也有人认为这要求不合理,因为 Excel 的默认行为隐藏且不断变化。
  • 多条评论强调,这不仅是技术问题,也是社会/组织问题(IT 守门人、厂商锁定、用户培训)。