Mercurial > repos > rliterman > csp2
annotate 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 |
rev | line source |
---|---|
jpayne@68 | 1 package kmer; |
jpayne@68 | 2 |
jpayne@68 | 3 import structures.ByteBuilder; |
jpayne@68 | 4 import structures.IntList; |
jpayne@68 | 5 import structures.LongList; |
jpayne@68 | 6 |
jpayne@68 | 7 /** |
jpayne@68 | 8 * @author Brian Bushnell |
jpayne@68 | 9 * @date Jul 30, 2015 |
jpayne@68 | 10 * |
jpayne@68 | 11 */ |
jpayne@68 | 12 public class KmerBuffer { |
jpayne@68 | 13 |
jpayne@68 | 14 public KmerBuffer(int buflen, int k_, boolean initValues){ |
jpayne@68 | 15 k=k_; |
jpayne@68 | 16 kmers=new LongList(buflen); |
jpayne@68 | 17 values=(initValues ? new IntList(buflen) : null); |
jpayne@68 | 18 } |
jpayne@68 | 19 |
jpayne@68 | 20 public int add(long kmer){ |
jpayne@68 | 21 assert(values==null); |
jpayne@68 | 22 kmers.add(kmer); |
jpayne@68 | 23 assert(values==null); |
jpayne@68 | 24 return kmers.size; |
jpayne@68 | 25 } |
jpayne@68 | 26 |
jpayne@68 | 27 public int addMulti(long kmer, int times){ |
jpayne@68 | 28 assert(values==null); |
jpayne@68 | 29 for(int i=0; i<times; i++){kmers.add(kmer);} |
jpayne@68 | 30 assert(values==null); |
jpayne@68 | 31 return kmers.size; |
jpayne@68 | 32 } |
jpayne@68 | 33 |
jpayne@68 | 34 public int add(long kmer, int value){ |
jpayne@68 | 35 kmers.add(kmer); |
jpayne@68 | 36 values.add(value); |
jpayne@68 | 37 assert(values.size==kmers.size); |
jpayne@68 | 38 return kmers.size; |
jpayne@68 | 39 } |
jpayne@68 | 40 |
jpayne@68 | 41 public void clear(){ |
jpayne@68 | 42 kmers.clear(); |
jpayne@68 | 43 if(values!=null){values.clear();} |
jpayne@68 | 44 } |
jpayne@68 | 45 |
jpayne@68 | 46 //Returns raw size of kmers array, rather than actual number of kmers |
jpayne@68 | 47 final int size(){return kmers.size;} |
jpayne@68 | 48 |
jpayne@68 | 49 @Override |
jpayne@68 | 50 public String toString(){ |
jpayne@68 | 51 ByteBuilder bb=new ByteBuilder(); |
jpayne@68 | 52 for(int i=0; i<kmers.size; i++){ |
jpayne@68 | 53 if(i>0){bb.append(',');} |
jpayne@68 | 54 bb.appendKmer(kmers.get(i), k); |
jpayne@68 | 55 } |
jpayne@68 | 56 return bb.toString(); |
jpayne@68 | 57 } |
jpayne@68 | 58 |
jpayne@68 | 59 private final int k; |
jpayne@68 | 60 final LongList kmers; |
jpayne@68 | 61 final IntList values; |
jpayne@68 | 62 |
jpayne@68 | 63 } |