1 पॉइंट द्वारा GN⁺ 2024-09-15 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • genetics research data को spreadsheet में संभालने की प्रक्रिया के दौरान Excel auto-formatting gene names को बदल देती है, जिससे पेपर में त्रुटियां पहुंचती हैं
  • शीर्ष scientific journals के genetics papers में हर 5 में से 1 में इस तरह की त्रुटि पाई गई, जिससे data validation process की कमजोरियां सामने आईं
  • मुख्य कारण यह है कि gene names Excel में अपने-आप date या numeric values में बदल जाते हैं, जिससे input value और stored value अलग हो जाते हैं
  • SEPT2 जैसे ऐसे abbreviations जिन्हें date की तरह समझा जा सकता है, 2-SEP में बदल जाते हैं और 2 सितंबर 2016 जैसी date value के रूप में store हो सकते हैं
  • अगर Excel का इस्तेमाल जारी रखना है, तो columns को text format में सेट करना होगा और results को सीधे जांचना होगा; Google Sheets उसी तरह की auto-conversion errors से बचने का एक विकल्प हो सकता है

Excel auto-formatting से बनी gene-name त्रुटियां

  • Microsoft Excel की auto-formatting सुविधा ने genetics papers के data में त्रुटियां पैदा कीं, और नए analysis ने पुष्टि की कि शीर्ष scientific journals के genetics papers में हर 5 में से 1 में ऐसी त्रुटियां शामिल हैं
  • समस्या तब होती है जब spreadsheet कुछ gene names को calendar dates या numeric values के रूप में समझ लेती है
  • उपयोगकर्ता सोचते हैं कि उन्होंने gene name दर्ज किया है, लेकिन stored data किसी और value में बदल सकता है

प्रमुख उदाहरण

  • Septin-2 नामक gene को आम तौर पर SEPT2 के रूप में संक्षेप में लिखा जाता है
  • Excel, SEPT2 को 2-SEP में बदल सकता है और इसे 2 सितंबर 2016 की date के रूप में store कर सकता है
  • इस तरह का conversion, papers में शामिल gene lists या analysis data की reliability को कमजोर कर सकता है

निपटने के तरीके और विकल्प

  • अगर Excel का इस्तेमाल जारी रखा जाए, तो संबंधित columns को text format में सेट करना चाहिए और ध्यान से जांचना चाहिए कि auto-conversion हुआ है या नहीं
  • Google Sheets gene names को जैसा दर्ज किया गया है वैसा ही store करता है, इसलिए यह उसी तरह की auto-conversion errors से बचने का विकल्प हो सकता है
  • संबंधित analysis Genome Biology में प्रकाशित हुआ

