Une faille dans le script Python pourrait conduire à des résultats incorrects dans plus de 100 publications de chimie

Étudiant diplômé de l'Université d'Hawaï trouvés problème dans le script Python utilisé pour les calculs Changement chimique, qui détermine la structure chimique de la substance étudiée lors de l'analyse spectrale des signaux à l'aide de la méthode résonance magnétique nucléaire. En vérifiant les résultats de recherche d'un de ses professeurs, un étudiant diplômé a remarqué que lors de l'exécution d'un script sur différents systèmes d'exploitation sur le même ensemble de données, le résultat était différent.

Par exemple, lors de l'exécution sur macOS 10.14 et Ubuntu 16.04 pour l'ensemble de données testé, le script émis valeur incorrecte 172.4 au lieu de 173.2. Le script comprend environ 1000 2014 lignes de code et est utilisé par les chimistes depuis XNUMX. L'examen du code a montré que la sortie est incorrecte conditionné par différences lors du tri des fichiers dans différents systèmes d'exploitation. Les auteurs du scénario pensaient que la fonction "globe ()" renvoie toujours les fichiers triés par nom, alors que la documentation globale indique que l'ordre de sortie n'est pas garanti. Le correctif consistait à ajouter list_of_files.sort() après l'appel glob().

Une faille dans le script Python pourrait conduire à des résultats incorrects dans plus de 100 publications de chimie

Le problème découvert a mis en doute l'exactitude de plus de 100 publications sur la chimie, dont les conclusions ont été tirées sur la base du déplacement chimique calculé par le script. Le nombre exact d'études dans lesquelles le script a été utilisé est inconnu, mais des publications avec son code ont été citées dans 158 articles. Il est recommandé aux auteurs de ces travaux d'évaluer l'exactitude du script sur les systèmes d'exploitation utilisés pour les calculs et de les recalculer afin de s'assurer que les valeurs calculées sont correctes. L'incident est un excellent exemple du fait que non seulement la qualité de l'expérience, mais aussi l'exactitude du traitement des données obtenues dans des programmes qui
Ceci a été largement utilisé et peut affecter le résultat final.

Source: opennet.ru

Ajouter un commentaire