code: def get_column_absolute(self, position,
                            miss_seqs=MissingSequenceHandler.TREAT_AS_ALL_GAPS,
                            species=None):
      
      if position < self.start or position >= self.end:
        raise ValueError("getting column at genomic locus " + self._chrom + " " +
                         str(position) + " failed; locus is outside of genome " +
                         "alignment block")
  
      rel_coord = self.sequence_to_alignment_coords(self.reference_sequence_name,
                                                    position, position + 1)
      assert(len(rel_coord) == 1)
      rel_start, rel_end = rel_coord[0]
      assert(rel_end == rel_start + 1)
      raw_col = self.get_column(rel_start, miss_seqs)
  
      if species is None:
        return raw_col
      res = {}
      for k in raw_col:
        name_parts = k.split(".")
        if name_parts[0] in species:
          res[k] = raw_col[k]
      return res
docs: return a column from the block as dictionary indexed by seq. name.
  
      :param position:  the index to extract from the block; must be absolute
                        coordinates (i.e. between self.start and self.end, not
                        inclusive of the end).
      :param miss_seqs: how to treat sequence with no actual sequence data for
                        the column.
      :return: dictionary where keys are sequence names and values are
               nucleotides (raw strings).