application: emira [
  groups: "Assembly:Fragment Assembly"
  documentation: "MIRA fragment assembly program"
  gui: "yes"
  batch: "yes"
  cpu: "high"
  embassy: "mira"
  external: "mira Whole genome shotgun assembler for Sanger, 454 and
             Solexa/Illumina http://www.chevreux.org/projects_mira.html"
]

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

  infile: paramsfile [
    default: ""
    information: "MIRA program parameters file (optional)"
    help: "Loads parameters from the filename given. Allows a maximum of 10
           levels of recursion, i.e. a -params option appearing within a file
           that loads other parameter files"
    knowntype: "mira parameters"
    nullok: "Y"
    trydefault: "Y"
    relations:                                                 
  ]


  list: setparam [
    default: "unspecified"
    minimum: "1"
    maximum: "1"
    header: "Set parameters suited to the input type"
    values: "unspecified: Unspecified, fasta: Fasta,phd: PHD,caf: CAF"
    delimiter: ","
    codedelimiter: ":"
    information: "Parameter type"
    help: "Sets parameters suited for loading sequences from FASTA,
           PHD or CAF files. The default is not to specify the
           type of input file."

    relations: "EDAM: Generic string array"                                
  ]

  directory: expdir [
    default: "."
    information: "EXP assembly project file directory"
    help: "Defines the directory where mira should search for experiment
           files (EXP)."
    knowntype: "exp file"
    relations:  "EDAM: EXP assembly project file"                      
  ]

  directory: scfdir [
    default: "."
    information: "SCF assembly project file directory"
    help: "Defines the directory where mira should search for SCF
           files"
    knowntype: "scf file"
    relations:  "EDAM: SCF assembly project file"                      
  ]

  
# File

  infile: feifile [
    default: "mira_in.fofn"
    information: "EXP assembly project file of filenames file"
    help: "Defines the file of filenames where the names of the EXP files
           of a project are located."
    nullok: "Y"
    trydefault: "Y"
    knowntype: "exp file of filenames"
    relations:  "EDAM: List of file names"                             
  ]

  infile: fpifile [
    default: "mira_in.fofn"
    information: "PHD assembly project file of filenames file"
    help: "Defines the file of filenames where the names of the PHD files
           of a project are located."
    nullok: "Y"
    trydefault: "Y"
    knowntype: "phd file of filenames"
    relations:  "EDAM: List of file names"                             
  ]

  infile: pifile [
    default: "mira_in.phd"
    information: "PHD assembly project sequences file"
    help: "Defines the PHD file to load sequences of a project from."
    nullok: "Y"
    trydefault: "Y"
    knowntype: "phd sequences"
    relations:  "EDAM: PHD assembly project file"                      
  ]

  infile: faifile [
    default: "mira_in.fasta"
    information: "Nucleotide sequences in FASTA format file"
    help: "Defines the FASTA file to load sequences of a project from."
    nullok: "Y"
    trydefault: "Y"
    knowntype: "dna fasta set"
    relations:  "EDAM: Nucleotide FASTA record"                        
  ]

  infile: fqifile [
    default: "mira_in.fasta.qual"
    information: "Sequence read quality scores file"
    help: "Defines the fasta file to load base qualities of a project from.
           Although the order of reads in the quality file does not need to
	   be the same as in the fasta or fofn projects (although it saves
	   a bit of time if they are)."
    nullok: "Y"
    trydefault: "Y"
    knowntype: "sequence read quality"
    relations:  "EDAM: Sequence read quality scores"                   
  ]

  infile: cifile [
    default: "mira_in.caf"
    information: "CAF assembly project file"
    help: "Defines the file to load a CAF project from. Filename must end
           with '.caf'."
    nullok: "Y"
    trydefault: "Y"
    knowntype: "CAF project"
    relations: "EDAM: Free text file"                                      
  ]

  infile: sdifile [
    default: "mira_straindata_in.txt"
    information: "MIRA program strain data file"
    help: "Defines the file to load straindata from. Only used in EST
           projects (miraEST)."
    nullok: "Y"
    trydefault: "Y"
    knowntype: "mira strain data"
    relations:  "EDAM: MIRA strain data file"                          
  ]

  infile: xtiifile [
    default: "mira_xmltraceinfo_in.xml"
    information: "Sequence trace information file"
    help: "Defines the file to load a trace info file in XML format from.
           This can be used both when merging XML data to loaded files or
	   when loading a project from an XML trace info file."
    nullok: "Y"
    trydefault: "Y"
    knowntype: "sequence trace information"
    relations:  "EDAM: MIRA sequence trace information file"           
  ]

endsection: input

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

  string: project [
    standard: "Y"
    default: "mira"
    information: "Basename for index files"
    help: "Default is mira. Defines the project name for this assembly.
          The project name automatically influences the name of input
          and output files or directories. E.g. in the default setting,
          the file names for the output of the assembly in FASTA
          format would be mira_out.fasta and
          mira_out.fasta.qual. Setting the project name to 'MyProject'
          would generate MyProject_out.fasta and
          MyProject_out.fasta.qual."
    knowntype: "file basename"
    relations:  "EDAM: File name"                                      
  ]



endsection: required

