Repository 'concoct_merge_cut_up_clustering'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/concoct_merge_cut_up_clustering

Changeset 0:b546422c9128 (2022-03-13)
Next changeset 1:ce1a3ce0e807 (2022-07-01)
Commit message:
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/concoct commit 40a09cbfd6052f7b0295946621db1bdf58228b09"
added:
coverage_table.py
cut_up_fasta.py
extract_fasta_bins.py
macros.xml
merge_cut_up_clustering.py
merge_cut_up_clustering.xml
static/images/pipeline.png
test-data/input.fasta.gz
test-data/input1.fa.gz
test-data/input1.tabular
test-data/input_coverage_table.fasta.gz
test-data/input_coverage_table.tabular
test-data/input_merge_clusters.tabular
test-data/inputcluster1.tabular
test-data/output_coverage_table.tabular
test-data/output_merge_clusters.tabular
test-data/process_log.txt
b
diff -r 000000000000 -r b546422c9128 coverage_table.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/coverage_table.py Sun Mar 13 08:44:34 2022 +0000
[
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+
+import argparse
+import gzip
+from functools import partial
+
+from Bio import SeqIO
+
+
+def generate_coverage_table(input_fasta, input_tabular, gzipped, output):
+    # Read input file into a dict and return everything
+    # in the table format required by CONCOCT.
+    gc_and_len_dict = get_gc_and_len_dict(input_fasta, gzipped)
+    assert(len(gc_and_len_dict) > 0)
+    bed_coverage_dict = get_bed_coverage_dict(input_tabular)
+
+    with open(output, 'w') as fh:
+        # Output the header.
+        fh.write("contig\tlength")
+        t = tuple(range(len(bed_coverage_dict)))
+        fh.write("\tcov_mean_sample_%d\n" % len(t))
+        # Output the content.
+        for acc in gc_and_len_dict:
+            # Fasta stats.
+            fh.write("%s\t%s" % (acc, gc_and_len_dict[acc]['length']))
+            # Mean
+            try:
+                # Coverage mean
+                fh.write("\t%f" % (bed_coverage_dict[acc]["cov_mean"]))
+            except KeyError:
+                # No reads mapped to this contig
+                fh.write("\t0")
+            fh.write("\n")
+
+
+def get_bed_coverage_dict(input_tabular):
+    # Ddetermine mean coverage and percentage covered
+    # for each contig, returning a dict with fasta id
+    # as key and percentage covered and cov_mean as keys
+    # for the inner dict.
+    out_dict = {}
+
+    with open(input_tabular, 'r') as fh:
+        for line in fh:
+            line = line.rstrip('\r\n')
+            cols = line.split('\t')
+            try:
+                d = out_dict[cols[0]]
+            except KeyError:
+                d = {}
+                out_dict[cols[0]] = d
+            if int(cols[1]) == 0:
+                d["percentage_covered"] = 100 - float(cols[4]) * 100.0
+            else:
+                d["cov_mean"] = d.get("cov_mean", 0) + int(cols[1]) * float(cols[4])
+    return out_dict
+
+
+def get_gc_and_len_dict(input_fasta, gzipped):
+    # Creates a dictionary with the fasta id as key
+    # and GC and length as keys for the inner dictionary.
+    if gzipped:
+        _open = partial(gzip.open, mode='rt')
+    else:
+        _open = open
+
+    out_dict = {}
+    with _open(input_fasta) as input_fh:
+        for rec in SeqIO.parse(input_fh, "fasta"):
+            out_dict[rec.id] = {}
+            out_dict[rec.id]["length"] = len(rec.seq)
+    return out_dict
+
+
+parser = argparse.ArgumentParser(description=__doc__)
+parser.add_argument('--input_tabular', action='store', dest='input_tabular', help='bedtools genomeCoverageBed bed file')
+parser.add_argument('--input_fasta', action='store', dest='input_fasta', help='Contigs fasta file')
+parser.add_argument("--gzipped", action="store_true", dest="gzipped", default=False, help="input_fasta is gzipped")
+parser.add_argument('--output', action='store', dest='output', help='Output file')
+
+args = parser.parse_args()
+
+generate_coverage_table(args.input_fasta, args.input_tabular, args.gzipped, args.output)
b
diff -r 000000000000 -r b546422c9128 cut_up_fasta.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cut_up_fasta.py Sun Mar 13 08:44:34 2022 +0000
[
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+
+import argparse
+import gzip
+from functools import partial
+
+from Bio import SeqIO
+
+
+def cut_up_fasta(input_fasta, chunk_size, overlap, merge_last, output_fasta, output_bed, gzipped):
+    if gzipped:
+        _open = partial(gzip.open, mode='rt')
+    else:
+        _open = open
+
+    fasta_fh = open(output_fasta, 'w')
+
+    if output_bed is not None:
+        bed_fh = open(output_bed, 'w')
+
+    with _open(input_fasta) as input_fh:
+        for record in SeqIO.parse(input_fh, "fasta"):
+            if (not merge_last and len(record.seq) > chunk_size) or (merge_last and len(record.seq) >= 2 * chunk_size):
+                for index, split_seq in enumerate(chunks(record.seq, chunk_size, overlap, merge_last)):
+                    fasta_fh.write(f">{record.id}.concoct_part_{index}\n{split_seq}\n")
+                    if output_bed is not None:
+                        bed_fh.write(f"{record.id}\t{chunk_size * index}\t{chunk_size * index + len(split_seq)}\t{record.id}.concoct_part_{index}\n")
+            else:
+                fasta_fh.write(f">{record.id}.concoct_part_0\n{record.seq}\n")
+                if output_bed is not None:
+                    bed_fh.write(f"{record.id}\t0\t{len(record.seq)}\t{record.id}.concoct_part_0\n")
+    if output_bed is not None:
+        bed_fh.close()
+
+
+def chunks(seq, chunk_size, overlap_size, merge_last):
+    # Yield successive chunk_size-sized chunks from seq
+    # with given overlap overlap_size between the chunks.
+    assert chunk_size > overlap_size
+    if merge_last:
+        for i in range(0, len(seq) - chunk_size + 1, chunk_size - overlap_size):
+            yield seq[i:i + chunk_size] if i + chunk_size + chunk_size - overlap_size <= len(seq) else seq[i:]
+    else:
+        for i in range(0, len(seq), chunk_size - overlap_size):
+            yield seq[i:i + chunk_size]
+
+
+parser = argparse.ArgumentParser()
+parser.add_argument("--input_fasta", action="store", dest="input_fasta", help="Fasta files with contigs")
+parser.add_argument("--gzipped", action="store_true", dest="gzipped", help="Input file is gzipped")
+parser.add_argument("--chunk_size", action="store", dest="chunk_size", type=int, help="Chunk size\n")
+parser.add_argument("--overlap_size", action="store", dest="overlap_size", type=int, help="Overlap size\n")
+parser.add_argument("--merge_last", default=False, action="store_true", dest="merge_last", help="Concatenate final part to last contig\n")
+parser.add_argument("--output_bed", action="store", dest="output_bed", default=None, help="BED file to be created with exact regions of the original contigs corresponding to the newly created contigs")
+parser.add_argument("--output_fasta", action="store", dest="output_fasta", help="Output fasta file with cut contigs")
+
+args = parser.parse_args()
+cut_up_fasta(args.input_fasta, args.chunk_size, args.overlap_size, args.merge_last, args.output_fasta, args.output_bed, args.gzipped)
b
diff -r 000000000000 -r b546422c9128 extract_fasta_bins.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/extract_fasta_bins.py Sun Mar 13 08:44:34 2022 +0000
[
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+
+import argparse
+import gzip
+import os
+import sys
+from collections import defaultdict
+from functools import partial
+
+import pandas as pd
+from Bio import SeqIO
+
+parser = argparse.ArgumentParser(description=__doc__)
+
+parser.add_argument('--gzipped', action='store_true', dest='gzipped', help='Input files are gzipped')
+parser.add_argument("--input_fasta", action="store", dest="input_fasta", help="Input Fasta file")
+parser.add_argument("--input_cluster", action="store", dest="input_cluster", help="Concoct output cluster file")
+parser.add_argument("--output_path", help="Output directory")
+
+args = parser.parse_args()
+
+all_seqs = {}
+if args.gzipped:
+    _open = partial(gzip.open, mode='rt')
+else:
+    _open = open
+
+with _open(args.input_fasta) as fh:
+    for seq in SeqIO.parse(fh, "fasta"):
+        all_seqs[seq.id] = seq
+
+# Make sure we're reading the file as tabular!
+df = pd.read_csv(args.input_cluster, sep='\t')
+try:
+    assert df.columns[0] == 'contig_id'
+    assert df.columns[1] == 'cluster_id'
+except AssertionError:
+    sys.stderr.write("ERROR! Header line was not 'contig_id, cluster_id', please adjust your input file. Exiting!\n")
+    sys.exit(-1)
+
+cluster_to_contigs = defaultdict(list)
+for i, row in df.iterrows():
+    cluster_to_contigs[row['cluster_id']].append(row['contig_id'])
+
+for cluster_id, contig_ids in cluster_to_contigs.items():
+    output_file = os.path.join(args.output_path, "{0}.fa".format(cluster_id))
+    seqs = [all_seqs[contig_id] for contig_id in contig_ids]
+    with open(output_file, 'w') as ofh:
+        SeqIO.write(seqs, ofh, 'fasta')
b
diff -r 000000000000 -r b546422c9128 macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Sun Mar 13 08:44:34 2022 +0000
b
@@ -0,0 +1,26 @@
+<macros>
+    <token name="@TOOL_VERSION@">1.0.0</token>
+    <token name="@VERSION_SUFFIX@">0</token>
+    <token name="@PROFILE@">21.01</token>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="1.79">biopython</requirement>
+            <requirement type="package" version="@TOOL_VERSION@">concoct</requirement>
+            <requirement type="package" version="0.19.2">pandas</requirement>
+        </requirements>
+    </xml>
+    <token name="@HELP_OVERVIEW@">
+
+The intended use of the CONCOCT tools is shown in the following image.
+
+.. image:: pipeline.png
+
+More information may be found on the CONCOCT homepage:: https://github.com/BinPro/CONCOCT
+
+    </token>
+    <xml name="citations">
+        <citations>
+            <citation type="doi">10.1038/nmeth.3103</citation>
+        </citations>
+    </xml>
+</macros>
b
diff -r 000000000000 -r b546422c9128 merge_cut_up_clustering.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/merge_cut_up_clustering.py Sun Mar 13 08:44:34 2022 +0000
[
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+
+import argparse
+import re
+import sys
+from collections import Counter
+from collections import defaultdict
+
+
+CONTIG_PART_EXPR = re.compile(r'(.*)\.concoct_part_([0-9]*)')
+
+
+def original_contig_name_special(contig_id):
+    try:
+        original_id, part_index = CONTIG_PART_EXPR.match(contig_id).group(1, 2)
+        return original_id, part_index
+    except AttributeError:
+        # No matches for concoct_part regex.
+        return contig_id, 0
+
+
+parser = argparse.ArgumentParser()
+parser.add_argument("--input", action="store", dest="input", help="Tabular file with cut up clusters")
+parser.add_argument("--output", action="store", dest="output", help="Output file with merged clusters")
+
+args = parser.parse_args()
+
+# Get cut up clusters
+all_seqs = {}
+all_originals = defaultdict(dict)
+with open(args.input, 'r') as ifh:
+    for i, line in enumerate(ifh):
+        if i == 0:
+            if 'contig_id' not in line:
+                sys.stderr.write("ERROR nvalid clustering file, 'contig_id' is not found in the header.")
+                sys.exit(-1)
+            # Skip header.
+            continue
+        line = line.rstrip('\r\n')
+        contig_id, cluster_id = line.split('\t')
+        original_contig_name, part_id = original_contig_name_special(contig_id)
+        all_originals[original_contig_name][part_id] = cluster_id
+
+# Merge cut up clusters.
+with open(args.output, 'w') as ofh:
+    ofh.write("contig_id\tcluster_id\n")
+    for original_contig_id, part_ids_d in all_originals.items():
+        if len(part_ids_d) > 1:
+            c = Counter(part_ids_d.values())
+            cluster_id = c.most_common(1)[0][0]
+            c_string = [(a, b) for a, b in c.items()]
+            # Here if len(c.values()) > 1,
+            # then no cluster for contig.
+        else:
+            cluster_id = list(part_ids_d.values())[0]
+        ofh.write(f"{original_contig_id}\t{cluster_id}\n")
b
diff -r 000000000000 -r b546422c9128 merge_cut_up_clustering.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/merge_cut_up_clustering.xml Sun Mar 13 08:44:34 2022 +0000
[
@@ -0,0 +1,34 @@
+<tool id="concoct_merge_cut_up_clustering" name="CONCOCT: merge cut clusters" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
+    <description>into the original</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="requirements"/>
+    <command detect_errors="exit_code"><![CDATA[
+python '$__tool_directory__/merge_cut_up_clustering.py'
+--input '$input'
+--output '$output'
+    ]]></command>
+    <inputs>
+        <param name="input" type="data" format="tabular" label="Tabular file containng cut up contigs"/>
+    </inputs>
+    <outputs>
+        <data name="output" format="tabular"/>
+    </outputs>
+    <tests>
+        <!-- default settings -->
+        <test expect_num_outputs="1">
+            <param name="input" value="input_merge_clusters.tabular" ftype="tabular"/>
+            <output name="output" file="output_merge_clusters.tabular" ftype="tabular"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+**What it does**
+
+Accepts a tbular file containing clusters output by the CONCOCT metagenome binning tool
+and produces a tabular file of the original contigs, with consecutive slices merged.
+
+@HELP_OVERVIEW@
+    ]]></help>
+    <expand macro="citations"/>
+</tool>
b
diff -r 000000000000 -r b546422c9128 static/images/pipeline.png
b
Binary file static/images/pipeline.png has changed
b
diff -r 000000000000 -r b546422c9128 test-data/input.fasta.gz
b
Binary file test-data/input.fasta.gz has changed
b
diff -r 000000000000 -r b546422c9128 test-data/input1.fa.gz
b
Binary file test-data/input1.fa.gz has changed
b
diff -r 000000000000 -r b546422c9128 test-data/input1.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input1.tabular Sun Mar 13 08:44:34 2022 +0000
b
b'@@ -0,0 +1,417 @@\n+NODE_100_length_1535_cov_6.691205\t1605\t8.261677\t0.249221\t6.652957\t0.123988\t0\t3.362618\t6.351409\t0\t0\t0.808100\t0.373832\t0.373832\t5.781307\t0\t0\t1.059190\n+NODE_101_length_153_cov_4.235294\t223\t0.896861\t0\t0.408072\t0\t0\t0\t0\t0\t0\t1.345292\t0.448430\t1.345293\t0.448430\t0\t1.345290\t3.587450\n+NODE_103_length_20202_cov_8.395357.0\t10000\t2.007700\t4.942400\t3.128200\t0.080000\t0\t0\t3.826100\t0\t4.206600\t1.528800\t0.420000\t1.268800\t4.233400\t4.407300\t3.177900\t2.606200\n+NODE_103_length_20202_cov_8.395357.1\t10272\t1.800233\t3.637852\t3.542055\t0.262851\t0\t0.097352\t3.745523\t0\t4.590639\t0.884151\t0.252823\t1.595307\t4.252823\t4.476445\t2.927082\t1.857087\n+NODE_104_length_823_cov_8.356014\t893\t10.070548\t0\t6.152291\t0.111982\t0\t4.245240\t6.038073\t0\t0\t0.671892\t0.559910\t0.895856\t5.597985\t0\t0\t2.349386\n+NODE_105_length_260_cov_4.142308\t330\t1.818181\t0.303030\t0.909091\t0\t0\t0\t0.303030\t0\t0\t2.121211\t1.212121\t0\t0.909090\t0\t0\t1.818183\n+NODE_106_length_2172_cov_16.183702\t2242\t3.384477\t9.701164\t5.793935\t0\t0\t0\t7.700716\t0\t8.591435\t2.094113\t0.758250\t2.096341\t6.768960\t10.165474\t5.038357\t3.557540\n+NODE_107_length_7609_cov_8.569195\t7679\t1.874722\t4.344835\t3.357731\t0\t0\t0\t4.048056\t0\t4.411123\t0.949603\t0.325564\t1.263185\t4.151191\t4.947649\t2.760774\t2.054826\n+NODE_108_length_1232_cov_16.167208\t1302\t2.833331\t7.956992\t4.980798\t0\t0\t0\t7.882490\t0\t7.116747\t2.607528\t0.691244\t3.064514\t7.667427\t7.364051\t6.023813\t2.526882\n+NODE_109_length_178_cov_16.084270\t248\t0\t0\t1.209678\t0\t0\t0\t0.403226\t0\t0\t0.806452\t0\t0\t0.403226\t0\t0\t0.403226\n+NODE_10_length_186_cov_4.327957\t256\t1.171875\t0.390625\t1.144532\t0\t0\t0\t0.390625\t0\t0.781250\t4.249997\t0\t1.171875\t0.390625\t0\t0.781250\t0.781250\n+NODE_111_length_80116_cov_8.871636.0\t10000\t2.747000\t5.603200\t3.788400\t0\t0\t0\t4.259100\t0\t5.404000\t2.697400\t0.779300\t1.608100\t4.958100\t4.486800\t3.538300\t3.677700\n+NODE_111_length_80116_cov_8.871636.1\t10000\t2.909500\t4.897200\t3.998600\t0\t0\t0\t4.777000\t0\t4.757700\t2.779000\t0.780000\t1.979700\t4.556000\t4.479100\t3.225600\t3.966300\n+NODE_111_length_80116_cov_8.871636.2\t10000\t2.425900\t4.784400\t3.617900\t0\t0\t0\t3.947500\t0\t4.744200\t2.039100\t0.490000\t1.326600\t5.249600\t4.419400\t3.065800\t2.829200\n+NODE_111_length_80116_cov_8.871636.3\t10000\t2.148700\t4.985700\t2.937300\t0\t0\t0\t3.676800\t0\t4.434200\t0.990000\t0.339900\t1.108600\t4.116000\t4.655600\t2.799300\t1.470000\n+NODE_111_length_80116_cov_8.871636.4\t10000\t1.959300\t4.606200\t3.178800\t0\t0\t0\t4.028800\t0\t4.507900\t0.909700\t0.410000\t1.059800\t4.422800\t4.746700\t2.597200\t1.729200\n+NODE_111_length_80116_cov_8.871636.5\t10000\t2.248400\t4.691800\t3.496100\t0\t0\t0\t4.134500\t0\t4.415500\t1.070000\t0.230000\t1.099600\t4.136500\t4.824700\t2.795400\t1.578100\n+NODE_111_length_80116_cov_8.871636.6\t10000\t1.747300\t4.446100\t3.118100\t0\t0\t0\t3.876600\t0\t4.505200\t1.130000\t0.260000\t1.169800\t4.025700\t4.704400\t2.567700\t1.458300\n+NODE_111_length_80116_cov_8.871636.7\t10186\t1.822990\t4.628609\t2.521696\t0\t0\t0\t4.021993\t0\t4.181820\t1.128413\t0.363243\t1.187120\t4.238861\t4.236105\t3.147359\t1.362556\n+NODE_112_length_846_cov_18.049644\t916\t4.366811\t9.022922\t4.908290\t0\t0\t0\t6.643011\t0\t6.979259\t1.965066\t0.545851\t2.719436\t10.689957\t7.525108\t5.786028\t2.183407\n+NODE_113_length_286_cov_12.695805\t356\t1.963482\t2.241571\t3.084266\t0\t0\t0\t2.528089\t0\t2.525277\t1.120788\t0\t1.120787\t1.117979\t3.362363\t1.957863\t1.398876\n+NODE_114_length_4896_cov_18.356821\t4966\t4.024768\t8.623427\t6.495364\t0\t0\t0\t8.872340\t0\t9.499799\t3.200765\t1.026984\t2.635322\t8.229552\t10.224925\t6.341319\t4.405350\n+NODE_115_length_78252_cov_8.512166.0\t10000\t1.645100\t4.396300\t2.918400\t0\t0\t0.060000\t3.955100\t0\t4.177900\t0.748800\t0.379900\t1.187400\t3.886300\t4.266200\t2.869100\t1.517900\n+NODE_115_length_78252_cov_8.512166.1\t10000\t1.787400\t3.998500\t2.974900\t0\t0\t0\t3.878600\t0\t4.197900\t1.109100\t0.219100\t1.160000\t3.807500\t5.064600\t2.636800\t1.799000\n+NODE_115_length_78252_cov_8.512166.2\t10000\t1.738300\t4.779000\t2.947800\t0\t0\t0\t3.467900\t0\t4.514200\t1.169200\t0.360000\t1.229500\t4.267100\t5.474900\t2.589100\t1.589300\n+NODE_115_length_78252_cov_8.512166.3\t10000\t1.598400\t4.621700\t2.349000\t0\t0\t0\t4.087400\t0\t4.692600\t0.929400\t0.350000\t1.208900\t4.039300\t5.058200\t3.152200\t1.'..b'9\t1.499457\t5.103376\t2.714908\t0\t0\t0\t3.808488\t0\t5.549510\t0.652883\t0.544069\t0.761696\t2.829162\t5.099029\t3.253538\t2.378674\n+NODE_26_length_3431_cov_15.138152\t3501\t3.049701\t6.612392\t6.391893\t0\t0\t0\t7.302201\t0\t7.279065\t2.370750\t0.628393\t1.853471\t6.960295\t8.834908\t4.391602\t3.565265\n+NODE_270_length_151_cov_4.258278\t221\t1.809956\t0\t0\t0.452489\t0\t0\t0\t3.619902\t0\t0\t0.452489\t3.167421\t0\t0.452489\t1.357464\t0.904977\n+NODE_271_length_164_cov_15.048780\t234\t0.427350\t2.136753\t0.854701\t0\t0\t0\t0.427350\t0\t2.136750\t0\t0.427350\t0.427350\t0.854701\t1.709400\t0.854700\t0\n+NODE_272_length_154_cov_14.188312\t224\t0\t0.892857\t2.232143\t0\t0\t0\t0.892857\t0\t0.446429\t0\t0\t0.446429\t0.892857\t2.232140\t0.446429\t0.446429\n+NODE_274_length_173_cov_11.838150\t243\t0.411523\t1.234569\t2.057611\t0\t0\t0\t3.292181\t0\t4.938271\t0.823045\t0\t1.234569\t2.469137\t5.349804\t2.057616\t0\n+NODE_275_length_149_cov_4.000000\t219\t0.913242\t0.456621\t1.369863\t0\t0\t0\t0.456621\t0\t0.456621\t1.369863\t0.456621\t0\t1.826483\t0\t0.456621\t3.159820\n+NODE_277_length_146_cov_4.280822\t216\t0.462963\t0.462963\t0.462963\t0\t0\t0\t0\t0\t0.884258\t2.777777\t0.462963\t0.462963\t1.388889\t0\t0\t3.240744\n+NODE_27_length_35477_cov_8.181526.0\t10000\t1.918300\t4.347400\t2.546500\t0\t0\t0\t4.424700\t0\t4.586700\t0.889800\t0.220000\t1.417900\t3.819400\t5.105800\t3.167800\t1.730000\n+NODE_27_length_35477_cov_8.181526.1\t10000\t1.688200\t4.124600\t3.029500\t0\t0\t0\t3.928900\t0\t4.115200\t1.050000\t0.229500\t1.118800\t3.576900\t4.612100\t2.677600\t1.789400\n+NODE_27_length_35477_cov_8.181526.2\t15547\t1.547439\t4.370681\t2.942946\t0\t0\t0\t3.870905\t0\t4.512256\t1.079823\t0.347334\t1.504536\t3.989711\t4.647326\t2.783237\t1.568791\n+NODE_283_length_165_cov_4.200000\t235\t0.851064\t1.276595\t0.851063\t0\t0\t0\t0\t0\t0.425532\t2.127663\t0.425532\t0.425532\t0.425532\t0\t0.425532\t2.127663\n+NODE_284_length_148_cov_4.236486\t218\t0.917431\t0.454128\t0\t0.458716\t0\t0\t0\t2.752293\t0.458716\t0.422018\t0\t2.293577\t0\t0.917431\t3.211007\t0.917431\n+NODE_285_length_433_cov_5.106236\t503\t1.590457\t2.582506\t3.165008\t0\t0\t0\t4.165009\t0\t2.783302\t0.994036\t0.198807\t1.192843\t2.972167\t3.976146\t1.391651\t0.984095\n+NODE_288_length_174_cov_4.316092\t244\t2.049180\t1.639345\t1.229508\t0\t0\t0\t2.036885\t0\t2.036885\t0.409836\t0.409836\t0.409836\t2.032786\t1.229508\t0.409836\t3.278688\n+NODE_28_length_34835_cov_8.108799.0\t10000\t1.908700\t4.387700\t2.947500\t0\t0\t0\t3.797100\t0\t4.693900\t0.987500\t0.349000\t1.328800\t4.478800\t5.105200\t2.888500\t1.397900\n+NODE_28_length_34835_cov_8.108799.1\t10000\t1.847500\t4.356800\t2.648600\t0\t0\t0\t3.735900\t0\t3.876700\t1.019300\t0.259600\t1.159900\t3.745800\t4.606000\t2.606500\t1.108800\n+NODE_28_length_34835_cov_8.108799.2\t14905\t1.775715\t4.499630\t2.730357\t0\t0\t0\t3.825425\t0\t4.424353\t0.944917\t0.315331\t1.307078\t3.888697\t4.907619\t2.850249\t1.540825\n+NODE_290_length_1962_cov_6.746177\t2032\t1.525591\t5.413389\t2.944881\t0\t0\t0\t4.079231\t0\t3.885336\t0.929626\t0.049213\t1.427166\t4.221458\t4.773624\t1.968506\t1.377954\n+NODE_293_length_832_cov_6.325721\t902\t3.436805\t4.988915\t4.101994\t0\t0\t0\t4.758316\t0\t7.283812\t1.108646\t0.442350\t3.092018\t5.518847\t4.317073\t4.529935\t1.771619\n+NODE_294_length_210_cov_4.066667\t280\t2.142857\t1.414286\t0.357143\t0\t0\t0\t0.357143\t0\t0.357143\t2.499999\t0.357143\t0\t1.071428\t0\t1.071428\t1.785713\n+NODE_295_length_196_cov_4.397959\t266\t1.879699\t0.375940\t1.127819\t0\t0\t0\t0.751880\t0\t0.375940\t3.349628\t0\t0\t0\t0\t0.375940\t0.751880\n+NODE_29_length_44540_cov_9.429951.0\t10000\t2.027900\t5.076300\t3.653900\t0\t0\t0\t4.475300\t0\t4.737900\t2.168800\t0.700000\t1.458700\t4.274900\t4.467800\t3.147200\t3.525100\n+NODE_29_length_44540_cov_9.429951.1\t10000\t2.258300\t4.988600\t3.198400\t0\t0\t0\t3.565800\t0\t4.268500\t2.740000\t0.570000\t1.366900\t4.895400\t4.835200\t3.426900\t4.108300\n+NODE_29_length_44540_cov_9.429951.2\t10000\t2.716900\t5.218600\t3.607200\t0\t0\t0\t3.996700\t0\t4.797500\t3.179400\t0.770000\t1.508700\t4.924600\t4.254900\t3.564600\t4.146500\n+NODE_29_length_44540_cov_9.429951.3\t14610\t2.230117\t5.066739\t3.647501\t0\t0\t0\t4.351748\t0\t4.827725\t1.531828\t0.342231\t1.298221\t4.664888\t5.032990\t3.008352\t2.216154\n+NODE_2_length_16156_cov_8.219856\t16226\t1.545114\t4.323432\t2.912856\t0\t0\t0\t3.922715\t0\t4.290770\t0.992173\t0.388265\t1.182792\t4.050168\t5.099648\t2.813631\t1.411069\n'
b
diff -r 000000000000 -r b546422c9128 test-data/input_coverage_table.fasta.gz
b
Binary file test-data/input_coverage_table.fasta.gz has changed
b
diff -r 000000000000 -r b546422c9128 test-data/input_coverage_table.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input_coverage_table.tabular Sun Mar 13 08:44:34 2022 +0000
b
b'@@ -0,0 +1,422 @@\n+NODE_100_length_1535_cov_6.691205\t0\t1605\t1605\t1\n+NODE_101_length_153_cov_4.235294\t0\t223\t223\t1\n+NODE_103_length_20202_cov_8.395357.0\t0\t10000\t10000\t1\n+NODE_103_length_20202_cov_8.395357.1\t0\t10272\t10272\t1\n+NODE_104_length_823_cov_8.356014\t0\t893\t893\t1\n+NODE_105_length_260_cov_4.142308\t0\t330\t330\t1\n+NODE_106_length_2172_cov_16.183702\t0\t2242\t2242\t1\n+NODE_107_length_7609_cov_8.569195\t0\t7679\t7679\t1\n+NODE_108_length_1232_cov_16.167208\t0\t1302\t1302\t1\n+NODE_109_length_178_cov_16.084270\t0\t248\t248\t1\n+NODE_10_length_186_cov_4.327957\t0\t256\t256\t1\n+NODE_111_length_80116_cov_8.871636.0\t0\t10000\t10000\t1\n+NODE_111_length_80116_cov_8.871636.1\t0\t10000\t10000\t1\n+NODE_111_length_80116_cov_8.871636.2\t0\t10000\t10000\t1\n+NODE_111_length_80116_cov_8.871636.3\t0\t10000\t10000\t1\n+NODE_111_length_80116_cov_8.871636.4\t0\t10000\t10000\t1\n+NODE_111_length_80116_cov_8.871636.5\t0\t10000\t10000\t1\n+NODE_111_length_80116_cov_8.871636.6\t0\t10000\t10000\t1\n+NODE_111_length_80116_cov_8.871636.7\t0\t10186\t10186\t1\n+NODE_112_length_846_cov_18.049644\t0\t916\t916\t1\n+NODE_113_length_286_cov_12.695805\t0\t356\t356\t1\n+NODE_114_length_4896_cov_18.356821\t0\t4966\t4966\t1\n+NODE_115_length_78252_cov_8.512166.0\t0\t10000\t10000\t1\n+NODE_115_length_78252_cov_8.512166.1\t0\t10000\t10000\t1\n+NODE_115_length_78252_cov_8.512166.2\t0\t10000\t10000\t1\n+NODE_115_length_78252_cov_8.512166.3\t0\t10000\t10000\t1\n+NODE_115_length_78252_cov_8.512166.4\t0\t10000\t10000\t1\n+NODE_115_length_78252_cov_8.512166.5\t0\t10000\t10000\t1\n+NODE_115_length_78252_cov_8.512166.6\t0\t18322\t18322\t1\n+NODE_116_length_203_cov_4.093596\t0\t273\t273\t1\n+NODE_117_length_248_cov_25.778225\t0\t318\t318\t1\n+NODE_118_length_15438_cov_8.266615\t0\t15508\t15508\t1\n+NODE_119_length_83_cov_11.493976\t0\t153\t153\t1\n+NODE_11_length_153_cov_12.470589\t0\t223\t223\t1\n+NODE_121_length_60582_cov_8.522333.0\t0\t10000\t10000\t1\n+NODE_121_length_60582_cov_8.522333.1\t0\t10000\t10000\t1\n+NODE_121_length_60582_cov_8.522333.2\t0\t10000\t10000\t1\n+NODE_121_length_60582_cov_8.522333.3\t0\t10000\t10000\t1\n+NODE_121_length_60582_cov_8.522333.4\t0\t10000\t10000\t1\n+NODE_121_length_60582_cov_8.522333.5\t0\t10652\t10652\t1\n+NODE_123_length_75191_cov_8.369140.0\t0\t10000\t10000\t1\n+NODE_123_length_75191_cov_8.369140.1\t0\t10000\t10000\t1\n+NODE_123_length_75191_cov_8.369140.2\t0\t10000\t10000\t1\n+NODE_123_length_75191_cov_8.369140.3\t0\t10000\t10000\t1\n+NODE_123_length_75191_cov_8.369140.4\t0\t10000\t10000\t1\n+NODE_123_length_75191_cov_8.369140.5\t0\t10000\t10000\t1\n+NODE_123_length_75191_cov_8.369140.6\t0\t15261\t15261\t1\n+NODE_124_length_407_cov_4.159705\t0\t477\t477\t1\n+NODE_128_length_532_cov_17.454887\t0\t602\t602\t1\n+NODE_129_length_160323_cov_8.254436.0\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.1\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.10\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.11\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.12\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.13\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.14\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.15\t0\t10393\t10393\t1\n+NODE_129_length_160323_cov_8.254436.2\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.3\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.4\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.5\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.6\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.7\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.8\t0\t10000\t10000\t1\n+NODE_129_length_160323_cov_8.254436.9\t0\t10000\t10000\t1\n+NODE_12_length_555_cov_14.255856\t0\t625\t625\t1\n+NODE_130_length_3461_cov_7.763941\t0\t3531\t3531\t1\n+NODE_131_length_92242_cov_8.320277.0\t0\t10000\t10000\t1\n+NODE_131_length_92242_cov_8.320277.1\t0\t10000\t10000\t1\n+NODE_131_length_92242_cov_8.320277.2\t0\t10000\t10000\t1\n+NODE_131_length_92242_cov_8.320277.3\t0\t10000\t10000\t1\n+NODE_131_length_92242_cov_8.320277.4\t0\t10000\t10000\t1\n+NODE_131_length_92242_cov_8.320277.5\t0\t10000\t10000\t1\n+NODE_131_length_92242_cov_8.320277.6\t0\t10000\t10000\t1\n+NODE_131_length_92242_cov_8.320277.7\t0\t10000\t10000\t1\n+NODE_131_length_92242_cov_8.320277.8\t0\t12312\t'..b'0000\t1\n+NODE_260_length_165083_cov_8.801846.3\t0\t10000\t10000\t1\n+NODE_260_length_165083_cov_8.801846.4\t0\t10000\t10000\t1\n+NODE_260_length_165083_cov_8.801846.5\t0\t10000\t10000\t1\n+NODE_260_length_165083_cov_8.801846.6\t0\t10000\t10000\t1\n+NODE_260_length_165083_cov_8.801846.7\t0\t10000\t10000\t1\n+NODE_260_length_165083_cov_8.801846.8\t0\t10000\t10000\t1\n+NODE_260_length_165083_cov_8.801846.9\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.0\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.1\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.10\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.11\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.12\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.13\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.14\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.15\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.16\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.17\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.18\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.19\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.2\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.20\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.21\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.22\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.23\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.24\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.25\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.26\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.27\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.28\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.29\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.3\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.30\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.31\t0\t11531\t11531\t1\n+NODE_261_length_321461_cov_8.199894.4\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.5\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.6\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.7\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.8\t0\t10000\t10000\t1\n+NODE_261_length_321461_cov_8.199894.9\t0\t10000\t10000\t1\n+NODE_262_length_112_cov_9.366072\t0\t182\t182\t1\n+NODE_264_length_143_cov_21.937063\t0\t213\t213\t1\n+NODE_265_length_543_cov_4.924494\t0\t613\t613\t1\n+NODE_266_length_205_cov_15.878049\t0\t275\t275\t1\n+NODE_267_length_4676_cov_7.631737\t0\t4746\t4746\t1\n+NODE_269_length_849_cov_6.312132\t0\t919\t919\t1\n+NODE_26_length_3431_cov_15.138152\t0\t3501\t3501\t1\n+NODE_270_length_151_cov_4.258278\t0\t221\t221\t1\n+NODE_271_length_164_cov_15.048780\t0\t234\t234\t1\n+NODE_272_length_154_cov_14.188312\t0\t224\t224\t1\n+NODE_274_length_173_cov_11.838150\t0\t243\t243\t1\n+NODE_275_length_149_cov_4.000000\t0\t219\t219\t1\n+NODE_277_length_146_cov_4.280822\t0\t216\t216\t1\n+NODE_27_length_35477_cov_8.181526.0\t0\t10000\t10000\t1\n+NODE_27_length_35477_cov_8.181526.1\t0\t10000\t10000\t1\n+NODE_27_length_35477_cov_8.181526.2\t0\t15547\t15547\t1\n+NODE_283_length_165_cov_4.200000\t0\t235\t235\t1\n+NODE_284_length_148_cov_4.236486\t0\t218\t218\t1\n+NODE_285_length_433_cov_5.106236\t0\t503\t503\t1\n+NODE_288_length_174_cov_4.316092\t0\t244\t244\t1\n+NODE_28_length_34835_cov_8.108799.0\t0\t10000\t10000\t1\n+NODE_28_length_34835_cov_8.108799.1\t0\t10000\t10000\t1\n+NODE_28_length_34835_cov_8.108799.2\t0\t14905\t14905\t1\n+NODE_290_length_1962_cov_6.746177\t0\t2032\t2032\t1\n+NODE_293_length_832_cov_6.325721\t0\t902\t902\t1\n+NODE_294_length_210_cov_4.066667\t0\t280\t280\t1\n+NODE_295_length_196_cov_4.397959\t0\t266\t266\t1\n+NODE_29_length_44540_cov_9.429951.0\t0\t10000\t10000\t1\n+NODE_29_length_44540_cov_9.429951.1\t0\t10000\t10000\t1\n+NODE_29_length_44540_cov_9.429951.2\t0\t10000\t10000\t1\n+NODE_29_length_44540_cov_9.429951.3\t0\t14610\t14610\t1\n+NODE_2_length_16156_cov_8.219856\t0\t16226\t16226\t1\n+ODE_101_length_153_cov_4.235294\t0\t242193529\t242193529\t1\n+ODE_107_length_7609_cov_8.569195\t0\t159345973\t159345973\t1\n+ODE_10_length_186_cov_4.327957\t0\t138394717\t138394717\t1\n+ODE_116_length_203_cov_4.093596\t0\t80373285\t80373285\t1\n+genome\t0\t623573523\t623652648\t0.999873\n'
b
diff -r 000000000000 -r b546422c9128 test-data/input_merge_clusters.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/input_merge_clusters.tabular Sun Mar 13 08:44:34 2022 +0000
b
b'@@ -0,0 +1,330 @@\n+contig_id\tcluster_id\n+NODE_100_length_1535_cov_6.691205.concoct_part_0\t14\n+NODE_103_length_20202_cov_8.395357.0.concoct_part_0\t28\n+NODE_103_length_20202_cov_8.395357.1.concoct_part_0\t26\n+NODE_106_length_2172_cov_16.183702.concoct_part_0\t2\n+NODE_107_length_7609_cov_8.569195.concoct_part_0\t0\n+NODE_108_length_1232_cov_16.167208.concoct_part_0\t2\n+NODE_111_length_80116_cov_8.871636.0.concoct_part_0\t28\n+NODE_111_length_80116_cov_8.871636.1.concoct_part_0\t28\n+NODE_111_length_80116_cov_8.871636.2.concoct_part_0\t28\n+NODE_111_length_80116_cov_8.871636.3.concoct_part_0\t28\n+NODE_111_length_80116_cov_8.871636.4.concoct_part_0\t28\n+NODE_111_length_80116_cov_8.871636.5.concoct_part_0\t28\n+NODE_111_length_80116_cov_8.871636.6.concoct_part_0\t28\n+NODE_111_length_80116_cov_8.871636.7.concoct_part_0\t28\n+NODE_114_length_4896_cov_18.356821.concoct_part_0\t10\n+NODE_115_length_78252_cov_8.512166.0.concoct_part_0\t28\n+NODE_115_length_78252_cov_8.512166.1.concoct_part_0\t28\n+NODE_115_length_78252_cov_8.512166.2.concoct_part_0\t28\n+NODE_115_length_78252_cov_8.512166.3.concoct_part_0\t28\n+NODE_115_length_78252_cov_8.512166.4.concoct_part_0\t28\n+NODE_115_length_78252_cov_8.512166.5.concoct_part_0\t28\n+NODE_115_length_78252_cov_8.512166.6.concoct_part_0\t28\n+NODE_115_length_78252_cov_8.512166.6.concoct_part_1\t28\n+NODE_118_length_15438_cov_8.266615.concoct_part_0\t28\n+NODE_118_length_15438_cov_8.266615.concoct_part_1\t28\n+NODE_121_length_60582_cov_8.522333.0.concoct_part_0\t28\n+NODE_121_length_60582_cov_8.522333.1.concoct_part_0\t28\n+NODE_121_length_60582_cov_8.522333.2.concoct_part_0\t28\n+NODE_121_length_60582_cov_8.522333.3.concoct_part_0\t28\n+NODE_121_length_60582_cov_8.522333.4.concoct_part_0\t28\n+NODE_121_length_60582_cov_8.522333.5.concoct_part_0\t28\n+NODE_123_length_75191_cov_8.369140.0.concoct_part_0\t28\n+NODE_123_length_75191_cov_8.369140.1.concoct_part_0\t28\n+NODE_123_length_75191_cov_8.369140.2.concoct_part_0\t28\n+NODE_123_length_75191_cov_8.369140.3.concoct_part_0\t28\n+NODE_123_length_75191_cov_8.369140.4.concoct_part_0\t28\n+NODE_123_length_75191_cov_8.369140.5.concoct_part_0\t28\n+NODE_123_length_75191_cov_8.369140.6.concoct_part_0\t28\n+NODE_123_length_75191_cov_8.369140.6.concoct_part_1\t5\n+NODE_129_length_160323_cov_8.254436.0.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.1.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.10.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.11.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.12.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.13.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.14.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.15.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.2.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.3.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.4.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.5.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.6.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.7.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.8.concoct_part_0\t28\n+NODE_129_length_160323_cov_8.254436.9.concoct_part_0\t28\n+NODE_130_length_3461_cov_7.763941.concoct_part_0\t9\n+NODE_131_length_92242_cov_8.320277.0.concoct_part_0\t28\n+NODE_131_length_92242_cov_8.320277.1.concoct_part_0\t28\n+NODE_131_length_92242_cov_8.320277.2.concoct_part_0\t28\n+NODE_131_length_92242_cov_8.320277.3.concoct_part_0\t28\n+NODE_131_length_92242_cov_8.320277.4.concoct_part_0\t28\n+NODE_131_length_92242_cov_8.320277.5.concoct_part_0\t28\n+NODE_131_length_92242_cov_8.320277.6.concoct_part_0\t28\n+NODE_131_length_92242_cov_8.320277.7.concoct_part_0\t28\n+NODE_131_length_92242_cov_8.320277.8.concoct_part_0\t28\n+NODE_131_length_92242_cov_8.320277.8.concoct_part_1\t13\n+NODE_13_length_6591_cov_8.574723.concoct_part_0\t9\n+NODE_151_length_29715_cov_8.256470.0.concoct_part_0\t28\n+NODE_151_length_29715_cov_8.256470.1.concoct_part_0\t28\n+NODE_151_length_29715_cov_8.256470.1.concoct_part_1\t28\n+NODE_157_length_58632_cov_8.156433.0.concoct_'..b'ov_8.177872.7.concoct_part_0\t28\n+NODE_258_length_263280_cov_8.177872.8.concoct_part_0\t28\n+NODE_258_length_263280_cov_8.177872.9.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.0.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.1.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.10.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.11.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.12.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.13.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.14.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.15.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.15.concoct_part_1\t28\n+NODE_260_length_165083_cov_8.801846.2.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.3.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.4.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.5.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.6.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.7.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.8.concoct_part_0\t28\n+NODE_260_length_165083_cov_8.801846.9.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.0.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.1.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.10.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.11.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.12.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.13.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.14.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.15.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.16.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.17.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.18.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.19.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.2.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.20.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.21.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.22.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.23.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.24.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.25.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.26.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.27.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.28.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.29.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.3.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.30.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.31.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.31.concoct_part_1\t21\n+NODE_261_length_321461_cov_8.199894.4.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.5.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.6.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.7.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.8.concoct_part_0\t28\n+NODE_261_length_321461_cov_8.199894.9.concoct_part_0\t28\n+NODE_267_length_4676_cov_7.631737.concoct_part_0\t3\n+NODE_26_length_3431_cov_15.138152.concoct_part_0\t4\n+NODE_27_length_35477_cov_8.181526.0.concoct_part_0\t28\n+NODE_27_length_35477_cov_8.181526.1.concoct_part_0\t28\n+NODE_27_length_35477_cov_8.181526.2.concoct_part_0\t28\n+NODE_27_length_35477_cov_8.181526.2.concoct_part_1\t28\n+NODE_28_length_34835_cov_8.108799.0.concoct_part_0\t28\n+NODE_28_length_34835_cov_8.108799.1.concoct_part_0\t28\n+NODE_28_length_34835_cov_8.108799.2.concoct_part_0\t28\n+NODE_28_length_34835_cov_8.108799.2.concoct_part_1\t6\n+NODE_290_length_1962_cov_6.746177.concoct_part_0\t1\n+NODE_29_length_44540_cov_9.429951.0.concoct_part_0\t28\n+NODE_29_length_44540_cov_9.429951.1.concoct_part_0\t28\n+NODE_29_length_44540_cov_9.429951.2.concoct_part_0\t28\n+NODE_29_length_44540_cov_9.429951.3.concoct_part_0\t28\n+NODE_29_length_44540_cov_9.429951.3.concoct_part_1\t3\n+NODE_2_length_16156_cov_8.219856.concoct_part_0\t28\n+NODE_2_length_16156_cov_8.219856.concoct_part_1\t28\n'
b
diff -r 000000000000 -r b546422c9128 test-data/inputcluster1.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/inputcluster1.tabular Sun Mar 13 08:44:34 2022 +0000
b
@@ -0,0 +1,3 @@
+contig_id cluster_id
+NODE_1_length_2054_cov_17.474684 77
+NODE_2_length_16156_cov_8.219856 93
b
diff -r 000000000000 -r b546422c9128 test-data/output_coverage_table.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/output_coverage_table.tabular Sun Mar 13 08:44:34 2022 +0000
b
b'@@ -0,0 +1,447 @@\n+contig\tlength\tcov_mean_sample_422\n+NODE_100_length_1535_cov_6.691205\t1605\t0\n+NODE_101_length_153_cov_4.235294\t223\t0\n+NODE_103_length_20202_cov_8.395357.0\t10000\t0\n+NODE_103_length_20202_cov_8.395357.1.0\t10000\t0\n+NODE_103_length_20202_cov_8.395357.1.1\t272\t0\n+NODE_104_length_823_cov_8.356014\t893\t0\n+NODE_105_length_260_cov_4.142308\t330\t0\n+NODE_106_length_2172_cov_16.183702\t2242\t0\n+NODE_107_length_7609_cov_8.569195\t7679\t0\n+NODE_108_length_1232_cov_16.167208\t1302\t0\n+NODE_109_length_178_cov_16.084270\t248\t0\n+NODE_10_length_186_cov_4.327957\t256\t0\n+NODE_111_length_80116_cov_8.871636.0\t10000\t0\n+NODE_111_length_80116_cov_8.871636.1\t10000\t0\n+NODE_111_length_80116_cov_8.871636.2\t10000\t0\n+NODE_111_length_80116_cov_8.871636.3\t10000\t0\n+NODE_111_length_80116_cov_8.871636.4\t10000\t0\n+NODE_111_length_80116_cov_8.871636.5\t10000\t0\n+NODE_111_length_80116_cov_8.871636.6\t10000\t0\n+NODE_111_length_80116_cov_8.871636.7.0\t10000\t0\n+NODE_111_length_80116_cov_8.871636.7.1\t186\t0\n+NODE_112_length_846_cov_18.049644\t916\t0\n+NODE_113_length_286_cov_12.695805\t356\t0\n+NODE_114_length_4896_cov_18.356821\t4966\t0\n+NODE_115_length_78252_cov_8.512166.0\t10000\t0\n+NODE_115_length_78252_cov_8.512166.1\t10000\t0\n+NODE_115_length_78252_cov_8.512166.2\t10000\t0\n+NODE_115_length_78252_cov_8.512166.3\t10000\t0\n+NODE_115_length_78252_cov_8.512166.4\t10000\t0\n+NODE_115_length_78252_cov_8.512166.5\t10000\t0\n+NODE_115_length_78252_cov_8.512166.6.0\t10000\t0\n+NODE_115_length_78252_cov_8.512166.6.1\t8322\t0\n+NODE_116_length_203_cov_4.093596\t273\t0\n+NODE_117_length_248_cov_25.778225\t318\t0\n+NODE_118_length_15438_cov_8.266615.0\t10000\t0\n+NODE_118_length_15438_cov_8.266615.1\t5508\t0\n+NODE_119_length_83_cov_11.493976\t153\t0\n+NODE_11_length_153_cov_12.470589\t223\t0\n+NODE_121_length_60582_cov_8.522333.0\t10000\t0\n+NODE_121_length_60582_cov_8.522333.1\t10000\t0\n+NODE_121_length_60582_cov_8.522333.2\t10000\t0\n+NODE_121_length_60582_cov_8.522333.3\t10000\t0\n+NODE_121_length_60582_cov_8.522333.4\t10000\t0\n+NODE_121_length_60582_cov_8.522333.5.0\t10000\t0\n+NODE_121_length_60582_cov_8.522333.5.1\t652\t0\n+NODE_123_length_75191_cov_8.369140.0\t10000\t0\n+NODE_123_length_75191_cov_8.369140.1\t10000\t0\n+NODE_123_length_75191_cov_8.369140.2\t10000\t0\n+NODE_123_length_75191_cov_8.369140.3\t10000\t0\n+NODE_123_length_75191_cov_8.369140.4\t10000\t0\n+NODE_123_length_75191_cov_8.369140.5\t10000\t0\n+NODE_123_length_75191_cov_8.369140.6.0\t10000\t0\n+NODE_123_length_75191_cov_8.369140.6.1\t5261\t0\n+NODE_124_length_407_cov_4.159705\t477\t0\n+NODE_128_length_532_cov_17.454887\t602\t0\n+NODE_129_length_160323_cov_8.254436.0\t10000\t0\n+NODE_129_length_160323_cov_8.254436.1\t10000\t0\n+NODE_129_length_160323_cov_8.254436.10\t10000\t0\n+NODE_129_length_160323_cov_8.254436.11\t10000\t0\n+NODE_129_length_160323_cov_8.254436.12\t10000\t0\n+NODE_129_length_160323_cov_8.254436.13\t10000\t0\n+NODE_129_length_160323_cov_8.254436.14\t10000\t0\n+NODE_129_length_160323_cov_8.254436.15.0\t10000\t0\n+NODE_129_length_160323_cov_8.254436.15.1\t393\t0\n+NODE_129_length_160323_cov_8.254436.2\t10000\t0\n+NODE_129_length_160323_cov_8.254436.3\t10000\t0\n+NODE_129_length_160323_cov_8.254436.4\t10000\t0\n+NODE_129_length_160323_cov_8.254436.5\t10000\t0\n+NODE_129_length_160323_cov_8.254436.6\t10000\t0\n+NODE_129_length_160323_cov_8.254436.7\t10000\t0\n+NODE_129_length_160323_cov_8.254436.8\t10000\t0\n+NODE_129_length_160323_cov_8.254436.9\t10000\t0\n+NODE_12_length_555_cov_14.255856\t625\t0\n+NODE_130_length_3461_cov_7.763941\t3531\t0\n+NODE_131_length_92242_cov_8.320277.0\t10000\t0\n+NODE_131_length_92242_cov_8.320277.1\t10000\t0\n+NODE_131_length_92242_cov_8.320277.2\t10000\t0\n+NODE_131_length_92242_cov_8.320277.3\t10000\t0\n+NODE_131_length_92242_cov_8.320277.4\t10000\t0\n+NODE_131_length_92242_cov_8.320277.5\t10000\t0\n+NODE_131_length_92242_cov_8.320277.6\t10000\t0\n+NODE_131_length_92242_cov_8.320277.7\t10000\t0\n+NODE_131_length_92242_cov_8.320277.8.0\t10000\t0\n+NODE_131_length_92242_cov_8.320277.8.1\t2312\t0\n+NODE_132_length_71_cov_36.070423\t141\t0\n+NODE_133_length_543_cov_15.108656\t613\t0\n+NODE_134_length_519_cov_18.038536\t589\t0\n+NODE_136_length_245_'..b'\n+NODE_259_length_266_cov_4.357143\t336\t0\n+NODE_25_length_286_cov_24.356644\t356\t0\n+NODE_260_length_165083_cov_8.801846.0\t10000\t0\n+NODE_260_length_165083_cov_8.801846.1\t10000\t0\n+NODE_260_length_165083_cov_8.801846.10\t10000\t0\n+NODE_260_length_165083_cov_8.801846.11\t10000\t0\n+NODE_260_length_165083_cov_8.801846.12\t10000\t0\n+NODE_260_length_165083_cov_8.801846.13\t10000\t0\n+NODE_260_length_165083_cov_8.801846.14\t10000\t0\n+NODE_260_length_165083_cov_8.801846.15.0\t10000\t0\n+NODE_260_length_165083_cov_8.801846.15.1\t5153\t0\n+NODE_260_length_165083_cov_8.801846.2\t10000\t0\n+NODE_260_length_165083_cov_8.801846.3\t10000\t0\n+NODE_260_length_165083_cov_8.801846.4\t10000\t0\n+NODE_260_length_165083_cov_8.801846.5\t10000\t0\n+NODE_260_length_165083_cov_8.801846.6\t10000\t0\n+NODE_260_length_165083_cov_8.801846.7\t10000\t0\n+NODE_260_length_165083_cov_8.801846.8\t10000\t0\n+NODE_260_length_165083_cov_8.801846.9\t10000\t0\n+NODE_261_length_321461_cov_8.199894.0\t10000\t0\n+NODE_261_length_321461_cov_8.199894.1\t10000\t0\n+NODE_261_length_321461_cov_8.199894.10\t10000\t0\n+NODE_261_length_321461_cov_8.199894.11\t10000\t0\n+NODE_261_length_321461_cov_8.199894.12\t10000\t0\n+NODE_261_length_321461_cov_8.199894.13\t10000\t0\n+NODE_261_length_321461_cov_8.199894.14\t10000\t0\n+NODE_261_length_321461_cov_8.199894.15\t10000\t0\n+NODE_261_length_321461_cov_8.199894.16\t10000\t0\n+NODE_261_length_321461_cov_8.199894.17\t10000\t0\n+NODE_261_length_321461_cov_8.199894.18\t10000\t0\n+NODE_261_length_321461_cov_8.199894.19\t10000\t0\n+NODE_261_length_321461_cov_8.199894.2\t10000\t0\n+NODE_261_length_321461_cov_8.199894.20\t10000\t0\n+NODE_261_length_321461_cov_8.199894.21\t10000\t0\n+NODE_261_length_321461_cov_8.199894.22\t10000\t0\n+NODE_261_length_321461_cov_8.199894.23\t10000\t0\n+NODE_261_length_321461_cov_8.199894.24\t10000\t0\n+NODE_261_length_321461_cov_8.199894.25\t10000\t0\n+NODE_261_length_321461_cov_8.199894.26\t10000\t0\n+NODE_261_length_321461_cov_8.199894.27\t10000\t0\n+NODE_261_length_321461_cov_8.199894.28\t10000\t0\n+NODE_261_length_321461_cov_8.199894.29\t10000\t0\n+NODE_261_length_321461_cov_8.199894.3\t10000\t0\n+NODE_261_length_321461_cov_8.199894.30\t10000\t0\n+NODE_261_length_321461_cov_8.199894.31.0\t10000\t0\n+NODE_261_length_321461_cov_8.199894.31.1\t1531\t0\n+NODE_261_length_321461_cov_8.199894.4\t10000\t0\n+NODE_261_length_321461_cov_8.199894.5\t10000\t0\n+NODE_261_length_321461_cov_8.199894.6\t10000\t0\n+NODE_261_length_321461_cov_8.199894.7\t10000\t0\n+NODE_261_length_321461_cov_8.199894.8\t10000\t0\n+NODE_261_length_321461_cov_8.199894.9\t10000\t0\n+NODE_262_length_112_cov_9.366072\t182\t0\n+NODE_264_length_143_cov_21.937063\t213\t0\n+NODE_265_length_543_cov_4.924494\t613\t0\n+NODE_266_length_205_cov_15.878049\t275\t0\n+NODE_267_length_4676_cov_7.631737\t4746\t0\n+NODE_269_length_849_cov_6.312132\t919\t0\n+NODE_26_length_3431_cov_15.138152\t3501\t0\n+NODE_270_length_151_cov_4.258278\t221\t0\n+NODE_271_length_164_cov_15.048780\t234\t0\n+NODE_272_length_154_cov_14.188312\t224\t0\n+NODE_274_length_173_cov_11.838150\t243\t0\n+NODE_275_length_149_cov_4.000000\t219\t0\n+NODE_277_length_146_cov_4.280822\t216\t0\n+NODE_27_length_35477_cov_8.181526.0\t10000\t0\n+NODE_27_length_35477_cov_8.181526.1\t10000\t0\n+NODE_27_length_35477_cov_8.181526.2.0\t10000\t0\n+NODE_27_length_35477_cov_8.181526.2.1\t5547\t0\n+NODE_283_length_165_cov_4.200000\t235\t0\n+NODE_284_length_148_cov_4.236486\t218\t0\n+NODE_285_length_433_cov_5.106236\t503\t0\n+NODE_288_length_174_cov_4.316092\t244\t0\n+NODE_28_length_34835_cov_8.108799.0\t10000\t0\n+NODE_28_length_34835_cov_8.108799.1\t10000\t0\n+NODE_28_length_34835_cov_8.108799.2.0\t10000\t0\n+NODE_28_length_34835_cov_8.108799.2.1\t4905\t0\n+NODE_290_length_1962_cov_6.746177\t2032\t0\n+NODE_293_length_832_cov_6.325721\t902\t0\n+NODE_294_length_210_cov_4.066667\t280\t0\n+NODE_295_length_196_cov_4.397959\t266\t0\n+NODE_29_length_44540_cov_9.429951.0\t10000\t0\n+NODE_29_length_44540_cov_9.429951.1\t10000\t0\n+NODE_29_length_44540_cov_9.429951.2\t10000\t0\n+NODE_29_length_44540_cov_9.429951.3.0\t10000\t0\n+NODE_29_length_44540_cov_9.429951.3.1\t4610\t0\n+NODE_2_length_16156_cov_8.219856.0\t10000\t0\n+NODE_2_length_16156_cov_8.219856.1\t6226\t0\n'
b
diff -r 000000000000 -r b546422c9128 test-data/output_merge_clusters.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/output_merge_clusters.tabular Sun Mar 13 08:44:34 2022 +0000
b
b'@@ -0,0 +1,306 @@\n+contig_id\tcluster_id\n+NODE_100_length_1535_cov_6.691205\t14\n+NODE_103_length_20202_cov_8.395357.0\t28\n+NODE_103_length_20202_cov_8.395357.1\t26\n+NODE_106_length_2172_cov_16.183702\t2\n+NODE_107_length_7609_cov_8.569195\t0\n+NODE_108_length_1232_cov_16.167208\t2\n+NODE_111_length_80116_cov_8.871636.0\t28\n+NODE_111_length_80116_cov_8.871636.1\t28\n+NODE_111_length_80116_cov_8.871636.2\t28\n+NODE_111_length_80116_cov_8.871636.3\t28\n+NODE_111_length_80116_cov_8.871636.4\t28\n+NODE_111_length_80116_cov_8.871636.5\t28\n+NODE_111_length_80116_cov_8.871636.6\t28\n+NODE_111_length_80116_cov_8.871636.7\t28\n+NODE_114_length_4896_cov_18.356821\t10\n+NODE_115_length_78252_cov_8.512166.0\t28\n+NODE_115_length_78252_cov_8.512166.1\t28\n+NODE_115_length_78252_cov_8.512166.2\t28\n+NODE_115_length_78252_cov_8.512166.3\t28\n+NODE_115_length_78252_cov_8.512166.4\t28\n+NODE_115_length_78252_cov_8.512166.5\t28\n+NODE_115_length_78252_cov_8.512166.6\t28\n+NODE_118_length_15438_cov_8.266615\t28\n+NODE_121_length_60582_cov_8.522333.0\t28\n+NODE_121_length_60582_cov_8.522333.1\t28\n+NODE_121_length_60582_cov_8.522333.2\t28\n+NODE_121_length_60582_cov_8.522333.3\t28\n+NODE_121_length_60582_cov_8.522333.4\t28\n+NODE_121_length_60582_cov_8.522333.5\t28\n+NODE_123_length_75191_cov_8.369140.0\t28\n+NODE_123_length_75191_cov_8.369140.1\t28\n+NODE_123_length_75191_cov_8.369140.2\t28\n+NODE_123_length_75191_cov_8.369140.3\t28\n+NODE_123_length_75191_cov_8.369140.4\t28\n+NODE_123_length_75191_cov_8.369140.5\t28\n+NODE_123_length_75191_cov_8.369140.6\t28\n+NODE_129_length_160323_cov_8.254436.0\t28\n+NODE_129_length_160323_cov_8.254436.1\t28\n+NODE_129_length_160323_cov_8.254436.10\t28\n+NODE_129_length_160323_cov_8.254436.11\t28\n+NODE_129_length_160323_cov_8.254436.12\t28\n+NODE_129_length_160323_cov_8.254436.13\t28\n+NODE_129_length_160323_cov_8.254436.14\t28\n+NODE_129_length_160323_cov_8.254436.15\t28\n+NODE_129_length_160323_cov_8.254436.2\t28\n+NODE_129_length_160323_cov_8.254436.3\t28\n+NODE_129_length_160323_cov_8.254436.4\t28\n+NODE_129_length_160323_cov_8.254436.5\t28\n+NODE_129_length_160323_cov_8.254436.6\t28\n+NODE_129_length_160323_cov_8.254436.7\t28\n+NODE_129_length_160323_cov_8.254436.8\t28\n+NODE_129_length_160323_cov_8.254436.9\t28\n+NODE_130_length_3461_cov_7.763941\t9\n+NODE_131_length_92242_cov_8.320277.0\t28\n+NODE_131_length_92242_cov_8.320277.1\t28\n+NODE_131_length_92242_cov_8.320277.2\t28\n+NODE_131_length_92242_cov_8.320277.3\t28\n+NODE_131_length_92242_cov_8.320277.4\t28\n+NODE_131_length_92242_cov_8.320277.5\t28\n+NODE_131_length_92242_cov_8.320277.6\t28\n+NODE_131_length_92242_cov_8.320277.7\t28\n+NODE_131_length_92242_cov_8.320277.8\t28\n+NODE_13_length_6591_cov_8.574723\t9\n+NODE_151_length_29715_cov_8.256470.0\t28\n+NODE_151_length_29715_cov_8.256470.1\t28\n+NODE_157_length_58632_cov_8.156433.0\t28\n+NODE_157_length_58632_cov_8.156433.1\t28\n+NODE_157_length_58632_cov_8.156433.2\t28\n+NODE_157_length_58632_cov_8.156433.3\t28\n+NODE_157_length_58632_cov_8.156433.4\t28\n+NODE_15_length_3555_cov_8.369058\t9\n+NODE_173_length_51809_cov_8.202050.0\t28\n+NODE_173_length_51809_cov_8.202050.1\t28\n+NODE_173_length_51809_cov_8.202050.2\t28\n+NODE_173_length_51809_cov_8.202050.3\t38\n+NODE_173_length_51809_cov_8.202050.4\t28\n+NODE_179_length_197611_cov_8.217700.0\t28\n+NODE_179_length_197611_cov_8.217700.1\t28\n+NODE_179_length_197611_cov_8.217700.10\t28\n+NODE_179_length_197611_cov_8.217700.11\t28\n+NODE_179_length_197611_cov_8.217700.12\t28\n+NODE_179_length_197611_cov_8.217700.13\t28\n+NODE_179_length_197611_cov_8.217700.14\t28\n+NODE_179_length_197611_cov_8.217700.15\t28\n+NODE_179_length_197611_cov_8.217700.16\t28\n+NODE_179_length_197611_cov_8.217700.17\t28\n+NODE_179_length_197611_cov_8.217700.18\t28\n+NODE_179_length_197611_cov_8.217700.2\t28\n+NODE_179_length_197611_cov_8.217700.3\t12\n+NODE_179_length_197611_cov_8.217700.4\t28\n+NODE_179_length_197611_cov_8.217700.5\t28\n+NODE_179_length_197611_cov_8.217700.6\t28\n+NODE_179_length_197611_cov_8.217700.7\t28\n+NODE_179_length_197611_cov_8.217700.8\t28\n+NODE_179_length_197611_cov_8.217700.9\t28\n+NODE_188_length_948_cov_28.155064\t34\n+NODE_1'..b'398.3\t28\n+NODE_254_length_191233_cov_8.270398.4\t28\n+NODE_254_length_191233_cov_8.270398.5\t28\n+NODE_254_length_191233_cov_8.270398.6\t28\n+NODE_254_length_191233_cov_8.270398.7\t28\n+NODE_254_length_191233_cov_8.270398.8\t28\n+NODE_254_length_191233_cov_8.270398.9\t28\n+NODE_257_length_6277_cov_8.895651\t28\n+NODE_258_length_263280_cov_8.177872.0\t28\n+NODE_258_length_263280_cov_8.177872.1\t28\n+NODE_258_length_263280_cov_8.177872.10\t28\n+NODE_258_length_263280_cov_8.177872.11\t28\n+NODE_258_length_263280_cov_8.177872.12\t37\n+NODE_258_length_263280_cov_8.177872.13\t28\n+NODE_258_length_263280_cov_8.177872.14\t28\n+NODE_258_length_263280_cov_8.177872.15\t28\n+NODE_258_length_263280_cov_8.177872.16\t28\n+NODE_258_length_263280_cov_8.177872.17\t28\n+NODE_258_length_263280_cov_8.177872.18\t28\n+NODE_258_length_263280_cov_8.177872.19\t28\n+NODE_258_length_263280_cov_8.177872.2\t28\n+NODE_258_length_263280_cov_8.177872.20\t28\n+NODE_258_length_263280_cov_8.177872.21\t28\n+NODE_258_length_263280_cov_8.177872.22\t28\n+NODE_258_length_263280_cov_8.177872.23\t28\n+NODE_258_length_263280_cov_8.177872.24\t28\n+NODE_258_length_263280_cov_8.177872.25\t28\n+NODE_258_length_263280_cov_8.177872.3\t28\n+NODE_258_length_263280_cov_8.177872.4\t28\n+NODE_258_length_263280_cov_8.177872.5\t28\n+NODE_258_length_263280_cov_8.177872.6\t28\n+NODE_258_length_263280_cov_8.177872.7\t28\n+NODE_258_length_263280_cov_8.177872.8\t28\n+NODE_258_length_263280_cov_8.177872.9\t28\n+NODE_260_length_165083_cov_8.801846.0\t28\n+NODE_260_length_165083_cov_8.801846.1\t28\n+NODE_260_length_165083_cov_8.801846.10\t28\n+NODE_260_length_165083_cov_8.801846.11\t28\n+NODE_260_length_165083_cov_8.801846.12\t28\n+NODE_260_length_165083_cov_8.801846.13\t28\n+NODE_260_length_165083_cov_8.801846.14\t28\n+NODE_260_length_165083_cov_8.801846.15\t28\n+NODE_260_length_165083_cov_8.801846.2\t28\n+NODE_260_length_165083_cov_8.801846.3\t28\n+NODE_260_length_165083_cov_8.801846.4\t28\n+NODE_260_length_165083_cov_8.801846.5\t28\n+NODE_260_length_165083_cov_8.801846.6\t28\n+NODE_260_length_165083_cov_8.801846.7\t28\n+NODE_260_length_165083_cov_8.801846.8\t28\n+NODE_260_length_165083_cov_8.801846.9\t28\n+NODE_261_length_321461_cov_8.199894.0\t28\n+NODE_261_length_321461_cov_8.199894.1\t28\n+NODE_261_length_321461_cov_8.199894.10\t28\n+NODE_261_length_321461_cov_8.199894.11\t28\n+NODE_261_length_321461_cov_8.199894.12\t28\n+NODE_261_length_321461_cov_8.199894.13\t28\n+NODE_261_length_321461_cov_8.199894.14\t28\n+NODE_261_length_321461_cov_8.199894.15\t28\n+NODE_261_length_321461_cov_8.199894.16\t28\n+NODE_261_length_321461_cov_8.199894.17\t28\n+NODE_261_length_321461_cov_8.199894.18\t28\n+NODE_261_length_321461_cov_8.199894.19\t28\n+NODE_261_length_321461_cov_8.199894.2\t28\n+NODE_261_length_321461_cov_8.199894.20\t28\n+NODE_261_length_321461_cov_8.199894.21\t28\n+NODE_261_length_321461_cov_8.199894.22\t28\n+NODE_261_length_321461_cov_8.199894.23\t28\n+NODE_261_length_321461_cov_8.199894.24\t28\n+NODE_261_length_321461_cov_8.199894.25\t28\n+NODE_261_length_321461_cov_8.199894.26\t28\n+NODE_261_length_321461_cov_8.199894.27\t28\n+NODE_261_length_321461_cov_8.199894.28\t28\n+NODE_261_length_321461_cov_8.199894.29\t28\n+NODE_261_length_321461_cov_8.199894.3\t28\n+NODE_261_length_321461_cov_8.199894.30\t28\n+NODE_261_length_321461_cov_8.199894.31\t28\n+NODE_261_length_321461_cov_8.199894.4\t28\n+NODE_261_length_321461_cov_8.199894.5\t28\n+NODE_261_length_321461_cov_8.199894.6\t28\n+NODE_261_length_321461_cov_8.199894.7\t28\n+NODE_261_length_321461_cov_8.199894.8\t28\n+NODE_261_length_321461_cov_8.199894.9\t28\n+NODE_267_length_4676_cov_7.631737\t3\n+NODE_26_length_3431_cov_15.138152\t4\n+NODE_27_length_35477_cov_8.181526.0\t28\n+NODE_27_length_35477_cov_8.181526.1\t28\n+NODE_27_length_35477_cov_8.181526.2\t28\n+NODE_28_length_34835_cov_8.108799.0\t28\n+NODE_28_length_34835_cov_8.108799.1\t28\n+NODE_28_length_34835_cov_8.108799.2\t28\n+NODE_290_length_1962_cov_6.746177\t1\n+NODE_29_length_44540_cov_9.429951.0\t28\n+NODE_29_length_44540_cov_9.429951.1\t28\n+NODE_29_length_44540_cov_9.429951.2\t28\n+NODE_29_length_44540_cov_9.429951.3\t28\n+NODE_2_length_16156_cov_8.219856\t28\n'
b
diff -r 000000000000 -r b546422c9128 test-data/process_log.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/process_log.txt Sun Mar 13 08:44:34 2022 +0000
b
@@ -0,0 +1,10 @@
+Results created at
+Successfully loaded composition data.
+Successfully loaded coverage data.
+Performed PCA, resulted in 154 dimensions
+Wrote PCA transformed file.
+Wrote PCA components file.
+PCA transformed data.
+Will call vbgmm with parameters: outdir/, 400, 1000, 1
+Wrote assign file.
+CONCOCT Finished