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

Investigate error with mapping restriction enzymes over whole chromosome

    Details

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

      Description

      Situation: There is a bug that prevents restriction sites from being mapped when the view in IGB is zoomed all of the way out. This may be due to an off by one error.

      Task: Fix the bug so that a user can map all restriction enzyme sites for a chromosome.

      To reproduce the issue:

      1. Select the A_thaliana_Jun_2009 genome
      2. Do not change the view or zoom in
      3. Select the Restriction Sites tab (on the right side)
      4. Select BamHI
      5. Click Map Sites
      6. Residues should load automatically and then an error window should appear stating "Residues for seq not available, search aborted."
      7. Navigate to Chr1:1-30,427,671
      8. Select BamHI
      9. Click Map Sites
      10. This should work and the sites should be mapped, no errors should appear.

        Attachments

          Issue Links

            Activity

            Hide
            nfreese Nowlan Freese added a comment - - edited

            See RestrictionControlView.java

                            if (vseq == null || !vseq.isAvailable(span)) {
                                ErrorHandler.errorPanel(BUNDLE.getString("notAvail"));
                                return;
                            }
            
            Show
            nfreese Nowlan Freese added a comment - - edited See RestrictionControlView.java if (vseq == null || !vseq.isAvailable(span)) { ErrorHandler.errorPanel(BUNDLE.getString( "notAvail" )); return ; }
            Hide
            kgopu Kaushik Gopu added a comment - - edited

            Restriction Enzymes Functioning

            • The way Restriction Enzymes function is: If you choose any of the enzymes listed on the Restriction Sites panel and click on the Map Sites button, IGB will load the entire chromosome data, regardless of the range the user has specified in the search panel. The enzymes will then be mapped over the chromosome range specified by the user.

            What happens after loading the entire chromosome

            • A check is performed on whether chromosome data is available for the user-given range. Because restriction enzymes already load the whole data before this check, this condition does not fail. However, the only time the condition fails is for the whole chromosome range.
            • This case can be named as an overlapping case.
              Whole sequence: Chr1:0-30,427,671
              User Input: Chr1:0-30,427,671
              Both are strictly overlapped.
            • The availability check logic goes through several set operations such as union, intersection, xor, and inverse.
            • In the intersection part, there is a check for strict overlapping. Because our situation falls under this case, we are getting Residues for seq not available, search aborted.
            • To know the reason behind this problem requires a deeper understanding of these set operations logic. Moreover, this logic is used in many places of IGB, and I can say this is one of the core checks (to check residues available for the given range) used by most of the plugins and other modules. Therefore, modifying the logic for the sake of this issue would create a problem in other ways.

            Summary:
            I cannot conclude this is a bug because the IGB developers wrote a logic to avoid this case specifically. For now, I would like to move this ticket to the backlog, and If time permits, I may pick this up again in future.

            Show
            kgopu Kaushik Gopu added a comment - - edited Restriction Enzymes Functioning The way Restriction Enzymes function is: If you choose any of the enzymes listed on the Restriction Sites panel and click on the Map Sites button, IGB will load the entire chromosome data, regardless of the range the user has specified in the search panel. The enzymes will then be mapped over the chromosome range specified by the user. What happens after loading the entire chromosome A check is performed on whether chromosome data is available for the user-given range. Because restriction enzymes already load the whole data before this check, this condition does not fail. However, the only time the condition fails is for the whole chromosome range. This case can be named as an overlapping case. Whole sequence: Chr1:0-30,427,671 User Input: Chr1:0-30,427,671 Both are strictly overlapped. The availability check logic goes through several set operations such as union, intersection, xor, and inverse. In the intersection part, there is a check for strict overlapping. Because our situation falls under this case, we are getting Residues for seq not available, search aborted. To know the reason behind this problem requires a deeper understanding of these set operations logic. Moreover, this logic is used in many places of IGB, and I can say this is one of the core checks (to check residues available for the given range) used by most of the plugins and other modules. Therefore, modifying the logic for the sake of this issue would create a problem in other ways. Summary: I cannot conclude this is a bug because the IGB developers wrote a logic to avoid this case specifically. For now, I would like to move this ticket to the backlog, and If time permits, I may pick this up again in future.
            Hide
            nfreese Nowlan Freese added a comment -

            Investigation complete, closing ticket as it does not seem reasonable to move forward with a change to this set of code.

            Show
            nfreese Nowlan Freese added a comment - Investigation complete, closing ticket as it does not seem reasonable to move forward with a change to this set of code.

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: