annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/bbmap-39.01-1/current/kmer/KmerNode1D.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 java.util.concurrent.atomic.AtomicLong;
jpayne@68 4
jpayne@68 5 import fileIO.ByteStreamWriter;
jpayne@68 6 import structures.ByteBuilder;
jpayne@68 7
jpayne@68 8 /**
jpayne@68 9 * @author Brian Bushnell
jpayne@68 10 * @date Oct 22, 2013
jpayne@68 11 *
jpayne@68 12 */
jpayne@68 13 public class KmerNode1D extends KmerNode {
jpayne@68 14
jpayne@68 15 /*--------------------------------------------------------------*/
jpayne@68 16 /*---------------- Initialization ----------------*/
jpayne@68 17 /*--------------------------------------------------------------*/
jpayne@68 18
jpayne@68 19 public KmerNode1D(long pivot_){
jpayne@68 20 super(pivot_);
jpayne@68 21 }
jpayne@68 22
jpayne@68 23 public KmerNode1D(long pivot_, int value_){
jpayne@68 24 super(pivot_);
jpayne@68 25 value=value_;
jpayne@68 26 }
jpayne@68 27
jpayne@68 28 @Override
jpayne@68 29 public final KmerNode makeNode(long pivot_, int value_){
jpayne@68 30 return new KmerNode1D(pivot_, value_);
jpayne@68 31 }
jpayne@68 32
jpayne@68 33 @Override
jpayne@68 34 public final KmerNode makeNode(long pivot_, int[] values_, int vlen){
jpayne@68 35 throw new RuntimeException("Unimplemented");
jpayne@68 36 }
jpayne@68 37
jpayne@68 38 /*--------------------------------------------------------------*/
jpayne@68 39 /*---------------- Public Methods ----------------*/
jpayne@68 40 /*--------------------------------------------------------------*/
jpayne@68 41
jpayne@68 42 @Override
jpayne@68 43 public final int set(long kmer, int[] vals, int vlen) {
jpayne@68 44 throw new RuntimeException("Unimplemented.");
jpayne@68 45 }
jpayne@68 46
jpayne@68 47 /*--------------------------------------------------------------*/
jpayne@68 48 /*---------------- Nonpublic Methods ----------------*/
jpayne@68 49 /*--------------------------------------------------------------*/
jpayne@68 50
jpayne@68 51 @Override
jpayne@68 52 public int value(){return value;}
jpayne@68 53
jpayne@68 54 @Override
jpayne@68 55 protected int[] values(int[] singleton){
jpayne@68 56 assert(singleton.length==1);
jpayne@68 57 singleton[0]=value;
jpayne@68 58 return singleton;
jpayne@68 59 }
jpayne@68 60
jpayne@68 61 @Override
jpayne@68 62 public int set(int value_){return value=value_;}
jpayne@68 63
jpayne@68 64 @Override
jpayne@68 65 protected int set(int[] values_, int vlen){
jpayne@68 66 throw new RuntimeException("Unimplemented");
jpayne@68 67 }
jpayne@68 68
jpayne@68 69 @Override
jpayne@68 70 int numValues(){return value<1 ? 0 : 1;}
jpayne@68 71
jpayne@68 72 /*--------------------------------------------------------------*/
jpayne@68 73 /*---------------- Private Methods ----------------*/
jpayne@68 74 /*--------------------------------------------------------------*/
jpayne@68 75
jpayne@68 76 /*--------------------------------------------------------------*/
jpayne@68 77 /*---------------- Resizing and Rebalancing ----------------*/
jpayne@68 78 /*--------------------------------------------------------------*/
jpayne@68 79
jpayne@68 80 @Override
jpayne@68 81 boolean canResize() {
jpayne@68 82 return false;
jpayne@68 83 }
jpayne@68 84
jpayne@68 85 @Override
jpayne@68 86 public boolean canRebalance() {
jpayne@68 87 return true;
jpayne@68 88 }
jpayne@68 89
jpayne@68 90 @Deprecated
jpayne@68 91 @Override
jpayne@68 92 public int arrayLength() {
jpayne@68 93 throw new RuntimeException("Unsupported.");
jpayne@68 94 }
jpayne@68 95
jpayne@68 96 @Deprecated
jpayne@68 97 @Override
jpayne@68 98 void resize() {
jpayne@68 99 throw new RuntimeException("Unsupported.");
jpayne@68 100 }
jpayne@68 101
jpayne@68 102 @Deprecated
jpayne@68 103 @Override
jpayne@68 104 public void rebalance() {
jpayne@68 105 throw new RuntimeException("Please call rebalance(ArrayList<KmerNode>) instead, with an empty list.");
jpayne@68 106 }
jpayne@68 107
jpayne@68 108 /*--------------------------------------------------------------*/
jpayne@68 109 /*---------------- Info Dumping ----------------*/
jpayne@68 110 /*--------------------------------------------------------------*/
jpayne@68 111
jpayne@68 112 @Override
jpayne@68 113 public final boolean dumpKmersAsBytes(ByteStreamWriter bsw, int k, int mincount, int maxcount, AtomicLong remaining){
jpayne@68 114 if(value<1){return true;}
jpayne@68 115 if(value>=mincount){
jpayne@68 116 if(remaining!=null && remaining.decrementAndGet()<0){return true;}
jpayne@68 117 bsw.printlnKmer(pivot, value, k);
jpayne@68 118 }
jpayne@68 119 if(left!=null){left.dumpKmersAsBytes(bsw, k, mincount, maxcount, remaining);}
jpayne@68 120 if(right!=null){right.dumpKmersAsBytes(bsw, k, mincount, maxcount, remaining);}
jpayne@68 121 return true;
jpayne@68 122 }
jpayne@68 123
jpayne@68 124 @Override
jpayne@68 125 public final boolean dumpKmersAsBytes_MT(final ByteStreamWriter bsw, final ByteBuilder bb, final int k, final int mincount, int maxcount, AtomicLong remaining){
jpayne@68 126 if(value<1){return true;}
jpayne@68 127 if(value>=mincount){
jpayne@68 128 if(remaining!=null && remaining.decrementAndGet()<0){return true;}
jpayne@68 129 toBytes(pivot, value, k, bb);
jpayne@68 130 bb.nl();
jpayne@68 131 if(bb.length()>=16000){
jpayne@68 132 ByteBuilder bb2=new ByteBuilder(bb);
jpayne@68 133 synchronized(bsw){bsw.addJob(bb2);}
jpayne@68 134 bb.clear();
jpayne@68 135 }
jpayne@68 136 }
jpayne@68 137 if(left!=null){left.dumpKmersAsBytes_MT(bsw, bb, k, mincount, maxcount, remaining);}
jpayne@68 138 if(right!=null){right.dumpKmersAsBytes_MT(bsw, bb, k, mincount, maxcount, remaining);}
jpayne@68 139 return true;
jpayne@68 140 }
jpayne@68 141
jpayne@68 142 @Override
jpayne@68 143 protected final StringBuilder dumpKmersAsText(StringBuilder sb, int k, int mincount, int maxcount){
jpayne@68 144 if(value<1){return sb;}
jpayne@68 145 if(sb==null){sb=new StringBuilder(32);}
jpayne@68 146 if(value>=mincount){sb.append(AbstractKmerTable.toText(pivot, value, k)).append('\n');}
jpayne@68 147 if(left!=null){left.dumpKmersAsText(sb, k, mincount, maxcount);}
jpayne@68 148 if(right!=null){right.dumpKmersAsText(sb, k, mincount, maxcount);}
jpayne@68 149 return sb;
jpayne@68 150 }
jpayne@68 151
jpayne@68 152 @Override
jpayne@68 153 protected final ByteBuilder dumpKmersAsText(ByteBuilder bb, int k, int mincount, int maxcount){
jpayne@68 154 if(value<1){return bb;}
jpayne@68 155 if(bb==null){bb=new ByteBuilder(32);}
jpayne@68 156 if(value>=mincount){bb.append(AbstractKmerTable.toBytes(pivot, value, k)).append('\n');}
jpayne@68 157 if(left!=null){left.dumpKmersAsText(bb, k, mincount, maxcount);}
jpayne@68 158 if(right!=null){right.dumpKmersAsText(bb, k, mincount, maxcount);}
jpayne@68 159 return bb;
jpayne@68 160 }
jpayne@68 161
jpayne@68 162 @Override
jpayne@68 163 final boolean TWOD(){return false;}
jpayne@68 164
jpayne@68 165 /*--------------------------------------------------------------*/
jpayne@68 166 /*---------------- Invalid Methods ----------------*/
jpayne@68 167 /*--------------------------------------------------------------*/
jpayne@68 168
jpayne@68 169 /*--------------------------------------------------------------*/
jpayne@68 170 /*---------------- Fields ----------------*/
jpayne@68 171 /*--------------------------------------------------------------*/
jpayne@68 172
jpayne@68 173 int value;
jpayne@68 174
jpayne@68 175 }