Chyba v Python skriptu by mohla vést k nesprávným výsledkům ve více než 100 chemických publikacích

Postgraduální student University of Hawaii objeveno problém ve skriptu Python používaném pro výpočty chemický posun, který určuje chemickou strukturu zkoumané látky při spektrální analýze signálů pomocí této metody nukleární magnetická rezonance. Při ověřování výsledků výzkumu jednoho ze svých profesorů si jeden postgraduální student všiml, že při spuštění skriptu na různých operačních systémech na stejné sadě dat byl výstup odlišný.

Například při spuštění na macOS 10.14 a Ubuntu 16.04 pro testovanou datovou sadu se skript vydané nesprávná hodnota 172.4 místo 173.2. Skript obsahuje asi 1000 řádků kódu a chemici ho používají od roku 2014. Zkoumání kódu ukázalo, že výstup je nesprávný podmíněno rozdíly při řazení souborů v různých operačních systémech. Autoři scénáře věřili, že funkce „glob()" vždy vrací soubory seřazené podle názvu, zatímco dokumentace glob uvádí, že výstupní pořadí není zaručeno. Oprava spočívala v přidání list_of_files.sort() po volání glob().

Chyba v Python skriptu by mohla vést k nesprávným výsledkům ve více než 100 chemických publikacích

Objevený problém zpochybnil správnost více než 100 publikací o chemii, jejichž závěry byly učiněny na základě skriptem vypočítaného chemického posunu. Přesný počet studií, ve kterých bylo písmo použito, není známo, ale publikace s jeho kódem byly citovány ve 158 článcích. Autorům těchto prací se doporučuje vyhodnotit správnost skriptu na operačních systémech použitých pro výpočty a přepočítat je, aby bylo zajištěno, že vypočítané hodnoty jsou správné. Incident je výbornou ukázkou toho, že nejen kvalita experimentu, ale i správnost zpracování získaných dat v programech, které
Toto široce používané může ovlivnit konečný výsledek.

Zdroj: opennet.ru

Přidat komentář