Um em cada cinco artigos de genética contém erros causados pela formatação automática do Microsoft Excel
(science.org)- À medida que dados de pesquisas em genética são tratados em planilhas, a formatação automática do Excel altera nomes de genes e acaba levando a erros em artigos
- Esse tipo de erro foi encontrado em 1 de cada 5 artigos de genética em periódicos científicos de ponta, revelando fragilidades no processo de validação de dados
- A causa principal é que nomes de genes são convertidos automaticamente pelo Excel em datas ou valores numéricos, fazendo com que o valor digitado e o valor salvo sejam diferentes
- Abreviações que podem ser interpretadas como datas, como SEPT2, são alteradas para
2-SEPe podem ser salvas como uma data, como 2 de setembro de 2016 - Para continuar usando o Excel, é necessário definir as colunas como formato de texto e conferir os resultados manualmente; o Google Sheets pode ser uma alternativa para evitar o mesmo erro de conversão automática
Erros em nomes de genes causados pela formatação automática do Excel
- O recurso de formatação automática do Microsoft Excel gerou erros em dados de artigos de genética, e uma nova análise constatou que 1 em cada 5 artigos de genética em periódicos científicos de ponta contém esse tipo de erro
- O problema ocorre quando a planilha interpreta alguns nomes de genes como datas do calendário ou valores numéricos
- O usuário acredita ter digitado um nome de gene, mas os dados salvos podem ser alterados para outro valor
Caso representativo
- O gene Septin-2 é frequentemente abreviado como SEPT2
- O Excel pode transformar SEPT2 em
2-SEPe salvá-lo como a data 2 de setembro de 2016 - Essa conversão pode comprometer a confiabilidade de listas de genes ou dados de análise incluídos em artigos
Formas de lidar com o problema e alternativas
- Se continuar usando o Excel, é preciso definir a coluna correspondente como formato de texto e verificar cuidadosamente se não houve conversão automática
- O Google Sheets pode ser uma alternativa para evitar o mesmo tipo de erro de conversão automática, pois salva nomes de genes exatamente como foram inseridos
- A análise relacionada foi publicada na Genome Biology
1 comentários
Comentários do Hacker News
É realmente irritante o Excel converter automaticamente em números strings que parecem notação científica. E nem dá para desativar
Em grandes exportações de dados, entram valores como códigos de localização únicos; em algum momento, alguns começam a parecer estranhos, e não é só a exibição que mudou: o próprio conteúdo da célula foi alterado pelo Excel sem perguntar
Não faz sentido passar anos sem corrigir esses problemas pequenos, mas que continuam fazendo as pessoas tropeçarem. A Microsoft costuma dizer que “só trabalha no que afeta muitos clientes”, mas, se continuam fechando relatórios de bug, podem sempre dizer “afeta só uma pessoa” e fechar de novo
Se não conseguem reproduzir, deveriam pelo menos adicionar depuração para a próxima vez, ou tratar direito deixando um motivo rastreável, como “há poucas solicitações, mas mudar isso pode quebrar outras áreas ou a compatibilidade retroativa”
Inúmeras macros, scripts VBA e fluxos de trabalho criados por usuários não técnicos dependem sutilmente desse comportamento. É parecido com as esquisitices do JavaScript: se mudar, coisas antigas em algum lugar quebram
A Microsoft poderia dizer isso de forma mais direta, mas obviamente vai querer evitar essa discussão
Thread popular anterior, de agosto de 2020: https://news.ycombinator.com/item?id=24070385
Sobre “cientistas mudarem nomes de genes humanos para que o MS Excel não os interprete erroneamente como datas”
Como detalhe relacionado, em 2023 a Microsoft lançou uma atualização para o Excel que impede o problema de conversão de símbolos de genes em datas, e também existe o Gene Updater, que corrige e atualiza automaticamente nomes de genes reconhecidos incorretamente pelo Excel
https://www.pcmag.com/news/microsoft-finally-fixes-excel-gli...
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9325790/
É preciso conhecer bem as ferramentas. Ao ver um título desses, fico triste com o estado do mundo e com os obstáculos que impedem o avanço, fico irritado com a tolice de projetar todas as ferramentas para o usuário mais preguiçoso e, ao mesmo tempo, acho até engraçado o fracasso do software proprietário e de seus usuários
A ferramenta que você usa pode ser péssima. Se for esse o caso, você precisa lidar diretamente com essa ferramenta ruim, aprender uma ferramenta melhor, ou trazer um profissional de computação competente que consiga navegar pelo ecossistema de ferramentas e entregar resultados
Ainda nem toquei no problema de validação dos resultados. Em um ambiente de pesquisa financiado com dinheiro público, pagar à Microsoft para usar ferramentas proprietárias e acabar estragando tudo é uma situação amarga
Então alguém em algum ponto da cadeia — autor correspondente, editor, equipe da revista etc. — abre o arquivo no Excel e salva de novo. Não é que bioinformatas façam a análise no Excel
Um dos motivos pelos quais deixei de usar planilhas no ensino foi que elas continuaram carregando um bug de precedência em operações aritméticas. Aqui, “bug” quer dizer que isso contradiz uma convenção matemática antiga
Se você digitar
-3^2em uma célula e pressionar Enter, a planilha dirá9. Mas, em matemática, a exponenciação tem precedência sobre o menos unário, então deveria ser-9. Por exemplo, se você pedir a um aluno para desenhar o gráfico dey = -x^2, ele deve desenhar uma parábola voltada para baixoNão consigo verificar no Excel mais recente, mas era assim no Excel 97, e o LibreOffice Calc atual também retorna
9. Provavelmente alguma planilha inicial implementou a precedência de forma errada, e depois todas as outras seguiram por compatibilidadePor outro lado, maxima e Python dão ambos
-9. Fico curioso se pessoas que copiam fórmulas de livros de matemática para planilhas também acabam caindo nesse problema^. Em matemática, expoente é sobrescrito, então não é um operador binário, mas parte do termoEm texto de computador, criou-se um operador binário para algo que não podia ser representado diretamente; o acento circunflexo é comum e apareceu primeiro, mas
**é outro exemploTradicionalmente, o menos unário é visto como parte do termo, então tem precedência maior que operadores binários. Mas, ao transformar expoentes em operadores e ainda manter essa lógica, a coisa se complica
Um problema parecido aparece na divisão.
/é um operador binário criado em ambientes sem um símbolo de divisão real e, originalmente, deveria representar a barra horizontal de uma fração. A barra de fração agrupa toda a expressão dos dois lados, mas, ao substituí-la simplesmente por/, ela passa a ser afetada por regras de precedência e pode produzir resultados errados-a*bé analisado como(-a)*b, masc-a*bé analisado comoc-(a*b). O menos unário tem precedência maior que operadores bináriosNormalmente é possível mover o sinal, então isso passa despercebido, mas surgem problemas em casos-limite relacionados a comportamento indefinido
0 - INT_MIN/2é analisado como0 - (INT_MIN / 2)e fica tudo bem, mas-INT_MIN/2é analisado como(-INT_MIN) / 2e não fica tudo bem. Pela natureza da representação em complemento de 2,INT_MINpode não ter inverso aditivoSei que existem duas convenções para esse problema, então, para obter o comportamento desejado, simplesmente uso parênteses
Eu era bom em matemática na época da escola, mas não sabia que havia pessoas que achavam que
-3^2deveria ser-9; eu via isso apenas como uma característica estranha de algumas calculadoras ou programas. Também fico curioso sobre como essa expressão é lida em voz alta. Se você pensa em “menos três ao quadrado”,(-3)^2parece natural; para-9fazer sentido, teria de ser lida como “o negativo de três ao quadrado”No ensino fundamental, aprendemos a digitar expressões assim na calculadora para ver resultados diferentes do esperado, e depois disso eu só pensei “melhor usar parênteses”. Preferir uma convenção de precedência um pouco diferente não é motivo para jogar fora uma calculadora nem para dizer aos outros que não a usem
-2^2=4, mas0-2^2=-4, porque o primeiro é tratado como um-unário com precedência maior que a exponenciaçãoDá para argumentar que isso é tecnicamente correto, mas é muito contraintuitivo para alguém com formação comum em engenharia ou ciências tentando fazer tarefas normais. Acho que isso pode fazer muita gente deixar de usar Nim
POWER. Desse ponto de vista, mesmo que possa estar matematicamente errado, considero correto como comportamento do ExcelO problema do Excel é tentar fazer quase tudo com uma única ferramenta de software: edição e apresentação no front-end, análise, modelagem semântica e até armazenamento de dados/banco de dados
A maioria dos engenheiros razoáveis vê algo errado nessa abordagem. Mas a maioria dos usuários comuns de computador acha que computação deveria ser assim mesmo
Às vezes eu também me pergunto por que abro o Excel voluntariamente para certas tarefas. Ainda assim, apesar de todas as críticas, para mim o Excel já ultrapassou o limiar do efeito Lindy e continuará existindo
https://en.wikipedia.org/wiki/Lindy_effect
Muitas startups de tecnologia são basicamente “substituir por uma ferramenta dedicada o que as pessoas faziam no Excel”
Ele acerta em cheio o ponto perfeito entre dados estruturados e não estruturados, então é conveniente simplesmente preencher células e ver o que acontece
O motivo de dizerem “você não deveria fazer isso” é que a saída de uma solução que funciona bem para uma abordagem devidamente produtizada, baseada em código, pode ser muito dolorosa
http://www.catb.org/jargon/html/Z/Zawinskis-Law.html
Em alemão, existe um ditado: “um mau trabalhador sempre culpa suas ferramentas”
O Excel tem muitas esquisitices, mas ainda sou grato por sua existência pelo fato de permitir juntar números rapidamente e ainda alterar os valores de entrada das fórmulas
Pelo menos na época da matéria, não havia como desativar o recurso que convertia automaticamente certas strings, como
SEPT2, em datas. Se ao menos houvesse uma configuração para desligar isso, muitos erros cometidos por pesquisadores trabalhando tarde da noite ou correndo contra prazos poderiam ter sido evitadosHá claramente um ponto em que usuários de ferramentas precisam se esforçar para aprender a melhor forma de usá-las. Mas, do lado dos desenvolvedores, algum esforço também pode evitar erros comuns e economizar muito tempo dos usuários
Não todas as ferramentas. Não uma ferramenta imposta por um padrão industrial antigo ou por convenção, nem uma ferramenta idiota que você jamais usaria se tivesse escolha
O Excel também não inventou as planilhas. Mesmo sem o Excel, as pessoas teriam usado algo como um sucessor do WhateverCalc daquela época, e o Excel apenas acrescentou coisas inúteis a isso
https://simple.wikipedia.org/wiki/Spreadsheet
Por que diabos não é possível desativar o reconhecimento automático de datas? Bastaria colocar uma caixa de seleção nas configurações para que eu, como usuário, pudesse dizer ao Excel para não fazer essa besteira
Existe alguém capaz de defender, de forma irrefutável, que isso deve ficar sempre ativado?
Qual é o valor padrão? O padrão muda de uma versão para outra? Como manter a consistência entre computadores e ambientes de instalação diferentes? E se você realmente precisar desse recurso na hora?
Isso me lembra exportação de CSV. Não uso Windows há 10 anos, mas lembro que, para mudar a forma de exportar números decimais, era preciso alterar o locale e reiniciar o computador. Fazer isso só para mudar uma configuração do Excel é insanidade. Espalhar patches de caixas de seleção por toda parte não é muito diferente disso
https://insider.microsoft365.com/en-us/blog/control-data-con...
Há duas semanas passei por algo parecido no trabalho. Ao raspar arquivos de log, escrevi um script em
awkque convertia timestampsHH:MM:SS.uuuuuupara nanossegundos desde o epoch, para que outra ferramenta pudesse consumi-losMas eu não sabia que o
awkusa ponto flutuante internamente para números, e a função de conversão arredondou o resultado de forma errada, arruinando a análise posterior de um jeito difícil de entenderPara piorar, o mesmo problema reapareceu quando eu estava folheando os dados no Visidata, embora houvesse uma solução alternativa simples da qual não me lembro exatamente
No trabalho, já passei várias vezes pelo problema de o Excel alterar entradas numéricas por causa de formatos de locale diferentes, e muitas vezes perdi horas até descobrir que a causa era o Excel
Valores como números de identificação civil ou números de telefone também são tipos completamente inconvenientes para o Excel. São usos muito mais comuns do que genes, então deveriam estar mais próximos dos casos de uso padrão do Excel, mas ele ainda os estraga
Mesmo em 2024, abrir um arquivo CSV no Excel não é uma tarefa simples que deveria se resumir a um duplo clique; é algo excessivamente complicado. Outros programas de planilha lidam com arquivos CSV com muito mais facilidade
O pior é que o Excel geralmente é usado por usuários não técnicos, e esse comportamento peculiar é mal interpretado, desperdiçando tempo repetidamente
Mas, na maior parte das vezes, a culpa é minha por não usar bem o suficiente os recursos de proteção e bloqueio. Também sei que notas explicativas são ignoradas
Por isso, em arquivos compartilhados, quase sempre deixei um backup inicial vazio e mantive separado o arquivo que será realmente usado, o que amenizou um pouco o problema
Também é interessante o artigo de 2016 sobre o mesmo tema, “Gene name errors are widespread in the scientific literature”
https://genomebiology.biomedcentral.com/articles/10.1186/s13...
Segundo o artigo, o problema do software Excel converter por engano símbolos de genes em datas e números de ponto flutuante foi descrito pela primeira vez em 2004. Por exemplo, símbolos de genes como
SEPT2eMARCH1são convertidos, por padrão, em2-Sepe1-Mar, respectivamente