Onderzoekssoftware en reproduceerbaarheid

Conda environments en reproduceerbare analyses: een beginnersgids voor onderzoekers

Lieke de Vries Lieke de Vries
· · 5 min leestijd

Stel je voor: je onderzoek is af, je paper is bijna klaar, en dan vraagt een reviewer of je de analyse kan herhalen.

Inhoudsopgave
  1. Wat is Conda en waarom is het zo belangrijk voor onderzoekers?
  2. Virtuele omgevingen: je eigen laboratorium op je laptop
  3. Conda vs. pip: wat is het verschil?
  4. Installatie: beginnen met Anaconda of Miniconda
  5. Je eerste Conda-omgeving aanmaken: stap voor stap
  6. Je omgeving delen met anderen: de environment.yml
  7. Best practices voor onderzoekers
  8. Conda en Open Science: een logische combinatie

Je opent je script, draait het op een andere computer, en… het werkt niet. Pakketten ontbreken, versies kloppen niet, en ineens zit je uren te debuggen in plaats van aan je onderzoek te werken. Klinkt herkenbaar? Dan is het tijd om kennis te maken met Conda.

Wat is Conda en waarom is het zo belangrijk voor onderzoekers?

Conda is een open-source pakket- en omgevingsbeheersysteem. Dat klinkt technisch, maar het idee is simpel: Conda helpt je om de exacte softwareomgeving van je project te beheren.

Denk aan Python-versies, R-pakketten, bibliotheken, en zelfs systeemtools. Alles in één keer geïnstalleerd, geïsoleerd, en reproduceerbaar. Voor onderzoekers is dat goud waard. Reproduceerbaarheid is een van de pijlers van goede wetenschap.

Als anderen je resultaten niet kunnen herhalen, vermindert dat het vertrouwen in je bevindingen. Conda lost dat probleem op door ervoor te zorgen dat jouw analyse draait in een virtuele omgeving — een soort bubbel waarin alleen de pakketten staan die jij hebt gekozen, in de versies die jij hebt vastgelegd.

Virtuele omgevingen: je eigen laboratorium op je laptop

Een virtuele omgeving is als een aparte werkbank in een laboratorium. Op werkbank A draait je project over genexpressie met Python 3.9 en pandas 1.5.

Op werkbank B werk je aan een machine-learningproject met Python 3.11 en TensorFlow 2.12. Zonder virtuele omgevingen zouden die pakketten door elkaar heen draaien, en zou het één grote chaos worden. Met Conda creëer je voor elk project een eigen omgeving.

Die omgeving is volledig geïsoleerd van de rest van je systeem. Je kunt er pakketten in installeren, updaten, of verwijderen zonder dat het andere projecten beïnvloedt.

En het mooiste: je kunt die omgeving exact opnieuw opbouwen op een andere computer, of delen met een collega.

Conda vs. pip: wat is het verschil?

Veel onderzoekers kennen pip, de standaard Python-pakketbeheerder. Pip installeert Python-pakketten, maar dat is ook wel zo’n beetje alles.

Conda gaat verder: het beheert niet alleen Python-pakketten, maar ook niet-Python-software, zoals R, Julia, en zelfs systeembibliotheken zoals GCC of HDF5.

Daarnaast lost Conda automatisch afhankelijkheidsconflicten op. Stel: pakket A heeft versie 2.0 van een bibliotheek nodig, maar pakket B werkt alleen met versie 1.5. Pip geeft dan een foutmelding.

Conda probeert een combinatie te vinden die voor beide pakketten werkt. Dat maakt het vooral handig voor complexe onderzoeksprojecten waar veel tools samenkomen. Conclusie: gebruik pip binnen Conda-omgevingen voor Python-specifieke pakketten, maar laat Conda de zware werk doen bij het beheren van je volledige omgeving.

Installatie: beginnen met Anaconda of Miniconda

