()
| 4228 | } |
| 4229 | |
| 4230 | @Override |
| 4231 | public void run() { |
| 4232 | try { |
| 4233 | while (true) { |
| 4234 | Fragment frag = fragments.poll(10, TimeUnit.MICROSECONDS); |
| 4235 | |
| 4236 | if (frag == null) { |
| 4237 | if (!keepGoing) { |
| 4238 | break; |
| 4239 | } |
| 4240 | } |
| 4241 | else { |
| 4242 | float minCov = frag.minCov; |
| 4243 | |
| 4244 | if (frag.isUnconnectedRead) { |
| 4245 | ++readPairsNotConnected; |
| 4246 | |
| 4247 | String seq = frag.left; |
| 4248 | if (seq != null && seq.length() >= k) { |
| 4249 | writers.writeUnconnected(seq, minCov); |
| 4250 | } |
| 4251 | |
| 4252 | seq = frag.right; |
| 4253 | if (seq != null && seq.length() >= k) { |
| 4254 | writers.writeUnconnected(seq, minCov); |
| 4255 | } |
| 4256 | } |
| 4257 | else { |
| 4258 | ++readPairsConnected; |
| 4259 | |
| 4260 | int fragLen = frag.kmers.size()+ k - 1; // not using frag.length because it is the original length and frag may be extended |
| 4261 | |
| 4262 | if (fragLen >= shortestFragmentLengthAllowed && minCov > 0) { |
| 4263 | ArrayList<Kmer> fragKmers = frag.kmers; |
| 4264 | boolean hasAllKmers = lookupAndAddAllKmers(screeningBf, fragKmers); |
| 4265 | |
| 4266 | if (fragLen < longFragmentLengthThreshold) { |
| 4267 | if (!hasAllKmers) { |
| 4268 | writers.writeShort(graph.assemble(fragKmers), minCov); |
| 4269 | } |
| 4270 | } |
| 4271 | else { |
| 4272 | boolean hasAllKmerPairs = graph.lookupAndAddAllPairedKmers(fragKmers); |
| 4273 | if (!hasAllKmers || !hasAllKmerPairs) { |
| 4274 | writers.writeLong(graph.assemble(fragKmers), minCov); |
| 4275 | } |
| 4276 | } |
| 4277 | } |
| 4278 | } |
| 4279 | } |
| 4280 | } |
| 4281 | |
| 4282 | writers.closeAll(); |
| 4283 | } |
| 4284 | catch(Exception ex) { |
| 4285 | ex.printStackTrace(); |
| 4286 | throw new RuntimeException(ex); |
| 4287 | } |
nothing calls this directly
no test coverage detected