()
| 1814 | } |
| 1815 | |
| 1816 | @Override |
| 1817 | public void run() { |
| 1818 | try { |
| 1819 | int fragKmersDist = graph.getFragPairedKmerDistance(); |
| 1820 | int maxEdgeClipLength = minPolyATailLengthRequired > 0 ? 0 : maxTipLength; |
| 1821 | boolean keepBluntEndArtifact = keepArtifact; |
| 1822 | |
| 1823 | String fragment; |
| 1824 | while ((fragment = fin.next()) != null) { |
| 1825 | ++numParsed; |
| 1826 | // String seq = ""; |
| 1827 | // ArrayList<Kmer> kmers2 = graph.getKmers(seq); |
| 1828 | // printPairedKmersPositions(kmers2, graph); |
| 1829 | |
| 1830 | ArrayList<Kmer> kmers = graph.getKmers(fragment); |
| 1831 | |
| 1832 | if (!kmers.isEmpty()) { |
| 1833 | if ( (!extendBranchFreeFragmentsOnly || isBranchFree(kmers, graph, maxTipLength)) && |
| 1834 | !represented(kmers, |
| 1835 | graph, |
| 1836 | screeningBf, |
| 1837 | lookahead, |
| 1838 | maxIndelSize, |
| 1839 | maxEdgeClipLength, |
| 1840 | percentIdentity) && |
| 1841 | (keepChimera || !isChimera(kmers, graph, screeningBf, lookahead)) && |
| 1842 | (keepBluntEndArtifact || !isBluntEndArtifact(kmers, graph, screeningBf, maxEdgeClipLength)) ) { |
| 1843 | |
| 1844 | int[] originalFragRange; |
| 1845 | |
| 1846 | if (haveFragKmers) { |
| 1847 | originalFragRange = extendPE(kmers, graph, maxTipLength, minKmerCov); |
| 1848 | } |
| 1849 | else { |
| 1850 | originalFragRange = extendSE(kmers, graph, maxTipLength, minKmerCov); |
| 1851 | } |
| 1852 | |
| 1853 | int[] currentRange = new int[]{0, kmers.size()}; |
| 1854 | |
| 1855 | if (haveFragKmers) { |
| 1856 | if (kmers.size() >= fragKmersDist) { |
| 1857 | ArrayDeque<int[]> ranges = breakWithFragPairedKmers(kmers, graph, minNumKmerPairs); |
| 1858 | int numFragSegs = ranges.size(); |
| 1859 | |
| 1860 | if (numFragSegs == 1) { |
| 1861 | currentRange = ranges.peekFirst(); |
| 1862 | } |
| 1863 | else if (numFragSegs > 1) { |
| 1864 | int bestOverlap = 0; |
| 1865 | int[] bestRange = null; |
| 1866 | for (int[] range : ranges) { |
| 1867 | int overlap = intervalOverlapSize(range, originalFragRange); |
| 1868 | if (overlap > bestOverlap) { |
| 1869 | bestOverlap = overlap; |
| 1870 | bestRange = range; |
| 1871 | } |
| 1872 | } |
| 1873 |
nothing calls this directly
no test coverage detected