Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
43f9e18
update
yueqixuan Mar 14, 2026
dcd655b
update
yueqixuan Mar 14, 2026
5ca9570
update
yueqixuan Mar 16, 2026
0b59869
update
yueqixuan Mar 16, 2026
6f4e705
update
yueqixuan Mar 16, 2026
7eb3ee5
update
yueqixuan Mar 16, 2026
49a8d4b
update
yueqixuan Mar 17, 2026
e60641a
Merge pull request #11 from yueqixuan/dev
ypriverol Mar 17, 2026
a486339
Refactoring ongoing for quantmsdiann
ypriverol Mar 17, 2026
4019e36
remove some unnecesary files
ypriverol Mar 17, 2026
20a8dc1
minor changes
ypriverol Mar 17, 2026
20026d0
minor changes
ypriverol Mar 17, 2026
2cbbfa4
minor changes in pre-commit
ypriverol Mar 17, 2026
ffbcab1
add diann_no_peptidoforms
yueqixuan Mar 18, 2026
9e04fbf
minor changes in the CI/CD
ypriverol Mar 18, 2026
da61329
Merge pull request #13 from yueqixuan/yasset-refactoring
ypriverol Mar 18, 2026
d324b1e
Resstructured
ypriverol Mar 18, 2026
34f89db
Merge branch 'yasset-refactoring' of https://github.com/bigbio/quantm…
ypriverol Mar 18, 2026
03bc050
minor changes AGENTS.md
ypriverol Mar 18, 2026
c7165b1
Minor changes in AGENTS.md
ypriverol Mar 18, 2026
0951dab
minor changes in the gitignore
ypriverol Mar 18, 2026
b58fc98
improve in the CI/CD and more cleanning
ypriverol Mar 18, 2026
030e148
minor changes in CI/CD to know the DIANN version
ypriverol Mar 18, 2026
4ecedf7
README updated
ypriverol Mar 18, 2026
deb26ae
minor change in the README
ypriverol Mar 18, 2026
d87d01b
Minor changes to README.md
ypriverol Mar 18, 2026
1578e01
small changes
ypriverol Mar 18, 2026
9fa7dc1
minor changes from code review
ypriverol Mar 18, 2026
403c0ff
small changes
yueqixuan Mar 18, 2026
2038a34
Merge pull request #14 from yueqixuan/yasset-refactoring
ypriverol Mar 18, 2026
ad06d1b
minor change
ypriverol Mar 18, 2026
6de7c7f
Merge pull request #12 from bigbio/yasset-refactoring
ypriverol Mar 18, 2026
95d478d
update workflow image
ypriverol Mar 19, 2026
2785ce3
minor change
ypriverol Mar 19, 2026
12034a0
Minro changes
ypriverol Mar 19, 2026
b82d16d
minor changes in the TEMPLATES
ypriverol Mar 19, 2026
d73a235
first version preparation 1.0.0
ypriverol Mar 19, 2026
6add912
minor changes
ypriverol Mar 19, 2026
a8cb4ec
Minor changes to the README
ypriverol Mar 19, 2026
9a465fa
pre-commit fixed
ypriverol Mar 19, 2026
a08473c
Merge pull request #16 from bigbio/yasset-refactoring
ypriverol Mar 19, 2026
bd27653
improvements to use DIANN convert
ypriverol Mar 22, 2026
cdf8193
add new params for Synchro-PASEF
yueqixuan Mar 23, 2026
07c9cc5
fix
yueqixuan Mar 23, 2026
d09a1b3
Merge pull request #18 from yueqixuan/dev
ypriverol Mar 23, 2026
0d3f787
minor changes var_mod vs monitor-mod
ypriverol Mar 23, 2026
b12a9f9
Merge branch 'dev' of https://github.com/bigbio/quantmsdiann into yas…
ypriverol Mar 23, 2026
95c7dda
Minor changes to capture DIANN version
ypriverol Mar 24, 2026
64ccaf4
specify version for 1.8.1
ypriverol Mar 24, 2026
4e72dbe
minor changes
ypriverol Mar 24, 2026
3dfa38c
update
yueqixuan Mar 29, 2026
c32dc0c
Merge pull request #20 from yueqixuan/yasset-refactoring
ypriverol Mar 30, 2026
c46b7dc
extract calibration params to meta
yueqixuan Mar 31, 2026
5061ed1
update
yueqixuan Mar 31, 2026
d3cc5bf
Merge pull request #22 from yueqixuan/yasset-refactoring
ypriverol Mar 31, 2026
4e4f0c9
fix
yueqixuan Mar 31, 2026
79ce89f
update
yueqixuan Mar 31, 2026
c7cf820
update
yueqixuan Mar 31, 2026
be2d488
update
yueqixuan Mar 31, 2026
bf77fd3
Merge pull request #23 from yueqixuan/yasset-refactoring
ypriverol Mar 31, 2026
fb9eb34
fix
yueqixuan Mar 31, 2026
0110a3d
update
yueqixuan Apr 1, 2026
a7db13b
update
yueqixuan Apr 1, 2026
bfde7a9
fix
yueqixuan Apr 1, 2026
c1921e1
Merge pull request #24 from yueqixuan/yasset-refactoring
ypriverol Apr 1, 2026
92c2721
Merge pull request #19 from bigbio/yasset-refactoring
ypriverol Apr 1, 2026
451df4d
fix: address CodeRabbit review findings across CI, metadata, and docs
ypriverol Apr 2, 2026
c366912
fix: address PR #27 review findings — critical bugs and important issues
ypriverol Apr 2, 2026
84ccf05
fix: remove stale MSstats/percolator/luciphor references
ypriverol Apr 2, 2026
9193bc8
fix: resolve nf-core lint failures and CI compilation error
ypriverol Apr 2, 2026
ded3f3b
Update .github/workflows/fix_linting.yml
ypriverol Apr 2, 2026
cd8b71d
Update .nf-core.yml
ypriverol Apr 2, 2026
9c4d0fa
fix: resolve remaining nf-core lint warnings
ypriverol Apr 2, 2026
f694be5
feat: update thermorawfileparser module to latest version
ypriverol Apr 2, 2026
24af410
refactor: remove unused nf-core/multiqc module
ypriverol Apr 2, 2026
829feee
fix: add empty modules key to nf-core repo in modules.json
ypriverol Apr 2, 2026
9bf337b
fix: add trailing newline to modules.json
ypriverol Apr 2, 2026
adcd37b
fix: critical Nextflow channel bugs and important code quality issues
ypriverol Apr 2, 2026
fadde8e
fix: address Copilot review comments on PR #27
ypriverol Apr 2, 2026
c6aa1dd
style: standardize on lowercase channel (nf-core convention)
ypriverol Apr 2, 2026
5dd30c7
release: prepare v1.0.0 — first release of quantmsdiann
ypriverol Apr 2, 2026
59d8938
fix: exclude modules.json from end-of-file-fixer pre-commit hook
ypriverol Apr 2, 2026
b7326fe
fix: ensure modules.json has trailing newline for pre-commit
ypriverol Apr 2, 2026
07ca706
Minor updates
yueqixuan Apr 3, 2026
a933eef
update
yueqixuan Apr 3, 2026
893ebe8
update
yueqixuan Apr 3, 2026
b2477cc
Merge pull request #28 from yueqixuan/dev
ypriverol Apr 3, 2026
33d9f91
fix: restrict MZML_STATISTICS input to .mzML files only
ypriverol Apr 3, 2026
fd4f76e
Add --no-prot-inf to PRELIMINARY_ANALYSIS to suppress protein inferen…
ypriverol Apr 3, 2026
f5dd103
Add Bruker/timsTOF mass accuracy documentation and warning
ypriverol Apr 3, 2026
4192629
Add Bruker/timsTOF auto-calibration warning and documentation
ypriverol Apr 3, 2026
43cbd6d
fix: improve Bruker/timsTOF warning to recommend SDRF or params
ypriverol Apr 3, 2026
1b0154f
Minor update
yueqixuan Apr 3, 2026
4a36fa5
Merge pull request #31 from yueqixuan/fix/suppress-prot-inf-warning
ypriverol Apr 3, 2026
616ea92
Merge pull request #29 from bigbio/fix/suppress-prot-inf-warning
ypriverol Apr 3, 2026
3aa225f
Merge branch 'dev' into feat/bruker-autocalibration-warning
ypriverol Apr 3, 2026
be690ee
Merge pull request #30 from bigbio/feat/bruker-autocalibration-warning
ypriverol Apr 3, 2026
ac29cf3
docs: add v1.0.0 release roadmap design spec
ypriverol Apr 3, 2026
397866f
chore: remove release roadmap design doc from dev
ypriverol Apr 3, 2026
ee40d18
Update .github/ISSUE_TEMPLATE/config.yml
ypriverol Apr 4, 2026
69e6ccc
Update .github/workflows/fix_linting.yml
ypriverol Apr 4, 2026
f972ed2
fix: address remaining Copilot review items
ypriverol Apr 4, 2026
7a7b124
docs: comprehensive documentation -- parameters.md, usage.md, output.…
ypriverol Apr 4, 2026
96e3644
style: apply prettier formatting to parameters.md
ypriverol Apr 4, 2026
67b8d01
fix: rename all stale bigbio/quantms references to bigbio/quantmsdiann
ypriverol Apr 4, 2026
05e8b26
docs: improve README with updated DIA-NN versions and quick start
ypriverol Apr 5, 2026
1c128f5
docs: add parameters link to docs/README.md
ypriverol Apr 5, 2026
86b71f7
fix: remove redundant .first() on ch_diann_cfg and clean up stale TODOs
ypriverol Apr 5, 2026
c8889cc
fix: only pass --direct-quant for DIA-NN >= 1.9.2
ypriverol Apr 5, 2026
14fb480
docs: document version-dependent features and update version table
ypriverol Apr 5, 2026
085cbb0
Remove unused logo
yueqixuan Apr 5, 2026
7e033e6
Remove unused logo
yueqixuan Apr 5, 2026
0043700
fix: address PR #27 review comments
ypriverol Apr 5, 2026
f0e50eb
fix: remove TDF2MZML .d-to-mzML conversion step
ypriverol Apr 5, 2026
d896088
fix: use exec block for log parsing instead of executor local
ypriverol Apr 5, 2026
dd3dfbb
Merge pull request #33 from yueqixuan/dev
ypriverol Apr 5, 2026
76bf1db
refactor: remove PARSE_EMPIRICAL_LOG and empirical_assembly_log param
ypriverol Apr 5, 2026
eb17e68
fix: remove redundant database validation check
ypriverol Apr 5, 2026
6fd5b0a
style: fix prettier formatting in parameters.md
ypriverol Apr 5, 2026
5987a9d
fix: restore nf-core lint exclusions for missing template files
ypriverol Apr 5, 2026
2d0e2fa
fix: use file output instead of env for calibrated params
ypriverol Apr 5, 2026
74c0ca4
fix: parse calibrated params from log via channel map
ypriverol Apr 5, 2026
b87ace5
fix: clean up lint config and align meta.yml with process interfaces
ypriverol Apr 6, 2026
912360a
fix: restore nf-core lint exclusions for missing template files
ypriverol Apr 6, 2026
cdca8e1
fix: replace stale quantms references with quantmsdiann
ypriverol Apr 6, 2026
e256d74
fix: remove missing pipeline-specific nf-core config include
ypriverol Apr 6, 2026
25871fb
fix: restore pipeline config include pointing to quantms.config
ypriverol Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
172 changes: 172 additions & 0 deletions .claude/actions_plans.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
# quantmsdiann — Action Plans & Roadmap

> Standalone DIA-NN (DIA) pipeline refactored from quantms.
> Last updated: 2026-03-18

---

## Phase 1 — Cleanup & Correctness (COMPLETED)

**Goal**: Remove legacy quantms artifacts that don't belong in a DIA-only pipeline.

### 1.1 Remove non-DIA test profiles from CI

- **Files**: `.github/workflows/ci.yml`, `.github/workflows/extended_ci.yml`
- **Action**: Removed `test_lfq`, `test_tmt`, `test_localize`, `test_dda_id_*`, `test_tmt_corr` from CI matrices. Updated repository reference from `bigbio/quantms` to `bigbio/quantmsdiann`.
- **Status**: [x] DONE

### 1.2 Remove MSstats analysis step

- **Files**: `workflows/dia.nf`, `workflows/quantmsdiann.nf`, `modules/local/msstats/`, `bin/msstats_plfq.R`, `nextflow.config`, `conf/modules/shared.config`
- **Action**: Removed MSSTATS_LFQ module, R script, and all MSstats analysis parameters. Kept DIANN_MSSTATS conversion step (generates MSstats-compatible CSV without running MSstats analysis). Removed MSstats general and LFQ options from nextflow.config.
- **Status**: [x] DONE

### 1.3 Clean parameter schema and config

