Error Pilon (polishing)

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 :slight_smile:
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