Er zijn twee manieren om Conda te installeren. Anaconda is de volledige distributie: het bevat Conda, Python, en meer dan 250 populaire wetenschappelijke pakketten zoals NumPy, SciPy, pandas, en Jupyter. Ideaal als je snel wilt beginnen zonder zelf pakketten te hoeven installeren. Miniconda is de lichte variant. Het bevat alleen Conda en een minimale Python-installatie.

Je installeert zelf alleen wat je nodig hebt. Dat houdt je systeem schoon en geeft je meer controle.

Voor onderzoekers die precies weten wat ze willen, is Miniconda vaak de betere keuze. Beide zijn gratis te downloaden van de Anaconda-website en beschikbaar voor Windows, macOS, en Linux.

Je eerste Conda-omgeving aanmaken: stap voor stap

Laten we direct aan de slag. Open je terminal (of Anaconda Prompt op Windows) en voer het volgende uit:

conda create --name mijnproject python=3.10 Hiermee maak je een nieuwe omgeving aan met de naam "mijnproject" en Python versie 3.10.

Conda downloadt en installeert automatisch de juiste Python-versie. Activeer de omgeving met: conda activate mijnproject Je ziet nu de naam van je omgeving verschijnen in je terminal. Alles wat je nu installeert, komt in deze omgeving terecht. Installeer een pakket, bijvoorbeeld pandas: conda install pandas En klaar is je eerste reproduceerbare werkomgeving.

Je omgeving delen met anderen: de environment.yml

Hier wordt het echt interessant voor onderzoek. Wil je nog verder gaan dan alleen pakketbeheer? Met containerisatie voor onderzoekers kun je je volledige omgeving exporteren naar een bestand: conda env export > environment.yml

Dit environment.yml-bestand bevat een exacte lijst van alle pakketten en versies.

Een collega kan met dit bestand jouw omgeving op identieke wijze opbouwen: conda env create -f environment.yml Dit is de kern van reproduceerbaarheid. Voeg het environment.yml-bestand toe aan je projectrepository op GitHub of GitLab, en iedereen die je code clonent, kan exact dezelfde omgeving opzetten. Zo maak je een Jupyter notebook die ook over vijf jaar nog werkt; geen "het werkt op mijn laptop"-probleem meer.

Best practices voor onderzoekers

Om het meeste uit Conda te halen, houd je aan een paar simpele regels. Maak voor elk onderzoeksproject een aparte omgeving aan. Gebruik nooit de standaard "base"-omgeving voor je projecten — dat is alsof je al je chemicaliën op één werkbank gooit.

Leg altijd de exacte versies vast van je belangrijkste pakketten. In je environment.yml kun je dat doen met pandas=1.5.3 in plaats van alleen pandas.

Zo voorkom dat een stille update je resultaten verandert. En vergeet niet om je environment.yml bij te houden in versiebeheer. Elke wijziging in je omgeving hoort thuis in je Git-repository, net als elke wijziging in je code.

Conda en Open Science: een logische combinatie

Conda sluit naadloos aan bij de principes van Open Science. Transparantie, reproduceerbaarheid, en samenwerking worden er mee bevorderd.

Als je onderzoek open en toegankelijk wil zijn, dan is het vastleggen van je softwareomgeenvoudigweg onderdeel van goede onderzoekspraktijk. Initiatieven zoals FAIR data en Plan S benadrukken al het belang van reproduceerbaar onderzoek.

Conda is een praktisch hulpmiddel om die ambities waar te maken. Het kost je een uur om te leren, en bespaart je — en je collega's — ontelbare uren aan frustratie. Dus: begin vandaag. Maak je eerste omgeving aan, exporteer je environment.yml, en deel je werk met de wereld. De wetenschap wordt er beter van.


Lieke de Vries
Lieke de Vries
Expert in Open Science principes

Lieke adviseert onderzoekers over het publiceren van FAIR data volgens de nieuwste normen.

Meer over Onderzoekssoftware en reproduceerbaarheid

Bekijk alle 28 artikelen in deze categorie.

Naar categorie →
Lees volgende
Waarom onderzoekssoftware ook FAIR moet zijn en niet alleen jouw data
Lees verder →