def data(self): if self._data is None: buf = BytesIO(self.storage.load(self._path)) with TextIOWrapper(buf) as data: from sourmash_lib import signature self._data = signature.load_one_signature(data) return self._data
def test_load_one_succeed(track_abundance): e1 = sourmash_lib.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig1 = SourmashSignature(e1) x = save_signatures([sig1]) y = load_one_signature(x) assert sig1 == y
def main(): p = argparse.ArgumentParser() p.add_argument('benchmark_sig') p.add_argument('signature_location') p.add_argument('overhead_values', nargs='+', type=float) p.add_argument('-o', '--output', default=None) args = p.parse_args() # load reference sig benchmark_sig = signature.load_one_signature(args.benchmark_sig) print('loaded benchmark {}'.format(args.benchmark_sig), file=sys.stderr) benchmark = benchmark_sig.minhash # load frontier sigs mh_list = [] for overhead in args.overhead_values: overhead = float(overhead) p = int(overhead * 100) filename = 'frontier.p{:02d}.sig'.format(p) filename = os.path.join(args.signature_location, filename) with open(filename) as fp: sig = signature.load_one_signature(fp) mh_list.append((overhead, sig.minhash)) print('loaded {}'.format(filename), file=sys.stderr) print(len(mh_list)) mh_list.sort() fieldnames = ['overhead', 'containment', 'similarity'] outfp = sys.stdout if args.output: outfp = open(args.output, 'w') w = csv.DictWriter(outfp, fieldnames) w.writeheader() for (overhead, mh) in mh_list: containment = benchmark.contained_by(mh) similarity = benchmark.similarity(mh) w.writerow( dict(overhead=overhead, containment=containment, similarity=similarity))
def test_load_one_fail_multisig(track_abundance): e1 = sourmash_lib.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig1 = SourmashSignature(e1) e2 = sourmash_lib.MinHash(n=1, ksize=20, track_abundance=track_abundance) sig2 = SourmashSignature(e2) x = save_signatures([sig1, sig2]) with pytest.raises(ValueError): y = load_one_signature(x)
def test_load_one_fail_nosig(track_abundance): x = save_signatures([]) print((x, )) with pytest.raises(ValueError): y = load_one_signature(x)