# Path: constants.py
# ALPHABET = ['A', 'C', 'G', 'T']
# 
# EXTENDED_ALPHABET = ['A', 'C', 'G', 'T', 'N', 'M', 'K']
# 
# TFFM_KIND = enum(FIRST_ORDER="1st-order", DETAILED="detailed",
#                  ZERO_ORDER="0-order")
# 
# LOGO_TYPE = enum(SUMMARY="summary", DENSE="dense")


import sys
import os
import math
import re
import ghmm
import drawing
import exceptions_errors
import utils
import hit_module
from Bio.Alphabet import IUPAC
from Bio import SeqIO
from Bio import motifs
from constants import ALPHABET, EXTENDED_ALPHABET, TFFM_KIND, LOGO_TYPE
        regular sequence logo).

        :arg output: Stream where to output the svg
            (defaut: :class:`sys.stdout`).
        :type output: file

        :note: The *output* argument is not a file name but it is an
            **already** open file stream.

        """

        drawing.draw_logo(output, self, LOGO_TYPE.SUMMARY)

    def print_dense_logo(self, output=sys.stdout):
        """
        Print the svg code of the corresponding dense logo (i.e. displaying the
        dinucleotide dependencies captured by the TFFM).

        :arg output: Stream where to output the svg
            (defaut: :class:`sys.stdout`).
        :type output: file

        :note: The *output* argument is not a file name but it is an
            **already** open file stream.

        """

        # No dependencies in 0order TFFMs
        if self.kind == TFFM_KIND.ZERO_ORDER:
            raise exceptions_errors.TFFMKindError(self.kind)

# Path: constants.py
# ALPHABET = ['A', 'C', 'G', 'T']
# 
# EXTENDED_ALPHABET = ['A', 'C', 'G', 'T', 'N', 'M', 'K']
# 
# TFFM_KIND = enum(FIRST_ORDER="1st-order", DETAILED="detailed",
#                  ZERO_ORDER="0-order")
# 
# LOGO_TYPE = enum(SUMMARY="summary", DENSE="dense")


# Path: tffm_module.py
import sys
import os
import math
import re
import ghmm
import drawing
import exceptions_errors
import utils
import hit_module
from Bio.Alphabet import IUPAC
from Bio import SeqIO
from Bio import motifs
from constants import ALPHABET, EXTENDED_ALPHABET, TFFM_KIND, LOGO_TYPE

        regular sequence logo).

        :arg output: Stream where to output the svg
            (defaut: :class:`sys.stdout`).
        :type output: file

        :note: The *output* argument is not a file name but it is an
            **already** open file stream.

        """

        drawing.draw_logo(output, self, LOGO_TYPE.SUMMARY)

    def print_dense_logo(self, output=sys.stdout):
        """
        Print the svg code of the corresponding dense logo (i.e. displaying the
        dinucleotide dependencies captured by the TFFM).

        :arg output: Stream where to output the svg
            (defaut: :class:`sys.stdout`).
        :type output: file

        :note: The *output* argument is not a file name but it is an
            **already** open file stream.

        """

        # No dependencies in 0order TFFMs
        if self.kind == TFFM_KIND.ZERO_ORDER:
            raise exceptions_errors.TFFMKindError(self.kind)

        drawing.draw_logo(output, self, LOGO_TYPE.DENSE)