application: maskseq [
  documentation: "Write a sequence with masked regions"
  groups: "Edit"
]

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

  sequence: sequence [
    parameter: "Y"
    type: "any"
  ]

endsection: input

section: required [
  information: "Required section"
  type: "page"
]

  range: regions [
    standard: "Y"
    default: ""
    information: "Regions to mask (eg: 4-57,78-94)"
    help: "Regions to mask. \
           A set of regions is specified by a set of pairs of positions. \
           The positions are integers. \
           They are separated by any non-digit, non-alpha character. \
           Examples of region specifications are: \
           24-45, 56-78 \
           1:45, 67=99;765..888 \
           1,5,8,10,23,45,57,99"
    expected: "None"
  ]

endsection: required

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

  toggle: tolower [
    additional: "Y"
    default: "N"
    information: "Change masked region to lower-case"
    help: "The region can be 'masked' by converting the sequence
           characters to lower-case, some non-EMBOSS programs e.g. fasta can
           interpret this as a masked region. The sequence is unchanged apart
           from the case change. You might like to ensure that the whole
           sequence is in upper-case before masking the specified regions to
           lower-case by using the '-supper' flag."
  ]

  string: maskchar [
    additional: "@(!$(tolower))"
    default: "@($(acdprotein)?X:N)"
    information: "Character to mask with"
    help: "Character to use when masking. \
           Default is 'X' for protein sequences, 'N' for nucleic sequences. \
           If the mask character is set to be the SPACE character or a null
           character, then the sequence is 'masked' by changing it to
           lower-case, just as with the '-lowercase' flag."
    expected: "'X' for protein, 'N' for nucleic"
    maxlength: "1"
    minlength: "1"
    knowntype: "sequence mask character"
  ]

endsection: additional

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

  seqout: outseq [
    parameter: "Y"
  ]

endsection: output
