Présentation du cluster iPOP-UP

Le cluster iPOP-UP@RPBS est une plateforme de calcul partagée dédiée à la bioinformatique, mise à disposition par l’Université Paris Cité et hébergée sur la plateforme Ressource Parisienne en Bioinformatique Structurale (RPBS). Le cluster est une plateforme structurée pour optimiser la vitesse de calcul, la reproductibilité, et la collaboration scientifique. Il combine des nœuds de calcul puissants, des espaces de stockage, et des environnements logiciels modulables via Conda ou conteneurs Apptainer. Il est régi par Slurm, un système de gestion des tâches (appelés jobs) sous forme de files d’attente. Vous pouvez accéder au cluster soit en ligne de commandes via un terminal, soit graphiquement via votre navigateur web, sur JupyterHub ou Open onDemand. Ce cluster facilite les analyses lourdes tout en respectant les standards FAIR (Findable, Accessible, Interoperable, Reusable) et les contraintes de sécurité.

 

Vous trouverez ci-après une procédure simplifiée pour vous connecter de façon autonome, et ci-dessous une documentation complète :

https://ipop-up.docs.rpbs.univ-paris-diderot.fr/documentation/
https://parisepigenetics.github.io/bibs/cluster/ipopup/#/cluster/

 

Vous pouvez également consulter une description détaillée de l’architecture du cluster via le lien suivant :

https://ipop-up.docs.rpbs.univ-paris-diderot.fr/documentation/cluster-desc/

1. Obtention d’un compte et d’un projet

Pour travailler sur le cluster, vous devez détenir un compte utilisateur et être rattaché à un projet. Vous pouvez soit demander à rejoindre un projet existant, soit demander la création d’un nouveau projet sur le cluster. Les demandes se font via l’onglet “Forum“, qui vous redirige sur le forum de RPBS, ou bien par e-mail à l’adresse ipop-up-account-request@rpbs.univ-paris-diderot.fr.

 

Pour toute demande, il vous faudra indiquer :

  • vos nom, prénom, unité, adresse institutionnelle, adresse mail professionnelle (@u-paris.fr, @u-pariscite.fr, @etu.u-paris.fr …)
  • le nom du projet (acronyme),
  • une estimation de l’espace disque requis (sinon une taille par défaut vous sera attribuée),
  • le type de données (quelle analyse faites vous ?),
  • et éventuellement les utilisateurs à associer au projet.

Une fois créé, vous recevrez par e-mail vos identifiants (pseudo, mot de passe et nom de votre projet). Attention, ces identifiants sont à conserver absolument car ils vous seront nécessaires pour travailler sur le cluster.

2. Connexion et configuration initiale

Pour des informations plus détaillées, vous pouvez consulter la documentation complète du cluster iPOP-UP@RPBS.

a) Accès en ligne de commandes, via SSH

Pour accéder au cluster, munissez-vous de vos identifiants, puis :
– si vous êtes sur Mac/Linux : ouvrez un terminal,
– pour un PC sous Windows : utilisez PuTTY, Ubuntu LTS, ou encore WSL

et entrez la commande suivante :

ssh <votre_pseudo>@ipop-up.rpbs.univ-paris-diderot.fr

Après avoir lancé votre commande, saisissez votre mot de passe pour finaliser votre connexion au cluster. Par sécurité, votre mot de passe ne s’affiche pas.

 

Vous êtes maintenant connecté au cluster via le terminal. Cette connexion initialise votre espace utilisateur et vous place sur le nœud de login ipop-up.docs.rpbs.univ-paris-diderot.fr

 

Vous devez maintenant définir le projet sur lequel vous travaillerez, avec la commande :

sacctmgr update user $USER set defaultaccount=<votre_projet>

Vous venez d’indiquer au cluster que, pour la suite, vous travaillerez sur l’espace de travail alloué pour le projet <votre_projet> (à remplacer par le nom du projet que vous avez obtenu à l’étape 1). Si vous voulez changer de projet, il faudra en demander sa création puis réutiliser la commande ci-dessus.

 

