Bonjour,
J essaye d utiliser Pilon mais je recois une erreur, est ce que qqun a eu le meme probleme (et une solution) ?
(Commande via sbatch : pilon --genome $assembly --unpaired minimap_reads/"$assembly"_MQ60_sorted.bam --outdir minimap_reads --changes
)
La commande commence correctement mais s arrete au bout d une minute (in bold):
Pilon version 1.23 Mon Nov 26 16:04:05 2018 -0500
Genome: contig_11369.fa
Fixing snps, indels, gaps, local
Input genome size: 4282649
Scanning BAMs
minimap_reads/contig_11369.fa_MQ60_sorted.bam: 1701030 reads, 0 filtered, 1701030 mapped, 0 proper, 0 stray, Unpaired 100% 5889+/-7284, max 27741 unpaired
Processing contig_11369:1-4282649
**Exception in thread** "main" java.lang.OutOfMemoryError: Java heap space
at org.broadinstitute.pilon.PileUpRegion.$anonfun$new$1(PileUpRegion.scala:30)
at org.broadinstitute.pilon.PileUpRegion$$Lambda$62/0x00000001001b5040.apply$mcVI$sp(Unknown Source)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:155)
at org.broadinstitute.pilon.PileUpRegion.<init>(PileUpRegion.scala:30)
at org.broadinstitute.pilon.GenomeRegion.initializePileUps(GenomeRegion.scala:148)
at org.broadinstitute.pilon.GenomeFile.$anonfun$processRegions$4(GenomeFile.scala:111)
at org.broadinstitute.pilon.GenomeFile.$anonfun$processRegions$4$adapted(GenomeFile.scala:109)
at org.broadinstitute.pilon.GenomeFile$$Lambda$61/0x00000001001b6040.apply(Unknown Source)
at scala.collection.Iterator.foreach(Iterator.scala:937)
at scala.collection.Iterator.foreach$(Iterator.scala:937)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
at scala.collection.parallel.ParIterableLike$Foreach.leaf(ParIterableLike.scala:970)
at scala.collection.parallel.Task.$anonfun$tryLeaf$1(Tasks.scala:49)
at scala.collection.parallel.Task$$Lambda$45/0x00000001001a8440.apply$mcV$sp(Unknown Source)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at scala.util.control.Breaks$$anon$1.catchBreak(Breaks.scala:63)
at scala.collection.parallel.Task.tryLeaf(Tasks.scala:52)
at scala.collection.parallel.Task.tryLeaf$(Tasks.scala:46)
at scala.collection.parallel.ParIterableLike$Foreach.tryLeaf(ParIterableLike.scala:967)
at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute(Tasks.scala:149)
at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask.compute$(Tasks.scala:145)
at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:436)
at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Merci d avance !
Bonjour @fredchaux ,
C'est une erreur assez courante avec Java.
Il faut augmenter les valeurs par défaut de mémoire utilisée 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 pilon est lancé avec les options -Xms512m
et -Xmx1g
Je vous propose d'essayer à nouveau avec l'option -Xmx8g
(maximum memory allocation pool = 8G).
Pilon peut prendre en option les paramètres pour la JVM.
Ce qui donnerait:
module load pilon/1.23
pilon -Xmx8g --genome $assembly --unpaired minimap_reads/"$assembly"_MQ60_sorted.bam --outdir minimap_reads --changes
Pouvez-vous réessayer avec ce paramètre supplémentaire?
Bonjour,
Merci beaucoup pour la suggestion.
Ca a semble fonctionner un moment, mais ca a crashe au bout d une heure environ :
(Commande: pilon -Xmx8g --genome $assembly --unpaired minimap_reads/"$assembly"_MQ60_sorted.bam --outdir minimap_reads --changes
)
Slurm :
Pilon version 1.23 Mon Nov 26 16:04:05 2018 -0500
Genome: contig_11369.fa
Fixing snps, indels, gaps, local
Input genome size: 4282649
Scanning BAMs
minimap_reads/contig_11369.fa_MQ60_sorted.bam: 1701030 reads, 0 filtered, 1701030 mapped, 0 proper, 0 stray, Unpaired 100% 5889+/-7284, max 27741
Processing contig_11369:1-4282649
unpaired minimap_reads/contig_11369.fa_MQ60_sorted.bam: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at htsjdk.samtools.util.BlockCompressedInputStream.inflateBlock(BlockCompressedInputStream.java:548)
at htsjdk.samtools.util.BlockCompressedInputStream.processNextBlock(BlockCompressedInputStream.java:532)
at htsjdk.samtools.util.BlockCompressedInputStream.nextBlock(BlockCompressedInputStream.java:468)
at htsjdk.samtools.util.BlockCompressedInputStream.readBlock(BlockCompressedInputStream.java:458)
at htsjdk.samtools.util.BlockCompressedInputStream.available(BlockCompressedInputStream.java:196)
at htsjdk.samtools.util.BlockCompressedInputStream.read(BlockCompressedInputStream.java:331)
at java.base/java.io.DataInputStream.read(DataInputStream.java:149)
at htsjdk.samtools.util.BinaryCodec.readBytesOrFewer(BinaryCodec.java:418)
at htsjdk.samtools.util.BinaryCodec.readBytes(BinaryCodec.java:394)
at htsjdk.samtools.util.BinaryCodec.readByteBuffer(BinaryCodec.java:504)
at htsjdk.samtools.util.BinaryCodec.readInt(BinaryCodec.java:515)
at htsjdk.samtools.BAMRecordCodec.decode(BAMRecordCodec.java:187)
at htsjdk.samtools.BAMFileReader$BAMFileIterator.getNextRecord(BAMFileReader.java:829)
at htsjdk.samtools.BAMFileReader$BAMFileIndexIterator.getNextRecord(BAMFileReader.java:981)
at htsjdk.samtools.BAMFileReader$BAMFileIterator.advance(BAMFileReader.java:803)
at htsjdk.samtools.BAMFileReader$BAMFileIterator.next(BAMFileReader.java:797)
at htsjdk.samtools.BAMFileReader$BAMFileIterator.next(BAMFileReader.java:765)
at htsjdk.samtools.BAMFileReader$BAMQueryFilteringIterator.advance(BAMFileReader.java:1034)
at htsjdk.samtools.BAMFileReader$BAMQueryFilteringIterator.next(BAMFileReader.java:1024)
at htsjdk.samtools.BAMFileReader$BAMQueryFilteringIterator.next(BAMFileReader.java:988)
at htsjdk.samtools.SamReader$AssertingIterator.next(SamReader.java:576)
at htsjdk.samtools.SamReader$AssertingIterator.next(SamReader.java:548)
at scala.collection.convert.Wrappers$JIteratorWrapper.next(Wrappers.scala:40)
at scala.collection.Iterator.foreach(Iterator.scala:937)
at scala.collection.Iterator.foreach$(Iterator.scala:937)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
at org.broadinstitute.pilon.BamFile.process(BamFile.scala:125)
at org.broadinstitute.pilon.GenomeRegion.processBam(GenomeRegion.scala:292)
at org.broadinstitute.pilon.GenomeFile.$anonfun$processRegions$5(GenomeFile.scala:112)
at org.broadinstitute.pilon.GenomeFile.$anonfun$processRegions$5$adapted(GenomeFile.scala:112)
at org.broadinstitute.pilon.GenomeFile$$Lambda$72/0x00000008001cc840.apply(Unknown Source)
at scala.collection.immutable.List.foreach(List.scala:388)
Bonjour,
Essayez en augmentant de nouveau la taille de la "Java heap space
" par exemple avec -Xmx16g
(16g corresponds à 16Go RAM). Quitte à augmenter encore par la suite.
Pouvez-vous également me donner le jobid
de votre job pour que je puisse vérifier ?
Bonjour,
Concernant le pobleme de Pilon, les jobs etaient les suivants :
slurm-32279830.out
slurm-32262143.out
slurm-32256527.out
Merci de votre attention
Fred
Bonjour,
L'erreur est explicite à chaque fois:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Il faut relancer en augmentant progressivement la taille de la "Java heap space
" via le paramètre -Xmx
(-Xmx16g
, -Xmx32g
, -Xmx64g
, ...). Sans oublier de demander autant (voire plus) de mémoire dans Slurm (--mem=32G
, --mem=64G
, --mem=128G
)...
Dites-nous si cela a fonctionné
Bonjour,
J ai laisse tomber parce que je suis passe a Medaka seulement, sans Pilon, avec un output qui me convient bien. Peut etre que d autres utilisateurs pourront confiremer la commande fonctionne permet de faire tourner jusqu'au bout.
Merci pour votre attention !
Fred Chaux
Bonjour,
OK. Merci pour votre retour.
Bonne continuation