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

Investigate: Is IGB running in JDK21 faster than IGB running in JDK8 ?

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      Goal: Determine if IGB can run faster and better in JDK21 versus JDK8?

      Ideas for stress-testing IGB:

      • Users have noticed that when several genome graphs are loaded across an entire chromosome, scrolling and zooming gets a bit laggy. This is due to the large number of computations that have to happen to display a large amount of data during navigation. This could be a way to investigate improvements in speed.
      • Another way to answer this question would be to investigate how memory management may have improved - or not - with the release of JDK21. When a user loads data into IGB, IGB displays in the bottom right corner information about how much memory IGB is using. It's possible that we are now able to load more data into IGB thanks to improvements in Java. For example, you could load the same data into IGB 10 and IGB 9 and observe whether the number reporting memory usage is different, or not.

      Other thoughts on this:

      • Possibility to write a testing script and time IGB
      • NF: comments that we need this to be repeatable.
      • AL: to start, create a narrative describing what you would do to investigate. Fore example, you could use the RNA-Seq coverage graphs from human genome, using the MEOX1 scenario as starting point. See: https://www.slideshare.net/AnnLoraine/use-integrated-genome-browser-to-explore-analyze-and-publish-genomic-data. Example: Load a scaled coverage graph for each data set for chromosome 1 of the human genome and then observe if IGB responsiveness changes as you pan and zoom through the data. An example task that a user might actually want to do with data like this would be to search visually for differentially expressed genes across the chromosome (or genome). Once all the genome graphs (coverage graphs) are scaled the same, places where peaks are noticeably different in height represent differentially expressed genes. Note that the dogma about differential expression analysis is that you need statistical inference methods to detect DE genes. But probably this is not entirely true for genes that are VERY differentially expressed (e.g., > 2x) in part because genes with BIG differences in expression are probably the most important biologically.
      • Question: Should we investigate this on every platform? AL's opinion: check to see if there are BIG differences between the platforms.

        Attachments

        1. A_thaliana_Jun_2009_Chr1.bam
          143 kB
        2. A_thaliana_Jun_2009_Chr1.bam.bai
          0.1 kB
        3. StressTest_Expanded.igb
          5 kB
        4. StressTest.igb
          5 kB
        5. test.igb
          0.1 kB

          Issue Links

            Activity

            Hide
            nfreese Nowlan Freese added a comment - - edited

            IGB scripting does appear to be working in IGB 10.0.0 (see attached script test.igb).

            To test, start IGB 10.0.0 then drag and drop the test.igb script into IGB, or go to Tools > Scripts > Run Script... and select the test.igb script.

            User's Guide on IGB scripting: https://wiki.bioviz.org/confluence/display/igbman/Scripting+and+the+IGB+command+language

            It could be worth trying to create a script so that the test for loading data would be highly repeatable. However, be aware of using sleep commands:

            IGB is multi-threaded, which means that the user may be able to operate IGB while data are being loaded. If your IGB script includes loading data from remote sites (e.g, RNASeq data from the IGBQuickLoad.org site) then you should include a sleep command to give IGB time to load the data.

            Show
            nfreese Nowlan Freese added a comment - - edited IGB scripting does appear to be working in IGB 10.0.0 (see attached script test.igb). To test, start IGB 10.0.0 then drag and drop the test.igb script into IGB, or go to Tools > Scripts > Run Script... and select the test.igb script. User's Guide on IGB scripting: https://wiki.bioviz.org/confluence/display/igbman/Scripting+and+the+IGB+command+language It could be worth trying to create a script so that the test for loading data would be highly repeatable. However, be aware of using sleep commands: IGB is multi-threaded, which means that the user may be able to operate IGB while data are being loaded. If your IGB script includes loading data from remote sites (e.g, RNASeq data from the IGBQuickLoad.org site) then you should include a sleep command to give IGB time to load the data.
            Hide
            pkulzer Paige Kulzer added a comment -

            I created a script that can be used for testing/comparing speeds between the current version of IGB and the upcoming release. That script is called "StressTest.igb" and can be found as an attachment above.

            In brief, this script does the following:

            • Opens the human genome.
            • Adds all of the RNA-Seq scaled coverage graphs (20 total) to the IGB Data Management Table.
            • Loads data.
            • Zooms into an interesting gene on the chromosome, then zooms out slightly to see the whole region at which gene expression differs around that gene.
            • Hides several tracks that don't look very useful for comparing.
            • Loads sequence data.
            • Removes several datasets from IGB.

            The Log in IGB records the time at which the script starts running and the point at which it ends, so that can be used to measure the speed at which IGB is running in a consistent, reproducible way. And IGB's memory usage can be found in the bottom right hand corner of IGB after the script runs.

            Show
            pkulzer Paige Kulzer added a comment - I created a script that can be used for testing/comparing speeds between the current version of IGB and the upcoming release. That script is called "StressTest.igb" and can be found as an attachment above. In brief, this script does the following: Opens the human genome. Adds all of the RNA-Seq scaled coverage graphs (20 total) to the IGB Data Management Table. Loads data. Zooms into an interesting gene on the chromosome, then zooms out slightly to see the whole region at which gene expression differs around that gene. Hides several tracks that don't look very useful for comparing. Loads sequence data. Removes several datasets from IGB. The Log in IGB records the time at which the script starts running and the point at which it ends, so that can be used to measure the speed at which IGB is running in a consistent, reproducible way. And IGB's memory usage can be found in the bottom right hand corner of IGB after the script runs.
            Hide
            pkulzer Paige Kulzer added a comment -

            I've created a new script that can be used to test loading both local and remote data, as well some other commands not covered in StressTest.igb such as snapshots. This new script is called StressTest_Expanded.igb and can be found in the attachments section above.

            Show
            pkulzer Paige Kulzer added a comment - I've created a new script that can be used to test loading both local and remote data, as well some other commands not covered in StressTest.igb such as snapshots. This new script is called StressTest_Expanded.igb and can be found in the attachments section above.
            Hide
            pkulzer Paige Kulzer added a comment - - edited

            The results of stress testing are as follows:

            Windows i5:

            IGB Version Time Elapsed (min:sec)
            9.1.X
            10.0.0 1:68

            MacBook Pro M1:

            IGB Version Time Elapsed (min:sec)
            9.1.4 1:70
            10.0.0 1:66

            MacBook Pro i9:

            IGB Version Time Elapsed (min:sec)
            9.1.10 1:27
            10.0.0 1:25

            The new release of IGB was faster than its older version, but not by much.

            Show
            pkulzer Paige Kulzer added a comment - - edited The results of stress testing are as follows: Windows i5: IGB Version Time Elapsed (min:sec) 9.1.X — 10.0.0 1:68 MacBook Pro M1: IGB Version Time Elapsed (min:sec) 9.1.4 1:70 10.0.0 1:66 MacBook Pro i9: IGB Version Time Elapsed (min:sec) 9.1.10 1:27 10.0.0 1:25 The new release of IGB was faster than its older version, but not by much.
            Hide
            ann.loraine Ann Loraine added a comment -

            Conclusion is that IGB version 10 is faster at running the scripts.

            Show
            ann.loraine Ann Loraine added a comment - Conclusion is that IGB version 10 is faster at running the scripts.

              People

              • Assignee:
                pkulzer Paige Kulzer
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: