<!-- .slide: data-background="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/svg/green_white_bg.svg" -->
<a href="https://www.nf-co.re"><img src="https://raw.githubusercontent.com/nf-core/logos/master/nf-core-logos/nf-core-logo.svg" width="60%"><img></a>
## A collaborative community for peer reviewed analysis pipelines
Maxime U Garcia ▸ [<i class="fa fa-twitter" aria-hidden="true"></i>@gau](https://twitter.com/gau/) | [<i class="fa fa-github" aria-hidden="true"></i>@maxulysse](https://github.com/maxulysse/)
Karolinska Institutet | Science for Life Laboratory
Sweden
---
## Reproducibility is central
<a href="https://academic.oup.com/view-large/figure/118918033/giy077fig1.jpg"><img src="https://maxulysse.github.io/assets/img/slides/gigascience_giy077_fig1.jpg" width="50%"><img></a>
[<i class="ai ai-doi"></i> 10.1093/gigascience/giy077](https://doi.org/10.1093/gigascience/giy077)
---
<a href="https://www.nextflow.io/"><img src="https://maxulysse.github.io/assets/img/slides/nextflow.png" width="50%"><img></a>
* Workflow manager
* Data driven language
* Portable
* executable on multiple platforms
* Shareable and reproducible
* with containers or virtual environments
---
## <i class="fas fa-project-diagram"></i> Data driven language
The execution graph depends on the input data,
and is calculated on the go
<div class="fragment fade-in">
In `snakemake` it's the other way around
</div>
<div class="fragment fade-in">
The execution graph depends on the final target,
and is calculated before launch
---
## Portability
[www.nextflow.io/docs/latest/executor.html](https://www.nextflow.io/docs/latest/executor.html)
* <i class="fa fa-server"></i> Sun Grid Engine, SLURM, PBS/Torque...
* <i class="fa fa-cloud"></i> AWS Batch, Kubernetes, Google Life Sciences
---
## Reproducibility
<a href="https://docs.conda.io/"><img src="https://maxulysse.github.io/assets/img/svg/conda_logo.svg" width="50%"><img></a> | <a href="https://www.docker.com/"><img src="https://maxulysse.github.io/assets/img/svg/docker_logo.svg" width="50%"><img></a> | <a href="https://sylabs.io/singularity/"><img src="https://maxulysse.github.io/assets/img/svg/singularity_logo.svg" width="50%"><img></a>
:-:|:-:|:-:
---
<a href="https://nf-co.re/community#organisations"><img src="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/svg/institutes_2021_dark.svg" title="Institutes acknowledgements" alt="Institutes involved"/></a>
---
<a href="https://www.nf-co.re"><img src="https://raw.githubusercontent.com/nf-core/logos/master/nf-core-logos/nf-core-logo.svg" width="60%"><img></a>
[<i class="fa fa-globe"></i> https://nf-co.re/join](https://nf-co.re/join)
<div class="fragment fade-in">
[<i class="fa fa-twitter"></i> @nf_core](https://twitter.com/nf_core)
</div>
<div class="fragment fade-in">
[<i class="fa fa-youtube"></i> @nf-core](https://www.youtube.com/c/nf-core)
</div>
<div class="fragment fade-in">
[<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width=".8em" height=".8em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" class="slack-svg"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52a2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521a2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521a2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523a2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z" fill="white" class="slack-path"/></svg> nfcore.slack.com](https://nfcore.slack.com/)
</div>
<div class="fragment fade-in">
[<i class="fa fa-github"></i> @nf-core](https://github.com/nf-core/)
</div>
<div class="fragment fade-in">
[<i class="fa fa-spotify" aria-hidden="true"></i> Spotify](https://open.spotify.com/playlist/6LyhtB3bllSwNbK9iDNVgH?si=eaf6b95eac934e71)
</div>
---
[<i class="fa fa-globe"></i> https://nf-co.re/pipelines](https://nf-co.re/pipelines)
* 32 Released
* rnaseq
* sarek
* viralrecon
* mag
* eager
* 16 Under development
* rnavar
* raredisease
---
## Pipeline requirements
[<i class="fa fa-globe"></i> https://nf-co.re/developers/guidelines](https://nf-co.re/developers/guidelines)
* Nextflow based
* Common structure (based on the nf-core template)
* Stable release tags
* MIT license (can be used even in commercial settings)
* Software bundled for reproducibility
* Continuous Integration testing (e.g. GitHub Actions)
---
<a href="https://nf-co.re/tools/"><img src="https://maxulysse.github.io/assets/img/svg/nf-core-tools_logo.svg" width="60%"><img></a>
---
## A companion tool
[<i class="fa fa-globe"></i> https://nf-co.re/tools](https://nf-co.re/tools)
* [launch](https://nf-co.re/tools#launch-a-pipeline) - with interactive prompts
* [download](https://nf-co.re/tools#downloading-pipelines-for-offline-use) - for offline use
* [lint](https://nf-co.re/tools#linting-a-workflow) - check code against guidelines
* [modules](https://nf-co.re/tools/#modules) - List, update, lint, create...
* ...
---
## Configurations
All pipelines come with a default sensible configuration for a regular sized HPC
---
## Configurations
[<i class="fa fa-github"></i> github.com/nf-core/configs](https://github.com/nf-core/configs/) allows shared configurations between pipelines for a specific HPC
* cpus, time and memory requirements
* scheduler
* queues
* environments
* path to common references files
* ...
---
## Extensive statistics
[<i class="fa fa-globe"></i> https://nf-co.re/stats](https://nf-co.re/stats)
---
## <i class="fa fa-laptop"></i> Hackathons
[<i class="fa fa-globe"></i> https://nf-co.re/events](https://nf-co.re/events)
<a href="https://nf-co.re/events/2020/hackathon-francis-crick-2020"><img src="https://maxulysse.github.io/assets/img/slides/nf-core_hackathon_crick2020.jpg" width="60%"><img></a>
[<i class="fa fa-globe"></i> nf-co.re/events/2021/hackathon-october-2021](https://nf-co.re/events/2021/hackathon-october-2021)
---
## <i class="fa fa-home"></i> Take/Stay at home message
* <i class="fa fa-industry"></i> Facilities
* Highly optimised pipelines
* Validated releases ensure reproducibility
* <i class="fa fa-users"></i> Users
* Portable, documented and easy to use
* <i class="fa fa-laptop"></i> Developers
* Companion templates and tools help to validate your code and simplify common tasks
---
## Acknowledgements
<img src="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/svg/acknowledgments_2021_dark.svg" title="Institutes acknowledgements" alt="Institutes acknowledgements"/>
---
<a href="https://nf-co.re/community#organisations">
<img src="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/svg/institutes_2021_dark.svg" title="Institutes acknowledgements" alt="Institutes acknowledgements"/>
</a>
---
<a href="https://nf-co.re/community#contributors">
<img src="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/slides/nf-core_contributors_2021_03.png" title="Contributors acknowledgements" alt="Contributors acknowledgements"/>
</a>
---
<!-- .slide: data-background="https://raw.githubusercontent.com/maxulysse/maxulysse.github.io/main/assets/img/svg/green_white_bg.svg" -->
## Get involved:
[https://nf-co.re/join](https://nf-co.re/join)
[<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1.6em" height="1.6em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" class="slack-svg"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52a2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521a2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521a2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523a2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z" fill="white" class="slack-path"/></svg>](https://nfcore.slack.com/) [<i class="fa fa-twitter fa-2x" aria-hidden="true"></i>](https://www.twitter.com/nf_core) [<i class="fa fa-github fa-2x" aria-hidden="true"></i>](https://github.com/nf-core) [<i class="fa fa-youtube fa-2x" aria-hidden="true"></i>](https://www.youtube.com/c/nf-core)
<style>
.reveal section img { background:none; border:none; box-shadow:none; }
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 p {
font-family: 'Roboto', sans-serif;
font-weight: 300;
color: white;
}
.reveal h1 {
font-family: 'Roboto', sans-serif;
font-style: bold;
font-weight: 400;
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%);
}
.fa {
color: white;
}
a .fa-github:hover { color: #000000; }
a .fa-spotify:hover { color: #1DB954; }
a .fa-twitter:hover { color: #4099FF; }
a .fa-youtube:hover { color: #FF0000; }
a .slack-svg:hover .slack-path {fill: #000000;}
</style>
{"metaMigratedAt":"2023-06-16T12:46:51.195Z","metaMigratedFrom":"YAML","title":"DNAclub - nf-core a collaborative community for peer reviewed analysis pipelines","breaks":true,"contributors":"[{\"id\":\"35a34875-3971-4e5c-ac89-b0a2d4098367\",\"add\":1,\"del\":0},{\"id\":\"fb193497-1111-470c-a594-827d34b6f673\",\"add\":14830,\"del\":2901},{\"id\":\"6357fb8d-b0f8-4b7d-9fbe-6d813ad67700\",\"add\":1,\"del\":0}]"}