section: advanced [
  information: "Advanced section"
  type: "page"
]


  list: genome [
    default: "normal"
    minimum: "1"
    maximum: "1"
    header: "Quality grades of de-novo assembly"
    values: "draft: Draft, normal: Normal,accurate: Accurate"
    delimiter: ","
    codedelimiter: ":"
    information: "Quality"
    help: "Quality grades of de-novo genome assembly. Draft is quick-and-dirty,
           suited to get a first look on approximate coverage of a running
           project. Should not be used for anything else. Normal is the default
           parameter set of mira that is able to tackle most genomes. A bit
           slower than the draft version, but includes such options as read
           extension and vector remnant clipping. Accurate is still slower
           than the normal mode but should be used for genomes that pose a
           problem to the normal mode."
    relations: "EDAM: Generic string array"                                
  ]


  list: mapping [
    default: "normal"
    minimum: "1"
    maximum: "1"
    header: "Quality grades for mapping"
    values: "draft: Draft, normal: Normal,accurate: Accurate"
    delimiter: ","
    codedelimiter: ":"
    information: "Mapping quality"
    help: "Work like the -genome switches except they are to be used
           when performing mapping assemblies against given backbone
           sequences."
    relations: "EDAM: Generic string array"                                
  ]


  list: clipping [
    default: "medium"
    minimum: "1"
    maximum: "1"
    header: "Clipping grade modifiers"
    values: "light: Light, medium: Medium,heavy: Heavy"
    delimiter: ","
    codedelimiter: ":"
    information: "Grade"
    help: "Three clipping grade modifiers, from light clipping when working
           with well preprocessed sequences to heavy clipping when the
           sequences that are being assembled had only sloppy or no
           preprocessing. Note 1 - the light version is already included in the
           -genome and -mapping switches. Note 2 - it is recommended that you
           perform a thorough preprocessing (clipping sequencing vector
           stretches, clipping of low quality bases, tagging standard repeats
           etc.) before assembling sequences. The clipping routines of mira
           are more optimised to cope with the last remnants of wrongly
           preprocessed sequences than with sequences having had no
           pre-processing at all."
    relations: "EDAM: Generic string array"                                
  ]

  boolean: highlyrepetitive [
    default: "N"
    information: "Highly repetitive DNA"
    help: "A modifier switch for genome data that is deemed to be highly
           repetitive. The assemblies will run slower due to more iterative
           cycles that give mira a chance to resolve nasty repeats."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: highqualitydata [
    default: "N"
    information: "High quality data"
    help: "A modifier switch when the sequences that are used are of
           exceptional quality. mira will then bump up a few quality parameters
           which should lead to less false positives in the repeat and SNP
           detection routines."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: estmode [
    default: "N"
    information: "Preset EST assembly mode"
    help: "Switches mira to a good initial preset for assembling EST data.
           Note that this is not needed (and even counterproductive) when
           used with miraEST."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: horrid [
    default: "N"
    information: "Preset horrid data set mode"
    help: "Sets a number of parameters useful when dealing with really horrid
           data sets. Useful means that parameters are chosen to so that time
           and memory consumption do not explode beyond all hope of the
           program returning. Note that MIRA will return in most cases useful
           assemblies with this switch, but these might not be as optimised
           as with normal operation. The definition of 'horrid' is a bit
           flexible, for example, (a) a genomic projects with more than
           2.000 reads that all seem to align partly to each other but have
           different repetitive structures or (b) EST clusters with a few
           thousand almost similar reads."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: borg [
    default: "N"
    information: "Force assembly"
    help: "Sets several parameters to have mira try to assemble as many reads
           as possible. Will probably slow down the assembly process and use
           more memory. 'We are MIRA of borg. You will be assembled,
           resistance is futile!'"
    relations: "EDAM: Generic boolean"                                     
  ]

