首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在shell脚本中运行Picard (生物信息学)工具时摆脱Java异常错误?

如何在shell脚本中运行Picard (生物信息学)工具时摆脱Java异常错误?
EN

Stack Overflow用户
提问于 2016-04-07 21:31:44
回答 2查看 1.1K关注 0票数 1

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

这是可行的

代码语言:javascript
复制
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

但这不是

代码语言:javascript
复制
#!/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"

错误

代码语言:javascript
复制
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.

怎么做呢?我遗漏了什么?是不是跟类路径有关?

EN

回答 2

Stack Overflow用户

发布于 2016-10-27 03:45:17

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

代码语言:javascript
复制
export JAVA_HOME=/home/vdas/tools/jdk1.8.0_77
export PATH=$JAVA_HOME/bin:$PATH

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

票数 2
EN

Stack Overflow用户

发布于 2016-04-07 21:38:49

检查您正在使用的java的版本和安装,并将JAVA_HOME变量设置为您的java8安装。

我建议你在脚本中这样启动你的java程序:

代码语言:javascript
复制
#!/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

c=$(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"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36477754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档