A.4. Global Attributes

A.4.1. Introduction

Global attributes are available for all datatypes and can be defined in any ACD data definition as follows:

GlobalAttributeName: "GlobalAttributeValue"

Most global attributes have string or boolean values which are set explicitly in the ACD file. The booleans have a hard-coded default value which can be overridden by stating a value explicitly. Any of "Y", "Yes", "N" or "No" (the strings are case-insensitive) are acceptable.

The global attributes are described below and, for convenience, they are grouped by function as follows:

  • Parameters and qualifiers

  • User prompting

  • Datatype definition

  • Help information and documentation

  • Hints for GUIs

  • For use by SOAPLAB

In the descriptions of the attributes, the value type and default value are indicated as follows:

GlobalAttributeName: Type         ("Default")

For example, the following indicates the parameter: global attribute has a boolean value with a default value of "N":

parameter: Boolean         ("N")

In contrast, this indicates the help: global attribute has a string value with a default value of "" (an empty string):

help: "String"             ("")

A.4.2. Global Attributes Table

The global attributes are tabulated below:

Table A.5. Global Attributes
Global AttributeDescription

default: string

Default value

""

information: string

Information for menus etc., and default prompt

""

prompt: string

Prompt (if information string is unclear)

""

code: string

Code name for information/prompt to be looked up in standard table

""

help: string

Text for help documentation

""

parameter: boolean

Command line parameter. Can be on the command line with no qualifier name. Implies 'standard' qualifier

"N"

standard: boolean

Standard qualifier, value required. Interactive prompt if missing

"N"

additional: boolean

Additional qualifier. Value required if -options is on the command line, or set by default

"N"

missing: boolean

Allow with no value on the command line to set to ''

"N"

valid: string

Help: String description of allowed values for -help output, used if the default help is nuclear

""

expected: string

Help: String description of the expected value for -help output, used if the default help is nuclear

""

needed: boolean

Include in GUI form, used to hide options if they are unclear in GUIs

"y"

knowntype: string

Known standard type, used to define input and output types for workflows

""

relations: string

Relationships between this ACD item and others, defined as specially formatted text

""

outputmodifier: boolean

Modifies the output in ways that can break parsers

"N"

style: string

Style for SoapLab's ACD files

""

qualifier: string

Qualifier name for SoapLab's ACD files

""

template: string

Commandline template for SoapLab's ACD files

""

comment: string

Comment for SoapLab's ACD files

""

A.4.3. Parameters and Qualifiers

Each ACD data definition can be defined to be one of the following:

  • Parameter

  • Standard Qualifier

  • Additional Qualifier

with the default being:

  • Advanced Qualifier

The attributes to use are as follows:

Parameter:  "Y"
Standard:   "Y"
Additional: "Y"

Only one of parameter: "Y", standard: "Y" or additional: "Y" should ever be given in a data definition. If more than one is used an error message will be generated during ACD processing.

You should never explicitly specify parameter: "N", standard: "N" or additional: "N": an error will be generated during ACD processing if you do. The "Y" in the previous definitions is given for consistency because every ACD attribute, being a label:value pair, has to have a value. In practice, calculated values of "N" are in fact supported and can be used, in exceptional circumstances, to override the default behaviour of these attributes (see Section 4.5, “Controlling the Prompt”).

For more information, see Section A.1.5, “Parameters and Qualifiers”.

A.4.3.1. parameter: "Boolean" ("N")

Defines the data definition as a parameter.

A value for a parameter can be given on the command line with or without a flag (parameter name). Any parameters that are specified without their flag must appear in the same order as they do in the ACD file. All parameters are required by the application and a value will be prompted for if one is not given on the command line.

For example:

application: acddemo 
[
    documentation: "Test application"
    groups: "Test"
]

sequence: asequence 
[
    parameter: "Y"
]

The above application could be run with a command line flag:

acddemo -asequence filename.seq

or without it:

acddemo filename.seq

In both examples filename.seq is the value of the parameter named asequence for the EMBOSS program acddemo.

In the example below, two parameters are defined:

application: acddemo 
[
    documentation: "Test appplication"
    groups: "Test"
]

sequence: asequence 
[
    parameter: Y
]

outseq: outseq 
[
    parameter: Y
]

Unless the command line flags are used, the order in which they appear on the command line must be the same as in the ACD file:

acddemo infilename.seq outfilename.seq

This will assign the name infilename.seq to parameter asequence, and outfilename.seq to parameter outseq.

