Недапрацоўка ў Python-скрыпце магла прывесці да няслушных вынікаў у больш за 100 публікацыях па хіміі.

Аспірант гавайскага ўніверсітэта выявіў праблему ў Python-скрыпце, які выкарыстоўваецца для вылічэнняў хімічнага зруху, які вызначае хімічную будову вывучаемага рэчыва пры спектральным аналізе сігналаў метадам ядзерна-магнітнага рэзанансу. У ходзе верыфікацыі вынікаў даследаванняў аднаго са сваіх прафесараў аспірант заўважыў, што пры выкананні скрыпту ў розных аперацыйных сістэмах над адным і тым жа наборам даных на выхадзе атрымліваўся розны вынік.

Напрыклад, пры запуску ў macOS 10.14 і Ubuntu 16.04 для пратэставанага набору дадзеных скрыпт выдаваў некарэктнае значэнне 172.4 замест 173.2. Скрыпт уключае каля 1000 радкоў кода і выкарыстоўваецца хімікамі з 2014 года. Вывучэнне кода паказала, што вывад няправільнага значэння абумоўлены адрозненнямі пры сартаванні файлаў у розных аперацыйных сістэмах. Аўтары скрыпту лічылі, што функцыя «глобус ()» заўсёды вяртае файлы, адсартаваныя па імі, у той час як у дакументацыі на glob паказана, што парадак высновы не гарантуецца. Выпраўленне звялося да дадання list_of_files.sort() пасля выкліку glob().

Недапрацоўка ў Python-скрыпце магла прывесці да няслушных вынікаў у больш за 100 публікацыях па хіміі.

Выяўленая праблема паставіла пад сумнеў карэктнасць больш за 100 публікацый па хіміі, высновы ў якіх былі зроблены на аснове вылічанага скрыптам хімічнага зруху. Дакладная колькасць даследаванняў, у якіх выкарыстоўваўся скрыпт невядома, але публікацыя з яго кодам працытавана ў 158 працах. Аўтарам дадзеных прац рэкамендавана ацаніць карэктнасць працы скрыпту на якія ўжываліся для вылічэння аперацыйных сістэмах і правесці пераразлік для таго, каб пераканацца ў правільнасці вылічаных значэнняў. Інцыдэнт зяўляецца выдатным прыкладам таго, што не толькі якасць правядзення эксперыменту, але і карэктнасць апрацоўкі атрыманых дадзеных у праграмах, якія да
гэтага паўсюдна выкарыстоўваліся, можа паўплываць на канчатковы вынік.

Крыніца: opennet.ru

Дадаць каментар