- **Files**: `nextflow.config`, `nextflow_schema.json`
- **Action**: Removed `id_only` parameter and `statistical_post_processing` schema section. Updated manifest name to `bigbio/quantmsdiann`. Removed dead publishDir rules from shared.config. Created missing nf-core lint files (logos, docs/README.md).
- **Status**: [x] DONE

### 1.4 Update documentation

- **Files**: `README.md`, `docs/usage.md`, `docs/output.md`, `AGENTS.md`
- **Action**: Rewrote README with DIA-NN workflow SVG diagram. Rewrote AGENTS.md for DIA-only. Cleaned docs. Removed 10 legacy quantms images from docs/images/, created `quantmsdiann_workflow.svg`.
- **Status**: [x] DONE

### 1.5 Remove unused modules and files

- **Action**: Removed `modules/local/msstats/`, `bin/msstats_plfq.R`, `.devcontainer/`, `diann_private.yml`. Cleaned all legacy quantms images.
- **Status**: [x] DONE

---

## Phase 1b — Version-Aware Testing Strategy (COMPLETED)

**Goal**: Map each DIA-NN feature to the minimum version that supports it, with conditional CI.

### DIA-NN Version → Feature Matrix

| Version | Key Features | Container |
| ------- | ------------ | --------- |
| **1.8.1** (default) | Core DIA-NN workflow, library-free, .quant caching | `biocontainers/diann:v1.8.1_cv1` (public) |
| **1.9.2** | QuantUMS quantification, Parquet libraries, redesigned NN | `ghcr.io/bigbio/diann:1.9.2` (private, needs build) |
| **2.0** | Parquet output, proteoform confidence, decoy reporting | `ghcr.io/bigbio/diann:2.1.0` (private) |
| **2.1.0** | Native .raw on Linux, latest improvements | `ghcr.io/bigbio/diann:2.1.0` (private) |
| **2.2.0** | Latest release | `ghcr.io/bigbio/diann:latest` (private, needs build) |

