s-andrews / FastQC

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

can't use fastqc after update #138

Closed ShevchenkoAlla closed 1 month ago

ShevchenkoAlla commented 1 month ago

Hello, I am trying to solve this issue but not sure what to do. After I have updated my Ubuntu I cant use fastqc

I tried /Downloads/FastQC-0.12.0$ fastqc Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: uk/ac/babraham/FastQC/FastQCApplication has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:757) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:419) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:352) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:621)

java -version openjdk version "1.8.0_412" OpenJDK Runtime Environment (Zulu 8.78.0.19-CA-linux64) (build 1.8.0_412-b08) OpenJDK 64-Bit Server VM (Zulu 8.78.0.19-CA-linux64) (build 25.412-b08, mixed mode)

I am not a programmer, so I can't understand what to do. Please, I would appreciate any help Thank you

s-andrews commented 1 month ago

That's really strange. You are getting an error saying that your FastQC is using class version 53, which needs at least java 9 to read it, and you have java 8 so that's why it's not working.

However I've just checked and the current release of FastQC is compiled with class version 49 so should work with anything down to java 1.5:

$ file FastQCApplication.class
FastQCApplication.class: compiled Java class data, version 49.0 (Java 1.5)

This means that either you (or someone else) has recompiled the FastQC source using a newer compiler, and without enabling older class versions, or I think we might have had one release where we accidentally used a newer class version, but then fixed it, so you could fix this by just updating to the latest version.

Where did you get your version of FastQC? Are you able to update to the current release?

ShevchenkoAlla commented 1 month ago

I think I got it on the official website I tried to update, but still got the same error

s-andrews commented 1 month ago

The version on the website looks OK to me:

$ wget https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.12.1.zip
--2024-09-17 16:23:49--  https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.12.1.zip
Resolving www.bioinformatics.babraham.ac.uk (www.bioinformatics.babraham.ac.uk)... 149.155.133.4
Connecting to www.bioinformatics.babraham.ac.uk (www.bioinformatics.babraham.ac.uk)|149.155.133.4|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11709692 (11M) [application/zip]
Saving to: ‘fastqc_v0.12.1.zip’

fastqc_v0.12.1.zip                             100%[======================>]  11.17M  --.-KB/s    in 0.1s

2024-09-17 16:23:50 (106 MB/s) - ‘fastqc_v0.12.1.zip’ saved [11709692/11709692]

[andrewss@capstone Temp]$ unzip fastqc_v0.12.1.zip
...
  inflating: FastQC/uk/ac/babraham/FastQC/FastQCApplication.class
...

$ file FastQC/uk/ac/babraham/FastQC/FastQCApplication.class
FastQC/uk/ac/babraham/FastQC/FastQCApplication.class: compiled Java class data, version 49.0 (Java 1.5)

The download file definitely contains a binary compatible with everything from java 1.5 upwards.

Are you sure you don't have another copy of fastqc sitting around somewhere? What do you get if you run:

which fastqc

ShevchenkoAlla commented 1 month ago

I got /usr/bin/fastqc

s-andrews commented 1 month ago

That's very unlikely to be the version you've downloaded. /usr/bin is only used for OS packaged software. I know there are some linux distributions which build their own version and that looks like one of those.

Can you try calling the version you downloaded directly rather than relying on the path. Something like:

/home/ShevchenkoAlla/FastQC/fastqc

..and see if that works (obviously put in the path you actually downloaded it to).

ShevchenkoAlla commented 1 month ago

This /home/alla/fastqc/FastQC/fastqc

really worked:) Thank you so much) I am sorry to disturbing you

s-andrews commented 1 month ago

Great! Glad you got it working.