permGWAS et docker

Hello,
j'aimerais faire des analyses GWAS sur le cluster, avec cet outils en python :

Je bloque sur la configuration du docker. Je ne suis pas familière avec ça.
J'ai lu que ca devait être possible via la commande singularity, mais cela ne fonctionne pas pour moi.

singularity exec docker build -t IMAGENAME .

Est ce que c'est possible de faire ca ?
Si quelqu'un a une idée pour m'aider, merci d'avance
Marina

Bonjour,

Singularity, maintenant Apptainer, est capable d'exécuter une image docker directement: Quick Start — Apptainer User Guide 1.0 documentation
Mais l'image doit être mis à disposition (via dockerhub ou autre).
Dans le cas de permGWAS il ne fournisse pas l'image mais le dockerfile.
Du coup, il faut construire l'image à partir de ce dockerfile.
Le plus simple/direct me semble être de créer un fichier de définition singularity/apptainer (en reprenant les élements du dockerfile):
Build a Container — Apptainer User Guide 1.0 documentation
Definition Files — Apptainer User Guide 1.0 documentation
Support for Docker and OCI Containers — Apptainer User Guide main documentation

A noter que pour créer une image, il faut des droits root. On pourra donc, par exemple, créer l'image sur son poste et transférer l'image à utiliser sur le cluster.

A tester aussi, mais je pense que le module python/3.9 devrait être suffisant pour exécuter permGWAS

Je suis pas sûr d'avoir bien répondu mais c'est les infos que je voulais donner.

Hello,
effectivement le fichier téléchargé par

git clone GitHub - grimmlab/permGWAS: Efficient Permutation-based GWAS for Normal and Skewed Phenotypic Distributions
suivant :
/config/Dockerfile

ne doit pas être une image, et je ne comprend pas bien comment faire une image même avec les documentations.
malgré tout, Merci

Salut @Marina_Kafka

Je suis en train, normalement, d'installé les dépendances python manquantes

1 « J'aime »

Merci beaucoup !
il me manque encore l'autorisation d'utiliser des partitions gpu pour essayer !
a bientôt Marina

Bonjour @Marina_Kafka

Pouvez-vous nous indiquer votre login et le projet pour lequel vous voulez utiliser les GPU ?

mferrand pour le login utilisateur
sur /shared/ifbstor1/home/mferrand/
pour utiliser permGWAS avec l'interface ondemand // Rstudio
je pourrais faire des chunks bash et python, dans un Rmd, si j'ai bien compris, ca doit etre faisable comme ca.
merci d'avance !

C'est noté pour le login.
Pour la partie "projet" je voulais dire pour quel "projet" enregistré sur l'IFB Core on doit vous donner l'accès GPU. Plus d'infos sur la notion de projet sur l'IFB: https://ifb-elixirfr.gitlab.io/cluster/doc/data/project/
Par exemple stressnet2 ou 2329_fair_bioinfo dans votre cas.
Si cela ne corresponds pas, n'hésitez pas à demander un nouveau projet (via https://my.cluster.france-bioinformatique.fr/ et le bouton "Request a new project").

Dites-moi le nom du projet, on vous donnera l'accès GPU en suivant.

Hello,
non pas stressnet2 ca n'a rien avoir,
et 2329_fair_bioinfo je ne sais pas si ca va rester longtemps ouvert puisque c était la formation de la semaine derniere. Y a pas possibilité de le mettre dans un autre dossier de mon compte le droit ?
merci d'avance

attend je sais, c est sur le projet du_bii_2019 en fait mon compte

Bonjour Marina,

Les espaces de formations sont utiles le temps de la formation.
Je vous invite à demander un nouveau projet via https://my.cluster.france-bioinformatique.fr/ et le bouton "Request a new project", correspondant à votre projet en question (cela facilite la gestion et corresponds à une bonne pratique)

Hello,
voila qui est fait , mon projet tout neuf s'appelle roothair
merci !

Bonjour Marina,

Du coup, je viens de vous donner accès au GPU pour ce projet.
N'oubliez pas de préciser le nom du projet et la partition lorsque vous lancez votre job (--partition=gpu et --account=roothair).
Pensez également à vérifier le bon usage des ressources, notamment du GPU (Troubleshooting - IFB Core Cluster Documentation)

Bonne journée

Hello,
je viens de regarder sur le formulaire on demand j ai toujours pas possibilité de demander de gpu ...
C est normal ?

Il faut d'abord indiquer le profil souhaité, ensuite on peut indiquer le nombre de "GPU" (i.e. de profil)

Mais c'est pas intuitif... faut p'têtre qu'on adapte :stuck_out_tongue:

merci !

Je suis désolée j ai encore une question bête...
pour lancer le module pytorch depuis un chunk, je ne m y prend pas bien... sur la console ca marchait

perm

question subsidiaire: pourquoi faire du RStudio pour lancer un module python ? Il me semble qu'un notebook Jupyter serait plus adapté dans ce cas.

Module Environment nécessite d'être charger dans Bash. Ce qui est fait par défaut... excepté dans certains cas. Et dans le cas d'un RMarkdown, je ne sais pas trop comment faire. Il faut qu'on fouille si c'est vraiment nécessaire.

Non c'est pas obligatoirement necessaire, juste on m'a dit que j avais cas utiliser le truc avec lequel j'étais le plus à l'aise, donc Rstudio, vu que j croyais qu 'on pouvait lancer des commande bash et python dans des chunks.

Ok pour Jupyter.
J'ai lancé le script avec les data de démo;

cd /shared/ifbstor1/projects/roothair/permGWAS
module load pytorch/1.11.0
python3 permGWAS.py -x ./data/x_matrix.h5 -y ./data/y_matrix.csv

ca me dit

No module named 'pandas_plink'

peut être que ça manque encore dans le module charger ? Quelqu'un sait ou je peux le trouver ?

Les environnement python embarquent les principales librairies (pytorch, panda, ...).
Pouvez-vous réessayer en chargeant simplement python ?

module load python/3.9 

Ou directement dans le kernel Jupyer ?

Hello,
j'ai mis les lignes dans le terminal de Jupyter.

mferrand@gpu-node-01:roothair$ module load python/3.9
mferrand@gpu-node-01:permGWAS$ python3 permGWAS.py -x ./data/x_matrix.h5 -y ./data/y_matrix.csv
Traceback (most recent call last):
File "/shared/ifbstor1/projects/roothair/permGWAS/permGWAS.py", line 4, in
from preprocessing import prepare_data as prep
File "/shared/ifbstor1/projects/roothair/permGWAS/preprocessing/prepare_data.py", line 6, in
from preprocessing import load_files
File "/shared/ifbstor1/projects/roothair/permGWAS/preprocessing/load_files.py", line 7, in
from pandas_plink import read_plink1_bin
ModuleNotFoundError: No module named 'pandas_plink'

J'ai le meme message d'erreur avec python/3.9