b) Accès via JupyterHub

Un service JupyterHub est également disponible pour une utilisation simplifiée du cluster. Vous y accéder via navigateur web, à l’adresse https://jupyterhub.rpbs.univ-paris-diderot.fr.

Vous y retrouvez tous les fichiers que vous avez stockés sur le cluster, dans une arborescence graphique qui facilite leur manipulation et leur téléchargement. Pour mener vos analyses, vous avez accès à des Jupyter Notebooks (Python, R ou Bash), à Rstudio, ainsi qu’à des consoles (Python, Bash, R) et des terminaux de commandes.

Pour accéder à JupyterHub, vous devez vous connecter en utilisant vos identifiants de connexion au cluster. Ensuite, vous devez “lancer un serveur”. Pour cela, sélectionnez le projet sur lequel vous souhaitez travailler, et indiquez le nombre de CPU, la quantité de mémoire et le temps de fonctionnement de votre serveur JupyterHub. (Pour les curieux, il faut préciser les ressources à allouer car lancer un serveur JupyterHub s’apparente à lancer un job sur le cluster. On appelle ce genre de job sur cluster, des jobs interactifs.)

 

c) Accès via Open onDemand

Enfin, vous pouvez accédez au cluster en passant par le service Open onDemand, une autre interface graphique facilitant l’utilisation du cluster. Vous y accéder via navigateur web, à l’adresse https://ondemand.rpbs.univ-paris-diderot.fr/.

Similaire à JupyterHub, vous y retrouvez vos fichiers stockés sur le cluster dans une arborescence graphique qui facilite leur manipulation et leur téléchargement. Pour mener vos analyses, vous avez accès à des Jupyter Notebooks, à Rstudio, à Visual Studio Code (VScode), et notamment à un outil facilitant la création et la soumission de jobs, Job Composer. Enfin, vous pouvez consulter en temps réel l’occupation du cluster et la disponibilités de ses ressources de calcul.

Pour accéder à Open onDemand, vous devez vous connecter en utilisant vos identifiants de connexion au cluster. Une fois connecté, si vous souhaitez utiliser un Jupyter Notebook, Rstudio ou VScode, vous devez indiquez le projet sur lequel vous voulez travailler, le nombre de CPU, la quantité de mémoire et le temps dont vous avez besoin. (Pour les curieux, de la même manière que pour JupyterHub, vous êtes en train de créer un jobs interactif.)

Pour en savoir plus sur l’utilisation d’Open OnDemand, vous pouvez consulter le tutoriel de l’IFB.

3. Organisation des espaces de stockage

Le  cluster est organisé de la manière suivante :

  • / : Répertoire à la base de tous les fichiers et dossiers présents sur le cluster.
  • /cold-storage : Stockage de sauvegarde, utile pour archiver les données traitées.
  • /shared : Répertoire regroupant votre espace de travail, vos projets, les banques de données partagées et les outils utilisables sur le cluster.
  • /shared/home : Répertoire regroupant tous les répertoire utilisateurs (le vôtre et ceux des autres).
  • /shared/home/<votre_pseudo> : Votre répertoire utilisateur, non conçu pour stocker des données lourdes.
  • /shared/projects : Répertoire regroupant tous les projets en cours (les vôtres et ceux des autres).
  • /shared/projects/<votre_projet> : Le répertoire de votre projet intitulé <votre_projet>, où vous pouvez stocker toutes les données lié à ce projet, dans la limite de votre quota alloué.
  • /shared/banks : Banque de données partagées, en accès lecture seule — parfait pour les ressources communes (ex. génome mm10.fa).
Explorez l’architecture des dossiers du cluster :

tree -L 1 /shared

ls /shared/banks/genomes/

Tant que vous n’avez pas défini de projet sur lequel travailler, lorsque vous vous connectez au cluster vous êtes placés par défaut dans le répertoire /shared/home/<votre_pseudo>. Cet espace n’est pas fait pour y stocker vos données.

 