1 टिप्पणियां

 
GN⁺ 2024-09-15
Hacker News की राय
  • Excel का strings को, जो scientific notation जैसे दिखते हैं, अपने-आप numbers में बदल देना सच में बेहद परेशान करने वाला है। इसे बंद भी नहीं किया जा सकता
    बड़े पैमाने पर data export में unique location codes जैसी values होती हैं, और किसी बिंदु पर उनमें से कुछ अजीब दिखने लगती हैं; सिर्फ display नहीं बदलता, बल्कि cell का actual content ही Excel बिना पूछे बदल चुका होता है
    इतने सालों बाद भी ऐसे छोटे लेकिन लगातार लोगों को ठोकर खिलाने वाले मुद्दों को ठीक न करना समझ से बाहर है। Microsoft आम तौर पर कहता है, “हम वही काम करते हैं जो बहुत सारे customers को प्रभावित करता है,” लेकिन अगर bug reports को लगातार बंद करते रहो, तो हर बार यह कह सकते हो कि “इससे तो सिर्फ एक ही व्यक्ति प्रभावित हुआ” और फिर उसे बंद कर सकते हो
    कम-से-कम अगर issue reproduce नहीं हो रहा हो, तो अगली बार के लिए debugging जोड़नी चाहिए, या फिर कोई traceable reason छोड़ना चाहिए, जैसे “request करने वाले कम हैं, लेकिन इसे बदलने से दूसरे हिस्से या backward compatibility टूट सकती है”

    • हाँ, आख़िरी वजह ही असली बात है। यह bugs सहित backward compatibility की वजह से है
      non-technical users द्वारा बनाए गए अनगिनत macros, VBA scripts और workflows इस behavior पर हल्के-फुल्के तरीके से निर्भर करते हैं। यह JavaScript की अजीब quirks जैसा है; इसे बदलो, तो कहीं न कहीं पुरानी चीज़ें टूट जाती हैं
      Microsoft इसे और सीधे तरीके से कह सकता है, लेकिन जाहिर है कि वह ऐसी बहस से बचना चाहेगा
    • import करते समय data type तय क्यों नहीं करते? अगर यह अक्सर इस्तेमाल होने वाला data file format है, तो VBA से import को automate करते हुए सही data type भी तय किया जा सकता है
    • strings को, जो scientific notation जैसे दिखते हैं, numbers में अपने-आप बदल देने वाली समस्या हर हफ्ते एक-दो बार झेलनी पड़ती है। पागल कर देने वाला है
    • जब LibreOffice मुफ़्त में उपलब्ध है, तो लोग अब भी MS Office क्यों इस्तेमाल करते हैं, समझ नहीं आता
  • अगस्त 2020 की पिछली लोकप्रिय thread: https://news.ycombinator.com/item?id=24070385
    इसमें कहा गया था, “scientists ने human gene names बदल दिए ताकि MS Excel उन्हें dates के रूप में गलत न पढ़े”
    इससे जुड़े विवरण के तौर पर, 2023 में Microsoft ने Excel के gene symbol को date में बदलने वाली समस्या रोकने के लिए एक update जारी किया, और Gene Updater भी है, जो Excel द्वारा गलत पहचाने गए gene names को अपने-आप ठीक और update करता है
    https://www.pcmag.com/news/microsoft-finally-fixes-excel-gli...
    https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9325790/

  • tools को ठीक से जानना ज़रूरी है। ऐसे शीर्षक देखकर दुनिया की हालत और प्रगति को रोकने वाली बाधाओं पर दुख होता है, सबसे आलसी users के लिए हर tool design करने की मूर्खता पर गुस्सा आता है, और साथ ही proprietary software तथा उसके users की विफलता कुछ हद तक हास्यास्पद भी लगती है
    हो सकता है कि आपका tool खराब हो। तब या तो उस खराब tool को सीधे संभालो, या बेहतर tool सीखो, या tool ecosystem को समझकर नतीजा निकाल सकने वाले किसी सक्षम computer expert को साथ लाओ
    result verification की समस्या की तो अभी बात भी नहीं की गई है। public funding पर चलने वाले research environment में Microsoft को पैसे देकर proprietary tools इस्तेमाल करना और फिर उससे नुकसान उठाना कड़वा हाल है

    • इस field में काम करने पर पता चलता है कि समस्या का बड़ा हिस्सा यह है कि publishers paper submit करते समय छोटे datasets को xls format में मांगते हैं
      इसलिए chain में कहीं न कहीं corresponding author, editor, journal staff या कोई और Excel में file खोलकर फिर से save कर देता है। bioinformaticians Excel में analysis नहीं कर रहे होते
    • सही कहा, tools users के लिए नहीं बल्कि tool makers के लिए बनाए जाते हैं। बाकी सभी को खुद को उसके हिसाब से ढालना पड़ता है
  • स्प्रेडशीट्स को शिक्षा में इस्तेमाल न करने की एक वजह यह भी है कि वे arithmetic operation precedence bug को लगातार बनाए हुए हैं। यहाँ “bug” का मतलब है कि यह लंबे समय से चली आ रही गणितीय परंपरा के विरुद्ध है
    अगर किसी cell में -3^2 डालकर Enter दबाएँ, तो स्प्रेडशीट 9 बताती है। लेकिन गणित में exponentiation की precedence unary minus से अधिक होती है, इसलिए परिणाम -9 होना चाहिए। उदाहरण के लिए, अगर किसी छात्र से y = -x^2 का graph बनाने को कहा जाए, तो उसे नीचे की ओर खुलने वाला parabola बनाना चाहिए
    मैंने नवीनतम Excel में जाँच नहीं की है, लेकिन Excel 97 में ऐसा था, और अभी भी LibreOffice Calc 9 लौटाता है। शायद किसी शुरुआती स्प्रेडशीट ने precedence गलत लागू की, और बाद में compatibility के लिए बाकी सबने उसका अनुसरण किया
    दूसरी ओर, maxima और Python दोनों -9 देते हैं। सोचता हूँ कि क्या गणित की किताबों के formula स्प्रेडशीट में कॉपी करने वाले लोग भी इस समस्या में फँसते हैं

    • यह समस्या शायद गढ़े गए binary operator ^ का एक उप-परिणाम लगती है। गणित में exponent superscript होता है, इसलिए वह binary operator नहीं बल्कि term का हिस्सा होता है
      कंप्यूटर टेक्स्ट में ऐसी चीज़ को दिखाने के लिए binary operator बनाया गया जिसे सीधे व्यक्त नहीं किया जा सकता था, और caret आम है तथा सबसे पहले आया, लेकिन ** भी एक और उदाहरण है
      परंपरागत रूप से unary minus को term का हिस्सा माना जाता है, इसलिए उसकी precedence binary operator से अधिक होती है। लेकिन exponentiation को operator में बदल देने के बाद भी वही तर्क बनाए रखने से समस्या उलझ जाती है
      division में भी ऐसा ही एक मुद्दा दिखता है। / उस माहौल में बनाया गया binary operator है जहाँ वास्तविक division sign नहीं था, और मूल रूप से इसे fraction bar को दर्शाना चाहिए। fraction bar दोनों तरफ के पूरे expression को बाँधता है, लेकिन इसे बस / से बदल देने पर precedence rules के कारण गलत परिणाम आ सकते हैं
    • C में -a*b को (-a)*b की तरह parse किया जाता है, लेकिन c-a*b को c-(a*b) की तरह parse किया जाता है। unary minus की precedence binary operator से अधिक होती है
      सामान्यतः sign इधर-उधर किया जा सकता है, इसलिए लोगों को यह बात महसूस नहीं होती, लेकिन undefined behavior से जुड़े edge cases में समस्या सामने आती है
      0 - INT_MIN/2 को 0 - (INT_MIN / 2) की तरह parse किया जाता है, इसलिए यह ठीक है, लेकिन -INT_MIN/2 को (-INT_MIN) / 2 की तरह parse किया जाता है, इसलिए यह ठीक नहीं है। two's complement representation की प्रकृति के कारण INT_MIN का additive inverse मौजूद न हो सकता है
    • किसी program का इस्तेमाल न करने की वजह के रूप में यह कुछ ज़्यादा ही nitpicking लगता है
      मुझे पता है कि इस मुद्दे पर दो conventions हैं, इसलिए मनचाहा व्यवहार पाने के लिए मैं बस parentheses का उपयोग करता हूँ
      स्कूल के दिनों में मैं गणित में अच्छा था, लेकिन मुझे यह पता ही नहीं था कि कुछ लोग -3^2 को -9 होना चाहिए मानते हैं; मैं इसे कुछ calculators या programs की अजीब विशेषता भर समझता था। यह expression ज़ोर से कैसे पढ़ा जाता है, यह भी दिलचस्प है। अगर आप इसे “minus three का square” समझते हैं, तो (-3)^2 स्वाभाविक लगता है; और अगर “three के square का negative” की तरह पढ़ते हैं, तभी -9 सही बैठता है
      मिडिल स्कूल में हमें calculator में ऐसे expressions डालकर अपेक्षा से अलग परिणाम देखने को कहा गया था, और उसके बाद मैंने बस यही सोचा, “अच्छा, parentheses लगाना चाहिए।” केवल थोड़ी अलग precedence convention पसंद होने की वजह से न मैं calculator फेंकूँगा, न किसी और को उसे इस्तेमाल न करने को कहूँगा
    • Nim फ़ोरम पर भी ऐसी ही बात हुई थी। Nim में -2^2=4 होता है, लेकिन 0-2^2=-4, क्योंकि पहले वाले को exponentiation से पहले लगने वाले unary - के रूप में देखा जाता है
      तकनीकी रूप से इसे सही कहा जा सकता है, लेकिन सामान्य engineering या science पृष्ठभूमि वाले किसी व्यक्ति के लिए, जो साधारण काम करना चाहता है, यह बेहद counterintuitive है। मुझे लगता है कि इसी कारण बहुत से लोग Nim का उपयोग न करने लगें
    • Excel में exponent operator, POWER function का सिर्फ shorthand है। उस नज़रिए से देखें तो गणितीय रूप से गलत होने पर भी Excel के व्यवहार के हिसाब से इसे सही माना जा सकता है
  • Excel की समस्या यह है कि वह एक ही software tool से लगभग सब कुछ करना चाहता है: front-end editing·presentation, analysis, semantic modeling, data store·database तक
    ज़्यादातर समझदार engineers को लगता है कि इस approach में कुछ न कुछ बुनियादी गड़बड़ है। लेकिन रोज़मर्रा के अधिकतर computer users मानते हैं कि computing को मूल रूप से ऐसा ही होना चाहिए
    कभी-कभी मैं भी सोचता हूँ कि आखिर क्यों मैं किसी खास काम के लिए स्वेच्छा से Excel खोल लेता हूँ। फिर भी सारी आलोचनाओं के बावजूद Excel मेरे लिए Lindy effect की दहलीज़ पार कर चुका है और बना रहेगा
    https://en.wikipedia.org/wiki/Lindy_effect

    • किसी जटिल Excel स्प्रेडशीट से “थोड़ा बेहतर” समाधान बनाने की development cost अक्सर खगोलीय होती है
      कई tech startups का काम ही यही है: “जो लोग Excel में कर रहे थे, उसे dedicated tools से बदलना”
    • Excel के साथ मेरी समस्या यह है कि मुझे यह बहुत ज़्यादा पसंद है। मुझे पता है कि ऐसा नहीं होना चाहिए, फिर भी है
      यह structured data और unstructured data के बीच बिल्कुल सही जगह पर चोट करता है, इसलिए cells भरना और देखना कि क्या होता है, बहुत सहज लगता है
      “ऐसा नहीं होना चाहिए” कहने की वजह यह है कि जो चीज़ अच्छी तरह चल रही हो, उससे निकलकर सही मायनों में productized code-based approach तक पहुँचना बहुत पीड़ादायक हो सकता है
    • Excel, VBA scripts से mail भी भेज सकता है, इसलिए यह Zawinski's Law को पूरा करता है
      http://www.catb.org/jargon/html/Z/Zawinskis-Law.html
    • हाँ, यह proprietary software है, इसलिए किसी दिन इसका maintenance रुक जाएगा और यह काम करना बंद कर देगा। लेकिन सामान्य रूप से स्प्रेडशीट्स Lindy effect के दायरे में आती हैं, और open source software उन्हें आने वाली सदियों तक आगे ले जाएगा
  • जर्मन में एक कहावत है: “बुरा कामगार हमेशा औज़ार को दोष देता है।”
    Excel में कई अजीब चीज़ें हैं, लेकिन यह अब भी इस बात के लिए आभार के योग्य है कि यह संख्याएँ जल्दी से इकट्ठा करने देता है और साथ ही formula inputs बदलने भी देता है

    • साथ ही user experience design में यह भी कहा जाता है: यूज़र को दोष मत दो
      कम से कम उस लेख के समय तक, SEPT2 जैसी कुछ strings को अपने-आप तारीख़ में बदलने वाली सुविधा को बंद करने का कोई तरीका नहीं था। अगर इसे बंद करने की setting ही होती, तो देर रात तक काम करने वाले या deadline के दबाव में रहने वाले शोधकर्ताओं से हुई बहुत-सी ग़लतियाँ रोकी जा सकती थीं
      यह साफ़ है कि कुछ जगहों पर tool के users को उसका सही इस्तेमाल सीखने की कोशिश करनी चाहिए। लेकिन अगर developers भी थोड़ा प्रयास करें, तो आम ग़लतियों को रोका जा सकता है और users का बहुत समय बचाया जा सकता है
    • अनाड़ी कामगार औज़ार को दोष देता है, लेकिन कोई भी गाजर पर डाक टिकट के ऊपर बाइबिल नहीं लिख सकता
    • इस कहावत में एक बारीकी है जिसे अक्सर नज़रअंदाज़ कर दिया जाता है। मतलब यह है कि “अपने औज़ार” को दोष मत दो
      हर औज़ार को नहीं। न ही उस औज़ार को जो पुराने industrial standards या रिवाजों की वजह से थोप दिया गया हो, या उस बेवकूफ़ औज़ार को जिसे आप सामान्यतः कभी न चुनते, लेकिन आपके पास विकल्प ही न हो
      Excel ने spreadsheet का आविष्कार नहीं किया था। Excel न भी होता, तो उस समय WhateverCalc का कोई successor इस्तेमाल किया जाता, और Excel ने बस उसमें कुछ बेकार चीज़ें और जोड़ दीं
    • यहाँ आभार Excel का नहीं, बल्कि spreadsheet application के अस्तित्व का होना चाहिए
      https://simple.wikipedia.org/wiki/Spreadsheet
    • पोलिश में एक कहावत है: “अनाड़ी बैलेरिना को अपनी स्कर्ट का किनारा बाधा लगता है”
  • आखिर automatic date recognition को बंद क्यों नहीं किया जा सकता? Settings में एक checkbox डाल दीजिए ताकि मैं, यूज़र के रूप में, Excel से कह सकूँ कि वह यह बेवकूफ़ी बंद करे
    क्या कोई ऐसा है जो अकाट्य रूप से यह तर्क दे सके कि यह सुविधा हमेशा चालू ही रहनी चाहिए?

    • Settings के बहुत भीतर checkbox डाल देने से चीज़ों के ग़लत होने के रास्ते और बढ़ जाते हैं
      Default क्या होगा? क्या हर version में default अलग होगा? अलग-अलग computers और installation environments में consistency कैसे रखी जाएगी? और अगर उसी समय यह सुविधा सच में चाहिए हो तो क्या होगा?
      मुझे CSV export याद आता है। मैंने 10 साल से Windows इस्तेमाल नहीं किया, लेकिन याद है कि decimal numbers export करने का तरीका बदलने के लिए locale बदलना पड़ता था और computer reboot करना पड़ता था। सिर्फ़ Excel की एक setting बदलने के लिए ऐसा करना पागलपन है। हर जगह checkbox patch छिड़कना भी इससे बहुत अलग नहीं है
    • सभी cells को text के रूप में सेट करने के अलावा, अब इस समस्या के लिए एक checkbox भी जोड़ दी गई है
      https://insider.microsoft365.com/en-us/blog/control-data-con...
  • दो हफ़्ते पहले काम पर मुझे ऐसा ही कुछ झेलना पड़ा। log file से data निकालते समय मैंने HH:MM:SS.uuuuuu timestamps को epoch के बाद nanoseconds में बदलने के लिए एक awk script लिखी, ताकि कोई दूसरा tool उसे खा सके
    लेकिन मुझे पता नहीं था कि awk अंदरूनी तौर पर numbers के लिए floating point का इस्तेमाल करता है, और conversion function ने results को ग़लत तरह से round कर दिया, जिससे बाद का analysis अजीब तरीके से खराब हो गया
    ऊपर से, Visidata में data को सरसरी तौर पर देखते समय भी वही समस्या फिर हुई, हालांकि उससे बचने का एक आसान workaround था जो मुझे ठीक-ठीक याद नहीं है

  • काम पर मैंने कई बार यह झेला है कि Excel अलग-अलग locale formats की वजह से numeric inputs बदल देता है, और यह पता लगाने में कि कारण Excel है, कई-कई घंटे बर्बाद हुए हैं
    राष्ट्रीय पहचान संख्या या फ़ोन नंबर जैसे values भी Excel के लिए पूरी तरह असुविधाजनक प्रकार हैं। ये genes की तुलना में कहीं ज़्यादा आम उपयोग हैं, यानी Excel के standard use case के ज़्यादा क़रीब, फिर भी यह इन्हें बिगाड़ देता है
    2024 में भी CSV file खोलना Excel में double-click से होने वाला सीधा काम नहीं, बल्कि ज़रूरत से ज़्यादा जटिल काम है। दूसरे spreadsheet programs CSV files को कहीं ज़्यादा आसानी से संभालते हैं
    सबसे बुरी बात यह है कि Excel आम तौर पर non-technical users इस्तेमाल करते हैं, और इस तरह के अजीब व्यवहार को ग़लत समझने की वजह से बार-बार समय बर्बाद होता है

    • काम पर Excel को लेकर मेरी निराशा Excel खुद से ज़्यादा इस बात से है कि लोग formulas बिगाड़ देते हैं, मिटा देते हैं, समझ नहीं पाते, या उन्हें “सुधारने” की कोशिश में छेड़ देते हैं, और अंत में नतीजा कचरा बन जाता है
      हालांकि ज़्यादातर मामलों में गलती मेरी ही होती है कि मैंने protection और locking features का पर्याप्त अच्छे से इस्तेमाल नहीं किया। मुझे यह भी पता है कि explanatory notes को नज़रअंदाज़ कर दिया जाता है
      इसलिए shared files में मैं लगभग हमेशा एक खाली शुरुआती backup रखता हूँ, और असली इस्तेमाल के लिए अलग file रखता हूँ, जिससे थोड़ी राहत मिलती है
  • इसी विषय पर 2016 का लेख “Gene name errors are widespread in the scientific literature” भी दिलचस्प है
    https://genomebiology.biomedcentral.com/articles/10.1186/s13...
    लेख के अनुसार, Excel software द्वारा gene symbols को ग़लती से तारीख़ों और floating point numbers में बदल देने की समस्या का पहला वर्णन 2004 में किया गया था। उदाहरण के लिए, SEPT2 और MARCH1 जैसे gene symbols default रूप से क्रमशः 2-Sep और 1-Mar में बदल जाते हैं