Skip to main content

aCLImatise is a Python library and command-line utility for parsing the help output of a command-line tool and then outputting a description of the tool in a more structured format

Project description

DOI

For the full documentation, refer to the Github Pages Website.


aCLImatise is a Python library and command-line utility for parsing the help output of a command-line tool and then outputting a description of the tool in a more structured format, for example a Common Workflow Language tool definition.

Currently aCLImatise supports both CWL and WDL outputs, but other formats will be considered in the future, especially pull requests to support them.

Please also refer to The aCLImatise Base Camp, which is a database of pre-computed tool definitions generated by the aCLImatise parser. Most bioinformatics tools have a tool definition already generated in the Base Camp, so you may not need to run aCLImatise directly.

aCLImatise is now published in the journal Bioinformatics. You can read the application note here: https://doi.org/10.1093/bioinformatics/btaa1033. To cite aCLImatise, please use the citation generator provided by the journal.

Example

Lets say you want to create a CWL workflow containing the common Unix wc (word count) utility. Running wc --help returns:

Usage: wc [OPTION]... [FILE]...
  or: wc [OPTION]... --files0-from=F
Print newline, word, and byte counts for each FILE, and a total line if
more than one FILE is specified.  A word is a non-zero-length sequence of
characters delimited by white space.

With no FILE, or when FILE is -, read standard input.

The options below may be used to select which counts are printed, always in
the following order: newline, word, character, byte, maximum line length.
  -c, --bytes            print the byte counts
  -m, --chars            print the character counts
  -l, --lines            print the newline counts
      --files0-from=F    read input from the files specified by
                           NUL-terminated names in file F;
                           If F is - then read names from standard input
  -L, --max-line-length  print the maximum display width
  -w, --words            print the word counts
      --help display this help and exit
      --version output version information and exit

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/wc>
or available locally via: info '(coreutils) wc invocation'

If you run aclimatise explore wc, which means “parse the wc command and all subcommands”, you’ll end up with the following files in your current directory:

  • wc.cwl

  • wc.wdl

  • wc.yml

These are representations of the command wc in 3 different formats. If you look at wc.wdl, you’ll see that it contains a WDL-compatible tool definition for wc:

version 1.0
task Wc {
  input {
    Boolean bytes
    Boolean chars
    Boolean lines
    String files__from
    Boolean max_line_length
    Boolean words
  }
  command <<<
    wc \
      ~{true="--bytes" false="" bytes} \
      ~{true="--chars" false="" chars} \
      ~{true="--lines" false="" lines} \
      ~{if defined(files__from) then ("--files0-from " +  '"' + files__from + '"') else ""} \
      ~{true="--max-line-length" false="" max_line_length} \
      ~{true="--words" false="" words}
  >>>
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aclimatise-3.0.1.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

aclimatise-3.0.1-py3-none-any.whl (74.8 kB view details)

Uploaded Python 3

File details

Details for the file aclimatise-3.0.1.tar.gz.

File metadata

  • Download URL: aclimatise-3.0.1.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1

File hashes

Hashes for aclimatise-3.0.1.tar.gz
Algorithm Hash digest
SHA256 c3d06a7a8fd5a0b571d8748fa7441bb8e50c858ad7667cf6339a8926b7debf9e
MD5 0fb4187274dfedf7680c01ffb39b8e75
BLAKE2b-256 ee19264a2db2db448c2224af20b8b207f78c5ef11224ab49794f8e6e371361d9

See more details on using hashes here.

File details

Details for the file aclimatise-3.0.1-py3-none-any.whl.

File metadata

  • Download URL: aclimatise-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 74.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1

File hashes

Hashes for aclimatise-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2efe6d2dd8e12273f4df01c1451af4a6fc698df0dde70dfc2de3bb9c49198e2d
MD5 dcd3e2bc0fd6251ec13d4a0abd35eb4c
BLAKE2b-256 5274d636c3b74e02abdab6030d693f8b4f627de3648f0352eb8be5bc459e8094

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page