充滿惡意的Excel自動轉換

做基因組學分析時發現,在默認設置下將數據導入Microsoft Excel後,部分基因名會自動轉換為日期或浮點[1]。2016年發表於Genome Biology上的一項研究顯示,補充材料里包含Excel格式基因名的文獻中,約有20%出現了這種錯誤的轉換[2]。

The spreadsheet software Microsoft Excel, when used with default settings, is known to convert gene names to dates and floating-point numbers. A programmatic scan of leading genomics journals reveals that approximately one-fifth of papers with supplementary Excel gene lists contain erroneous gene name conversions.

舉例來說,將下表中第一列的數據導入Excel後,將自動轉換為第二列的內容:

一旦導入Excel後,這種轉換是不可逆的,也就是說無法通過將單元格格式設置為文本格式修復

如果我們嘗試修改單元格格式為文本,將出現下圖第三列所示的內容:

看到43525,43800這種數字,是不是感覺很眼熟?我相信很多人的基因Excel表裡都有他們的存在。那麼這個數字是怎麼來的呢?

Excel的日期默認是從1990/1/1開始的,也就是說1900/1/1轉化為數字格式將是1。而筆者寫本文的時間是2019年,所以MARC1基因轉換為1-Mar,也就是2019/3/1,它的數字格式為2019/3/1減去1900/1/1,即43525。

這一問題困擾了非常多的的科研人員,在Biostar上相關問題的點擊已經超過3.5K[3]。

如何避免這種轉換?

最簡單的方法,新建Excel表,單元格全選,更改為文本格式,然後再導入數據。但這種方式不利於數字計算。

此外,Eric A. Welsh開發了一個小工具escape_excel以阻止這種轉換,其原理十分簡單,就是在原始數據前後加上引號。這項工作還在2017年發表到了Plos One上[4,5]。(不得不說,想發表文章,idea非常重要)

該工具提供在線版本,Windows系統下的Excel插件,Perl腳本和Galaxy訪問介面,教程請參見作者Github[6]。

已經轉換的數據如何處理?

建議從測序原始數據中提取正確的基因名,畢竟測序公司輸出的文件一般都不是Excel格式。

如果找不到原始數據,也沒有NCBI_GENE_ID或其他資料庫基因ID,我們還是能把轉換成日期或數字的基因名盡量還原。

日期格式的基因名:

以1-Mar為例,由於Excel日期轉換隻針對3個或以上字母的匹配,所以它的原始基因名可能為MAR1或MARC1或MARCH1,檢索得知不存在MAR1基因,所以範圍縮小到MARC1基因或MARCH1基因。

數字格式的基因名:

以43525為例,先將單元格轉化為日期格式2019/3/1,忽略年份得到1-Mar,後續步驟同上。

因此,43160轉化後的結果也為1-Mar,這與轉換髮生時的年份有關,但不影響還原方式。

以上就是基因名被EXCEL自動轉換的解決方案了。最後留一個小建議,在操作每一個文件前,請先留好備份,以免發生意外情況。

參考資料:

1. Zeeberg B R , Riss J , Kane D W , et al. Mistaken Identifiers: Gene name errors can be introduced inadvertently when using Excel in bioinformatics[J]. BMC Bioinformatics, 2004, 5(1):80-0.

2. Ziemann M , Eren Y , El-Osta A . Gene name errors are widespread in the scientific literature[J]. Genome Biology, 2016, 17(1):177.

3. Question: How to avoid conversion of gene symbols to date format in Excel

4. Welsh E A , Stewart P A , Kuenzi B M , et al. Escape Excel: A tool for preventing gene symbol and accession conversion errors[J]. PLOS ONE, 2017, 12(9):e0185207-.

5. Escape gene name-mangling with 『Escape Excel』

6. escape_excel插件的github地址


推薦閱讀:
相关文章