diff --git a/modules/seq/base/tests/test_seq.py b/modules/seq/base/tests/test_seq.py
index db027f6d05eb6c483b905cae3e0c15f9184ea305..c427c7155d00085b88d32a47cbe9ddbc7364ef50 100644
--- a/modules/seq/base/tests/test_seq.py
+++ b/modules/seq/base/tests/test_seq.py
@@ -19,6 +19,10 @@ class TestSeq(unittest.TestCase):
     self.seq_e=seq.CreateSequence('4','AMRLDG----ITGSA')
     self.seq_e.AttachView(self.protein.Select('aname==CA'))
     self.seq_e.SetSequenceOffset(1)
+    self.seq_f=seq.CreateSequence('5','MRLDGKTA-ITGSAR')
+    self.seq_f.AttachView(self.protein.Select('aname==CA'))
+    self.seq_g=seq.CreateSequence('6','MRLDGKTALITG---')
+    self.seq_g.AttachView(self.protein.Select('aname==CA'))
     
   def testViewsFromSequencesGapFrontSeqB(self):
     #~ MRLDGKTALITGSAR
@@ -27,44 +31,105 @@ class TestSeq(unittest.TestCase):
                                  self.seq_b,
                                  self.seq_a.GetAttachedView(),
                                  self.seq_b.GetAttachedView())
+    self.assertEqual(a.atoms[0].GetResidue().GetOneLetterCode(),'D');
+    self.assertEqual(b.atoms[0].GetResidue().GetOneLetterCode(),'D');
 
+  def testViewsFromSequencesGapFrontSeqA(self):
+    #~ ---DGKTALITGSAR
+    #~ MRLDGKTALITGSAR
+    [a,b]=seq.ViewsFromSequences(self.seq_b,
+                                 self.seq_a,
+                                 self.seq_b.GetAttachedView(),
+                                 self.seq_a.GetAttachedView())
+    for i,j in zip(a.atoms,b.atoms): print i,j
+    self.assertEqual(a.atoms[0].GetResidue().GetOneLetterCode(),'D');
+    self.assertEqual(b.atoms[0].GetResidue().GetOneLetterCode(),'D');
 
-    assert(a.atoms[0].GetResidue().GetOneLetterCode()=='D');
-    assert(b.atoms[0].GetResidue().GetOneLetterCode()=='D');
-                  #~ self.seq_b.GetResidue(j.GetResidue().GetIndex()).GetOneLetterCode());
-  
-  def testViewsFromSequencesGapMiddleBoth(self):
-    #~ MRLDG---LITGSAR
-    #~ MRLDG----ITGSAR
-    [a,b]=seq.ViewsFromSequences(self.seq_c,
-                                 self.seq_d,
-                                 self.seq_c.GetAttachedView(),
-                                 self.seq_d.GetAttachedView())
-
-    print 'aaa'+a.atoms[4].name+'aaaa'
-    assert(a.atoms[0].GetResidue().GetOneLetterCode()=='M');
-    assert(b.atoms[0].GetResidue().GetOneLetterCode()=='M');
-    assert(a.atoms[4].GetResidue().GetOneLetterCode()=='I');
-    assert(b.atoms[4].GetResidue().GetOneLetterCode()=='I');
-                  #~ self.seq_b.GetResidue(j.GetResidue().GetIndex()).GetOneLetterCode());
-                  
-  def testViewsFromSequencesGapSeqOffset(self):
+
+  def testViewsFromSequencesGapRearSeqB(self):
     #~ MRLDGKTALITGSAR