# General switches

  list: lj [
    default: "fofnexp"
    minimum: "1"
    maximum: "1"
    header: "Load Job Type"
    values: "fofnexp: EXP files from a file of filenames,
             fasta: Load and assemble FASTA,
             caf: Load and assemble CAF,
             phd: Load and assemble PHD,
             fofnphd: PHD files from a file of filenames"
    delimiter: ","
    codedelimiter: ":"
    information: "Job type"
    help: "Defines whether to load and assemble EXP
           files from a file of filenames ('mira_in.fofn'), load and assemble
           FASTA sequences ('mira_in.fasta') and their qualities
           ('mira_in.fasta.qual'), load and assemble sequences or qualities
           from a phd file ('mira_in.phd') or to load a project from a CAF
           file ('mira_in.caf') and assemble or eventually reassemble it.
           N.B. fofnphd is not currently available."
    relations: "EDAM: Generic string array"                                
  ]

  boolean: fo [
    default: "N"
    information: "Filecheck only"
    help: "If set to 'Y', the project will not be assembled
           and no assembly output files will be produced. Instead, the project
           files will only be loaded. This switch is useful for checking
           consistency of input files."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: mxti [
    default: "N"
    information: "Merge XML trace info"
    help: "Some file formats above (FASTA, PHD or even CAF
           and EXP) possibly don't contain all the info necessary or useful
           for each read of an assembly. Should additional information, such
           as like clipping positions etc., be available in a XML trace info
           file in NCBI format (see File formats), then set this option to
           'Y' and it will be merged to the data loaded.
           Please note, quality clippings given here will override quality
           clippings loaded earlier or performed by mira. Minimum clippings
           will still be made by the program, though."
    relations: "EDAM: Generic boolean"                                     
  ]

  list: rns [
    default: "sanger"
    minimum: "1"
    maximum: "1"
    header: "Read Naming Scheme"
    values: "sanger: Sanger,
             tigr: TIGR"
    delimiter: ","
    codedelimiter: ":"
    information: "Scheme"
    help: "Defines the centre naming scheme for read suffixes. Currently,
           only Sanger Institute and TIGR naming schemes are supported out
           of the box. How to choose? Please read the documentation available
           at the different centres or ask your sequence provider. In a
           nutshell, the Sanger scheme is
           'somename.[pqsfrw][12][bckdeflmnpt][a|b|c|...'
           (e.g. U13a08f10.p1ca), TIGR scheme is
           'somenameTF*|TR*|TA*' (e.g. GCPBN02TF or GCPDL68TABRPT103A58B)."
    relations: "EDAM: Generic string array"                                
  ]

  list: eq [
    default: "SCF"
    minimum: "1"
    maximum: "1"
    header: "External quality"
    values: "none: None,
             SCF: SCF"
    delimiter: ","
    codedelimiter: ":"
    information: "Quality"
    help: "Defines the source format for reading qualities from external
           sources. Normally takes effect only when these are not present
           in the format of the load_job project (EXP and FASTA can have
           them, CAF and PHD must have them)."
    relations: "EDAM: Generic string array"                                
  ]

  boolean: eqo [
    default: "N"
    information: "External quality override"
    help: "Only takes effect when 'lj' is fofnexp. Defines whether or not
           the qualities from the external source override the possibly
           loaded qualities from the load job project. This might be of use
           in case some post-processing software fiddles around with the
           quality values of the input file but one wants to have the
           original ones."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: droeqe [
    default: "Y"
    information: "Discard read on eq error"
    help: "Should there be a major mismatch between the external quality
           source and the sequence (e.g. the base sequence read from a SCF
	   file does not match the originally read base sequence), should
	   the read be excluded from assembly or not. If not, it will use
	   the qualities it had before trying to load the external
	   qualities (either default qualities or the ones loaded from the
	   original source)."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: uti [
    default: "Y"
    information: "Use template information"
    help: "Two reads sequenced from the same clone template form a read pair
           with a known minimum and maximum distance. This feature will
           definitively help for contigs containing lots of repeats. Set this
           to 'Y' if your data contains information on insert sizes.
           Information on insert sizes can be given via the SI tag in EXP
           files (for each read pair individually), or for the whole project
           using dismin and dismax"
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: ess [
    information: "Integer start step"
    minimum: "1"
    maximum: "4"
    default: "1"
    help: "Controls the starting step of the EST assembly and is therefore
           only useful in miraEST. EST assembly is a three step process,
           each with different settings to the assembly engine, with the
           result of each step being saved to disk. If results of previous
           steps are present in a directory, one can easily 'play around'
           with different setting for subsequent steps by reusing the results
           of the previous steps and directly starting with step two or
           three."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: ps [
    default: "Y"
    information: "Print date"
    help: "Controls whether date and time are printed out during the assembly.
           Suppressing it isn't useful in normal operation, only when
           debugging or benchmarking."
    relations: "EDAM: Generic boolean"                                     
  ]


# Strain/backbone

  boolean: lsd [
    default: "N"
    information: "Load straindata"
    help: "Straindata is a key value file, one read per line. First the name
           of the read, then the strain name of the organism the read comes
           from. It is used by the program to differentiate different types
           of SNPs appearing in organisms and classifying them."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: lb [
    default: "N"
    information: "Load backbone"
    help: "A backbone is a sequence (or a previous assembly) that is used as 
    a template for the current assembly. The current assembly process will
    first assemble reads to loaded backbone contigs before creating new
    contigs. This feature is helpful for assembling against previous (and
    already possibly edited) assembly iterations, or to make a comparative
    assembly of two very closely related organisms. Please read 'very closely
    related' as in 'only SNP mutations or short indels present'."
    relations: "EDAM: Generic boolean"                                     
  ]


  integer: sbuip [
    information: "Start backbone usage in pass"
    minimum: "1"
    default: "3"
    help: "When assembling against backbones, this parameter defines the pass
          iteration (see nop) from which on the backbones will be
          really used. In the passes preceding this number, the
          non-backbone reads will be assembled together as if no
          backbones existed. This allows mira to correctly spot
          repetitive stretches that differ by single bases and tag
          them accordingly.  Rule of thumb - if backbones belong to
          the same strain as the reads to assemble, set to 1. If
          backbones are a different strain, then set sbuib to 1 lower
          than nop (example - nop 4 and sbuip 3)."
    relations: "EDAM: Generic integer"                                     
  ]

  string: bsn [
    default: ""
    information: "Backbone strain name"
    help: "Defines the name of the strain that the backbone sequences have."
    knowntype: "strain name"
    relations:  "EDAM: Strain name"                                    
  ]

  list: bft [
    default: "fasta"
    minimum: "1"
    maximum: "1"
    header: "Backbone File type"
    values: "fasta: Fasta,
             caf: CAF,
             gbf: GenBank"
    delimiter: ","
    codedelimiter: ":"
    information: "File type"
    help: "Defines the filetype of the backbone file given. Currently (2.8.1 )
           only FASTA, CAF and GBF files are supported. When GBF (GenBank
           files, also named .gbk) files are loaded, the features within
           these files are automatically transformed into Staden-compatible
           tags and get passed through the assembly."
    relations: "EDAM: Generic string array"                                
  ]

  integer: brl [
    information: "Backbone rail length"
    minimum: "1000"
    maximum: "3000"
    default: "2500"
    help: "Parameter for the internal sectioning size of the backbone.
           Extremely repetitive sequences may require reducing the
           default value, but the default value should work well in 99.9%
           of all cases."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: bbq [
    information: "Backbone base quality"
    minimum: "-1"
    maximum: "100"
    default: "-1"
    help: "Defines the default quality that the backbone sequences have if
           they came without quality values in their files (like in GBF
           format or when FASTA is used without .qual files). A value of
           -1 causes mira to use the same default quality for backbones as
           for reads."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: abnc [
    default: "Y"
    information: "Also build new contigs"
    help: "The standard mode of the assembler is to assemble available reads
           to a backbone and make new contigs with the remaining reads. If
           this option is set to 'N', the reads that cannot be assembled
           into existing contigs are put as singlets into the assembly,
           not forming new contigs."
    relations: "EDAM: Generic boolean"                                     
  ]

# Assembly

  integer: mrl [
    information: "Minimum read length"
    minimum: "20"
    default: "40"
    help: "Minimum length that reads must have to be considered for the
           assembly. Shorter sequences will be filtered out at the
           beginning of the process and won't be present in the final
           project."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: nop [
    information: "Number of passes"
    minimum: "1"
    default: "3"
    help: "Defines how many iterations of the whole assembly process are done.
           Rule of thumb - for quick and dirty assembly  use 1 (not
	   recommended).
           For assembly using read extensions and / or automatic contig editing
           (-ure and -ace) use at least 2. The recommended setting is 3 or
           higher, as some knowledge generated by the assembler can be used
           only from the third iteration on. More than 3 passes might be
           useful for projects containing many repetitive elements. See also
           -rbl and -mr for parameters that affect the assembly and
           disentanglement of possible repeats."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: sep [
    default: "Y"
    information: "Skim each pass"
    help: "Defines whether the skim algorithm (and with it also the
           recalculation of Smith-Waterman alignments) is called in between
           each main pass. If set to 'N', skimming is done only when needed
           by the workflow, either when read extensions are searched for
           (-ure) or when possible vector leftovers are to be clipped (-pvc).
           Setting this option to 'Y' is highly recommended, setting it to
           'N' is only for quick and dirty assemblies."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: rbl [
    information: "RMB break loops"
    minimum: "1"
    default: "2"
    help: "Defines the maximum number of times a contig can be rebuilt
           during main assembly passes (-nop) if misassemblies, due to
           possible repeats, are found."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: sd [
    default: "Y"
    information: "Spoiler detection"
    help: "Default is 'Y' for mira and 'N' for miraEST. A spoiler can be
           either a chimeric read or it is a read with long parts of
           unclipped vector sequence still included (that was too long for
           the -pvc vector leftover clipping routines). A spoiler typically
           prevents contigs being joined; MIRA will cut them back so that
           they present no more harm to the assembly. Recommended for
           assemblies of mid-to-high coverage genomic assemblies; not
           recommended for assemblies of ESTs as one might lose splice
           variants with that. A minimum number of two assembly passes
           (-nop) must be run for this option to take effect."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: sdlpo [
    default: "Y"
    information: "Spoiler detection last pass only"
    help: "Defines whether the spoiler detection algorithms are run only for
    the last pass or for all passes (-nop). Takes effect only if spoiler
    detection (-sd) is on."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: bdq [
    information: "Base default quality"
    minimum: "0"
    default: "10"
    help: "Defines the default base quality of reads that have no quality
           read from a file."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: ugpf [
    default: "Y"
    information: "Use genomic pathfinder"
    help: "MIRA has two different pathfinder algorithms it chooses from to
           find its way through the (more or less) complete set of possible
           sequence overlaps; a genomic and an EST pathfinder. The genomic
           looks a bit into the future of the assembly and tries to stay
           on safe grounds using a maximum of information already present
           in the contig that is being built. The EST version, on the
           contrary, will directly jump at the complex cases posed by very
           similar repetitive sequences and try to solve those first; it is
           willing to fall down to brute force when really bad cases (such
           as coverage with thousands of sequences) are encountered.
           Generally, the genomic pathfinder will also work quite well with
           EST sequences (but might get slowed down a lot in pathological
           cases), while the EST algorithm does not work so well on genomes.
           If in doubt, leaveas 'Y' for genome projects and set to 'N' for
           EST projects."
    relations: "EDAM: Generic boolean"                                     
  ]


  boolean: uess [
    default: "Y"
    information: "Use emergency search stop"
    help: "Another important switch if you plan to assemble non-normalised
           EST libraries, where some ESTs may reach coverages of several
           hundreds or thousands of reads. This switch lets MIRA save a lot
           of computational time when aligning those extremely high coverage
           areas (but only there), at the expense of some accuracy."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: esspd [
    information: "Emergency search stop partner depth"
    minimum: "1"
    default: "500"
    help: "Defines the number of potential partners a read must have for
           MIRA switching into emergency search stop mode for that read."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: umcbt [
    default: "N"
    information: "Use max contig build time"
    help: "Defines whether there is an upper limit of time to be used to
           build one contig. Set this to 'Y' in EST assemblies where you
           think that extremely high coverages occur. Less useful for
           assembly of genomic sequences."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: bts [
    information: "Build time in seconds"
    minimum: "1"
    default: "10000"
    help: "Depending on -umcbt above, this number defines the time in seconds
           alloted to building one contig."
    relations: "EDAM: Generic integer"                                     
  ]

