肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > -007 Excel处理基因名要小心啊

-007 Excel处理基因名要小心啊

时间:2022-09-03 02:12:42

相关推荐

Excel处理基因名要小心啊

最近在处理数据的时候,基因名的转换出现了一些奇怪的错误。

de了一番bug后,发现Excel的基因列居然存在日期?

wtf?

这Excel也太坑了。

查了一下资料,原来在,科学家们就发现了这个错误。

Excel随意篡改20%的遗传学论文!

今年()8月份,三位科学家在《Genome Biology》期刊上发表论文,称他们发现20%的遗传学论文包含了Excel软件导致的基因名转换错误。他们对论文进行的扫描显示,科学文献中的基因名错误十分普遍,在默认设置下Excel软件会将基因的名字转换成日期或浮点数。

举例来说,基因名字SEPT2和MARCH1会被分别转换成2-Sep和1-Mar;标识符2310009E1被转换成浮点数2.31E+13。 虽然对三位科学家的发现也有质疑的声音,但大家不妨试一下,在Excel中输入MARCH1,然后敲回车,真得变成1-Mar了! Excel你要闹哪样,想把科学家辛辛苦苦写的论文都变成“日历”吗?难道你3月1日有约会?

引自:Excel-坑你的基因名没商量!

阅读文章:Gene name errors are widespread in the scientific literature

也就是说,上面那个4-Sep应该是输入SEPT4,然后被Excel自动转换了。

在Excel中试一下。

果然,输入sept4后,Excel“贴心”的将数据变成了4-Sep,值就是/9/4。

实测中,从sep一直到september,从mar一直到march,接小于100的数字,是都会自动变为日期的。

问题已经复现了,如何解决呢?

最好的办法当然就是直接拒绝Excel,毕竟“消灭问题是解决问题的最好手段”。如果你非要使用Excel,那么就必须记得,将基因列的类型设置为文本,或者刻意的在前面或后面加上一个符号。

像这样:

然后使用函数提取基因名:

值得注意的是,论坛上有人讲到,Excel是在打开文件或者输入的时候自动做的转换,即使文件是文本文件,或者用Linux程序生成的Excel文件,我们可以确保里面基因名字是对的,只要用Excel打开,它就会进行转换。当点保存的时候,这个转换就被保存了下来。

所以,远离Excel用python保平安。

当然上面方案都是处理基因名前的注意事项。当我们遇到这个麻烦的文件的时候,还是要想办法还原出原来的基因名。

使用python还原基因名

首先读取文件。

import pandas as pddf = pd.read_excel(41586__1414_MOESM3_ESM.xlsx,sheet_name=0,skiprows=1) # sheetname=0,取第一个sheet,skiprows=1,跳过第一行

基因名的列为Gene

因为pandas读取的日期数据为datetime类型,使用isinstance函数可以找到所有的datetime数据。

from datetime import datetimedf.Gene[df.Gene.apply(lambda x: isinstance(x,datetime))]

out:

1236 -09-02 00:00:001288 -09-11 00:00:001333 -09-06 00:00:001353 -09-11 00:00:00

如果觉得《-007 Excel处理基因名要小心啊》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。