Недоопрацювання в Python-скрипті могло призвести до невірних результатів у понад 100 публікаціях з хімії.

Аспірант гавайського університету виявив проблему в Python-скрипті, який використовується для обчислень хімічного зсуву, що визначає хімічну будову речовини, що вивчається при спектральному аналізі сигналів методом ядерно-магнітного резонансу. У ході верифікації результатів досліджень одного зі своїх професорів аспірант зауважив, що при виконанні скрипту в різних операційних системах над тим самим набором даних на виході виходив різний результат.

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

Недоопрацювання в Python-скрипті могло призвести до невірних результатів у понад 100 публікаціях з хімії.

Виявлена ​​проблема поставила під сумнів коректність понад 100 публікацій з хімії, висновки у яких було зроблено на основі обчисленого скриптом хімічного зсуву. Точна кількість досліджень, у яких використовувався скрипт невідомо, але публікацію з його кодом процитовано у 158 роботах. Авторам даних робіт рекомендовано оцінити коректність роботи скрипта на операційних системах, що застосовувалися для обчислення, і провести перерахунок для того, щоб переконатися в правильності обчислених значень. Інцидент є чудовим прикладом того, що не тільки якість проведення експерименту, а й коректність обробки отриманих даних у програмах, які до
це повсюдно використовувалися, може вплинути на кінцевий результат.

Джерело: opennet.ru

Додати коментар або відгук