Lorsque vous avez défini le projet sur lequel vous travaillez, quand vous vous connectez au cluster vous êtes placés par défaut dans le répertoire /shared/projects/<votre_projet>. Vous pouvez y déposer l’ensemble des données liées à ce projet, dans la limite du quota qui vous est alloué.

 

Vous pouvez vérifier votre quota avec :

lfsquotas <votre_projet>

status_bars

Si vous manquez de place et/ou souhaitez archiver vos données, celles-ci peuvent être stockées sur le cold storage du cluster. Attention, le cold storage n’est pas dynamique. Veuillez vous rapprocher du gestionnaire du cluster pour connaître les modalités d’archivage et de consultation (consulter le Forum).

 

Enfin, il est important de garder à l’esprit qu’aucun système de sauvegarde “backup” n’est actuellement en place sur le cluster. Veillez donc à conserver une copie de vos scripts, pipelines et résultats importants sur un autre espace de stockage que le cluster.

4. Dépot et retrait de données

a) En ligne de commandes : scp et rsync

Pour déposer vos données sur le cluster ou les rapatrier, vous pouvez utiliser différents outils en ligne de commande, tels que les logiciels clients scp ou rsync (plus flexible, permet de reprendre les transferts interrompus).

 

Pour déposer les données de votre ordinateur sur votre espace projet du cluster, utilisez au choix :

scp -r /chemin/vers/dossier/local <votre_pseudo>@ipop-up.rpbs.univ-paris-diderot.fr:/chemin/vers/dossier/cluster

rsync -avz /chemin/vers/dossier/local <votre_pseudo>@ipop-up.rpbs.univ-paris-diderot.fr:/chemin/vers/dossier/cluster​

Pour rapatrier des éléments du cluster vers votre ordinateur, utilisez au choix :

scp -r <votre_pseudo>@ipop-up.rpbs.univ-paris-diderot.fr:/chemin/vers/dossier/cluster /chemin/vers/dossier/local

rsync -avz -e ssh <votre_pseudo>@ipop-up.rpbs.univ-paris-diderot.fr:/chemin/vers/dossier/cluster /chemin/vers/dossier/local

Les arguments utilisés pour scp sont les suivants :
-r : copie récursivement

 

Les arguments utilisés pour rsync sont les suivants :
-a : mode archive (préserve les permissions, timestamps…)
-v : verbose
-z : compression

 

Recommandation :
Il est recommandé de réaliser un md5sum avant et après le téléchargement pour s’assurer de l’intégrité des fichiers.

 

b) Avec un outil graphique : FileZilla

FileZilla est un logiciel client FTP, FTPS et SFTP gratuit et open source. Il permet de transférer facilement des fichiers entre un ordinateur local et un serveur distant (envoi de fichiers, mise à jour de contenus, sauvegardes, etc.).

Compatible avec Windows, macOS et Linux, FileZilla est largement utilisé pour sa fiabilité et sa simplicité. Il offre une interface intuitive, la gestion des connexions sécurisées, ainsi qu’un historique et une file de transfert efficaces.

Pour apprendre à configurer et utiliser FileZilla pas à pas, consultez directement le tutoriel officiel sur le site de FileZilla, régulièrement mis à jour.

5. Soumission d’un premier job Slurm

Pour utiliser les ressources de calcul du cluster, vous devez soumettre vos demandes d’analyse dans un script Bash. Ce script Bash doit contenir les instructions nécessaires aux analyses voulues (téléchargement des données, vérification de la qualité des données, alignements des séquences …) sous forme de lignes de commandes bash. Chaque soumission de ce script bash au cluster constitue ce qu’on appelle un job.

a) Créer un script simple

Avec l’éditeur de texte de votre choix, créez le fichier suivant, nommé lePremierScript.sh, puis déposez-le dans votre espace projet, sur le cluster.

#!/bin/bash
#SBATCH --partition=ipop-up
#SBATCH --account=<votre_projet>
#SBATCH --job-name=test_job

