1.充滿惡意的Excel自動(dòng)轉(zhuǎn)換
做基因組學(xué)分析時(shí)發(fā)現(xiàn)芒涡,在默認(rèn)設(shè)置下將數(shù)據(jù)導(dǎo)入Microsoft Excel后柴灯,部分基因名會(huì)自動(dòng)轉(zhuǎn)換為日期或浮點(diǎn)1。2016年發(fā)表于Genome Biology上的一項(xiàng)研究顯示费尽,補(bǔ)充材料里包含Excel格式基因名的文獻(xiàn)中赠群,約有20%出現(xiàn)了這種錯(cuò)誤的轉(zhuǎn)換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.
舉例來說旱幼,將下表中第一列的數(shù)據(jù)導(dǎo)入Excel后查描,將自動(dòng)轉(zhuǎn)換為第二列的內(nèi)容:
源格式 | 導(dǎo)入Excel后的格式 |
---|---|
MARC1 | 1-Mar |
MARCH1 | 1-Mar |
DEC1 | 1-Dec |
231012E4 | 2.31E+09 |
123E1 | 1.23E+03 |
*請(qǐng)注意,基因MARC1和基因MARCH1均被轉(zhuǎn)換成了1-Mar柏卤。
一旦導(dǎo)入Excel后冬三,這種轉(zhuǎn)換是不可逆的,也就是說無法通過將單元格格式設(shè)置為文本格式修復(fù)缘缚。
如果我們嘗試修改單元格格式為文本勾笆,將出現(xiàn)下圖第三列所示的內(nèi)容:
源格式 | 導(dǎo)入Excel后的格式 | 導(dǎo)入后再將單元格設(shè)置為文本格式 |
---|---|---|
MARC1 | 1-Mar | 43525 |
MARCH1 | 1-Mar | 43525 |
DEC1 | 1-Dec | 43800 |
231012E4 | 2.31E+09 | 2.31E+09 |
123E1 | 1.23E+03 | 1.23E+03 |
看到43525,43800這種數(shù)字桥滨,是不是感覺很眼熟窝爪?我相信很多人的基因Excel表里都有他們的存在。那么這個(gè)數(shù)字是怎么來的呢齐媒?
Excel的日期默認(rèn)是從1990/1/1開始的酸舍,也就是說1900/1/1轉(zhuǎn)化為數(shù)字格式將是1。而筆者寫本文的時(shí)間是2019年里初,所以MARC1基因轉(zhuǎn)換為1-Mar啃勉,也就是2019/3/1,它的數(shù)字格式為2019/3/1減去1900/1/1双妨,即43525淮阐。
這一問題困擾了非常多的的科研人員叮阅,在Biostar上相關(guān)問題的點(diǎn)擊已經(jīng)超過3.5K3。
2.如何避免這種轉(zhuǎn)換泣特?
最簡單的方法浩姥,新建Excel表,單元格全選状您,更改為文本格式勒叠,然后再導(dǎo)入數(shù)據(jù)。但這種方式不利于數(shù)字計(jì)算膏孟。
此外眯分,Eric A. Welsh開發(fā)了一個(gè)小工具escape_excel
以阻止這種轉(zhuǎn)換,其原理十分簡單柒桑,就是在原始數(shù)據(jù)前后加上引號(hào)弊决。這項(xiàng)工作還在2017年發(fā)表到了Plos One上4,5。(不得不說魁淳,想發(fā)表文章飘诗,idea非常重要)
該工具提供在線版本,Windows系統(tǒng)下的Excel插件界逛,Perl腳本和Galaxy訪問接口昆稿,教程請(qǐng)參見作者Github6。
3.已經(jīng)轉(zhuǎn)換的數(shù)據(jù)如何處理息拜?
建議從測序原始數(shù)據(jù)中提取正確的基因名貌嫡,畢竟測序公司輸出的文件一般都不是Excel格式。
如果找不到原始數(shù)據(jù)该溯,也沒有NCBI_GENE_ID或其他數(shù)據(jù)庫基因ID,我們還是能把轉(zhuǎn)換成日期或數(shù)字的基因名盡量還原别惦。
日期格式的基因名:
以1-Mar為例狈茉,由于Excel日期轉(zhuǎn)換只針對(duì)3個(gè)或以上字母的匹配,所以它的原始基因名可能為MAR1或MARC1或MARCH1掸掸,檢索得知不存在MAR1基因氯庆,所以范圍縮小到MARC1基因或MARCH1基因。
數(shù)字格式的基因名:
以43525為例扰付,先將單元格轉(zhuǎn)化為日期格式2019/3/1堤撵,忽略年份得到1-Mar,后續(xù)步驟同上羽莺。
因此实昨,43160轉(zhuǎn)化后的結(jié)果也為1-Mar,這與轉(zhuǎn)換發(fā)生時(shí)的年份有關(guān)盐固,但不影響還原方式荒给。
以上就是基因名被EXCEL自動(dòng)轉(zhuǎn)換的解決方案了丈挟。最后留一個(gè)小建議,在操作每一個(gè)文件前志电,請(qǐng)先留好備份曙咽,以免發(fā)生意外情況。
參考資料:
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地址