### Test Profiles Created

| Profile | Feature Tested | Min DIA-NN | Container |
| ------- | -------------- | ---------- | --------- |
| `test_dia` | Core workflow | 1.8.1 | biocontainers (public) |
| `test_dia_dotd` | Bruker .d format | 1.8.1 | biocontainers (public) |
| `test_dia_quantums` | QuantUMS quantification | 1.9.2 | ghcr.io/bigbio/diann:2.1.0 |
| `test_dia_parquet` | Parquet output + decoys | 2.0 | ghcr.io/bigbio/diann:2.1.0 |
| `test_latest_dia` | Latest version validation | latest | ghcr.io/bigbio/diann:2.1.0 |
| `test_full_dia` | Full-size dataset | 1.8.1 | biocontainers (public) |

### CI/CD Structure

**ci.yml** (every PR, fast):
- `test_dia`, `test_dia_dotd` — public containers, no auth needed

**extended_ci.yml** (5 jobs):
1. **test-default** — always runs `test_dia`, `test_dia_dotd` (Docker, 2 NXF versions)
2. **detect-changes** — uses `dorny/paths-filter` to detect which feature files changed
3. **test-features** — always runs on push to dev/master, releases, manual dispatch: `test_latest_dia`, `test_dia_quantums`, `test_dia_parquet`
4. **test-features-pr** — runs on PRs only when relevant files change (conditional per-feature)
5. **test-singularity** — default tests only, after Docker passes

