Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/bbmap-39.01-1/current/kmer/KmerBuffer.java @ 68:5028fdace37b
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 16:23:26 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 68:5028fdace37b |
---|---|
1 package kmer; | |
2 | |
3 import structures.ByteBuilder; | |
4 import structures.IntList; | |
5 import structures.LongList; | |
6 | |
7 /** | |
8 * @author Brian Bushnell | |
9 * @date Jul 30, 2015 | |
10 * | |
11 */ | |
12 public class KmerBuffer { | |
13 | |
14 public KmerBuffer(int buflen, int k_, boolean initValues){ | |
15 k=k_; | |
16 kmers=new LongList(buflen); | |
17 values=(initValues ? new IntList(buflen) : null); | |
18 } | |
19 | |
20 public int add(long kmer){ | |
21 assert(values==null); | |
22 kmers.add(kmer); | |
23 assert(values==null); | |
24 return kmers.size; | |
25 } | |
26 | |
27 public int addMulti(long kmer, int times){ | |
28 assert(values==null); | |
29 for(int i=0; i<times; i++){kmers.add(kmer);} | |
30 assert(values==null); | |
31 return kmers.size; | |
32 } | |
33 | |
34 public int add(long kmer, int value){ | |
35 kmers.add(kmer); | |
36 values.add(value); | |
37 assert(values.size==kmers.size); | |
38 return kmers.size; | |
39 } | |
40 | |
41 public void clear(){ | |
42 kmers.clear(); | |
43 if(values!=null){values.clear();} | |
44 } | |
45 | |
46 //Returns raw size of kmers array, rather than actual number of kmers | |
47 final int size(){return kmers.size;} | |
48 | |
49 @Override | |
50 public String toString(){ | |
51 ByteBuilder bb=new ByteBuilder(); | |
52 for(int i=0; i<kmers.size; i++){ | |
53 if(i>0){bb.append(',');} | |
54 bb.appendKmer(kmers.get(i), k); | |
55 } | |
56 return bb.toString(); | |
57 } | |
58 | |
59 private final int k; | |
60 final LongList kmers; | |
61 final IntList values; | |
62 | |
63 } |