appl: dan [
  documentation: "Calculates DNA RNA/DNA melting temperature"
  groups: "Nucleic:Composition"
]

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

endsection: input

section: required [ info: "required Section" type: page ]
integer: windowsize  [
  required: "Y"
  minimum: "1"
  maximum: "100"
  default: "20"
  information: "Enter window size"
  help: "The values of melting point and other thermodynamic properties of the sequence are determined by taking a short length of sequence known as a window and determining the properties of the sequence in that window. The window is incrementally moved along the sequence with the properties being calculated at each new position."
]

integer: shiftincrement  [
  required: "Y"
  minimum: "1"
  maximum: "$(windowSize)"
  default: "1"
  information: "Enter Shift Increment"
  help: "This is the amount by which the window is moved at each increment in order to find the melting point and other properties along the sequence."
]

float: dnaconc  [
  required: "Y"
  minimum: "1."
  maximum: "100000."
  default: "50."
  information: "Enter DNA concentration (nM)"
]

float: saltconc  [
  required: "Y"
  minimum: "1."
  maximum: "1000."
  default: "50."
  information: "Enter salt concentration (mM)"
]

endsection: required

section: advanced [ info: "advanced Section" type: page ]
bool: rna  [
  optional: "N"
  information: "Use RNA data values"
  help: "This specifies that the sequence is an RNA sequnce and not a DNA sequence."
]

section: productsection [ info: "productsection Section" type: frame ]
bool: product  [
  optional: "N"
  information: "Prompt for product values"
  help: "This prompts for percent formamide, percent of mismatches allowed and product length."
]

float: formamide  [
  required: "$(product)"
  minimum: "0."
  maximum: "100."
  default: "0."
  information: "Enter percentage of formamide"
  help: "This specifies the percent formamide to be used in calculations (it is ignored unless -product is used)."
]

float: mismatch  [
  required: "$(product)"
  minimum: "0."
  maximum: "100."
  default: "0."
  information: "Enter percent mismatch"
  help: "This specifies the percent mismatch to be used in calculations (it is ignored unless -product is used)."
]

integer: prodlen  [
  required: "$(product)"
  minimum: "$(windowSize)"
  default: "$(windowSize)"
  information: "Enter the product length"
  expected: "Window size (20)"
  help: "This specifies the product length to be used in calculations (it is ignored unless -product is used)."
]

endsection: productsection

section: thermosection [ info: "thermosection Section" type: frame ]
bool: thermo  [
  optional: "N"
  information: "Thermodynamic calculations"
  help: "Output the DeltaG, DeltaH and DeltaS values of the sequence windows to the output data file."
]

float: temperature  [
  optional: "$(thermo)"
  minimum: "0."
  maximum: "100."
  default: "25."
  information: "Enter temperature"
  help: "If -thermo has been specified then this specifies the temperature at which to calculate the DeltaG, DeltaH and DeltaS values."
]

endsection: thermosection

endsection: advanced

section: output [ info: "output Section" type: page ]
bool: plot  [
  information: "Produce a plot"
  help: "If this is not specified then the file of output data is produced, else a plot of the melting point along the sequence is produced."
]

float: mintemp  [
  required: "$(plot)"
  minimum: "0."
  maximum: "150."
  default: "55."
  information: "Enter minimum temperature"
  help: "Enter a minimum value for the temperature scale (y-axis) of the plot."
]

xygraph: graph  [
  required: "$(plot)"
  multiple: "1"
]

report: outfile  [
  required: "@(!$(plot))"
  information: "Output data file"
  help: "If a plot is not being produced then data on the melting point etc. in each window along the sequence is output to the file."
  rformat: "seqtable"
  taglist: "float:tm=Tm float:gc=GC float:dg=DeltaG float:dh=DeltaH float:ds=DeltaS float:tmprod=TmProd"
]

endsection: output
