Greška u Python skripti mogla bi dovesti do netočnih rezultata u više od 100 publikacija o kemiji

Student diplomskog studija Sveučilišta na Havajima našao sam problem u Python skripti koja se koristi za izračune kemijski pomak, koji određuje kemijsku strukturu tvari koja se proučava tijekom spektralne analize signala pomoću metode nuklearna magnetska rezonancija. Dok je provjeravao rezultate istraživanja jednog od svojih profesora, diplomski student primijetio je da je izlaz različit pri pokretanju skripte na različitim operativnim sustavima na istom skupu podataka.

Na primjer, kada se izvodi na macOS 10.14 i Ubuntu 16.04 za testirani skup podataka, skripta izdana netočna vrijednost 172.4 umjesto 173.2. Skripta uključuje oko 1000 redaka koda, a kemičari je koriste od 2014. Ispitivanje koda pokazalo je da je izlaz netočan zbog razlike pri sortiranju datoteka u različitim operativnim sustavima. Autori scenarija vjerovali su da funkcija "globus()" uvijek vraća datoteke poredane po nazivu, dok glob dokumentacija navodi da izlazni redoslijed nije zajamčen. Popravak je bio dodavanje list_of_files.sort() nakon poziva glob().

Greška u Python skripti mogla bi dovesti do netočnih rezultata u više od 100 publikacija o kemiji

Otkriveni problem bacio je sumnju na ispravnost više od 100 publikacija o kemiji, čiji su zaključci doneseni na temelju kemijskog pomaka izračunatog skriptom. Ne zna se točan broj studija u kojima je pismo korišteno, no publikacije s njegovim kodom citirane su u 158 radova. Autorima ovih radova preporuča se procijeniti ispravnost skripte na operativnim sustavima korištenim za izračune i ponovno ih izračunati kako bi se osiguralo da su izračunate vrijednosti točne. Incident je izvrstan primjer činjenice da ne samo kvaliteta eksperimenta, već i ispravnost obrade dobivenih podataka u programima koji
Ovo je široko korišteno i može utjecati na konačni rezultat.

Izvor: opennet.ru

Dodajte komentar