### Container Build Needed

- **DIA-NN 1.9.2**: Dockerfile created at `quantms-containers/diann-1.9.2/Dockerfile`. Needs to be built and pushed to `ghcr.io/bigbio/diann:1.9.2`.
- **DIA-NN 2.2.0**: Need Dockerfile when ready to test latest.

### Status: [x] DONE

---

## Phase 2 — DIA-NN 2.x Full Support

**Goal**: Make DIA-NN 2.1.0 a first-class citizen, leverage Parquet-native output.

### 2.1 Promote DIA-NN 2.1.0 to default

- **Files**: All `modules/local/diann/*/main.nf`, `nextflow.config`
- **Action**: Update default container from `diann:v1.8.1_cv1` to `diann:2.1.0`. Keep 1.8.1 available as a fallback profile.
- **Dependencies**: Verify all 7 DIA-NN modules work with 2.1.0 CLI changes.
- **Effort**: Medium
- **Status**: [ ] TODO

### 2.2 Parquet-native pipeline path

- **Files**: `modules/local/diann/final_quantification/main.nf`, `modules/local/diann/diann_msstats/main.nf`
- **Action**: Ensure DIANN_MSSTATS handles Parquet input end-to-end. Validated by `test_dia_parquet` CI profile.
- **Effort**: Medium
- **Status**: [ ] TODO

### 2.3 DIA-NN version parameter

- **Files**: `nextflow.config`, `nextflow_schema.json`
- **Action**: Add a `diann_version` parameter that switches container images without needing separate profiles.
- **Effort**: Medium
- **Status**: [ ] TODO

---

## Phase 3 — Performance & Scalability

**Goal**: Optimize resource usage and execution for large-scale DIA studies.

### 3.1 Smarter pre-analysis file selection

- **Files**: `workflows/dia.nf`
- **Action**: Implement stratified selection (by condition/batch from SDRF) instead of purely random.
- **Effort**: Medium
- **Status**: [ ] TODO

### 3.2 Resource profiling and tuning

- **Files**: `conf/base.config`
- **Action**: Profile resource usage across dataset sizes. Adjust labels. Consider dynamic allocation.
- **Effort**: Medium
- **Status**: [ ] TODO

### 3.3 GPU support profile

- **Files**: `conf/gpu.config` (new), `modules/local/diann/*/main.nf`
- **Action**: Create `gpu` profile with NVIDIA runtime, `accelerator` directives, GPU container.
- **Effort**: Medium-Large
- **Status**: [ ] TODO

### 3.4 Improved caching strategy

- **Files**: DIA-NN modules
- **Action**: Evaluate `storeDir` for expensive steps (library generation, preliminary analysis).
- **Effort**: Small
- **Status**: [ ] TODO

---

## Priority Summary

| Priority | Phase | Items | Timeline |
| --------------- | -------- | --------------------------- | -------------------- |
| **Done** | Phase 1 | 1.1-1.5 (cleanup) | Completed 2026-03-17 |
| **Done** | Phase 1b | Version-aware testing | Completed 2026-03-18 |
| **Short-term** | Phase 2 | 2.1-2.3 (DIA-NN 2.x) | 1-2 weeks |
| **Medium-term** | Phase 3 | 3.1-3.4 (performance) | 2-4 weeks |