echo "Hello iPOP-UP!"
Pour la suite des étapes, assurez-vous d’être placé dans votre espace projet sur le cluster, dans le même dossier que votre script lePremierScript.sh.

 

b) Lancer le job

Lancez maintenant votre 1er job sur le cluster en soumettant votre script via la commande suivante :

sbatch lePremierScript.sh

Puis surveiller son avancement : squeue, lister la sortie avec slurm-<jobid>.out
Vérifier le fichier de sortie : lePremierScript.out.

Un exemple plus complet est disponible avec un script générant et triant des nombres aléatoires : ipop-up.docs.rpbs.univ-paris-diderot.fr.

c) Suivre l’avancé des jobs avec Slurm

Une fois vos jobs soumis sur le cluster, il est important de savoir les suivre, gérer et analyser leur efficacité. Slurm fournit plusieurs commandes utiles :

  • Voir les ressources disponibles : sinfo affiche les partitions (groupes de ressources comme “fast”, “long”, etc.) et leur état.
  • Suivre vos jobs : squeue montre les jobs en cours. Vous pouvez filtrer les vôtres avec squeue –user=$USERou squeue –me  (PD: Pending, R: Running, C: Completed)
  • Annuler un job : scancel <jobID> permet de stopper un job en cours (utile si vous vous êtes trompé dans votre script).
  • Consulter les statistiques d’un job terminé : sacct –format=JobID,State,CPUTime,MaxRSS fournit un résumé de l’état, du temps CPU et de la mémoire utilisée.
  • Évaluer l’efficacité d’un job : seff <jobID> donne directement un bilan clair sur l’utilisation des ressources (temps CPU, mémoire).
  • Vérifier les fichiers de sortie : par défaut, Slurm écrit les résultats dans des fichiers nommés slurm-<jobID>.out. Si vous avez défini une directive #SBATCH –output=script1.out, vous pouvez consulter ce fichier pour vérifier la sortie du job.

Enfin, Slurm permet de gérer des job arrays, c’est-à-dire des lots de jobs similaires soumis en une seule commande. On ajoute alors une directive comme #SBATCH –array=0-10 dans le script, ce qui permet par exemple de traiter automatiquement une série de fichiers en parallèle.

6. Utilisation de logiciels sur le cluster

Vous aurez sûrement besoin de nombreux logiciels pour mener vos analyses (Python, R, Cutadapt, Bowtie …). Sur un cluster de calcul comme iPOP-UP, vous n’avez pas le droit d’installer directement des logiciels. Pour accéder aux logiciels dont vous avez besoin, vous devez utiliser soit des environnements logiciels, soit des conteneurs.

a) Via des outils de gestion d’environnement : Modules et Conda

Modules et Conda sont des gestionnaires d’environnement logiciels que vous pouvez utiliser sur le cluster iPOP-UP. Ils vous permettent de créer, de télécharger, et d’activer des environnements logiciels.

Un environnement logiciel est ensemble de logiciels et leurs dépendances, compatibles entre eux. Un environnement est soit activé, soit désactivé. Lorsqu’un environnement est activé, vous avez accès à tous les logiciels qu’il contient (et vice-versa). Plusieurs environnements peuvent être activés en même temps, du moment qu’ils sont compatibles. Pensez donc bien à désactiver un environnement lorsque vous n’en avez plus besoin.

Plusieurs environnements logiciel sont déjà accessibles sur le cluster iPOP-UP. Vous pouvez les utiliser à votre guise. Si ce dont vous avez besoin ne s’y trouve pas, vous pouvez importer ou créer vos propres environnements logiciels.

