s-andrews / FastQC

A quality control analysis tool for high throughput sequencing data
GNU General Public License v3.0
444 stars 86 forks source link

Failed to process file #130

Open anthonygarcia13 opened 11 months ago

anthonygarcia13 commented 11 months ago

Hello I am trying to run FastQC, but I have been receiving an error where file has failed to process. I have included the output below.

${PROG}/fastqc_v0.12.1/FastQC/fastqc AG2_R2_001.fastq.gz --extract -o ${DIR}/FastQC_raw

OpenJDK 64-Bit Server VM warning: Insufficient space for shared memory file: 1246065 Try using the -Djava.io.tmpdir= option to select an alternate temp location.

application/gzip Started analysis of AG2_R2_001.fastq.gz Approx 5% complete for AG2_R2_001.fastq.gz Approx 10% complete for AG2_R2_001.fastq.gz Approx 15% complete for AG2_R2_001.fastq.gz Approx 20% complete for AG2_R2_001.fastq.gz Approx 25% complete for AG2_R2_001.fastq.gz Approx 30% complete for AG2_R2_001.fastq.gz Approx 35% complete for AG2_R2_001.fastq.gz Approx 40% complete for AG2_R2_001.fastq.gz Approx 45% complete for AG2_R2_001.fastq.gz Approx 50% complete for AG2_R2_001.fastq.gz Approx 55% complete for AG2_R2_001.fastq.gz Approx 60% complete for AG2_R2_001.fastq.gz Approx 65% complete for AG2_R2_001.fastq.gz Approx 70% complete for AG2_R2_001.fastq.gz Approx 75% complete for AG2_R2_001.fastq.gz Approx 80% complete for AG2_R2_001.fastq.gz Approx 85% complete for AG2_R2_001.fastq.gz Approx 90% complete for AG2_R2_001.fastq.gz Approx 95% complete for AG2_R2_001.fastq.gz Analysis complete for AG2_R2_001.fastq.gz Failed to process file AG2_R2_001.fastq.gz java.lang.IllegalArgumentException: image == null! at java.desktop/javax.imageio.ImageTypeSpecifier.createFromRenderedImage(ImageTypeSpecifier.java:925) at java.desktop/javax.imageio.ImageIO.getWriter(ImageIO.java:1610) at java.desktop/javax.imageio.ImageIO.write(ImageIO.java:1596) at uk.ac.babraham.FastQC.Utilities.ImageToBase64.imageToBase64(ImageToBase64.java:38) at uk.ac.babraham.FastQC.Report.HTMLReportArchive.base64ForIcon(HTMLReportArchive.java:384) at uk.ac.babraham.FastQC.Report.HTMLReportArchive.startDocument(HTMLReportArchive.java:307) at uk.ac.babraham.FastQC.Report.HTMLReportArchive.(HTMLReportArchive.java:84) at uk.ac.babraham.FastQC.Analysis.OfflineRunner.analysisComplete(OfflineRunner.java:189) at uk.ac.babraham.FastQC.Analysis.AnalysisRunner.run(AnalysisRunner.java:123) at java.base/java.lang.Thread.run(Thread.java:833)

I am using OpenJDK version "17.0.7" 2023-04-18. I have tried both fastqc versions 12.1 and 11.9 and receive the same error.

AlcaArctica commented 9 months ago

I got the same: fastqc /lustre/projects/dazzlerAssembly/asm_fHemTen_laura/hic/hic_reads/R1.fastq.gz /lustre/projects/dazzlerAssembly/asm_fHemTen_laura/hic/hic_reads/R2.fastq.gz -t 38 -o /lustre/projects/dazzlerAssembly/asm_fHemTen_laura/hic/qc/reads/fastqc

OpenJDK 64-Bit Server VM warning: Insufficient space for shared memory file:
   24679
Try using the -Djava.io.tmpdir= option to select an alternate temp location.

