Previous changeset 0:06c0eb033025 (2022-02-18) Next changeset 2:7a145c72d375 (2022-07-01) |
Commit message:
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/concoct commit 40a09cbfd6052f7b0295946621db1bdf58228b09" |
modified:
concoct.xml macros.xml |
added:
coverage_table.py cut_up_fasta.py merge_cut_up_clustering.py static/images/pipeline.png test-data/input.fasta.gz test-data/input_coverage_table.fasta.gz test-data/input_coverage_table.tabular test-data/input_merge_clusters.tabular test-data/output_coverage_table.tabular test-data/output_merge_clusters.tabular |
b |
diff -r 06c0eb033025 -r 031f84cb2fd3 concoct.xml --- a/concoct.xml Fri Feb 18 14:18:11 2022 +0000 +++ b/concoct.xml Sun Mar 13 08:45:05 2022 +0000 |
b |
@@ -109,8 +109,9 @@ sample (the values are the average coverage for this contig in that sample) and a file containing sequences in fasta format. -Three are produced; clustering of the > 1000 kmer count, the PCA transformed matrix and the PCA components. +Three outputs are produced; clustering of the > 1000 kmer count, the PCA transformed matrix and the PCA components. +@HELP_OVERVIEW@ ]]></help> <expand macro="citations"/> </tool> |
b |
diff -r 06c0eb033025 -r 031f84cb2fd3 coverage_table.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/coverage_table.py Sun Mar 13 08:45:05 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 06c0eb033025 -r 031f84cb2fd3 cut_up_fasta.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cut_up_fasta.py Sun Mar 13 08:45:05 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 06c0eb033025 -r 031f84cb2fd3 macros.xml --- a/macros.xml Fri Feb 18 14:18:11 2022 +0000 +++ b/macros.xml Sun Mar 13 08:45:05 2022 +0000 |
b |
@@ -4,11 +4,20 @@ <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> - <requirement type="package" version="1.79">biopython</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> |
b |
diff -r 06c0eb033025 -r 031f84cb2fd3 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:45:05 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 06c0eb033025 -r 031f84cb2fd3 static/images/pipeline.png |
b |
Binary file static/images/pipeline.png has changed |
b |
diff -r 06c0eb033025 -r 031f84cb2fd3 test-data/input.fasta.gz |
b |
Binary file test-data/input.fasta.gz has changed |
b |
diff -r 06c0eb033025 -r 031f84cb2fd3 test-data/input_coverage_table.fasta.gz |
b |
Binary file test-data/input_coverage_table.fasta.gz has changed |
b |
diff -r 06c0eb033025 -r 031f84cb2fd3 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:45:05 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 06c0eb033025 -r 031f84cb2fd3 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:45:05 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 06c0eb033025 -r 031f84cb2fd3 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:45:05 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 06c0eb033025 -r 031f84cb2fd3 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:45:05 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' |