stevekm/IGV-snapshot-automator

Snapshot on Pacbio hifi reads bam file

wenluo711 opened this issue · 3 comments

Dear author of IGV-snapshot-automator,

I'm trying to use pacbio long reads mapped bam file to generate IGV snapshot. It's doing ok with the raw reads aligned bam file. But generating exceptions on ccs reads aligned bam file with following messages:

ERROR [2021-08-30 12:03:43,561] [DefaultExceptionHandler.java:49] [AWT-EventQueue-0] Unhandled exception
java.lang.NullPointerException
at org.broad.igv.sam.AlignmentPacker.getGroupValue(AlignmentPacker.java:419)
at org.broad.igv.sam.AlignmentPacker.packAlignments(AlignmentPacker.java:88)
at org.broad.igv.sam.AlignmentInterval.packAlignments(AlignmentInterval.java:170)
at org.broad.igv.sam.AlignmentDataManager.packAlignments(AlignmentDataManager.java:282)
at org.broad.igv.sam.AlignmentDataManager.load(AlignmentDataManager.java:341)
at org.broad.igv.sam.CoverageTrack.load(CoverageTrack.java:184)
at org.broad.igv.ui.panel.DataPanel.lambda$load$3(DataPanel.java:225)
at org.broad.igv.ui.panel.DataPanel.load(DataPanel.java:229)
at org.broad.igv.ui.panel.DataPanel.paintComponent(DataPanel.java:156)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at org.broad.igv.ui.panel.DataPanelContainer.paintChildren(DataPanelContainer.java:149)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JViewport.paint(JViewport.java:728)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5217)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:306)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent.paint(JComponent.java:1042)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:79)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:116)
at java.awt.Container.paint(Container.java:1978)
at java.awt.Window.paint(Window.java:3906)
at javax.swing.RepaintManager$4.run(RepaintManager.java:842)
at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
INFO [2021-08-30 12:03:46,091] [CommandExecutor.java:235] [pool-2-thread-2] OK
INFO [2021-08-30 12:04:01,946] [BatchRunner.java:72] [pool-2-thread-2] Executing Command: exit

Any idea of where goes wrong with the hifi(ccs) reads mapping file? The raw reads bam and hifi reads bam looks very close to each other except a couple of unique bam tag fields.

Thanks for helping!
Wen

Hi, I am not the author of this package, but am the developer of IGV, so I will jump in here and make some suggestions. First, judging from the stack trace, this doesn't look like the latest version of IGV. So the first thing I would try is updating IGV to 2.11.0. If the problem persists, you can open an issue at httsp://github.com/igvteam/igv/issues. I will need an example BAM file that reproduces the issue to investigate.

Hi @jrobinso ,
Thanks for the suggestion! I tried again using java12 instead of java1.8, IGV 2.10 from 2.4 and solved the issue.
One thing confusing is that my previous old version works fine with pacbia raw reads aligned bam file but not ccs reads bam.
Anyway, the issue is fixed and I'll close it.
Thanks for the help!

Wen

thanks again for the help @jrobinso