ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

nextflow

by nf-core ST3

Nextflow workflow syntax highlighting and snippets for Sublime Text 4

Details

  • 1.0.0
  • nf-co.​re
  • github.​com
  • 4 months ago
  • 2 hours ago
  • 3 years ago

Installs

  • Total 59
  • Win 10
  • Mac 32
  • Linux 17
Oct 19 Oct 18 Oct 17 Oct 16 Oct 15 Oct 14 Oct 13 Oct 12 Oct 11 Oct 10 Oct 9 Oct 8 Oct 7 Oct 6 Oct 5 Oct 4 Oct 3 Oct 2 Oct 1 Sep 30 Sep 29 Sep 28 Sep 27 Sep 26 Sep 25 Sep 24 Sep 23 Sep 22 Sep 21 Sep 20 Sep 19 Sep 18 Sep 17 Sep 16 Sep 15 Sep 14 Sep 13 Sep 12 Sep 11 Sep 10 Sep 9 Sep 8 Sep 7 Sep 6 Sep 5
Windows 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 1 1 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Linux 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

nf-core/sublime

Nextflow and nf-core workflow completions, commands, syntax highlighting and snippets for Sublime Text 4

  • ⚠️WARNING⚠️: Sublime Text 3 is no longer supported by this package as of version 1.0.0. Only Sublime Text 4 is supported since this package requires Python 3.8 and new features in ST4.
  • ❗NOTE❗: Only DSL-2 Nextflow workflows are supported by this package.

This package provides Nextflow workflow language:

  • completions (params., conda, <PROCESS>.out.<emit name>)
  • commands (insert container directive, insert module import statement)
  • syntax highlighting
  • snippets

Essentially, this package tries to make Nextflow workflow development a bit easier especially when trying to develop nf-core conventions and best practices for developing Nextflow pipelines.

Nextflow completions and commands

Process module include command

  • ctrl+l,p in an .nf file where you want to import your process

  • select the process you wish to import
  • something like the following will be inserted
Error: language “nextflow” is not supported
include { MAKE_BED_MASK } from '../modules/local/make_bed_mask' addParams( options: modules['make_bed_mask'] )

The addParams( options: modules['make_bed_mask'] ) may not be needed and can be removed; it assumes that you have a conf/modules.config with a map of your module args, publish_dir, etc (see nf-core/modules for more info).

Workflow params

NOTE: Completions and info popups for params depend on a valid nextflow_schema.json in your workflow root directory. Example nextflow_schema.json for nf-core/viralrecon workflow.

Navigate cursor to a params.<variable> to show a popup with info pulled from the nextflow_schema.json for that workflow parameter.

Conda completion

NOTE: Conda must be installed along with any channels (e.g. bioconda, conda-forge) to get packages information (needs to be able to run conda search).

  • Open the command palette (ctrl+shift+p) and run the Nextflow: Fetch Conda packages information command to fetch the latest Conda package info (runs conda search; may take a while).
  • In your process definition, inside the conda directive string press ctrl+space to bring up the completion list. This may have a little delay since the package list may be very large.
Error: language “nextflow” is not supported
process PANGOLIN {
  conda '<press ctrl+space to bring up completion list>'
}

Process output channel completion

Get process named output (i.e. using the emit option) completions after typing <PROCESS_NAME>.out..

  • completion shows what's on the channel as well!

Container directive insert command

This command inserts similar code to what you'd find in an nf-core modules process definition with respect to process container directives. The Biocontainers information is pulled from the Singularity images https://depot.galaxyproject.org/singularity/ and cached as a Python pickle file. Docker container image tags point to the Biocontainers Quay.io page.

  • Open the command palette (ctrl+shift+p) and run the Nextflow: Fetch Biocontainers information command to fetch the latest Biocontainers list fetched from
  • In your process definition, press ctrl+l,c, search for the container you're interested in

  • Select the program and version you're interested in to output the following:
Error: language “nextflow” is not supported
if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) {
  container 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--hdfd78af_1'
} else {
  container 'quay.io/biocontainers/fastqc:0.11.9--hdfd78af_1'
}

Nextflow Syntax Highlighting

Nextflow syntax highlighting extends Sublime Text 4's Groovy syntax with highlighting of:

  • imports (DSL-2 modules)
  • workflow definitions
  • process definitions
  • channel highlighting based on matching ch_*
  • some invalid syntax checks (into channel in input tag and from channel in output tag)
  • highlighting special Nextflow functions and variables (workflow, params, task, etc)

Process syntax highlighting and scoping allows one to easily go to the definition or usages of a process (ctrl+shift+g keyboard shortcut):

Nextflow Snippets

Type one of the following and press TAB:

  • !env: #!/usr/bin/env nextflow
  • proc: process snippet
  • tag: tag process directive snippet
  • pub: publishDir process directive snippet
  • illumina: Illumina paired-end reads file pairs channel
  • cpus: insert "${task.cpus}" into a process script
  • script_path: specify user script (e.g. Python script) to use from scripts/ directory in workflow base directory
  • info: log.info snippet
  • done: on workflow complete or error message

Changelog

1.0.0 - [2021-06-30]

  • Added syntax highlighting for Nextflow DSL-2
  • Added completions and commands for workflow params, PROCESS.out., conda, container, module include
  • Removed some not very useful snippets

0.1.0-alpha.1 - [2019-03-27]

  • Initial release with Groovy-based syntax highlighting and basic snippets

License

MIT License

Copyright © Peter Kruczkiewicz