Bonjour, j'essaie de faire tourner SnpEff, mais j'obtiens cette erreur
module load snpeff
sbatch -J Annot_BG -o logs/Anno_BG.out -e logs/Annot_BG.err --mem=8G \
--wrap="snpEff eff -c snpeff.config -dataDir . FelCatus -s snpeff_res.html \
intersect/BoGoss.vcf > intersect/BoGoss.annot.vcf"
J'obtiens cette erreur
Error: Error while processing VCF entry (line 8423559) :
E2 571240 . G A 1095.64 PASS AC=1;AF=0.5;AN=2;BaseQRankSum=-0.784;DP=46;ExcessHet=3.0103;FS=1.292;MLEAC=1;MLEAF=0.5;MQ=60;MQRankSum=0;QD=24.35;ReadPosRankSum=-0.113;SOR=0.863 GT:AD:DP:GQ:PL 0/1:13,32:45:99:1103,0,395
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Merci
Bonjour Chloé,
C'est une erreur assez courante avec Java.
Il faut augmenter les valeurs par défaut le mémoire utilisé par la machine virtuelle Java (JVM).
Plus d'info ici par exemple: java - What are the -Xms and -Xmx parameters when starting JVM? - Stack Overflow
Par défaut, la "JVM" pour snpEff est lancé avec les options -Xms512m
et -Xmx1g
Je vous propose d'essayer à nouveau avec l'option -Xmx8g
.
Ce qui donnerait:
module load snpeff
sbatch -J Annot_BG -o logs/Anno_BG.out -e logs/Annot_BG.err --mem=8G \
--wrap="snpEff -Xmx8g eff -c snpeff.config -dataDir . FelCatus \
-s snpeff_res.html intersect/BoGoss.vcf > intersect/BoGoss.annot.vcf"
Pour info, snpEff est lancé habituellement via java -jar snpEff.jar
.
Pour modifier le paramètre mémoire de java, on lancerait alors java -Xmx8g -jar snpEff.jar
.
Un wrapper existe sur le cluster (installé par conda) permettant d'utilsier la commande snpEff
directement.
Ce wrapper convertit alors la commande snpEff
en java -jar snpEff.jar
.
La commande permmet aussi d'ajouter les options de mémoire java. Il suffit alors de spécifier snpEff -Xmx8g
.
1 « J'aime »
J'ai une nouvelle erreur Java pour une autre commande
module load snpsift/4.3.1t
sbatch -J sift2_BoGoss -o logs/sift2_BoGoss.out -e logs/sift2_BoGoss.err --mem=8G --wrap=" \
cat intersect/BoGoss.annot.coding.nosyn.vcf | SnpSift filter -Xmx8G \
\"ANN[*].EFFECT = 'missense_variant' & isHet( GEN[2] ) & isVariant( GEN[2] ) \
& isRef( GEN[0] ) & isRef( GEN[1] ) \" \
> variants_interet/BoGoss.annot.coding.nosyn.filtered.vcf"
Qui me donne
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 1
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.util.Objects.checkIndex(Objects.java:372)
at java.base/java.util.ArrayList.get(ArrayList.java:459)
at org.snpeff.vcf.VcfEntry.getVcfGenotype(VcfEntry.java:768)
at org.snpsift.lang.function.FunctionBoolGenotype.evalGenotype(FunctionBoolGenotype.java:30)
at org.snpsift.lang.function.IsHet.eval(IsHet.java:21)
at org.snpsift.lang.expression.And.eval(And.java:26)
at org.snpsift.lang.expression.And.eval(And.java:19)
at org.snpsift.lang.expression.And.eval(And.java:19)
at org.snpsift.lang.expression.And.eval(And.java:19)
at org.snpsift.SnpSiftCmdFilter.evaluate(SnpSiftCmdFilter.java:142)
at org.snpsift.SnpSiftCmdFilter.annotate(SnpSiftCmdFilter.java:91)
at org.snpsift.SnpSiftCmdFilter.run(SnpSiftCmdFilter.java:355)
at org.snpsift.SnpSiftCmdFilter.run(SnpSiftCmdFilter.java:331)
at org.snpsift.SnpSift.run(SnpSift.java:588)
at org.snpsift.SnpSift.main(SnpSift.java:76)
L'erreur Index 2 out of bounds for length 1
semble pointer une erreur dans le tableau, l'index "2" n'existant pas (par exemple dans GEN[2]
) ?