application/gzip
application/gzip
Started analysis of R1.fastq.gz
Started analysis of R2.fastq.gz
Approx 5% complete for R2.fastq.gz
Approx 5% complete for R1.fastq.gz
Approx 10% complete for R2.fastq.gz
Approx 10% complete for R1.fastq.gz
Approx 15% complete for R2.fastq.gz
Approx 15% complete for R1.fastq.gz
Approx 20% complete for R2.fastq.gz
Approx 20% complete for R1.fastq.gz
Approx 25% complete for R2.fastq.gz
Approx 25% complete for R1.fastq.gz
Approx 30% complete for R2.fastq.gz
Approx 30% complete for R1.fastq.gz
Approx 35% complete for R2.fastq.gz
Approx 35% complete for R1.fastq.gz
Approx 40% complete for R1.fastq.gz
Approx 40% complete for R2.fastq.gz
Approx 45% complete for R1.fastq.gz
Approx 45% complete for R2.fastq.gz
Approx 50% complete for R1.fastq.gz
Approx 50% complete for R2.fastq.gz
Approx 55% complete for R1.fastq.gz
Approx 55% complete for R2.fastq.gz
Approx 60% complete for R1.fastq.gz
Approx 60% complete for R2.fastq.gz
Approx 65% complete for R1.fastq.gz
Approx 65% complete for R2.fastq.gz
Approx 70% complete for R1.fastq.gz
Approx 70% complete for R2.fastq.gz
Approx 75% complete for R1.fastq.gz
Approx 75% complete for R2.fastq.gz
Approx 80% complete for R1.fastq.gz
Approx 80% complete for R2.fastq.gz
Approx 85% complete for R1.fastq.gz
Approx 85% complete for R2.fastq.gz
Approx 90% complete for R1.fastq.gz
Approx 90% complete for R2.fastq.gz
Approx 95% complete for R1.fastq.gz
Approx 95% complete for R2.fastq.gz
Analysis complete for R1.fastq.gz
Failed to process file R1.fastq.gz
java.lang.IllegalArgumentException: image == null!
    at javax.imageio.ImageTypeSpecifier.createFromRenderedImage(ImageTypeSpecifier.java:925)
    at javax.imageio.ImageIO.getWriter(ImageIO.java:1602)
    at javax.imageio.ImageIO.write(ImageIO.java:1588)
    at uk.ac.babraham.FastQC.Utilities.ImageToBase64.imageToBase64(ImageToBase64.java:38)
    at uk.ac.babraham.FastQC.Report.HTMLReportArchive.base64ForIcon(HTMLReportArchive.java:384)
    at uk.ac.babraham.FastQC.Report.HTMLReportArchive.startDocument(HTMLReportArchive.java:307)
    at uk.ac.babraham.FastQC.Report.HTMLReportArchive.<init>(HTMLReportArchive.java:84)
    at uk.ac.babraham.FastQC.Analysis.OfflineRunner.analysisComplete(OfflineRunner.java:189)
    at uk.ac.babraham.FastQC.Analysis.AnalysisRunner.run(AnalysisRunner.java:123)
    at java.lang.Thread.run(Thread.java:750)
Analysis complete for R2.fastq.gz
Failed to process file R2.fastq.gz
java.lang.IllegalArgumentException: image == null!
    at javax.imageio.ImageTypeSpecifier.createFromRenderedImage(ImageTypeSpecifier.java:925)
    at javax.imageio.ImageIO.getWriter(ImageIO.java:1602)
    at javax.imageio.ImageIO.write(ImageIO.java:1588)
    at uk.ac.babraham.FastQC.Utilities.ImageToBase64.imageToBase64(ImageToBase64.java:38)
    at uk.ac.babraham.FastQC.Report.HTMLReportArchive.base64ForIcon(HTMLReportArchive.java:384)
    at uk.ac.babraham.FastQC.Report.HTMLReportArchive.startDocument(HTMLReportArchive.java:307)
    at uk.ac.babraham.FastQC.Report.HTMLReportArchive.<init>(HTMLReportArchive.java:84)
    at uk.ac.babraham.FastQC.Analysis.OfflineRunner.analysisComplete(OfflineRunner.java:189)
    at uk.ac.babraham.FastQC.Analysis.AnalysisRunner.run(AnalysisRunner.java:123)
    at java.lang.Thread.run(Thread.java:750)

The two files are roughly the same size, so memory shouldnt be an issue? Also I could run the faster tool for both without issue: here are the results:

file    reads   bases   n_bases min_len max_len mean_len    Q1  Q2  Q3  N50 Q20_percent Q30_percent
R1.fastq.gz 158000595   15958060095 465871  101 101 101.00  101 101 101 101 98.58   95.59
file    reads   bases   n_bases min_len max_len mean_len    Q1  Q2  Q3  N50 Q20_percent Q30_percent
R2.fastq.gz 158000595   15958060095 730547  101 101 101.00  101 101 101 101 98.14   94.29

I was using version

s-andrews commented 9 months ago

Hmm. Fastqc doesn't explicitly use a shared memory file. That warning suggests that your /tmp location has no space on it, but I'm not sure that's the root of the issue.

This issue looks like the same thing and the upshot is that it's a warning you can ignore and which won't affect the running of the program.

The second part is more of a concern where the image being rendered ends up null, but without a prior error. Obviously trying to render a null image would be a problem but there's no error which says why or how the image ended up being null. It could be something to do with a strange behaviour in the data, but there's no way to tell from the information here.

I do wonder if the lack of any tmp space is problematic - it could be that the ImageIO stuff uses that silently behind the scenes? It's not something we'd seen before.

Some options to debug:

  1. Go into the main config and turn off all of the modules except the basic summary and see if the processing works. Try turning them back on one at a time and see if a specific module triggers the failure - that would suggest it's the data
  2. Try editing the fastqc launch script. Below line 77:

push @java_args, '-XX:+ExitOnOutOfMemoryError';

..add another line which sets the -Djava.io.tmpdir= to somewhere you definitely have space

push @java_args, '-Djava.io.tmpdir=/home/myuser/temp';

Then see if either of those helps.

If you fancy sharing one of the files which fails with me then let me know and I can have a go at processing it and seeing that fails.

AlcaArctica commented 9 months ago

thanks @s-andrews . I deleted all files from /tmp and now it seems to have worked!