-    #~ AMRLDG----ITGSA
+    #~ ---DGKTALITGSAR
     [a,b]=seq.ViewsFromSequences(self.seq_a,
-                                 self.seq_e,
+                                 self.seq_b,
                                  self.seq_a.GetAttachedView(),
-                                 self.seq_e.GetAttachedView())
+                                 self.seq_b.GetAttachedView())
+
+    self.assertEqual(a.atoms[0].GetResidue().GetOneLetterCode(),'D');
+    self.assertEqual(b.atoms[0].GetResidue().GetOneLetterCode(),'D');
+
+  def testViewsFromSequencesGapRearSeqA(self):
+    #~ ---DGKTALITGSAR
+    #~ MRLDGKTALITGSAR
+    [a,b]=seq.ViewsFromSequences(self.seq_b,
+                                 self.seq_a,
+                                 self.seq_b.GetAttachedView(),
+                                 self.seq_a.GetAttachedView())
+    #~ for i,j in zip(a.atoms,b.atoms): print i,j
+    self.assertEqual(a.atoms[0].GetResidue().GetOneLetterCode(),'D');
+    self.assertEqual(b.atoms[0].GetResidue().GetOneLetterCode(),'D');
 
 
-    assert(a.atoms[0].GetResidue().GetOneLetterCode()=='M');
-    assert(b.atoms[0].GetResidue().GetOneLetterCode()=='M');
-    assert(a.atoms[5].GetResidue().GetOneLetterCode()=='I');
-    assert(b.atoms[5].GetResidue().GetOneLetterCode()=='I');
+
+  def testViewsFromSequencesSingleGapMiddle1(self):
+    #~ MRLDGKTALITGSAR
+    #~ MRLDGKTA-ITGSAR
+    [a,b]=seq.ViewsFromSequences(self.seq_a,
+                                 self.seq_f,
+                                 self.seq_a.GetAttachedView(),
+                                 self.seq_f.GetAttachedView())
+    self.assertEqual(a.atoms[0].GetResidue().GetOneLetterCode(),'M');
+    self.assertEqual(b.atoms[0].GetResidue().GetOneLetterCode(),'M');
+    self.assertEqual(a.atoms[8].GetResidue().GetOneLetterCode(),'I');
+    self.assertEqual(b.atoms[8].GetResidue().GetOneLetterCode(),'I');
+
+  def testViewsFromSequencesSingleGapMiddle2(self):
+    #~ MRLDGKTA-ITGSAR
+    #~ MRLDGKTALITGSAR
+    [a,b]=seq.ViewsFromSequences(self.seq_f,
+                                 self.seq_a,
+                                 self.seq_f.GetAttachedView(),
+                                 self.seq_a.GetAttachedView())
+
+    self.assertEqual(a.atoms[0].GetResidue().GetOneLetterCode(),'M');
+    self.assertEqual(b.atoms[0].GetResidue().GetOneLetterCode(),'M');
+    self.assertEqual(a.atoms[8].GetResidue().GetOneLetterCode(),'I');
+    self.assertEqual(b.atoms[8].GetResidue().GetOneLetterCode(),'I');
+  #def testViewsFromSequencesGapMiddleBoth(self):
+    ##~ MRLDG---LITGSAR
+    ##~ MRLDG----ITGSAR
+    #[a,b]=seq.ViewsFromSequences(self.seq_c,
+                                 #self.seq_d,
+                                 #self.seq_c.GetAttachedView(),
+                                 #self.seq_d.GetAttachedView())
+
+    #print 'aaa'+a.atoms[4].name+'aaaa'
+    #assertEqual(a.atoms[0].GetResidue().GetOneLetterCode()=='M');
+    #assertEqual(b.atoms[0].GetResidue().GetOneLetterCode()=='M');
+    #assertEqual(a.atoms[4].GetResidue().GetOneLetterCode()=='I');
+    #assertEqual(b.atoms[4].GetResidue().GetOneLetterCode()=='I');
                   #~ self.seq_b.GetResidue(j.GetResidue().GetIndex()).GetOneLetterCode());
+                  
+  #def testViewsFromSequencesGapSeqOffset(self):
+    ##~ MRLDGKTALITGSAR
+    ##~ AMRLDG----ITGSA
+    #[a,b]=seq.ViewsFromSequences(self.seq_a,
+                                 #self.seq_e,
+                                 #self.seq_a.GetAttachedView(),
+                                 #self.seq_e.GetAttachedView())
+
+
+    #assertEqual(a.atoms[0].GetResidue().GetOneLetterCode()=='M');
+    #assertEqual(b.atoms[0].GetResidue().GetOneLetterCode()=='M');
+    #assertEqual(a.atoms[5].GetResidue().GetOneLetterCode()=='I');
+    #assertEqual(b.atoms[5].GetResidue().GetOneLetterCode()=='I');
+                  ##~ self.seq_b.GetResidue(j.GetResidue().GetIndex()).GetOneLetterCode());
  
 
 
 if __name__ == "__main__":
   # test if python extension for seq module work