If the flags are used however the values may be given in any order:

acddemo -outseq outfilename.seq -asequence infilename.seq

Certain ACD datatypes (see below) are typically a primary input or output and as such, should be defined as parameters. The first such datatype in an ACD file must be defined as a parameter (an error will be generated during ACD processing otherwise). It's recommended that subsequent definitions of that datatype are also parameters (a warning will be generated if they are not). The exception is if the default: or nullok: attributes are set, in which case no warning or error messages are generated as the application can run with a default or without any value for the definition.

The datatypes are as follows:

  • File input (infile, filelist, directory or dirlist)

  • Sequence inputs (sequence, seqall, seqsetall or seqset)

  • Sequence feature input (feature)

  • Alignment output (align)

  • Report output (report:)

  • Sequence feature output (featout)

  • File output (outdir)

A.4.3.2. standard: "Boolean" ("N")

Defines the data definition as a standard qualifier.

The behaviour of standard qualifiers is identical to parameters except that the command line flag must always be used when values are given on the command line. All standard qualifiers are required by the application and a value will be prompted for if one is not given on the command line.

Any program is expected to have one or more required inputs. An ACD data definition that is defined as a parameter: is automatically counted as required. All other required inputs should have the standard: attribute set. When the program runs, the user will be prompted for any "required" values that are not already on the command line.

In the example below, two standard qualifiers are defined:

application: acddemo 
[
    documentation: "Test appplication"
    groups: "Test"
]

sequence: asequence 
[
    standard: Y
]

outseq: outseq 
[
    standard: Y
]

The flags must be used on the command line and the values may be given in any order:

acddemo -asequence infilename.seq -outseq outfilename.seq
acddemo -outseq outfilename.seq -asequence infilename.seq

If either value had been omitted, the user would be prompted for it.

A.4.3.3. additional: "Boolean" ("N")

Defines the data definition as an additional qualifier.

The behaviour of additional qualifiers is identical to standard qualifiers except that the value will not not be prompted for if not given on the command line, unless the application is run with the -options global qualifier, in which case all additional qualifiers are prompted for.

Additional qualifiers are taken to be not absolutely required by the application. The command line flag must be always be used when values are given on the command line.

In the example below, two additional qualifiers are defined:

application: acddemo 
[
    documentation: "Test appplication"
    groups: "Test"
]

sequence: asequence 
[
    additional: Y
]

outseq: outseq 
[
    additional: Y
]

The flags must be used on the command line and the values may be given in any order:

acddemo -asequence infilename.seq -outseq outfilename.seq
acddemo -outseq outfilename.seq -asequence infilename.seq

If either value had been omitted, the user would not be prompted for it, unless the application was run with -options:

acddemo -asequence infilename.seq -options

In this example, a value is specified for asequence but omitted for outseq. The -options flag is set which means the user will be prompted for a value for outseq.

A.4.4. User Prompting

A.4.4.1. information: "String" ("")

Very succinct description of the parameter.

The text is used in Web forms and other GUIs. It is also the text used to prompt the user for a value at the command line. Only one of code:, prompt: or information should ever be defined. The use of information: (with a standard name, see below) is preferred instead of code: or prompt:.

To provide standard prompts, a default value for the information: string is defined for most common datatypes. The defaults are in the EMBOSS system file codes.english in the application ACD file directory (see Section 4.3.5.2.1, “Standard Prompts File (codes.english)”).

The standard practice is to use the default prompt where possible. A warning is generated during ACD processing if either the information: attribute is missing or, if there is standard value available, the value is not the standard value.

If a non-standard prompt is used, the text given after the information: attribute should conform to the following conventions (a warning will be generated during ACD processing otherwise):

  • The string should start with an uppercase, alphabetic character.

  • The string should not end with a fullstop.

A.4.4.2. code: "String" ("")

A code word which is searched for in the EMBOSS system file codes.english to give a standard prompt.

