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.1.0
  • nf-co.​re
  • github.​com
  • 2 years ago
  • 1 hour ago
  • 5 years ago

Installs

  • Total 526
  • Win 131
  • Mac 277
  • Linux 118
Apr 26 Apr 25 Apr 24 Apr 23 Apr 22 Apr 21 Apr 20 Apr 19 Apr 18 Apr 17 Apr 16 Apr 15 Apr 14 Apr 13 Apr 12 Apr 11 Apr 10 Apr 9 Apr 8 Apr 7 Apr 6 Apr 5 Apr 4 Apr 3 Apr 2 Apr 1 Mar 31 Mar 30 Mar 29 Mar 28 Mar 27 Mar 26 Mar 25 Mar 24 Mar 23 Mar 22 Mar 21 Mar 20 Mar 19 Mar 18 Mar 17 Mar 16 Mar 15 Mar 14 Mar 13
Windows 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 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Mac 0 1 0 0 1 0 0 0 0 0 0 1 1 1 2 0 0 0 0 0 0 1 0 1 1 0 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 2 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/WORKFLOW>.out.<emit name>)
  • informative popups for processes and sub-workflows
  • 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!

Process output channel popup

Show useful info about what output the a process is emitting.

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
  • conda: conda 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.1.0 - [2022-05-13]

Added:

  • more informative popups for showing info about process output so it's easier to select the correct output channel without referencing the process code.
  • subworkflow completions and info popups about take and emit channels
  • conda directive snippet

Fixed:

  • comment toggling

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