From 319794b7d2619c7956439f91f7f01922f2f7b533 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Tue, 31 May 2011 13:27:26 +0000
Subject: [PATCH] BamView checks the sequence length matches the BAM header
 (SQ) length

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@16186 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 .../artemis/components/alignment/BamView.java | 29 +++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/uk/ac/sanger/artemis/components/alignment/BamView.java b/uk/ac/sanger/artemis/components/alignment/BamView.java
index ece8054a7..0f0043735 100644
--- a/uk/ac/sanger/artemis/components/alignment/BamView.java
+++ b/uk/ac/sanger/artemis/components/alignment/BamView.java
@@ -1952,6 +1952,35 @@ public class BamView extends JPanel
       });
       bottomPanel.add(scrollBar, BorderLayout.SOUTH);
     }
+    else
+    {
+      if(!concatSequences)
+      {
+        int seqLen = seqLengths.get((String) combo.getSelectedItem());
+        int artemisSeqLen = feature_display.getSequenceLength();
+        if(seqLen != artemisSeqLen)
+        {
+          int newIndex = -1;
+          for(int i=0; i<seqNames.size(); i++)
+          {
+            if(seqLengths.get(seqNames.get(i)) == artemisSeqLen)
+            {
+              // this looks like the correct sequence
+              combo.setSelectedIndex(i);
+              newIndex = i;
+            }
+          }
+
+          JOptionPane.showMessageDialog(null, 
+              "The length of the sequence loaded does not match the length of\n"+
+              "the default reference sequence in the BAM ("+seqNames.get(0)+").\n"+
+              (newIndex == -1 ? "" : "The length does match the reference "+
+                  seqNames.get(newIndex)+" so this has been\nset as the default."), 
+                  "Check the reference is correctly selected", 
+                  JOptionPane.WARNING_MESSAGE);
+        }
+      }
+    }
 
     mainPanel.add(bottomPanel, BorderLayout.SOUTH);
     coveragePanel.setPreferredSize(new Dimension(900, 100));
-- 
GitLab