 Bonjour, Maxine Versa de Secara Labs, encore ici aujourd'hui. Et donc aujourd'hui pour la session 2, on va commencer par une introduction à NFCore. Après on verra NFCore pour les utilisateurs, puis NFCore pour développeurs, et on va finir par regarder un petit projet, le projet NFCore Modules et les subwarclos pour voir un peu comment c'est utilisable en détail par tout le monde, enfin, que ce soit au sein de NFCore ou au sein de votre propre pipeline de NFCore. Donc NFCore, hop, là, commençons. Donc pour moi, vraiment, la notion clé au sein de NFCore, c'est la reproducibilité. Et c'est vraiment quelque chose qui me tient à cœur. Moi c'est pour ça que j'aime bien remettre cette slide à chaque fois, parce que c'est vraiment quelque chose qui est super important pour moi. Et pour moi, c'est vraiment la raison pour laquelle on a créé NFCore. Donc NFCore, c'est un effort communautaire pour collectionner un ensemble de pipeline d'analyse qui ont été construits visant de nextflow. Le NFCore, c'est pour nextflow. Et Core, c'est pour les Core Facilities, c'est-à-dire les plateformes de séquençage, parce que c'est ce genre d'infrastructure qui est à l'origine de NFCore. Nous, nous étions au sein de NGI, National Dynamics Infrastructure, en Suède, Astocolm. Et nous sommes une plateforme de séquence. C'est toujours une plateforme de séquence. On avait un ensemble de pipeline déjà commencé en nextflow. Et au fur et à mesure qu'on a commencé à communiquer dans le monde de nextflow, on a rencontré d'autres personnes au sein de structures similaires. Et on s'est dit, plutôt que de chacun développer nos pipelines séparément, on va se mettre tous ensemble et développer un seul set de pipeline. Et c'est comme ça qu'a été créé NFCore. Donc on est une communauté qui grandit. Là, je pense qu'on était à peu près, je ne sais pas combien, on va dire 300, 400, on va dire à l'époque. C'est une slide un petit peu vieille. On est en consent d'évolution. Je crois que maintenant sur GitHub, on est à peu près élu sans. J'aurai des chiffres plus détaillés plus tard que je vais pouvoir montrer. Donc pour nos utilisateurs, nous, ce qu'on va vraiment fournir à nos utilisateurs, c'est des pipelines avec des réalises stables de la documentation. De l'intégration continue pour être relativement sûre que le code soit de bonne qualité et qu'il marche. Ce qui va nous permettre bien évidemment d'avoir du code stable. Et enfin, après, c'est tout un cercle virtuel qui se met en place. Tous les outils que nous utilisons au sein d'un NFCore vont être package au sein d'un environnement Conda. On se repose beaucoup sur les communautés et on participe d'ailleurs beaucoup aux communautés Bioconda et Biocontainers. Donc on va utiliser Biocontainers qui mirror en fait Bioconda. Donc dès qu'un outil est réalisé sur Bioconda, il y a une construction automatique d'un container qui se fait sur Biocontainers. Et donc nous au sein d'un NFCore, on va vous permettre d'utiliser très facilement un outil avec directement le package Bioconda ou le container créé sur Biocontainers que ce soit en docker ou en singularity parce que Galaxy mirror tous les packages de docker de Biocontainers directement en singularity. Et donc bien évidemment tout ça nous permet d'avoir des pipeline portables utilisables où vous voulez et bien évidemment dans le cloud également. Pour les développeurs, c'est vraiment un ensemble communautaire où on est tous ensemble pour collaborer. Le grand principe d'un NFCore c'est vous avez besoin de quelque chose. On va vous aider à faire tout ce que vous voulez pour l'avoir et le but c'est vraiment de collaborer avec quelqu'un ou avec d'autres gens ou même tout seul s'il n'y a personne qui peut vous aider pour ça. Mais généralement on est quand même nombreux à faire ça et le but c'est ça va plutôt être de rajouter des fonctionnalités sur quelque chose d'élégistant plutôt que de développer quelque chose de nouveau pour ce qui va nous permettre d'améliorer à chaque fois le pipeline d'analyse et de garder vraiment un set de pipeline qui vont plutôt essayer de former des bonnes méthodes d'analyse. Donc c'est vraiment le but qu'on a à ce niveau là. Donc après bien évidemment tout ce qu'on fait ici se discute en communauté vous n'êtes pas d'accord à ce qu'on fait, on en discute et à un moment donné il y a bien quelqu'un qui va changer d'avis et on va améliorer des choses. Moi je discute régulièrement sur quand même le chose ici au sein de NFCore je change la vie régulièrement sur beaucoup de questions des fois j'ai un avis un peu plus ferme sur d'autres choses des fois je suis moins ferme mais ça m'intéresse toujours de voir qu'est-ce que les autres en pensent et d'en discuter et de collaborer et de discuter de toute façon toutes les discussions que nous prenons sur une discussion qu'on prend en communauté donc des fois ça m'arrive pas forcément d'accord avec une discussion qu'on appuie mais je vais les suivre quand même parce que c'est ce qui a de mieux pour le projet on est d'accord, on est ensemble dans cette histoire. Donc NFCore on va fournir pour tous nos utilisateurs des pipeline donc c'est les pipeline dont je vous ai parlé précédemment qui sont des pipeline prêts à l'emploi et oui, c'est tout ce que je veux dire là-dessus je vais détailler tout ça plus tard mais là pour l'instant c'est vraiment juste ça on a de la documentation donc la documentation bien évidemment pour les pipeline mais on aide aussi de la documentation générale sur Nexco on aide aussi via des tutoriels donc comme celui auquel vous en avez assisté des vidéos comme celle-là que vous voyez aujourd'hui on a aussi des vidéos hebdomadaire le mardi, alors une heure si vous êtes sur un flux de horaire Paris sinon ça a une autre heure mais de façon toutes est disponibles sur YouTube où on va présenter un élément de la communauté que ce soit un pipeline une fonctionnalité précise au sein de NFCore ou même des fonctionnalités ou des projets hors NFCore nous avons créé des modules qui vont être du code qui va nous permettre d'encapsuler et d'avoir ça de façon modulaire un outil donc on va encapsuler tout ça, toute la commande ou les sous-commandes d'un outil en particulier avec toutes les dépendances besoin pour cet outil c'est-à-dire l'environnement Kanda, les containers, etc et aussi on va donner des informations sur combien de ressources cela peut consommer dans cet outil les sub-workflows, c'est-à-dire les sous-workflows sont un ensemble de modules donc on va rattacher plusieurs modules les uns, les autres, ce qui va nous faire un sub-workflow tous ces modules et ces sub-workflows sont utilisables bien évidemment quand vous faites un pipeline NFCore mais utilisables aussi si vous voulez faire votre pipeline de votre côté vous n'avez pas besoin de faire un pipeline NFCore pour utiliser des modules créés par NFCore et c'est vraiment quelque chose dont je suis assez fier on collabore à une communauté plus grande que uniquement nous et c'est quelque chose que j'aime bien on a des configurations à peu près pareilles mais on a mis au sein d'un NFCore ce système où on peut partager au sein d'une infrastructure notre fichier de configuration qui va configurer toutes les informations sur la consommation de ressources pour les pipelines NFCore ou Nexlo et c'est vraiment quelque chose qu'on va pouvoir partager d'une infrastructure à une autre si vous utilisez pour un pipeline NFCore c'est facile parce qu'on utilise touch le même template pour un pipeline Nexlo non NFCore il va falloir se baser sur certaines informations qu'on a au sein d'un NFCore et réutiliser les mêmes directives nous avons créé aussi au sein d'un NFCore des jeux de données de test qui sont utilisables par une communauté bioinformatique au sens large c'est pas réservé aux gens qui font des pipelines NFCore c'est pas réservé aux gens qui font des pipelines Nexlo c'est vraiment utilisable par tout le monde quel que soit votre bagande c'est vraiment des jeux de données de test donc que ce soit au niveau des échantillons ou au niveau aussi des génomes d'achérence tout est détaillé sur comment ça a été créé pourquoi et les fichiers créés comment je trouve quelle est l'organisation je vous détaillerai ça plus tard bien évidemment et pour finir nous avons un outil Python qui va nous aider pour tout ce qui est LinkedIn template et automatisation de toutes les tâches que l'on va réaliser au sein d'un NFCore d'ailleurs cet outil Python est utilisable pour vous si vous voulez créer un module un sub workflow ou un pipeline et c'est totalement utilisable même si vous ne faites pas de pipeline NFCore pour un pipeline NFCore nous on a des règles plus ou moins précis donc on veut bien évidemment que le pipeline soit créé avec Nexlo qui est une structure commune donc c'est ce que j'ai appelé notre template dans la slide précédente et ce template va vraiment nous permettre d'avoir une logique commune sur l'organisation grosso modo sur l'organisation du pipeline donc ça va vraiment nous permettre d'être sûrs que la façon dont les choses se passent et quand je regarde un pipeline je vais pouvoir dire ah oui on a fait comme ça parce qu'on avait fait comme ça aussi et ça va être beaucoup plus simple de pouvoir juger la qualité d'un pipeline si on est basé sur un squelette commun aussi ça va nous faciliter à créer un pipeline si on a déjà un squelette commun après ce squelette peut être un petit peu paraître complexe quand on débute mais moi je trouve que ça m'a facilité quand même grandement la vie on demande des releases stables ça c'est ce qu'on veut dans NFCore mais je pense que c'est une recommandation valable à peu près pour beaucoup de projets une licence à ma équipe c'est ce qu'on demande de son NFCore ça permet vraiment d'être très simple pour gérer tout ça et ça nous permet s'il y a des gens derrière nous qui veulent commercialiser les pipelines NFCore ça nous pose pas de soucis nous vraiment ça nous permet de travailler en open source à ce niveau-là je suis peut-être pas super à jour niveau des distances donc ils disaient pas même corriger si j'ai des bêtises à ce niveau-là mais moi dans mon optique c'est comme ça que les compris on veut bien évidemment que tous les outils soient packaging pour être reproductibles donc avec Bioconda Biocontainers et Singularity via Elixir via Galaxy tout ça, tout nos pipelines fonctionnent avec de l'intégration continue pour être sûr que le code soit stable et de qualité et la gomme, on veut que les pipelines soient la gomme donc la gomme c'est du chou et d'oie ça veut dire ni trop peu ni trop on veut que nos pipelines soit pas trop petits mais pas trop gros non plus pour vraiment garder une structure commune et faire un pipeline va faire un type d'analyse faire un type de données pour un de cas et donc suivant les cas on va pouvoir peut-être rajouter des fonctionnalités en plus des fois si rajoute des fonctionnalités, ça commence à faire quelque chose de trop gros on va faire de pipeline on est en train de réfléchir on peut y aurais ces idées là notamment si on commence à réfléchir à faire des analyses multi au mix donc ça c'est des questions qu'on se pose au sein d'NF Core c'est des questions que la communauté nous pose et les utilisateurs nous posent donc n'hésitez pas si vous avez des idées à venir nous faire vos retours et poser des questions donc encore NF Core, on organise deux fois par an des tutorials et des hackathons donc là vous êtes un tutoriel celui de mars on va avoir nos 3 hackathons dans 2 semaines et on va refaire la même chose dans 6 mois, donc au octobre à peu près et voilà merci d'être là pour vous joindre à l'aventure cette année le hackathon on organise ça dans différents lieux en même temps donc ça va être très intéressant j'ai hâte de voir comment ça va se passer si vous avez besoin d'aide donc n'hésitez pas à regarder notre site web on est sur Slack notamment je pense que je vous ai demandé hier déjà de joindre un canal Slack dédié pour ce tutoriel en français donc si vous avez des questions des commentaires ou quoi que ce soit n'hésitez pas à aller là dessus on se fera un plaisir de répondre à tout ça on est également sur Twitter sur mastodon ditob et youtube je crois que la vidéo se fera sur youtube donc merci beaucoup d'avoir écouté je vais continuer pour la suite une partie de la deuxième session donc qu'est ce que NF Core pour les utilisateurs donc pour ça je vais re-utiliser euh... mon guide pod je vais juste ouvrir mon workspace pour voir un peu mon engagement guide pod pour voir ce qui va se passer dedans je vais réutiliser les versions de nextflow qu'on avait avant dans le training dans le tutoriel et donc tout devrait se passer de manière relativement simple alors on peut entendre le navigateur voilà je n'ai pas besoin de vos poseurs on va utiliser pour ceci juste un terminal je vais juste effacer tout ce qui avait été créé les jours précédents dont je n'ai pas besoin un terminal outage on n'a pas vraiment besoin voilà au moins on a notre terminal outage donc excusez-moi NF Core donc c'est un ensemble de pipeline on a aussi un outil que l'on fournit est ce que NF Core est installé ici oui alors NF Core comme je l'ai dit ce matin ce n'était pas ce matin pour vous comme je l'ai dit précédemment c'est aussi un outil piton ici on voit qu'il est déjà installé dans son environnement pour l'installer c'est tout sur la site web c'est ici tools l'installation on peut l'installer avec conda on peut l'installer avec pip il y a aussi une image docker donc vous pouvez y aller c'est l'installation devrait être facile voilà ici on a la version je crois que c'est la dernière version qui a été installée et je vais juste montrer cet outil pour montrer un petit peu ce que nous avons de disponibles si je fais NF Core list ça va permettre de lister tous les pipeline NF Core ici je vois tout oh là je vais pas ouvrir j'aime bien double clicker ici tous les pipeline sont détaillés avec le nom du pipeline quand la dernière release a été faite, quelle est la dernière release et le nombre d'issues ici on a un info supplémentaire si on a déjà fait tourner un pipeline NF Core sur notre machine quand c'est qu'on a récupéré qu'on l'a téléferré pour la dernière fois et est-ce qu'on a la dernière release ou pas par exemple c'est en nextflow en ligne de commande pour récupérer un pipeline donc moi un pipeline que j'aime bien c'est Sarek si je fais nextflow pour les NF Core Sarek je demande en fait tout simplement un nextflow de télécharger le pipeline automatiquement et nextflow vous regardez ça en interne dans un rapporteur sur votre machine et si je fais maintenant la même commande avec NF Core list je vais pouvoir voir que effectivement j'ai récupéré Sarek il y a 13 secondes et j'ai effectivement la dernière release donc ça c'est assez intéressant et ça va vraiment vous permettre de voir tous les pipelines disponibles donc ce qu'on a vraiment pour les utilisateurs c'est des pipeline oui donc ça c'est mon chat encore le numéro 2 j'ai un peu rien faire pour empêcher les chats de venir voilà donc ce qu'on peut faire maintenant qu'on a récupéré notre pipeline donc on n'est pas obligé de le récupérer on n'est pas obligé de le récupérer avant j'aime bien faire ça parce que au moins je sais que le pipeline est là je sais que le pipeline est détaillé d'ailleurs ça peut être plus intéressant aussi de vous montrer si je vais sur le site de NFCore que je vais ici dans l'onglet pipeline on a tous les pipelines ici on a essayé de détailler pour chacun des pipelines à quoi il correspond donc avec des étiquettes associées si vous pensez que certains pipelines sont pas assez détaillés ou sont peut-être mal placés n'hésitez pas à revenir vers nous on ajoutera des informations et on n'hésite pas à ajouter la documentation là par exemple ici je vois que ce pipeline NFCore Differential Abundance n'a aucune étiquette donc il va falloir ajouter des tags ça n'a pas du tout donc voilà c'est vraiment tous les pipelines ici on voit avec ce petit symbole c'est les pipelines qui ont été archivés ici avec ce symbole là c'est les pipelines qui sont en cours de développement voilà plus on va dans la ligne plus profondément on va dans la ligne plus on va sur les vieux pipelines donc utilisez un pipeline excusez moi j'ai trop de fenêtres voilà ici donc on développe tous nos pipelines tous nos pipelines en ligne, tous nos pipelines avec des profils de test qui vont nous permettre de faire marcher nos pipelines juste pour tester et montrer que ça marche si je fais ça avec Sarek j'utilise minus profile ah oui j'ai oublié d'écrire run donc si je fais nextflow run NFCore Sarek tiré profile test vers guldocker je demande ici un explo de donc de récupérer d'utiliser voilà tout ce qui s'est passé d'utiliser NFCore Sarek et d'utiliser un profil en particulier avec c'est de profil en particulier donc test ça va juste dire dans Sarek de récupérer toutes les données qu'il faut c'est des données de test donc les données de test que j'ai détaillées tout à l'heure et docker pour dire d'utiliser docker donc là ici ici nous avons toutes les infos pour Sarek ici en fait nous affichons toutes les infos qui sont différentes données par défaut donc on voit que c'est effectivement juste quels sont nos fichiers d'entrée notre fichier de sortie les options principales et après quels sont mes génomes de référence donc ici vu que c'est un jeu de données test nous n'avons pas de génomes de référence enfin on a un génome de référence mais c'est un jeu de génome de référence qui n'a pas de nom et donc toutes les données se continuent toutes les informations se continuent ici on voit que le pipeline a beaucoup de différents process et ici tout est en train de s'exécuter donc j'ai un premier process ici qui a été exécuté un second process qui est exécuté et ça continue il y a des process qui ne sont pas exécutées au fur et à mesure ça dépend vraiment de des paramètres d'entrée donc là on va attendre un petit peu pour voir que ça continue et donc c'est terminé et on a bien tous les process qui sont terminés sans soucis un nouveau dossier a été créé qui va conduire toutes les informations de résultats et après c'est vraiment comme un pipeline Neckflow, une églécition si je veux par exemple faire tourner le pipeline RNA-SEC j'ai qu'à remplacer ça avec par RNA-SEC et dans ce cas là la ligne de commande reste la même je spécifie juste les nouveaux profils que je vais utiliser c'est à dire test et docker et un pipeline d'entrée qui est NFCore RNA-SEC et donc ici ce qui va se passer comme tout à l'heure Neckflow qui est un pipeline et on va le faire marcher avec les jeux de Neck test donc comme on a vu de tout à l'heure les seules options qui sont affichées ici sont les options qui sont différentes des options par défaut et la même chose le pipeline se lance donc beaucoup de process possibles alors là c'est pas l'ensemble de tous les process possibles c'est l'ensemble des process dans le cadre de cette exécution suivant les paramètres que l'on donne on va pouvoir avoir certains process qui vont être complètement désactivés mais après Neckflow on n'a aucune idée avant l'exécution de quel process vont être exécuté sauf si on désactive ces process dès le début dans l'exécution dans le script en tant que tel avec notamment des blocs if ou ce genre de choses on va faire vraiment qu'on commence à voir beaucoup beaucoup de process pour essayer d'avoir quelque chose de beaucoup plus clair ici en sortie ligne de commande donc là ça se déroule pareil tout tout se passe donc les différents process se font au fur et à mesure vous l'avez probablement remarqué j'ai juste spécifié docker, je n'ai pas spécifié quoi que ce soit d'autre je pense qu'il y a un pipeline NFCore, c'est que tout est déjà fait pour nous on n'a pas vraiment à s'en charger donc c'est ça vraiment j'aime bien dans nos pipeline c'est que tous les containers sont déjà spécifiés pour nous donc moi sur ma machine personnelle généralement j'installe aussi Singularity et Konda je ne sais pas du tout ce qu'on a ici donc ce que je vais faire j'ai arrêté l'exécution de ce pipeline et j'ai installé en utilisant juste le profil Konda pour voir ce qui peut se passer et tant qu'à faire on va utiliser la fonction region on va voir ce qui se passe alors ce que j'ai fait c'est que j'ai laissé le tourner et puis j'ai arrêté les process et j'ai relancé parce que j'avais un souci j'avais un process qui ne voulait pas démarrer avec Konda sur guide pod donc j'ai peur que notre environnement guide pod n'a pas assez de mémoire vraiment pour créer notre environnement Konda pour ce process là donc à mon avis c'est pour ça qu'il va se bloquer à cette étape là donc ce que je vais faire je vais tout arrêter ici voilà et je vais juste le redémarrer en me disant la fonction region en me disant le profil de cœur donc là c'est vraiment qu'on avait un environnement particulier c'est pour ça que ça ne marchait pas terrible nous enfin ce qu'on a remarqué avec NFCore c'est la plupart du temps les pipeline vont marcher quasiment du premier coup moyennant quelques détails de configuration à spécifier on spécifie par défaut on va dire des ressources qui sont censées marcher dans la plupart des cas sur n'importe quelle infrastructure mais je pense que le problème c'est que sur cette fin de structure ça va marcher sans aucun problème mais vous allez peut-être consommer beaucoup trop ça va dépendre aussi des données que vous allez analyser si par exemple on a développé un pipeline qui marche plutôt sur de l'humain ou de la souris et que vous avez utilisé pour analyser des données bactériennes effectivement la taille de données doit être la même donc niveau des consommations de la source ça va pas du bien être pareil donc à ce niveau là je vais plutôt conseiller de faire un premier run ou même deux trois premiers runs pour voir un petit peu comment le pipeline se déroule voir un peu la consommation et après d'adapter tous les fiés de configuration pour voir vraiment restreindre un peu le pipeline en grande telle donc ici voilà c'est ce que nous avons tous les pipelines à disposition ici je peux montrer beaucoup plus en détail aussi notre outil piton pour montrer à quoi il sert donc l'installation on a vu update ça c'est pour update l'outil aussi on peut voir de l'autocompression pour NFCortul moi j'adore l'étude d'autocompression comme je l'ai dit avant c'est pas mal ce que j'ai déjà fait c'est de lister les pipelines donc ça je vais montrer on va regarder ça plutôt lancer un pipeline ça ça peut être intéressant bon mon pipeline n'a pas eu qui est la fonction résume je sais pas pourquoi donc on va la nuer c'est pas bien grave et on va tenter de voir si NFCort Launch marche sans trop de problèmes alors NFCort Launch ben oui c'est un large je vais lancer un pipeline en remote on va lancer NFCortul l'autocompression marche directement on va lancer Sarek on va choisir une release en particulier la 3.2.1 c'est vraiment un outil qui va nous permettre de manière interactive de récupérer toutes les dons que l'on veut donc on va lancer notre pipeline je vais lancer en ligne de commande parce que je ne pense pas pouvoir accéder facilement à un navigateur internet dans mon environnement goodpod mais si vous utilisez ici la fonction webbase ça va vous ouvrir un navigateur internet si vous faites ça en local vous allez pouvoir vraiment contrôler les paramètres avec une interface graphique donc là ici en ligne de commande je vais juste spécifier un profil docker et test ça c'est vraiment tout ce qui est par défaut en nous dire je vais mettre result continue continue là il me prépose vraiment toutes les options possibles et imaginables pour tout le workflow voilà donc c'est vraiment une interactive à ce niveau-là et moi j'aime bien commencer je vais parce que ça marche bien et c'est pratique après voilà moi j'ai plutôt tendance à taper tous mes paramètres avant ou les taper directement dans une commande parce que généralement je sais ce que je veux faire et dans ces cas-là ça permet de vérifier qu'on n'a pas oublié à quoi que ce soit ce qui peut être quand même pratique je vais juste en profiter je vais regarder quelles sont les autres possibles derrière oui télécharger un pipeline pour utiliser dans environnement sécurisé ça vous permet de télécharger tout le code du pipeline ainsi que toutes les configurations et ainsi que tous les containers singularity ce qui va vous permettre de récupérer tout ça et de transférer tout ça sur cluster sécurisé pour pouvoir exécuter votre pipeline sans aucun problème ici c'est toujours en cours de réflexion je ne sais pas pourquoi c'est pour autant de temps on va continuer à regarder voilà donc comme je l'ai dit précédemment on va pouvoir télécharger les configurations on va pouvoir télécharger éventuellement aussi les containers singularity ce que l'on peut faire c'est utiliser un répertoire de cache pour avoir toutes les images singularity dans le même réparateur ce qui va être très pratique pour des pipeline qui vont partager certaines images singularity au moins vous n'avez pas besoin de télécharger les images plusieurs fois ça c'est utile aussi non ça ne marche pas pour l'instant on va falloir qu'on mette toujours on n'a pas encore mis la jour pour les versions les plus récentes des pipeline utiliser ça pour créer un nouveau pipeline je vais montrer ça plutôt dans la session d'après que je te mise à la création de pipeline pareil ça va être la session d'après faire du Linux ça va être la session d'après tout le reste plutôt la session d'après ce que je vais faire je vais plutôt regarder ici ça m'a l'air d'avoir planté ici je vais pas marcher une pipeline ça rec non il m'a déjà trouvé un fichier donc je vais pas le continuer en fait ce que ça m'a fait c'est que ça m'a créé ici un fichier diesel qui contient toutes les infos dont pipeline a besoin pour se lancer alors sauf que je me rends compte qu'il est oublié des choses dans la vie c'est pour ça que ça parvait dans mon avis c'est vraiment une option donc je vais juste lancer le pipeline en normal comme on l'a fait déjà précédemment next flow run mhc ça rec minus r donc moins r 3.1.2 si on fait minus r moins r master ça va nous télécharger nous renait j'ai pu tester la dernière release moi j'ai tendance plutôt vraiment à spécifier une release en particulier pour être sûr d'être productible je rajoute mes profils de tête et de coeur si on utilise tout ça non pipeline qui continue j'aurais pu utiliser au lieu de spécifier out of the result j'aurais pu spécifier un next flow utiliser ce fichier là de paramètres je vais juste vérifier que le pipeline se lance bien et je vais faire ça pour vous montrer comment c'est possible là le pipeline s'est bien lancé et je vois bien que ce que j'ai spécifié ici en update est ici donc là je vais quitter ce pipeline ici on va annuler ça et je vais utiliser le paramètre next flow param file il faut utiliser ce fichier json.json qui va vraiment contenir le paramètre que j'ai spécifié juste avant la ligne de commande donc là si je le relance on va avoir exactement le même on va avoir quasiment le même texte ici donc c'est en train de venir et là je vois ça recommencer donc on voit ici toutes les infos que j'ai utilisés, qu'elles ont été les fichiers et là je vois en outdear le result qui est exactement ce qui a été spécifié dans ce fichier là de paramètre donc avec next flow on peut vraiment spécifier les paramètres comme on veut en ligne de commande dans un fichier de configuration ou même dans un fichier juste de paramètres qui va contenir tous les paramètres ce qui permet d'être très flexible ce qu'on va faire donc là je pense qu'on a terminé tout ce côté ici arrêter tout ça niveau tools j'ai déjà tout montré ce qu'il y avait à montrer pour cette session là donc site web on a déjà vu on a vu qu'on avait un site web développeur ça va être la session juste après on va voir ça continuons ici le site web est vraiment une mine d'or il y a vraiment toute plein d'infos à ce niveau là niveau des documentations on a tout plein d'informations on sait comment installer tout ce dont on a besoin d'installer gérer nos données gérer les genomes de référence bien configurer les pipeline que faire quand on a des bugs ou chercher comment nous aider à développer etc etc etc vraiment toutes les infos que vous voulez sont là après comme je l'ai dit précédemment il y a une page ici qui va détailler tous les événements donc on a en ce moment ces tutoriels on va voir dans deux semaines un hackathon et régulièrement chaque semaine donc là effectivement pas cette semaine là vu qu'on fait le training mais la semaine prochaine on est de retour les bytesize qui va être vraiment une un petit séminaire un petit talk entre milliers et deux pour vraiment juste présenter un truc particulier dans NFCore donc que ce soit un projet un sujet en particulier ce genre de choses après toutes les informations chez NFCore donc NFCore c'est une organisation github juste ça on est une équipe de membres qui vont administrer cette organisation github et cette communauté et voilà c'est vraiment ce qu'on fait donc ça c'est vraiment nous qui gérons toute la communauté NFCore on est ouvert à avoir des nouveaux membres on a régulièrement d'ailleurs des nouveaux membres qui viennent se rendre à nous ici sont les notamment qui faisaient partie de notre équipe qui n'en font plus partie actuellement on a certaines personnes qui reviennent et qui repartent c'est vraiment assez assez fluide maintainers ça va être vraiment notre équipe de volontaires qui vont nous aider à gérer la communauté au sens large et gérer aussi le code vraiment prendre soin de tous de NFCore on a une équipe outreach qui va vraiment gérer tout le côté communication vers l'extérieur qui notamment gère l'organisation d'Hackathon et des Bitesize on a une équipe sécurité qui si vous remarquez qu'il y a un problème avec qui que ce soit quel que ce soit n'hésitez pas communiquer avec n'importe quel membre de cette safety team ils sont une équipe complètement indépendante on n'a aucun impact sur eux comment ça se passe et tout ils repartent directement d'autres personnes que nous la core team et vraiment si il y a un souci que ce soit le souci n'hésitez pas à en parler on est là pour ça on a un support financier par le Chand Zuckerberg initiative qui nous aide sur toutes les questions d'inclusion et de communication ça nous a permis justement d'avoir un officier safety officer quelqu'un pour gérer tous ces problèmes et ça nous aide aussi à payer Slack ça nous a aidé aussi à payer un développeur pour NFCore et après pareil on a de l'aide aussi pour de la part de Amazon et de micro-sortage pour nous aider à développer nos païcans il y a dix heures qui marchent dans le cloud et on a aussi un financement de la part de la part de la data center pour avoir un développeur ici toutes les histoires de NFCore je pense que je vous ai détaillé sans rentrer trop dans trop dans les profondeurs comment ça s'est passé mais c'est exactement ce que j'ai dit on était vraiment à une plateforme de séquençage on s'est rapproché d'autres plateformes de séquençage et on s'est dit mettons nous tous ensemble pour développer des choses niveau communautaire voilà ça c'est ce que je voulais montrer plus en détail et c'est vraiment tous les membres de la communauté on a un leaderboard qui va être en phase de changer ici on voit qu'on est quand même très impacté très présent en Europe on présent aussi aux Etats-Unis en Asie on commence à s'étendre un petit peu niveau de la myribe du sud on a ça se voit pas sur cette carte j'ai des cartes où ça se voit et le reste du monde et voilà ça commence petit à petit parce qu'on est vraiment des gens qui se rassemblent parce qu'on a le même intérêt donc après c'est plus un effet de bouche à oreille qu'autre chose donc là c'est vraiment tous les instituts qui sont partis de nous de NFCore et donc si vous voulez faire partie de NFCore il suffit juste de nous demander vous vous aide à faire ce qu'il faut pour que vous vous rajoutez on est impliqué dans pas mal de projets au sens large voilà juste à regarder ce niveau-là les testimonials habituels donc c'est les gens qui misent NFCore qui nous ont donné des infos et là les nombres vraiment pour NFCore donc on est plus de 5000 sur Flak, on est presque 600 sur Netob on a pas encore 2000 contributeurs sur Netob mais ça s'approche et on est plus de 3500 sur Twitter niveau du nombre d'utilisateurs sur Flak ça grandit de jour en jour encore plus en ce moment avec les tutoriels les membres aussi sur de leur termination Netob augmente régulièrement pareil pour les followers les contributeurs enfin les contributions que nous avons tout au long du temps on a les comites les issues les commites les issues en vert et les commites et les issues donc toutes les infos que nous avons ici à ce niveau-là et on est une communauté complètement ouverte donc vous voulez avoir des infos toutes les infos sont là on a fait plus de 13000 pour le request plus de 32000 comites plus de 6000 presque 6000 issues je suis assez impressionné par tous ces normes-là et voilà, vraiment toutes les infos vous pouvez voir et ici on a l'interboard on voit vraiment les gens qui contribuent le plus NFCore donc Archive ici contribue beaucoup, notamment sur le pipeline via Lorecon James ici contribue beaucoup notamment sur le pipeline Higger maintenant il va passer beaucoup avec le pipeline Tax Profiler ici ça c'est moi je contribue beaucoup sur le pipeline Sarek et là généralement les premières personnes ici on voit les personnes qui contribuent le plus et ça va être les personnes dont on va se rapprocher naturellement et qu'on va demander si ça les intéresse de faire partie de notre équipe pour administrer NFCore mais d'autres personnes complètement extérieures ass-classement font aussi partie de notre équipe Core notamment ici toutes ces personnes-là ne font pas partie du coeur de NFCore il faut vraiment pouvoir descendre plus bas pour retrouver des personnes qui font partie du coeur de NFCore Rosé ici fait partie de l'équipe d'administration et là vous pouvez voir tout le monde toutes les infos, Schill j'aime beaucoup les stats c'est pour ça qu'on a des stats toutes les stats possible et immagisables surtout les pipeline que vous voyez voilà c'est vraiment une mine de la formation fantastique voilà voilà hop là on va s'arrêter ici donc là je vais faire la partie NFCore pour les développeurs je pense que je vais joindre en même temps la partie NFCore module parce que vraiment module et sub-workflow c'est quelque chose qu'on va vouloir voir pour les développeurs donc ici hop donc avant nous dans l'autre on a voilà ici je suis dans mon répertoire ici du base donc ce que je vais faire alors ce que nous allons faire ici nous allons utiliser NFCore pour créer un pipeline on va créer on va utiliser NFCore Q8 voilà workflow name tutoriel voilà description pipeline de test qui est génial hauteur c'est moi mais et la communauté aussi allez on va faire comu notaire alors ce que j'aime beaucoup avec NFCore tools c'est qu'on va pouvoir customiser les parties du template qu'on va vouloir utiliser le template comme je l'ai précisé avant c'est vraiment notre squelette de base pour un pipeline donc là oui on va vouloir customiser pipeline prefix et si on ne spécifie rien ça va être NFCore donc là on va on va laisser de base je ne sais pas si ça ne va rien nous donner ou si il va garder NFCore voilà il faut un pipeline prefix on va lui mettre NFCore ouais NFCore allez est ce que je veux skipper donc je veux que mon pipeline soit sur github ouais moi j'aime bien ça est ce que je veux qu'ils aient du ci oui je veux qu'ils aient du ci je vais faire l'intégration continue est ce que je veux des badges github sur marini ouais j'aime bien les badges github ça fait joli config agilum aussi aussi et du NFCore config oui on va tout mettre du coup je ne skip aucun de ces étapes là voilà donc là un nouveau dossier vient d'être créé un nouveau dossier vient d'être créé ici NFCore tutorial si je rentre dedans je ne le vois pas je ne le vois pas je ne le vois pas je ne sais pas ce que j'ai fait je ne dois pas être au même niveau ici qu'ici ici j'ai mon NFCore tutorial si je regarde ce qui se passe avec un ls avec un ll je vois qu'on a vraiment déjà tout plein d'infos ici et si je fais un git status plutôt un git log voilà on voit qu'il y a une première il y a un premier comique qui a été créé initial template build from NFCore tools avec la version si il va vraiment permettre après quand il y a des mises à jour du template de mettre à jour le template et vous pouvez vous faire ça sans aucun problème en disant NFCore tools pour mettre à jour votre template je crois que la commande c'est-à-dire NFCore sync on le voit c'est NFCore sync voilà donc là aucun problème ce qui paraît normal vu qu'on n'a fait aucune modification à notre template donc voilà j'aurais bien aimé à refraîcher que je pourrais voilà c'était ça le problème c'est pour ça qu'on voyait donc ici j'ai vraiment tout le template en détail donc pour savoir vraiment à quoi ressemble le template moi ce que j'ai tendance à faire plutôt c'est de regarder comment ça se passe sur github et tout le template github NFCore voilà donc je vais je regarde normalement sur master ou sur sur un tag en particulier le tag de la dernière release pour me vraiment me donner des informations stables sinon je vais pouvoir regarder aussi la branche de développement pour voir un peu ce vers quoi il va évoluer NFCore donc ici tout ce qui est le template va être ici dans NFCore et ici pipeline template donc si je regarde un fichier comme ça en tant que tel je vois qu'il y a plein de caractères complètement bizarres et qu'il ne devrait pas être plat juste notre template va gérer toutes ces informations et va pouvoir renommer tout ça suivant les paramètres qu'on lui donne et donc ça va vraiment faciliter toutes les infos qu'on a pu donner avant vont être remplis ici partout qui va vraiment faire tout ça pour vous donc là ici par exemple vous regardez le rythmie et on voit que le rythmie contient plein d'infos qu'on ne veut pas ici je regarde ici mon rythmie bon là c'est juste un fichier comparable regardons fichier rythmie voilà donc là mon fichier rythmie a plein de codes comme ça avec fichies et tout c'est pas du tout du markdown on voit bien que c'est quelque chose qui va être interprété et qui va être modifié suivant les paramètres qu'on va donner et là on voit que tout ceci n'est plus fait, c'est un code qui est totalement clair donc là on a bien la description que je vais donner moi quand j'ai écrit de pipeline et on a vraiment toutes les infos supplémentaires donc ça va donner tout ça avec les petits vages qu'il faut j'adore ces petits vages sur un rythmie je trouve ça fantastique et donc voilà de base le pipeline qu'on va contenir FastQC et MultiQC parce qu'on considère que NHCore est quand même essentiellement utilisé pour l'instant dans le domaine de la genomie donc c'est pour ça que de base on a mis FastQC et MultiQC je pense qu'à terme on va peut-être se débarrasser de ces outils-là parce qu'on essaye vraiment de s'agrandir et d'aider d'autres communautés à ce genre d'année mais on va avoir vraiment toutes ces infos là voilà donc ici ce que je vais faire je vais changer de branche et je vais passer sur la branche de dev j'ai tendance à faire tout mon développement sur une branche de dev et après fermer pull request de dev de dev sur master et après on relie et bon là voilà on va pas trop se compliquer la vie j'ai juste l'habitude de travailler sur une branche de dev sinon après ça va me perturber j'aime pas désolé nous disons donc ce que je voudrais faire au tout début c'est d'abord de voir si le pipeline marche donc je fais une exporum comme d'habitude ici j'ai mon pipeline qui est en local donc ce qu'on peut faire on va appeler le pipeline main.ns et on va voir si ça marche avec un profil de test et de lockers donc j'ai aucune idée de voir si ça marche ou pas je découvre avec vous je fais vraiment des tests ça ne marche pas parce qu'on a oublié un paramètre requis on rajoute le paramètre requis supplémentaire et là qu'est-ce qui se passe le pipeline s'élance donc on a quand même lui donné des... ah on a on a déjà un sample sheet de démarrage on a déjà des infos de base dans le template c'est assez intéressant je trouve ça pas mal ah donc le template marche en tant que pipeline bon circuit juste pour voir que ça arrive jusqu'au bout ça devrait vraiment poser aucun souci et ça va nous permettre de vraiment vous détailler beaucoup plus ça et on va rajouter aussi un petit process supplémentaire et peut-être d'autres infos aussi voir comment tout ça est détaillé donc là je fais tout sur githpod et pas sur la machine en local malheureusement je vais pas avoir accès parce que je vais pas accès un un indicateur web mais est-ce que j'ai pas accès un indicateur web bon c'est pas bien grave ah d'accord j'ai plusieurs infos de tous les coups j'ai accès à plusieurs désolé je découvre avec vous alors voilà ici j'ai mon navigateur j'ai mon pipeline qui a marché donc on va détailler tout ce qui se passe tous les scripts et tous les détails donc on a tout d'abord un premier dossier caché qui va contenir toutes les informations en nécessaire pour un githpod ou un github code space on va nous dire de quoi on a besoin qu'est-ce qu'il faut installer quelle va être l'image docker a utiliser voilà tout simple c'est pratique quand on veut pouvoir après modifier ou faire tourner des petits bouts d'analyse sur githchand environnement githpod moi vous n'avez pas à vous préoccuper de ça il n'y a pas de soucis github donc ici dans le sous dossier github ça va être toutes les infos qu'on va avoir besoin pour notre intégration continue et pour communiquer avec github on a tout ce qui va être rapport de bug où on a des informations déjà pré-remplies pour nos digitateurs où on a les liens voilà ici comment revenir nos genres slack la même chose pour des demandes de nouvelles features ici dans le dossier workflow ça va être tout ce qui va être utilisé pour faire de l'intégration continue ici docstore c'est pour pouvoir créer le pipeline dans docstore contributing ça c'est pareil encore, d'autres guidelines pour pouvoir contribuer un pipeline et pull request template encore des informations nécessaires pour github c'est tant qu'on crée une pull request tout ça c'est pré-rempli pour vous ici le dossier next-low ça s'est créé par next-low quand on a lancé le pipeline donc ça on s'en occupe pas ici dans le dossier A7 c'est encore d'autres données dans le template on a ici ce fichier-là ce fichier Jason qui va nous servir à pouvoir communiquer de manière interactive avec que je ne trouve pas avec microsoft grosso modo que ça va faire ça va envoyer une information dans un truc mais là c'est pas slack ça va être par microsoft je ne sais pas si c'est patin bonne question email template l'email qui va être envoyé une fois que le pipeline est fini donc au format html ce qu'on a besoin au format text qui va être en partie dans le format html tout ce qui va être comme méthode de description enfin comme détail des méthodes utilisées on va pouvoir donner ça aussi comme info supplémentaire un fichier de config un logo qu'on a créé automatiquement pour nf core qui va contenir le nom de notre pipeline un simple sheet d'exemple un fichier d'input qui va nous montrer ce qu'on veut à l'intérieur moi j'aimerais bien qu'on puisse rajouter plus de tests au sein de toute une pipeline nf core pour être sûr qu'on utilise un vocabulaire contrôlé à ce niveau-là pour l'instant on s'en sort bien mais c'est vrai qu'on n'est pas encore formalisé à ce niveau-là on a également un schéma qui va nous permettre de vérifier que notre simple sheet correspond à certaines règles histoire de pouvoir vérifier qu'il n'y a pas d'erreur dans notre searching simple sheet dès le début et pouvoir permettre le cas échéant d'arrêter le pipeline de suite il faut que le pipeline tourne pendant plusieurs heures ou plusieurs jours qu'il y avait un problème dès le début et qu'on aurait pu s'arrêter plus tôt là pareil encore d'autres infos sur l'email et la même info que tout à l'heure pour envoyer partie mais ici pour envoyer par Slack ici BIN va contenir des scripts qui vont être directement utilisables par Nextro comme je l'ai montré dans la session d'hier donc là c'est un script créé spécialement ici pour ce pipeline-là qui va just vérifier que mon simple sheet est correct et que les infos à l'intérieur sont corrects tous les fiers de configuration donc on a fiché des tests configs qui vont contenir toutes les informations de tests donc notamment input qui est un lien vers un fichier qui est un lien vers des données de tests qui sont dans notre réparatoire de données de tests donc voilà tout est disponible là et ça vraiment ça vous permet de prototyper facilement un pipeline et de faire en sorte que tout marche facilement Testful, là ici à ce moment là il n'y a rien de détaillé c'est quelque chose qu'on va devoir construire au fur et à mesure de la création du pipeline et ici ce qu'on va demander c'est vraiment d'avoir un jeu de données de taille réelle pour pouvoir faire en sorte qu'il marche pas qui supporte une mise en charge et ça nous permet vraiment de vérifier qu'un pipeline à chaque release marche sur des données réelles module ici on va configurer chacun des modules donc je vais détailler ça un tout petit peu plus tard iGenome ça va être la configuration d'EGM de référence et Base Config c'est vraiment juste configurer la consommation des ressources donc c'est ce que je vous ai dit précédemment où on utilise des ressources censées qui sont censées marcher à peu près partout documentation tout ce dont vous avez besoin pour créer votre documentation donc là je vous laisse vraiment regarder ça quand vous voulez ici on a plusieurs petites librairies créées en groovy qui vont être utiles pour nous au sein de NFCore pour pouvoir vérifier plus de choses au sein de notre pipeline next low et vraiment c'est pour nous faciliter la vie quand on définit des choses module donc là tous les modules sont installés avec le pipeline donc on a FastQC, on a MultQC on a un module qui va pouvoir nous récupérer toutes les infos de tous les logiciels utilisés pour pouvoir passer la MultQC au moins notre rapport final de MultQC va nous montrer tout ça et on a un module en local qui est le module de simple sheet de check simple sheet qui va utiliser le script le dossier result ça c'est le dossier qu'on vient de créer comme le dossier work qui a été créé par next low ce workflow ici on a un petit sub workflow en local qui appelle un script qui appelle un module local je vais montrer en détail comment rajouter des petits sub workflow ou créer des sub workflow il n'y a pas de problème c'est notre pipeline principal qui va détailler surtout comment ça marche ici on a un clu FastQC on a un clu MultQC et on a un clu ce petit process pour récupérer toutes les informations toutes les informations toutes les versions des software utilisés voilà donc là ça va être le détail du pipeline puis on envoie les informations avec un workflow on complete par email voilà editor config pour être sûr que tout le monde utilise les mêmes indentations de partout au moins on ne s'embête pas la tête quand on est plusieurs à travailler sur les mêmes choses à avoir quelqu'un qui change les indentations puis quelqu'un autre qui rechange la réponse au moins tout le monde utilise la même chose dite ignore c'est tout l'efficier donc il ne veut pas qu'il soit pris en compte par guide quand on fait des modifications on ne s'occupe pas de ça guide pod yaml tout ce qu'on veut comme extension d'envscode ici pour notre guide pod nfcore.yaml ça a été créé automatiquement partout ça nous dit qu'ici on est dans un pipeline ça avait de différences on crée un module preture ignore c'est pour dire oui parce qu'on fait du linking avec notamment preture c'est pour dire que preture ne doit pas être utilisé sur ces fichiers lui dire qu'il faut prendre en compte 120 caractères en ordre d'écran un change log de base qui va falloir compléter au fur et à mesure un fichier de citations qui va nous permettre d'avoir toutes les infos sur tous les outils qu'on utilise pour ce pipeline donc a compléter le suivi au fur et à mesure code of conduct pour qui vraiment détaille toute notre communauté comment ça se passe toutes les infos dont je vous ai déjà parlé précédemment la licence amity ici juste prescript qui va lancer le script principal je pense qu'il y a certains détails ici qu'on va améliorer au fur et à mesure donc pas ici aujourd'hui dans le tutoriel mais je pense que c'est quelque chose qu'on pourrait simplifier ce qu'on appelle un premier workflow qui va appeler ce workflow ici et si on rappelle ce workflow ici dans ce workflow là c'est juste pour nous permettre d'avoir un workflow avec un nom d'utiliser tout ça c'est un peu circuit volu je vous reconnais mais c'est ce qu'il nous fallait à ce moment là ici on a un fichier module.json qui va contenir toutes les informations sur les modules installés et utilisés donc on voit que ce module là vient de cette banche là avec ce commit ici et qui a été installé juste pour un module en particulier je vais vous montrer comment ça peut évoluer au fur et à mesure ici un autre fichier donc généralement les fichiers digital je ne conseille pas de les regarder à la main parce que j'aime bien décortiquer les choses mais ici ça va contenir tous les paramètres et ça va nous permettre de valider tous les paramètres en se basant sur un partel en particulier ou sur des schémas particuliers quels sont des données par défauts si il y a des données par défauts sur des paramètres vraiment toutes les infos dont on va avoir besoin pour exécuter notre pipeline ici un fichier de config qui va contenir les paramètres de base utilisé dans notre pipeline avec des valeurs par défauts qui sont répertoriées automatiquement dans notre schéma ici un fichier de configuration pour Python qui utilise des tailles ici pour éviter du linking de certains fichiers Python avec Black qui ne touche pas notre ennemi qu'on a vu précédemment et voilà c'est vraiment tout ça qui se passe quand on crée vraiment un squelette donc c'est vrai que ça peut être très lourd déjà quand on commence un pipeline mais ça va quand même nous simplifier la vie comme j'avais montré donc ici j'ai un pipeline donc j'ai envie d'ajouter un module supplémentaire regardons un petit peu quels sont les modules NFCore module installs install excusez-moi, je besoin des modules attendez arrêtez ça c'est mieux ici, NFCore Tools est en train de me récupérer les infos alors nous on a déjà on a déjà fait excuse d'installer j'ai envie d'installer en plus installons FastPy voilà il me donne directement une ligne pour dire voilà comment tu peux l'utiliser je vais copier ça ici, je vais regarder mon fichier module et on voit qu'on a un nouveau fichier qui a été installé un nouveau module ici, si je vais dans ma workflow moi je vais rajouter ici l'inclusion supplémentaire j'aime bien que les choses soient alliées donc voilà et alors il y a un souci ici j'ai fait un mauvais copier collé voilà alors j'aime bien que les choses soient alliées par ordre alphabetique je vais juste garder le custom d'un software et ça, je vais trier sa part d'alphabetique j'ai une enraconcycladier qui marche très bien sur ma machine à moi c'est pas bien grave je sais que voilà, ça doit être dans cet endroit-là si je veux avoir un alphabetique donc voilà j'ai utilisé juste, j'ai choisi fastpy parce que je sais comment fastpy marche et je sais que fastpy a besoin peut marcher directement sur sur les mêmes infos que fastpy donc fastpy après, vous pouvez vraiment qu'à votre code comme vous voulez moi, quand j'ai juste des infos tout simples j'aime bien faire ça en un seul truc ce qu'on va donner ici, un multi-cusy c'est des infos les versions utilisées au moins multi-cusy va nous récupérer tout ça donc ici je relance mon pipeline il devrait s'être lancé avec un module en plus donc on va vérifier ça de suite ah alors ici, ça déclare 4 channels en input mais on ne spécifie qu'un seul alors vérifiant le module module il faut faire du refresh ici module fastpy input on a du on enlaste sur fastpy j'étais sur fastpy voilà ah oui, on n'a pas mis l'adapter, on n'a pas demandé si on voulait sauver des choses donc on va rajouter ces infos supplémentaires j'ai pas d'adapteurs donc je ne vais rien mettre après c'était quoi les données supplémentaires c'est des values donc c'est 1 d'or pour chaque module, ce qui est bien c'est qu'on a un métaillamel qui va nous détailler ici toutes les infos donc adapter affiché au fast format quand il n'y a pas d'adapteurs ok, on a déboulé un pour savoir si on veut sauver des fichiers ou pas donc ici ce que je vais faire je vais rien lui donner, je vais taper je vais mettre false relançons tout ici et voyons voir ce qui se passe c'est tout court c'est toujours en cours voilà on va faire ce qu'il marche sur les 4 des instances de notre channel sans aucun problème ici ça va être lancé sur fastpies sur 4 instances aussi tout est en train de se dérouler on a ajouté un module comme ça, très facilement on n'a pas eu à se préoccuper des containers parce que tout est déjà détaillé et ça marche de suite on va voir à se préoccuper de tout ça je trouve ça fantastique on va pouvoir faire aussi regardons niveau de nf core si on n'a pas un suborg clou qui pourrait nous intéresser alors un suborg clou qui marcherait sur des fastq si on a installé du line bw on va tenter ça alors ici on va faire pareil qu'avant nx, nf, core suborg flows install et moi je dis du bw fastq, align bw voilà donc là nf core tools a nous installer le suborg clou fastq align bw si je reviens ici dans mon mon clou principal on va rajouter ici les suborg clou si on fait du align il donne falloir aussi un index donc je vais ajouter un module install du bw index voilà copie on va rajouter ça ici si on vérifie notre module d'obdison on a des nouveaux modules qui ont été installés je vois que ce module là a été installé par module et je vois que ce module là a été installé par un suborg flow particulier donc on a d'autres modules qui ont été installés aussi par d'autres suborg flow et on a ici un module qui a été installé par suborg flow c'est la commande montaguisée puis deux autres suborg flow qui ont été installés par donc ce suborg flow là a été installé par ce suborg flow là et ce suborg flow là a été installé par ce suborg flow là donc voilà nf core va vraiment l'installer toutes les dépendances dont j'ai besoin quand je vais rajouter un suborg flow et donc ce niveau là c'est relativement simple donc moi ce que je vais faire je ne touche plus à ce chez là si vous regardez ici si je vais créer un channel alors index sur ce que j'ai vu fasta quelque part il veut la gêne il parle de fasta on va créer un channel fasta ici je veux juste vérifier si on a index bien on va vérifier fasta sans aucun problème donc après ce qu'on devrait faire aussi c'est récupérer toutes les versions pour pouvoir donner à muter que si je pense que je ne vais pas m'embêter à faire ça aujourd'hui vraiment juste pour vous montrer comment rajouter juste un module de manière simple alors si il n'a pas index alors qu'est ce qui se passe ah donc j'ai mon chie chez fasta qui est sur hi genome c'est bizarre ah oui normalement il est sur hi genome donc ça n'a pas marché à pas ce que je vais faire parce qu'on ne va pas tout simplement lui donner un autre je suis peur que ça ne marche pas on va juste vérifier si ça marche ou si ça bug et sinon je vais juste vous donner un fichier c'était bien ça je voulais bien du file donc ce que je vais faire c'est juste de fichier des dossiers si non je vais laisser le patin fichier de configuration fichier de test fasta je vais récupérer ça en fichier fasta voilà ici maintenant si je vais dans la configuration ici en fasta alors genome je vais lui mettre un genome fasta je vais lui donner ceci donc voilà revoyons aussi ce qui se passe maintenant si on fait ça donc là ce que j'ai fait j'ai joué donner un fichier fasta qui provient de github plutôt que d'un fichier fasta qui est sur un bucket s3 sur hi genome parce que je suis pas sûr de comment pouvoir gérer ça sans aucun problème ici dans module en même temps ça permet de vous montrer un petit peu tout ça donc ici pour chaque module tous les modules sont ici sur ce répertoire NFCore module tous les modules sont détaillés ici donc on a un premier dossier qui va être le monde d'outils et après pour chaque outil on va avoir un ou plusieurs sous-dossiers ça va vraiment dépendre des outils et si je regarde par exemple un outil on va dire regardons bwa si je regarde un sous-dossier par sous commande là je regarde le sous-dossier index et je vois ce qui se passe bah voilà c'est vraiment mon script comme on a vu avant donc après pour chaque module et pour chaque sub-orclos c'est vraiment détaillé pareil ici pour les sub-orclos on a une façon de nommer qui va commencer par d'abord le premier mot ça va être le nombre de quel type de fichier prend ce sub-orclos en entrée le dernier mot ça va être quelles sont les outils utilisés et au milieu ça va être que fait ce sub-orclos et ici on a déficit de test donc pour chaque module reprenez un module que je connais c'est-à-dire le module bwa juste regarder index pour voir comment on fait ici ah oui c'est bon j'ai compris c'était quoi mon problème en fait le problème était tout simple j'aurais pu m'en rendre compte en regardant le script ici on avait besoin d'une valeur ici je commentais et je lui donnais qu'un seul fichier donc c'est pour ça que ça ne marchait pas là maintenant ça marche on a plus aussi ça marche bien donc mais ce que je voulais montrer c'est que ici pour chaque module on a créé on a une petite encapulation qui va ici nous appeler le module en tant que tel ici un fichier de configuration qui peut être utilisé ou pas et ici un petit fichier yaml qu'on teste tout ça en utilisant Pytest pour l'instant on utilise on étudie d'autres solutions pour l'instant on utilise Pytest qui va nous permettre de vérifier l'existence de chacun des fichiers et on les vérifie avec un check avec Md5 pour être sûr que le fichier de sortie correspond à ce qu'on s'atteint parce qu'on connaît le névénement d'être ici d'entrée et donc on fait ça pour chacun des modules et on fait ça pour chacun des suborclos qui sont au sein de 9 points j'ai l'idée qu'il y a une pool request qui est créée ici tous les tests passent et là je vois que ici tous les tests ont réussi mais il y en a plein qui ont bugué donc celle là va probablement l'amorger celle là on va dire il y a encore des choses à faire avant de pouvoir l'amorger donc voilà ici ça je ne touche plus ça je ne touche plus j'ai bien mon index BW moi ce que j'aurais récupéré sur l'index BW c'est que je voulais récupérer une chaine BW BW index qui va être égal à BW index point out et comment s'appeler ici mon output c'était index ce qu'on voulait faire ah oui on voulait utiliser ceci alors ce que j'ai envie de faire ici maintenant c'est d'utiliser ce sub workflow là donc là je veux juste regarder mon sub workflow comment il marche alors l'index BW qu'est ce qu'on va en entrer on veut des reads, on veut des index on veut savoir si on doit trier ou pas les BAM et on veut savoir et on veut donner éventuellement un fichier FASTA ça c'est du optionnel donc on va faire ça de suite alors oh la désolé je suis pas sur le truc donc ici on a notre premier ça va être nos reads ici notre deuxième c'est nos index ici en troisième on a une donnée vous voulez savoir si on voulait trier ou pas je n'ai pas envie de trier donc on va pas s'embêter on va mettre nom et j'ai pas envie de donner un fichier FASTA on va s'arrêter là et là on va voir comment ça se passe ici pour ajouter ce sub workflow qu'est ce qu'il s'est passé donc là j'ai juste mis à boue vraiment un sub workflow sur ce qu'on avait déjà créé ça a pas forcément un sens biologique ou un sens logique c'était juste vraiment pour voir si ça marchait et qu'est ce qu'on va avoir un détail donc ici on peut voir que MultiQC a été exécuté de suite parce que parce qu'on lui dit pas d'attendre les fichiers de sortie donc là on voit qu'il y a un problème dans notre process parce que ce script là a les mêmes fichiers d'input et d'input il nous conseille d'utiliser TASK EXT.PREFIX pour différencer tout ça donc ce qu'on va faire ici on va aller dans un fichier donc je vais juste d'abord voir dans module les tests qu'on a fait pour les sub workflow pour celui là pour voir comment on a écrit ça avant ce que je vais faire je vais prendre tout ça je vais le copier ici de manière simple donc ici je rajoute vraiment un petit prefix pour nous dire pour nous dire d'utiliser alors ici pour SamTool pour SamTool voilà c'était pour nos Autis SamTool donc pour tous nos Autis SamTool on lui dit si j'utilise vraiment un prefix enfin j'utilise vraiment un selector withname avec un globe je veux que tu m'attrapes tout ce qui contient cette chaîne de caractère et pour tout ça tu lui donnes ceci comme donc donc voilà d'être le masque ici on va le relancer après je vais juste étayer ici un peu plus donc ici en fait ce qu'on va pouvoir faire avec ces sélecteurs on va pouvoir dire pour un process en particulier une tâche en particulier quels sont les infos qu'on veut changer pour ce module donc si j'ai envie de changer les arguments si j'ai envie de changer un prefix si j'ai envie de changer tout ce que je veux changer j'ai qu'elle changer et c'est fait à ce niveau là et donc là voilà on l'a fait ça a marché alors on voit qu'on ajoute un dernier petit problème j'ai quand même 4 échantillons et ça a aligné tout ça donc à mon avis notre problème est du coup ici cette channel était une channel de que et on veut que ce soit une channel de value donc ici j'utilise l'opérateur dotfirst pour transformer ça d'une channel de que en channel de value je vais te dédayer ça dans le tutoriel ces étapes là donc là je relance et ici normalement on devrait avoir plus de process voilà on voit bien qu'ici on n'a plus on a 4 de prévues et voilà donc nous avons complexifier sans aucun problème un petit pipeline on a rajouté un petit module on a rajouté un petit on a rajouté un petit module ici un petit module là on a rajouté un premier sub workflow ici qui m'a appelé 2 autres sub workflow ici et ici et donc voilà tout ça est installé et ça c'est fait vous avez vu c'était très simple donc après vraiment si je veux configurer beaucoup plus ici tout ce que je veux j'ai qu'à venir ici et détailler quels sont les arguments que j'ai envie de rajouter par exemple ici pour FastQC c'est quand même pas mal donc je vais me laisser mais on pourrait décider de l'enlever on pourrait faire la même chose, rajouter des arguments ici donc c'est de manière très simple ce qu'on peut faire aussi et que je trouve ça assez fantastique c'est décider de modifier nous-même un module mais de modifier en local donc on va regarder ici le status on va committer des petits trucs on a rajouté des files et oui toujours mettre un file un message explicatif de ce qu'on fait là on ajoute un couple du donc ici ce qu'on va vouloir faire c'est juste modifier localement euh euh ici donc j'ai envie par exemple que le répertoire de sortie ne s'appelle pas BW il est BW index ça va être ici et on va le trouver ici aussi donc pour pouvoir faire ça on pourrait sauvegarder tout ça dans un module en local mais ce qu'on peut faire aussi c'est utiliser un afcore module c'est patch ou c'est diff je sais plus c'est patch exactement on va BW c'était BW index et voilà ici maintenant si je rafraîchis mon navigateur on voit qu'un nouveau officier a été créé diff qui me contient les changements qu'on a fait par rapport au dossier ou par rapport officier initial ce qui va nous permettre après quand il y a le misage d'où de mettre à jour le module tout en gardant nos propres changements et ça je trouve que c'est quand même pas mal voilà c'était juste pour vous montrer cette possibilité donc après ce qu'on peut faire là on a vu vraiment comment créer un pipeline avec NFCoreTools de la même manière NFCoreTools va utiliser un template c'est à dire un squelette de base pour pouvoir créer un module pour pouvoir créer un subworkload donc le système est très similaire donc je vais pas vous montrer ça et je pense que c'est à peu près bon pour aujourd'hui donc demain on va aller plus en détail sur tout le côté next law à nouveau beaucoup plus détaillé tout ce qui est channels, process et opérateurs donc ça peut être été un petit peu rapide aujourd'hui à ce niveau là dans certains détails donc si vous avez des questions on va poser des questions sur Slack on est là pour répondre à vos questions que ce soit en français sur le channel dédié ou en anglais sur le channel que vous voulez et après si vous avez des questions n'hésitez pas à me contacter il n'y a pas de problème voilà merci à vous à demain