Excel 基因名被改成日期:检查并修复
粘贴整张表或拖入 CSV / TSV,找出被 Excel 改成日期的基因名(SEPT1 → 1-Sep、MARCH1 → 1-Mar、OCT4 → 4-Oct…),还原成现行官方名,下载修好的表。
松开鼠标,载入这个文件
1. 表格
2. 选项
3. 检查结果
以后怎样避免再被改
直接双击打开 CSV、或直接粘贴进 Excel,基因名都会被自动转换。SEPTIN1、MARCHF1 这类现名不会再被改,但 SEPT1、OCT4 这类旧名仍会。以后请用文本格式导入 / 保存:
- Excel 导入 CSV / TSV:「数据」→「从文本/CSV」选文件,在预览窗口把「数据类型检测」改成「不检测数据类型」,再「加载」,所有列都按文本导入。
- 旧版导入向导(「数据」→「自文本」):第 3 步选中基因名列,「列数据格式」选「文本」,再完成。
- 粘贴之前:先选中要粘贴的列 → 右键「设置单元格格式」→「文本」,再粘贴。
- Microsoft 365(2023 年下半年以后的版本):「文件」→「选项」→「数据」→「自动数据转换」,取消「将连续字母和数字转换为日期」,以及把字母 E 周围的数字转成科学计数法的那一项。
- 用 R / Python 读写:readr、data.table、pandas 读 CSV 不会做这种转换;给别人的结果表优先用 TSV / CSV,或在 xlsx 里把基因名列设为文本。
- 为什么会这样:Excel 把 SEPT1、MARCH1、DEC1、OCT4 这类基因名当成日期,把 2310009E13 这类 RIKEN 克隆名当成科学计数法 2.31E+19。2016 年的调查发现,附带 Excel 基因列表的论文约五分之一有这种错误(Ziemann et al., Genome Biology 2016;最早见 Zeeberg et al., BMC Bioinformatics 2004)。
- 能识别的写法:1-Sep、Sep-1、01-Sep、1-Sep-24、1-Sep-2024、Sep 1, 2024、2024/9/1、2024-09-01、9/1/2024、1/9/2024、01.09.2024、9月1日、2024年9月1日,以及常见的法、德、西、意、葡文月份缩写。
- 只有 3、9、10、12 月(MARCH / SEPT / OCT / DEC 家族)才可能是基因,且「几号」要在该家族的编号范围内;范围由基因库算出(如人的 SEPT 到 14、MARCH 到 11)。9/1/2024 这种纯数字写法,若「月/日」和「日/月」两种读法都对得上基因(如 3/9/2024 可能是 MARCH9 或 SEPT3),列为有歧义、给出两个候选;表里若有 9/14/2024 这类只能按一种顺序读的日期,就按它统一。
- 列的判断:一半以上是日期、基因名不到十分之一的列当作真的日期列,整列不改(例外:表头是 gene / symbol 之类,或其中的日期全都能还原成基因名且列里有正常基因名);一半以上是基因名(含能还原的日期)、且有正常基因名或基因表头的列当作基因名列,能还原的默认勾选。没有一个正常基因名、只靠 ID / name 表头或只贴了一列的,以及基因表头下混有对不上基因的日期的,按「疑似基因列」列出但默认不勾。其它列里像基因名的日期也会列出,但默认不勾。有歧义的也默认不勾,选好候选后会自动勾上;「全选」只勾可信的。开头的 # 注释行会跳过(UCSC 那种「#name…」表头照常识别);表头会自动判断,可在「2. 选项」里改。
- 还原成现行官方名:SEPT1 → SEPTIN1,MARCH1 → MARCHF1,DEC1 → DELEC1(DEC1 也是 BHLHE40 的别名,可在下拉框里改)。物种按大小写自动判断(人全大写,小鼠首字母大写),也可手选;小鼠输出 Septin1、Marchf1。基因库里查不到的给出旧名,标「未核实」。
- RIKEN 克隆名变成 2.31E+19 后中间几位数字已经丢失,这里只能指出位置,无法还原。
- 「原格式」只改你勾选的单元格,其余逐字节原样(分隔符、引号、换行都不变),适合再交给 R / Python。「CSV」是给 Excel 双击打开的版本:以 = + - @ 开头又不是数字的单元格(如 -log10(padj)、+/-)前面会加单引号,防止被当成公式执行;负数和单独的 + / - 不动。中文 Excel 存的 GBK 编码文件也能读,下载时转成 UTF-8。