Mercurial > repos > rliterman > csp2
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/bbmap-39.01-1/current/kmer/KmerBuffer.java Tue Mar 18 16:23:26 2025 -0400 @@ -0,0 +1,63 @@ +package kmer; + +import structures.ByteBuilder; +import structures.IntList; +import structures.LongList; + +/** + * @author Brian Bushnell + * @date Jul 30, 2015 + * + */ +public class KmerBuffer { + + public KmerBuffer(int buflen, int k_, boolean initValues){ + k=k_; + kmers=new LongList(buflen); + values=(initValues ? new IntList(buflen) : null); + } + + public int add(long kmer){ + assert(values==null); + kmers.add(kmer); + assert(values==null); + return kmers.size; + } + + public int addMulti(long kmer, int times){ + assert(values==null); + for(int i=0; i<times; i++){kmers.add(kmer);} + assert(values==null); + return kmers.size; + } + + public int add(long kmer, int value){ + kmers.add(kmer); + values.add(value); + assert(values.size==kmers.size); + return kmers.size; + } + + public void clear(){ + kmers.clear(); + if(values!=null){values.clear();} + } + + //Returns raw size of kmers array, rather than actual number of kmers + final int size(){return kmers.size;} + + @Override + public String toString(){ + ByteBuilder bb=new ByteBuilder(); + for(int i=0; i<kmers.size; i++){ + if(i>0){bb.append(',');} + bb.appendKmer(kmers.get(i), k); + } + return bb.toString(); + } + + private final int k; + final LongList kmers; + final IntList values; + +}