Problème avec Nexflow et Conda

Bonjour, je souhaite lancer un pipeline Nextflow sur l'IFB, cependant il semblerait y avoir un conflit avec conda. En effet, le mauvais python est exécuté.

Quand on lance une session sur l'IFB voici le python exécuté /shared/ifbstor1/software/miniconda/bin/python et le $PATH ressemble à ça : /shared/ifbstor1/software/miniconda/bin:/shared/ifbstor1/software/miniconda/condabin:/opt/status_bars/status_bars:/shared/software/sinteractive:/shared/software/slurm-sinteractive:/shared/software/modules/4.6.1/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/go/1.14.4/bin:/opt/go/packages/bin:/shared/home/cvroland/.local/bin:/shared/home/cvroland/bin

Quand on active les modules pour nexflow (module load nextflow slurm-drmaa graphviz) le chemin vers python est /shared/ifbstor1/software/miniconda/envs/nextflow-23.04.1/bin/python et le $PATH est /shared/ifbstor1/software/miniconda/envs/graphviz-2.40.1/bin:/shared/ifbstor1/software/miniconda/envs/nextflow-23.04.1/bin:/shared/ifbstor1/software/miniconda/bin/:/shared/ifbstor1/software/miniconda/bin:/shared/ifbstor1/software/miniconda/condabin:/opt/status_bars/status_bars:/shared/software/sinteractive:/shared/software/slurm-sinteractive:/shared/software/modules/4.6.1/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/go/1.14.4/bin:/opt/go/packages/bin:/shared/home/cvroland/.local/bin:/shared/home/cvroland/bin

Maintenant, si j'active un environement conda (par exemple : conda activate pytorch-1.10.0), le python est resté sur /shared/ifbstor1/software/miniconda/envs/nextflow-23.04.1/bin/python. En effet, lorsque l'on regarde le $PATH /shared/ifbstor1/software/miniconda/envs/graphviz-2.40.1/bin:/shared/ifbstor1/software/miniconda/envs/nextflow-23.04.1/bin:/shared/ifbstor1/software/miniconda/envs/pytorch-1.10.0/bin:/shared/ifbstor1/software/miniconda/bin:/shared/ifbstor1/software/miniconda/condabin:/opt/status_bars/status_bars:/shared/software/sinteractive:/shared/software/slurm-sinteractive:/shared/software/modules/4.6.1/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/go/1.14.4/bin:/opt/go/packages/bin:/shared/home/cvroland/.local/bin:/shared/home/cvroland/bin, on voit que le chemin vers l'environnement conda (/shared/ifbstor1/software/miniconda/envs/pytorch-1.10.0/bin) est après le chemin vers le module nextflow. Ce dernier est donc prioritaire sur l'environnement conda.

Ce problème rend inutilisable conda dans un pipeline nextflow.

Bonjour,
J'ai un probleme similaire avec nextflow et conda dans le cadre de l'utilisation du workflow nanoclust (GitHub - genomicsITER/NanoCLUST: NanoCLUST is an analysis pipeline for UMAP-based classification of amplicon-based full-length 16S rRNA nanopore reads). Il semble que les environnements conda ne soient pas chargés, je serais interessé de savori si vous avez reussi à surmonter ce probleme depuis ?
Merci

Bonjour @vchochois,
J'ai testé le workflow nanoclust sur le cluster et j'ai pu identifié pourquoi les environnements Conda nécessaires à l'exécution des étapes n'étaient pas créés : il manque une option dans le fichier de configuration nextflow.config, plus précisément au niveau de la définition du profil conda du workflow.

[...]
profiles {
  test { includeConfig 'conf/test.config' }
  conda { 
    process {
      withName: demultiplex { conda = "$baseDir/conda_envs/demultiplex/environment.yml" }
      withName: demultiplex_porechop { conda = "$baseDir/conda_envs/demultiplex_porechop/environment.yml" }
[...]

Il faut ajouter l'option conda.enabled = true :

[...]
profiles {
  test { includeConfig 'conf/test.config' }
  conda { 
    conda.enabled = true
    process {
      withName: demultiplex { conda = "$baseDir/conda_envs/demultiplex/environment.yml" }
      withName: demultiplex_porechop { conda = "$baseDir/conda_envs/demultiplex_porechop/environment.yml" }
    }
[...]

Une fois cette option ajoutée, pour exécuter ce workflow, vous devez seulement charger le module nextflow avec la version attendue (désignée comme X.X.X ci-dessous) :

module load nextflow/X.X.X
nextflow run main.nf -profile conda [-options]

Les environnements Conda se créeront au fur et à mesure que les étapes s'exécuteront.
Bonne journée,

1 « J'aime »

Wow merci pour la réponse ! c'est pas grand chose mais il faut le savoir. Cela m'aurait pris une éternité de trouver le bug. Merci encore !