Aside from its extensive functionality for RNA structural analyses, DSSR also introduces a consistent and flexible way to process command-line options. Here, each option can be specified via a --key[=value]
pair (or -key[=value]
or key[=value]
; i.e., two/one/zero preceding dashes are all accepted), key
can be in either lower, UPPER or MiXed case, and value
is optional for Boolean switches. Furthermore, options can be put in any order; if the same key
is repeated more than once, the value
specified last overwrites corresponding previous settings.
As always, the rules are best illustrated with concrete examples. Some typical use-cases are given below:
#1 analyze PDB entry '1msy', with default output to stdout x3dna-dssr --input=1msy.pdb #2 same as #1, with output directed to file '1msy.out' x3dna-dssr --input=1msy.pdb --output=1msy.out #3-6, same as #2 x3dna-dssr --output=1msy.out --input=1msy.pdb x3dna-dssr --OUTPUT=1msy.out --Input=1msy.pdb x3dna-dssr -output=1msy.out input=1msy.pdb x3dna-dssr output=1msy.out --input=1msy.pdb #7 the value '1ehz.pdb' overwrites '1msy.pdb' x3dna-dssr --input=1msy.pdb input=1ehz.pdb #8-12 with the switch --more set to true x3dna-dssr -input=1msy.pdb --more x3dna-dssr -input=1msy.pdb --more=true x3dna-dssr -input=1msy.pdb --more=yes x3dna-dssr -input=1msy.pdb --more=on x3dna-dssr -input=1msy.pdb --more=1 #13 same as without specifying --more, # or with values set to false/no/0 x3dna-dssr -input=1msy.pdb --more=off #14 shorthand forms for --input and --output x3dna-dssr -i=1msy.pdb -o=1msy.out #15 it can also be more verbose x3dna-dssr --input-pdb-file=1msy.pdb #16-18 within a key, separator dash(-) and underscore (_) # are treated the same, and can be omitted x3dna-dssr -i=1msy.pdb -non-pair x3dna-dssr -i=1msy.pdb -non_pair x3dna-dssr -i=1msy.pdb -nonpair
By allowing for 2/1/0 dashes to precede each key
and a dash/underscore character or none to separate words within the key
, DSSR provides users with great flexibility in specifying command-line options to fit into their preferred styles. Not surprisingly, new programs to be added into 3DNA, or the version 3 release of the software will all follow the same convention.