<!-- .slide: data-background="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/svg/green_transparent_bg.svg" --> # nf-core: a best-practice framework for creating Nextflow pipelines and sharing them with the community <small> Friederike Hanssen ▸ <a href="https://github.com/FriederikeHanssen" style="color:white;" ><i class="fa fa-github"></i> @FriederikeHanssen</a> <a href="https://portal.qbic.uni-tuebingen.de/portal/" style="color:white;" >QBiC</a> ▸ Tübingen Maxime U Garcia ▸ <a href="https://github.com/maxulysse" style="color:white;" ><i class="fa fa-github"></i> @maxulysse</a> <a href="https://seqera.io/" style="color:white;" >Seqera Labs</a> ▸ Barcelona | Stockholm ISCB/ECCB 2023 Tutorial IP7 : <a href="https://www.iscb.org/ismbeccb2023" style="color:white;" ><i class="fa fa-globe"></i> iscb.org/ismbeccb2023</a> </small> --- <!-- should be no longer than 30 min, ideally shorter --> Session 1: Introduction to nf-core Quick Nextflow intro: DSL language, Nextflow advantages (portability) Overview of the nf-core community and for users and developers How to use nf-core resources --- <div class="my-section"> # Reproducibility <img src="https://hackmd.io/_uploads/rkwlVh3I3.png" height="600px" /> </div> --- <div class="my-section"> # Nextflow Nextflow enables scalable and reproducible scientific workflows using software containers <...> on clouds and clusters. </div> <img src="https://github.com/nextflow-io/trademark/blob/8a986330d004c63b7f8582d091fdc78a0f639e52/nextflow2014_big.png"> --- <div class="my-section"> # Containers </div> --- <div class="my-section"> # Bioconda / Biocontainers </div> --- # Portability --- <div class="my-section"> # What is nf-core? A community effort to collect a curated set of Nextflow pipelines </div> --- <div class="my-section"> # Plan for the next 3 hours 🧑‍🏫 **Session 1**: Shared modules and subworkflows<!-- .element: class="fragment" --> 💻 **Practical session 1**: Test out nf-core/tools<!-- .element: class="fragment" --> 🧑‍🏫 **Session 2**: Use nf-core/tools to create a pipeline and add modules/subworkflows<!-- .element: class="fragment" --> ☕ **Coffee Break**<!-- .element: class="fragment" --> 💻 **Practical session 2**: Create an example pipeline with nf-core/tools<!-- .element: class="fragment" --> </div> --- # 🧑‍🏫 Session 2: Shared modules and subworkflows (15min) --- <div class="my-section"> # Overview of a pipeline: ![](https://hackmd.io/_uploads/BJMRs4oL3.png) </div> --- <div class="my-section"> # Module 🌯 Nextflow wrapper around a (single) tool<!-- .element: class="fragment" --> 👨‍👩‍👦‍👦 Community guidelines on how to build them:<!-- .element: class="fragment" --> * Common structure enforced with template<!-- .element: class="fragment" --> * CI tests on tiny test data on each change<!-- .element: class="fragment" --> * Tools *should* be in bioconda<!-- .element: class="fragment" --> 📤 Very general, to be used in any pipeline<!-- .element: class="fragment" --> * Configurable on a pipeline level<!-- .element: class="fragment" --> 🤝 Available at [nf-core/modules](https://github.com/nf-core/modules) <!-- .element: class="fragment" --> <!-- </div> <div> <img src="https://hackmd.io/_uploads/SkRQ6NjL2.png" style="float: right; width: 450px;"></img> </div> </div> --> </div> --- <div class="my-section"> # Subworkflows Very similar to modules: 🪢 Combine modules together that are used together:<!-- .element: class="fragment" --> * i.e. genomics quality control tools<!-- .element: class="fragment" --> 👨‍👩‍👦‍👦 Community guidelines<!-- .element: class="fragment" --> 🤝 Available at [nf-core/modules](https://github.com/nf-core/modules) <!-- .element: class="fragment" --> </div> --- <div class="my-section"> # nf-core/tools 🧰 Python tool to interact with pipelines/modules/subworkflows 💻 For both: developers & users 📥 Install with `pip` or `conda` </div> --- <div class="my-section"> # Gitpod Practical session 1: Start up Gitpod, should be nf-core/modules? should come with everything pre-installed *(Rike also needs an intro there :D ), if we want them to create a simple new module then we need to either find a simple tool that is not in nf-core/modules or make a custom repo?, or we don't but rather want them to get an idea of the modules repo and refer to further tutorials on how to create modules yourself * Try out nf-core/tools for listing modules, listing available pipelines and creating modules from a template. </div> --- <div class="my-section"> # 💻 Practical Session 1 (30min) - Start GitPod: - Has nf-core/tools pre-installed - Try out nf-core/tools: - list all available pipelines - list all available modules - create a module from the template </div> --- <div class="my-section"> # Start Gitpod screen shot here </div> --- <div class="my-section"> # Try out nf-core/tools List all pipelines: ``` nf-core pipelines list ``` List all modules: ``` nf-core modules list ``` <!-- TODO we need to pick an easy tool`: samtools faidx?--> Create a new module from template: ``` nf-core modules create <todo: provide a tool> ``` </div> --- <div class="my-section"> Walk through the modules template? </div> --- # 🧑‍🏫 Session 3: Create a pipeline from a template (30min) --- Introduction to nf-core tools for creating a Nextflow pipeline from a template modules/subworkflows --- <div class="my-section"> # Coffee break (15min) ![](https://hackmd.io/_uploads/SyI2ms3Ln.jpg) </div> --- # 💻 Practical session 2: Create a pipeline from a template (2h) --- - Create a new pipeline using the nf-core template - Expand pipeline with tools in nf-core modules - Run with simple test-data - Expand pipeline with a subworkflow from nf-core modules --- Feedback survey: [google.forms](https://docs.google.com/forms/d/e/1FAIpQLSf_0RTzbDDMYLoB6sshSJ_uKtbTrC1xESEknfIexsdboh7lHA/viewform) --- <h2 style="color:black;">Need help?</p> <!-- .slide: data-background="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/svg/green_white_bg.svg" --> <a href="https://nf-co.re/join"><img src="https://upload.wikimedia.org/wikipedia/commons/d/d5/Slack_icon_2019.svg" class="endslide_logo"></a> <a href="https://www.twitter.com/nf_core"><i class="fa fa-twitter endslide_logo"></i></a> <a href="https://mstdn.science/@nf_core"><img src="https://upload.wikimedia.org/wikipedia/commons/d/d5/Mastodon_logotype_%28simple%29_new_hue.svg" class="endslide_logo"></a> <a href="https://github.com/nf-core"><img src="https://upload.wikimedia.org/wikipedia/commons/c/c2/GitHub_Invertocat_Logo.svg" class="endslide_logo"></a> <a href="https://www.youtube.com/c/nf-core"><img src="https://upload.wikimedia.org/wikipedia/commons/0/09/YouTube_full-color_icon_%282017%29.svg" class="endslide_logo"></a> <br> <a href="https://nf-co.re/" style="color:black;" class="endslide_link" >https://nf-co.re/</a> <br> <img src="https://chanzuckerberg.com/wp-content/themes/czi/img/logo.svg"> --- <style> .my-section { text-align: left; } .my-section img { display: block; margin: 0 auto; } body { background-image: url(https://raw.githubusercontent.com/nf-core/logos/master/nf-core-logos/nf-core-logo-square.svg); background-size: 7.5%; background-repeat: no-repeat; background-position: 3% 96%; background-color: #181a1b; } .reveal body { font-family: 'Roboto', sans-serif; font-weight: 300; color: white; } .reveal h1 { font-family: 'Roboto', sans-serif; font-style: bold; font-weight: 600; color: white; font-size: 62px; } .reveal h2 { font-family: 'Roboto', sans-serif; font-weight: 300; color: white; } .reveal h3 { font-family: 'Roboto', sans-serif; font-style: italic; font-weight: 300; color: white; } .reveal p { font-family: 'Roboto', sans-serif; font-weight: 300; color: white; } .reveal li { font-family: 'Roboto', sans-serif; font-weight: 300; color: white; } .reveal pre { background-color: #272822 !important; display: inline-block; border-radius: 7px; color: #aaaba9; } .reveal pre code { color: #eeeeee; background-color: #272822; font-size: 100%; } .reveal code { background-color: #272822; font-size: 75%; } .reveal .progress { color: #24B064; } .reveal .controls button { color: #24B064; } .reveal blockquote { display: block; position: relative; width: 90%; margin: 20px auto; padding: 5px; background: rgba(255, 255, 255, 0.05); box-shadow: 0px 0px 2px rgb(0 0 0 / 20%); } .multi-column{ display: grid; grid-auto-flow: column; } .endslide_link { font-family:Monaco, monospace; font-weight:bold; } .endslide_logo { width: 10%; } </style>
{"metaMigratedAt":"2023-06-18T05:25:41.158Z","metaMigratedFrom":"YAML","title":"ISCB/ECCB 2023 Tutorial","breaks":true,"contributors":"[{\"id\":\"2aeca590-9d00-4b4f-a58a-620945456c9f\",\"add\":8767,\"del\":3965},{\"id\":\"fb193497-1111-470c-a594-827d34b6f673\",\"add\":4200,\"del\":0}]"}
    223 views
   Owned this note