Avec module load, vous activez un logiciel pré-installé sur le cluster. C’est rapide et simple : en tapant module load python/3.10, vous rendez disponible une version de Python sans rien installer vous-même. Cette méthode est pratique pour les outils courants, maintenus et testés par les administrateurs, mais vous êtes limité aux versions qu’ils proposent.

  • Liste des logiciels disponibles : module avail , si vous cherchez à savoir si un logiciel en particulier est installé module avail <nom_du_logiciel>
  • Charger un outil : module load <nom_du_logiciel>
  • Pour avoir la liste des logiciels chargés dans votre environnement : module list
  • Nettoyer l’environnement en enlevant tous les modules : module purge

Avec Conda *, vous créez vos propres environnements isolés dans lesquels vous installez les versions exactes des logiciels dont vous avez besoin. Cela vous permet d’éviter les conflits entre projets et d’assurer la reproductibilité de vos analyses. Conda est plus flexible que module load, mais nécessite un peu plus de gestion (installation, espace disque).
Avec Conda, il existe deux approches pour créer un environnement. La première consiste à commencer par un langage (par exemple Python ou R), puis à ajouter les paquets nécessaires. Par exemple : conda create -n monenv python=3.10, puis conda activate monenv, et enfin conda install numpy pandas. La seconde approche consiste à demander directement des paquets, Conda ajoutant automatiquement le langage et les dépendances nécessaires. Par exemple : conda create -n bioinfo -c bioconda fastqc bowtie2 samtools, puis conda activate bioinfo.

Commandes de base Conda indispensables

Quelques commandes simples permettent de gérer efficacement vos environnements. Pour lister les environnements existants : conda env list. Pour installer un paquet dans l’environnement actif : conda install nom_paquet. Pour rechercher un paquet dans un canal (par exemple bioconda) : conda search -c bioconda nom_paquet. Pour exporter un environnement et le partager : conda env export > environment.yml. Enfin, pour supprimer un environnement : conda remove -n monenv –all.
En résumé : utilisez module load pour les logiciels standards déjà disponibles sur le cluster, et Conda si vous avez besoin de versions spécifiques ou d’un environnement reproductible adapté à votre projet.

* Conda est un gestionnaire de paquets et d’environnement multiplateforme capable de gérer n’importe quel langage et s’occupe de gérer les dépendances. Vous pouvez en apprendre plus grâce à 3 articles sur bioinfo-fr.net : Conda et le piege de la licence anaconda, Conda le meilleur ami du bioinformaticien et Comment fixer les problèmes de déploiement et de durabilité des outils en bioinformatique ? Indice : conda.

b) Via un outil de conteneurisation : Apptainer

En plus de module load et de Conda, il existe une troisième manière d’utiliser des logiciels sur le cluster : les conteneurs. Avec Apptainer (anciennement Singularity), vous pouvez exécuter un logiciel dans un environnement entièrement reproductible, empaqueté sous la forme d’une image unique. Cette image contient le logiciel lui-même ainsi que toutes ses dépendances, ce qui garantit que le programme fonctionnera de la même manière quel que soit le cluster ou l’ordinateur où vous l’exécutez.
Concrètement, un conteneur fonctionne comme une boîte fermée dans laquelle tout est déjà installé et configuré. Il existe de très nombreuses images prêtes à l’emploi pour la bioinformatique, notamment sur la plateforme Biocontainers, qui fournit des conteneurs pour la plupart des outils connus (fastqc, bowtie2, samtools, etc.). Vous pouvez aussi récupérer directement des images depuis Docker Hub ou Quay.io, puis les utiliser avec Apptainer.
Par exemple, pour télécharger et exécuter une image contenant bowtie2, on peut créer un dossier pour stocker ses conteneurs, puis lancer une commande comme : apptainer pull bowtie2.sif docker://quay.io/biocontainers/bowtie2:2.4.1–py37h8270d21_3, suivie de apptainer run bowtie2.sif bowtie2 –help. Le logiciel bowtie2 s’exécute alors dans son conteneur, avec toutes les dépendances déjà intégrées.

Quand utiliser un conteneur ?

  • vous avez besoin de garantir la reproductibilité exacte d’une analyse,
  • vous voulez partager un environnement complet avec vos collègues,
  • le logiciel que vous souhaitez utiliser est complexe à installer via Conda,
  • vous voulez être sûr que la même version fonctionnera sur différents clusters ou ordinateurs.

