----------
-- main --
----------

-- Minimum acceptable identity of block (0.9 is 90%)
MIN_IDENTITY = Decimal('0.853')

-- Minimum acceptable length of fragment (b.p.)
MIN_LENGTH = 100

-- Minimum relative distance from previous iteration 
MIN_REL_DISTANCE = Decimal('0.001')

-------------
-- aligner --
-------------

-- Min equal aligned part (similar aligner)
ALIGNED_CHECK = 10

-- Aligner implementation (similar, mafft, muscle). If mafft or muscle is used, it should be installed.
ALIGNER = 'similar'

-- Min number of equal columns after single gap (similar aligner)
GAP_CHECK = 2

-- Min number of equal columns after single mismatch (similar aligner)
MISMATCH_CHECK = 1

------------
-- anchor --
------------

-- Probability of false positive in Bloom filter, see https://en.wikipedia.org/wiki/Bloom_filter
ANCHOR_FP = Decimal('0.1')

-- Anchor size (b.p.)
ANCHOR_SIZE = 20

-- Stop finding new anchors when total number of fragments of all anchors exceeds this value
MAX_ANCHOR_FRAGMENTS = 100000

-----------
-- blast --
-----------

-- Filter out low complexity regions
BLAST_DUST = false

-- E-value filter for blast
BLAST_EVALUE = Decimal('0.001')

-- Maximum number of subsequent N's in consensus
MAX_NS = 3

----------------------
-- blockset aligner --
----------------------

-- Gap penalty for aligner
ALIGNER_GAP_PENALTY = 2

-- Max distance from main diagonal of considered states of pair alignment
ALIGNER_GAP_RANGE = 15

-- Max number of errors in blockset alignment
ALIGNER_MAX_ERRORS = 11

-- Mismatch penalty for aligner
ALIGNER_MISMATCH_PENALTY = 1

-------------
-- checker --
-------------

-- Length of alignment checker frame (b.p.)
FRAME_LENGTH = 100

-- Max number of end letters prior first gap that are moved onto gap
MAX_TAIL = 3

-- Max ratio of number of end letters prior first gap that are moved onto gap
MAX_TAIL_TO_GAP = Decimal('1')

-- Minimum number of end good columns (b.p.)
MIN_END = 10

-----------------
-- concurrency --
-----------------

-- Number of blocks processed by one core by parallel computing
BLOCKS_IN_GROUP = 10

-- Number of threads (-1 = number of processor cores)
WORKERS = -1

--------------
-- features --
--------------

-- Length of upstream
UPSTREAM_LENGTH = 20

-----------
-- split --
-----------

-- Min number of diagnostic mutations in part of splitted block
SPLIT_REPEATS_MIN_DIAGNOSTIC_MUTATIONS = 2

-- Min number of mutations in candidate block to be splited
SPLIT_REPEATS_MIN_MUTATIONS = 4

--------
-- ui --
--------

-- Maximum number of matches (FragmentFinder)
MAX_MATCHES = 1000

----------
-- util --
----------

-- Where to write log messages (':stdout', ':stderr' or file path)
LOG_TO = ':stderr'

-- Debug mode
NPGE_DEBUG = false

-- Log begin/end of calls and final time summary
TIMING = false

