Skip to content

Update NCI Gadi config and documentation#1096

Open
kisarur wants to merge 11 commits intonf-core:masterfrom
kisarur:nci_gadi_update2
Open

Update NCI Gadi config and documentation#1096
kisarur wants to merge 11 commits intonf-core:masterfrom
kisarur:nci_gadi_update2

Conversation

@kisarur
Copy link
Copy Markdown

@kisarur kisarur commented Apr 23, 2026


name: Update NCI Gadi config and documentation
about: Update nci_gadi.config to support strict syntax, include other improvements, and refine the documentation.

Please follow these steps before submitting your PR:

  • If your PR is a work in progress, include [WIP] in its title
  • Your PR targets the master branch
  • You've included links to relevant issues, if any

Steps for adding a new config profile:

  • Add your custom config file to the conf/ directory
  • Add your documentation file to the docs/ directory
  • Add your custom profile to the nfcore_custom.config file in the top-level directory
  • Add your profile name to the profile: scope in .github/workflows/main.yml
  • OPTIONAL: Add your custom profile path and GitHub user name to .github/CODEOWNERS (**/<custom-profile>** @<github-username>)

@kisarur kisarur mentioned this pull request Apr 23, 2026
9 tasks
Comment thread conf/nci_gadi.config
Comment on lines +25 to +26
project = "${params.project}"
storage = "${params.storage}"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Process doesn't have any of these directives?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version of Nextflow installed on Gadi has been modified to introduce these two new directives (see the docs). A note has been added to nci_gadi.md about this too.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's certainly... creative.

I'd strongly recommend using clusterOptions instead, both because it allows users to bring their own versions of nextflow and use them with the profile (e.g. if there's a lag in providing updated versions required for running some pipeline). It would also help if linting starts complaining for unknown directives (I don't know anything that currently does this, but it seems useful for catching typos).

Copy link
Copy Markdown
Author

@kisarur kisarur Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @pontus.

The version of Nextflow installed on Gadi includes more changes than just the introduction of these new directives (e.g. adding support for job submission and monitoring with the route/exec queue structure available on Gadi). Therefore, users may not be able to bring their own unmodified version of Nextflow and expect it to work on Gadi.

Also, with Gadi's PBS Pro, storage locations must be specified using -l storage resource directive in the PBS script. If we just add -l storage=${params.storage} to clusterOptions, Nextflow will override the resources specified via directives like cpus, memory, etc. A workaround would be to reconstruct the entire -l resource directive within clusterOptions (e.g., -l storage=${params.storage},ncpus=${task.cpus},mem=${task.memory},...), but I feel our current approach is cleaner.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kisarur I sort of feel uncomfortable with it (was it not possible to make a plugin rather than patch nextflow?) but it thats what you need then we have to accept that.

However please could you comment very clearly everywhere in the config wherever not standard nextflow is being used.

We would not want other users copying it over into their configs where they are not using your special patched version of nextflow.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the info, I also would feel rather uncomfortable with that setup but as there's no linter complaint I guess it's fine for now. I see Maxime has suggested comments to mark this as special (hopefully meaning people won't try to copy it), it would be great if you implement those.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would agree with James that this seems much better suited to a plugin that provides a custom executor than simply monkey-patching nextflow.

It would be possible that custom process directives would still exist then but I think it would be far clearer for users and the plugin + executor would be embedded in the config too which gives additional indication that things are non-standard

@maxulysse maxulysse mentioned this pull request Apr 23, 2026
8 tasks
@maxulysse
Copy link
Copy Markdown
Member

Could you update conf/pipeline/proteinfold/nci_gadi.config as well please?

@kisarur
Copy link
Copy Markdown
Author

kisarur commented Apr 24, 2026

@maxulysse The current authors are already working on updating conf/pipeline/proteinfold/nci_gadi.config

Comment thread conf/nci_gadi.config
Comment thread conf/nci_gadi.config
config_profile_contact = 'Georgie Samaha (@georgiesamaha), Kisaru Liyanage (@kisarur), Matthew Downton (@mattdton)'
config_profile_url = 'https://opus.nci.org.au/display/Help/Gadi+User+Guide'
project = System.getenv("PROJECT")
storage = "gdata/${params.project}+scratch/${params.project}"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may want to add this to a validation {ignoreParams: [xyz]} list to stop ugly warnings (see other configs for examples)

Comment thread conf/nci_gadi.config
Comment on lines +25 to +26
project = "${params.project}"
storage = "${params.storage}"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
project = "${params.project}"
storage = "${params.storage}"
// The version of Nextflow installed on Gadi has been modified
// To allow usage of this non standard directive
project = "${params.project}"
// The version of Nextflow installed on Gadi has been modified
// To allow usage of this non standard directive
storage = "${params.storage}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made a suggestion to add comments to make this explicit so that people don't try to copy it on other systems

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants