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

Update BigWig/BigBed htsjdk-igb version

    Details

    • Story Points:
      3
    • Sprint:
      Fall 3 2023 Oct 2, Fall 4 2023 Oct 16, Fall 5, Fall 6, Fall 7

      Description

      Situation: The BigWigHandler and BigBedHandler have a dependency on the artifact bigWigHandler (https://bitbucket.org/lorainelab/bigwig/src/master/). The bigWigHandler dependency has a dependency on htsjdk-igb version 2.16.2 which makes it a blocker for IGBF-3464.

      Task: Fork the bigwig repo and create a new branch with htsjdk-igb updated to a newer version (most likely >= 3). You will need to build and test the dependency locally to make sure that IGB works. See this documentation on adding local jars to local m2 repository.

        Attachments

          Issue Links

            Activity

            Hide
            ann.loraine Ann Loraine added a comment -

            Our BigWig/BigBed code currently declares a dependency on https://github.com/lorainelab/htsjdk-igb

            Show
            ann.loraine Ann Loraine added a comment - Our BigWig/BigBed code currently declares a dependency on https://github.com/lorainelab/htsjdk-igb
            Hide
            ann.loraine Ann Loraine added a comment -

            Discussed strategy for using newer htsjdk code in IGB. Made a diagram showing the strategy on a whiteboard and took a picture of it. Picture is attached for reference.

            Show
            ann.loraine Ann Loraine added a comment - Discussed strategy for using newer htsjdk code in IGB. Made a diagram showing the strategy on a whiteboard and took a picture of it. Picture is attached for reference.
            Hide
            nfreese Nowlan Freese added a comment - - edited

            I was able to get IGB to build and run using htsjdk 2.24.1. After updating the pom.xml files for htsjdk (instead of htsjdk-igb), I added the following to the pom.xml for shared-lib-wrapper:

            Under the section "Dependencies which need to be "wrapped" into OSGI bundles"

                    <dependency>
                        <groupId>com.github.samtools</groupId>
                        <artifactId>htsjdk</artifactId>
                    </dependency>

            Then within the maven-bundle-plugin <Export-Package> I added

            htsjdk.*

            There is one error with BaiFileSymLoader and BaiSymLoader for samReaderFactory.open - this may be due to a change for visualizing the bai data by itself in IGB, though I'm not sure.
            I commented out the BigBedHandler, BigWigHandler, and bai modules to get around the errors. Everything else seems to be working in IGB.

            However, at this time I recommend Kaushik continue his work on updating htsjdk-igb to use the newer version of the htsjdk.

            Show
            nfreese Nowlan Freese added a comment - - edited I was able to get IGB to build and run using htsjdk 2.24.1. After updating the pom.xml files for htsjdk (instead of htsjdk-igb), I added the following to the pom.xml for shared-lib-wrapper: Under the section "Dependencies which need to be "wrapped" into OSGI bundles" <dependency> <groupId>com.github.samtools</groupId> <artifactId>htsjdk</artifactId> </dependency> Then within the maven-bundle-plugin <Export-Package> I added htsjdk.* There is one error with BaiFileSymLoader and BaiSymLoader for samReaderFactory.open - this may be due to a change for visualizing the bai data by itself in IGB, though I'm not sure. I commented out the BigBedHandler, BigWigHandler, and bai modules to get around the errors. Everything else seems to be working in IGB. However, at this time I recommend Kaushik continue his work on updating htsjdk-igb to use the newer version of the htsjdk.
            Hide
            kgopu Kaushik Gopu added a comment - - edited
            • Forked htsjdk 3.0.0 into my GitHub and made necessary changes to use it as a OSGi bundle
            • Both IGB and BigWig are now pulling htsjdk 3.0.0 from my local maven repository
            • Ran the application and no issues were found during compile time or runtime

            My concerns:

            • Cherry-picking commits can be time-consuming and often leads to dealing with merge conflicts. As a result, I manually incorporated the changes made by the IGB developers into my repository instead of using the cherry-picking process.
            Show
            kgopu Kaushik Gopu added a comment - - edited Forked htsjdk 3.0.0 into my GitHub and made necessary changes to use it as a OSGi bundle Both IGB and BigWig are now pulling htsjdk 3.0.0 from my local maven repository Ran the application and no issues were found during compile time or runtime My concerns: Cherry-picking commits can be time-consuming and often leads to dealing with merge conflicts. As a result, I manually incorporated the changes made by the IGB developers into my repository instead of using the cherry-picking process.
            Hide
            kgopu Kaushik Gopu added a comment - - edited
            • Updated htsjdk-igb and bigwig to version 3.0.5 (previously 2.16.2) and 2.0.1 (previously 2.0.0) respectively
            • Submitted PR for the same.

            Note: This PR cannot be merged until htsjdk-3.0.5 is deployed. COMPLETED

            Show
            kgopu Kaushik Gopu added a comment - - edited Updated htsjdk-igb and bigwig to version 3.0.5 (previously 2.16.2) and 2.0.1 (previously 2.0.0) respectively Submitted PR for the same. Note: This PR cannot be merged until htsjdk-3.0.5 is deployed. COMPLETED
            Hide
            nfreese Nowlan Freese added a comment -

            Tested on Mac using strategy described in IGBF-3464. Everything is working correctly. Closing ticket.

            Show
            nfreese Nowlan Freese added a comment - Tested on Mac using strategy described in IGBF-3464 . Everything is working correctly. Closing ticket.

              People

              • Assignee:
                kgopu Kaushik Gopu
                Reporter:
                nfreese Nowlan Freese
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: