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

            ann.loraine Ann Loraine created issue -
            ann.loraine Ann Loraine made changes -
            Field Original Value New Value
            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.

            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.


            ann.loraine Ann Loraine made changes -
            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.


            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.





            ann.loraine Ann Loraine made changes -
            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.





            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





            ann.loraine Ann Loraine made changes -
            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





            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.





            ann.loraine Ann Loraine made changes -
            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.





            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.





            ann.loraine Ann Loraine made changes -
            Epic Link IGBF-3142 [ 21688 ]
            ann.loraine Ann Loraine made changes -
            Sprint Spring 3 [ 187 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            nfreese Nowlan Freese made changes -
            Attachment test.igb [ 18199 ]
            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.
            pkulzer Paige Kulzer made changes -
            Assignee Paige Kulzer [ pkulzer ]
            pkulzer Paige Kulzer made changes -
            Status To-Do [ 10305 ] In Progress [ 3 ]
            pkulzer Paige Kulzer made changes -
            Attachment StressTest.igb [ 18200 ]
            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.
            pkulzer Paige Kulzer made changes -
            Link This issue is blocked by IGBF-3597 [ IGBF-3597 ]
            nfreese Nowlan Freese made changes -
            Comment [ I tested the StressTest.igb script on Windows and saw the same error. ]
            pkulzer Paige Kulzer made changes -
            Status In Progress [ 3 ] To-Do [ 10305 ]
            ann.loraine Ann Loraine made changes -
            Sprint Spring 3 [ 187 ] Spring 3, Spring 4 [ 187, 188 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            pkulzer Paige Kulzer made changes -
            Attachment StressTest_Expanded.igb [ 18239 ]
            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.
            pkulzer Paige Kulzer made changes -
            Status To-Do [ 10305 ] In Progress [ 3 ]
            pkulzer Paige Kulzer made changes -
            Attachment A_thaliana_Jun_2009_Chr1.bam.bai [ 18257 ]
            Attachment A_thaliana_Jun_2009_Chr1.bam [ 18258 ]
            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.
            pkulzer Paige Kulzer made changes -
            Status In Progress [ 3 ] Needs 1st Level Review [ 10005 ]
            pkulzer Paige Kulzer made changes -
            Assignee Paige Kulzer [ pkulzer ]
            ann.loraine Ann Loraine made changes -
            Status Needs 1st Level Review [ 10005 ] First Level Review in Progress [ 10301 ]
            ann.loraine Ann Loraine made changes -
            Status First Level Review in Progress [ 10301 ] Ready for Pull Request [ 10304 ]
            ann.loraine Ann Loraine made changes -
            Assignee Ann Loraine [ aloraine ]
            pkulzer Paige Kulzer made changes -
            Link This issue relates to IGBF-3628 [ IGBF-3628 ]
            ann.loraine Ann Loraine made changes -
            Sprint Spring 3, Spring 4 [ 187, 188 ] Spring 3, Spring 4, Spring 5 [ 187, 188, 189 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            ann.loraine Ann Loraine made changes -
            Status Ready for Pull Request [ 10304 ] Pull Request Submitted [ 10101 ]
            ann.loraine Ann Loraine made changes -
            Status Pull Request Submitted [ 10101 ] Reviewing Pull Request [ 10303 ]
            ann.loraine Ann Loraine made changes -
            Status Reviewing Pull Request [ 10303 ] Merged Needs Testing [ 10002 ]
            ann.loraine Ann Loraine made changes -
            Assignee Ann Loraine [ aloraine ]
            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.
            ann.loraine Ann Loraine made changes -
            Status Merged Needs Testing [ 10002 ] Post-merge Testing In Progress [ 10003 ]
            ann.loraine Ann Loraine made changes -
            Resolution Done [ 10000 ]
            Status Post-merge Testing In Progress [ 10003 ] Closed [ 6 ]
            ann.loraine Ann Loraine made changes -
            Assignee Paige Kulzer [ pkulzer ]

              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: