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 }