def read(self, line):
        """read gff entry from line in GTF/GFF format.

        <seqname> <source> <feature> <start> <end> <score> \
              <strand> <frame> [attributes] [comments]
        """

        data = line[:-1].split("\t")

        try:
            (self.contig, self.source, self.feature,
             self.start, self.end, self.score, self.strand,
             self.frame) = data[:8]
        except __HOLE__:
            raise ValueError("parsing error in line `%s`" % line)

        # note: frame might be .
        (self.start, self.end) = map(int, (self.start, self.end))
        self.start -= 1

        self.parseInfo(data[8], line)
dataset/ETHPy150Open CGATOxford/cgat/CGAT/GTF.py/Entry.read