Skip to content

Commit 24a8f50

Browse files
authored
Merge pull request #59 from PlantandFoodResearch/dev
Candidate for 0.4.0
2 parents 6713761 + 0acb62b commit 24a8f50

File tree

371 files changed

+23308
-6428
lines changed

Some content is hidden

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

371 files changed

+23308
-6428
lines changed

.devcontainer/devcontainer.json

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"name": "nfcore",
3+
"image": "nfcore/gitpod:latest",
4+
"remoteUser": "gitpod",
5+
"runArgs": ["--privileged"],
6+
7+
// Configure tool-specific properties.
8+
"customizations": {
9+
// Configure properties specific to VS Code.
10+
"vscode": {
11+
// Set *default* container specific settings.json values on container create.
12+
"settings": {
13+
"python.defaultInterpreterPath": "/opt/conda/bin/python"
14+
},
15+
16+
// Add the IDs of extensions you want installed when the container is created.
17+
"extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"]
18+
}
19+
}
20+
}

.editorconfig

+10-19
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ trim_trailing_whitespace = true
88
indent_size = 4
99
indent_style = space
1010

11-
[*.{md,yml,yaml,html,css,scss,js,cff}]
11+
[*.{md,yml,yaml,html,css,scss,js}]
1212
indent_size = 2
1313

