# Path: abpytools/analysis/analysis_helper_functions.py
# def load_alignment_algorithm(algorithm):
#     if algorithm.lower() == 'needleman_wunsch':
#         return needleman_wunsch
# 
#     else:
#         raise ValueError("Unknown algorithm")
# 
# def load_substitution_matrix(substitution_matrix):
# 
#     abpytools_directory = Home().homedir
# 
#     if substitution_matrix in SUPPORTED_SUBSITUTION_MATRICES:
#         with open('{}/data/{}.txt'.format(abpytools_directory, substitution_matrix), 'rb') as f:
#             matrix = cPickle.load(f)
#     else:
#         raise ValueError("Unknown substitution matrix")
# 
#     return matrix


from .analysis_helper_functions import load_alignment_algorithm, load_substitution_matrix


class SequenceAlignment:

    """
    Sequence alignment with two chain objects   
    """

    def __init__(self, target, collection, algorithm, substitution_matrix):

        """
        
        :param chain_1: 
        :param collection: 
        :param algorithm: 
        :param substitution_matrix: 
        """

        self._algorithm = algorithm

# Path: abpytools/analysis/analysis_helper_functions.py
# def load_alignment_algorithm(algorithm):
#     if algorithm.lower() == 'needleman_wunsch':
#         return needleman_wunsch
# 
#     else:
#         raise ValueError("Unknown algorithm")
# 
# def load_substitution_matrix(substitution_matrix):
# 
#     abpytools_directory = Home().homedir
# 
#     if substitution_matrix in SUPPORTED_SUBSITUTION_MATRICES:
#         with open('{}/data/{}.txt'.format(abpytools_directory, substitution_matrix), 'rb') as f:
#             matrix = cPickle.load(f)
#     else:
#         raise ValueError("Unknown substitution matrix")
# 
#     return matrix


# Path: abpytools/analysis/sequence_alignment.py
from .analysis_helper_functions import load_alignment_algorithm, load_substitution_matrix



class SequenceAlignment:

    """
    Sequence alignment with two chain objects   
    """

    def __init__(self, target, collection, algorithm, substitution_matrix):

        """
        
        :param chain_1: 
        :param collection: 
        :param algorithm: 
        :param substitution_matrix: 
        """

        self._algorithm = algorithm

        self._substitution_matrix = load_substitution_matrix(substitution_matrix)