---

## Decision Log

| Date | Decision | Rationale |
| ---------- | ------------------------------------------------ | ---------------------------------------------------------------------------- |
| 2026-03-17 | Created roadmap from quantms dev comparison | Align refactoring priorities |
| 2026-03-17 | Completed Phase 1 cleanup | Remove all non-DIA artifacts |
| 2026-03-17 | Keep DIANN_MSSTATS, remove MSSTATS_LFQ | Generate MSstats-compatible CSV but don't run MSstats analysis in-pipeline |
| 2026-03-17 | Removed Phases 4-6 (quantification, QC, interop) | pmultiqc already covers QC; downstream analysis/interop out of scope for now |
| 2026-03-18 | Version-aware testing with conditional CI | Each feature maps to min DIA-NN version; PRs only run affected feature tests |
| 2026-03-18 | DIA-NN containers are private (license) | Academic-only license; GHCR_USERNAME + GHCR_TOKEN secrets required |
| 2026-03-18 | Created DIA-NN 1.9.2 Dockerfile | Needed for QuantUMS feature testing at minimum supported version |
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*.config linguist-language=nextflow
*.nf.test linguist-language=nextflow
modules/nf-core/** linguist-generated
subworkflows/nf-core/** linguist-generated
6 changes: 6 additions & 0 deletions .github/.dockstore.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Dockstore config version, not pipeline version
version: 1.2
workflows:
- subclass: NFL
primaryDescriptorPath: /nextflow.config
publish: True
125 changes: 125 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# `bigbio/quantmsdiann`: Contributing Guidelines

Hi there!
Many thanks for taking an interest in improving bigbio/quantmsdiann.

We try to manage the required tasks for bigbio/quantmsdiann using GitHub issues, you probably came to this page when creating one.
Please use the pre-filled template to save time.

However, don't be put off by this template - other more general issues and suggestions are welcome!
Contributions to the code are even more welcome ;)

> [!NOTE]
> If you need help using or modifying bigbio/quantmsdiann or bigbio/quantms then the best place to ask is on the nf-core Slack [#quantms](https://nfcore.slack.com/channels/quantms) channel ([join our Slack here](https://nf-co.re/join/slack)).

## Contribution workflow

If you'd like to write some code for bigbio/quantmsdiann, the standard workflow is as follows:

1. Check that there isn't already an issue about your idea in the [bigbio/quantmsdiann issues](https://github.com/bigbio/quantmsdiann/issues) to avoid duplicating work. If there isn't one already, please create one so that others know you're working on this
2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [bigbio/quantmsdiann repository](https://github.com/bigbio/quantmsdiann) to your GitHub account
3. Make the necessary changes / additions within your forked repository following [Pipeline conventions](#pipeline-contribution-conventions)
4. Use `nf-core pipelines schema build` and add any new parameters to the pipeline JSON schema (requires [nf-core tools](https://github.com/nf-core/tools) >= 1.10).
5. Submit a Pull Request against the `dev` branch and wait for the code to be reviewed and merged

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/).

## Tests

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:

```bash
nf-test test --profile debug,test,docker --verbose
```

When you create a pull request with changes, [GitHub Actions](https://github.com/features/actions) will run automatic tests.
Typically, pull-requests are only fully reviewed when these tests are passing, though of course we can help out before then.

There are typically two types of tests that run:

### Lint tests

`nf-core` has a [set of guidelines](https://nf-co.re/developers/guidelines) which all pipelines must adhere to.
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 pipelines lint <pipeline-directory>` command.

If any failures or warnings are encountered, please follow the listed URL for more documentation.

### Pipeline tests

Each `nf-core` pipeline should be set up with a minimal set of test-data.
`GitHub Actions` then runs the pipeline on this data to ensure that it exits successfully.
If there are any failures then the automated tests fail.
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.

## Patch

:warning: Only in the unlikely and regretful event of a release happening with a bug.

- On your own fork, make a new branch `patch` based on `upstream/main`.
- Fix the bug, and bump version (X.Y.Z+1).
- Open a pull-request from `patch` to `main` with the changes.

## Getting help

For further information/help, please consult the [bigbio/quantmsdiann documentation](https://docs.quantms.org/en/latest/usage.html) and don't hesitate to get in touch on the nf-core Slack [#quantms](https://nfcore.slack.com/channels/quantms) channel ([join our Slack here](https://nf-co.re/join/slack)).

## Pipeline contribution conventions

To make the `bigbio/quantmsdiann` 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.

### Adding a new step

If you wish to contribute a new step, please use the following coding standards:

1. Define the corresponding input channel into your new process from the expected previous process channel.
2. Write the process block (see below).
3. Define the output channel if needed (see below).
4. Add any new parameters to `nextflow.config` with a default (see below).
5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core pipelines schema build` tool).
6. Add sanity checks and validation for all relevant parameters.
7. Perform local tests to validate that the new code works as expected.
8. If applicable, add a new test in the `tests` directory.
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://multiqc.info/) module.
10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`.

### Default values

Parameters should be initialised / defined with default values within the `params` scope in `nextflow.config`.

Once there, use `nf-core pipelines schema build` to add to `nextflow_schema.json`.

### Default processes resource requirements

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/main/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.

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.

### Naming schemes

Please use the following naming schemes, to make it easy to understand what is going where.

- initial process channel: `ch_output_from_<process>`
- intermediate and terminal channels: `ch_<previousprocess>_for_<nextprocess>`

### Nextflow version bumping

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 pipelines bump-version --nextflow . [min-nf-version]`

### Images and figures

For overview images and other documents we follow the nf-core [style guidelines and examples](https://nf-co.re/developers/design_guidelines).

## GitHub Codespaces

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.

To get started:

- Open the repo in [Codespaces](https://github.com/bigbio/quantmsdiann/codespaces)
- Tools installed
- nf-core
- Nextflow

Devcontainer specs:

- [DevContainer config](.devcontainer/devcontainer.json)
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Bug report
description: Report something that is broken or incorrect
labels: bug
body:
- type: textarea
id: description
attributes:
label: Description of the bug
description: A clear and concise description of what the bug is.
validations:
required: true

- type: textarea
id: command_used
attributes:
label: Command used and terminal output
description: Steps to reproduce the behaviour. Please paste the command you used to launch the pipeline and the output from your terminal.
render: console
placeholder: |
$ nextflow run ...

Some output where something broke

- type: textarea
id: files
attributes:
label: Relevant files
description: |
Please drag and drop the relevant files here. Create a `.zip` archive if the extension is not allowed.
Your verbose log file `.nextflow.log` is often useful _(this is a hidden file in the directory where you launched the pipeline)_ as well as custom Nextflow configuration files.

- type: textarea
id: system
attributes:
label: System information
description: |
* Nextflow version _(eg. 23.04.0)_
* Hardware _(eg. HPC, Desktop, Cloud)_
* Executor _(eg. slurm, local, awsbatch)_
* Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter, Charliecloud, or Apptainer)_
* OS _(eg. CentOS Linux, macOS, Linux Mint)_
* Version of bigbio/quantmsdiann _(eg. 1.1, 1.5, 1.8.2)_
7 changes: 7 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
contact_links:
- name: Join nf-core
url: https://nf-co.re/join
about: Please join the nf-core community here
- name: "Slack #quantms channel"
url: https://nfcore.slack.com/channels/quantms
about: Discussion about the bigbio/quantmsdiann pipeline
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Feature request
description: Suggest an idea for the bigbio/quantmsdiann pipeline
labels: enhancement
body:
- type: textarea
id: description
attributes:
label: Description of feature
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.
validations:
required: true
Loading
Loading