code: def coord_to_col( self, pos ):
          
          start,end = self.get_forward_strand_start(),self.get_forward_strand_end()
          if pos < start or pos > end:
              raise ValueError("Range error: %d not in %d-%d" % ( pos, start, end ))
          if not self.index:
              self.index = list()
              if (self.strand == '-'):
                  # nota bene: for - strand self.index[x] maps to one column
                  # higher than is actually associated with the position;  thus
                  # when slice_by_component() and slice_by_coord() flip the ends,
                  # the resulting slice is correct
                  for x in range( len(self.text)-1,-1,-1 ):
                      if not self.text[x] == '-':
                          self.index.append( x + 1 )
                  self.index.append( 0 )
              else:
                  for x in range( len(self.text) ):
                      if not self.text[x] == '-':
                          self.index.append(x)
                  self.index.append( len(self.text) )
          x = None
          try:
              x = self.index[ pos - start ]
          except:
              raise Exception("Error in index.")
          return x
docs: Return the alignment column index corresponding to coordinate pos.
  
          pos is relative to the + strand, regardless of the component's strand.