Skip to content

Commit 9fe4c2f

Browse files
Merge pull request #412 from nextflow-io/dev
Hello Nextflow refresh including new modules on containers, config, nf-core, and seqera
2 parents 0423150 + f01455d commit 9fe4c2f

File tree

151 files changed

+11949
-2500
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+11949
-2500
lines changed

.devcontainer/devcontainer.json

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
11
{
22
"name": "nfcore",
3-
"image": "nfcore/gitpod:latest",
3+
"image": "ghcr.io/nextflow-io/training:latest",
44
"remoteUser": "gitpod",
5-
5+
"features": {
6+
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}
7+
},
8+
"remoteEnv": {
9+
"NXF_HOME": "/workspaces/.nextflow",
10+
"HOST_PROJECT_PATH": "${localWorkspaceFolder}"
11+
},
612
// Configure tool-specific properties.
713
"customizations": {
814
// Configure properties specific to VS Code.
915
"vscode": {
1016
// Set *default* container specific settings.json values on container create.
1117
"settings": {
12-
"python.defaultInterpreterPath": "/opt/conda/bin/python",
13-
"python.linting.enabled": true,
14-
"python.linting.pylintEnabled": true,
15-
"python.formatting.autopep8Path": "/opt/conda/bin/autopep8",
16-
"python.formatting.yapfPath": "/opt/conda/bin/yapf",
17-
"python.linting.flake8Path": "/opt/conda/bin/flake8",
18-
"python.linting.pycodestylePath": "/opt/conda/bin/pycodestyle",
19-
"python.linting.pydocstylePath": "/opt/conda/bin/pydocstyle",
20-
"python.linting.pylintPath": "/opt/conda/bin/pylint"
18+
"python.defaultInterpreterPath": "/opt/conda/bin/python"
2119
},
22-
2320
// Add the IDs of extensions you want installed when the container is created.
24-
"extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"]
21+
"extensions": [
22+
"ms-python.python",
23+
"ms-python.vscode-pylance",
24+
"nf-core.nf-core-extensionpack",
25+
"nextflow.nextflow",
26+
"codezombiech.gitignore"
27+
]
2528
}
2629
},
2730
"portsAttributes": {

.github/gitpod.Dockerfile

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,17 @@ RUN apt-get update --quiet && \
1515
curl \
1616
tree \
1717
graphviz \
18-
software-properties-common
19-
18+
software-properties-common && \
19+
apt-get clean && \
20+
rm -rf /var/lib/apt/lists/*
2021

2122
# Taken from: https://github.com/nf-core/tools/blob/master/nf_core/gitpod/gitpod.Dockerfile
2223
# Install Apptainer (Singularity)
2324
RUN add-apt-repository -y ppa:apptainer/ppa && \
2425
apt-get update --quiet && \
25-
apt install -y apptainer
26+
apt install -y apptainer && \
27+
apt-get clean && \
28+
rm -rf /var/lib/apt/lists/*
2629

2730
# Install Conda
2831
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && \
@@ -35,6 +38,11 @@ ENV PATH="/opt/conda/bin:$PATH"
3538
RUN mkdir -p /workspace/data \
3639
&& chown -R gitpod:gitpod /opt/conda /workspace/data
3740

41+
# Install Tower Agent
42+
RUN curl -fSL https://github.com/seqeralabs/tower-agent/releases/latest/download/tw-agent-linux-x86_64 > tw-agent && \
43+
chmod +x tw-agent && \
44+
mv tw-agent /usr/local/bin/tw-agent
45+
3846
# Change user to gitpod
3947
USER gitpod
4048

.pre-commit-config.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,13 @@ repos:
1111
hooks:
1212
- id: editorconfig-checker
1313
alias: ec
14+
15+
- repo: https://github.com/pre-commit/pre-commit-hooks
16+
rev: v5.0.0
17+
hooks:
18+
- id: trailing-whitespace
19+
exclude_types:
20+
- svg
21+
- id: end-of-file-fixer
22+
exclude_types:
23+
- svg
Lines changed: 70 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,103 +1,95 @@
11
# Orientation
22

3-
The Gitpod environment contains some test data that will be used in this workshop. All software required are already installed and configured in it too.
3+
The Gitpod environment contains all the software, code and data necessary to work through this training course, so you don't need to install anything yourself.
4+
However, you do need a (free) account to log in, and you should take a few minutes to familiarize yourself with the interface.
45

5-
!!! note
6+
If you have not yet done so, please follow [this link](../../envsetup/) before going any further.
67

7-
Follow [this link](../../envsetup/) if you have not yet setup your Gitpod environment.
8+
## Materials provided
89

9-
## Getting started
10+
Throughout this training course, we'll be working in the `hello-nextflow/` directory, which loads by default when you open the Gitpod workspace.
11+
This directory contains all the code files, test data and accessory files you will need.
1012

11-
You will complete this module in the `hello-nextflow/` folder.
13+
Feel free to explore the contents of this directory; the easiest way to do so is to use the file explorer on the left hand side of the Gitpod workspace.
14+
Alternatively, you can use the `tree` command.
15+
Throughout the course, we use the output of `tree` to represent directory structure and contents in a readable form, sometimes with minor modifications for clarity.
16+
17+
Here we generate a table of contents to the second level down:
1218

1319
```bash
14-
cd /workspace/gitpod/hello-nextflow
20+
tree . -L 2
1521
```
1622

17-
In this folder you will all test data, code and accessory needed to work through this training module.
18-
19-
!!! question "Exercise"
23+
If you run this inside `hello-nextflow`, you should see the following output:
2024

21-
View all the folder and files in the `hello-nextflow` directory.
22-
23-
```console
24-
tree .
25-
```
26-
27-
You should see the following output:
28-
29-
```console title="Output"
30-
/workspace/gitpod/hello-nextflow
25+
```console title="Directory contents"
26+
.
27+
├── containers
28+
│ ├── build
29+
│ ├── data
30+
│ ├── results
31+
│ └── scripts
3132
├── data
3233
│ ├── bam
33-
│ │ ├── reads_father.bam
34-
│ │ ├── reads_mother.bam
35-
│ │ └── reads_son.bam
36-
│ ├── greetings.txt
37-
│ ├── intervals.list
38-
│ ├── ref.tar.gz
34+
│ ├── greetings.csv
35+
│ ├── ref
3936
│ ├── sample_bams.txt
4037
│ └── samplesheet.csv
41-
├── hello-gatk.nf
42-
├── hello-modules.nf
43-
├── hello-nf-test.nf
38+
├── hello-config
39+
│ ├── demo-params.json
40+
│ ├── main.nf
41+
│ └── nextflow.config
42+
├── hello-containers.nf
43+
├── hello-genomics.nf
44+
├── hello-modules
45+
│ ├── demo-params.json
46+
│ ├── main.nf
47+
│ └── nextflow.config
48+
├── hello-nf-test
49+
│ ├── demo-params.json
50+
│ ├── main.nf
51+
│ └── nextflow.config
52+
├── hello-operators.nf
4453
├── hello-world.nf
4554
├── nextflow.config
46-
└── scripts
47-
├── hello-gatk-1.nf
48-
├── hello-gatk-2.nf
49-
├── hello-gatk-3.nf
50-
├── hello-gatk-4.nf
51-
├── hello-gatk-5.nf
52-
├── hello-gatk-6.nf
53-
├── hello-modules-1.nf
54-
├── hello-modules-2.nf
55-
├── hello-modules-3.nf
56-
├── hello-world-10.nf
57-
├── hello-world-1.nf
58-
├── hello-world-2.nf
59-
├── hello-world-3.nf
60-
├── hello-world-4.nf
61-
├── hello-world-5.nf
62-
├── hello-world-6.nf
63-
├── hello-world-7.nf
64-
├── hello-world-8.nf
65-
├── hello-world-9.nf
66-
├── modules
67-
│ └── local
68-
│ ├── gatk
69-
│ │ ├── haplotypecaller
70-
│ │ │ └── main.nf
71-
│ │ └── jointgenotyping
72-
│ │ ├── main.nf
73-
│ │ └── tests
74-
│ │ └── inputs
75-
│ │ ├── family_trio_map.tsv
76-
│ │ ├── reads_father.bam.g.vcf
77-
│ │ ├── reads_father.bam.g.vcf.idx
78-
│ │ ├── reads_mother.bam.g.vcf
79-
│ │ ├── reads_mother.bam.g.vcf.idx
80-
│ │ ├── reads_son.bam.g.vcf
81-
│ │ └── reads_son.bam.g.vcf.idx
82-
│ └── samtools
83-
│ └── index
84-
│ └── main.nf
85-
└── nextflow.config
86-
87-
12 directories, 43 files
88-
55+
└── solutions
56+
├── hello-config
57+
├── hello-genomics
58+
├── hello-modules
59+
├── hello-nf-test
60+
├── hello-operators
61+
└── hello-world
62+
63+
18 directories, 17 files
8964
```
9065

91-
Each file will be used in this training module.
66+
!!!note
9267

93-
**The `data` directory** contains the input data we'll use in Part 2: Hello GATK, which uses an example from genomics to demonstrate how to build a simple analysis pipeline. The data is described in detail in that section of the training.
68+
Don't worry if this seems like a lot; we'll go through the relevant pieces at each step of the course.
69+
This is just meant to give you an overview.
9470

95-
**The `scripts` directory** contains the completed workflow scripts that result from each step of the tutorial and are intended to be used as a reference to check your work. The name and number in the filename correspond to the step of the relevant tutorial. For example, the file `hello-world-4.nf` is the expected result of completing steps 1 through 4 of Part 1: Hello World.
71+
**Here's a summary of what you should know to get started:**
9672

97-
**The file `greetings.txt`** is a plain text file used to provide inputs in Part 1: Hello World.
73+
- **The `.nf` files** are workflow scripts that are named based on what part of the course they're used in.
9874

99-
**The file `hello-gatk.nf`** is a stub that serves as a starting point to Part 2: Hello GATK. In its initial state, it is NOT a functional workflow script.
75+
- **The `hello-*` directories** are directories used in the later Parts of the course where we are working with more than just one workflow file.
10076

101-
**The file `hello-world.nf`** is a simple but fully functional workflow script that serves as a starting point to Part 1: Hello World.
77+
- **The file `nextflow.config`** is a configuration file that sets minimal environment properties.
78+
You can ignore it for now.
79+
80+
- **The `data` directory** contains the input data we'll use in most of the course. The dataset is described in detail in Part 3, when we introduce it for the first time.
81+
82+
- **The `solutions` directory** contains the completed workflow scripts that result from each step of the course.
83+
They are intended to be used as a reference to check your work and troubleshoot any issues.
84+
The name and number in the filename correspond to the step of the relevant part of the course.
85+
For example, the file `hello-world-4.nf` is the expected result of completing steps 1 through 4 of Part 1: Hello World.
86+
87+
!!!tip
88+
89+
If for whatever reason you move out of this directory, you can always run this command to return to it:
90+
91+
```bash
92+
cd /workspace/gitpod/hello-nextflow
93+
```
10294

103-
**The file `nextflow.config`** is a configuration file that sets minimal environment properties.
95+
Now, to begin the course, click on the arrow in the bottom right corner of this page.

0 commit comments

Comments
 (0)