application: prettyplot [
  documentation: "Draw a sequence alignment with pretty formatting"
  groups: "Alignment:Multiple, Display"
]

section: input [
  information: "Input section"
  type: "page"
]

  seqset: sequences [
    parameter: "Y"
    type: "gapany"
    aligned: "Y"
  ]

  matrix: matrixfile [
    additional: "Y"
    information: "Matrix file"
    protein: "$(acdprotein)"
    help: "This is the scoring matrix file used when comparing
           sequences. By default it is the file 'EBLOSUM62' (for proteins) or
           the file 'EDNAFULL' (for nucleic sequences). These files are
           found in the 'data' directory of the EMBOSS installation."
  ]

endsection: input

section: additional [
  information: "Additional section"
  type: "page"
]

  integer: residuesperline [
    additional: "Y"
    default: "50"
    information: "Number of residues to be displayed on each
                  line"
    help: "The number of residues to be displayed on each line"
  ]

  integer: resbreak [
    additional: "Y"
    minimum: "1"
    maximum: "$(residuesperline)"
    information: "Residues before a space"
    default: "$(residuesperline)"
    expected: "Same as -residuesperline to give no breaks"
  ]

  boolean: ccolours [
    additional: "Y"
    default: "Y"
    information: "Colour residues by their consensus value."
  ]

  string: cidentity [
    additional: "Y"
    information: "Colour to display identical residues (RED)"
    default: "RED"
    knowntype: "plot colour"
  ]

  string: csimilarity [
    additional: "Y"
    information: "Colour to display similar residues (GREEN)"
    default: "GREEN"
    knowntype: "plot colour"
  ]

  string: cother [
    additional: "Y"
    information: "Colour to display other residues (BLACK)"
    default: "BLACK"
    knowntype: "plot colour"
  ]

  boolean: docolour [
    additional: "Y"
    information: "Colour residues by table oily, amide etc."
    default: "N"
  ]

  string: shade [
    additional: "Y"
    information: "Shading"
    help: "Set to BPLW for normal shading \
           (black, pale, light, white) \
           so for pair = 1.5,1.0,0.5 and shade = BPLW \
           Residues score Colour \
           1.5 or over... BLACK (B) \
           1.0 to 1.5 ... BROWN (P) \
           0.5 to 1.0 ... WHEAT (L) \
           under 0.5 .... WHITE (W) \
           The only four letters allowed are BPLW, in any order."
    default: ""
    maxlength: "4"
    minlength: "0"
    knowntype: "plot shading"
    pattern: "^([BPLW]{4})?$"
  ]

  array: pair [
    additional: "Y"
    information: "Values to represent identical similar
                  related"
    default: "1.5,1.0,0.5"
    minimum: "0.0"
    size: "3"
    sumtest: "N"
    knowntype: "threshold identity similar related"
  ]

  integer: identity [
    additional: "Y"
    information: "Only match those which are identical in all
                  sequences."
    default: "0"
    minimum: "0"
  ]

  boolean: box [
    additional: "Y"
    information: "Display prettyboxes"
    default: "Y"
  ]

  boolean: boxcol [
    additional: "Y"
    information: "Colour the background in the boxes"
    default: "N"
  ]

  string: boxcolval [
    additional: "Y"
    information: "Colour to be used for background. (GREY)"
    default: "GREY"
    knowntype: "plot colour"
  ]

  boolean: name [
    additional: "Y"
    information: "Display the sequence names"
    default: "Y"
  ]

  integer: maxnamelen [
    additional: "Y"
    information: "Margin size for the sequence name."
    default: "10"
  ]

  boolean: number [
    additional: "Y"
    information: "Display the residue number"
    default: "Y"
  ]

  boolean: listoptions [
    additional: "Y"
    information: "Display the date and options used"
    default: "Y"
  ]

  float: plurality [
    additional: "Y"
    information: "Plurality check value (totweight/2)"
    default: "@( $(sequences.totweight) / 2)"
    expected: "Half the total sequence weighting"
  ]

  section: consensussection [
    information: "Consensus section"
    type: "frame"
  ]

    boolean: consensus [
      additional: "Y"
      information: "Display the consensus"
      default: "N"
    ]

    boolean: collision [
      additional: "Y"
      information: "Allow collisions in calculating consensus"
      default: "Y"
    ]

    list: alternative [
      additional: "Y"
      information: "Use alternative collisions routine"
      values: "0:Normal collision check. (default); 1:Compares
               identical scores with the max score found. So if any other
               residue matches the identical score then a collision has
               occurred.; 2:If another residue has a greater than or equal to
               matching score and these do not match then a collision has
               occurred.; 3:Checks all those not in the current consensus.If
               any of these give a top score for matching or identical scores
               then a collision has occured."
      help: "Values are 0:Normal collision check. (default) \
             1:Compares identical scores with the max score found. So if any
             other residue matches the identical score then a collision has
             occurred. \
             2:If another residue has a greater than or equal to matching
             score and these do not match then a collision has occurred. \
             3:Checks all those not in the current consensus.If any of these
             give a top score for matching or identical scores then a
             collision has occured."
      default: "0"
      minimum: "1"
      maximum: "1"
    ]

  endsection: consensussection

  integer: showscore [
    additional: "Y"
    information: "Print residue scores"
    default: "-1"
  ]

  boolean: portrait [
    additional: "Y"
    information: "Set page to Portrait"
    default: "N"
  ]

endsection: additional

section: output [
  information: "Output section"
  type: "page"
]

  graph: graph [
    standard: "Y"
    gdesc: "Pretty plot"
  ]

endsection: output