Standard prompts for common ACD datatypes are defined in codes.english with the names DEFDatatypeName where DatatypeName is the name of the ACD datatype. The file also contains some additional standard prompts for specific instances of individual datatypes, identified by a code (not beginning with DEF.

For example, gap insertion and extension penalties may be defined as either integer or floating point values. The standard prompt for these is identified by the code GAP or GAPEXT in codes.english. These prompts can be used with the code: attribute, for example code: "GAP". The code word is not case-sensitive, so code: "gap" is also acceptable.

In practice, GUI developers found the code: attributes hard to use, so the information: attribute tends to be used instead.

A.4.4.3. prompt: "String" ("")

The string used to prompt the user for a value at the command line.

The use of prompt: is now deprecated: information is preferred. In rare cases where the information: string is misleading, however, a prompt: string can be defined.

The text given after the prompt: attribute should conform to the following conventions (a warning will be generated during ACD processing otherwise):

  • The string should start with an uppercase, alphabetic character.

  • The string should not end with a full stop.

A.4.5. Datatype Definition

A.4.5.1. knowntype: "String" ("")

The known type of a data definition taken from a controlled vocabulary of known value types.

knowntype: should be defined where the type is not already clear from the datatype itself. It is typically defined for string, infile, outfile and outfileall datatypes but not, for example, for a sequence:.

A warning is generated for the string, outfile and outdir ACD datatypes if it is not specified.

The standard values (known types) are listed in the EMBOSS system file knowntypes.standard in the application ACD file directory.

A few other values not listed in knowntypes.standard are accepted, for example "ApplicationName output" for an outfile: datatype. These are documented with the datatypes (Section A.5, “Datatype-specific Attributes”). If a value is given that is not a standard known type or other accepted value, a warning message will be generated during ACD processing. The acdvalid utility will check all knowntype values in an ACD file, and report any missing values for data definitions that require a known type.

A.4.5.2. default: "Value" ("")

Default value for the parameter.

For many but not all data definitions it is appropriate to define a default value. For some datatypes, a default is hard-coded or generated by a naming scheme from datatype-specific attributes. See the datatypes descriptions (Section A.5, “Datatype-specific Attributes”) for further information.

The default value can be dependent on the values of parameters defined earlier; this is done using an ACD operation to set the value (see Section A.8, “Operations”).

A.4.5.3. relations: "String" ("")

Text to describe the relationship between this ACD data definition and others.

A.4.5.4. outputmodifier: "Boolean" ("N")

This is set to "True" for data definitions which control the fields that are written in the application output.

In practice outputmodifier: is used exclusively for boolean and toggle datatypes which modify the output in a way that might be problematic in parsing software.

A.4.5.5. missing: "Boolean" ("N")

Indicates whether a null value can be specific on the command line for the parameter. This is only ever required for output files for which there is a default file naming scheme available but a default value is also specified in the ACD file. In such cases, the default value in the ACD file can be overridden and the naming scheme used if a null value ("") for the parameter is given on the command line.

A.4.6. Help Information and Documentation

A.4.6.1. help: "String" ("")

Helpful information for the parameter which is displayed when the application is run with the -help qualifier on the command line, and used in the application documentation.

help: is usually only defined if a deeper explanation of an application parameter is needed. If help: is not defined, the value of the information: attribute (if available) or the default help string will be used instead. Default help strings are given for each datatype in the EMBOSS system file codes.english file (Section 4.3.5.4.1, “Standard Help Strings File (codes.english file)”).

The text given after the help: attribute should conform to the following conventions (a warning will be generated during ACD processing otherwise):

  • The string should start with an uppercase, alphabetic character.

  • The string should not end with a full stop.

A.4.6.2. valid: "String" ("")

A description of the allowed values of the parameter.

Used in the "Allowed values" column of the command line syntax table of the application documentation. This table is automatically generated from the ACD file. In most cases a reasonable value is generated automatically but where there is no suitable value, this attribute should be used to provide one.

A.4.6.3. expected: "String" ("")

A description of the expected values of the parameter.

Used in the "Expected values" column of the command line syntax table of the application documentation. This table is automatically generated from the ACD file. In most cases a reasonable value is generated automatically but where there is no suitable value, this attribute should be used to provide one.

A.4.7. Hints for GUIs

A.4.7.1. needed: Boolean ("Y")

Indicates whether a parameter is expected to be included in a GUI form. This is a hint for use by GUI developers. Some parameters are available on the command line, but are not generally useful to users, or can cause confusion when presented in a GUI form with all other options.

A.4.8. For use by SOAPLAB

A.4.8.1. qualifier: "String" ("")

Qualifier name for SoapLab's ACD files. It should not be used in standard EMBOSS application ACD files.

A.4.8.2. template: "String" ("")

Command line template for SoapLab's ACD files. It should not be used in standard EMBOSS application ACD files.

A.4.8.3. comment: "String" ("")

A comment for SoapLab's ACD files. It should not be used in standard EMBOSS application ACD files.