# Path: constants.py
# BLACK = (0, 0, 0)
# 
# WHITE = (255, 255, 255)
# 
# BLUE = (0, 0, 128)
# 
# RED = (178, 34, 34)
# 
# GREEN = (0, 100, 0)
# 
# YELLOW = (255, 165, 0)
# 
# ALPHABET = ['A', 'C', 'G', 'T']
# 
# Path: constants.py
# TFFM_KIND = enum(FIRST_ORDER="1st-order", DETAILED="detailed",
#                  ZERO_ORDER="0-order")
# 
# LOGO_TYPE = enum(SUMMARY="summary", DENSE="dense")


from constants import BLACK, WHITE, BLUE, RED, GREEN, YELLOW, ALPHABET
from constants import TFFM_KIND, LOGO_TYPE
import tffm_module
    :note: The computation of the information content is done within the
        drawing since it follows the same algorithm computing the emission
        probabilities. So we do not call the get_information_content method for
        an algorithmic improvement.

    """
    previous_position_proba = tffm.background_emission_proba()
    information_content = 0.
    start = tffm.get_position_start()
    for position in range(start, len(tffm) + start):
        position_proba = {'A': 0., 'C': 0., 'G': 0., 'T': 0.}
        yposition = 10.
        if tffm.kind == TFFM_KIND.ZERO_ORDER:
            __ = tffm.get_emission_update_pos_proba(position_proba, position,
                                                    previous_position_proba, 0)
        else:
            for i in range(0, 4):
                if logo_type == LOGO_TYPE.SUMMARY:
                    __ = tffm.get_emission_update_pos_proba(position_proba,
                                                            position,
                                                            previous_position_proba,
                                                            i)
                else:
                    emissions = tffm.get_emission_update_pos_proba(
                        position_proba, position, previous_position_proba, i)
                    yposition = draw_dense_letters(output, emissions, width,
                                                   xposition, yposition, step,
                                                   previous_position_proba,
                                                   ALPHABET[i])
        previous_position_proba = position_proba.copy()

# Path: constants.py
# BLACK = (0, 0, 0)
# 
# WHITE = (255, 255, 255)
# 
# BLUE = (0, 0, 128)
# 
# RED = (178, 34, 34)
# 
# GREEN = (0, 100, 0)
# 
# YELLOW = (255, 165, 0)
# 
# ALPHABET = ['A', 'C', 'G', 'T']
# 
# Path: constants.py
# TFFM_KIND = enum(FIRST_ORDER="1st-order", DETAILED="detailed",
#                  ZERO_ORDER="0-order")
# 
# LOGO_TYPE = enum(SUMMARY="summary", DENSE="dense")


# Path: drawing.py
from constants import BLACK, WHITE, BLUE, RED, GREEN, YELLOW, ALPHABET
from constants import TFFM_KIND, LOGO_TYPE
import tffm_module

    :note: The computation of the information content is done within the
        drawing since it follows the same algorithm computing the emission
        probabilities. So we do not call the get_information_content method for
        an algorithmic improvement.

    """
    previous_position_proba = tffm.background_emission_proba()
    information_content = 0.
    start = tffm.get_position_start()
    for position in range(start, len(tffm) + start):
        position_proba = {'A': 0., 'C': 0., 'G': 0., 'T': 0.}
        yposition = 10.
        if tffm.kind == TFFM_KIND.ZERO_ORDER:
            __ = tffm.get_emission_update_pos_proba(position_proba, position,
                                                    previous_position_proba, 0)
        else:
            for i in range(0, 4):
                if logo_type == LOGO_TYPE.SUMMARY:
                    __ = tffm.get_emission_update_pos_proba(position_proba,
                                                            position,
                                                            previous_position_proba,
                                                            i)
                else:
                    emissions = tffm.get_emission_update_pos_proba(
                        position_proba, position, previous_position_proba, i)
                    yposition = draw_dense_letters(output, emissions, width,
                                                   xposition, yposition, step,
                                                   previous_position_proba,
                                                   ALPHABET[i])
        previous_position_proba = position_proba.copy()

        if tffm.kind == TFFM_KIND.DETAILED: