Skip to content
Commits on Source (2)
RELEASE NOTES FOR FastQC v0.11.8
--------------------------------
This release works around some edge cases in unusual sequence libraries
and changes the behaviour of the read length module when run with the
--nogroup option. Other minor fixes are also present.
RELEASE NOTES FOR FastQC v0.11.7
--------------------------------
......
......@@ -327,7 +327,7 @@ DESCRIPTION
(including being gzipped and ending with .gz) otherwise they
won't be grouped together correctly.
--nano Files come from naopore sequences and are in fast5 format. In
--nano Files come from nanopore sequences and are in fast5 format. In
this mode you can pass in directories to process and the program
will take in all fast5 files within those directories and produce
a single output file from the sequences found in all files.
......
java -Xmx250m -classpath .;./sam-1.103.jar;./jbzip2-0.9.jar uk.ac.babraham.FastQC.FastQCApplication
java -Xmx250m -classpath .;./sam-1.103.jar;./jbzip2-0.9.jar uk.ac.babraham.FastQC.FastQCApplication %*
......@@ -54,7 +54,7 @@ import uk.ac.babraham.FastQC.Utilities.NanoporeBasename;
public class FastQCApplication extends JFrame {
public static final String VERSION = "0.11.7";
public static final String VERSION = "0.11.8";
private JTabbedPane fileTabs;
private WelcomePanel welcomePanel;
......
......@@ -97,8 +97,6 @@ public class DuplicationLevel extends AbstractQCModule {
correctedCounts.put(dupLevel,getCorrectedCount(overrepresentedModule.countAtUniqueLimit, overrepresentedModule.count, dupLevel, count));
// System.err.println("For dup level "+dupLevel+" raw count was "+count+" corrected count was "+correctedCounts.get(dupLevel));
}
// From the corrected counts we can now work out the raw and deduplicated proportions
......@@ -133,7 +131,6 @@ public class DuplicationLevel extends AbstractQCModule {
// System.err.println("True total = "+overrepresentedModule.count+" inferred total is "+rawTotal+" dedup total is "+dedupTotal);
labels = new String [16];
for (int i=0;i<deduplicatedPercentages.length;i++) {
if (i<9) labels[i] = ""+(i+1);
......@@ -177,9 +174,22 @@ public class DuplicationLevel extends AbstractQCModule {
double pNotSeeingAtLimit = 1;
// To save doing long calculations which are never going to produce anything meaningful
// we'll set a limit to our p-value calculation. This is the probability below which we
// won't increase our count by 0.01 of an observation. Once we're below this we stop caring
// about the corrected value since it's going to be so close to the observed value that
// we can just return that instead.
double limitOfCaring = 1d - (numberOfObservations/(numberOfObservations+0.01d));
for (int i=0;i<countAtLimit;i++) {
pNotSeeingAtLimit *= ((totalCount-i)-duplicationLevel)/(double)(totalCount-i);
// System.err.println("At i="+i+" p is "+pNotSeeingAtLimit);
if (pNotSeeingAtLimit < limitOfCaring) {
pNotSeeingAtLimit = 0;
break;
}
}
// Now we can invert this to get the chance of seeing a sequence with this count
......
......@@ -24,6 +24,7 @@ import java.io.IOException;
import javax.swing.JPanel;
import javax.xml.stream.XMLStreamException;
import uk.ac.babraham.FastQC.FastQCConfig;
import uk.ac.babraham.FastQC.Graphs.LineGraph;
import uk.ac.babraham.FastQC.Report.HTMLReportArchive;
import uk.ac.babraham.FastQC.Sequence.Sequence;
......@@ -130,6 +131,11 @@ public class SequenceLengthDistribution extends AbstractQCModule {
private int [] getSizeDistribution (int min, int max) {
// We won't group if they've asked us not to
if (FastQCConfig.getInstance().nogroup) {
return(new int [] {min,1});
}
int base = 1;
while (base > (max-min)) {
......@@ -221,7 +227,7 @@ public class SequenceLengthDistribution extends AbstractQCModule {
public void makeReport(HTMLReportArchive report) throws IOException,XMLStreamException {
if (!calculated) calculateDistribution();
writeDefaultImage(report, "sequence_length_distribution.png", "Sequence length distribution", 800, 600);
writeDefaultImage(report, "sequence_length_distribution.png", "Sequence length distribution", Math.max(800, graphCounts.length*15), 600);
StringBuffer sb = report.dataDocument();
sb.append("#Length\tCount\n");
......
......@@ -124,6 +124,7 @@ public class ResultsPanel extends JPanel implements ListSelectionListener, Analy
panels = new JPanel[modules.length];
for (int m=0;m<modules.length;m++) {
System.err.println("Getting panel for "+modules[m].name()+" with "+modules[m].description());
panels[m] = modules[m].getResultsPanel();
}
......