Commandes de base Apptainer

  • Cherchez une image bioinfo sur Biocontainers, Docker Hub ou Quay.io.
  • Télécharger cette image avec apptainer pull monlogiciel.sif docker://chemin/vers/image. Exemple : apptainer pull bowtie2.sif docker://quay.io/biocontainers/bowtie2:2.4.1–py37h8270d21_3.
  • Exécuter un logiciel à l’intérieur d’un conteneur avec apptainer run monlogiciel.sif commande. Exemple : apptainer run bowtie2.sif bowtie2 –help.
  • En cas de besoin, entrez directement dans le conteneur avec apptainer shell monlogiciel.sif.
  • Exécuter un conteneur en mode “exécution directe” : apptainer exec monlogiciel.sif commande.
  • Lister vos images locales : ce sont simplement les fichiers .sif téléchargés (par exemple avec ls).

7. Pipelines et reproductibilité

Lorsque vos analyses deviennent plus complexes, vous avez souvent une suite d’étapes à enchaîner : préparation des données, contrôle qualité, alignement, analyse statistique, etc. Écrire et lancer chaque commande à la main est possible, mais cela devient vite difficile à maintenir, à partager et surtout à reproduire. C’est là qu’interviennent les workflows managés : des systèmes qui automatisent l’exécution de vos analyses étape par étape.
Un pipeline est une description structurée de toutes les étapes nécessaires à une analyse, avec les logiciels utilisés et les dépendances associées. L’intérêt est double :

  • Reproductibilité : n’importe qui peut relancer le même pipeline et obtenir les mêmes résultats.
  • Automatisation : le workflow gère les dépendances, l’ordre des étapes et l’exécution sur le cluster via Slurm permettant aussi la parallélisation des processus, ce qui évite les erreurs manuelles.

Il existe plusieurs outils majeurs dans ce domaine :

  • Nextflow : Nextflow est un moteur de workflows open source conçu pour l’exécution de pipelines de traitements de données. Il s’intègre très bien avec Conda et les conteneurs.
  • Snakemake : inspiré de Make, il permet de définir vos pipelines en Python sous forme de règles.

La communauté nf-core fournit des pipelines bioinformatiques prêts à l’emploi.

8. Déconnexion

La façon dont vous vous êtes connecté au cluster, guide la façon dont vous allez vous y déconnecter. 

a) Accès en ligne de commandes, via SSH

Vous êtes connecté via un terminal de commandes au cluster. Attention, si vous fermez le terminal, vous quittez brusquement votre connexion au cluster.
Si vous voulez quittez proprement le cluster, tapez la commande :
exit

10. Conseils pratiques

  • Choisir le bon espace de travail : ne lancez jamais vos jobs dans votre répertoire home (/home/<votre_pseudo>), car il est limité et non adapté aux calculs. Utilisez toujours votre répertoire projet : /shared/projects/<votre_projet>. Si besoin, créez un sous-dossier tmp.
  • Limiter les entrées/sorties (I/O) : évitez de générer des milliers de petits fichiers.
  • Surveiller les quotas : utilisez quota et du -sh.

À lire aussi

Tests multiples et correction de la p-value

Tests multiples et correction de la p-value

Vous avez peut-être déjà entendu parler de ces termes, ou peut-être pas, chacun suit son propre chemin. Mais comme il s'agit de concepts essentiels pour comprendre et utiliser les p-values, j'espère que ce tutoriel vous sera utile, qu'il s'agisse d'une remise à niveau...

Tests multiples et correction de la p-value

P-value : une introduction

Si vous travaillez en bioinformatique, je suis absolument certain que vous avez déjà rencontré des p-values. Et si ce n’est pas encore le cas, cela viendra ! Presque tous les tests statistiques vous fourniront une p-value pour évaluer le résultat. Et bien que l’on...