Błąd w skrypcie Pythona może prowadzić do błędnych wyników w ponad 100 publikacjach chemicznych

Absolwent Uniwersytetu Hawajskiego odkryte problem w skrypcie Pythona używanym do obliczeń przesunięcie chemiczne, która określa strukturę chemiczną badanej substancji podczas analizy widmowej sygnałów tą metodą magnetyczny rezonans jądrowy. Weryfikując wyniki badań jednego ze swoich profesorów, doktorant zauważył, że uruchamiając skrypt w różnych systemach operacyjnych na tym samym zestawie danych, wyniki były różne.

Na przykład podczas uruchamiania testowanego zbioru danych w systemach macOS 10.14 i Ubuntu 16.04 skrypt wydany niepoprawna wartość 172.4 zamiast 173.2. Skrypt zawiera około 1000 linii kodu i jest używany przez chemików od 2014 roku. Analiza kodu wykazała, że ​​dane wyjściowe są nieprawidłowe wskutek różnice przy sortowaniu plików w różnych systemach operacyjnych. Autorzy scenariusza uważali, że funkcja „kula()" zawsze zwraca pliki posortowane według nazwy, podczas gdy dokumentacja glob stwierdza, że ​​kolejność wyjściowa nie jest gwarantowana. Rozwiązaniem było dodanie list_of_files.sort() po wywołaniu glob().

Błąd w skrypcie Pythona może prowadzić do błędnych wyników w ponad 100 publikacjach chemicznych

Odkryty problem poddał w wątpliwość poprawność ponad 100 publikacji z zakresu chemii, z których wnioski wyciągnięto na podstawie obliczonego przez skrypt przesunięcia chemicznego. Dokładna liczba badań, w których wykorzystano skrypt, nie jest znana, ale publikacje z jego kodem cytowano w 158 artykułach. Autorom tych prac zaleca się ocenę poprawności skryptu na systemach operacyjnych używanych do obliczeń i przeliczenie ich w celu zapewnienia poprawności obliczonych wartości. Incydent jest doskonałym przykładem na to, że nie tylko jakość eksperymentu, ale także poprawność przetwarzania uzyskanych danych w programach
Jest to powszechnie stosowane i może mieć wpływ na wynik końcowy.

Źródło: opennet.ru

Dodaj komentarz