# Data Processing

  boolean: ure [
    default: "Y"
    information: "Use read extension"
    help: "Defines whether there is an upper limit of time to be used to
           build one contig. Set this to 'Y' in EST assemblies where you
           think that extremely high coverages occur. Less useful for
           assembly of genomic sequences."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: rewl [
    information: "Read extension window length"
    minimum: "1"
    default: "30"
    help: "Only takes effect when -ure is set to 'Y'. The read extension
           routines use a sliding window approach on Smith-Waterman
           alignments. This parameter defines the window length."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: rewme [
    information: "Read extension with max errors"
    minimum: "1"
    default: "2"
    help: "Only takes effect when -ure is set to 'Y'. The read extension
           routines use a sliding window approach on Smith-Waterman alignments.
           This parameter defines the number maximum number of errors
           (disagreements) between two alignments in the given window."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: feip [
    information: "First extension in pass"
    minimum: "0"
    default: "0"
    help: "Only takes effect when -ure is set to 'Y'. The read extension
           routines can be called before assembly and/or after each
           assembly pass (see -nop). This parameter defines the first pass
           in which the read extension routines are called. The default of
           0 tells mira to extend the reads the first time before the
           first assembly pass."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: leip [
    information: "Last extension in pass"
    minimum: "0"
    default: "0"
    help: "Only takes effect when -ure is set to 'Y'. The read extension
           routines can be called before assembly and/or after each assembly
           pass (see -nop). This parameter defines the last pass in which the
           read extension routines are called. The default of 0 tells mira
           to extend the reads the last time before the first assembly pass."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: tpae [
    default: "N"
    information: "Tag poly-AT at ends"
    help: "This option is useful in EST assembly. Poly-AT stretches at the
           end of reads that were not correctly masked or clipped in
           pre-processing steps from external programs get tagged here.
           The assembler will not use these stretches for critical
           operations. Additionally, the tags do provide a good visual
           anchor when looking at the assembly with different programs."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: pbwl [
    information: "Polybase window length"
    minimum: "1"
    default: "7"
    help: "Only takes effect when -tpae is set to 'Y'. Defines the window
           length within which all bases (except the maximum number of
           errors allowed) must be either A or T to be considered a
           polybase stretch."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: pbwme [
    information: "Polybase window max errors"
    minimum: "1"
    default: "2"
    help: "Only takes effect when -tpae is set to 'Y. Defines the maximum
           number of errors allowed in a given window length such that a
           stretch is considered to be a polybase stretch. The distribution
           of these errors is not important."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: pbwgd [
    information: "Polybase window grace distance"
    minimum: "1"
    default: "9"
    help: "Only takes effect when -tpae is set to 'Y'. Defines the number
           of bases from the end of a sequence (if masked, from the end of
           the masked area) within which a polybase stretch is looked for
           without finding one."
    relations: "EDAM: Generic integer"                                     
  ]

