def get_cat_exon_intron_lens(self, chrom=''):
        """Return concatenated exons and introns lenghts of this GeneTable
        
        Parameters:
        1. chrom: chromosome to take count in. If not given, all of the chromsomes will be considered.
        """
        
        if 'exonStarts' not in self.columns or 'exonEnds' not in self.columns:
            return [], []
        
        if chrom == '':
            cate = []
            cati = []
            
            chroms = self.get_chroms()
            for chrom in chroms:
                 cate += map(lambda estarts, eends: sum(map(lambda s, e: e-s, estarts, eends)), self[chrom]['exonStarts'], self[chrom]['exonEnds'])
                 cati += map(lambda estarts, eends: sum(map(lambda s, e: s-e, estarts[1:], eends[:-1])), self[chrom]['exonStarts'], self[chrom]['exonEnds'])
            
            return cate, cati
        else:
            chroms = self.get_chroms()
            
            if chrom in chroms:
                cate = map(lambda estarts, eends: sum(map(lambda s, e: e-s, estarts, eends)), self[chrom]['exonStarts'], self[chrom]['exonEnds'])
                cati = map(lambda estarts, eends: sum(map(lambda s, e: e-s, estarts[1:], eends[:-1])), self[chrom]['exonStarts'], self[chrom]['exonEnds'])
            else:
                cate = []
                cati = []
            
            return cate, cati
dataset/ETHPy150Open taoliu/taolib/Assoc/inout.py/GeneTable.get_cat_exon_intron_lens/swapped operands of `-`