-  unittest.main()
+  suite = unittest.TestLoader().loadTestsFromTestCase(TestSeq)
+  unittest.TextTestRunner(verbosity=2).run(suite)
+
+  #~ unittest.main()
+
diff --git a/modules/seq/base/tests/testfiles/testprotein.pdb b/modules/seq/base/tests/testfiles/testprotein.pdb
new file mode 100644
index 0000000000000000000000000000000000000000..75351f1a994074f4d913ccc1e4b0003297f5e433
--- /dev/null
+++ b/modules/seq/base/tests/testfiles/testprotein.pdb
@@ -0,0 +1,109 @@
+ATOM      1  N   MET A   1      21.609  35.384  56.705  1.00 41.48           N  
+ATOM      2  CA  MET A   1      20.601  35.494  57.793  1.00 41.58           C  
+ATOM      3  C   MET A   1      19.654  34.300  57.789  1.00 39.51           C  
+ATOM      4  O   MET A   1      18.447  34.456  57.595  1.00 38.98           O  
+ATOM      5  CB  MET A   1      19.789  36.783  57.639  1.00 45.90           C  
+ATOM      6  CG  MET A   1      20.629  38.055  57.606  1.00 51.18           C  
+ATOM      7  SD  MET A   1      21.638  38.325  59.084  1.00 55.83           S  
+ATOM      8  CE  MET A   1      23.233  37.697  58.529  1.00 54.59           C  
+ATOM      9  N   ARG A   2      20.202  33.112  58.011  1.00 36.39           N  
+ATOM     10  CA  ARG A   2      19.396  31.903  58.033  1.00 34.35           C  
+ATOM     11  C   ARG A   2      18.608  31.739  59.328  1.00 34.20           C  
+ATOM     12  O   ARG A   2      17.651  30.965  59.381  1.00 32.64           O  
+ATOM     13  CB  ARG A   2      20.284  30.681  57.801  1.00 33.48           C  
+ATOM     14  CG  ARG A   2      20.665  30.488  56.342  1.00 31.69           C  
+ATOM     15  CD  ARG A   2      21.557  29.281  56.154  1.00 29.91           C  
+ATOM     16  NE  ARG A   2      22.931  29.557  56.551  1.00 28.95           N  
+ATOM     17  CZ  ARG A   2      23.901  28.653  56.528  1.00 30.21           C  
+ATOM     18  NH1 ARG A   2      23.640  27.417  56.130  1.00 32.54           N  
+ATOM     19  NH2 ARG A   2      25.132  28.980  56.893  1.00 29.14           N  
+ATOM     20  N   LEU A   3      19.003  32.473  60.366  1.00 35.07           N  
+ATOM     21  CA  LEU A   3      18.330  32.402  61.664  1.00 34.70           C  
+ATOM     22  C   LEU A   3      17.884  33.787  62.117  1.00 35.41           C  
+ATOM     23  O   LEU A   3      17.853  34.091  63.308  1.00 35.91           O  
+ATOM     24  CB  LEU A   3      19.269  31.793  62.710  1.00 31.47           C  
+ATOM     25  CG  LEU A   3      19.695  30.340  62.501  1.00 29.10           C  
+ATOM     26  CD1 LEU A   3      20.585  29.897  63.648  1.00 26.97           C  
+ATOM     27  CD2 LEU A   3      18.461  29.459  62.420  1.00 27.95           C  
+ATOM     28  N   ASP A   4      17.517  34.614  61.149  1.00 36.70           N  
+ATOM     29  CA  ASP A   4      17.099  35.980  61.411  1.00 37.42           C  
+ATOM     30  C   ASP A   4      15.897  36.114  62.343  1.00 37.20           C  
+ATOM     31  O   ASP A   4      14.839  35.529  62.107  1.00 35.42           O  
+ATOM     32  CB  ASP A   4      16.814  36.671  60.079  1.00 40.33           C  
+ATOM     33  CG  ASP A   4      17.023  38.166  60.142  1.00 43.16           C  
+ATOM     34  OD1 ASP A   4      16.121  38.876  60.638  1.00 44.42           O  
+ATOM     35  OD2 ASP A   4      18.100  38.629  59.699  1.00 45.27           O  
+ATOM     36  N   GLY A   5      16.085  36.893  63.408  1.00 38.60           N  
+ATOM     37  CA  GLY A   5      15.027  37.141  64.378  1.00 40.00           C  
+ATOM     38  C   GLY A   5      14.640  35.963  65.253  1.00 40.53           C  
+ATOM     39  O   GLY A   5      13.475  35.828  65.645  1.00 40.48           O  
+ATOM     40  N   LYS A   6      15.612  35.110  65.565  1.00 39.87           N  
+ATOM     41  CA  LYS A   6      15.354  33.938  66.391  1.00 38.75           C  
+ATOM     42  C   LYS A   6      16.248  33.899  67.615  1.00 37.16           C  
+ATOM     43  O   LYS A   6      17.363  34.427  67.602  1.00 36.93           O  
+ATOM     44  CB  LYS A   6      15.548  32.665  65.571  1.00 39.36           C  
+ATOM     45  CG  LYS A   6      14.498  32.476  64.504  1.00 40.15           C  
+ATOM     46  CD  LYS A   6      14.601  31.107  63.866  1.00 41.73           C  
+ATOM     47  CE  LYS A   6      13.463  30.880  62.879  1.00 44.93           C  
+ATOM     48  NZ  LYS A   6      12.132  31.017  63.537  1.00 44.56           N  
+ATOM     49  N   THR A   7      15.750  33.261  68.670  1.00 34.56           N  
+ATOM     50  CA  THR A   7      16.484  33.152  69.925  1.00 31.14           C  
+ATOM     51  C   THR A   7      16.945  31.728  70.188  1.00 30.82           C  
+ATOM     52  O   THR A   7      16.175  30.775  70.059  1.00 31.78           O  
+ATOM     53  CB  THR A   7      15.618  33.605  71.114  1.00 30.89           C  
+ATOM     54  OG1 THR A   7      14.409  32.837  71.147  1.00 31.28           O  
+ATOM     55  CG2 THR A   7      15.263  35.077  70.991  1.00 32.31           C  
+ATOM     56  N   ALA A   8      18.205  31.586  70.573  1.00 29.62           N  
+ATOM     57  CA  ALA A   8      18.759  30.274  70.854  1.00 29.72           C  
+ATOM     58  C   ALA A   8      19.461  30.202  72.215  1.00 30.28           C  
+ATOM     59  O   ALA A   8      20.244  31.084  72.579  1.00 30.25           O  
+ATOM     60  CB  ALA A   8      19.732  29.874  69.745  1.00 29.05           C  
+ATOM     61  N   LEU A   9      19.163  29.146  72.964  1.00 28.68           N  
+ATOM     62  CA  LEU A   9      19.784  28.923  74.261  1.00 26.72           C  
+ATOM     63  C   LEU A   9      20.780  27.790  74.007  1.00 26.04           C  
+ATOM     64  O   LEU A   9      20.390  26.713  73.554  1.00 26.45           O  
+ATOM     65  CB  LEU A   9      18.733  28.471  75.291  1.00 26.06           C  
+ATOM     66  CG  LEU A   9      19.044  28.458  76.801  1.00 25.33           C  
+ATOM     67  CD1 LEU A   9      17.929  27.731  77.537  1.00 23.24           C  
+ATOM     68  CD2 LEU A   9      20.359  27.772  77.089  1.00 25.34           C  
+ATOM     69  N   ILE A  10      22.056  28.036  74.278  1.00 23.49           N  
+ATOM     70  CA  ILE A  10      23.077  27.016  74.090  1.00 24.46           C  
+ATOM     71  C   ILE A  10      23.777  26.777  75.422  1.00 27.09           C  
+ATOM     72  O   ILE A  10      24.431  27.677  75.953  1.00 27.64           O  
+ATOM     73  CB  ILE A  10      24.124  27.460  73.057  1.00 24.13           C  
+ATOM     74  CG1 ILE A  10      23.427  27.822  71.747  1.00 22.48           C  
+ATOM     75  CG2 ILE A  10      25.153  26.351  72.842  1.00 17.46           C  
+ATOM     76  CD1 ILE A  10      24.360  28.402  70.719  1.00 24.59           C  
+ATOM     77  N   THR A  11      23.650  25.565  75.955  1.00 27.49           N  
+ATOM     78  CA  THR A  11      24.256  25.247  77.240  1.00 28.56           C  
+ATOM     79  C   THR A  11      25.740  24.948  77.123  1.00 29.62           C  
+ATOM     80  O   THR A  11      26.186  24.359  76.138  1.00 32.36           O  
+ATOM     81  CB  THR A  11      23.551  24.043  77.899  1.00 27.97           C  
+ATOM     82  OG1 THR A  11      23.883  22.839  77.199  1.00 27.93           O  
+ATOM     83  CG2 THR A  11      22.050  24.235  77.863  1.00 27.09           C  
+ATOM     84  N   GLY A  12      26.499  25.356  78.137  1.00 29.33           N  
+ATOM     85  CA  GLY A  12      27.934  25.121  78.150  1.00 29.86           C  
+ATOM     86  C   GLY A  12      28.634  25.744  76.963  1.00 31.12           C  
+ATOM     87  O   GLY A  12      29.570  25.170  76.407  1.00 32.13           O  
+ATOM     88  N   SER A  13      28.186  26.939  76.592  1.00 32.78           N  
+ATOM     89  CA  SER A  13      28.721  27.662  75.443  1.00 33.66           C  
+ATOM     90  C   SER A  13      29.757  28.737  75.764  1.00 35.28           C  
+ATOM     91  O   SER A  13      30.039  29.600  74.933  1.00 36.10           O  
+ATOM     92  CB  SER A  13      27.561  28.292  74.674  1.00 32.16           C  
+ATOM     93  OG  SER A  13      26.712  29.012  75.550  1.00 31.20           O  
+ATOM     94  N   ALA A  14      30.323  28.696  76.963  1.00 36.42           N  
+ATOM     95  CA  ALA A  14      31.320  29.688  77.335  1.00 36.95           C  
+ATOM     96  C   ALA A  14      32.594  29.418  76.550  1.00 37.21           C  
+ATOM     97  O   ALA A  14      33.338  30.338  76.218  1.00 36.96           O  
+ATOM     98  CB  ALA A  14      31.600  29.621  78.834  1.00 36.61           C  
+ATOM     99  N   ARG A  15      32.833  28.146  76.249  1.00 37.46           N  
+ATOM    100  CA  ARG A  15      34.025  27.749  75.511  1.00 38.19           C  
+ATOM    101  C   ARG A  15      33.755  26.585  74.573  1.00 36.88           C  
+ATOM    102  O   ARG A  15      32.648  26.040  74.533  1.00 36.88           O  
+ATOM    103  CB  ARG A  15      35.136  27.342  76.484  1.00 40.06           C  
+ATOM    104  CG  ARG A  15      35.555  28.438  77.445  1.00 43.70           C  
+ATOM    105  CD  ARG A  15      36.475  27.902  78.531  1.00 44.19           C  
+ATOM    106  NE  ARG A  15      36.657  28.880  79.598  0.00 44.00           N  
+ATOM    107  CZ  ARG A  15      37.270  28.625  80.748  0.00 44.01           C  
+ATOM    108  NH1 ARG A  15      37.389  29.576  81.664  0.00 43.97           N  
+ATOM    109  NH2 ARG A  15      37.761  27.416  80.985  0.00 43.97           N