Un defect în scriptul Python ar putea duce la rezultate incorecte în peste 100 de publicații de chimie

Student absolvent al Universității din Hawaii găsit problemă în scriptul Python folosit pentru calcule deplasare chimică, care determină structura chimică a substanței studiate în timpul analizei spectrale a semnalelor folosind metoda rezonanță magnetică nucleară. În timp ce verifica rezultatele cercetării unuia dintre profesorii săi, un student absolvent a observat că atunci când rulează un script pe diferite sisteme de operare pe același set de date, rezultatul era diferit.

De exemplu, când rulați pe macOS 10.14 și Ubuntu 16.04 pentru setul de date testat, scriptul emis valoarea incorectă 172.4 în loc de 173.2. Scriptul include aproximativ 1000 de linii de cod și a fost folosit de chimiști din 2014. Examinarea codului a arătat că rezultatul este incorect din cauza diferențe la sortarea fișierelor în diferite sisteme de operare. Autorii scenariului credeau că funcția "glob()„ returnează întotdeauna fișierele sortate după nume, în timp ce documentația globală afirmă că ordinea de ieșire nu este garantată. Soluția a fost să adăugați list_of_files.sort() după apelul glob().

Un defect în scriptul Python ar putea duce la rezultate incorecte în peste 100 de publicații de chimie

Problema descoperită a pus la îndoială corectitudinea a peste 100 de publicații despre chimie, ale căror concluzii au fost făcute pe baza deplasării chimice calculate de scenariu. Numărul exact de studii în care a fost folosit scenariul nu este cunoscut, dar publicațiile cu codul său au fost citate în 158 de lucrări. Autorilor acestor lucrări li se recomandă să evalueze corectitudinea scriptului pe sistemele de operare utilizate pentru calcule și să le recalculeze pentru a se asigura că valorile calculate sunt corecte. Incidentul este un exemplu excelent al faptului că nu numai calitatea experimentului, ci și corectitudinea procesării datelor obținute în programe care
Acest lucru a fost utilizat pe scară largă poate afecta rezultatul final.

Sursa: opennet.ru

Adauga un comentariu