Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-1173

IGB slows down when viewing Oxford Nanopore Long reads

    Details

    • Sprint:
      Fall 2017

      Description

      This issue is related to HELP-275 from the User Support Project.
      The user gets errors when viewing Oxford Nanopore Long or Pacbio reads.

      From user:

      I was wondering if you had any experience trying to view long read RNA alignments from Oxford Nanopore or Pacbio in IGB. I have some ON DRS data that I've aligned with gmap. The bam alignments looks good from the aligner. When I load it in IGB everything slows to a crawl. Ona really small window with only one-or-two genes in it its 10s seconds to load and seconds to do anything else. With a large region it becomes unusable.

      I think the issue is related to parsing and understanding the long complex cigar strings for the long reads (they are error prone and indel heavy). If I have the console open when I load them I get lots of instances of 'String index out of range' like this:

      java.lang.StringIndexOutOfBoundsException: String index out of range: 143
      at java.lang.String.substring(String.java:1963)
      at com.affymetrix.genometry.symmetry.impl.BAMSym.interpretCigar(BAMSym.java:489)
      at com.affymetrix.genometry.symmetry.impl.BAMSym.getBaseQuality(BAMSym.java:440)
      at com.affymetrix.genometry.symmetry.impl.BAMSym.access$100(BAMSym.java:27)
      at com.affymetrix.genometry.symmetry.impl.BAMSym$BamChildSingletonSeqSym.getBaseQuality(BAMSym.java:166)
      at com.affymetrix.genometry.symmetry.impl.BAMSym$BamChildSingletonSeqSym.getAverageQuality(BAMSym.java:177)
      at com.affymetrix.genometry.symmetry.impl.BAMSym$BamChildSingletonSeqSym.cloneProperties(BAMSym.java:222)
      at com.affymetrix.igb.tiers.TierLabelManager.determineProps(TierLabelManager.java:738)
      at com.affymetrix.igb.view.SeqMapView.determineProps(SeqMapView.java:2236)
      at com.affymetrix.igb.property.PropertyView.getPropertiesRow(PropertyView.java:234)
      at com.affymetrix.igb.view.SeqMapView.setToolTip(SeqMapView.java:2087)
      at com.affymetrix.igb.view.SeqMapView.setToolTip(SeqMapView.java:2045)
      at com.affymetrix.igb.view.SeqMapViewMouseListener.oldToolTip(SeqMapViewMouseListener.java:210)
      at com.affymetrix.igb.view.SeqMapViewMouseListener.mouseMoved(SeqMapViewMouseListener.java:192)
      at com.affymetrix.genoviz.widget.NeoWidget.heardMouseEvent(NeoWidget.java:1339)
      at com.affymetrix.genoviz.widget.NeoMap.heardMouseEvent(NeoMap.java:1589)
      at com.affymetrix.genoviz.widget.NeoAbstractWidget.mouseMoved(NeoAbstractWidget.java:827)
      at com.affymetrix.genoviz.bioviews.View.heardMouseEvent(View.java:978)
      at com.affymetrix.genoviz.bioviews.View.mouseMoved(View.java:887)
      at java.awt.AWTEventMulticaster.mouseMoved(AWTEventMulticaster.java:329)
      at java.awt.AWTEventMulticaster.mouseMoved(AWTEventMulticaster.java:329)
      at java.awt.Component.processMouseMotionEvent(Component.java:6580)
      at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3342)
      at java.awt.Component.processEvent(Component.java:6304)
      at java.awt.Container.processEvent(Container.java:2236)
      at java.awt.Component.dispatchEventImpl(Component.java:4891)
      at java.awt.Container.dispatchEventImpl(Container.java:2294)
      at java.awt.Component.dispatchEvent(Component.java:4713)
      at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
      at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4538)
      at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
      at java.awt.Container.dispatchEventImpl(Container.java:2280)
      at java.awt.Window.dispatchEventImpl(Window.java:2750)
      at java.awt.Component.dispatchEvent(Component.java:4713)
      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:76)
      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
      at java.awt.EventQueue$4.run(EventQueue.java:731)
      at java.awt.EventQueue$4.run(EventQueue.java:729)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
      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)

      Any ideas what the problem is? I can probably send you the bam file to take a look at tomorrow if that'd help....

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                mason Mason Meyer (Inactive)
                Reporter:
                mason Mason Meyer (Inactive)
              • Votes:
                0 Vote for this issue
                Watchers:
                Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: