appl: remap [
  documentation: "Display a sequence with restriction cut sites, translation etc.."
  groups: "Display, Nucleic:Restriction, Nucleic:Translation"
]

section: input [ info: "input Section" type: page ]
seqall: sequence  [
  parameter: "Y"
  type: "DNA"
]

endsection: input

section: required [ info: "required Section" type: page ]
string: enzymes  [
  required: "Y"
  default: "all"
  information: "Comma separated enzyme list"
  help: "The name 'all' reads in all enzyme names from the REBASE database. You can specify enzymes by giving their names with commas between then, such as: 'HincII,hinfI,ppiI,hindiii'. \ The case of the names is not important. You can specify a file of enzyme names to read in by giving the name of the file holding the enzyme names with a '@' character in front of it, for example, '@enz.list'. \ Blank lines and lines starting with a hash character or '!' are ignored and all other lines are concatenated together with a comma character ',' and then treated as the list of enzymes to search for. \ An example of a file of enzyme names is: \ ! my enzymes \ HincII, ppiII \ ! other enzymes \ hindiii \ HinfI \ PpiI"
]

integer: sitelen  [
  required: "Y"
  minimum: "2"
  maximum: "20"
  default: "4"
  information: "Minimum recognition site length"
]

endsection: required

section: advanced [ info: "advanced Section" type: page ]
integer: mincuts  [
  optional: "Y"
  minimum: "1"
  maximum: "1000"
  default: "1"
  information: "Minimum cuts per RE"
]

integer: maxcuts  [
  optional: "Y"
  minimum: "$(mincuts)"
  maximum: "2000000000"
  default: "2000000000"
  information: "Maximum cuts per RE"
]

bool: single  [
  optional: "Y"
  default: "N"
  information: "Force single site only cuts"
]

bool: blunt  [
  optional: "Y"
  default: "Y"
  information: "Allow blunt end cutters"
]

bool: sticky  [
  optional: "Y"
  default: "Y"
  information: "Allow sticky end cutters"
]

bool: ambiguity  [
  optional: "Y"
  default: "Y"
  information: "Allow ambiguous matches"
]

bool: plasmid  [
  optional: "Y"
  default: "N"
  information: "Allow circular DNA"
]

bool: commercial  [
  optional: "Y"
  default: "Y"
  information: "Only enzymes with suppliers"
]

list: table  [
  optional: "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: ":"
  prompt: "Code to use"
]

endsection: advanced

section: output [ info: "output Section" type: page ]
outfile: outfile  [
  parameter: "Y"
  information: "Output sequence details to a file"
  help: "If you enter the name of a file here then this program will write the sequence details into that file."
]
bool: cutlist  [
  optional: "Y"
  default: "Y"
  prompt: "List the enzymes that cut"
]

bool: flatreformat  [
  optional: "Y"
  default: "N"
  prompt: "Display RE sites in flat format"
]

bool: limit  [
  optional: "Y"
  default: "Y"
  information: "Limits reports to one isoschizomer"
]

bool: preferred  [
  optional: "Y"
  default: "N"
  information: "Report preferred isoschizomers"
]

bool: translation  [
  default: "Y"
  information: "Display translation"
]

bool: reverse  [
  default: "Y"
  information: "Display cut sites and translation of reverse sense"
]

integer: orfminsize  [
  default: "0"
  minimum: "0"
  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'."
]

bool: threeletter  [
  default: "N"
  information: "Display protein sequences in three-letter code"
]

bool: number  [
  default: "N"
  information: "Number the sequences"
]

integer: width  [
  default: "60"
  minimum: "1"
  information: "Width of sequence to display"
]

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"
]

bool: 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"
]

bool: 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"
]

bool: html  [
  default: "N"
  information: "Use HTML formatting"
]

endsection: output
