def __init__(self,max_node_count=None,min_pssm_score=None,aligned_site_aa_offset=None,tcode_5p_windowsize=TCODE_TSS_5P_WINDOW,tcode_3p_windowsize=TCODE_TSS_3P_WINDOW):
        """
        Initialize asa BasalAlignedPssmObjectGraph, then extend
        """
        BasalAlignedPssmObjectGraph.__init__(self,max_node_count=max_node_count,
                min_pssm_score=min_pssm_score,
                aligned_site_aa_offset=aligned_site_aa_offset ) 
        # attributes for TCODE data
        self._tcode5pscore = {}
        self._tcode3pscore = {}
        self._TCODE_5P_WINDOWSIZE = tcode_5p_windowsize
        self._TCODE_3P_WINDOWSIZE = tcode_3p_windowsize

        # attribute for storing this CBG object
        # when not HARD-SET into this postion,
        # is_optimal_gtgweakestnode() will crash! 
        self._codingblockgraph = None

        # is_optimal_xxx thresholds
        self._optimal_min_tcode      = ALIGNEDTSSGRAPH_OPTIMALITY_MIN_TCODE
        self._optimal_max_tcode      = ALIGNEDTSSGRAPH_OPTIMALITY_MAX_TCODE
        self._optimal_min_weight     = ALIGNEDTSSGRAPH_OPTIMALITY_MIN_WEIGHT
        self._optimal_max_weight     = ALIGNEDTSSGRAPH_OPTIMALITY_MAX_WEIGHT 
        self._optimal_min_gtgweakest = ALIGNEDTSSGRAPH_OPTIMALITY_MIN_GTGWEAKEST
        self._optimal_max_gtgweakest = ALIGNEDTSSGRAPH_OPTIMALITY_MAX_GTGWEAKEST
    def togff(self,gff={},organism=None):
        """
        Create gff tuple for aligned splice site of a specific organism

        @attention: See AlignedPssmObjectGraph.togff, CAN BE OVERRIDDEN HERE IF DESIRED!!
        """
        return BasalAlignedPssmObjectGraph.togff(self,organism=organism,gff=gff)
    def cumulative_score(self):
        """
        Cumulative score of a group of aligned TranslationalStartSites (TSS)

        @attention: See AlignedPssmObjectGraph.cumulative_score, CAN BE OVERRIDDEN HERE IF DESIRED!!
        """
        return BasalAlignedPssmObjectGraph.cumulative_score(self)