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

Investigate glyphs representing introns in older versions of IGB

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Story Points:
      2
    • Sprint:
      Spring 5 2021 May 17 - May 28, Spring 6 2021 May 31 - June 11, Summer 1 2021 Jun 14 - Jun 25, Summer 2 2021 Jun 28 - Jul 9, Summer 3 2021 Jul 12 - Jul 23, Summer 4 2021 Aug 2 - Aug 13, Fall 1 2021 Aug 16 - Aug 27, Fall 2 2021 Aug 30 - Sep10

      Description

      Situation: Currently, in IGB, the introns are represented by a line glyph connecting exons with multiple arrows showing the direction of the read, making it look like barbed wire.

      Task: Create a glyph with a single arrow in the center, as shown in the image attached. Also, create the modified PointedGlyph as shown at the right end of the image (TAIR10 mRNA)

      Develop a prototype using GenoViz SDK.

        Attachments

        1. adaptive-direction-pointer-igb-6.7.3.png
          adaptive-direction-pointer-igb-6.7.3.png
          157 kB
        2. ArrowHeadGlyph.jpg
          ArrowHeadGlyph.jpg
          64 kB
        3. ArrowHeadGlyph Zoomed In.jpg
          ArrowHeadGlyph Zoomed In.jpg
          54 kB
        4. ArrowHeadGlyph Zoomed Out.jpg
          ArrowHeadGlyph Zoomed Out.jpg
          105 kB
        5. barbed-wire-pointer-igb-9.1.8.png
          barbed-wire-pointer-igb-9.1.8.png
          147 kB
        6. Bed File Zoomed In.jpg
          Bed File Zoomed In.jpg
          120 kB
        7. Bed File Zoomed In 2.jpg
          Bed File Zoomed In 2.jpg
          99 kB
        8. Bed File Zoomed Out.jpg
          Bed File Zoomed Out.jpg
          197 kB
        9. BothOrientationMap.jpg
          BothOrientationMap.jpg
          74 kB
        10. BothOrientationMap2.jpg
          BothOrientationMap2.jpg
          99 kB
        11. Current EfficientLabelledLineGlyph.jpg
          Current EfficientLabelledLineGlyph.jpg
          90 kB
        12. Gene Model Progress v1.jpg
          Gene Model Progress v1.jpg
          91 kB
        13. IGB Current representation.jpg
          IGB Current representation.jpg
          17 kB
        14. TAIR10 mRNA.jpg
          TAIR10 mRNA.jpg
          61 kB

          Issue Links

            Activity

            Hide
            karthik Karthik Raveendran added a comment - - edited

            Karthik Raveendran Genoviz SDK Repo

            Show
            karthik Karthik Raveendran added a comment - - edited Karthik Raveendran Genoviz SDK Repo
            Hide
            karthik Karthik Raveendran added a comment - - edited

            ArrowGlyph was modified to create a LinkedArrowGlyph and the VerticalMapDemo tutorial was modified to showcase the linked-arrow glyph in both orientations. The screenshot of the modified VerticalMapDemo, BothOrientationMap, is shown in the attached image. In the second image, BothOrientationMap2, the map is zoomed.

            Show
            karthik Karthik Raveendran added a comment - - edited ArrowGlyph was modified to create a LinkedArrowGlyph and the VerticalMapDemo tutorial was modified to showcase the linked-arrow glyph in both orientations. The screenshot of the modified VerticalMapDemo, BothOrientationMap, is shown in the attached image. In the second image, BothOrientationMap2, the map is zoomed.
            Hide
            karthik Karthik Raveendran added a comment -

            Potentially helpful issues that could help find the old genoviz code with single arrow:
            DB-117: Change barb wire to single arrow (Very promising but not much to go on from this ProtAnnot Jira story)
            BUG-199: gene models should be shown with strand set to "arrow"
            BUG-120: Arrow on wrong end of bed feature - TopHat bed
            IGBC-934: restore arrows to connector lines for "arrow" strand option
            IGBC-946: don't show arrow marks when gene models are compressed

            Bitbucket commit for r13969-r13973 by hiralv that may lead to single arrow intron genoviz sdk code.

            Show
            karthik Karthik Raveendran added a comment - Potentially helpful issues that could help find the old genoviz code with single arrow: DB-117 : Change barb wire to single arrow (Very promising but not much to go on from this ProtAnnot Jira story) BUG-199 : gene models should be shown with strand set to "arrow" BUG-120 : Arrow on wrong end of bed feature - TopHat bed IGBC-934 : restore arrows to connector lines for "arrow" strand option IGBC-946 : don't show arrow marks when gene models are compressed Bitbucket commit for r13969-r13973 by hiralv that may lead to single arrow intron genoviz sdk code.
            Hide
            karthik Karthik Raveendran added a comment - - edited

            The attached image Gene Model Progress v1 shows the current progress in the model. In the image, 3 glyphs are used - LinkedArrowGlyph, SequenceGlyph, and PointedGlyph. The widths and lengths of the glyphs are hardcoded for now.
            Work left to do:
            a) Fix gaps between glyphs
            b) Width of arrowhead in LinkedArrowGlyph relative to SequenceGlyph
            c) Adjust the width of PointedGlyph
            d) Read bed file and create gene models dynamically

            Show
            karthik Karthik Raveendran added a comment - - edited The attached image Gene Model Progress v1 shows the current progress in the model. In the image, 3 glyphs are used - LinkedArrowGlyph, SequenceGlyph, and PointedGlyph. The widths and lengths of the glyphs are hardcoded for now. Work left to do: a) Fix gaps between glyphs b) Width of arrowhead in LinkedArrowGlyph relative to SequenceGlyph c) Adjust the width of PointedGlyph d) Read bed file and create gene models dynamically
            Hide
            karthik Karthik Raveendran added a comment -

            Please see attached images: Bed File Zoomed Out, Bed File Zoomed In, Bed File Zoomed In 2
            A new demo, BedSequenceDemo, has been added to the genoviz-sdk to read and render bed files. The demo window (shown in the images) is the gene model rendition of the first 1000 '+' strand entries of Araport11.bed. For now, it is simply a combination of SequenceGlyph and LinkedArrowGlyph.
            Issues yet to be resolved:

            a) The height of the arrowhead is not relative to SeqeunceGlyph
            b) Gaps between the two types of glyphs
            c) Understand PointedGlyph logic

            Issue "a" will be remedied immediately. Issue "b" and "c" need to be discussed. Issue "c" is regarding the logic of adding PointedGlyphs at the ends of the gene model as shown in 'Gene Model Progress v1' using an entry in the bed file.

            Repository Commit: IGBF-2865

            Show
            karthik Karthik Raveendran added a comment - Please see attached images: Bed File Zoomed Out, Bed File Zoomed In, Bed File Zoomed In 2 A new demo, BedSequenceDemo, has been added to the genoviz-sdk to read and render bed files. The demo window (shown in the images) is the gene model rendition of the first 1000 '+' strand entries of Araport11.bed. For now, it is simply a combination of SequenceGlyph and LinkedArrowGlyph. Issues yet to be resolved: a) The height of the arrowhead is not relative to SeqeunceGlyph b) Gaps between the two types of glyphs c) Understand PointedGlyph logic Issue "a" will be remedied immediately. Issue "b" and "c" need to be discussed. Issue "c" is regarding the logic of adding PointedGlyphs at the ends of the gene model as shown in 'Gene Model Progress v1' using an entry in the bed file. Repository Commit: IGBF-2865
            Hide
            ann.loraine Ann Loraine added a comment -

            Note added during scrum July 1: Karthik replied to the above comment in the code base itself. Please see that comment.

            Show
            ann.loraine Ann Loraine added a comment - Note added during scrum July 1: Karthik replied to the above comment in the code base itself. Please see that comment.
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            Looking for code change that switch introns to using "barbed wire" visualization instead of adaptive, single-arrow visualization:

            Looking at https://www.bioviz.org/news.html shows a timeline of IGB releases and new features.

            From January 28, 2013:

            "IGB 7.0.1 released: Better-looking, more informative gene models : Gene models now have optional intron arrow marks to show strand, and when you load the genomic sequence and zoom in, protein translations appear."

            This suggests that the old-style single arrow was replaced with the release of 7.0.

            IGBF 6.7.1 shows adaptive, single-arrow, direction indicator: https://wiki.transvar.org/display/igbman/IGB+6.7.1+running+in+iPlant+Atmosphere

            Show
            ann.loraine Ann Loraine added a comment - - edited Looking for code change that switch introns to using "barbed wire" visualization instead of adaptive, single-arrow visualization: Paper published in 2015 shows gene models with "barbed wire" introns - see figures in https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4419537/ Paper published in 2014 shows gene models with "barbed wire" introns - see figures in https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4070736/ Paper published in 2013 shows gene models with old-style, single ">" character in the middle of introns. Note it only appears in introns that are long enough. See figures in https://pubmed.ncbi.nlm.nih.gov/23590974/ Looking at https://www.bioviz.org/news.html shows a timeline of IGB releases and new features. From January 28, 2013: "IGB 7.0.1 released: Better-looking, more informative gene models : Gene models now have optional intron arrow marks to show strand, and when you load the genomic sequence and zoom in, protein translations appear." This suggests that the old-style single arrow was replaced with the release of 7.0. IGBF 6.7.1 shows adaptive, single-arrow, direction indicator: https://wiki.transvar.org/display/igbman/IGB+6.7.1+running+in+iPlant+Atmosphere
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            Searching commit messages using the Bitbucket interface.

            Searched "arrow" and found the following relevant commits:

            The above commit modified "EfficientLabelledLineGlyph.java"; appears to have used BasicStroke and precise drawing and mitering to produce a very precise and clean look.

            Show
            ann.loraine Ann Loraine added a comment - - edited Searching commit messages using the Bitbucket interface. Searched "arrow" and found the following relevant commits: https://bitbucket.org/lorainelab/integrated-genome-browser/commits/e133df13ff921e7f593623187d4b05e67ebe18e4 "Added the ability to draw little arrows indicating whether this is foreward or backward strand." https://bitbucket.org/lorainelab/integrated-genome-browser/commits/1261ab4d64fc4c74f82e2dbb674073b97bf44da9 "Added the ability to draw little arrows indicating whether this is foreward or backward strand." The above commit modified "EfficientLabelledLineGlyph.java"; appears to have used BasicStroke and precise drawing and mitering to produce a very precise and clean look.
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            Visited the Sourceforge site and downloaded the last IGB 6 version. Would not run due to OSGi wiring error.
            Checking source code for newest IGB 6:
            https://bitbucket.org/lorainelab/integrated-genome-browser/src/igb_6_7/

            Appears to need Java 6.

            Show
            ann.loraine Ann Loraine added a comment - - edited Visited the Sourceforge site and downloaded the last IGB 6 version. Would not run due to OSGi wiring error. Checking source code for newest IGB 6: https://bitbucket.org/lorainelab/integrated-genome-browser/src/igb_6_7/ Appears to need Java 6.
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            Attached file "adaptive-direction-pointer-igb-6.7.3.png" showing genome version A_thaliana_Jun_2009 data set titled Araport11 region Chr1:8,498,442-8,513,634 with black background, white foreground, unlimited stack height, in IGB 6.7.3 and Java 6.

            To reproduce:

            /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/java -jar -Xmx4000MB igb_exe.jar
            

            If you can't get the program to run, try removing .igb directory and de-activating all data sources.

            Show
            ann.loraine Ann Loraine added a comment - - edited Attached file "adaptive-direction-pointer-igb-6.7.3.png" showing genome version A_thaliana_Jun_2009 data set titled Araport11 region Chr1:8,498,442-8,513,634 with black background, white foreground, unlimited stack height, in IGB 6.7.3 and Java 6. To reproduce: Download and unpack "igb.zip" from folder IGB 6.7.3 from https://sourceforge.net/projects/genoviz/files/ Install Java 6. Run with the following command or equivalent for your platform: /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/java -jar -Xmx4000MB igb_exe.jar If you can't get the program to run, try removing .igb directory and de-activating all data sources.
            Hide
            ann.loraine Ann Loraine added a comment -

            Attached file "barbed-wire-pointer-igb-9.1.8.png" showing genome version A_thaliana_Jun_2009 data set titled Araport11 region Chr1:8,498,442-8,513,634 with black background, white foreground, unlimited stack height, in IGB 9.1.8 and Java 8.

            To reproduce:

            • Visit the above region in 9.1.8 after downloading and installing the software from bioviz.org
            Show
            ann.loraine Ann Loraine added a comment - Attached file "barbed-wire-pointer-igb-9.1.8.png" showing genome version A_thaliana_Jun_2009 data set titled Araport11 region Chr1:8,498,442-8,513,634 with black background, white foreground, unlimited stack height, in IGB 9.1.8 and Java 8. To reproduce: Visit the above region in 9.1.8 after downloading and installing the software from bioviz.org
            Hide
            karthik Karthik Raveendran added a comment -

            Attempted to reproduce and installed Java 6 which cleared up the OSGI wiring issue. Removed .igb directory and uninstalled IGB.
            Despite that while trying to run IGB 6.7.3 I ran into an error and was not able to resolve it:
            ERROR: Bundle com.affymetrix.igb.IGB [24] EventDispatcher: Error during dispatch. (java.lang.IllegalArgumentException: No enum const class com.affymetrix.genometryImpl.util.LoadUtils$ServerType.Quickload).

            Show
            karthik Karthik Raveendran added a comment - Attempted to reproduce and installed Java 6 which cleared up the OSGI wiring issue. Removed .igb directory and uninstalled IGB. Despite that while trying to run IGB 6.7.3 I ran into an error and was not able to resolve it: ERROR: Bundle com.affymetrix.igb.IGB [24] EventDispatcher: Error during dispatch. (java.lang.IllegalArgumentException: No enum const class com.affymetrix.genometryImpl.util.LoadUtils$ServerType.Quickload).
            Hide
            karthik Karthik Raveendran added a comment - - edited

            EfficientLabelledLineGlyph class in the current genoviz-sdk repo draws a line glyph as shown in attached image "Current EfficientLabelledLineGlyph" so I created LinkedArrowGlyph (a modification on ArrowGlyph). The older version of the class implements LabelledGlyph, which is no longer available in genoviz-sdk. No issues regarding LabelledGlyph was found in Jira.

            Show
            karthik Karthik Raveendran added a comment - - edited EfficientLabelledLineGlyph class in the current genoviz-sdk repo draws a line glyph as shown in attached image "Current EfficientLabelledLineGlyph" so I created LinkedArrowGlyph (a modification on ArrowGlyph). The older version of the class implements LabelledGlyph, which is no longer available in genoviz-sdk. No issues regarding LabelledGlyph was found in Jira.
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            To run IBG 6.7.3, try this:

            • Run IGB 9.1.8 and reset your preferences to defaults; quit and remove .igb directory
            • Search Jira for instructions on how to delete your IGB preferences from outside IGB (also google search if you can't find the instructions for that) Note: It may be the case that IGB 6.7.3 is not using system preferences at all; so this may not be a helpful thing to try
            • De-activate all the data sources; If you can get IGB 6.7.3 to run, try this.
            • Also, double-check that you are really running it with java 6
            java -version
            
            Show
            ann.loraine Ann Loraine added a comment - - edited To run IBG 6.7.3, try this: Run IGB 9.1.8 and reset your preferences to defaults; quit and remove .igb directory Search Jira for instructions on how to delete your IGB preferences from outside IGB (also google search if you can't find the instructions for that) Note: It may be the case that IGB 6.7.3 is not using system preferences at all; so this may not be a helpful thing to try De-activate all the data sources; If you can get IGB 6.7.3 to run, try this. Also, double-check that you are really running it with java 6 java -version
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            Next step:

            Please identify the following:

            • Implementation class that draws gene models with a adaptive arrow in the intron part
            • Implementation class parent classes and/or interfaces (what the class inherited from)
            • Location of the classes in the code base file system (where are in the tree)
            • Last branch where you can find it (so that we easily view the class code in bitbucket)
            • Last commit for the above

            Goal: We need to find the code that implemented the "look" we want to try.

            Show
            ann.loraine Ann Loraine added a comment - - edited Next step: Please identify the following: Implementation class that draws gene models with a adaptive arrow in the intron part Implementation class parent classes and/or interfaces (what the class inherited from) Location of the classes in the code base file system (where are in the tree) Last branch where you can find it (so that we easily view the class code in bitbucket) Last commit for the above Goal: We need to find the code that implemented the "look" we want to try.
            Hide
            karthik Karthik Raveendran added a comment -

            Setting the preferences to default and deactivating all the data sources using IGB 9.1.8 worked and I was able to run IGB 6.7.3.

            Show
            karthik Karthik Raveendran added a comment - Setting the preferences to default and deactivating all the data sources using IGB 9.1.8 worked and I was able to run IGB 6.7.3.
            Hide
            karthik Karthik Raveendran added a comment - - edited

            Implementation class that draws gene models with a adaptive arrow in the intron part

            • Up until igb_6_7, the adaptive arrow is implemented in ArrowHeadGlyph

            Implementation class parent classes and/or interfaces (what the class inherited from)

            • ArrowHeadGlyph extends DirectedGlyph

            Location of the classes in the code base file system (where are in the tree)

            • Path: integrated-genome-browser/igb/src/com/affymetrix/igb/glyph

            Last branch where you can find it (so that we easily view the class code in bitbucket)

            Last commit for the above

            • Last commit involving the class: 4e1e1d9 "move all SeqSymmetry classes to package com.affymetrix.genometry.symmetry"
            • Last commit with changes on the class: c2b9cd2 "Reverting back to previous behavior. Do not allow to select intron."

            Screenshots of the ArrowHeadGlyph implemented in BedSequenceDemo is attached above. ArrowHeadGlyph is possibly used with EfficientLabelledLineGlyph for the intron structure

            Show
            karthik Karthik Raveendran added a comment - - edited Implementation class that draws gene models with a adaptive arrow in the intron part Up until igb_6_7, the adaptive arrow is implemented in ArrowHeadGlyph Implementation class parent classes and/or interfaces (what the class inherited from) ArrowHeadGlyph extends DirectedGlyph Location of the classes in the code base file system (where are in the tree) Path: integrated-genome-browser/igb/src/com/affymetrix/igb/glyph Last branch where you can find it (so that we easily view the class code in bitbucket) The last branch ArrowHeadGlyph class is available on is igb_6_7 Link to the code Last commit for the above Last commit involving the class: 4e1e1d9 "move all SeqSymmetry classes to package com.affymetrix.genometry.symmetry" Last commit with changes on the class: c2b9cd2 "Reverting back to previous behavior. Do not allow to select intron." Screenshots of the ArrowHeadGlyph implemented in BedSequenceDemo is attached above. ArrowHeadGlyph is possibly used with EfficientLabelledLineGlyph for the intron structure
            Hide
            ann.loraine Ann Loraine added a comment - - edited

            Question for Karthik Raveendran:

            • Which method of which file implements the arrow shown within the intron part of the gene model?

            (After you answer this last question, I will close the ticket. Thank you for your work on this!)

            Show
            ann.loraine Ann Loraine added a comment - - edited Question for Karthik Raveendran : Which method of which file implements the arrow shown within the intron part of the gene model? (After you answer this last question, I will close the ticket. Thank you for your work on this!)
            Hide
            ann.loraine Ann Loraine added a comment -

            Question answered in IGBF-2900. Moving to Done.

            Show
            ann.loraine Ann Loraine added a comment - Question answered in IGBF-2900 . Moving to Done.

              People

              • Assignee:
                karthik Karthik Raveendran
                Reporter:
                karthik Karthik Raveendran
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: