changeset 0:60573349e9ae draft default tip

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/shasta commit 6d14992ea4fb1af09373d51b3a48166afcbd3a74"
author iuc
date Wed, 11 Nov 2020 21:54:51 +0000
parents
children
files configs/Nanopore-Dec2019.conf configs/Nanopore-Jun2020.conf configs/Nanopore-OldGuppy-Sep2020.conf configs/Nanopore-Sep2020.conf configs/Nanopore-UL-Dec2019.conf configs/Nanopore-UL-Jun2020.conf configs/Nanopore-UL-Sep2020.conf configs/Nanopore-UL-iterative-Sep2020.conf configs/PacBio-CCS-Dec2019.conf configs/PacBio-CLR-Dec2019.conf macros.xml shasta.xml test-data/nanopore.fasta.gz test-data/out_config.txt test-data/out_config2.txt test-data/out_fasta.fasta test-data/out_gfa.gfa1 test-data/out_reads.csv
diffstat 18 files changed, 1840 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/Nanopore-Dec2019.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,51 @@
+# This file contains Shasta options that, as of December 2019,
+# are known to work with Oxford Nanopore reads under the following 
+# circumstances:
+
+# - Human genome assembly.
+# - Coverage between 40x and 80x. If you have more coverage than that,
+#   you can use option "--Reads.minReadLength" to adjust coverage as desired.
+# - Reads from Guppy 3.0.5 base caller. Also known to work with
+#   reads from other Guppy releases 3.0.x and 3.1.x.
+
+# To use this configuration file, specify Shasta option "--config PathToThisFile". 
+# If you specify any conflicting values on the command line,
+# the values specified on the command line take precedence.
+
+# In most cases, for best performance on a large assembly 
+# you will usually also want to use the following options, which 
+# cannot be specified in a configuration file:
+# --memoryMode filesystem
+# --memoryBacking 2M
+# Using these options require root access.
+
+# For detailed information on all available options see here:
+# https://chanzuckerberg.github.io/shasta/CommandLineOptions.html
+
+# For information on running a small assembly for which 
+# performance is not essential see here:
+# https://chanzuckerberg.github.io/shasta/QuickStart.html
+
+# For more information on running an assembly see here:
+# https://chanzuckerberg.github.io/shasta/Running.html
+
+# For information on optimizing assembly performance see here:
+# https://chanzuckerberg.github.io/shasta/Performance.html
+
+
+
+[Reads]
+# If you have extra coverage, use this option to adjust coverage.
+minReadLength = 10000
+
+[MinHash]
+minBucketSize = 5
+maxBucketSize = 30
+minFrequency = 5
+
+[Align]
+minAlignedFraction = 0.4
+
+[Assembly]
+consensusCaller = Bayesian:guppy-3.0.5-a
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/Nanopore-Jun2020.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,74 @@
+# DO NOT USE THIS FILE IF YOU HAVE READS CREATED BY A
+# GUPPY VERSION OLDER THAN 3.6.0.
+
+# This file contains Shasta options that, as of June 2020,
+# are known to work with Oxford Nanopore reads under the following 
+# circumstances:
+
+# - Human genome assembly.
+# - Coverage between 40x and 80x. If you have more coverage than that,
+#   you can use option "--Reads.minReadLength" to adjust coverage as desired.
+# - Reads from Guppy 3.6.0 base caller. If you have reads
+#   from an older version of Guppy, use configuration file
+#   Nanopore-Dec2019.conf instead.
+
+# To use this configuration file, specify Shasta option 
+# "--config AbsolutePathToThisFile". 
+# If you specify any conflicting values on the command line,
+# the values specified on the command line take precedence.
+
+# In most cases, for best performance on a large assembly 
+# you will usually also want to use the following options, which 
+# cannot be specified in a configuration file:
+# --memoryMode filesystem
+# --memoryBacking 2M
+# Using these options requires root access.
+
+# For detailed information on all available options see here:
+# https://chanzuckerberg.github.io/shasta/CommandLineOptions.html
+
+# For information on running a small assembly for which 
+# performance is not essential see here:
+# https://chanzuckerberg.github.io/shasta/QuickStart.html
+
+# For more information on running an assembly see here:
+# https://chanzuckerberg.github.io/shasta/Running.html
+
+# For information on optimizing assembly performance see here:
+# https://chanzuckerberg.github.io/shasta/Performance.html
+
+
+
+[Reads]
+# If you have extra coverage, use this option to adjust coverage.
+minReadLength = 10000
+noCache = True
+
+[Kmers]
+# Due to the higher accuracy of Guppy 3.6.0 we use longer
+# markers than usual.
+k = 14
+
+[MinHash]
+minBucketSize = 5
+maxBucketSize = 30
+minFrequency = 5
+
+[Align]
+alignMethod = 3
+downsamplingFactor = 0.05
+matchScore = 6
+minAlignedFraction = 0.55
+minAlignedMarkerCount = 400
+sameChannelReadAlignment.suppressDeltaThreshold = 30
+
+[MarkerGraph]
+simplifyMaxLength = 10,100,1000,10000,100000
+refineThreshold = 6
+crossEdgeCoverageThreshold = 3
+
+[Assembly]
+consensusCaller = Bayesian:guppy-3.6.0-a
+detangleMethod = 1
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/Nanopore-OldGuppy-Sep2020.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,83 @@
+# This file contains Shasta options which attempt to partially automate
+# parameter selection. It is based on an earlier config, which, as of Jun 2020,
+# was known to work with Oxford Nanopore reads under the following circumstances:
+
+# - Human genome assembly.
+# - Coverage between 40x and 80x. If you have more coverage than that,
+#   you can use option "--Reads.minReadLength" to adjust coverage as desired.
+# - Reads from Guppy 3.0.5 base caller. Also known to work with
+#   reads from other Guppy releases 3.0.x and 3.1.x.
+
+# The automation provided by this config is particularly applicable to
+# low coverage or non-human samples. It also matches or exceeds continuity
+# in human samples, relative to the appropriately chosen config file.
+# Updating to guppy 3.6.0 or higher will greatly improve assembly
+# quality and is therefore strongly recommended.
+
+# To use this configuration file, specify Shasta option
+# "--config AbsolutePathToThisFile".
+# If you specify any conflicting values on the command line,
+# the values specified on the command line take precedence.
+
+# In most cases, for best performance on a large assembly
+# you will usually also want to use the following options, which 
+# cannot be specified in a configuration file:
+# --memoryMode filesystem
+# --memoryBacking 2M
+# Using these options requires root access.
+
+# For detailed information on all available options see here:
+# https://chanzuckerberg.github.io/shasta/CommandLineOptions.html
+
+# For information on running a small assembly for which 
+# performance is not essential see here:
+# https://chanzuckerberg.github.io/shasta/QuickStart.html
+
+# For more information on running an assembly see here:
+# https://chanzuckerberg.github.io/shasta/Running.html
+
+# For information on optimizing assembly performance see here:
+# https://chanzuckerberg.github.io/shasta/Performance.html
+
+
+
+[Reads]
+# If you have extra coverage, use this option to adjust coverage.
+minReadLength = 10000
+noCache = True
+
+[MinHash]
+minBucketSize = 5
+maxBucketSize = 30
+minFrequency = 5
+
+[Align]
+alignMethod = 3
+downsamplingFactor = 0.05
+matchScore = 6
+sameChannelReadAlignment.suppressDeltaThreshold = 30
+
+# The following Align parameters are set to very permissive values to allow the majority of alignments
+# to be assessed during the initial stage of automatic alignment parameter selection
+maxSkip = 100
+maxDrift = 100
+maxTrim = 100
+minAlignedMarkerCount = 10
+minAlignedFraction = 0.1
+
+[ReadGraph]
+# This method uses the observed distribution of alignment stats to choose a cutoff for
+# maxSkip, maxDrift, maxTrim, minAlignedMarkerCount, and minAlignedFraction
+creationMethod = 2
+
+[MarkerGraph]
+simplifyMaxLength = 10,100,1000,10000,100000
+crossEdgeCoverageThreshold = 3
+
+# Automatically determine this using PeakFinder
+minCoverage = 0
+
+[Assembly]
+consensusCaller = Bayesian:guppy-3.0.5-a
+detangleMethod = 2
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/Nanopore-Sep2020.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,94 @@
+# DO NOT USE THIS FILE IF YOU HAVE READS CREATED BY A
+# GUPPY VERSION OLDER THAN 3.6.0.
+
+# This file contains Shasta options which attempt to partially automate
+# parameter selection. It is based on an earlier config, which, as of Jun 2020,
+# was known to work with Oxford Nanopore reads under the following circumstances:
+
+# - Human genome assembly.
+# - Coverage between 40x and 80x. If you have more coverage than that,
+#   you can use option "--Reads.minReadLength" to adjust coverage as desired.
+# - Reads from Guppy 3.6.0 base caller. If you have reads
+#   from an older version of Guppy, use configuration file
+#   Nanopore-Dec2019.conf instead.
+
+# The automation provided by this config is particularly applicable to
+# low coverage or non-human samples. It also matches or exceeds continuity
+# in human samples, relative to the appropriately chosen 3.6.0 or 3.6.0-UL conf.
+# Automation can also be activated with parameters designed for earlier basecallers,
+# if needed, but updating to guppy 3.6.0 or higher will greatly improve assembly
+# quality and is therefore strongly recommended.
+
+# To use this configuration file, specify Shasta option 
+# "--config AbsolutePathToThisFile". 
+# If you specify any conflicting values on the command line,
+# the values specified on the command line take precedence.
+
+# In most cases, for best performance on a large assembly 
+# you will usually also want to use the following options, which 
+# cannot be specified in a configuration file:
+# --memoryMode filesystem
+# --memoryBacking 2M
+# Using these options requires root access.
+
+# For detailed information on all available options see here:
+# https://chanzuckerberg.github.io/shasta/CommandLineOptions.html
+
+# For information on running a small assembly for which 
+# performance is not essential see here:
+# https://chanzuckerberg.github.io/shasta/QuickStart.html
+
+# For more information on running an assembly see here:
+# https://chanzuckerberg.github.io/shasta/Running.html
+
+# For information on optimizing assembly performance see here:
+# https://chanzuckerberg.github.io/shasta/Performance.html
+
+
+
+[Reads]
+# If you have extra coverage, use this option to adjust coverage.
+minReadLength = 10000
+noCache = True
+
+[Kmers]
+# Due to the higher accuracy of Guppy 3.6.0 we use longer
+# markers than usual.
+k = 14
+
+[MinHash]
+minBucketSize = 5
+maxBucketSize = 30
+minFrequency = 5
+
+[Align]
+alignMethod = 3
+downsamplingFactor = 0.05
+matchScore = 6
+sameChannelReadAlignment.suppressDeltaThreshold = 30
+
+# The following Align parameters are set to very permissive values to allow the majority of alignments
+# to be assessed during the initial stage of automatic alignment parameter selection
+maxSkip = 100
+maxDrift = 100
+maxTrim = 100
+minAlignedMarkerCount = 10
+minAlignedFraction = 0.1
+
+[ReadGraph]
+# This method uses the observed distribution of alignment stats to choose a cutoff for
+# maxSkip, maxDrift, maxTrim, minAlignedMarkerCount, and minAlignedFraction
+creationMethod = 2
+
+[MarkerGraph]
+simplifyMaxLength = 10,100,1000,10000,100000
+crossEdgeCoverageThreshold = 3
+
+# Automatically determine this using PeakFinder
+minCoverage = 0
+
+[Assembly]
+consensusCaller = Bayesian:guppy-3.6.0-a
+detangleMethod = 2
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/Nanopore-UL-Dec2019.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,53 @@
+# This file contains Shasta options that, as of December 2019,
+# are known to work with Ultra-Long (UL) Oxford Nanopore reads 
+# under the following circumstances:
+
+# - Human genome assembly.
+# - Coverage between 40x and 80x. If you have more coverage than that,
+#   you can use option "--Reads.minReadLength" to adjust coverage as desired.
+# - Reads from Guppy 3.0.5 base caller. Also known to work with
+#   reads from other Guppy releases 3.0.x and 3.1.x.
+
+# To use this configuration file, specify Shasta option "--config PathToThisFile". 
+# If you specify any conflicting values on the command line,
+# the values specified on the command line take precedence.
+
+# In most cases, for best performance on a large assembly 
+# you will usually also want to use the following options, which 
+# cannot be specified in a configuration file:
+# --memoryMode filesystem
+# --memoryBacking 2M
+# Using these options require root access.
+
+# For detailed information on all available options see here:
+# https://chanzuckerberg.github.io/shasta/CommandLineOptions.html
+
+# For information on running a small assembly for which 
+# performance is not essential see here:
+# https://chanzuckerberg.github.io/shasta/QuickStart.html
+
+# For more information on running an assembly see here:
+# https://chanzuckerberg.github.io/shasta/Running.html
+
+# For information on optimizing assembly performance see here:
+# https://chanzuckerberg.github.io/shasta/Performance.html
+
+
+
+[Reads]
+# If you have extra coverage, use this option to adjust coverage.
+minReadLength = 50000
+
+[MinHash]
+minBucketSize = 5
+maxBucketSize = 40
+minFrequency = 10
+
+[Align]
+maxSkip = 60
+maxDrift = 60
+minAlignedMarkerCount = 400
+
+[Assembly]
+consensusCaller = Bayesian:guppy-3.0.5-a
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/Nanopore-UL-Jun2020.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,78 @@
+# DO NOT USE THIS FILE IF YOU HAVE READS CREATED BY A
+# GUPPY VERSION OLDER THAN 3.6.0.
+
+# This file contains Shasta options that, as of June 2020,
+# are known to work with Ultra-Long (UL) Oxford Nanopore reads 
+# under the following circumstances:
+
+# - Human genome assembly.
+# - Coverage between 40x and 80x. If you have more coverage than that,
+#   you can use option "--Reads.minReadLength" to adjust coverage as desired.
+# - Reads from Guppy 3.6.0 base caller. If you have reads
+#   from an older version of Guppy, use configuration file
+#   Nanopore-UL-Dec2019.conf instead.
+
+# To use this configuration file, specify Shasta option 
+# "--config AbsolutePathToThisFile". 
+# If you specify any conflicting values on the command line,
+# the values specified on the command line take precedence.
+
+# In most cases, for best performance on a large assembly 
+# you will usually also want to use the following options, which 
+# cannot be specified in a configuration file:
+# --memoryMode filesystem
+# --memoryBacking 2M
+# Using these options requires root access.
+
+# For detailed information on all available options see here:
+# https://chanzuckerberg.github.io/shasta/CommandLineOptions.html
+
+# For information on running a small assembly for which 
+# performance is not essential see here:
+# https://chanzuckerberg.github.io/shasta/QuickStart.html
+
+# For more information on running an assembly see here:
+# https://chanzuckerberg.github.io/shasta/Running.html
+
+# For information on optimizing assembly performance see here:
+# https://chanzuckerberg.github.io/shasta/Performance.html
+
+
+
+[Reads]
+# If you have extra coverage, use this option to adjust coverage.
+minReadLength = 50000
+noCache = True
+
+[Kmers]
+# Due to the higher accuracy of Guppy 3.6.0 we use longer
+# markers than usual.
+k = 14
+
+[MinHash]
+minBucketSize = 10
+maxBucketSize = 30
+minFrequency = 5
+
+[Align]
+alignMethod = 3
+downsamplingFactor = 0.05
+matchScore = 6
+minAlignedFraction = 0.55
+minAlignedMarkerCount = 600
+sameChannelReadAlignment.suppressDeltaThreshold = 30
+
+[ReadGraph]
+maxAlignmentCount = 12
+
+
+[MarkerGraph]
+simplifyMaxLength = 10,100,1000,10000,100000
+refineThreshold = 6
+crossEdgeCoverageThreshold = 3
+
+[Assembly]
+consensusCaller = Bayesian:guppy-3.6.0-a
+detangleMethod = 1
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/Nanopore-UL-Sep2020.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,89 @@
+# DO NOT USE THIS FILE IF YOU HAVE READS CREATED BY A
+# GUPPY VERSION OLDER THAN 3.6.0.
+
+# This file contains Shasta options which attempt to partially automate
+# parameter selection. It is based on an earlier config, which, as of Jun 2020,
+# was known to work with Oxford Nanopore reads under the following circumstances:
+
+# - Human genome assembly.
+# - Coverage between 40x and 80x. If you have more coverage than that,
+#   you can use option "--Reads.minReadLength" to adjust coverage as desired.
+# - Reads from Guppy 3.6.0 base caller. If you have reads
+#   from an older version of Guppy, use configuration file
+#   Nanopore-UL-Dec2019.conf instead.
+
+# The automation provided by this config is particularly applicable to
+# low coverage or non-human samples. It also matches or exceeds continuity
+# in human samples, relative to the appropriately chosen 3.6.0 or 3.6.0-UL conf.
+# Automation can be activated with parameters designed for earlier basecallers,
+# if needed, but updating to guppy 3.6.0 or higher will greatly improve assembly
+# quality and is therefore strongly recommended.
+
+# In most cases, for best performance on a large assembly 
+# you will usually also want to use the following options, which 
+# cannot be specified in a configuration file:
+# --memoryMode filesystem
+# --memoryBacking 2M
+# Using these options requires root access.
+
+# For detailed information on all available options see here:
+# https://chanzuckerberg.github.io/shasta/CommandLineOptions.html
+
+# For information on running a small assembly for which 
+# performance is not essential see here:
+# https://chanzuckerberg.github.io/shasta/QuickStart.html
+
+# For more information on running an assembly see here:
+# https://chanzuckerberg.github.io/shasta/Running.html
+
+# For information on optimizing assembly performance see here:
+# https://chanzuckerberg.github.io/shasta/Performance.html
+
+
+
+[Reads]
+# If you have extra coverage, use this option to adjust coverage.
+minReadLength = 50000
+noCache = True
+
+[Kmers]
+# Due to the higher accuracy of Guppy 3.6.0 we use longer
+# markers than usual.
+k = 14
+
+[MinHash]
+minBucketSize = 10
+maxBucketSize = 30
+minFrequency = 5
+
+[Align]
+alignMethod = 3
+downsamplingFactor = 0.05
+matchScore = 6
+sameChannelReadAlignment.suppressDeltaThreshold = 30
+
+# The following Align parameters are set to very permissive values to allow the majority of alignments
+# to be assessed during the initial stage of automatic alignment parameter selection
+maxSkip = 100
+maxDrift = 100
+maxTrim = 100
+minAlignedMarkerCount = 10
+minAlignedFraction = 0.1
+
+[ReadGraph]
+# This method uses the observed distribution of alignment stats to choose a cutoff for
+# maxSkip, maxDrift, maxTrim, minAlignedMarkerCount, and minAlignedFraction
+creationMethod = 2
+
+[MarkerGraph]
+simplifyMaxLength = 10,100,1000,10000,100000
+crossEdgeCoverageThreshold = 3
+
+# Automatically determine this using PeakFinder
+minCoverage = 0
+
+[Assembly]
+consensusCaller = Bayesian:guppy-3.6.0-a
+detangleMethod = 2
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/Nanopore-UL-iterative-Sep2020.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,46 @@
+# This configuration file is EXPERIMENTAL and should only
+# be used under the following conditions:
+# - Nanopore reads created by Guppy 3.6.0 or newer.
+# - Ultra-Long (UL) reads with typical N50 80Kb or more.
+# - High coverage 80X.
+# Iterative assembly results in some separation of haplotypes
+# and does better at resolving segmental duplications.
+
+[Reads]
+minReadLength = 30000 
+noCache = True
+
+[Kmers]
+k = 10 
+
+[MinHash]
+minBucketSize = 10 
+maxBucketSize = 40 
+minFrequency = 5 
+
+[Align]
+alignMethod = 3 
+matchScore = 6
+gapScore = -3 
+downsamplingFactor = 0.05 
+maxSkip = 100
+maxDrift = 100
+maxTrim = 100
+minAlignedMarkerCount = 10
+minAlignedFraction = 0.1
+sameChannelReadAlignment.suppressDeltaThreshold = 30 
+
+[ReadGraph]
+maxAlignmentCount = 12
+creationMethod = 2
+
+[MarkerGraph]
+minCoveragePerStrand = 3
+simplifyMaxLength = 10,100
+crossEdgeCoverageThreshold = 3 
+
+[Assembly]
+detangleMethod = 2 
+consensusCaller = Bayesian:guppy-3.6.0-a
+iterative = True
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/PacBio-CCS-Dec2019.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,50 @@
+# This file contains Shasta options that, as of December 2019,
+# are known to work with PacBio CCS reads under the following 
+# circumstances:
+
+# - Human genome assembly.
+# - Coverage between 40x and 80x. If you have more coverage than that,
+#   you can use option "--Reads.minReadLength" to adjust coverage as desired.
+
+# To use this configuration file, specify Shasta option "--config PathToThisFile". 
+# If you specify any conflicting values on the command line,
+# the values specified on the command line take precedence.
+
+# In most cases, for best performance on a large assembly 
+# you will usually also want to use the following options, which 
+# cannot be specified in a configuration file:
+# --memoryMode filesystem
+# --memoryBacking 2M
+# Using these options require root access.
+
+# For detailed information on all available options see here:
+# https://chanzuckerberg.github.io/shasta/CommandLineOptions.html
+
+# For information on running a small assembly for which 
+# performance is not essential see here:
+# https://chanzuckerberg.github.io/shasta/QuickStart.html
+
+# For more information on running an assembly see here:
+# https://chanzuckerberg.github.io/shasta/Running.html
+
+# For information on optimizing assembly performance see here:
+# https://chanzuckerberg.github.io/shasta/Performance.html
+
+[Kmers]
+k = 15
+probability = 0.02
+
+[MinHash]
+m = 12
+minBucketSize = 20 
+maxBucketSize = 100
+minHashIterationCount = 25 
+minFrequency = 10
+
+[ReadGraph]
+maxAlignmentCount = 20 
+
+[Assembly]
+consensusCaller = Modal
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configs/PacBio-CLR-Dec2019.conf	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,45 @@
+# This file contains Shasta options that, as of December 2019,
+# are known to work with PacBio CLR reads under the following 
+# circumstances:
+
+# - Human genome assembly.
+# - Coverage between 40x and 80x. If you have more coverage than that,
+#   you can use option "--Reads.minReadLength" to adjust coverage as desired.
+
+# To use this configuration file, specify Shasta option "--config PathToThisFile". 
+# If you specify any conflicting values on the command line,
+# the values specified on the command line take precedence.
+
+# In most cases, for best performance on a large assembly 
+# you will usually also want to use the following options, which 
+# cannot be specified in a configuration file:
+# --memoryMode filesystem
+# --memoryBacking 2M
+# Using these options require root access.
+
+# For detailed information on all available options see here:
+# https://chanzuckerberg.github.io/shasta/CommandLineOptions.html
+
+# For information on running a small assembly for which 
+# performance is not essential see here:
+# https://chanzuckerberg.github.io/shasta/QuickStart.html
+
+# For more information on running an assembly see here:
+# https://chanzuckerberg.github.io/shasta/Running.html
+
+# For information on optimizing assembly performance see here:
+# https://chanzuckerberg.github.io/shasta/Performance.html
+
+
+[Reads]
+# Use this option to adjust coverage.
+minReadLength = 10000
+
+[ReadGraph]
+maxAlignmentCount = 20
+
+[Assembly]
+consensusCaller = Modal
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<macros>
+    <token name="@TOOL_VERSION@">0.6.0</token>
+    <token name="@PROFILE@">18.01</token>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="@TOOL_VERSION@">shasta</requirement>
+        </requirements>
+    </xml>
+    <xml name="version_command">
+        <version_command>shasta --version</version_command>
+    </xml>
+    <xml name="citations">
+        <citations>
+            <citation type="doi">10.1038/s41587-020-0503-6</citation>
+            <citation type="bibtex">@online{shasta,
+              author = {TODOLastName,TODOFirstName},
+              title = {shasta},
+              year = 2020,
+              url = {https://github.com/chanzuckerberg/shasta},
+              urldate = {2020-11-05}
+            }</citation>
+        </citations>
+    </xml>
+    <!--
+        input
+    -->
+    <token name="@INIT_INPUT_READS@"><![CDATA[
+#for $counter, $input in enumerate($in_data)
+    #if $input.is_of_type("fasta.gz")
+        #set $ext = "fasta"
+        gzip -dcf '$input' > ./input_${counter}.${ext} && 
+    #elif $input.is_of_type("fastq.gz","fastqsanger.gz")
+        #set $ext = "fastq"
+        gzip -dcf '$input' > ./input_${counter}.${ext} && 
+    #elif $input.is_of_type("fastqsanger", "fastq"):
+        #set $ext = "fastq"
+        ### I tried symlinking but shasta still complained about file extensions
+        cp '$input' ./input_${counter}.${ext} &&
+    #elif $input.is_of_type("fasta"):
+        #set $ext = "fasta"
+        ### I tried symlinking but shasta still complained about file extensions
+        cp '$input' ./input_${counter}.${ext} &&
+    #end if
+#end for
+    ]]></token>
+
+    <xml name="input_reads">
+        <param name="in_data" type="data" format="fasta,fastq,fastqsanger,fasta.gz,fastq.gz,fastqsanger.gz" multiple="true" label="Input read file(s)"/>
+    </xml>
+
+    <xml name="config_selection">
+        <param name="config_select" type="select" label="Initial config file to build off of." help="Link to the directory where these config files are stored can be found in the tool help below.">
+            <option value="Nanopore-Dec2019.conf"></option>
+            <option value="Nanopore-Jun2020.conf"></option>
+            <option value="Nanopore-OldGuppy-Sep2020.conf"></option>
+            <option value="Nanopore-Sep2020.conf"></option>
+            <option value="Nanopore-UL-Dec2019.conf"></option>
+            <option value="Nanopore-UL-Jun2020.conf"></option>
+            <option value="Nanopore-UL-Sep2020.conf"></option>
+            <option value="Nanopore-UL-iterative-Sep2020.conf"></option>
+            <option value="PacBio-CCS-Dec2019.conf"></option>
+            <option value="PacBio-CLR-Dec2019.conf"></option>
+        </param>
+    </xml>
+    <!--
+        Help
+    -->
+
+    <token name="@WID@"><![CDATA[
+The goal of the *Shasta* long read assembler is to rapidly produce accurate assembled sequence using as input DNA reads generated by Oxford Nanopore flow cells.
+
+Computational methods used by the Shasta assembler include:
+
+Using a run-length representation of the read sequence. This makes the assembly process more resilient to errors in homopolymer repeat counts, which are the most common type of errors in Oxford Nanopore reads.
+
+Using in some phases of the computation a representation of the read sequence based on markers, a fixed subset of short k-mers (k ≈ 10).
+]]></token>
+    <token name="@REFERENCES@"><![CDATA[
+More information are available on the `documentation <https://chanzuckerberg.github.io/shasta/>`_ or the `github <https://github.com/chanzuckerberg/shasta>`_ .
+    ]]></token>
+</macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/shasta.xml	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,832 @@
+<?xml version="1.0"?>
+<tool id="shasta" name="Shasta" version="@TOOL_VERSION@+galaxy0" profile="@PROFILE@">
+    <description>De novo assembly of long read sequencing data</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    
+    <expand macro="requirements"/>
+
+    <expand macro="version_command"/>
+
+    <command detect_errors="exit_code"><![CDATA[
+### Initialize input reads (either unzip or symlink to have the right file extensions for shasta)
+
+@INIT_INPUT_READS@
+
+shasta --threads \${GALAXY_SLOTS:-4}
+
+#if $use_config.use_config_select == "yes":
+    --config '${__tool_directory__}/configs/${use_config.config_select}'
+#elif $use_config.use_config_select == "file":
+    --config '$in_config'
+#end if
+
+--assemblyDirectory shasta_out
+--command assemble
+
+######################
+### Reads Options: ###
+######################
+
+#if str($reads.min_read_length):
+    --Reads.minReadLength '${reads.min_read_length}'
+#end if
+#if str($reads.desired_coverage):
+    --Reads.desiredCoverage '${reads.desired_coverage}'
+#end if
+
+#######################################
+### Reads.palindromicReads Options: ###
+#######################################
+
+#if $reads.palindromic_reads.skip_flagging:
+    --Reads.palindromicReads.skipFlagging '${reads.palindromic_reads.skip_flagging}'
+#end if
+#if str($reads.palindromic_reads.max_skip):
+    --Reads.palindromicReads.maxSkip '${reads.palindromic_reads.max_skip}'
+#end if
+#if str($reads.palindromic_reads.max_drift):
+    --Reads.palindromicReads.maxDrift '${reads.palindromic_reads.max_drift}'
+#end if
+#if str($reads.palindromic_reads.max_marker_frequency):
+    --Reads.palindromicReads.maxMarkerFrequency '${reads.palindromic_reads.max_marker_frequency}'
+#end if
+#if str($reads.palindromic_reads.aligned_fraction_threshold):
+    --Reads.palindromicReads.alignedFractionThreshold '${reads.palindromic_reads.aligned_fraction_threshold}'
+#end if
+#if str($reads.palindromic_reads.near_diagonal_fraction_threshold):
+    --Reads.palindromicReads.nearDiagonalFractionThreshold '${reads.palindromic_reads.near_diagonal_fraction_threshold}'
+#end if
+#if str($reads.palindromic_reads.delta_threshold):
+    --Reads.palindromicReads.deltaThreshold '${reads.palindromic_reads.delta_threshold}'
+#end if
+
+######################
+### Kmers Options: ###
+######################
+
+#if $kmers.generation_method:
+    --Kmers.generationMethod '${kmers.generation_method}'
+#end if
+#if str($kmers.k):
+    --Kmers.k '${kmers.k}'
+#end if
+#if str($kmers.probability):
+    --Kmers.probability '${kmers.probability}'
+#end if
+#if str($kmers.enrichment_threshold):
+    --Kmers.enrichmentThreshold '${kmers.enrichment_threshold}'
+#end if
+#if $kmers.file:
+    --Kmers.file '${kmers.file}'
+#end if
+
+########################
+### MinHash Options: ###
+########################
+
+#if $minhash.version:
+    --MinHash.version '${minhash.version}'
+#end if
+#if str($minhash.m):
+    --MinHash.m '${minhash.m}'
+#end if
+#if str($minhash.hash_fraction):
+    --MinHash.hashFraction '${minhash.hash_fraction}'
+#end if
+#if str($minhash.min_hash_iteration_count):
+    --MinHash.minHashIterationCount '${minhash.min_hash_iteration_count}'
+#end if
+#if str($minhash.alignment_candidates_per_read):
+    --MinHash.alignmentCandidatesPerRead '${minhash.alignment_candidates_per_read}'
+#end if
+#if str($minhash.min_bucket_size):
+    --MinHash.minBucketSize '${minhash.min_bucket_size}'
+#end if
+#if str($minhash.max_bucket_size):
+    --MinHash.maxBucketSize '${minhash.max_bucket_size}'
+#end if
+#if str($minhash.min_frequency):
+    --MinHash.minFrequency '${minhash.min_frequency}'
+#end if
+#if $minhash.all_pairs:
+    ${minhash.all_pairs}
+#end if
+
+######################
+### Align Options: ###
+######################
+
+#if $align.align_method:
+    --Align.alignMethod '${align.align_method}'
+#end if
+#if str($align.max_skip):
+    --Align.maxSkip '${align.max_skip}'
+#end if
+#if str($align.max_drift):
+    --Align.maxDrift '${align.max_drift}'
+#end if
+#if str($align.max_trim):
+    --Align.maxTrim '${align.max_trim}'
+#end if
+#if str($align.max_marker_frequency):
+    --Align.maxMarkerFrequency '${align.max_marker_frequency}'
+#end if
+#if str($align.min_aligned_marker_count):
+    --Align.minAlignedMarkerCount '${align.min_aligned_marker_count}'
+#end if
+#if str($align.min_aligned_fraction):
+    --Align.minAlignedFraction '${align.min_aligned_fraction}'
+#end if
+#if str($align.match_score):
+    --Align.matchScore '${align.match_score}'
+#end if
+#if str($align.mismatch_score):
+    --Align.mismatchScore '${align.mismatch_score}'
+#end if
+#if str($align.gap_score):
+    --Align.gapScore '${align.gap_score}'
+#end if
+#if str($align.downsampling_factor):
+    --Align.downsamplingFactor '${align.downsampling_factor}'
+#end if
+#if str($align.band_extend):
+    --Align.bandExtend '${align.band_extend}'
+#end if
+#if str($align.max_band):
+    --Align.maxBand '${align.max_band}'
+#end if
+#if $align.suppress_containments:
+    ${align.suppress_containments}
+#end if
+
+###############################################
+### Align.sameChannelReadAlignment Options: ###
+###############################################
+
+#if str($align.same_channel_read_alignment.suppress_delta_threshold):
+    --Align.sameChannelReadAlignment.suppressDeltaThreshold '${align.same_channel_read_alignment.suppress_delta_threshold}'
+#end if
+
+##########################
+### ReadGraph Options: ###
+##########################
+
+#if $read_graph.creation_method:
+    --ReadGraph.creationMethod '${read_graph.creation_method}'
+#end if
+#if str($read_graph.max_alignment_count):
+    --ReadGraph.maxAlignmentCount '${read_graph.max_alignment_count}'
+#end if
+#if str($read_graph.max_chimeric_read_distance):
+    --ReadGraph.maxChimericReadDistance '${read_graph.max_chimeric_read_distance}'
+#end if
+#if str($read_graph.cross_strand_max_distance):
+    --ReadGraph.crossStrandMaxDistance '${read_graph.cross_strand_max_distance}'
+#end if
+#if str($read_graph.contained_neighbor_count):
+    --ReadGraph.containedNeighborCount '${read_graph.contained_neighbor_count}'
+#end if
+#if str($read_graph.uncontained_neighbor_count_per_direction):
+    --ReadGraph.uncontainedNeighborCountPerDirection '${read_graph.uncontained_neighbor_count_per_direction}'
+#end if
+#if str($read_graph.marker_count_percentile):
+    --ReadGraph.markerCountPercentile '${read_graph.marker_count_percentile}'
+#end if
+#if str($read_graph.aligned_fraction_percentile):
+    --ReadGraph.alignedFractionPercentile '${read_graph.aligned_fraction_percentile}'
+#end if
+#if str($read_graph.max_skip_percentile):
+    --ReadGraph.maxSkipPercentile '${read_graph.max_skip_percentile}'
+#end if
+#if str($read_graph.max_drift_percentile):
+    --ReadGraph.maxDriftPercentile '${read_graph.max_drift_percentile}'
+#end if
+#if str($read_graph.max_trim_percentile):
+    --ReadGraph.maxTrimPercentile '${read_graph.max_trim_percentile}'
+#end if
+
+############################
+### MarkerGraph Options: ###
+############################
+
+#if str($marker_graph.min_coverage):
+    --MarkerGraph.minCoverage '${marker_graph.min_coverage}'
+#end if
+#if str($marker_graph.max_coverage):
+    --MarkerGraph.maxCoverage '${marker_graph.max_coverage}'
+#end if
+#if str($marker_graph.min_coverage_per_strand):
+    --MarkerGraph.minCoveragePerStrand '${marker_graph.min_coverage_per_strand}'
+#end if
+#if str($marker_graph.low_coverage_threshold):
+    --MarkerGraph.lowCoverageThreshold '${marker_graph.low_coverage_threshold}'
+#end if
+#if str($marker_graph.high_coverage_threshold):
+    --MarkerGraph.highCoverageThreshold '${marker_graph.high_coverage_threshold}'
+#end if
+#if str($marker_graph.max_distance):
+    --MarkerGraph.maxDistance '${marker_graph.max_distance}'
+#end if
+#if str($marker_graph.edge_marker_skip_threshold):
+    --MarkerGraph.edgeMarkerSkipThreshold '${marker_graph.edge_marker_skip_threshold}'
+#end if
+#if str($marker_graph.prune_iteration_count):
+    --MarkerGraph.pruneIterationCount '${marker_graph.prune_iteration_count}'
+#end if
+#if str($marker_graph.simplifiy_max_length):
+    --MarkerGraph.simplifyMaxLength '${marker_graph.simplifiy_max_length}'
+#end if
+#if str($marker_graph.cross_edge_coverage_threshold):
+    --MarkerGraph.crossEdgeCoverageThreshold '${marker_graph.cross_edge_coverage_threshold}'
+#end if
+#if str($marker_graph.refine_threshold):
+    --MarkerGraph.refineThreshold '${marker_graph.refine_threshold}'
+#end if
+#if $marker_graph.reverse_transitive_reduction:
+    ${marker_graph.reverse_transitive_reduction}
+#end if
+
+#######################################
+### MarkerGraph.peakFinder Options: ###
+#######################################
+
+#if str($marker_graph.peak_finder.min_area_fraction):
+    --MarkerGraph.peakFinder.minAreaFraction '${marker_graph.peak_finder.min_area_fraction}'
+#end if
+#if str($marker_graph.peak_finder.area_start_index):
+    --MarkerGraph.peakFinder.areaStartIndex '${marker_graph.peak_finder.area_start_index}'
+#end if
+
+#########################
+### Assembly Options: ###
+#########################
+
+#if str($assembly.marker_graph_edge_length_threshold_for_consensus):
+    --Assembly.markerGraphEdgeLengthThresholdForConsensus '${assembly.marker_graph_edge_length_threshold_for_consensus}'
+#end if
+#if str($assembly.consensus_caller.consensus_caller_select) == "custom":
+    --Assembly.consensusCaller 'Bayesian:${assembly.consensus_caller.consensus_caller_conf_file}'
+#elif str($assembly.consensus_caller.consensus_caller_select) != "default":
+    --Assembly.consensusCaller ${assembly.consensus_caller.consensus_caller_select}
+#end if
+## ## The below option only can be meaningfully set with memoryMode set to filesystem, which requires root access. Therefore, removing this param
+## #if str($assembly.store_coverage_data_csv_length_threshold):
+##     --Assembly.storeCoverageDataCsvLengthThreshold '${assembly.store_coverage_data_csv_length_threshold}'
+## #end if
+${assembly.write_reads_by_assembled_segment}
+
+##################################
+### Assembly.detangle Options: ###
+##################################
+
+#if $assembly.detangle.detangle_method:
+    --Assembly.detangleMethod '${assembly.detangle.detangle_method}'
+#end if
+#if str($assembly.detangle.diagonal_read_count_min):
+    --Assembly.detangle.diagonalReadCountMin '${assembly.detangle.diagonal_read_count_min}'
+#end if
+#if str($assembly.detangle.off_diagonal_read_count_max):
+    --Assembly.detangle.offDiagonalReadCountMax '${assembly.detangle.off_diagonal_read_count_max}'
+#end if
+#if str($assembly.detangle.off_diagonal_ratio):
+    --Assembly.detangle.offDiagonalRatio '${assembly.detangle.off_diagonal_ratio}'
+#end if
+
+###################################
+### Assembly.iterative Options: ###
+###################################
+
+#if $assembly.iterative.iterative:
+    $assembly.iterative.iterative
+#end if
+#if str($assembly.iterative.iteration_count):
+    --Assembly.iterative.iterationCount '${assembly.iterative.iteration_count}'
+#end if
+#if str($assembly.iterative.pseudo_path_align_match_score):
+    --Assembly.iterative.pseudoPathAlignMatchScore '${assembly.iterative.pseudo_path_align_match_score}'
+#end if
+#if str($assembly.iterative.pseudo_path_align_mismatch_score):
+    --Assembly.iterative.pseudoPathAlignMismatchScore '${assembly.iterative.pseudo_path_align_mismatch_score}'
+#end if
+#if str($assembly.iterative.pseudo_path_align_gap_score):
+    --Assembly.iterative.pseudoPathAlignGapScore '${assembly.iterative.pseudo_path_align_gap_score}'
+#end if
+#if str($assembly.iterative.mismatch_square_factor):
+    --Assembly.iterative.mismatchSquareFactor '${assembly.iterative.mismatch_square_factor}'
+#end if
+#if str($assembly.iterative.min_score):
+    --Assembly.iterative.minScore '${assembly.iterative.min_score}'
+#end if
+#if str($assembly.iterative.max_alignment_count):
+    --Assembly.iterative.maxAlignmentCount '${assembly.iterative.max_alignment_count}'
+#end if
+#if str($assembly.iterative.bridge_removal_iteration_count):
+    --Assembly.iterative.bridgeRemovalIterationCount '${assembly.iterative.bridge_removal_iteration_count}'
+#end if
+#if str($assembly.iterative.bridge_removal_max_distance):
+    --Assembly.iterative.bridgeRemovalMaxDistance '${assembly.iterative.bridge_removal_max_distance}'
+#end if
+
+################################################################
+### List input files with their corresponding file extension ###
+################################################################
+
+--input
+#for $counter, $input in enumerate($in_data):
+    #if $input.is_of_type("fasta","fasta.gz"):
+        #set $ext = "fasta"
+    #elif $input.is_of_type("fastq","fastqsanger","fastq.gz","fastqsanger.gz"):
+        #set $ext = "fastq"
+    #end if
+    ./input_${counter}.${ext}
+#end for
+| tee '$out_log' 1>&2
+    ]]></command>
+    <inputs>
+        <expand macro="input_reads"/>
+        <conditional name="use_config">
+            <param name="use_config_select" type="select" label="Config file options" help="If you use a config file and specify any conflicting values in the other options, the values specified in the other options will take precedence.">
+                <option value="yes" selected="true">Select a packaged config file</option>
+                <option value="file">Provide my own config file</option>
+                <option value="no">Do not provide config file</option>
+            </param>
+            <when value="yes">
+                <expand macro="config_selection"/>
+            </when>
+            <when value="file">
+                <param name="in_config" type="data" format="txt" label="Config file"/>
+            </when>
+            <when value="no">
+            </when>
+        </conditional>
+        <section name="outputs" expanded="true" title="Output options">
+            <param name="report_graphical_fragment_assembly" type="boolean" label="Report graphical fragment assembly?" checked="true" help="The graphical fragment assembly file describes the assembly and how contigs in the assembly relate to one another in the assembly graph"/>
+            <param name="report_config" type="boolean" label="Report configuration file" checked="true" help="The configuration file contains all of the parameters used by shasta based on the options selected."/>
+            <param name="report_log" type="boolean" label="Report log file?" checked="true" help="Log file contains basic information about the run"/>
+        </section>
+        <section name="reads" expanded="true" title="Reads options">
+            <param argument="--Reads.minReadLength" name="min_read_length" optional="true" type="integer" label="MinReadLength" help="Read length cutoff. Shorter reads are discarded" min="0"/>
+            <param argument="--Reads.desiredCoverage" name="desired_coverage" optional="true" type="text" label="Desired coverage" help="Reduce coverage to desired value. If not zero, specifies desired coverage (number of bases). The read length cutoff specified via --Reads.minReadLength is increased to reduce coverage to the specified value. Power of 10 multipliers can be used, for example 120Gb to request 120 Gb of coverage">
+                <validator type="regex" message="Desired coverage must be an integer, optionally followed by the a unit prefix (KMG)">^([0-9]*)?([KMG]bp?)?$</validator>
+            </param>
+            <!-- Decided not to expose the below parameter, can revisit this later if we change our minds on this-->
+            <!-- <param name="no_cache" optional="true" type="boolean" /> -->
+
+            <section name="palindromic_reads" expanded="true" title="Palindromic reads options">
+                <param argument="--Reads.palindromicReads.skipFlagging" name="skip_flagging" optional="true" type="select" label="Skip flagging palindromic reads?" help="Oxford Nanopore reads should be flagged for better results.">
+                    <option value="">Do not skip flagging palindromic reads unless otherwise specified in provided config file</option>
+                    <option value="--Reads.palindromicReads.skipFlagging">Skip flagging of palindromic reads</option>
+                </param>
+                <param argument="--Reads.palindromicReads.maxSkip" name="max_skip" optional="true" type="integer" label="maxSkip for palindromic read detection" min="0"/>
+                <param argument="--Reads.palindromicReads.maxDrift" name="max_drift" optional="true" type="integer" label="maxDrift for palindromic read detection" min="0"/>
+                <param argument="--Reads.palindromicReads.maxMarkerFrequency" name="max_marker_frequency" optional="true" type="integer" label="maxMarkerFrequency for palindromic read detection" min="0"/>
+                <param argument="--Reads.palindromicReads.alignedFractionThreshold" name="aligned_fraction_threshold" optional="true" type="float" label="alignedFractionThreshold for palindromic read detection"/>
+                <param argument="--Reads.palindromicReads.nearDiagonalFractionThreshold" name="near_diagonal_fraction_threshold" optional="true" type="float" label="nearDiagonalFractionThreshold for palindromic read detection"/>
+                <param argument="--Reads.palindromicReads.deltaThreshold" name="delta_threshold" optional="true" type="integer" label="deltaThreshold for palindromic read detection"/>
+            </section>
+
+        </section>
+        <section name="kmers" expanded="true" title="Kmers options">
+            <param argument="--Kmers.generationMethod" name="generation_method" optional="true" type="select" label="Method to generate marker k-mers">
+                <option value="0">Random</option>
+                <option value="1">Random, excluding globally overenriched</option>
+                <option value="2">Random, excluding overenriched even in a single read</option>
+                <option value="3">Read from file</option>
+            </param>
+            <param argument="--Kmers.k" name="k" optional="true" type="integer" label="Length of marker k-mers (In run length space)"/>
+            <param argument="--Kmers.probability" name="probability" optional="true" type="float" label="Fraction k-mers used as a marker"/>
+            <param argument="--Kmers.enrichmentThreshold" name="enrichment_threshold" optional="true" type="float" label="Enrichment threshold for defining cutoff in Kmers.generationMethod that select based on enrichment"/>
+            <param argument="--Kmers.file" name="file" optional="true" type="data" format="txt" label="The file containing the k-mers to be used as markers, one kmer per line. Only used if the Kmers.generationMethod is 'Read from file'"/>
+        </section>
+        <section name="minhash" expanded="true" title="MinHash options">
+            <param argument="--MinHash.version" name="version" optional="true" type="select" label="Version of the LowHash algorithm to use">
+                <option value="0">Default</option>
+                <option value="1">Experimental</option>
+            </param>
+            <param argument="--MinHash.m" name="m" optional="true" type="integer" label="The number of consecutive markers that define a MinHash/LowHash feature"/>
+            <param argument="--MinHash.hashFraction" name="hash_fraction" optional="true" type="float" label="Defines how low a hash has to be to be used with the LowHash algorithm"/>
+            <param argument="--MinHash.minHashIterationCount" name="min_hash_iteration_count" optional="true" type="integer" label="The number of MinHash/LowHash iterations" help="Set to 0 to let --MinHash.alignmentCandidatesPerRead control the number of iterations"/>
+            <param argument="--MinHash.alignmentCandidatesPerRead" name="alignment_candidates_per_read" optional="true" type="float" label="If --MinHash.minHashIterationCount is 0, Min hash iteration is stopped when the average number of alignment candidates that each read is involved in reaches this value." help="If --MinHash.minHashIterationCount is not 0, this is not used"/>
+            <param argument="--MinHash.minBucketSize" name="min_bucket_size" optional="true" type="integer" label="The minimum bucket size to be used by the LowHash algorithm"/>
+            <param argument="--MinHash.maxBucketSize" name="max_bucket_size" optional="true" type="integer" label="The maximum bucket size to be used by the LowHash algorithm"/>
+            <param argument="--MinHash.minFrequency" name="min_frequency" optional="true" type="integer" label="The minimum number of times a pair of reads must be found by the MinHash/LowHash algorithm in order to be considered a candidate alignment"/>
+            <param argument="--MinHash.allPairs" name="all_pairs" optional="true" type="select" label="Skip the MinHash algorithm and mark all pairs of reads as alignment candidates with both orientation?" help="This should only be used for experimentation on very small runs because it is very time consuming">
+                <option value="">Do not skip the MinHash algorithm unless otherwise specified in provided config file</option>
+                <option value="--MinHash.allPairs">Skip the MinHash algorithm and mark all pairs of reads as alignment candidates with both orientation</option>
+            </param>
+        </section>
+        <section name="align" expanded="true" title="Align options">
+            <param argument="--Align.alignMethod" name="align_method" optional="true" type="select" label="Alignment method" help="The alignment method to be used to create the read graph and the marker graph.">
+                <option value="0">Old Shasta method</option>
+                <option value="1">SeqAn (slow)</option>
+                <option value="3">Banded SeqAn</option>
+            </param>
+            <param argument="--Align.maxSkip" name="max_skip" optional="true" type="integer" label="The maximum number of markers that an alignment is allowed to skip"/>
+            <param argument="--Align.maxDrift" name="max_drift" optional="true" type="integer" label="The maximum amount of marker drift that an alignment is allowed to tolerate"/>
+            <param argument="--Align.maxTrim" name="max_trim" optional="true" type="integer" label="The maximum number of unaligned markers tolerated at the beginning and end of an alignment"/>
+            <param argument="--Align.maxMarkerFrequency" name="max_marker_frequency" optional="true" type="integer" label="Marker frequency threshold" help="Markers more frequent than this value in either of two oriented reads being aligned are discarded and not used to compute the alignment."/>
+            <param argument="--Align.minAlignedMarkerCount" name="min_aligned_marker_count" optional="true" type="integer" label="The minimum number of aligned markers for an alignment to be used"/>
+            <param argument="--Align.minAlignedFraction" name="min_aligned_fraction" optional="true" type="float" label="The minimum fraction of aligned markers for an alignment to be used"/>
+            <param argument="--Align.matchScore" name="match_score" optional="true" type="integer" label="Match score for marker alignments" help="Only used for 'SeqAn' and 'Banded SeqAn' alignment methods"/>
+            <param argument="--Align.mismatchScore" name="mismatch_score" optional="true" type="integer" label="Mismatch score for marker alignments" help="Only used for 'SeqAn' and 'Banded SeqAn' alignment methods"/>
+            <param argument="--Align.gapScore" name="gap_score" optional="true" type="integer" label="Gap score for marker alignments" help="Only used for 'SeqAn' and 'Banded SeqAn' alignment methods"/>
+            <param argument="--Align.downsamplingFactor" name="downsampling_factor" optional="true" type="float" label="Downsampling factor" help="Only used for 'Banded SeqAn' alignment method"/>
+            <param argument="--Align.bandExtend" name="band_extend" optional="true" type="integer" label="Amount to extend the downsampled band" help="Only used for 'Banded SeqAn' alignment method"/>
+            <param argument="--Align.maxBand" name="max_band" optional="true" type="integer" label="Maximum alignment band"  help="Only used for 'Banded SeqAn' alignment method"/>
+            
+            <param argument="--Align.suppressContainments" name="suppress_containments" optional="true" type="select" label="Suppress containment alignments?" help="Containment alignments are alignments in which one read is entirely contained in another read, except possibly for up to maxTrim markers at the beggining and end">
+                <option value="">Do not suppress containment alignments, unless otherwise specified in provided config file</option>
+                <option value="--Align.suppressContainments">Suppress containment alignments</option>
+            </param>
+
+            <section name="same_channel_read_alignment" expanded="true" title="Same channel read alignment options">
+                <param argument="--Align.sameChannelReadAlignment.suppressDeltaThreshold" name="suppress_delta_threshold" optional="true" type="integer" label="Supress delta threshold" help="If not zero, alignments between reads from the same nanopore channel and close in time are suppressed. The 'read' meta data fields from the FASTA or FASTQ header are checked. If their difference, in absolute value, is less than the value of this option, the alignment is suppressed. This can help avoid assembly artifact. This check is only done if the two reads have identical meta data fields 'runid', 'sampleid', and 'ch'. If any of these metadata fields are missing this check is suppressed and this option has no effect."/>
+            </section>
+        </section>
+        <section name="read_graph" expanded="true" title="ReadGraph options">
+            <param argument="--ReadGraph.creationMethod" name="creation_method" optional="true" type="select" label="The method used to create the read graph">
+                <option value="0">Default</option>
+                <option value="1">Experimental version 1</option>
+                <option value="2">Experimental version 2</option>
+            </param>
+            <param argument="--ReadGraph.maxAlignmentCount" name="max_alignment_count" optional="true" type="integer" label="The maximum number of alignments to be kept for each read"/>
+            <!--The below parameter is currently ignored per the command line help, don't bother exposing it-->
+            <!-- <param argument="ReadGraph.minComponentSize" name="min_component_size" optional="true" type="integer" label="The minimum size (number of oriented reads) of a connected component of the read graph to be kept. This is currently ignored."/> -->
+            <param argument="--ReadGraph.maxChimericReadDistance" name="max_chimeric_read_distance" optional="true" type="integer" label="Max chimeric read distance" help="Used for chimeric read detection"/>
+            <param argument="--ReadGraph.crossStrandMaxDistance" name="cross_strand_max_distance" optional="true" type="integer" label="Maximum distance (edges) for flagCrossStrandReadGraphEdges" help="Set this to zero to entirely suppress flagCrossStrandReadGraphEdges"/>
+            <param argument="--ReadGraph.containedNeighborCount" name="contained_neighbor_count" optional="true" type="integer" label="Maximum number of alignments to be kept for each contained read" help="Only used when creation method for the read graph is Experimental version 1"/>
+            <param argument="--ReadGraph.uncontainedNeighborCountPerDirection" name="uncontained_neighbor_count_per_direction" optional="true" type="integer" label="Maximum number of alignments to be kept in each direction (forward, backward) for each uncontained read" help="Only used when creation method for the read graph is Experimental version 1"/>
+            <!--The below parameter is currently experimental and advised not to be used, dont bother exposing it-->
+            <!-- <param argument="ReadGraph.removeConflicts" name="remove_conflicts" optional="true" type="select"/> -->
+            <param argument="--ReadGraph.markerCountPercentile" name="marker_count_percentile" optional="true" type="float" label="Percentile for marker Count" help="Only used when creation method for the read graph is Experimental version 2"/>
+            <param argument="--ReadGraph.alignedFractionPercentile" name="aligned_fraction_percentile" optional="true"  type="float" label="Percentile for alignedFraction" help="Only used when creation method for the read graph is Experimental version 2"/>
+            <param argument="--ReadGraph.maxSkipPercentile" name="max_skip_percentile" optional="true" type="float" label="Percentile for maxSkip" help="Only used when creation method for the read graph is Experimental version 2"/>
+            <param argument="--ReadGraph.maxDriftPercentile" name="max_drift_percentile" optional="true" type="float" label="Percentile for maxDrift" help="Only used when creation method for the read graph is Experimental version 2"/>
+            <param argument="--ReadGraph.maxTrimPercentile" name="max_trim_percentile" optional="true" type="float" label="Percentile for maxTrim" help="Only used when creation method for the read graph is Experimental version 2"/>
+        </section>
+        <section name="marker_graph" expanded="true" title="MarkerGraph options">
+            <param argument="--MarkerGraph.minCoverage" name="min_coverage" optional="true" type="integer" label="Minimum coverage (number of supporting oriented reads) for a marker graph vertex to be created." help="Specifying 0 causes a suitable value of this parameter to be selected automatically"/>
+            <param argument="--MarkerGraph.maxCoverage" name="max_coverage" optional="true" type="integer" label="Maximum coverage (number of supporting oriented reads) for a marker graph vertex"/>
+            <param argument="--MarkerGraph.minCoveragePerStrand" name="min_coverage_per_strand" optional="true" type="integer" label="Minimum coverage (number of supporting oriented reads) for each strand for a marker graph vertex"/>
+            <param argument="--MarkerGraph.lowCoverageThreshold" name="low_coverage_threshold" optional="true" type="integer" label="Low coverage threshold" help="Used during approximate transitive reduction. Marker graph edges with coverage lower than this value are always marked as removed regardless of reachability"/>
+            <param argument="--MarkerGraph.highCoverageThreshold" name="high_coverage_threshold" optional="true" type="integer" label="High coverage threshold" help="Used during approximate transitive reduction. Marker graph edges with coverage higher than this value are never marked as removed regardless of reachability"/>
+            <param argument="--MarkerGraph.maxDistance" name="max_distance" optional="true" type="integer" label="Max distance" help="Used during approximate transitive reduction"/>
+            <param argument="--MarkerGraph.edgeMarkerSkipThreshold" name="edge_marker_skip_threshold" optional="true" type="integer" label="Edge marker skip threshold" help="Used during approximate transitive reduction"/>
+            <param argument="--MarkerGraph.pruneIterationCount" name="prune_iteration_count" optional="true" type="integer" label="Number of prune iterations"/>
+            <param argument="--MarkerGraph.simplifyMaxLength" name="simplifiy_max_length" optional="true" type="text" label="Simplify max length" help="Maximum lengths (in markers) used at each iteration of simplifyMarkerGraph. Ex.) 10,100,1000">
+                <validator type="regex" message="Must be a comma separated list of integers">^[0-9]+(,[0-9]+)*$</validator>
+            </param>
+            <param argument="--MarkerGraph.crossEdgeCoverageThreshold" name="cross_edge_coverage_threshold" optional="true" type="float" label="Cross edge coverage threshold" help="Experimental. If this is not zero, assembly graph cross-edges with average edge coverage less than this value are removed, together with the corresponding marker graph edges. A cross edge is defined as an edge v0=&gt;v1 with out-degree(v0)&gt;1, in-degree(v1)&gt;1"/>
+            <param argument="--MarkerGraph.refineThreshold" name="refine_threshold" optional="true" type="integer" label="Refine threshold" help="Length threshold, in markers, for the marker graph refinement step, or 0 to turn off refinement step"/>
+            <param argument="--MarkerGraph.reverseTransitiveReduction" name="reverse_transitive_reduction" optional="true" type="select" label="Perform reverse transitive reduction?">
+                <option value="">Don't perform appproximate reverse transitive reduction of the marker graph unless otherwise specified in provided config file</option>
+                <option value="--MarkerGraph.reverseTransitiveReduction">Perform appproximate reverse transitive reduction of the marker graph</option>
+            </param>
+            
+            <section name="peak_finder" expanded="true" title="Peak Finder options">
+                <param argument="--MarkerGraph.peakFinder.minAreaFraction" name="min_area_fraction" optional="true" type="float" label="Peak finding min area fraction" help="Used in the automatic selection of --MarkerGraph.minCoverage when --MarkerGraph.minCoverage is set to 0"/>
+                <param argument="--MarkerGraph.peakFinder.areaStartIndex" name="area_start_index" optional="true" type="integer" label="Peak finding area start index"  help="Used in the automatic selection of --MarkerGraph.minCoverage when --MarkerGraph.minCoverage is set to 0"/>
+            </section>
+
+        </section>
+        <section name="assembly" expanded="true" title="Assembly options">
+            <param argument="--Assembly.crossEdgeCoverageThreshold" name="cross_edge_coverage_threshold" optional="true" type="integer" label="Maximum average edge coverage for a cross edge of the assembly graph to be removed"/>
+            <param argument="--Assembly.markerGraphEdgeLengthThresholdForConsensus" name="marker_graph_edge_length_threshold_for_consensus" optional="true" type="integer" label="Marker graph edge length threshold for consensus" help="Controls assembly of long marker graph edges"/>
+            <conditional name="consensus_caller">
+                <param argument="--Assembly.consensusCaller" name="consensus_caller_select" type="select" label="Consensus caller for repeat counts">
+                    <option value="default" selected="true">Default or caller in provided config file</option>
+                    <option value="Modal"/>
+                    <option value="Median"/>
+                    <option value="Bayesian:guppy-2.3.1-a"/>
+                    <option value="Bayesian:guppy-2.3.5-a"/>
+                    <option value="Bayesian:guppy-3.0.5-a"/>
+                    <option value="Bayesian:guppy-3.4.4-a"/>
+                    <option value="Bayesian:guppy-3.6.0-a"/>
+                    <option value="Bayesian:r10-guppy-3.4.8-a"/>
+                    <option value="custom">Custom config file</option>
+                </param>
+                <when value="default"/>
+                <when value="Modal"/>
+                <when value="Median"/>
+                <when value="Bayesian:guppy-2.3.1-a"/>
+                <when value="Bayesian:guppy-2.3.5-a"/>
+                <when value="Bayesian:guppy-3.0.5-a"/>
+                <when value="Bayesian:guppy-3.4.4-a"/>
+                <when value="Bayesian:guppy-3.6.0-a"/>
+                <when value="Bayesian:r10-guppy-3.4.8-a"/>
+                <when value="custom">
+                    <param name="consensus_caller_conf_file" type="data" format="csv" label="Custom config file for consensus caller"/>
+                </when>
+            </conditional>
+            <!--TODO - param below outputs coverage data in a binary format, but that format is not specified anywhere in the Shasta documentation so I don't know what format I'd assign it in Galaxy. For now, don't expose this parameter and look into changing this later-->
+            <!-- <param argument="Assembly.storeCoverageData" name="store_coverage_data" type="boolean" label="Store coverage data in binary format?" checked="false" truevalue="Assembly.storeCoverageData" falsevalue=""/> -->
+            <!-- The below option only can be meaningfully set with memoryMode set to filesystem, which requires root access. Therefore, removing this param-->
+            <!-- <param argument="Assembly.storeCoverageDataCsvLengthThreshold" name="store_coverage_data_csv_length_threshold" optional="true" type="integer" label="CSV coverage data length threshold" help="Used to specify the minimum length of an assembled segment for which coverage data in csv format shold be stored. If 0, no coverage data in csv format is stored"/> -->
+            <param argument="--Assembly.writeReadsByAssembledSegment" name="write_reads_by_assembled_segment" optional="true" type="boolean" label="Write the reads that contributed to assembling each segment?" checked="false" truevalue="--Assembly.writeReadsByAssembledSegment" falsevalue=""/>
+            
+            <section name="detangle" expanded="true" title="Detangle options">
+                <param argument="--Assembly.detangleMethod" name="detangle_method" optional="true" type="select" label="Method used to detangle the assembly graph" help="Controlled by Assembly.detangle.* options (experimental)">
+                    <option value="0">No detangling</option>
+                    <option value="1">Strict detangling</option>
+                    <option value="2">Less strict detangling</option>
+                </param>
+                <param argument="--Assembly.detangle.diagonalReadCountMin" name="diagonal_read_count_min" optional="true" type="integer" label="Minimum number of reads on detangle matrix diagonal elements required for detangling"/>
+                <param argument="--Assembly.detangle.offDiagonalReadCountMax" name="off_diagonal_read_count_max" optional="true" type="integer" label="Maximum number of reads on detangle matrix off-diagonal elements allowed for detangling"/>
+                <param argument="--Assembly.detangle.offDiagonalRatio" name="off_diagonal_ratio" optional="true" type="float" label="Maximum ratio of total off-diagonal elements over diagonal element allowed for detangling"/>
+            </section>
+
+            <section name="iterative" expanded="false" title="Iterative assembly options (experimental)">
+                <param argument="--Assembly.iterative" name="iterative" optional="true" type="select" label="Request iterative assembly? (experimental)">
+                    <option value="">Do not perform iterative assembly unless otherwise specified in provided config file</option>
+                    <option value="--Assembly.iterative">Perform iterative assembly</option>
+                </param>
+                <param argument="--Assembly.iterative.iterationCount" name="iteration_count" optional="true" type="integer" label="Number of iterations for iterative assembly (experimental)"/>
+                <param argument="--Assembly.iterative.pseudoPathAlignMatchScore" name="pseudo_path_align_match_score" optional="true" type="integer" label="Psuedopath alignment match score for iterative assembly (experimental)"/>
+                <param argument="--Assembly.iterative.pseudoPathAlignMismatchScore" name="pseudo_path_align_mismatch_score" optional="true" type="integer" label="Psuedopath alignment mismatch score for iterative assembly (experimental)"/>
+                <param argument="--Assembly.iterative.pseudoPathAlignGapScore" name="pseudo_path_align_gap_score" optional="true" type="integer" label="Psuedopath alignment gap score for iterative assembly (experimental)"/>
+                <param argument="--Assembly.iterative.mismatchSquareFactor" name="mismatch_square_factor" optional="true" type="float" label="Mismatch square factor for iterative assembly (experimental)"/>
+                <param argument="--Assembly.iterative.minScore" name="min_score" optional="true" type="float" label="Minimum psuedo-alignment score for iterative assembly (experimental)"/>
+                <param argument="--Assembly.iterative.maxAlignmentCount" name="max_alignment_count" optional="true" type="integer" label="Maximum number of read graph neighbors for iterative assembly (experimental)"/>
+                <param argument="--Assembly.iterative.bridgeRemovalIterationCount" name="bridge_removal_iteration_count" optional="true" type="integer" label="Number of read graph bridge removal iterations for iterative assembly (experimental)"/>
+                <param argument="--Assembly.iterative.bridgeRemovalMaxDistance" name="bridge_removal_max_distance" optional="true" type="integer" label="Maximum distance for reag graph bridge removal for iterative assembly (experimental)"/>
+            </section>
+
+        </section>
+    </inputs>
+    <outputs>
+        <data name="out_gfa" format="gfa1" label="${tool.name} on ${on_string} (Graphical Fragment Assembly)" from_work_dir="shasta_out/Assembly.gfa">
+            <filter>outputs["report_graphical_fragment_assembly"]</filter>
+        </data>
+        <data name="out_conf" format="txt" label="${tool.name} on ${on_string} (Config file)" from_work_dir="shasta_out/shasta.conf">
+            <filter>outputs["report_config"]</filter>
+        </data>
+        <data name="out_log" format="txt" label="${tool.name} on ${on_string} (Log file)">
+            <filter>outputs["report_log"]</filter>
+        </data>
+        <!-- The below output collection only can be meaningfully produced with memoryMode set to filesystem, which requires root access. Therefore, removing this output-->
+        <!-- <collection name="out_coverage_csvs" type="list" label="${tool.name} on ${on_string} (Coverage CSVs)">
+            <discover_datasets directory="shasta_out/Coverage" pattern="__name_and_ext__" format="csv" visible="false"/>
+            <filter>not ( assembly["store_coverage_data_csv_length_threshold"] == 0 or assembly["store_coverage_data_csv_length_threshold"] == "" )</filter>
+        </collection> -->
+        <data name="out_reads_csv" format="csv" label="${tool.name} on ${on_string} (Reads by assembled segment)" from_work_dir="shasta_out/ReadsBySegment.csv">
+            <filter>assembly["write_reads_by_assembled_segment"]</filter>
+        </data>
+        <data name="out_fasta" format="fasta" label="${tool.name} on ${on_string} (FASTA)" from_work_dir="shasta_out/Assembly.fasta"/>
+    </outputs>
+    <tests>
+        <!--
+            Test full run, all outputs
+        -->
+        <test expect_num_outputs="5">
+            <param name="in_data" ftype="fasta.gz" value="nanopore.fasta.gz"/>
+            <conditional name="use_config">
+                <param name="use_config_select" value="yes"/>
+                <param name="config_select" value="Nanopore-Dec2019.conf"/>
+            </conditional>
+            <section name="assembly">
+                <!-- The below option only can be meaningfully set with memoryMode set to filesystem, which requires root access. Therefore, removing this param-->
+                <!-- <param name="store_coverage_data_csv_length_threshold" value="1000"/> -->
+                <param name="write_reads_by_assembled_segment" value="true"/>
+            </section>
+            <output name="out_fasta" file="out_fasta.fasta">
+                <assert_contents>
+                    <has_n_lines n="2"/>
+                </assert_contents>
+            </output>
+            <output name="out_gfa" file="out_gfa.gfa1">
+                <assert_contents>
+                    <has_n_lines n="2"/>
+                </assert_contents>
+            </output>
+            <output name="out_log"> <!--Log file has timestamps and mac specific outputs. Can't compare vs known file.-->
+                <assert_contents>
+                    <has_line line="Input files: ./input_0.fasta "/>
+                    <has_line line="assemblyDirectory = shasta_out"/>
+                </assert_contents>
+            </output>
+            <output name="out_conf" file="out_config.txt">
+                <assert_contents>
+                    <has_n_lines n="100"/>
+                </assert_contents>
+            </output>
+            <output name="out_reads_csv" file="out_reads.csv">
+                <assert_contents>
+                    <has_n_lines n="59"/>
+                </assert_contents>
+            </output>
+            <!-- The below output collection only can be meaningfully produced with memoryMode set to filesystem, which requires root access. Therefore, removing this output-->
+            <!-- <output_collection name="out_coverage_csvs" type="list">
+                <element name="0" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="11714"/>
+                    </assert_contents>
+                </element>
+            </output_collection> -->
+        </test>
+        <!--
+            Test ability to disable outputs
+        -->
+        <test expect_num_outputs="1">
+            <param name="in_data" ftype="fasta.gz" value="nanopore.fasta.gz"/>
+            <conditional name="use_config">
+                <param name="use_config_select" value="yes"/>
+                <param name="config_select" value="Nanopore-Dec2019.conf"/>
+            </conditional>
+            <section name="outputs">
+                <param name="report_graphical_fragment_assembly" value="false"/>
+                <param name="report_config" value="false"/>
+                <param name="report_log" value="false"/>
+            </section>
+            <output name="out_fasta" file="out_fasta.fasta">
+                <assert_contents>
+                    <has_n_lines n="2"/>
+                </assert_contents>
+            </output>
+        </test>
+        <!--
+            Test ability to use passed config file
+        -->
+        <test expect_num_outputs="1">
+            <param name="in_data" ftype="fasta.gz" value="nanopore.fasta.gz"/>
+            <conditional name="use_config">
+                <param name="use_config_select" value="file"/>
+                <param name="in_config" ftype="txt" value="out_config2.txt"/>
+            </conditional>
+            <section name="outputs">
+                <param name="report_graphical_fragment_assembly" value="false"/>
+                <param name="report_config" value="false"/>
+                <param name="report_log" value="false"/>
+            </section>
+            <output name="out_fasta" file="out_fasta.fasta">
+                <assert_contents>
+                    <has_n_lines n="2"/>
+                </assert_contents>
+            </output>
+        </test>
+        <!--
+            Test ability to not provide config and pass equivalent options through the parameters.
+        -->
+        <test expect_num_outputs="2">
+            <param name="in_data" ftype="fasta.gz" value="nanopore.fasta.gz"/>
+            <conditional name="use_config">
+                <param name="use_config_select" value="no"/>
+            </conditional>
+            <section name="outputs">
+                <param name="report_graphical_fragment_assembly" value="false"/>
+                <param name="report_config" value="true"/>
+                <param name="report_log" value="false"/>
+            </section>
+            <section name="reads">
+                <param name="min_read_length" value="10000"/>
+                <param name="desired_coverage" value="0"/>
+                <section name="palindromic_reads">
+                    <param name="skip_flagging" value=""/>
+                    <param name="max_skip" value="100"/>
+                    <param name="max_drift" value="100"/>
+                    <param name="max_marker_frequency" value="10"/>
+                    <param name="aligned_fraction_threshold" value="0.1"/>
+                    <param name="near_diagonal_fraction_threshold" value="0.1"/>
+                    <param name="delta_threshold" value="100"/>
+                </section>
+            </section>
+            <section name="kmers">
+                <param name="generation_method" value="0"/>
+                <param name="k" value="10"/>
+                <param name="probability" value="0.1"/>
+                <param name="enrichmentThreshold" value="100"/>
+                <!-- <param name="file" value=""/> -->
+            </section>
+            <section name="minhash">
+                <param name="version" value="0"/>
+                <param name="m" value="4"/>
+                <param name="hash_fraction" value="0.01"/>
+                <param name="min_hash_iteration_count" value="10"/>
+                <param name="alignment_candidates_per_read" value="20"/>
+                <param name="min_bucket_size" value="5"/>
+                <param name="max_bucket_size" value="30"/>
+                <param name="min_frequency" value="5"/>
+                <param name="all_pairs" value=""/>
+            </section>
+            <section name="align">
+                <param name="align_method" value="3"/>
+                <param name="max_skip" value="30"/>
+                <param name="max_drift" value="30"/>
+                <param name="max_trim" value="30"/>
+                <param name="max_marker_frequency" value="10"/>
+                <param name="min_aligned_marker_count" value="100"/>
+                <param name="min_aligned_fraction" value="0.4"/>
+                <param name="match_score" value="6"/>
+                <param name="mismatch_score" value="-1"/>
+                <param name="gap_score" value="-1"/>
+                <param name="downsampling_factor" value="0.1"/>
+                <param name="band_extend" value="10"/>
+                <param name="max_band" value="1000"/>
+                <param name="suppress_containments" value=""/>
+                <section name="same_channel_read_alignment">
+                    <param name="suppress_delta_threshold" value="0"/>
+                </section>
+            </section>
+            <section name="read_graph">
+                <param name="creation_method" value="0"/>
+                <param name="max_alignment_count" value="6"/>
+                <param name="max_chimeric_read_distance" value="2"/>
+                <param name="cross_strand_max_distance" value="6"/>
+                <param name="contained_neighbor_count" value="6"/>
+                <param name="uncontained_neighbor_count_per_direction" value="3"/>
+                <param name="marker_count_percentile" value="0.015"/>
+                <param name="aligned_fraction_percentile" value="0.12"/>
+                <param name="max_skip_percentile" value="0.12"/>
+                <param name="max_drift_percentile" value="0.12"/>
+                <param name="max_trim_percentile" value="0.015"/>
+            </section>
+            <section name="marker_graph">
+                <param name="min_coverage" value="10"/>
+                <param name="max_coverage" value="100"/>
+                <param name="min_coverage_per_strand" value="0"/>
+                <param name="low_coverage_threshold" value="0"/>
+                <param name="high_coverage_threshold" value="256"/>
+                <param name="max_distance" value="30"/>
+                <param name="edge_marker_skip_threshold" value="100"/>
+                <param name="prune_iteration_count" value="6"/>
+                <param name="simplifiy_max_length" value="10,100,1000"/>
+                <param name="cross_edge_coverage_threshold" value="0"/>
+                <param name="refine_threshold" value="0"/>
+                <param name="reverse_transitive_reduction" value=""/>
+                <section name="peak_finder">
+                    <param name="min_area_fraction" value="0.08"/>
+                    <param name="area_start_index" value="2"/>
+                </section>
+            </section>
+            <section name="assembly">
+                <param name="cross_edge_coverage_threshold" value="3"/>
+                <param name="marker_graph_edge_length_threshold_for_consensus" value="1000"/>
+                <conditional name="consensus_caller">
+                    <param name="consensus_caller_select" value="Bayesian:guppy-3.0.5-a"/>
+                </conditional>
+                <!-- The below option only can be meaningfully set with memoryMode set to filesystem, which requires root access. Therefore, removing this param-->
+                <!-- <param name="store_coverage_data_csv_length_threshold" value="0"/> -->
+                <param name="write_reads_by_assembled_segment" value="false"/>
+                <section name="detangle">
+                    <param name="detangle_method" value="0"/>
+                    <param name="diagonal_read_count_min" value="1"/>
+                    <param name="off_diagonal_read_count_max" value="2"/>
+                    <param name="off_diagonal_ratio" value="0.3"/>
+                </section>
+                <section name="iterative">
+                    <param name="iterative" value=""/>
+                    <param name="iteration_count" value="3"/>
+                    <param name="pseudo_path_align_match_score" value="1"/>
+                    <param name="pseudo_path_align_mismatch_score" value="-1"/>
+                    <param name="pseudo_path_align_gap_score" value="-1"/>
+                    <param name="mismatch_square_factor" value="3"/>
+                    <param name="min_score" value="0"/>
+                    <param name="max_alignment_count" value="6"/>
+                    <param name="bridge_removal_iteration_count" value="3"/>
+                    <param name="bridge_removal_max_distance" value="2"/>
+                </section>
+            </section>
+            <output name="out_fasta" file="out_fasta.fasta">
+                <assert_contents>
+                    <has_n_lines n="2"/>
+                </assert_contents>
+            </output>
+            <output name="out_conf" file="out_config2.txt">
+                <assert_contents>
+                    <has_n_lines n="100"/>
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+.. class:: infomark
+
+**What it does**
+
+@WID@
+
+**Input**
+
+- fasta / fastq data
+
+- config file (optional)
+
+
+Example config files can be found `here <https://github.com/chanzuckerberg/shasta/tree/master/conf>`_ (these files correspond to the packaged config files available for this tool).
+
+**Output**
+
+- Assembled genome (FASTA)
+- Graphical fragment assembly (optional) (.gfa1)
+- Log file (optional) (.txt)
+- Config file (optional) (.txt)
+- Read CSV detailing which reads align to which assembly fragments (optional) (.csv)
+- Coverage CSV List (optional) (list:.csv)
+
+**References**
+
+@REFERENCES@
+    ]]></help>
+    <expand macro="citations"/>
+</tool>
Binary file test-data/nanopore.fasta.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_config.txt	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,100 @@
+[Reads]
+minReadLength = 10000
+desiredCoverage = 0
+noCache = False
+palindromicReads.skipFlagging = False
+palindromicReads.maxSkip = 100
+palindromicReads.maxDrift = 100
+palindromicReads.maxMarkerFrequency = 10
+palindromicReads.alignedFractionThreshold = 0.1
+palindromicReads.nearDiagonalFractionThreshold = 0.1
+palindromicReads.deltaThreshold = 100
+
+[Kmers]
+generationMethod = 0
+k = 10
+probability = 0.1
+enrichmentThreshold = 100
+file = 
+
+[MinHash]
+version = 0
+m = 4
+hashFraction = 0.01
+minHashIterationCount = 10
+alignmentCandidatesPerRead = 20
+minBucketSize = 5
+maxBucketSize = 30
+minFrequency = 5
+allPairs = False
+
+[Align]
+alignMethod = 3
+maxSkip = 30
+maxDrift = 30
+maxTrim = 30
+maxMarkerFrequency = 10
+minAlignedMarkerCount = 100
+minAlignedFraction = 0.4
+matchScore = 6
+mismatchScore = -1
+gapScore = -1
+downsamplingFactor = 0.1
+bandExtend = 10
+maxBand = 1000
+sameChannelReadAlignment.suppressDeltaThreshold = 0
+suppressContainments = False
+
+[ReadGraph]
+creationMethod = 0
+maxAlignmentCount = 6
+minComponentSize = 100
+maxChimericReadDistance = 2
+crossStrandMaxDistance = 6
+containedNeighborCount = 6
+uncontainedNeighborCountPerDirection = 3
+removeConflicts = False
+markerCountPercentile = 0.015
+alignedFractionPercentile = 0.12
+maxSkipPercentile = 0.12
+maxDriftPercentile = 0.12
+maxTrimPercentile = 0.015
+
+[MarkerGraph]
+minCoverage = 10
+maxCoverage = 100
+minCoveragePerStrand = 0
+lowCoverageThreshold = 0
+highCoverageThreshold = 256
+maxDistance = 30
+edgeMarkerSkipThreshold = 100
+pruneIterationCount = 6
+simplifyMaxLength = 10,100,1000
+crossEdgeCoverageThreshold = 0
+refineThreshold = 0
+reverseTransitiveReduction = False
+peakFinder.minAreaFraction = 0.08
+peakFinder.areaStartIndex = 2
+
+[Assembly]
+crossEdgeCoverageThreshold = 3
+markerGraphEdgeLengthThresholdForConsensus = 1000
+consensusCaller = Bayesian:guppy-3.0.5-a
+storeCoverageData = False
+storeCoverageDataCsvLengthThreshold = 0
+writeReadsByAssembledSegment = True
+detangleMethod = 0
+detangle.diagonalReadCountMin = 1
+detangle.offDiagonalReadCountMax = 2
+detangle.offDiagonalRatio = 0.3
+iterative = False
+iterative.iterationCount = 3
+iterative.pseudoPathAlignMatchScore = 1
+iterative.pseudoPathAlignMismatchScore = -1
+iterative.pseudoPathAlignGapScore = -1
+iterative.mismatchSquareFactor = 3
+iterative.minScore = 0
+iterative.maxAlignmentCount = 6
+iterative.bridgeRemovalIterationCount = 3
+iterative.bridgeRemovalMaxDistance = 2
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_config2.txt	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,100 @@
+[Reads]
+minReadLength = 10000
+desiredCoverage = 0
+noCache = False
+palindromicReads.skipFlagging = False
+palindromicReads.maxSkip = 100
+palindromicReads.maxDrift = 100
+palindromicReads.maxMarkerFrequency = 10
+palindromicReads.alignedFractionThreshold = 0.1
+palindromicReads.nearDiagonalFractionThreshold = 0.1
+palindromicReads.deltaThreshold = 100
+
+[Kmers]
+generationMethod = 0
+k = 10
+probability = 0.1
+enrichmentThreshold = 100
+file = 
+
+[MinHash]
+version = 0
+m = 4
+hashFraction = 0.01
+minHashIterationCount = 10
+alignmentCandidatesPerRead = 20
+minBucketSize = 5
+maxBucketSize = 30
+minFrequency = 5
+allPairs = False
+
+[Align]
+alignMethod = 3
+maxSkip = 30
+maxDrift = 30
+maxTrim = 30
+maxMarkerFrequency = 10
+minAlignedMarkerCount = 100
+minAlignedFraction = 0.4
+matchScore = 6
+mismatchScore = -1
+gapScore = -1
+downsamplingFactor = 0.1
+bandExtend = 10
+maxBand = 1000
+sameChannelReadAlignment.suppressDeltaThreshold = 0
+suppressContainments = False
+
+[ReadGraph]
+creationMethod = 0
+maxAlignmentCount = 6
+minComponentSize = 100
+maxChimericReadDistance = 2
+crossStrandMaxDistance = 6
+containedNeighborCount = 6
+uncontainedNeighborCountPerDirection = 3
+removeConflicts = False
+markerCountPercentile = 0.015
+alignedFractionPercentile = 0.12
+maxSkipPercentile = 0.12
+maxDriftPercentile = 0.12
+maxTrimPercentile = 0.015
+
+[MarkerGraph]
+minCoverage = 10
+maxCoverage = 100
+minCoveragePerStrand = 0
+lowCoverageThreshold = 0
+highCoverageThreshold = 256
+maxDistance = 30
+edgeMarkerSkipThreshold = 100
+pruneIterationCount = 6
+simplifyMaxLength = 10,100,1000
+crossEdgeCoverageThreshold = 0
+refineThreshold = 0
+reverseTransitiveReduction = False
+peakFinder.minAreaFraction = 0.08
+peakFinder.areaStartIndex = 2
+
+[Assembly]
+crossEdgeCoverageThreshold = 3
+markerGraphEdgeLengthThresholdForConsensus = 1000
+consensusCaller = Bayesian:guppy-3.0.5-a
+storeCoverageData = False
+storeCoverageDataCsvLengthThreshold = 0
+writeReadsByAssembledSegment = False
+detangleMethod = 0
+detangle.diagonalReadCountMin = 1
+detangle.offDiagonalReadCountMax = 2
+detangle.offDiagonalRatio = 0.3
+iterative = False
+iterative.iterationCount = 3
+iterative.pseudoPathAlignMatchScore = 1
+iterative.pseudoPathAlignMismatchScore = -1
+iterative.pseudoPathAlignGapScore = -1
+iterative.mismatchSquareFactor = 3
+iterative.minScore = 0
+iterative.maxAlignmentCount = 6
+iterative.bridgeRemovalIterationCount = 3
+iterative.bridgeRemovalMaxDistance = 2
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_fasta.fasta	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,2 @@
+>0 length 16594
+TCACCTTTCTGCGTTCTCCGGATTTTTTCGCACGTGACTGCCCAGTTCGCTAAGGCTCGATTCCGATCTTAGCTTCCGAAGCATCTCTGCGTACGAAGCCTCCTCCTGTCTTTTTTTTTACGATGAGTGCCTCTGCACCCGTGCTAGCATTCTTGGCGACAGATGCATAGCTGCCTCGGCTTGGACTCGTTAGGTATGGATGTCGCCTTTTCTTCACCGCTTGCCATCCAACGTAGGGTTGCTCTGCTTCGGCGCCTGGACTTTGGCACCTGCACCGTGGGTACCTGCGCATTTTGTGGAGCCTTTTGGTAGGCTTTGTACCTCCGTCTGGGTAGCGCTGCTCTTCAAGCGGTGCTCGCTAGTAGTACCTTCTTGTACAGCTCTATCGCCCCTGTTGTTAAGGGCTGAGAGTTCGGAAGCTATGCCCTTTGTCTCTCATGTGTGTCGTTGGGTCTCGAATGCGGATAGAAGGGGGGCTGATCTTGCCATTCATCCTGGTAAGTATGCCCCTCAGGTCCTCGTTCTGGAGAGCAGTGGTCAAGTCCGAAGACCGATGAGGGGAACCAGCTGGGGACTTCCCTCCCGTCTTTTGCGATGGCACGGCGATGTGGTCCATCGTCTTCTGACTTGTCGCGGTCGTAGATGCTGTAGGAGCCAATTTCTCCACCTCTACAGCATCGCTGCAGTCGATAGTCAACGGCGGCTGGGGCCTGCGTGCTCACCCCCTTTGCCACCGACGGGACCGAGATTCCGTCACCATGGGTCGGGTTACCGACTCCTCTGGTGGGGGATCTCGAAAGTCGGGAGCTCCTCCTGAACGGGTCGTTGCGATCAGGGGACTGCCCCCACTGCGCTGTCCATCAACCGAAGGATGGCCTAAGGTTACCTAGGGTCACGTAGGCCACGGATTTCCCCGGCTTTTACGGATGGAGGTTTGTACCGCCTCGACTCGGACACCAGAGCCTCTGCTTAGGCACCAGCACGGTGAGAGGATGATATTTGGTCTGTCCGCGACCTTTGTGCCTTTTCCTTTTCCCCTTTCTTAAAGACTTGTGCGCTCCCCAGTTACCAGAATCAAAATTAAATTAAATTAAAAAATTTCAACGGCTTAATTTTTAAATTTAATTTTGAATTTCGCGCCCTACTGTCGCAACACAACACTGATCACACGGTTGATCTGGCAACGCCCCTCCCTCTCCAGATCGTCCCGCTGCGCTATCAGCTGTTTATCCGCTGCAACAATCGCAAGATAATAAATTACCTATTTACATGAAACAGGCGCACAATTAACTTCGCGTGATTGCAGCGCAGAACTATGGCGCGACTCCACCGTGTGATTTTGCCAGTTTGCCGCACACACCGGCCGACACAACTTCTATGGTTTCGAGTATTTCGCGCCGCGTAATTTAAGACGTCCGTCTTCACGGCGATGTAGACTTGGTCTCCGCACCAGGATTGAGTGTCTAAGCCTGTGCGTTCAGGATTAAACTTTGGCAATACGACAGCATTGAGTTTTTGGGTCTCTTTGTGAGTTTTGCACTTCTTTTAACAGTTCAGAAAAATGGCGATTCTGCGACTCTAGAATTGTCAGCAAATTGTTTTCACTATTGTAGTATGCACACATATCGGTTAAGCACTGTACCTATGTGTATTCATAATTGTAGCACTCTGTTGCAATGTGTACATAAACAGTCCAGCACAAGTGTATACGTAATACGAGCACCCACTTGAGGGGCTAACATACATAATTGCCTGGTCAGCAGTTCTCCCGCTGGCCAAGCGCTGATCGCTTATATGTGTGCCTATACCACTCCTCCTCCAGCACCATCGCTCGGCGACAGTACATATATATATACATATATATAAGATACGCATATAAGCGTTGCTGCGCTGCAGGCTATGCCGGCAGCGCTGCTCCTCGACTTAGGCTAAGAAACCTTTGTATGTAGATCATAAGAGGATTGACGAATTAATTTCGAATGGAGCGGGACCTTCCCTGTTCCTCAAATTGGATCAAATAAAGAACAGCTAAAACACAAATGATCTATGACACAATGAAACTACAGGAAGTTGGAGTAGGCGGTCCCACTTCTGATGTCGGATCTGAATCACTTTATACTCGGCATCACTCTCTACAGCGGACACAAAGTAACAGAAAACGGTCGTTAACTTGAAATTAAAAATAAATCTGCGACAAGTACAGTTTGTCAAGAAACTGTTTACACACCGTGAAATAAGATGAATTTTTGATTTTAACGGTCAAAATTAAGGGTTATTTGCTTAATTAAACGCAATTTTTTTTTTAGGAAATATAATTAAACAATATTTATTTTACTTATAAATTAAAAAACAAATTCAAAATATCAAATATACAAGAAAATAAATAACAAACTTCCAAGTTTACACACTTTTGAGAGTGTCACTCTGCCCAAACCGTCATCTCTGGGATGAGCTGATAGGTCCACCTCCCCCCGTCGCGACGTTTGCCATCTGCTCTGCCATTCACCTAATAGCCACTCGTGTGCCTCTTGCCTGGAAGCGCCACTCCGCATAAGGCTGAGAGCCTTGATCTCCAGATCAATCGGCAGGCCTGCCAGCGCTAGCGCCGCGTCTTCGGATATGGTCCTGAATCCTCTAATGAGCCTGAGGGCCATTGACCGTAGCACCGAACGAGCTCCTTTCAGGTATGAGACCCTGCAAGTGGCATTGCTCCAGACTGGTGCAGCGTATAGCAGCGAAGCCTTTGCTACTGACACCAGCAGTTTCCTGGCCGGGTGTCTTGGGCCTCCGACGTTGGGCATGCCTCGCCAACGAAGAGGATGTGACTGCTGTCTTCTTGCTGGCGTAGCTCGCGTGGTCCTTGAACGATAGTCTGCGATCTATCATTACCCCCAGGTACTTTAGGGACTCTTGAGAGGTCCCCTGAGTACCCTTGACGGAGACCAGCATGTTCTCCATCTTTTCCTGCTGCTTAGTAGGACTGCTTCGGTCTTGTGAGCCGCTATTGCTAGCCCGGCTGTGATTGCCACATCGTCAGCGAAACAGCTGCCTCGACGACTTCAAGTTCTGTGACGCACGGGAAATCTGGGGCAGGGGCTGCCTCTGTTGGCCTCCATAGTGTGGTCTGCTTTGGAAATAGCTCCCCTAGTATGTTAGCCAGGACCCCCGGGTCGGATGGGGTTGCCGCTCCTCCTCCTCCTTAGCTGCTTGGTAACAAGCTTGTAGGCGAGGCCCCAGATATCGCTGTCTACGCCATCCTGCAGCTCCTTAAACGACCGCGCTTTGGCAGCCGCGATGCCGTGCTTGAACTCTAGGCGTTTGCTTCTGAAAGCCTCCAAGAGTTCCGCGTGGTGGAGTACTGCCTCTGGCTCGTTGCGCCGTTCTCTTAGCCCTGAGGCAATCAGACCGTAGTTGGCTTAGGGAGGCACTCCACCAGTAAACGGGTGGTTTGCGCTGTGCCTTATTTTTTCCTTGGCATGATTGCGTCGCAGATTCTTCCCAGCATATTCATGAGGCCTGCCGCCATACTCTCTGCGTCCACATTTGGGATTTCCAGGGGAATTGATCTGATAGGCCAGCATGGCCTCATCGATCTTCCTGGTGTCCCATGTTTTCCCGGCTGTTCTACTCTGCCGTCTTTTGGGCATGTCCCTCCGGGGAGAAGGAGATCAGGGCATGGTCGCTCAGCGTCATGACGTCATGGACCATCCAGTTGTTGTTGTCTACTAGCCCTCTGCTGACAAAGGTAACGTCAATAAAGGACGTACCCCTATCGTTGTTAAACGTCGGCTTCCGTCCATCGTTCAGCAGTATGAGGTCCAGCATTCGCATGGCGTCAATCACAGCTCGTCCTCTGGTGTTGGATGTCCTGCTGCCCCATTCCACTGTCCAGGCATTAAAGTCGCCGGTATGACCTTCGGGCTTGCCCTCTCGCATGGTCCACGAGCGCCTCCAGAAGCCCTCGAACTGATCGGGGGTGTCGCTCGGCGGAGCGTAGCAGCTGTACATGTGCACGTGTTTTAACTTCGCATAAGCGATACCCCGCATGGGTAAAGCAGCCAGTTCCTGGACTTGAGAGAGCTGCAGCATTTGATAGCTGCTTTTACCTGCCTCGTCAAGGATCATGGACGATTGTCCACTACCAGAGACGTAGGGTTCGCTTAGGAGCATGATGTCTACATTGCGCTCAACCGCAGTCTGGGCCAGGAGGCTCTGAGCTGCTGCGCAATGATTGACATTGAGCTGTACTACGCTAATATGAGCGTGCATTAAGGTGGCTCTTGGCATCTTTTAGTGTCGCTCTGTAAGTCGGGCACGCAAAGCTACCCGTCGGGTGGTTTCTGTCCACCTCGCTGCTGCAGATCAGGCATTTTGGTGCAGCAACGCACCCCTTTGCCTTGTGCCCACGCTCACCGCATCTAAGACAGCAGTCTGCCCTGTCAGTGTCCTTGCAGGTTGCTGATCGATGCCCATAGCCGAGACACCTGTAGCATCTCGTGGGTCGGACGTCCTGGGTGATACGACATCTTGACCATCCAACGATTATGGTGCCCTGTTTAAGGACTGGTATCGCAACGTTCGCGTTCAGCAGCACTGAGGCTATTTGCTTTGCAATTCCGCATACTGCGAAGGCCCCTGATATCTTCAGGATTTATCTGCAGGCCCTGGAATTGGGCGACCAAGCAGCTGTGGAGCTTCTCTGCTGTCGTAGCCTCGTCCAATCCGCTGCAAGATAGAGCTATTCTTTGCGCTCCCTGTGCGCACAGAGGTTAAGTCATTGAGCGCCGCTTCCAGGTCGCTCTTAAACTTGGGAACGCTTTCGAAGCTTTCCCCTCTACCTCAAGCAACAGATCACCTTTCTGCGTTCTCTCCGGATTTTTTCGCACGTGACTGCCCAGTTCGCTAAGGCTCGATTCCGATCTTAGCTTCCGAAGCATCTCTGCGTACGAAGCCTCTCCTGTCTTTTTACGATGAGTGCCTCTGCACCCGTGCTAGCATTCTTGGCGACAGATGCATAGCTGCCTGGCTTGGACTCGTTAGGTATGGATGTCGCCTTTTCTTCACCGTTGCCATCCAACGTAGGGTTGCTCTGCTTCGGCGCCTGGACTTTGGCACCTGCACCGTGGGTACCTGCGCATTTTGTGGAGCCTTTTGGTAGGCTTTTGTACCTCCGTCTGGGTAGCGCTGCTCTTCAAGCGGTGCTCGCTAAGTAGTACCTTCGTACAGCTCTATCGCCCTGTTGTTAAGGGCTGAGAGTTCGGAAGCTATGCCCTTTGTCTCATGTGTGTCGTTGGGTCTCGAATGCGGATAGAAGGGGGCTGATCTTGCCATTCATCCTGGTAAGTATGCCCCTCAGGTCTCGTTCTGGAGAGCAGTGGTCAAGTCCGAAGACCGATGAGGGGAACAAGCTGGGGACTTCCCTCCCGTCTTTTGCGATGGCACGGCGATGTGGTCCATCGTCTTCTGACTTGTCGCGGTCGTAGATGCTGTAGGAGCCAATTTCTCCACCTCTACAGCATCGCTGCAGTCGATAGTCAACGGCGGCTGGGGGCCTGCGTGCTCACCCCTTGCCACCGACGGGACCGAGATTCCGTCACCATGGGTCGGGTTACCGACTCCTCTGGTGGGGGGATCTCGAAAGTCGGGAGCTCCTCCTGAACGGGTCGTTGCGATCAGGGGACTGCCCCCCACTGCGCTGTCCATCAACTGAAGGATGGCCTAAGGTTACCTAGGGTCACGTAGGCCACGGATTTCCCCCTGGCTTTTACGGATGGAGGTTTGTACCGCCTCGACTCGGACACCAGAGCCTCTGCTTAGGCACCAGCACGGTGAGAGGATGATATTTGGTCTGTCCGCGACCTTTGTGCCTTTTCCCCTTTCTTAAAGACTTGTGCGCTCCCAGTTACCAGAATCAAAATTAAATTAAATTAAATTTCAACGGCTTAATTTTAAATTTAATTTTGAATTTCGCGCCCTACTGTCGCAACACAACACTGATCACACGGTTGATCTGGCAACGCCTCCCTCTCCAGATCGCCCGCTGCGCTATCAGCTGTTTATCCGCTGCAACAATCGCAAGATAATAAATTACCTATTTACATGAAACAGGCGCACAATTAACTCGCGTGATTGCAGCGCAGAACTATGGCGCGACTCCACCGTGTGATTTTGCCAGTTTGCCGCACACACCGGCCGACACAACTTCTATGGTTTCGAGTATTTCGCGCCGCGTAATTTAAGACGTCCGTCTTCACGGCGATGTAGACTTGGTCTCCGCACCAGGATTGAGTGTCTAAGCCTGTGCGTTCAGGATTAAACTTTGGCAATACGACAGCATTGAGTTTTTTGGGTCTCTTTGTGAGTTTTGCACTTCTTTTAACAGTTCAGAAAAATGGCGATTCTGCGACTCTAGAATTGTCAGCAAATTGTTTTCACTATTGTAGTATGCACACATATCGGTTAAGCACTGTACCTATGTGTATTCATAATTGTAGCACTCTGTTGCAATGTGTACATAAACAGTCCAGCACAAGTGTATACGTAATACGAGCACCCACTTGAGGGCTAACATACATAATTGCCTGGTCAGCAGTTCTCCCTGCTGGCAAGCGCTGATCGCTTATATGTGTGCCTATACCACTCCTCCTCCAGCACCATCGCTCGGCGACAGTACATATATATATACATATATATAAGATACGCATATAAGCGTTGCTGCGCTGCAGGCTATGCCGGCAGCGCTGCTCCTCGACTTAGGCTAAGAAACCTTTGTATGTAGATCATAAGAGGATTGACGAATTAATTTCGAATGGAGCGGGACCTTCCCTGTTCCTCAAATTGGATCAAATAAAGAACAGCTAAAACACAAATGATCTATGACACAATGAAACTACAGGAAGTTGGAGTAGGCGGTCCCACTTCTGATGTCGGATCTGAATCACTTTATACTCGGCATCACTCTCTACAGCGGACACAAAGTAACAGAAAACGGTCGTTAACTTGAAATTAAAATAAATCTGCGACAAGTACAGTTTGTCAAGAAACTGTTTACACACCGTGAAATAAGATGAATTTTTTGATTTTTAACGGTCAAAATTAAGGGTTATTTGCTTAATTAAACGCAATTTTTTTTTAGGAAATATAATTAAACAATATTTATTTTACTTATAAATTAAAAAACAAATTCAAAATATCAAATATACAAGAAAATAAACAACGAATTCCAAGTTTAAAGCACTTTTGAGAGTTTCAAGAAACTCTTTACACAAAAACACTAAACCTAAGTTTAATCCTAAATTTTTAAATTATTTTGTTAAAATTTGAAAAGTTGTAGTATTTAGTATGACCCCCCATTGGCTTTGGCTACAAGTTGAAGCTTTTTTTTCATGGAATGGATGAGTTTTTTTTAGGTCATATTCAAGCGGGATCTTTTCCCACTCTATCGCAGCCATGAGCTGTTGTCGTGTTTTGGTGCCCCTTTTGCCACATTCTTCTTTAAGTAGGCCCACAAATTTTCAATGGGGTTCAGATCAAGACTCTGAGGGGGCGTATCGATCACCTTGCCACAGTTATAAAGGAGCCAGTTGCGTACATTGCACTCTTTATGTTTTGGGATCATTGTCCTGATAAAACTTAAAATTTGGCTTGTTGTTGCTAAATAGACCAAATTTTTTCTGCACTGGCCTTCAAATTTGATTTTAAAATATCTAGATATTGCACGGCATTCATAGTGCTTTCAATAAAGGCTAATTTGCCCACTCCATGGCTTGAGATACAGCCCCAAATCATCACTGATAATTTTCCAAATTTGATTGTTGGAATGATATTTTGTTTTTTCTAGCGCACTCAACAGCTTGCGCCATACTCTGCTTGGCCCATCGTTATAATAGAGCATCATTTTTGTTTCGTCACAAAATATTACGTCATCCCAGTACTCTTCCGCATGATCCATCATGCTCACAGCGAATGAATGACGCTTTTCTATATTGACCTCTGATAGCAAAGGCTTTTTTTCTTGCAACTCTTGAAGAGTACCTATGGCGTAGAATGACTTGGCGCACAGTTTTGTGTGGCACAACTAGGTCACATTCTTGCCTGATATCCTGAGCAAGTGATCTGACCGAGATTCAGGGGGGTTCGCAATCACTTTTCGCATAATAAGGCGGTCTACACGCTTGCTAATTTTAGTTTTGCGCCCACCACTCTTAGGTTCAAGCCTGTTCTCTTTTTTCAAGCGATTAAAACATTGTAGACGGTCTTACGGGATACAGAAAACATTTATACTAATTCTGGAATAGATTTTCCCAACTGGTGGTTTTAGTATATTATTTGGGTCACTTCAAAAGCTAATCTATTTCCAGGCATTTTTATTAAATTTAATAACTCATTCGATCAGCAAAATTTCACAAGCAAAGTAAAAAAAATTTCAATAGAAGCGTTGTAAAAAGGAATGCAAATGCCAAAAATAACGGAAAAATCGAGTTCGTTCTAAGAAAAGAGCAAAACAAAGTAGGAAAACAAAATGTGTAAGGAGTTTCTTGCCACTCTCAAAAGTGTGTAAACTTGGAATTTGTTGTTTAATTTCTTGTATATTTGATATTTTGAATTTGTTTTTTTAATTTATAAGTAAAATAAATATTGTTTAATTATATTTCATTAAAAAATTGCGTTTAATTAAAGAAATAACCCTTAATTTTGATTTAAACCTTTAAAATGAAAAATTCAACTTATTTCACGGCGTGTAAATAGTTTCTTGACAAACTGTATATATCTACAAATTTACAACTTGCCGGTACCATCTGCAAGATTCATTACATTGAGAAGTGGACTTTGACTCTCAGAATGAATTAAAACATTATATTCTTAGATTGAACTGACGAGGAACCAGACTGAACTAACTAAACTAACTATCATTTAACTAAATTTAATTGTTTGCTGATAATTTTGAGTTTCTTACAAAGATGACTAATATTAATTTTTAGTTAAAATAGTTTGCAAAACTGAATTTATGTAAATAATATGTTCAATTGATCTGGTTGGGTTTTCTGGGTCTCCCCAACACCTCGCAACGAATGCTGGATCAAAATTATTCGTCAGAAGGACGTGCACAGTCTCGTGAGTAATAAAAGTACAGCAATCTTACTTTGAGGTGGCGTGTTGGAAAGTATGTACACATTTAAGCAAAAGTCACATGGCCTGCATCAAAGACACTAGAATAATAAGATGCGTAACAGCCATACACTGGTTTGGCACTATGCAGCCACTTTTTTTTGGTGACGGCCAAAATTGCTCTCTTTCCGCTCGCTCACGCTGAGCGTAAGAAATCTAAAATAGAATTTGCTTGCTTGTGTGAGTAAAAACAAAAGACGAGAACGCGTATATGTGTGCGTGTTGTGCTAGAAGGCGATTTTCGGGCCGAAATCAATTCTGATCGCAGTAACGAATTTACATATGTACATACATATTTGGGGAGTTTTGGCCAATTTCGTAGAATATGATGAAATTGCGCGCTGTTTAAGATATCAAATTGGAATATAAAAAAAACTGAAAAGAAGTCATTACACTGAGAAAAAATATTTCATAAAAAAATAATACGAAGTAGAAAATAAAAATTTATAAAATAAAAAAAAATGTTAACTGTTTATTGCAAACGTCATATCAAATTAGAATTATTCTAGTGTCTTTGCTTTGGTCATATCTTGAGGCACGAAGTGCGGACCAAAGCACTCAACAATCATTGTCTTCTTAATACTCAAGCAGAGCGACACCGACGAAGACCCTAACTGCTTTGAAATGGCGAAGTAAAATAAAATCAAAAAAAGAGACCAAGCCCCTCCCGAAGTTCAAAGAAAACAGGATTCCCTGGACAATTCATCAAGCACCAGCGCAAATAATTTCGCTCTCTTAAGCGACGGATTGCCCGACAAAACAGGAAACAAATATAACAAAACGAAGATCTCGAAATGGTAAAGTGAAGACAGTGCAACTGATTTTGCTAAGCCCCACCTATCTTTCTCTCTGACGTCAATGGTATAAGTGAAAAGCTAACCTATCTTAAAACTAAAATTAAGAGAACTTTTTTTTATTATAAGACTCAACGTTATGGACATGTAGAGGTAATGGTTAAAAGTATTGAAGAATTCTGAAAATTAGTCAAAACACTTAATAATGATTGTGTGCAGTACCACACATACCAGCTTAAGGATGACAGAGCATTTAGAGTTGTTATTAAGAATTTGCATTTTCCACAAATTTAGATGAAATTAAAAGTGATGAAGAGTCAAAAGGTCATGTTGTTAGAAACATAAGTAATATTAAAAAGCCGTGCGACCAAAACGTCACTGAACATGTTTTATGTAGATATTGAGCCTAACAAAAAAAACCTAGACATATATAATGTAAATAAAATATTGAGCCTCCCCACAATGAAATCGTTCAATGCTATAGCTGCCAGGAATTCGGACATACTAAATCATATTGTACCAAAACGTACCGCTGTGTAAAATCCTCTTCTCGACACCCAAGCAACATTTGCCCGAAAAATACAGAACAACCAGCAAAATGTGCCAACTGCTACGAAGAACACGCCGCCAGCTACAAAGGGTGTAGAATTTATCAGGAACTCTTGTCCAAAAAAAAATAGAAAATAGAAATAATGATCTGAGTAAAATGATTTAGGAATCCAGCAAAGTTTGTTCCGCCTAACAAGCCAACATATACCCAACAAAGTAACGATTATCAATCTTATGCCCAAATTGCTGCAGGAAATAGCAAAACAAACACATCACTGGAGAGAATAGAGCAACTATTAGGAAAACAGTCTGAACTTACAAATAATTTACTTAACATGATAATGTTACTTGTAAACAAATTATGCAAGTAAATCCTAACCTTGGAATATGGAAGCGTAGTAGGAGGTGACTTCAATGCTAAGCTTCCGAAGGGAAGAAACGAACTGTACAAATGCATAGTAAACAACAGCATAACAACACTTTCAACCGGCAAGCCTACATACTGGCCTACTGATAGTAGAAAGATACCAAACTTAACCCTTTCGCACCCAACGTTGCTTGTGAGCAATTTCTATGTTTTCAGAGCTAACTGTAAGTGTGCCTTTTGTTTTTATCTGCTGATTCTTTATGATAACGGTGCTTTTATGTGTCTACTCTAAATATAAAAGCAAAAAACGCATTTGGAGATTAATTGCAGGAATTATTTGCAATAAATAGCACGCGCATCACAATAATTATTGTTTCGATATTCGGTGCAACTTTTGGAATTATTAATTTACTTTTATAATACTTTAAAAAGAACCTAAAGTATAAACAGCAAAGAGTTAACAAGACAGTGATTTAGTCAAACTTAGTAAGTAGTGAACAATAAGTAAGTAAATAATTTTCTAAGTTGCTTGTGAGCAACCTTGGGCATTCGTGATAATAATTTTCACCGAAAGTGAAAGGTTTGTCTAACGAAAGAAATTGAACAGGGATTTAAACTTCGATTGGGATATTTCTACTGACGAAGAAAGTGGTGAGGAGATGAAAGACATTTCTACGGTACTGGAGAAGAATTTAGAAGGAATTCTTGAAAGGGGAGAAAGTATCGACATTGACCTTCTGGAAAATACAGTGATTGAAGGATGTGAACCTGACTCTTGCGTTGTTGTTGACAGTTGCTTAGAGAAAATTGATCCAAAGAGGCTAAAGTGGAGAACAAGGCCGTTTGTAGCTCCAGAGAGTATTTGGGAAGATGACAAAACTTTTGATGTCGGGGACATAAAGACGACCGTGGAGTTCTTCTACACACTTTTGATACTCAGCTAATTCATTTAATGGCTAGGCAAACTGATATACAGTCATGGTCAAAATTATTTTCACAAAGTGCATTTTTGTGCATGGGTCACAAACAGTTGCTTGTGCAGCAAGTGGGGGAGGTGAAATGCAAAAAAAACTTTTGCTTTTGCAAATTCAAACCTATGCAGAGTCAGATGAAAGAAGAATTGAAAAAATAACTGTTCCTATGCGCAAGGAAGAGGCAAATGAAGAGATCTTTATCAGTTGTCAGAAGTATTTGCACACGGTTTCGTCGCATCACAATTATTTTCACAACGCAATTTCTTCTTCAGTGATTGGTTTAGAGTGACAAGTGCCGGTTTGTTTGCTTAAATACATTTAAATTATTGAATAAAAAATTAGATTTAATCATTTTCCTATTACAGTTATTAAATAAAATGCCCAAAACAAAAGAGTTAACAGTTGAGGCCCGGGCTGGTATTGTTGCTAGGTTTAAAGCCGGTACACCTGCGGCCAAAATAGCTGAAATATATCAAATTTCGCGTAGAACTGTCTACTACTTAATAAAAAAAGTTTGATACAGTTGGCACATTAAAAAATAAAAAAAAGATCAGGCCGAAAACCTGTGCTGGACCAAAAGGCAATGCAGGCAAATACTTGGAGTTGTGGCGAAGAATCCTAGTGCCAGTCCGGTAAAAAATTGCCTTAGAATCAAAAAAATACAATTGGCAAACAAGTTAGTAGTTCTACAATTCGTCGCAGGCTAAAAGAAGCTGATTTTAAGACATACTTTGTTCGCAAAACGATTGAGATCACACCAACCAACAAAACAAAACGTCTTCGATTTGCGTTGGAATATGTTAAGAAGCCTCTTGACTTTTGGTTTAATATTTTATGGACTGATGAGTCTGCATTTCAGTACCAGGGGTCATACAGCAAGCATTTTATGCATTTGAAAAATAATCAAAAGCATTTGGCAGCCCAACCAACCAATAGATTTGGTGGTGGGGGCACAGTCATGTTTTGGGGATGTCTTTCCTATTATGGATTCGGAGACTTGGTACCGATAGAAGGTACTTTAAATCAGAACGGATACCTTCTTATCTTAAACAACCATGCTTTTACGTCTGGAAATAGACTTTTTCCAACTACTGAATGGATTCTTCAGCAGGACAATGCTCCATGCCATAAGGGTAGGATACCAACAAAATTTTTAAACGACCTTAATCTGGCGGTTCTTCCGTGGCCCCCCCCCAAAGCCCAGACCTTAATATCATTGAAAACGTTTGGGCTTTTATTAAAACCAACGAACTATTGATAAAAATAGAAAACGAGAGGGAGCCATCATTGAAATAGCGGAGATTTGGTCCAAATTGACATTAGAATTTGCACAAACTTTGGTAAGGTCAATACCAAAAGACTTCAAGCAGTTATTGATGCCAAAGGTGGTGTTACAAAATATTAGTATTGTATTTATATAAAATAAAGAAATTCTTATGTTGAAATTAGATGTTAAGCTGAAATTTACTAAATTAAGTTGAGTGAAAATACTTTTGAAGCGCAATAAACATGTGAAAATACTATTGACAACTTGCATGCATATTTTCTTTTGCTTTTAAGCTTTGTACTATGAACCGTTATCTTTCGTATTTCTTTTCGACTACCTTCTGCATAGATCAAGCTAAGCGATAAGAACTATTTCAGGCAAATCGGACAACAACAAGAAGAAATATAACAAAAGAAGTTGAAGTTTGCAAATATTGTGCGTTGTGAAAATACTTTGACCACCTCTGTATATAGTTTGCAGGAGCACGGTATTGAACTTAAATGTACTGATGAGGAAATCAAACGCTACATTGGCATTTTATTGTACTTTGGTGTTTTAAAACTACCGCAATTCAGAATGGCGTGGTCAAAGTATTTAAAGATTACCGCAATAACTGATTCAATGCCGCGTGGGAGATTTAAAAAAATAAAACAATGCTTACATTTCAACGACAACGCCAAACAATTAAAAAAAGGGGATTGCAACTATGATAAACTCTACAAGATCCGCCCTTTGTTCAGAATTCTCAAAGAAAATTTTGGAAAAACTAACGCAGGAAGAGCATCAAAGTGTCGATGAGCAAATAATTGCATTCAAAGGTACGTTTTAATTTTCTTTTAAATTAGCTTTATTTTTTAATAATTGCTTTTGTTGCAGGTCGATCCACGCTTAGGCAATATAATCCAAACCTCATAAATGGGGTCTTAAAATGTTTACGCGGGCTGGAATATCTGGATTAGTTTATGATTTTATTGCTATATGTTGGAGAAGGCACTTCTCCTTCTTATGGCTTGGGAATATCATCTTATGTTGTCTTATATTTGGCAGAAAGTCTTCCCAAAGACAAAATTTTAAACTGTATTTTGATAATTGGTTTACGTCTGTAATCCTTCTGATTTCGTTGAAGGAAATAGGAATCTTTGCAACAGGTACCTGTACGTATGATAAAGTTGAACATTGGGTAGTTTTTTGGAGAAAGAGGACGTTGCAGACTGTGCAAAATTGCAACACCGATGACCAAATGCCTTACATGCAAAGTCCATCTGTGCTGCAATAACAATAAAAACTGTTTTTTGTCATACCACACTTAAATTGTCATTATAAAGAAAAATATTTCATATTCTGTGATTTATAAAAAAAAAACAATGCTTACACATCACTACTGCCCGACGTTGCTCACAAGAAAACTTTTGCTACCGCCCAAACTAATGGGCGTGGCATACCTAAAATTTTGCTAAATTTTTTCTAAAATAAATGTAAAACATTAATGATAAAACAAAATTTCACGGGTAAAAAAGTTGGGCGCGAAAGGGTTAAAAGACTTCTGTAGCATACTTTGGAATCCCAGAATCTCACATGCGAATAATGGAAAGTTTTGATCTAAGCTCAGATCATTCTCTAATAATAGTGACATACAGTACAGTAGCTCATATATTGCAAATACAGATATCAATGCATTTAAAAGTTATCTGGAAACAGCTATCAGCCTGGATATCTCGCTAAAATCAGGAGAGGAGAGCTACTGTGGAGCTACTCACAAACAAGATCCATAAAGCAAGCTATATATGTACGAAGCTACCAGCCAGAAACTCACAATCAAATCAGCTCTATCTCTCAGCTGAAACTCCGACAACAAATACAACACAAGAGAAATTTGCGTAAGAGATGGCAAGAAACTCTCTACCCTGCCGACAAAAGATCGTATAACAAGGCTGCATCTGATCGCAGAAAACTACTGTCAACTTTAAGAAATTAATCTCTCGCTGAATATCTTAGAAATCTAGATCCACATTCTTGTAACCACGAACATAATTTATGGAGTAACCAAATATCTCAAGCGACCTGCAAAAGAAACACAGTAGTCCGAAACTCTAATGGCGAATGGCGTAGATCTGATGATGAACAAGCCAAAGCATTTGCTTAACACCTGCACTCTGTATTTCAGCCAAATGATATTGATAACCCGCAAACAGAAAGGGAAGTAGATAACTTTTTTCGAGTCACCGCCAAATGAGCTTACCCATTCGTAAAATCAGTATTAATGAAGTTTCATCAGAAATGGCTAAAAAGTAAAAAGGCTCCAGATTGGGACAAAATAGATGGCATAGCCTTGAAAAAAAAAATGGGCGGTTAGAGTTGACCACTTCCCAAGCCAATGGAAATGTGCAGAAATTATAGGAATCCTTAAACCAAACAAGGCAGAAAATGAAGTGACATTGTACCGTCCCATTAGTTTGTTGTCAATATTTTCTAAAGTATTTAAAAAAAATAATTTTAAAGAGAATGTTGTCAATCTTGGAAGAATTGCTATCATACCCAAACACCAGTTTGGATTCGAAGAGGCCACGGAACCCCTGAGCAATGTCACAGGATTAAAAAATGAAATTTCGTCAGCATTTGAGAGCAAAAAATACTGCACTGCTAAATTTCTTGACGTTTAACAAGCGTTTGATCGAGTCTGGCATGATGGCTTATCATATAAAACCATATTTTATATTATTAAAGTCATACTTAACCAATAGACAATTTTATTTGCAACAAAAAAATGAATACTCGCCCTTGCACTTTATAAAAGCTGGAGTCCCACAAGGAAGAGTCTTAGTAACTGTCTTATACACCCTGTAACGGCAGATATGCCGGTAACAAATACCGCCTGTAACAAATGATACAGCTATATTAGCTACAAGCTCATCTAAAGAGGAAGCCTCACAACTCCTGCAAGCAGAGCTACGCCTTATTGAAAGCTGGTTTCTTATTTGGAAAATTAAAGTCAACGCCCTGAAATCTGCGCAAATAACTTTTGCATTAAGAAGAGGTAACTGCCCAGAAGTGTCATTTAATGGATCAGCAATCCCACAAAGTATCGATCGCAGACTAACGTGGAAACACATAAACATAAAAGCAAAGCGCCAGCAACTAAATCAAAAAAGTTTGAAGATGACCTGGTTGCTTGGCCGAAAATCTGCAACCACTCGGAAAATAAAGTCCGTTTATACAAAGCTATACTAAAGCCCATGTGGACTTATGACATACAGCTTTGGGGTACTGCCAGCAACTCAAATATTGAGATTCTACAATGCTACCAATCAAAAAATATTAAGACAAATTGTTAATGCTCCATTTTATATTTCAAATGCAAGTATCTATAAAGACTTAGGAATCCCTTATGTTAAAGAAGAAATAGCAAAACATATTAAAAATATATAGACAGACCAAGAACACATGAAAATAACTTAGCCTTAAATTTGGTAAATAA
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_gfa.gfa1	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,2 @@
+H	VN:Z:1.0
+S	0	TCACCTTTCTGCGTTCTCCGGATTTTTTCGCACGTGACTGCCCAGTTCGCTAAGGCTCGATTCCGATCTTAGCTTCCGAAGCATCTCTGCGTACGAAGCCTCCTCCTGTCTTTTTTTTTACGATGAGTGCCTCTGCACCCGTGCTAGCATTCTTGGCGACAGATGCATAGCTGCCTCGGCTTGGACTCGTTAGGTATGGATGTCGCCTTTTCTTCACCGCTTGCCATCCAACGTAGGGTTGCTCTGCTTCGGCGCCTGGACTTTGGCACCTGCACCGTGGGTACCTGCGCATTTTGTGGAGCCTTTTGGTAGGCTTTGTACCTCCGTCTGGGTAGCGCTGCTCTTCAAGCGGTGCTCGCTAGTAGTACCTTCTTGTACAGCTCTATCGCCCCTGTTGTTAAGGGCTGAGAGTTCGGAAGCTATGCCCTTTGTCTCTCATGTGTGTCGTTGGGTCTCGAATGCGGATAGAAGGGGGGCTGATCTTGCCATTCATCCTGGTAAGTATGCCCCTCAGGTCCTCGTTCTGGAGAGCAGTGGTCAAGTCCGAAGACCGATGAGGGGAACCAGCTGGGGACTTCCCTCCCGTCTTTTGCGATGGCACGGCGATGTGGTCCATCGTCTTCTGACTTGTCGCGGTCGTAGATGCTGTAGGAGCCAATTTCTCCACCTCTACAGCATCGCTGCAGTCGATAGTCAACGGCGGCTGGGGCCTGCGTGCTCACCCCCTTTGCCACCGACGGGACCGAGATTCCGTCACCATGGGTCGGGTTACCGACTCCTCTGGTGGGGGATCTCGAAAGTCGGGAGCTCCTCCTGAACGGGTCGTTGCGATCAGGGGACTGCCCCCACTGCGCTGTCCATCAACCGAAGGATGGCCTAAGGTTACCTAGGGTCACGTAGGCCACGGATTTCCCCGGCTTTTACGGATGGAGGTTTGTACCGCCTCGACTCGGACACCAGAGCCTCTGCTTAGGCACCAGCACGGTGAGAGGATGATATTTGGTCTGTCCGCGACCTTTGTGCCTTTTCCTTTTCCCCTTTCTTAAAGACTTGTGCGCTCCCCAGTTACCAGAATCAAAATTAAATTAAATTAAAAAATTTCAACGGCTTAATTTTTAAATTTAATTTTGAATTTCGCGCCCTACTGTCGCAACACAACACTGATCACACGGTTGATCTGGCAACGCCCCTCCCTCTCCAGATCGTCCCGCTGCGCTATCAGCTGTTTATCCGCTGCAACAATCGCAAGATAATAAATTACCTATTTACATGAAACAGGCGCACAATTAACTTCGCGTGATTGCAGCGCAGAACTATGGCGCGACTCCACCGTGTGATTTTGCCAGTTTGCCGCACACACCGGCCGACACAACTTCTATGGTTTCGAGTATTTCGCGCCGCGTAATTTAAGACGTCCGTCTTCACGGCGATGTAGACTTGGTCTCCGCACCAGGATTGAGTGTCTAAGCCTGTGCGTTCAGGATTAAACTTTGGCAATACGACAGCATTGAGTTTTTGGGTCTCTTTGTGAGTTTTGCACTTCTTTTAACAGTTCAGAAAAATGGCGATTCTGCGACTCTAGAATTGTCAGCAAATTGTTTTCACTATTGTAGTATGCACACATATCGGTTAAGCACTGTACCTATGTGTATTCATAATTGTAGCACTCTGTTGCAATGTGTACATAAACAGTCCAGCACAAGTGTATACGTAATACGAGCACCCACTTGAGGGGCTAACATACATAATTGCCTGGTCAGCAGTTCTCCCGCTGGCCAAGCGCTGATCGCTTATATGTGTGCCTATACCACTCCTCCTCCAGCACCATCGCTCGGCGACAGTACATATATATATACATATATATAAGATACGCATATAAGCGTTGCTGCGCTGCAGGCTATGCCGGCAGCGCTGCTCCTCGACTTAGGCTAAGAAACCTTTGTATGTAGATCATAAGAGGATTGACGAATTAATTTCGAATGGAGCGGGACCTTCCCTGTTCCTCAAATTGGATCAAATAAAGAACAGCTAAAACACAAATGATCTATGACACAATGAAACTACAGGAAGTTGGAGTAGGCGGTCCCACTTCTGATGTCGGATCTGAATCACTTTATACTCGGCATCACTCTCTACAGCGGACACAAAGTAACAGAAAACGGTCGTTAACTTGAAATTAAAAATAAATCTGCGACAAGTACAGTTTGTCAAGAAACTGTTTACACACCGTGAAATAAGATGAATTTTTGATTTTAACGGTCAAAATTAAGGGTTATTTGCTTAATTAAACGCAATTTTTTTTTTAGGAAATATAATTAAACAATATTTATTTTACTTATAAATTAAAAAACAAATTCAAAATATCAAATATACAAGAAAATAAATAACAAACTTCCAAGTTTACACACTTTTGAGAGTGTCACTCTGCCCAAACCGTCATCTCTGGGATGAGCTGATAGGTCCACCTCCCCCCGTCGCGACGTTTGCCATCTGCTCTGCCATTCACCTAATAGCCACTCGTGTGCCTCTTGCCTGGAAGCGCCACTCCGCATAAGGCTGAGAGCCTTGATCTCCAGATCAATCGGCAGGCCTGCCAGCGCTAGCGCCGCGTCTTCGGATATGGTCCTGAATCCTCTAATGAGCCTGAGGGCCATTGACCGTAGCACCGAACGAGCTCCTTTCAGGTATGAGACCCTGCAAGTGGCATTGCTCCAGACTGGTGCAGCGTATAGCAGCGAAGCCTTTGCTACTGACACCAGCAGTTTCCTGGCCGGGTGTCTTGGGCCTCCGACGTTGGGCATGCCTCGCCAACGAAGAGGATGTGACTGCTGTCTTCTTGCTGGCGTAGCTCGCGTGGTCCTTGAACGATAGTCTGCGATCTATCATTACCCCCAGGTACTTTAGGGACTCTTGAGAGGTCCCCTGAGTACCCTTGACGGAGACCAGCATGTTCTCCATCTTTTCCTGCTGCTTAGTAGGACTGCTTCGGTCTTGTGAGCCGCTATTGCTAGCCCGGCTGTGATTGCCACATCGTCAGCGAAACAGCTGCCTCGACGACTTCAAGTTCTGTGACGCACGGGAAATCTGGGGCAGGGGCTGCCTCTGTTGGCCTCCATAGTGTGGTCTGCTTTGGAAATAGCTCCCCTAGTATGTTAGCCAGGACCCCCGGGTCGGATGGGGTTGCCGCTCCTCCTCCTCCTTAGCTGCTTGGTAACAAGCTTGTAGGCGAGGCCCCAGATATCGCTGTCTACGCCATCCTGCAGCTCCTTAAACGACCGCGCTTTGGCAGCCGCGATGCCGTGCTTGAACTCTAGGCGTTTGCTTCTGAAAGCCTCCAAGAGTTCCGCGTGGTGGAGTACTGCCTCTGGCTCGTTGCGCCGTTCTCTTAGCCCTGAGGCAATCAGACCGTAGTTGGCTTAGGGAGGCACTCCACCAGTAAACGGGTGGTTTGCGCTGTGCCTTATTTTTTCCTTGGCATGATTGCGTCGCAGATTCTTCCCAGCATATTCATGAGGCCTGCCGCCATACTCTCTGCGTCCACATTTGGGATTTCCAGGGGAATTGATCTGATAGGCCAGCATGGCCTCATCGATCTTCCTGGTGTCCCATGTTTTCCCGGCTGTTCTACTCTGCCGTCTTTTGGGCATGTCCCTCCGGGGAGAAGGAGATCAGGGCATGGTCGCTCAGCGTCATGACGTCATGGACCATCCAGTTGTTGTTGTCTACTAGCCCTCTGCTGACAAAGGTAACGTCAATAAAGGACGTACCCCTATCGTTGTTAAACGTCGGCTTCCGTCCATCGTTCAGCAGTATGAGGTCCAGCATTCGCATGGCGTCAATCACAGCTCGTCCTCTGGTGTTGGATGTCCTGCTGCCCCATTCCACTGTCCAGGCATTAAAGTCGCCGGTATGACCTTCGGGCTTGCCCTCTCGCATGGTCCACGAGCGCCTCCAGAAGCCCTCGAACTGATCGGGGGTGTCGCTCGGCGGAGCGTAGCAGCTGTACATGTGCACGTGTTTTAACTTCGCATAAGCGATACCCCGCATGGGTAAAGCAGCCAGTTCCTGGACTTGAGAGAGCTGCAGCATTTGATAGCTGCTTTTACCTGCCTCGTCAAGGATCATGGACGATTGTCCACTACCAGAGACGTAGGGTTCGCTTAGGAGCATGATGTCTACATTGCGCTCAACCGCAGTCTGGGCCAGGAGGCTCTGAGCTGCTGCGCAATGATTGACATTGAGCTGTACTACGCTAATATGAGCGTGCATTAAGGTGGCTCTTGGCATCTTTTAGTGTCGCTCTGTAAGTCGGGCACGCAAAGCTACCCGTCGGGTGGTTTCTGTCCACCTCGCTGCTGCAGATCAGGCATTTTGGTGCAGCAACGCACCCCTTTGCCTTGTGCCCACGCTCACCGCATCTAAGACAGCAGTCTGCCCTGTCAGTGTCCTTGCAGGTTGCTGATCGATGCCCATAGCCGAGACACCTGTAGCATCTCGTGGGTCGGACGTCCTGGGTGATACGACATCTTGACCATCCAACGATTATGGTGCCCTGTTTAAGGACTGGTATCGCAACGTTCGCGTTCAGCAGCACTGAGGCTATTTGCTTTGCAATTCCGCATACTGCGAAGGCCCCTGATATCTTCAGGATTTATCTGCAGGCCCTGGAATTGGGCGACCAAGCAGCTGTGGAGCTTCTCTGCTGTCGTAGCCTCGTCCAATCCGCTGCAAGATAGAGCTATTCTTTGCGCTCCCTGTGCGCACAGAGGTTAAGTCATTGAGCGCCGCTTCCAGGTCGCTCTTAAACTTGGGAACGCTTTCGAAGCTTTCCCCTCTACCTCAAGCAACAGATCACCTTTCTGCGTTCTCTCCGGATTTTTTCGCACGTGACTGCCCAGTTCGCTAAGGCTCGATTCCGATCTTAGCTTCCGAAGCATCTCTGCGTACGAAGCCTCTCCTGTCTTTTTACGATGAGTGCCTCTGCACCCGTGCTAGCATTCTTGGCGACAGATGCATAGCTGCCTGGCTTGGACTCGTTAGGTATGGATGTCGCCTTTTCTTCACCGTTGCCATCCAACGTAGGGTTGCTCTGCTTCGGCGCCTGGACTTTGGCACCTGCACCGTGGGTACCTGCGCATTTTGTGGAGCCTTTTGGTAGGCTTTTGTACCTCCGTCTGGGTAGCGCTGCTCTTCAAGCGGTGCTCGCTAAGTAGTACCTTCGTACAGCTCTATCGCCCTGTTGTTAAGGGCTGAGAGTTCGGAAGCTATGCCCTTTGTCTCATGTGTGTCGTTGGGTCTCGAATGCGGATAGAAGGGGGCTGATCTTGCCATTCATCCTGGTAAGTATGCCCCTCAGGTCTCGTTCTGGAGAGCAGTGGTCAAGTCCGAAGACCGATGAGGGGAACAAGCTGGGGACTTCCCTCCCGTCTTTTGCGATGGCACGGCGATGTGGTCCATCGTCTTCTGACTTGTCGCGGTCGTAGATGCTGTAGGAGCCAATTTCTCCACCTCTACAGCATCGCTGCAGTCGATAGTCAACGGCGGCTGGGGGCCTGCGTGCTCACCCCTTGCCACCGACGGGACCGAGATTCCGTCACCATGGGTCGGGTTACCGACTCCTCTGGTGGGGGGATCTCGAAAGTCGGGAGCTCCTCCTGAACGGGTCGTTGCGATCAGGGGACTGCCCCCCACTGCGCTGTCCATCAACTGAAGGATGGCCTAAGGTTACCTAGGGTCACGTAGGCCACGGATTTCCCCCTGGCTTTTACGGATGGAGGTTTGTACCGCCTCGACTCGGACACCAGAGCCTCTGCTTAGGCACCAGCACGGTGAGAGGATGATATTTGGTCTGTCCGCGACCTTTGTGCCTTTTCCCCTTTCTTAAAGACTTGTGCGCTCCCAGTTACCAGAATCAAAATTAAATTAAATTAAATTTCAACGGCTTAATTTTAAATTTAATTTTGAATTTCGCGCCCTACTGTCGCAACACAACACTGATCACACGGTTGATCTGGCAACGCCTCCCTCTCCAGATCGCCCGCTGCGCTATCAGCTGTTTATCCGCTGCAACAATCGCAAGATAATAAATTACCTATTTACATGAAACAGGCGCACAATTAACTCGCGTGATTGCAGCGCAGAACTATGGCGCGACTCCACCGTGTGATTTTGCCAGTTTGCCGCACACACCGGCCGACACAACTTCTATGGTTTCGAGTATTTCGCGCCGCGTAATTTAAGACGTCCGTCTTCACGGCGATGTAGACTTGGTCTCCGCACCAGGATTGAGTGTCTAAGCCTGTGCGTTCAGGATTAAACTTTGGCAATACGACAGCATTGAGTTTTTTGGGTCTCTTTGTGAGTTTTGCACTTCTTTTAACAGTTCAGAAAAATGGCGATTCTGCGACTCTAGAATTGTCAGCAAATTGTTTTCACTATTGTAGTATGCACACATATCGGTTAAGCACTGTACCTATGTGTATTCATAATTGTAGCACTCTGTTGCAATGTGTACATAAACAGTCCAGCACAAGTGTATACGTAATACGAGCACCCACTTGAGGGCTAACATACATAATTGCCTGGTCAGCAGTTCTCCCTGCTGGCAAGCGCTGATCGCTTATATGTGTGCCTATACCACTCCTCCTCCAGCACCATCGCTCGGCGACAGTACATATATATATACATATATATAAGATACGCATATAAGCGTTGCTGCGCTGCAGGCTATGCCGGCAGCGCTGCTCCTCGACTTAGGCTAAGAAACCTTTGTATGTAGATCATAAGAGGATTGACGAATTAATTTCGAATGGAGCGGGACCTTCCCTGTTCCTCAAATTGGATCAAATAAAGAACAGCTAAAACACAAATGATCTATGACACAATGAAACTACAGGAAGTTGGAGTAGGCGGTCCCACTTCTGATGTCGGATCTGAATCACTTTATACTCGGCATCACTCTCTACAGCGGACACAAAGTAACAGAAAACGGTCGTTAACTTGAAATTAAAATAAATCTGCGACAAGTACAGTTTGTCAAGAAACTGTTTACACACCGTGAAATAAGATGAATTTTTTGATTTTTAACGGTCAAAATTAAGGGTTATTTGCTTAATTAAACGCAATTTTTTTTTAGGAAATATAATTAAACAATATTTATTTTACTTATAAATTAAAAAACAAATTCAAAATATCAAATATACAAGAAAATAAACAACGAATTCCAAGTTTAAAGCACTTTTGAGAGTTTCAAGAAACTCTTTACACAAAAACACTAAACCTAAGTTTAATCCTAAATTTTTAAATTATTTTGTTAAAATTTGAAAAGTTGTAGTATTTAGTATGACCCCCCATTGGCTTTGGCTACAAGTTGAAGCTTTTTTTTCATGGAATGGATGAGTTTTTTTTAGGTCATATTCAAGCGGGATCTTTTCCCACTCTATCGCAGCCATGAGCTGTTGTCGTGTTTTGGTGCCCCTTTTGCCACATTCTTCTTTAAGTAGGCCCACAAATTTTCAATGGGGTTCAGATCAAGACTCTGAGGGGGCGTATCGATCACCTTGCCACAGTTATAAAGGAGCCAGTTGCGTACATTGCACTCTTTATGTTTTGGGATCATTGTCCTGATAAAACTTAAAATTTGGCTTGTTGTTGCTAAATAGACCAAATTTTTTCTGCACTGGCCTTCAAATTTGATTTTAAAATATCTAGATATTGCACGGCATTCATAGTGCTTTCAATAAAGGCTAATTTGCCCACTCCATGGCTTGAGATACAGCCCCAAATCATCACTGATAATTTTCCAAATTTGATTGTTGGAATGATATTTTGTTTTTTCTAGCGCACTCAACAGCTTGCGCCATACTCTGCTTGGCCCATCGTTATAATAGAGCATCATTTTTGTTTCGTCACAAAATATTACGTCATCCCAGTACTCTTCCGCATGATCCATCATGCTCACAGCGAATGAATGACGCTTTTCTATATTGACCTCTGATAGCAAAGGCTTTTTTTCTTGCAACTCTTGAAGAGTACCTATGGCGTAGAATGACTTGGCGCACAGTTTTGTGTGGCACAACTAGGTCACATTCTTGCCTGATATCCTGAGCAAGTGATCTGACCGAGATTCAGGGGGGTTCGCAATCACTTTTCGCATAATAAGGCGGTCTACACGCTTGCTAATTTTAGTTTTGCGCCCACCACTCTTAGGTTCAAGCCTGTTCTCTTTTTTCAAGCGATTAAAACATTGTAGACGGTCTTACGGGATACAGAAAACATTTATACTAATTCTGGAATAGATTTTCCCAACTGGTGGTTTTAGTATATTATTTGGGTCACTTCAAAAGCTAATCTATTTCCAGGCATTTTTATTAAATTTAATAACTCATTCGATCAGCAAAATTTCACAAGCAAAGTAAAAAAAATTTCAATAGAAGCGTTGTAAAAAGGAATGCAAATGCCAAAAATAACGGAAAAATCGAGTTCGTTCTAAGAAAAGAGCAAAACAAAGTAGGAAAACAAAATGTGTAAGGAGTTTCTTGCCACTCTCAAAAGTGTGTAAACTTGGAATTTGTTGTTTAATTTCTTGTATATTTGATATTTTGAATTTGTTTTTTTAATTTATAAGTAAAATAAATATTGTTTAATTATATTTCATTAAAAAATTGCGTTTAATTAAAGAAATAACCCTTAATTTTGATTTAAACCTTTAAAATGAAAAATTCAACTTATTTCACGGCGTGTAAATAGTTTCTTGACAAACTGTATATATCTACAAATTTACAACTTGCCGGTACCATCTGCAAGATTCATTACATTGAGAAGTGGACTTTGACTCTCAGAATGAATTAAAACATTATATTCTTAGATTGAACTGACGAGGAACCAGACTGAACTAACTAAACTAACTATCATTTAACTAAATTTAATTGTTTGCTGATAATTTTGAGTTTCTTACAAAGATGACTAATATTAATTTTTAGTTAAAATAGTTTGCAAAACTGAATTTATGTAAATAATATGTTCAATTGATCTGGTTGGGTTTTCTGGGTCTCCCCAACACCTCGCAACGAATGCTGGATCAAAATTATTCGTCAGAAGGACGTGCACAGTCTCGTGAGTAATAAAAGTACAGCAATCTTACTTTGAGGTGGCGTGTTGGAAAGTATGTACACATTTAAGCAAAAGTCACATGGCCTGCATCAAAGACACTAGAATAATAAGATGCGTAACAGCCATACACTGGTTTGGCACTATGCAGCCACTTTTTTTTGGTGACGGCCAAAATTGCTCTCTTTCCGCTCGCTCACGCTGAGCGTAAGAAATCTAAAATAGAATTTGCTTGCTTGTGTGAGTAAAAACAAAAGACGAGAACGCGTATATGTGTGCGTGTTGTGCTAGAAGGCGATTTTCGGGCCGAAATCAATTCTGATCGCAGTAACGAATTTACATATGTACATACATATTTGGGGAGTTTTGGCCAATTTCGTAGAATATGATGAAATTGCGCGCTGTTTAAGATATCAAATTGGAATATAAAAAAAACTGAAAAGAAGTCATTACACTGAGAAAAAATATTTCATAAAAAAATAATACGAAGTAGAAAATAAAAATTTATAAAATAAAAAAAAATGTTAACTGTTTATTGCAAACGTCATATCAAATTAGAATTATTCTAGTGTCTTTGCTTTGGTCATATCTTGAGGCACGAAGTGCGGACCAAAGCACTCAACAATCATTGTCTTCTTAATACTCAAGCAGAGCGACACCGACGAAGACCCTAACTGCTTTGAAATGGCGAAGTAAAATAAAATCAAAAAAAGAGACCAAGCCCCTCCCGAAGTTCAAAGAAAACAGGATTCCCTGGACAATTCATCAAGCACCAGCGCAAATAATTTCGCTCTCTTAAGCGACGGATTGCCCGACAAAACAGGAAACAAATATAACAAAACGAAGATCTCGAAATGGTAAAGTGAAGACAGTGCAACTGATTTTGCTAAGCCCCACCTATCTTTCTCTCTGACGTCAATGGTATAAGTGAAAAGCTAACCTATCTTAAAACTAAAATTAAGAGAACTTTTTTTTATTATAAGACTCAACGTTATGGACATGTAGAGGTAATGGTTAAAAGTATTGAAGAATTCTGAAAATTAGTCAAAACACTTAATAATGATTGTGTGCAGTACCACACATACCAGCTTAAGGATGACAGAGCATTTAGAGTTGTTATTAAGAATTTGCATTTTCCACAAATTTAGATGAAATTAAAAGTGATGAAGAGTCAAAAGGTCATGTTGTTAGAAACATAAGTAATATTAAAAAGCCGTGCGACCAAAACGTCACTGAACATGTTTTATGTAGATATTGAGCCTAACAAAAAAAACCTAGACATATATAATGTAAATAAAATATTGAGCCTCCCCACAATGAAATCGTTCAATGCTATAGCTGCCAGGAATTCGGACATACTAAATCATATTGTACCAAAACGTACCGCTGTGTAAAATCCTCTTCTCGACACCCAAGCAACATTTGCCCGAAAAATACAGAACAACCAGCAAAATGTGCCAACTGCTACGAAGAACACGCCGCCAGCTACAAAGGGTGTAGAATTTATCAGGAACTCTTGTCCAAAAAAAAATAGAAAATAGAAATAATGATCTGAGTAAAATGATTTAGGAATCCAGCAAAGTTTGTTCCGCCTAACAAGCCAACATATACCCAACAAAGTAACGATTATCAATCTTATGCCCAAATTGCTGCAGGAAATAGCAAAACAAACACATCACTGGAGAGAATAGAGCAACTATTAGGAAAACAGTCTGAACTTACAAATAATTTACTTAACATGATAATGTTACTTGTAAACAAATTATGCAAGTAAATCCTAACCTTGGAATATGGAAGCGTAGTAGGAGGTGACTTCAATGCTAAGCTTCCGAAGGGAAGAAACGAACTGTACAAATGCATAGTAAACAACAGCATAACAACACTTTCAACCGGCAAGCCTACATACTGGCCTACTGATAGTAGAAAGATACCAAACTTAACCCTTTCGCACCCAACGTTGCTTGTGAGCAATTTCTATGTTTTCAGAGCTAACTGTAAGTGTGCCTTTTGTTTTTATCTGCTGATTCTTTATGATAACGGTGCTTTTATGTGTCTACTCTAAATATAAAAGCAAAAAACGCATTTGGAGATTAATTGCAGGAATTATTTGCAATAAATAGCACGCGCATCACAATAATTATTGTTTCGATATTCGGTGCAACTTTTGGAATTATTAATTTACTTTTATAATACTTTAAAAAGAACCTAAAGTATAAACAGCAAAGAGTTAACAAGACAGTGATTTAGTCAAACTTAGTAAGTAGTGAACAATAAGTAAGTAAATAATTTTCTAAGTTGCTTGTGAGCAACCTTGGGCATTCGTGATAATAATTTTCACCGAAAGTGAAAGGTTTGTCTAACGAAAGAAATTGAACAGGGATTTAAACTTCGATTGGGATATTTCTACTGACGAAGAAAGTGGTGAGGAGATGAAAGACATTTCTACGGTACTGGAGAAGAATTTAGAAGGAATTCTTGAAAGGGGAGAAAGTATCGACATTGACCTTCTGGAAAATACAGTGATTGAAGGATGTGAACCTGACTCTTGCGTTGTTGTTGACAGTTGCTTAGAGAAAATTGATCCAAAGAGGCTAAAGTGGAGAACAAGGCCGTTTGTAGCTCCAGAGAGTATTTGGGAAGATGACAAAACTTTTGATGTCGGGGACATAAAGACGACCGTGGAGTTCTTCTACACACTTTTGATACTCAGCTAATTCATTTAATGGCTAGGCAAACTGATATACAGTCATGGTCAAAATTATTTTCACAAAGTGCATTTTTGTGCATGGGTCACAAACAGTTGCTTGTGCAGCAAGTGGGGGAGGTGAAATGCAAAAAAAACTTTTGCTTTTGCAAATTCAAACCTATGCAGAGTCAGATGAAAGAAGAATTGAAAAAATAACTGTTCCTATGCGCAAGGAAGAGGCAAATGAAGAGATCTTTATCAGTTGTCAGAAGTATTTGCACACGGTTTCGTCGCATCACAATTATTTTCACAACGCAATTTCTTCTTCAGTGATTGGTTTAGAGTGACAAGTGCCGGTTTGTTTGCTTAAATACATTTAAATTATTGAATAAAAAATTAGATTTAATCATTTTCCTATTACAGTTATTAAATAAAATGCCCAAAACAAAAGAGTTAACAGTTGAGGCCCGGGCTGGTATTGTTGCTAGGTTTAAAGCCGGTACACCTGCGGCCAAAATAGCTGAAATATATCAAATTTCGCGTAGAACTGTCTACTACTTAATAAAAAAAGTTTGATACAGTTGGCACATTAAAAAATAAAAAAAAGATCAGGCCGAAAACCTGTGCTGGACCAAAAGGCAATGCAGGCAAATACTTGGAGTTGTGGCGAAGAATCCTAGTGCCAGTCCGGTAAAAAATTGCCTTAGAATCAAAAAAATACAATTGGCAAACAAGTTAGTAGTTCTACAATTCGTCGCAGGCTAAAAGAAGCTGATTTTAAGACATACTTTGTTCGCAAAACGATTGAGATCACACCAACCAACAAAACAAAACGTCTTCGATTTGCGTTGGAATATGTTAAGAAGCCTCTTGACTTTTGGTTTAATATTTTATGGACTGATGAGTCTGCATTTCAGTACCAGGGGTCATACAGCAAGCATTTTATGCATTTGAAAAATAATCAAAAGCATTTGGCAGCCCAACCAACCAATAGATTTGGTGGTGGGGGCACAGTCATGTTTTGGGGATGTCTTTCCTATTATGGATTCGGAGACTTGGTACCGATAGAAGGTACTTTAAATCAGAACGGATACCTTCTTATCTTAAACAACCATGCTTTTACGTCTGGAAATAGACTTTTTCCAACTACTGAATGGATTCTTCAGCAGGACAATGCTCCATGCCATAAGGGTAGGATACCAACAAAATTTTTAAACGACCTTAATCTGGCGGTTCTTCCGTGGCCCCCCCCCAAAGCCCAGACCTTAATATCATTGAAAACGTTTGGGCTTTTATTAAAACCAACGAACTATTGATAAAAATAGAAAACGAGAGGGAGCCATCATTGAAATAGCGGAGATTTGGTCCAAATTGACATTAGAATTTGCACAAACTTTGGTAAGGTCAATACCAAAAGACTTCAAGCAGTTATTGATGCCAAAGGTGGTGTTACAAAATATTAGTATTGTATTTATATAAAATAAAGAAATTCTTATGTTGAAATTAGATGTTAAGCTGAAATTTACTAAATTAAGTTGAGTGAAAATACTTTTGAAGCGCAATAAACATGTGAAAATACTATTGACAACTTGCATGCATATTTTCTTTTGCTTTTAAGCTTTGTACTATGAACCGTTATCTTTCGTATTTCTTTTCGACTACCTTCTGCATAGATCAAGCTAAGCGATAAGAACTATTTCAGGCAAATCGGACAACAACAAGAAGAAATATAACAAAAGAAGTTGAAGTTTGCAAATATTGTGCGTTGTGAAAATACTTTGACCACCTCTGTATATAGTTTGCAGGAGCACGGTATTGAACTTAAATGTACTGATGAGGAAATCAAACGCTACATTGGCATTTTATTGTACTTTGGTGTTTTAAAACTACCGCAATTCAGAATGGCGTGGTCAAAGTATTTAAAGATTACCGCAATAACTGATTCAATGCCGCGTGGGAGATTTAAAAAAATAAAACAATGCTTACATTTCAACGACAACGCCAAACAATTAAAAAAAGGGGATTGCAACTATGATAAACTCTACAAGATCCGCCCTTTGTTCAGAATTCTCAAAGAAAATTTTGGAAAAACTAACGCAGGAAGAGCATCAAAGTGTCGATGAGCAAATAATTGCATTCAAAGGTACGTTTTAATTTTCTTTTAAATTAGCTTTATTTTTTAATAATTGCTTTTGTTGCAGGTCGATCCACGCTTAGGCAATATAATCCAAACCTCATAAATGGGGTCTTAAAATGTTTACGCGGGCTGGAATATCTGGATTAGTTTATGATTTTATTGCTATATGTTGGAGAAGGCACTTCTCCTTCTTATGGCTTGGGAATATCATCTTATGTTGTCTTATATTTGGCAGAAAGTCTTCCCAAAGACAAAATTTTAAACTGTATTTTGATAATTGGTTTACGTCTGTAATCCTTCTGATTTCGTTGAAGGAAATAGGAATCTTTGCAACAGGTACCTGTACGTATGATAAAGTTGAACATTGGGTAGTTTTTTGGAGAAAGAGGACGTTGCAGACTGTGCAAAATTGCAACACCGATGACCAAATGCCTTACATGCAAAGTCCATCTGTGCTGCAATAACAATAAAAACTGTTTTTTGTCATACCACACTTAAATTGTCATTATAAAGAAAAATATTTCATATTCTGTGATTTATAAAAAAAAAACAATGCTTACACATCACTACTGCCCGACGTTGCTCACAAGAAAACTTTTGCTACCGCCCAAACTAATGGGCGTGGCATACCTAAAATTTTGCTAAATTTTTTCTAAAATAAATGTAAAACATTAATGATAAAACAAAATTTCACGGGTAAAAAAGTTGGGCGCGAAAGGGTTAAAAGACTTCTGTAGCATACTTTGGAATCCCAGAATCTCACATGCGAATAATGGAAAGTTTTGATCTAAGCTCAGATCATTCTCTAATAATAGTGACATACAGTACAGTAGCTCATATATTGCAAATACAGATATCAATGCATTTAAAAGTTATCTGGAAACAGCTATCAGCCTGGATATCTCGCTAAAATCAGGAGAGGAGAGCTACTGTGGAGCTACTCACAAACAAGATCCATAAAGCAAGCTATATATGTACGAAGCTACCAGCCAGAAACTCACAATCAAATCAGCTCTATCTCTCAGCTGAAACTCCGACAACAAATACAACACAAGAGAAATTTGCGTAAGAGATGGCAAGAAACTCTCTACCCTGCCGACAAAAGATCGTATAACAAGGCTGCATCTGATCGCAGAAAACTACTGTCAACTTTAAGAAATTAATCTCTCGCTGAATATCTTAGAAATCTAGATCCACATTCTTGTAACCACGAACATAATTTATGGAGTAACCAAATATCTCAAGCGACCTGCAAAAGAAACACAGTAGTCCGAAACTCTAATGGCGAATGGCGTAGATCTGATGATGAACAAGCCAAAGCATTTGCTTAACACCTGCACTCTGTATTTCAGCCAAATGATATTGATAACCCGCAAACAGAAAGGGAAGTAGATAACTTTTTTCGAGTCACCGCCAAATGAGCTTACCCATTCGTAAAATCAGTATTAATGAAGTTTCATCAGAAATGGCTAAAAAGTAAAAAGGCTCCAGATTGGGACAAAATAGATGGCATAGCCTTGAAAAAAAAAATGGGCGGTTAGAGTTGACCACTTCCCAAGCCAATGGAAATGTGCAGAAATTATAGGAATCCTTAAACCAAACAAGGCAGAAAATGAAGTGACATTGTACCGTCCCATTAGTTTGTTGTCAATATTTTCTAAAGTATTTAAAAAAAATAATTTTAAAGAGAATGTTGTCAATCTTGGAAGAATTGCTATCATACCCAAACACCAGTTTGGATTCGAAGAGGCCACGGAACCCCTGAGCAATGTCACAGGATTAAAAAATGAAATTTCGTCAGCATTTGAGAGCAAAAAATACTGCACTGCTAAATTTCTTGACGTTTAACAAGCGTTTGATCGAGTCTGGCATGATGGCTTATCATATAAAACCATATTTTATATTATTAAAGTCATACTTAACCAATAGACAATTTTATTTGCAACAAAAAAATGAATACTCGCCCTTGCACTTTATAAAAGCTGGAGTCCCACAAGGAAGAGTCTTAGTAACTGTCTTATACACCCTGTAACGGCAGATATGCCGGTAACAAATACCGCCTGTAACAAATGATACAGCTATATTAGCTACAAGCTCATCTAAAGAGGAAGCCTCACAACTCCTGCAAGCAGAGCTACGCCTTATTGAAAGCTGGTTTCTTATTTGGAAAATTAAAGTCAACGCCCTGAAATCTGCGCAAATAACTTTTGCATTAAGAAGAGGTAACTGCCCAGAAGTGTCATTTAATGGATCAGCAATCCCACAAAGTATCGATCGCAGACTAACGTGGAAACACATAAACATAAAAGCAAAGCGCCAGCAACTAAATCAAAAAAGTTTGAAGATGACCTGGTTGCTTGGCCGAAAATCTGCAACCACTCGGAAAATAAAGTCCGTTTATACAAAGCTATACTAAAGCCCATGTGGACTTATGACATACAGCTTTGGGGTACTGCCAGCAACTCAAATATTGAGATTCTACAATGCTACCAATCAAAAAATATTAAGACAAATTGTTAATGCTCCATTTTATATTTCAAATGCAAGTATCTATAAAGACTTAGGAATCCCTTATGTTAAAGAAGAAATAGCAAAACATATTAAAAATATATAGACAGACCAAGAACACATGAAAATAACTTAGCCTTAAATTTGGTAAATAA	RC:i:105426
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/out_reads.csv	Wed Nov 11 21:54:51 2020 +0000
@@ -0,0 +1,59 @@
+AssembledSegmentId,EdgeCount,OrientedReadCount,OrientedReadId,VertexCount,EdgeCount
+0,478,29,1-0,138,109
+0,478,29,2-1,137,115
+0,478,29,3-1,85,69
+0,478,29,6-1,146,114
+0,478,29,8-1,161,130
+0,478,29,9-1,167,141
+0,478,29,10-1,223,196
+0,478,29,11-0,231,188
+0,478,29,13-0,292,229
+0,478,29,15-1,274,246
+0,478,29,16-1,262,213
+0,478,29,17-1,305,255
+0,478,29,19-0,139,103
+0,478,29,22-0,232,172
+0,478,29,23-0,360,330
+0,478,29,24-1,282,233
+0,478,29,26-0,346,301
+0,478,29,27-0,147,100
+0,478,29,28-0,245,230
+0,478,29,29-0,220,198
+0,478,29,30-1,179,149
+0,478,29,31-0,166,140
+0,478,29,33-1,140,126
+0,478,29,36-1,105,91
+0,478,29,38-0,90,82
+0,478,29,39-1,68,62
+0,478,29,40-1,85,76
+0,478,29,41-1,87,81
+0,478,29,42-1,77,69
+1,478,29,1-1,138,109
+1,478,29,2-0,137,115
+1,478,29,3-0,85,69
+1,478,29,6-0,146,114
+1,478,29,8-0,161,130
+1,478,29,9-0,167,141
+1,478,29,10-0,223,196
+1,478,29,11-1,231,188
+1,478,29,13-1,292,229
+1,478,29,15-0,274,246
+1,478,29,16-0,262,213
+1,478,29,17-0,305,255
+1,478,29,19-1,139,103
+1,478,29,22-1,232,172
+1,478,29,23-1,360,330
+1,478,29,24-0,282,233
+1,478,29,26-1,346,301
+1,478,29,27-1,147,100
+1,478,29,28-1,245,230
+1,478,29,29-1,220,198
+1,478,29,30-0,179,149
+1,478,29,31-1,166,140
+1,478,29,33-0,140,126
+1,478,29,36-0,105,91
+1,478,29,38-1,90,82
+1,478,29,39-0,68,62
+1,478,29,40-0,85,76
+1,478,29,41-0,87,81
+1,478,29,42-0,77,69