gpt4 book ai didi

java - 如何在 shell 脚本中运行 Picard(生物信息学)工具时消除 Java 异常错误?

转载 作者:行者123 更新时间:2023-11-30 02:58:46 28 4
gpt4 key购买 nike

我安装了生物信息学工具Picard 2.20在我的 HPC 集群中对我的基因组对齐文件运行一些指标。 Picard 2.20 需要 JDK 1.8,而我们的集群有 1.6,所以我安装了 JDK 1.8在我的集群主目录中,并为 PATH 设置环境变量和LD_LIBRARY使其正常工作。我检查了 jdk_1.8 和 Picard 是否已正确安装,因为它们在调用必要的命令时显示了自定义帮助页面。事实上,当我在输入文件的目录中运行它时,它们运行正常,但是如果我想通过 shell 脚本和 qsub 运行它,则会出现 java 错误。

这有效

java -Xmx2g -jar /home/vdas/tools/picard-tools-2.2.0/picard.jar AddOrReplaceReadGroups I=Aligned.out.sam O=rg_added_sorted.bam SO=coordinate RGID=S_13_O1_122_S12919 RGLB=PairedEnd RGPL=Illumina RGPU=C7MC6ACXX RGSM=S_13_O1_122_S12919

但这并不

#!/bin/sh
#
#$ -N picard_run
#$ -cwd
#$ -e err_picard_run.log
#$ -o out_picard_run.log
#$ -S /bin/sh
#$ -M abc.def@xyz.com
#$ -m bea
#$ -l h_vmem=40G

samfile=/data/GT/OvaCa_project/RNA-Seq/STAR_run/2pass
#cd $samfile

java -Xmx2g -jar /home/vdas/tools/picard-tools-2.2.0/picard.jar AddOrReplaceReadGroups I=$samfile/Aligned.out.sam O=$samfile/rg_added_sorted.bam SO=coordinate RGID=S_13_O1_122_S12919 RGLB=PairedEnd RGPL=Illumina RGPU=C7MC6ACXX RGSM=S_13_O1_122_S12919

echo "done"

错误

Exception in thread "main" java.lang.UnsupportedClassVersionError: picard/cmdline/PicardCommandLine : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: picard.cmdline.PicardCommandLine. Program will exit.
Exception in thread "main" java.lang.UnsupportedClassVersionError: picard/cmdline/PicardCommandLine : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: picard.cmdline.PicardCommandLine. Program will exit.

如何进行操作?我缺少什么?是类路径的东西吗?

最佳答案

关键是在 .bashrc 或 SGE qsub shell 脚本中的 $PATH 之前设置 $JAVA_HOME/bin,如下所示:

export JAVA_HOME=/home/vdas/tools/jdk1.8.0_77
export PATH=$JAVA_HOME/bin:$PATH

这将首先执行正确的版本jdk1.8.0_77

关于java - 如何在 shell 脚本中运行 Picard(生物信息学)工具时消除 Java 异常错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36477754/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com