# Clipping

  boolean: pvc [
    default: "Y"
    information: "Possible vector clip"
    help: "Mira will try to identify possible sequencing vector relicts
           present at the start of a sequence and clip them away. These
           relicts are usually a few bases long and were not correctly
           removed from the sequence in data pre-processing steps of
           external programs. You might want to turn off this option if you
           know (or think) that your data contains a lot of repeats and
           the option below to fine tune the clipping behaviour does not
           give the expected results."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: pvcmla [
    information: "Possible vector clip max length allowed"
    minimum: "0"
    default: "18"
    help: "The clipping of possible vector relicts option works quite well.
           Unfortunately the bounds of repeats or differences
           in EST splice variants sometimes show the same alignment behaviour
           as possible sequencing vector relicts and could therefore also
           be clipped. To stop the vector clipping from mistakenly clipping
	   repetitive regions or EST splice variants, this option puts an
	   upper bound to the number of bases a potential clip is allowed to
	   have. If the number of bases is below or equal to this threshold
	   then the bases are clipped. If the number of bases exceeds the
           threshold then the clip is NOT performed.
           Setting the value to 0 turns off the threshold i.e. clips are then
	   always performed if a potential vector is found."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: qc [
    default: "N"
    information: "Quality clip"
    help: "Default is 'N', but is automatically set to 'Y' when using the
           setparam options 'fasta' or 'phd' (can be turned off again by
	   subsequent options afterwards). This will let mira perform its
	   own quality clipping before sequences are entered into the
	   assembly. The clip function performed is a sequence end window
	   quality clip with back iteration to get a maximum number of
	   bases as useful sequence. Note that the bases clipped away here
	   can still be used afterwards if there is enough evidence
	   supporting their correctness when the option -ure is turned on."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: qcmq [
    information: "Quality clip minimum quality"
    minimum: "15"
    maximum: "35"
    default: "20"
    help: "This is the minimum quality required of bases in a window in order
           to be accepted. Please be cautious and don't use extreme
	   values here, because then the clipping will be too lax or too
	   harsh. Values below 15 and higher than 35 are disallowed."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: qcwl [
    information: "Quality clip window length"
    minimum: "10"
    default: "30"
    help: "This is the length of a window in bases for the quality clip."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: mbc [
    default: "Y"
    information: "Masked bases clip"
    help: "This will let mira perform a 'clipping' of bases that were
           masked out (replaced with the character X). It is generally not
	   a good idea to use mask bases to remove unwanted portions of a
	   sequence; the EXP file format and the NCBI traceinfo format have
	   excellent possibilities to circumvent this. But because a lot
	   of pre-processing software is built around cross_match, scylla-
	   and phrap-style base masking, the need arised for mira to be able
	   to handle this too. mira will look at the start and end of each
	   sequence to see whether there are masked bases that should be
	   'clipped'."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: mbcgs [
    information: "Masked bases clip gap size"
    minimum: "0"
    default: "20"
    help: "While performing the clip of masked bases, mira will look if it
           can merge larger chunks of masked bases that are a maximum of
	   -mbcgs apart."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: mbcmfg [
    information: "Masked bases clip max front gap"
    minimum: "0"
    default: "40"
    help: "While performing the clip of masked bases at the start of a
           sequence, mira will allow up to this number of unmasked bases
	   in front of a masked stretch."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: mbcmeg [
    information: "Masked bases clip max end gap"
    minimum: "0"
    default: "60"
    help: "While performing the clip of masked bases at the end of a
           sequence, mira will allow up to this number of unmasked bases
	   behind a masked stretch."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: emlc [
    default: "Y"
    information: "Ensure minimum left clip"
    help: "If on, ensures a minimum left clip on each read according to the
    parameters in -mlcr & -smlc"

    relations: "EDAM: Generic boolean"                                     
  ]

  integer: mlcr [
    information: "Minimum left clip required"
    minimum: "0"
    default: "25"
    help: "If -emlc is 'Y', checks whether there is a left clip whose
           length is at least the size specified here."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: smlc [
    information: "Set minimum left clip"
    minimum: "0"
    default: "30"
    help: "If -emlc is 'Y' and the actual left clip is < -mlcr, then set
           the left clip of read to the value given here."

    relations: "EDAM: Generic integer"                                     
  ]

# Skim

  integer: bph [
    information: "Bases per hash"
    minimum: "1"
    default: "14"
    help: "Default is 14 on 32 bit systems and 16 on 64 bit systems. Controls
           the number of consecutive bases n which are used as a word hash.
	   The higher the value the faster the search. The lower the value
	   the more weak matches are found. Values below 10 are not
	   recommended."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: hss [
    information: "Hash saving step"
    minimum: "1"
    default: "4"
    help: "This is a parameter controlling the stepping increments with
           which hashes are generated. This allows for a more fine-grained
	   search as matches are now found with at least n+s (see -bph)
	   equal bases instead of the SSAHA 2n. The higher the value the
	   faster the search. The lower the value the more weak matches
	   are found."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: pr [
    information: "Percent required"
    minimum: "1"
    default: "50"
    help: "Controls the relative percentage of exact word matches in an
           approximate overlap that has to be reached to accept the
	   overlap as a possible match. Increasing this number will
	   decrease the number of possible alignments that have to be
	   checked by Smith-Waterman later on in the assembly, but it
	   might also lead to the rejection of weaker overlaps (i.e.
	   overlaps that contain a higher number of mismatches)."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: mhpr [
    information: "Max hits per read"
    minimum: "1"
    default: "200"
    help: "Controls the maximum number of possible hits one read can
           maximally transport to the Smith-Waterman alignment phase. If
	   more potential hits are found, only the best ones are taken.
           This is an important option for tackling projects that contain
	   extreme assembly conditions. For example, 5000 reads that are
	   all very similar would generate around 40 to 50 million possible
	   alignments (forward and reverse complement). Setting this
	   parameter to 200 reduces the number of alignments to check to
	   around 1.5-2 million. As the assembly increases in passes (-nop),
	   different combinations of possible hits will be checked, always
	   the probably best ones first. So the accuracy of the assembly
	   should only suffer when lowering this number too much."
    relations: "EDAM: Generic integer"                                     
  ]


# Align

  integer: bip [
    information: "Bandwidth in percent"
    minimum: "1"
    maximum: "100"
    default: "15"
    help: "The banded Smith-Waterman alignment uses this percentage number
           to compute the bandwidth it has to use when computing the
	   alignment matrix. E.g. expected overlap is 150 bases, bip=10 ->
	   the banded SW will compute a band of 15 bases to each side of
	   the expected alignment diagonal, thus allowing up to 15 unbalanced
	   inserts / deletes in the alignment. INCREASING AND DECREASING THIS
	   NUMBER -  increasing will find more non-optimal alignments but will
	   also increase SW runtime between linear and ^2, decreasing will
           work the other way round (it might miss a few bad alignments but gain
	   speed)."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: bmin [
    information: "Bandwidth minimum"
    minimum: "1"
    default: "25"
    help: "Minimum bandwidth in bases to each side."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: bmax [
    information: "Bandwidth maximum"
    minimum: "1"
    default: "50"
    help: "Maximum bandwidth in bases to each side."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: mo [
    information: "Minimum overlap"
    minimum: "1"
    default: "15"
    help: "Minimum number of overlapping bases needed in an alignment
           of two sequences to be accepted."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: ms [
    information: "Minimum score"
    minimum: "1"
    default: "15"
    help: "Describes the minimum score of an overlap to be taken into
           account for assembly. mira uses a default scoring scheme for
	   SW align. Each match counts 1, a match with an N counts 0, each
	   mismatch with a non-N base -1 and each gap -2. Use a bigger score
	   to weed out a number of chance matches, a lower score to perhaps
	   find the single (short) alignment that might join two contigs
	   together (at the expense of computing time and memory)."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: mrs [
    information: "Minimum relative score"
    minimum: "1"
    maximum: "100"
    default: "65"
    help: "Describes the min percentage of matching between two reads to
           be considered for assembly. Increasing this number will save
	   memory but one might lose possible alignments.  A maximum of 80 is
           probably sensible here. Decreasing below 55 will probably make
	   memory and time consumption explode."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: egp [
    default: "N"
    information: "Extra gap penalty"
    help: "Defines whether or not to increase penalties applied to alignments
           containing long gaps. Setting this to 'Y' might help in projects
	   with frequent repeats. On the other hand, it is definitively
	   disturbing when assembling very long reads containing multiple
	   long indels in the called base sequence ... although this
	   should not happen in the first place and is a sure sign for
	   problems lying ahead.
           When in doubt, set it to 'Y' for EST projects and de-novo genome
	   assembly, set it to 'N' for assembly of closely related strains
	   (assembly against a backbone). When set to 'N', it is recommended
	   to have -amgb and -amgbemc both set to 'Y'."
    relations: "EDAM: Generic boolean"                                     
  ]

  list: egpl [
    default: "low"
    minimum: "1"
    maximum: "1"
    header: "Extra gap penalty level"
    values: "low: Low,
             medium: Medium,
             high: High,
             est: EST split splices"
    delimiter: ","
    codedelimiter: ":"
    information: "Level"
    help: "Has no effect if extra_gap_penalty is off. Defines an extra
           penalty applied to 'long' gaps. There are these predefined levels -
	   1. low - use this if you expect your base caller frequently misses
	   two or more bases. 2. medium - use this if your base caller is
	   expected to frequently miss one to two bases. 3. high - use this
	   if your base caller does not frequently miss more than one base.
           For some stages of the EST assembly process, a special value 'est'
	   is used."
    relations: "EDAM: Generic string array"                                
  ]

  integer: megpp [
    information: "Maximum extra gap penalty percent"
    minimum: "1"
    maximum: "100"
    default: "100"
    help: "Has no effect if extra_gap_penalty is off. Defines the maximum
           extra penalty in percent applied to 'long' gaps."
    relations: "EDAM: Generic integer"                                     
  ]

# Contig

  string: np [
    default: "mira"
    information: "Name prefix"
    help: "Contigs will have this string prepended to their names."
    knowntype: "name prefix"
    relations:  "EDAM: Generic string"                                 
  ]

  list: an [
    default: "signal"
    minimum: "1"
    maximum: "1"
    header: "Contig analysis"
    values: "none: None,
             text: Text,
             signal: Signal"
    delimiter: ","
    codedelimiter: ":"
    information: "Level"
    help: "When adding reads to a contig, dangerous regions can get an extra
           integrity check.
           none = no extra check.
           text = check is only text-based.
           signal = check is signal based, if the SCF trace is not available,
            	    fallback is 'text'.
           For the time being, only regions tagged as ALUS or REPT in the
	   experiment file are considered dangerous."
    relations: "EDAM: Generic string array"                                
  ]

  integer: rodirs [
    information: "Reject on drop in relscore"
    minimum: "1"
    maximum: "100"
    default: "15"
    help: "When adding reads to a contig, reject the reads if the drop in
           the quality of the consensus is > the given value in %. Lower
	   values mean stricter checking. This value is doubled should a
	   read be entered that has a template partner (a read pair) at
	   the right distance."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: dmer [
    information: "Danger max error rate"
    minimum: "1"
    maximum: "100"
    default: "1"
    help: "When adding reads to a contig, reject the reads if the error in
           zones known as dangerous exceeds the given value in %. Lower
	   values mean stricter checking in these danger zones. For the time
	   being, only regions tagged as ALUS or REPT in the experiment file
	   are considered dangerous."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: mr [
    default: "Y"
    information: "Mark repeats"
    help: "One of the most important switches in MIRA. If set to 'Y', MIRA
    will try to resolve misassemblies due to repeats by identifying single
    base stretch differences and tag those critical bases as RMB (Repeat
    Marker Base, weak or strong). This switch is also needed when MIRA is
    run in EST mode to identify possible inter-, intra- and
    intra-and-interorganism SNPs."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: asir [
    default: "N"
    information: "Assume SNP instead of repeat"
    help: "Only takes effect when -mr is set to 'Y', effect is also
           dependent on the fact whether strain data (see -lsd) is present
	   or not. Usually, mira will mark bases that differentiate between
	   repeats, when a conflict occurs between reads that belong to one
	   strain. If the conflict occurs between reads belonging to
	   different strains they are marked as SNP. However, if this switch
	   is set to 'Y',= then conflicts within a strain are also marked
	   as SNP. This switch is mainly used in assemblies of ESTs; it
	   should not be set for genomic assembly."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: mrpg [
    information: "Minimum reads per group"
    minimum: "2"
    default: "2"
    help: "Only takes effect when -mr is set to 'Y'. This defines the
           minimum number of reads in a group that are needed for the RMB
	   (Repeat Marker Bases) or SNP detection routines to be triggered.
	   A group is defined by the reads carrying the same nucleotide
	   for a given position, i.e., an assembly with mrpg=2 will need at
	   least two times two reads with the same nucleotide (having at
	   least a quality as defined in -mgqrt) to be recognised as repeat
	   marker or a SNP. Setting this to a low number increases
	   sensitivity, but might produce a few false positives, resulting
	   in reads being thrown out of contigs because of falsely identified
	   possible repeat markers (or wrongly recognised as SNP)."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: mgqrt [
    information: "Minimum group quality for RMB tagging"
    minimum: "25"
    default: "30"
    help: "Only takes effect when -mr is set to 'Y'. This defines the minimum
           quality of a group of bases to be taken into account as potential
	   repeat marker. The lower the number, the more sensitive you get,
	   but lowering below 25 is not recommended as a lot of wrongly
	   called bases can have a quality approaching this value and you'd
	   end up with a lot of false positives. The higher the overall
	   coverage of your project the better, and the higher you can set
	   this number. A value of 35 will probably remove all false
	   positives, a value of 40 will probably never show false positives."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: emea [
    information: "Endread mark exclusion area"
    minimum: "0"
    default: "15"
    help: "Only takes effect when -mr is set to 'Y'. Using the end of
           sequences of Sanger type shotgun sequencing is always a bit risky,
	   as wrongly called bases tend to crowd there or some sequencing
	   vector relicts hang around. It is even more risky to use these
	   stretches for detecting possible repeats, so one can define an
	   exclusion area where the bases are not used when determining
	   whether a mismatch is due to repeats or not."
    relations: "EDAM: Generic integer"                                     
  ]

  boolean: amgb [
    default: "Y"
    information: "Also mark gap bases"
    help: "Determines whether columns containing gap bases (indels) are
    also tagged."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: amgbemc [
    default: "Y"
    information: "Also mark gap bases, even multi-column"
    help: "Only takes effect when -amgb is set to 'Y'. Determines whether
           multiple columns containing gap bases (indels) are also tagged."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: amgbnbs [
    default: "Y"
    information: "Also mark gap bases, need both strands"
    help: "Only takes effect when -amgb is set to 'Y'. Determines whether,
           for both tagging columns containing gap bases, both strands need
	   to have a gap. Setting this to 'N' is not recommended except when
	   working in desperately low coverage situations."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: dismin [
    information: "Default insert size minimum"
    minimum: "0"
    default: "500"
    help: "The minimum distance that read pairs may be apart. There is an
           additional error margin of 10% subtracted from this value during
	   internal computations."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: dismax [
    information: "Default insert size maximum"
    minimum: "0"
    default: "5000"
    help: "The maximum distance that read pairs may be apart. There is an
           additional error margin of 10% added to this value during internal
	   computations."
    relations: "EDAM: Generic integer"                                     
  ]

# Edit

  boolean: ace [
    default: "N"
    information: "Automatic contig editing"
    help: "Once contigs have been build, mira can call a built-in version of
           the automatic contig editor EdIt. EdIt will try to resolve
	   discrepancies in the contig by performing trace analysis and
	   correct even hard to resolve errors. This option is always useful,
	   but especially in conjunction with -nop and -ure.
	   Notice: the current development version has a memory leak in the
	   editor, therefore the option is not automatically turned on."
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: sem [
    default: "Y"
    information: "Strict editing mode"
    help: "If set to 'Y' the automatic editor will not take error hypotheses
           with a low probability into account, even if all the requirements
	   to make an edit are fulfilled."
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: ct [
    information: "Confirmation threshold"
    minimum: "1"
    maximum: "100"
    default: "50"
    help: "The higher this value, the more strict the automatic editor
           will apply its internal rule set. Going below 40 is not
	   recommended."
    relations: "EDAM: Generic integer"                                     
  ]

# Output

  boolean: orc [
    default: "Y"
    information: "Output CAF results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: org [
    default: "Y"
    information: "Output GAP4 results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: orf [
    default: "Y"
    information: "Output FASTA results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: ora [
    default: "N"
    information: "Output ACE results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: ort [
    default: "Y"
    information: "Output TXT results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: ors [
    default: "Y"
    information: "Output TCS results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: orh [
    default: "N"
    information: "Output HTML results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: otc [
    default: "N"
    information: "Output temporary CAF results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: otg [
    default: "N"
    information: "Output temporary GAP4 results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: otf [
    default: "N"
    information: "Output temporary FASTA results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: ota [
    default: "N"
    information: "Output temporary ACE results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: ott [
    default: "N"
    information: "Output temporary TXT results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: ots [
    default: "N"
    information: "Output temporary TCS results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: oth [
    default: "N"
    information: "Output temporary HTML results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: oetc [
    default: "N"
    information: "Output extra temporary CAF results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: oetg [
    default: "N"
    information: "Output extra temporary GAP4 results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: oetf [
    default: "N"
    information: "Output extra temporary FASTA results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: oeta [
    default: "N"
    information: "Output extra temporary ACE results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: oett [
    default: "N"
    information: "Output extra temporary TXT results"
    relations: "EDAM: Generic boolean"                                     
  ]

  boolean: oeth [
    default: "N"
    information: "Output extra temporary HTML results"
    relations: "EDAM: Generic boolean"                                     
  ]

  integer: tcpl [
    information: "Text characters per line"
    minimum: "1"
    default: "60"
    help: "When producing an output in text format (-ort|ott|oett), this
           parameter defines how many bases each line of an alignment
	   should contain."
    relations: "EDAM: Generic integer"                                     
  ]

  integer: hcpl [
    information: "HTML characters per line"
    minimum: "1"
    default: "60"
    help: "When producing an output in text format (-orh|oth|oeth), this
           parameter defines how many bases each line of an alignment
	   should contain."
    relations: "EDAM: Generic integer"                                     
  ]


# Can't activate tegfc or hegfc until ACD mods have been made
# such that a default string of " " isn't changed to ""
#
#  string: tegfc [
#    default: " "
#    information: "Text endgap fill character"
#    help: "When producing an output in text format (-ort|ott|oett), endgaps
#           are filled up with this character."
#  ]
#
#  string: hegfc [
#    default: " "
#    information: "Text endgap fill character"
#    help: "When producing an output in HTML format (-orh|oth|oeth), endgaps
#           are filled up with this character."
#  ]

endsection: advanced

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

# Directory

  string: gapfda [
    default: "gap4da"
    information: "GAP4 direct assembly directory name"
    help: "Defines the extension of the directory where mira will write the
           result of an assembly ready to import into the Staden package (GAP4)
	   in Direct Assembly format. The name of the directory will then
	   be <projectname>_.<extension>"
    knowntype: "name suffix"
    relations:  "EDAM: Generic string"                                 
  ]

  string: log [
    default: "miralog"
    information: "Log files directory"
    help: "Defines the directory where mira will write some log files to.
           Note that the name of the actual project will be prepended."
    knowntype: "name suffix"
    relations:  "EDAM: Generic string"                                 
  ]


  string: co [
    default: "mira_out.caf"
    information: "Output file for a CAF project"
    help: "Defines the file in CAF format to save an assembled project to.
           Filename must end with '.caf'."
    knowntype: "output filename"
    relations:  "EDAM: File name"                                      
  ]

endsection: output
