Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Blocker
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Story Points:
      4
    • Sprint:
      Fall 6 : 28 Oct to 8 Nov, Fall 7 : 11 Nov to 22 Nov, Fall 8 : 25 Nov to 6 Dec

      Description

      Situation: The current implementation uses a workaround to produce a bedgraph file from the BAI file, then reads in the bedgraph file. The BAI file should instead produce a graph sym object to display in IGB.

      Task: Implement a change so that loading the BAI file produces a graph sym object in IGB, and does not output a bedgraph file. In IGB, there are methods for producing graph sym objects from bam files in Track Operations Depth Graph, so we might be able to use the same code.

        Attachments

          Issue Links

            Activity

            Hide
            nfreese Nowlan Freese added a comment -

            Note: I'm not exactly sure how partial loading of the bai file will work.

            Show
            nfreese Nowlan Freese added a comment - Note: I'm not exactly sure how partial loading of the bai file will work.
            Hide
            nfreese Nowlan Freese added a comment -

            Added pacBio bam file for testing depth graph track operators in IGB.

            In IGB:
            Load human genome (Dec 2013)
            Load pacBio.bam file
            Navigate to chr1:0-32,856
            Click Load Data
            Right-click on the pacBio.bam track and select Track Operations > Depth Graph (All)
            This will create a graph from the bam file in IGB

            Show
            nfreese Nowlan Freese added a comment - Added pacBio bam file for testing depth graph track operators in IGB. In IGB: Load human genome (Dec 2013) Load pacBio.bam file Navigate to chr1:0-32,856 Click Load Data Right-click on the pacBio.bam track and select Track Operations > Depth Graph (All) This will create a graph from the bam file in IGB
            Hide
            aloraine Ann Loraine added a comment -

            Also bigwig handlers may be helpful.

            Show
            aloraine Ann Loraine added a comment - Also bigwig handlers may be helpful.
            Hide
            svallapu Sai Charan Reddy Vallapureddy added a comment -

            Ann Loraine
            Can i get some example bigwig files to test.

            Show
            svallapu Sai Charan Reddy Vallapureddy added a comment - Ann Loraine Can i get some example bigwig files to test.
            Hide
            aloraine Ann Loraine added a comment - - edited

            Examples available through IGB's Available Data section:

            1. Open Arabidopsis genome (click flower on home screen)
            2. Select Data Access tab
            3. Under Available Data, select RNA-Seq / Hot dry SRP220157 / Graph - Scaled

            Each file in the above folder is a "bigwig" file.

            Tip: To check the file format, select the file. Zoom and click Load Data. Once the graph is loaded, click the y-axis graphic shown on the far left of the track. Observe that the name of the file appears in the "Selection InfO" box. You can click the "i" button next to the "Selection Info" box to see more info about the file, such as max and min score, start and end, length, etc.

            Examples available via your Web browser:

            Open this URL: http://lorainelab-quickload.scidas.org/rnaseq/A_thaliana_Jun_2009/SRP220157/
            Bigwig files together with many other files from this data set are available here.
            See annots.xml for a mapping between names appearing in the IGB Available Data UI file tree and actual file names on the server.

            Please take note above: Srishti Tiwari Sai Charan Reddy Vallapureddy Nowlan Freese

            Show
            aloraine Ann Loraine added a comment - - edited Examples available through IGB's Available Data section: Open Arabidopsis genome (click flower on home screen) Select Data Access tab Under Available Data, select RNA-Seq / Hot dry SRP220157 / Graph - Scaled Each file in the above folder is a "bigwig" file. Tip: To check the file format, select the file. Zoom and click Load Data. Once the graph is loaded, click the y-axis graphic shown on the far left of the track. Observe that the name of the file appears in the "Selection InfO" box. You can click the "i" button next to the "Selection Info" box to see more info about the file, such as max and min score, start and end, length, etc. Examples available via your Web browser: Open this URL: http://lorainelab-quickload.scidas.org/rnaseq/A_thaliana_Jun_2009/SRP220157/ Bigwig files together with many other files from this data set are available here. See annots.xml for a mapping between names appearing in the IGB Available Data UI file tree and actual file names on the server. Please take note above: Srishti Tiwari Sai Charan Reddy Vallapureddy Nowlan Freese
            Hide
            svallapu Sai Charan Reddy Vallapureddy added a comment -

            Nowlan Freese
            Branch : https://bitbucket.org/svallapu/charan_igb/branch/IGBF-2101

            1. Created a temporary bedgraph file which stores in default temp folder. Deletes the temporary files on closing IGB.
            more info: https://docs.oracle.com/javase/7/docs/api/java/io/File.html#createTempFile(java.lang.String,%20java.lang.String)
            (Creating new graph sym may result in changing code in multiple places.)

            2. BAI file from URL is now supported in this branch. IGBF-2103

            Show
            svallapu Sai Charan Reddy Vallapureddy added a comment - Nowlan Freese Branch : https://bitbucket.org/svallapu/charan_igb/branch/IGBF-2101 1. Created a temporary bedgraph file which stores in default temp folder. Deletes the temporary files on closing IGB. more info: https://docs.oracle.com/javase/7/docs/api/java/io/File.html#createTempFile(java.lang.String,%20java.lang.String ) (Creating new graph sym may result in changing code in multiple places.) 2. BAI file from URL is now supported in this branch. IGBF-2103
            Hide
            nfreese Nowlan Freese added a comment -

            Can load bai file from File > Open URL..., File > Open File..., and dragging and dropping the bai file.

            Files load quickly and take little memory. Was able to load three large bai files from URL and load them across the genome.

            Recommend pull request.

            Show
            nfreese Nowlan Freese added a comment - Can load bai file from File > Open URL..., File > Open File..., and dragging and dropping the bai file. Files load quickly and take little memory. Was able to load three large bai files from URL and load them across the genome. Recommend pull request.
            Hide
            svallapu Sai Charan Reddy Vallapureddy added a comment -

            Ann LoraineNowlan Freese
            Pull request submitted.

            Show
            svallapu Sai Charan Reddy Vallapureddy added a comment - Ann Loraine Nowlan Freese Pull request submitted.
            Hide
            nfreese Nowlan Freese added a comment - - edited

            Can load bai file from File > Open URL..., File > Open File..., and dragging and dropping the bai file.

            Note: Both files are from Illumina short read sequencing of the whole genome.
            Tested using file (attached) - HG002.GRCh38.2x250.bam.bai
            Tested URL - ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/data/AshkenazimTrio/HG004_NA24143_mother/NIST_Illumina_2x250bps/novoalign_bams/HG004.GRCh38.2x250.bam.bai

            Testing on PacBio URL data results in a null pointer exception some of the time. First time I tried to load it threw a null pointer exception (below), second time it loaded it fine.
            Tested URL - ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/data/AshkenazimTrio/HG002_NA24385_son/PacBio_SequelII_CCS_11kb/HG002_GRCh38/HG002_GRCh38.haplotag.10x.bam.bai

            As the Illumina short read files are working consistently, and the pacbio somewhat consistently, I think this issue should be closed. However, it may be worth looking into the null pointer exception being thrown on the pacbio url. Note that when I downloaded the pacbio file itself and loaded it locally, it worked correctly consistently, so this may be an issue with loading the pacbio URL.

            Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
            at org.lorainelab.igb.bai.BaiToBedgraphConverter.initializeChromosomes(BaiToBedgraphConverter.java:127)
            at org.lorainelab.igb.bai.BaiToBedgraphConverter.<init>(BaiToBedgraphConverter.java:48)
            at org.lorainelab.igb.bai.BaiFileHandler.createSymLoader(BaiFileHandler.java:41)
            at com.affymetrix.genometry.util.ServerUtils.determineLoader(ServerUtils.java:31)
            at com.affymetrix.igb.view.load.GeneralLoadUtils.getDataSet(GeneralLoadUtils.java:1128)
            at com.affymetrix.igb.view.load.GeneralLoadUtils.openURI(GeneralLoadUtils.java:972)
            at com.affymetrix.igb.IgbServiceImpl.openURI(IgbServiceImpl.java:347)
            at com.affymetrix.igb.shared.OpenURIAction.openURI(OpenURIAction.java:89)
            at com.affymetrix.igb.shared.LoadURLAction.loadURL(LoadURLAction.java:127)
            at com.affymetrix.igb.shared.LoadURLAction.actionPerformed(LoadURLAction.java:60)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
            at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
            at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842)
            at com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:157)
            at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886)
            at java.awt.Component.processMouseEvent(Component.java:6539)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
            at java.awt.Component.processEvent(Component.java:6304)
            at java.awt.Container.processEvent(Container.java:2239)
            at java.awt.Component.dispatchEventImpl(Component.java:4889)
            at java.awt.Container.dispatchEventImpl(Container.java:2297)
            at java.awt.Component.dispatchEvent(Component.java:4711)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
            at java.awt.Container.dispatchEventImpl(Container.java:2283)
            at java.awt.Window.dispatchEventImpl(Window.java:2746)
            at java.awt.Component.dispatchEvent(Component.java:4711)
            at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
            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.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
            at java.awt.EventQueue$4.run(EventQueue.java:733)
            at java.awt.EventQueue$4.run(EventQueue.java:731)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
            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)

            Show
            nfreese Nowlan Freese added a comment - - edited Can load bai file from File > Open URL..., File > Open File..., and dragging and dropping the bai file. Note: Both files are from Illumina short read sequencing of the whole genome. Tested using file (attached) - HG002.GRCh38.2x250.bam.bai Tested URL - ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/data/AshkenazimTrio/HG004_NA24143_mother/NIST_Illumina_2x250bps/novoalign_bams/HG004.GRCh38.2x250.bam.bai Testing on PacBio URL data results in a null pointer exception some of the time. First time I tried to load it threw a null pointer exception (below), second time it loaded it fine. Tested URL - ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/data/AshkenazimTrio/HG002_NA24385_son/PacBio_SequelII_CCS_11kb/HG002_GRCh38/HG002_GRCh38.haplotag.10x.bam.bai As the Illumina short read files are working consistently, and the pacbio somewhat consistently, I think this issue should be closed. However, it may be worth looking into the null pointer exception being thrown on the pacbio url. Note that when I downloaded the pacbio file itself and loaded it locally, it worked correctly consistently, so this may be an issue with loading the pacbio URL. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at org.lorainelab.igb.bai.BaiToBedgraphConverter.initializeChromosomes(BaiToBedgraphConverter.java:127) at org.lorainelab.igb.bai.BaiToBedgraphConverter.<init>(BaiToBedgraphConverter.java:48) at org.lorainelab.igb.bai.BaiFileHandler.createSymLoader(BaiFileHandler.java:41) at com.affymetrix.genometry.util.ServerUtils.determineLoader(ServerUtils.java:31) at com.affymetrix.igb.view.load.GeneralLoadUtils.getDataSet(GeneralLoadUtils.java:1128) at com.affymetrix.igb.view.load.GeneralLoadUtils.openURI(GeneralLoadUtils.java:972) at com.affymetrix.igb.IgbServiceImpl.openURI(IgbServiceImpl.java:347) at com.affymetrix.igb.shared.OpenURIAction.openURI(OpenURIAction.java:89) at com.affymetrix.igb.shared.LoadURLAction.loadURL(LoadURLAction.java:127) at com.affymetrix.igb.shared.LoadURLAction.actionPerformed(LoadURLAction.java:60) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842) at com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:157) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886) at java.awt.Component.processMouseEvent(Component.java:6539) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6304) at java.awt.Container.processEvent(Container.java:2239) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2297) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476) at java.awt.Container.dispatchEventImpl(Container.java:2283) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760) 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.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84) at java.awt.EventQueue$4.run(EventQueue.java:733) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:730) 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)

              People

              • Assignee:
                svallapu Sai Charan Reddy Vallapureddy
                Reporter:
                nfreese Nowlan Freese
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: