classdef multiple_alignment
    
    properties
        seq_number
        seqs
        seq01
        seq02
        main_seq
        current_seq
        seq_to_align_01
        seq_to_align_02
        distance
        gap
        gap_symbol
        match_symbol
        delete_symbol
        insert_symbol
        scoring_matrix
        score_matrix
        distance_matrix
        orig_distance_matrix
        direction_matrix
        temporary_pair_align
        consensus_seq
        aligned_seq_flag_tab
        seq_aligned_count
        multiple_seq_alignment
        log_table
        score
        
    end
    
    methods
        
        function alignment = multiple_alignment(seqs)%(seqs,seq01,seq02)
            %Class constructor
            alignment.seqs = seqs;
            
            alignment = initialize_constants(alignment);
            
            alignment = initialize_global(alignment);
            
        end
        
        alignment = initialize_global(alignment)
        alignment = pairwise(alignment)
        alignment = initialize_pairwise(alignment)
        alignment = pairwise_alignment(alignment)
        alignment = initialize_constants(alignment)
        alignment = pairwise_traceback(alignment)
        alignment = calculate_distance(alignment)
        alignment = get_align_order(alignment)
        alignment = get_seq_to_align(alignment)
        alignment = create_consensus_seq(alignment)
        alignment = multiple_align(alignment)
        alignment = adjust_mult_align(alignment)
        alignment = sum_of_pairs(alignment)
                
    end
end