Python-script draait chemiestudies de nek om

Ophef Iedere week bespreekt de redactie wetenschap hier ophef in de wetenschap. Deze week: een scheikundig script sorteert niet.

Foto Getty Images

Twijfel onder scheikundigen: kloppen de resultaten van ruim 150 wetenschappelijke publicaties nog wel? De argwaan is niet ontstaan omdat de auteurs ervan slecht werk deden, maar omdat het computerscript dat ze gebruikten niet voldeed.

Dat schrijven zes Hawaiiaanse chemici deze maand in Organic Letters. Ze wilden de resultaten van een experiment met cyanobacteriën analyseren, en ontdekten toen dat verschillende computers op basis van dezelfde gegevens met verschillende resultaten kwamen.

Met behulp van nuclear magnetic resonance spectroscopy (NMR, een techniek om lokale magnetische velden rond atoomkernen te bestuderen) bestudeerden de onderzoekers zogeheten leptazolines, natuurlijke stoffen die afkomstig zijn van de cyanobacterie Leptolyngbya. Maar bij het verwerken van de gegevens met behulp van een script in de programmeertaal Python ontdekten ze dat de resultaten in besturingssysteem Linux tot een procent afweken van de (juiste) resultaten in Windows 10. Ook MacOS Mojave zorgde voor afwijkingen, terwijl MacOS Mavericks wel voor betrouwbare resultaten zorgde.

Twee lijsten die niet passen

Het ging fout doordat ze het zogeheten Willoughby-Hoye-script gebruikten, om ‘chemische verschuivingen’ te berekenen. Daarmee wordt binnen de NMR-methode aangegeven in welke mate het signaal van een atoom verschoven is ten opzichte van een bepaalde chemische verbinding. Daarbij speelt ook de beschikbare ‘vrije energie’ een rol.

In Windows 10 werd elke chemische verschuiving netjes gekoppeld aan de bijbehorende vrije energie. Dat gebeurde op basis van de bestandsnaam, door de zogeheten glob-module van Python: zo moesten twee lijsten ontstaan, waarbij naast elkaar liggende bestanden werden gekoppeld. 1b-opt_freq-conf-11.out hoorde dan bij 1b-nmr-conf-11.out. Maar glob werkt per besturingssysteem anders en kan lijsten in een willekeurige volgorde opleveren. En daardoor ging het mis. Verschuiving nummer 11 lag bijvoorbeeld naast vrije energie nummer 8.

De Hawaiiaanse scheikundigen hebben het script aangepast. De twee lijsten worden nu eerst gesorteerd, zodat dat de juiste bestanden wel altijd goed naast elkaar liggen. Ook wordt de gebruiker ervan gewaarschuwd om alert te zijn. Ze besluiten hun artikel met de Latijnse uitdrukking caveat emptor (‘koper, wees op je hoede’) en benadrukken dat iedere wetenschapper eigenlijk z’n software zou moeten checken.