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 }