diff --git a/uk/ac/babraham/FastQC/Modules/BasicStats.java b/uk/ac/babraham/FastQC/Modules/BasicStats.java index bb06b9c..9e37a1a 100644 --- a/uk/ac/babraham/FastQC/Modules/BasicStats.java +++ b/uk/ac/babraham/FastQC/Modules/BasicStats.java @@ -123,9 +123,10 @@ public void processSequence(Sequence sequence) { if (sequence.getSequence().length() > maxLength) maxLength = sequence.getSequence().length(); } - char [] chars = sequence.getSequence().toCharArray(); - for (int c=0;c= cachedModels.length) { + if (seqLen >= cachedModels.length) { // We need to extend the length of cached models - GCModel [] longerModels = new GCModel[seq.length+1]; + GCModel [] longerModels = new GCModel[seqLen+1]; for (int i=0;i 1000) { int length = (seq.length()/1000)*1000; - return seq.substring(0, length).toCharArray(); + return seq.substring(0, length); } if (seq.length() > 100) { int length = (seq.length()/100)*100; - return seq.substring(0, length).toCharArray(); + return seq.substring(0, length); } - return seq.toCharArray(); + return seq; } diff --git a/uk/ac/babraham/FastQC/Modules/PerSequenceQualityScores.java b/uk/ac/babraham/FastQC/Modules/PerSequenceQualityScores.java index 61661e5..276ac6b 100644 --- a/uk/ac/babraham/FastQC/Modules/PerSequenceQualityScores.java +++ b/uk/ac/babraham/FastQC/Modules/PerSequenceQualityScores.java @@ -88,18 +88,20 @@ private synchronized void calculateDistribution () { public void processSequence(Sequence sequence) { - char [] seq = sequence.getQualityString().toCharArray(); + String qual = sequence.getQualityString(); + int qualLen = qual.length(); int averageQuality = 0; - for (int i=0;i 0) { - averageQuality /= seq.length; + if (qualLen > 0) { + averageQuality /= qualLen; if (averageScoreCounts.containsKey(averageQuality)) { long currentCount = averageScoreCounts.get(averageQuality); diff --git a/uk/ac/babraham/FastQC/Modules/PerTileQualityScores.java b/uk/ac/babraham/FastQC/Modules/PerTileQualityScores.java index 41afd71..6f344f6 100644 --- a/uk/ac/babraham/FastQC/Modules/PerTileQualityScores.java +++ b/uk/ac/babraham/FastQC/Modules/PerTileQualityScores.java @@ -256,15 +256,16 @@ else if (splitID.length >=5) { return; } - char [] qual = sequence.getQualityString().toCharArray(); - if (currentLength < qual.length) { + String qual = sequence.getQualityString(); + int qualLen = qual.length(); + if (currentLength < qualLen) { Iterator tiles = perTileQualityCounts.keySet().iterator(); while (tiles.hasNext()) { int thisTile = tiles.next(); QualityCount [] qualityCounts = perTileQualityCounts.get(thisTile); - QualityCount [] qualityCountsNew = new QualityCount[qual.length]; + QualityCount [] qualityCountsNew = new QualityCount[qualLen]; for (int i=0;i=5) { perTileQualityCounts.put(thisTile, qualityCountsNew); } - currentLength = qual.length; + currentLength = qualLen; } @@ -300,8 +301,8 @@ else if (splitID.length >=5) { QualityCount [] qualityCounts = perTileQualityCounts.get(tile); - for (int i=0;i