1414
# These files are edited and tested upstream in nf-core/modules
@@ -18,43 +18,34 @@ end_of_line = unset
1818
insert_final_newline = unset
1919
trim_trailing_whitespace = unset
2020
indent_style = unset
21-
indent_size = unset
22-
2321
[/subworkflows/nf-core/**]
2422
charset = unset
2523
end_of_line = unset
2624
insert_final_newline = unset
2725
trim_trailing_whitespace = unset
2826
indent_style = unset
27+
28+
[/assets/email*]
2929
indent_size = unset
3030

31-
# These files are edited and tested upstream in pfr/modules
32-
[/modules/pfr/**]
31+
# ignore python and markdown
32+
[*.{py,md}]
33+
indent_style = unset
34+
35+
# These files are edited and tested upstream in gallvp/modules,subworkflows
36+
[/modules/gallvp/**]
3337
charset = unset
3438
end_of_line = unset
3539
insert_final_newline = unset
3640
trim_trailing_whitespace = unset
3741
indent_style = unset
38-
indent_size = unset
3942

40-
[/subworkflows/pfr/**]
43+
[/subworkflows/gallvp/**]
4144
charset = unset
4245
end_of_line = unset
4346
insert_final_newline = unset
4447
trim_trailing_whitespace = unset
4548
indent_style = unset
46-
indent_size = unset
47-
48-
[/assets/email*]
49-
indent_size = unset
50-
51-
# ignore Readme
52-
[README.md]
53-
indent_style = unset
54-
55-
# ignore python
56-
[*.{py}]
57-
indent_style = unset
5849

5950
# ignore perl
6051
[*.{pl,pm}]

.gitattributes

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
*.config linguist-language=nextflow
2+
*.nf.test linguist-language=nextflow
3+
modules/nf-core/** linguist-generated
4+
subworkflows/nf-core/** linguist-generated

.github/.dockstore.yml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Dockstore config version, not pipeline version
2+
version: 1.2
3+
workflows:
4+
- subclass: nfl
5+
primaryDescriptorPath: /nextflow.config
6+
publish: True

.github/CONTRIBUTING.md

+118
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
# plant-food-research-open/genepal: Contributing Guidelines
2+
3+
Hi there!
4+
Many thanks for taking an interest in improving plant-food-research-open/genepal.
5+
6+
We try to manage the required tasks for plant-food-research-open/genepal using GitHub issues, you probably came to this page when creating one.
7+
Please use the pre-filled template to save time.
8+
9+
However, don't be put off by this template - other more general issues and suggestions are welcome!
10+
Contributions to the code are even more welcome ;)
11+
12+
## Contribution workflow
13+
14+
If you'd like to write some code for plant-food-research-open/genepal, the standard workflow is as follows:
15+
16+
1. Check that there isn't already an issue about your idea in the [plant-food-research-open/genepal issues](https://github.com/plant-food-research-open/genepal/issues) to avoid duplicating work. If there isn't one already, please create one so that others know you're working on this
17+
2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [plant-food-research-open/genepal repository](https://github.com/plant-food-research-open/genepal) to your GitHub account
18+
3. Make the necessary changes / additions within your forked repository following [Pipeline conventions](#pipeline-contribution-conventions)
19+
4. Use `nf-core schema build` and add any new parameters to the pipeline JSON schema (requires [nf-core tools](https://github.com/nf-core/tools) >= 1.10).
20+
5. Submit a Pull Request against the `dev` branch and wait for the code to be reviewed and merged
21+
22+
If you're not used to this workflow with git, you can start with some [docs from GitHub](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests) or even their [excellent `git` resources](https://try.github.io/).
23+
24+
## Tests
25+
26+
You have the option to test your changes locally by running the pipeline. For receiving warnings about process selectors and other `debug` information, it is recommended to use the debug profile. Execute all the tests with the following command:
27+
28+
```bash
29+
nf-test test --profile debug,test,docker --verbose
30+
```
31+
32+
When you create a pull request with changes, [GitHub Actions](https://github.com/features/actions) will run automatic tests.
33+
Typically, pull-requests are only fully reviewed when these tests are passing, though of course we can help out before then.
34+
35+
There are typically two types of tests that run:
36+
37+
### Lint tests
38+
39+
`nf-core` has a [set of guidelines](https://nf-co.re/developers/guidelines) which all pipelines must adhere to.
40+
To enforce these and ensure that all pipelines stay in sync, we have developed a helper tool which runs checks on the pipeline code. This is in the [nf-core/tools repository](https://github.com/nf-core/tools) and once installed can be run locally with the `nf-core lint <pipeline-directory>` command.
41+
42+
If any failures or warnings are encountered, please follow the listed URL for more documentation.
43+
44+
### Pipeline tests
45+
46+
Each `nf-core` pipeline should be set up with a minimal set of test-data.
47+
`GitHub Actions` then runs the pipeline on this data to ensure that it exits successfully.
48+
If there are any failures then the automated tests fail.
49+
These tests are run both with the latest available version of `Nextflow` and also the minimum required version that is stated in the pipeline code.
50+
51+
## Patch
52+
53+
:warning: Only in the unlikely and regretful event of a release happening with a bug.
54+
55+
- On your own fork, make a new branch `patch` based on `upstream/master`.
56+
- Fix the bug, and bump version (X.Y.Z+1).
57+
- A PR should be made on `master` from patch to directly this particular bug.
58+
59+
## Pipeline contribution conventions
60+
61+
To make the plant-food-research-open/genepal code and processing logic more understandable for new contributors and to ensure quality, we semi-standardise the way the code and other contributions are written.
62+
63+
### Adding a new step
64+
65+
If you wish to contribute a new step, please use the following coding standards:
66+
67+
1. Define the corresponding input channel into your new process from the expected previous process channel
68+
2. Write the process block (see below).
69+
3. Define the output channel if needed (see below).
70+
4. Add any new parameters to `nextflow.config` with a default (see below).
71+
5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core schema build` tool).
72+
6. Add sanity checks and validation for all relevant parameters.
73+
7. Perform local tests to validate that the new code works as expected.
74+
8. If applicable, add a new test command in `.github/workflow/ci.yml`.
75+
9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module.
76+
10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`.
77+
78+
### Default values
79+
80+
Parameters should be initialised / defined with default values in `nextflow.config` under the `params` scope.
81+
82+
Once there, use `nf-core schema build` to add to `nextflow_schema.json`.
83+
84+
### Default processes resource requirements
85+
86+
Sensible defaults for process resource requirements (CPUs / memory / time) for a process should be defined in `conf/base.config`. These should generally be specified generic with `withLabel:` selectors so they can be shared across multiple processes/steps of the pipeline. A nf-core standard set of labels that should be followed where possible can be seen in the [nf-core pipeline template](https://github.com/nf-core/tools/blob/master/nf_core/pipeline-template/conf/base.config), which has the default process as a single core-process, and then different levels of multi-core configurations for increasingly large memory requirements defined with standardised labels.
87+
88+
The process resources can be passed on to the tool dynamically within the process with the `${task.cpus}` and `${task.memory}` variables in the `script:` block.
89+
90+
### Naming schemes
91+
92+
Please use the following naming schemes, to make it easy to understand what is going where.
93+
94+
- initial process channel: `ch_output_from_<process>`
95+
- intermediate and terminal channels: `ch_<previousprocess>_for_<nextprocess>`
96+
97+
### Nextflow version bumping
98+
99+
If you are using a new feature from core Nextflow, you may bump the minimum required version of nextflow in the pipeline with: `nf-core bump-version --nextflow . [min-nf-version]`
100+
101+
### Images and figures
102+
103+
For overview images and other documents we follow the nf-core [style guidelines and examples](https://nf-co.re/developers/design_guidelines).
104+
105+
## GitHub Codespaces
106+
107+
This repo includes a devcontainer configuration which will create a GitHub Codespaces for Nextflow development! This is an online developer environment that runs in your browser, complete with VSCode and a terminal.
108+
109+
To get started:
110+
111+
- Open the repo in [Codespaces](https://github.com/plant-food-research-open/genepal/codespaces)
112+
- Tools installed
113+
- nf-core
114+
- Nextflow
115+
116+
Devcontainer specs:
117+
118+
- [DevContainer config](.devcontainer/devcontainer.json)

.github/ISSUE_TEMPLATE/bug_report.yml

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Bug report
2+
description: Report something that is broken or incorrect
3+
labels: bug
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: Description of the bug
9+
description: A clear and concise description of what the bug is.
10+
validations:
11+
required: true
12+
- type: textarea
13+
id: command_used
14+
attributes:
15+
label: Command used and terminal output
16+
description: Steps to reproduce the behaviour. Please paste the command you used
17+
to launch the pipeline and the output from your terminal.
18+
render: console
19+
placeholder: "$ nextflow run ...
20+
21+
22+
Some output where something broke
23+
24+
"
25+
- type: textarea
26+
id: files
27+
attributes:
28+
label: Relevant files
29+
description: "Please drag and drop the relevant files here. Create a `.zip` archive
30+
if the extension is not allowed.
31+
32+
Your verbose log file `.nextflow.log` is often useful _(this is a hidden file
33+
in the directory where you launched the pipeline)_ as well as custom Nextflow
34+
configuration files.
35+
36+
"
37+
- type: textarea
38+
id: system
39+
attributes:
40+
label: System information
41+
description: "* Nextflow version _(eg. 23.04.0)_
42+
43+
* Hardware _(eg. HPC, Desktop, Cloud)_
44+
45+
* Executor _(eg. slurm, local, awsbatch)_
46+
47+
* Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter, Charliecloud,
48+
or Apptainer)_
49+
50+
* OS _(eg. CentOS Linux, macOS, Linux Mint)_
51+
52+
* Version of plant-food-research-open/genepal _(eg. 1.1, 1.5, 1.8.2)_
53+
54+
"
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Feature request
2+
description: Suggest an idea for the plant-food-research-open/genepal pipeline
3+
labels: enhancement
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: Description of feature
9+
description: Please describe your suggestion for a new feature. It might help to describe a problem or use case, plus any alternatives that you have considered.
10+
validations:
11+
required: true

.github/PULL_REQUEST_TEMPLATE.md

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<!--
2+
# plant-food-research-open/genepal pull request
3+
4+
Many thanks for contributing to plant-food-research-open/genepal!
5+
6+
Please fill in the appropriate checklist below (delete whatever is not relevant).
7+
These are the most common things requested on pull requests (PRs).
8+
9+
Remember that PRs should be made against the dev branch, unless you're preparing a pipeline release.
10+
11+
Learn more about contributing: [CONTRIBUTING.md](https://github.com/plant-food-research-open/genepal/tree/master/.github/CONTRIBUTING.md)
12+
-->
13+
14+
## PR checklist
15+
16+
- [ ] This comment contains a description of changes (with reason).
17+
- [ ] If you've fixed a bug or added code that should be tested, add tests!
18+
- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/plant-food-research-open/genepal/tree/master/.github/CONTRIBUTING.md)
19+
- [ ] Make sure your code lints (`nf-core lint`).
20+
- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir <OUTDIR>`).
21+
- [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir <OUTDIR>`).
22+
- [ ] Usage Documentation in `docs/usage.md` is updated.
23+
- [ ] Output Documentation in `docs/output.md` is updated.
24+
- [ ] `CHANGELOG.md` is updated.
25+
- [ ] `README.md` is updated (including new tool citations and authors/contributors).

.github/contributors.sh

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env bash
2+
3+
module_authors=$(find ./modules -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '"' | tr '[:upper:]' '[:lower:]' | awk '{print $2}')
4+
workflow_authors=$(find ./subworkflows -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '"' | tr '[:upper:]' '[:lower:]' | awk '{print $2}')
5+
echo -e "${module_authors}\n${workflow_authors}" | sort -V | uniq -c | sort -k1,1 -r | awk '{print $2}' | sed -n 's|@\(.*\)|<a href="https://github.com/\1"><img src="https://github.com/\1.png" width="50" height="50"></a>|p'
File renamed without changes.

.github/workflows/branch.yml

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: nf-core branch protection
2+
# This workflow is triggered on PRs to master branch on the repository
3+
# It fails when someone tries to make a PR against the nf-core `master` branch instead of `dev`
4+
on:
5+
pull_request_target:
6+
branches: [master]
7+
8+
jobs:
9+
test:
10+
runs-on: ubuntu-latest
11+
steps:
12+
# PRs to the nf-core repo master branch are only ok if coming from the nf-core repo `dev` or any `patch` branches
13+
- name: Check PRs
14+
if: github.repository == 'Plant-Food-Research-Open/genepal'
15+
run: |
16+
{ [[ ${{github.event.pull_request.head.repo.full_name }} == Plant-Food-Research-Open/genepal ]] && [[ $GITHUB_HEAD_REF == "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]]
17+
18+
# If the above check failed, post a comment on the PR explaining the failure
19+
# NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets
20+
- name: Post PR comment
21+
if: failure()
22+
uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2
23+
with:
24+
message: |
25+
## This PR is against the `master` branch :x:
26+
27+
* Do not close this PR
28+
* Click _Edit_ and change the `base` to `dev`
29+
* This CI test will remain failed until you push a new commit
30+
31+
---
32+
33+
Hi @${{ github.event.pull_request.user.login }},
34+
35+
It looks like this pull-request is has been made against the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) `master` branch.
36+
The `master` branch on nf-core repositories should always contain code from the latest release.
37+
Because of this, PRs to `master` are only allowed if they come from the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) `dev` branch.
38+
39+
You do not need to close this PR, you can change the target branch to `dev` by clicking the _"Edit"_ button at the top of this page.
40+
Note that even after this, the test will continue to show as failing until you push a new commit.
41+
42+
Thanks again for your contribution!
43+
repo-token: ${{ secrets.GITHUB_TOKEN }}
44+
allow-repeats: false

0 commit comments

Comments
 (0)