Gatk4 gcnvkernel Python environment setup

Bonjour,

Je souhaite utiliser la fonction DetermineGermlineContigPloidy de GATK4. Dans la doc il est précisé que

The computation done by this tool, aside from input data parsing and validation, is performed outside of the Java Virtual Machine and using the gCNV computational python module, namely gcnvkernel. It is crucial that the user has properly set up a python conda environment with gcnvkernel and its dependencies installed. If the user intends to run DetermineGermlineContigPloidy using one of the official GATK Docker images, the python environment is already set up. Otherwise, the environment must be created and activated as described in the main GATK README.md file.

Et en effet, lorsque je fait un simple module load gatk4, puis je lance ma commande, j'ai l'erreur suivante:

ModuleNotFoundError: No module named 'gcnvkernel'

J'ai donc créé un environnement conda, dans lequel j'ai installé gatk4 et gcnvkernel. Puis j'ai lancé ma commande sur la frontale.

conda create --name gatk4_gcnvkernel gatk4=4.2.6.1 gcnvkernel
source ~/.bashrc
conda activate gatk4_gcnvkernel
gatk DetermineGermlineContigPloidy <autres paramètres>

Et là je n'ai plus d'erreur à l'étape python -c import gcnvkernel
En revanche, lorsque j'intègre ma commande à un pipeline et lance le tout en sbatch sur le cluster j'ai de nouveau l'erreur :

ModuleNotFoundError: No module named 'gcnvkernel'

Qu'est-ce que je peux faire ?

gcnvkernel n'est en effet pas inclus dans la version gatk4-4.2.3.0

[glecorguille@clust-slurm-client ~]$ . /shared/software/miniconda/bin/activate gatk4-4.2.3.0
(gatk4-4.2.3.0) [glecorguille@clust-slurm-client ~]$ /shared/software/miniconda/bin/conda list
# packages in environment at /shared/ifbstor1/software/miniconda/envs/gatk4-4.2.3.0:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       1_gnu    conda-forge
bzip2                     1.0.8                h7f98852_4    conda-forge
ca-certificates           2021.10.8            ha878542_0    conda-forge
gatk4                     4.2.3.0              hdfd78af_0    bioconda
ld_impl_linux-64          2.36.1               hea4e1c9_2    conda-forge
libffi                    3.4.2                h9c3ff4c_4    conda-forge
libgcc-ng                 11.2.0              h1d223b6_11    conda-forge
libgomp                   11.2.0              h1d223b6_11    conda-forge
libnsl                    2.0.0                h7f98852_0    conda-forge
libstdcxx-ng              11.2.0              he4da1e4_11    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libzlib                   1.2.11            h36c2ea0_1013    conda-forge
ncurses                   6.2                  h58526e2_4    conda-forge
openjdk                   8.0.302              h7f98852_0    conda-forge
openssl                   3.0.0                h7f98852_2    conda-forge
pip                       21.3.1             pyhd8ed1ab_0    conda-forge
python                    3.10.0          h543edf9_2_cpython    conda-forge
python_abi                3.10                    2_cp310    conda-forge
readline                  8.1                  h46c0cb4_0    conda-forge
setuptools                58.5.3                   pypi_0    pypi
sqlite                    3.36.0               h9cd32fc_2    conda-forge
tk                        8.6.11               h27826a3_1    conda-forge
tzdata                    2021e                he74cb21_0    conda-forge
wheel                     0.37.0             pyhd8ed1ab_1    conda-forge
xz                        5.2.5                h516909a_1    conda-forge
zlib                      1.2.11            h36c2ea0_1013    conda-forge

Mais devrait être présent au moins dans la dernière version :

Je vais lancer la mise à jour de gatk4 sur le cluster

Installation en cours :

Merci pour la mise à jour.
Malheureusement, j'ai exactement le même problème avec un module load gatk4 ( avec la dernière version 4.2.6.1).

Je pense pas que ce soit un problème de version puisque je n'ai pas le problème quand j'installe dans un environnement conda gatk4 + gcnvkernel et que je lance sur la frontale.
Mais que j'ai le problème quand j'active l'environnement conda et lance dans un sbatch.

(ça valait le coup de le mettre à jour de tout façon)

Ah, ça "tourne" sur le login node mais pas via sbatch :thinking:
On a un peu l'impression qu'il ne lance pas le bon python, non ?

Effectivement, dans mon script je fait un autre module load après le conda activate, ce qui change la version de python.
merci

Julien

1 « J'aime »

Bon enfait c'est toujours pas bon.
Mon installation personnelle de gatk4 + gcnvkernel dans un conda env provoque une autre erreur plus loin (toujours liée à une dépendance python de gatk).

Dans la mise à jour que vous avez faite de gatk4, il n'y a toujours pas gcnvkernel.
Après :

. /shared/software/miniconda/bin/activate gatk4-4.2.6.1
conda list

gcnvkernel est absent.

Dans cette doc : https://gatk.broadinstitute.org/hc/en-us/articles/360035889851--How-to-Install-and-use-Conda-for-GATK4, ils indiquent qu'il faut créer un env conda : conda env create -n gatk -f gatkcondaenv.yml à partir d'un .yml présent avec les .jar de gatk.
Mais ce .yml n'existe pas dans /shared/ifbstor1/software/miniconda/envs/gatk4-4.2.6.1/bin

Comment je peux faire ?

Des idées pour savoir comment je pourrai installer gatk4 avec les dépendances pythons ? comme le préconise ce tuto : https://gatk.broadinstitute.org/hc/en-us/articles/360035889851--How-to-Install-and-use-Conda-for-GATK4 ?

Julien

J'ai trouvé cette issue:

Si pas de réponse rapide, on passera pas une image Singularity importé depuis Docker.

Ok merci !

C'est possible de passer par une image Singularity comme on a pas de réponse ?

Après est-ce que c'est vraiment nécessaire de passer par une image Singularity ?
Dans la doc transmise plus haut, il suffit juste de créer en env conda en donnant un .yml pour correctement installer les dépendances python.

Julien

Je suis désolé, j'étais sur une conférence la semaine dernière et je n'ai pas pu rattraper mon retard.
Je tache de m'y remettre au plus vite.
(Sauf si quelqu'un veut prendre le relais ?)

Avant que je ne le distribue pour toi, pouvez-vous tester pour moi :

A ne faire qu'un fois

module load singularity
cd ~
singularity pull gatk-4.2.6.1.sif docker://broadinstitute/gatk:4.2.6.1

Puis pour l'usage dans votre sbatch ou srun

~/gatk-4.2.6.1.sif gatk --version

Je ferais mieux si cela fixe le problème.

Le singularity pull a marché sans problème.

Cool ! Est-ce que vous pouvez lancer l'analyse qui plantait avec la version Conda ?

Ok, ça à l'air de marché, je n'ai plus aucune des erreurs que j'avais précédemment.
Merci,

Cool, je vais du coup proposer cette version via module.

Installation en cours:

1 « J'aime »

Hop:

module load gatk4/4.2.6.1