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;
+	
+}