application: sixpack [
  documentation: "Display a DNA sequence with 6-frame
                  translation and ORFs"
  groups: "Display, Nucleic:Gene finding, Nucleic:Translation"
]

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

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

endsection: input

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

  list: table [
    additional: "Y"
    default: "0"
    minimum: "1"
    maximum: "1"
    header: "Genetic codes"
    values: "0:Standard; 1:Standard (with alternative initiation
             codons); 2:Vertebrate Mitochondrial; 3:Yeast Mitochondrial;
             4:Mold, Protozoan, Coelenterate Mitochondrial and
             Mycoplasma/Spiroplasma; 5:Invertebrate Mitochondrial; 6:Ciliate
             Macronuclear and Dasycladacean; 9:Echinoderm Mitochondrial;
             10:Euplotid Nuclear; 11:Bacterial; 12:Alternative Yeast Nuclear;
             13:Ascidian Mitochondrial; 14:Flatworm Mitochondrial;
             15:Blepharisma Macronuclear; 16:Chlorophycean Mitochondrial;
             21:Trematode Mitochondrial; 22:Scenedesmus obliquus;
             23:Thraustochytrium Mitochondrial"
    delimiter: ";"
    codedelimiter: ":"
    information: "Code to use"
    help: "Genetics code used for the translation"
  ]

  boolean: firstorf [
    additional: "Y"
    default: "Y"
    information: "ORF at the beginning of the sequence"
    help: "Count the beginning of a sequence as a possible ORF, even
           if it's inferior to the minimal ORF size."
  ]

  boolean: lastorf [
    additional: "Y"
    default: "Y"
    information: "ORF at the end of the sequence"
    help: "Count the end of a sequence as a possible ORF, even if it's
           not finishing with a STOP, or inferior to the minimal ORF size."
  ]

  boolean: mstart [
    additional: "Y"
    default: "N"
    information: "ORF start with an M"
    help: "Displays only ORFs starting with an M."
  ]

endsection: additional

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

  outfile: outfile [
    parameter: "Y"
    knowntype: "sixpack output"
  ]

  seqoutall: outseq [
    standard: "Y"
    type: "stopprotein"
    help: "ORF sequence output"
  ]

  boolean: reverse [
    default: "Y"
    information: "Display translation of reverse sense"
    help: "Display also the translation of the DNA sequence in the 3
           reverse frames"
  ]

  integer: orfminsize [
    default: "1"
    minimum: "1"
    information: "Minimum size of ORFs"
    help: "Minimum size of Open Reading Frames (ORFs) to display in
           the translations."
  ]

  range: uppercase [
    default: ""
    information: "Regions to put in uppercase (eg: 4-57,78-94)"
    help: "Regions to put in uppercase. \
           If this is left blank, then the sequence case is left alone. \
           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: "If this is left blank, then the sequence case is
               left alone."
  ]

  range: highlight [
    default: ""
    information: "Regions to colour in HTML (eg: 4-57 red 78-94
                  green)"
    help: "Regions to colour if formatting for HTML. \
           If this is left blank, then the sequence is left alone. \
           A set of regions is specified by a set of pairs of positions. \
           The positions are integers. \
           They are followed by any valid HTML font colour. \
           Examples of region specifications are: \
           24-45 blue 56-78 orange \
           1-100 green 120-156 red \
           A file of ranges to colour (one range per line) can be specifed as
           '@filename'."
  ]

  boolean: number [
    default: "Y"
    information: "Number the sequences"
    help: "Number the sequence at the beginning and the end of each
           line."
  ]

  integer: width [
    default: "60"
    minimum: "1"
    information: "Width of sequence to display"
    help: "Number of nucleotides displayed on each line"
  ]

  integer: length [
    default: "0"
    minimum: "0"
    information: "Line length of page (0 for indefinite)"
  ]

  integer: margin [
    default: "10"
    minimum: "0"
    information: "Margin around sequence for numbering."
  ]

  boolean: name [
    default: "Y"
    information: "Display sequence ID"
    help: "Set this to be false if you do not wish to display the ID
           name of the sequence."
  ]

  boolean: description [
    default: "Y"
    information: "Display description"
    help: "Set this to be false if you do not wish to display the
           description of the sequence."
  ]

  integer: offset [
    default: "1"
    information: "Offset to start numbering the sequence from"
    help: "Number from which you want the DNA sequence to be
           numbered."
  ]

  boolean: html [
    default: "N"
    information: "Use HTML formatting"
    outputmodifier: "Y"
  ]

endsection: output
