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
  • 1 week ago
  • 3 hours ago
  • 3 years ago

Installs

  • Total 173
  • Win 40
  • Mac 86
  • Linux 47
May 22 May 21 May 20 May 19 May 18 May 17 May 16 May 15 May 14 May 13 May 12 May 11 May 10 May 9 May 8 May 7 May 6 May 5 May 4 May 3 May 2 May 1 Apr 30 Apr 29 Apr 28 Apr 27 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
Windows 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 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
Mac 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0
Linux 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 1 0 0 0 1 1 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/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