diff --git a/genomix/HyracksCodeFormatProfile.xml b/genomix/HyracksCodeFormatProfile.xml
new file mode 100644
index 0000000..2cde66d
--- /dev/null
+++ b/genomix/HyracksCodeFormatProfile.xml
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profiles version="11">
+<profile kind="CodeFormatterProfile" name="HyracksCodeFormatProfile" version="11">
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
+<setting id="org.eclipse.jdt.core.compiler.source" value="1.5"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.5"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
+<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="48"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="9999"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.5"/>
+<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="49"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
+</profile>
+</profiles>
diff --git a/genomix/genomix-data/.settings/org.eclipse.core.resources.prefs b/genomix/genomix-data/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..609d3ca
--- /dev/null
+++ b/genomix/genomix-data/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+encoding//src/main/resources=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/<project>=UTF-8
diff --git a/genomix/genomix-data/.settings/org.eclipse.jdt.core.prefs b/genomix/genomix-data/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..ec4300d
--- /dev/null
+++ b/genomix/genomix-data/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/genomix/genomix-data/.settings/org.eclipse.m2e.core.prefs b/genomix/genomix-data/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/genomix/genomix-data/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/genomix/genomix-data/HyracksCodeFormatProfile.xml b/genomix/genomix-data/HyracksCodeFormatProfile.xml
new file mode 100644
index 0000000..2cde66d
--- /dev/null
+++ b/genomix/genomix-data/HyracksCodeFormatProfile.xml
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profiles version="11">
+<profile kind="CodeFormatterProfile" name="HyracksCodeFormatProfile" version="11">
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
+<setting id="org.eclipse.jdt.core.compiler.source" value="1.5"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.5"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
+<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="48"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="9999"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.5"/>
+<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="49"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
+</profile>
+</profiles>
diff --git a/genomix/genomix-data/pom.xml b/genomix/genomix-data/pom.xml
new file mode 100644
index 0000000..2dd44bb
--- /dev/null
+++ b/genomix/genomix-data/pom.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>genomix-data</artifactId>
+	<name>genomix-data</name>
+
+	<parent>
+		<groupId>edu.uci.ics.hyracks</groupId>
+		<artifactId>genomix</artifactId>
+		<version>0.2.6-SNAPSHOT</version>
+	</parent>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.0.2</version>
+				<configuration>
+					<source>1.7</source>
+					<target>1.7</target>
+					<fork>true</fork>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.8.1</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.hadoop</groupId>
+			<artifactId>hadoop-core</artifactId>
+			<version>0.20.2</version>
+		</dependency>
+	</dependencies>
+</project>
diff --git a/genomix/genomix-data/src/main/assembly/binary-assembly.xml b/genomix/genomix-data/src/main/assembly/binary-assembly.xml
new file mode 100644
index 0000000..68d424a
--- /dev/null
+++ b/genomix/genomix-data/src/main/assembly/binary-assembly.xml
@@ -0,0 +1,19 @@
+<assembly>
+	<id>binary-assembly</id>
+	<formats>
+		<format>zip</format>
+		<format>dir</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>target/appassembler/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+		</fileSet>
+		<fileSet>
+			<directory>target/appassembler/lib</directory>
+			<outputDirectory>lib</outputDirectory>
+		</fileSet>
+	</fileSets>
+</assembly>
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/data/KmerUtil.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/data/KmerUtil.java
new file mode 100644
index 0000000..866d6c5
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/data/KmerUtil.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.data;
+
+import edu.uci.ics.genomix.type.GeneCode;
+
+public class KmerUtil {
+    public static final String empty = "";
+
+    public static int getByteNumFromK(int k) {
+        int x = k / 4;
+        if (k % 4 != 0) {
+            x += 1;
+        }
+        return x;
+    }
+
+    public static byte reverseKmerByte(byte k) {
+        int x = (((k >> 2) & 0x33) | ((k << 2) & 0xcc));
+        return (byte) (((x >> 4) & 0x0f) | ((x << 4) & 0xf0));
+    }
+
+    public static String recoverKmerFrom(int k, byte[] keyData, int keyStart, int keyLength) {
+        StringBuilder strKmer = new StringBuilder();
+        int byteId = keyStart + keyLength - 1;
+        if (byteId < 0 || k < 1) {
+            return empty;
+        }
+        byte currentbyte = keyData[byteId];
+        for (int geneCount = 0; geneCount < k; geneCount++) {
+            if (geneCount % 4 == 0 && geneCount > 0) {
+                currentbyte = keyData[--byteId];
+            }
+            strKmer.append((char) GeneCode.GENE_SYMBOL[(currentbyte >> ((geneCount % 4) * 2)) & 0x03]);
+        }
+        return strKmer.toString();
+    }
+
+
+}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/data/Marshal.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/data/Marshal.java
new file mode 100644
index 0000000..90def56
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/data/Marshal.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.data;
+
+import java.nio.ByteBuffer;
+
+public class Marshal {
+    public static int getInt(byte[] bytes, int offset) {
+        return ((bytes[offset] & 0xff) << 24) + ((bytes[offset + 1] & 0xff) << 16) + ((bytes[offset + 2] & 0xff) << 8)
+                + ((bytes[offset + 3] & 0xff) << 0);
+    }
+    
+    public static long getLong(byte[] bytes, int offset) {   
+        long value = 0;
+        for (int i = offset; i < bytes.length && i < offset + 8; i++)
+        {
+           value = (value << 8) + (bytes[i] & 0xff);
+        }
+        return value;
+//        return ((bytes[offset] & 0xff) << 56) + ((bytes[offset + 1] & 0xff) << 48) + ((bytes[offset + 2] & 0xff) << 40) 
+//                + ((bytes[offset + 3] & 0xff) << 32) + ((bytes[offset + 4] & 0xff) << 24) + ((bytes[offset + 5] & 0xff) << 16) 
+//                + ((bytes[offset + 6] & 0xff) << 8) + ((bytes[offset + 7] & 0xff) << 0);
+    }
+    
+    public static float getFloat(byte[] bytes, int offset) {   
+        return ByteBuffer.wrap(bytes, offset, 4).getFloat();
+    }
+    
+    public static void putInt(int val, byte[] bytes, int offset) {
+        bytes[offset] = (byte)((val >>> 24) & 0xFF);        
+        bytes[offset + 1] = (byte)((val >>> 16) & 0xFF);
+        bytes[offset + 2] = (byte)((val >>>  8) & 0xFF);
+        bytes[offset + 3] = (byte)((val >>>  0) & 0xFF);
+    }
+    
+    public static void putLong(long val, byte[] bytes, int offset) {
+        ByteBuffer byteBuffer = ByteBuffer.allocate(8); 
+        System.arraycopy(byteBuffer.putLong(val).array(), 0, bytes, offset, 8);
+//        bytes[offset] = (byte)((val >>> 56) & 0xFF);        
+//        bytes[offset + 1] = (byte)((val >>> 48) & 0xFF);
+//        bytes[offset + 2] = (byte)((val >>> 40) & 0xFF);
+//        bytes[offset + 3] = (byte)((val >>> 32) & 0xFF);
+//        bytes[offset + 4] = (byte)((val >>> 24) & 0xFF);
+//        bytes[offset + 5] = (byte)((val >>> 16) & 0xFF);
+//        bytes[offset + 6] = (byte)((val >>> 8) & 0xFF);
+//        bytes[offset + 7] = (byte)((val >>> 0) & 0xFF);
+    }
+    
+    public static void putFloat(float val, byte[] bytes, int offset) {
+        ByteBuffer byteBuffer = ByteBuffer.allocate(4);
+        System.arraycopy(byteBuffer.putFloat(val).array(), 0, bytes, offset, 4);
+    }
+    
+    public static int hashBytes(byte[] bytes, int offset, int length) {
+        int hash = 1;
+        for (int i = offset; i < offset + length; i++)
+            hash = (31 * hash) + (int) bytes[i];
+        return hash;
+    }
+}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/GeneCode.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/GeneCode.java
new file mode 100644
index 0000000..6a5ad7b
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/GeneCode.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.type;
+
+
+public class GeneCode {
+    public final static byte[] GENE_SYMBOL = { 'A', 'C', 'G', 'T' };
+    /**
+     * make sure this 4 ids equal to the sequence id of char in {@GENE_SYMBOL
+	 * }
+     */
+    public static final byte A = 0;
+    public static final byte C = 1;
+    public static final byte G = 2;
+    public static final byte T = 3;
+
+    public static byte getCodeFromSymbol(byte ch) {
+        byte r = 0;
+        switch (ch) {
+            case 'A':
+            case 'a':
+                r = A;
+                break;
+            case 'C':
+            case 'c':
+                r = C;
+                break;
+            case 'G':
+            case 'g':
+                r = G;
+                break;
+            case 'T':
+            case 't':
+                r = T;
+                break;
+        }
+        return r;
+    }
+    
+    public static byte getPairedGeneCode(byte genecode){
+        if ( genecode < 0 || genecode > 3){
+            throw new IllegalArgumentException("Invalid genecode: " + genecode);
+        }
+        return (byte) (3- genecode);
+    }
+    
+    public static byte getPairedCodeFromSymbol(byte ch){
+        return getPairedGeneCode(getCodeFromSymbol(ch));
+    }
+
+    public static byte getSymbolFromCode(byte code) {
+        if (code > 3 || code < 0 ) {
+            throw new IllegalArgumentException("Invalid genecode");
+        }
+        return GENE_SYMBOL[code];
+    }
+    
+    public static String reverseComplement(String kmer) {
+        StringBuilder sb = new StringBuilder();
+        for (char letter : kmer.toCharArray()) {
+            sb.append(complement(letter));
+        }
+        return sb.reverse().toString();
+    }
+    
+    public static char complement(char ch) {
+        switch (ch) {
+            case 'A':
+            case 'a':
+                return 'T';
+            case 'C':
+            case 'c':
+                return 'G';
+            case 'G':
+            case 'g':
+                return 'C';
+            case 'T':
+            case 't':
+                return 'A';
+        }
+        throw new RuntimeException("Invalid character given in complement: " + ch);
+    }
+}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritable.java
new file mode 100644
index 0000000..bbba2fb
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritable.java
@@ -0,0 +1,414 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.type;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+
+import org.apache.hadoop.io.BinaryComparable;
+import org.apache.hadoop.io.WritableComparable;
+import org.apache.hadoop.io.WritableComparator;
+
+import edu.uci.ics.genomix.data.KmerUtil;
+import edu.uci.ics.genomix.data.Marshal;
+
+/**
+ * Fixed, static-length Kmer used as the key and edge values of each
+ * NodeWritable. Kmer length should be set once during configuration and should
+ * never change.
+ */
+public class KmerBytesWritable extends BinaryComparable implements Serializable, WritableComparable<BinaryComparable> {
+
+    private static final long serialVersionUID = 1L;
+    protected static final byte[] EMPTY_BYTES = {};
+
+    protected static int lettersInKmer;
+    protected static int bytesUsed;
+    protected byte[] bytes;
+    protected int offset;
+
+    /**
+     * set the *GLOBAL* kmer length to the given k value.
+     * NOTE: this will invalidate ALL previously created kmers. This function
+     * should be called before any kmers are created
+     */
+    public static void setGlobalKmerLength(int k) {
+        bytesUsed = KmerUtil.getByteNumFromK(k);
+        lettersInKmer = k;
+    }
+
+    /**
+     * Initialize as empty kmer
+     */
+    public KmerBytesWritable() {
+        bytes = new byte[bytesUsed];
+        offset = 0;
+    }
+
+    /**
+     * Copy contents of kmer string
+     */
+    public KmerBytesWritable(String kmer) {
+        this();
+        setByRead(kmer.getBytes(), 0);
+    }
+
+    /**
+     * Set as reference to existing data
+     */
+    public KmerBytesWritable(byte[] newStorage, int newOffset) {
+        setAsReference(newStorage, newOffset);
+    }
+
+    /**
+     * copy kmer in other
+     * 
+     * @param other
+     */
+    public KmerBytesWritable(KmerBytesWritable other) {
+        this();
+        setAsCopy(other);
+    }
+    
+    /**
+     * copy kmer in other
+     * 
+     * @param other
+     */
+    public KmerBytesWritable(VKmerBytesWritable other) {
+        this();
+        setAsCopy(other);
+    }
+
+    /**
+     * Deep copy of the given kmer
+     * 
+     * @param other
+     */
+    public void setAsCopy(KmerBytesWritable other) {
+        if (lettersInKmer > 0) {
+            System.arraycopy(other.bytes, other.offset, bytes, offset, bytesUsed);
+        }
+    }
+    
+    /**
+     * Deep copy of the given kmer
+     * 
+     * @param other
+     */
+    public void setAsCopy(VKmerBytesWritable other) {
+        if (other.lettersInKmer != lettersInKmer) {
+            throw new IllegalArgumentException("Provided VKmer (" + other + ") is of an incompatible length (was " + other.getKmerLetterLength() + ", should be " + lettersInKmer + ")!");
+        }
+        if (lettersInKmer > 0) {
+            System.arraycopy(other.bytes, other.kmerStartOffset, bytes, offset, bytesUsed);
+        }
+    }
+
+
+    /**
+     * Deep copy of the given bytes data
+     * 
+     * @param newData
+     * @param newOffset
+     */
+    public void setAsCopy(byte[] newData, int newOffset) {
+        if (newData.length - newOffset < bytesUsed) {
+            throw new IllegalArgumentException("Requested " + bytesUsed + " bytes (k=" + lettersInKmer
+                    + ") but buffer has only " + (newData.length - newOffset) + " bytes");
+        }
+        System.arraycopy(newData, newOffset, bytes, offset, bytesUsed);
+    }
+
+    /**
+     * Point this datablock to the given bytes array It works like the pointer
+     * to new datablock.
+     * 
+     * @param newData
+     * @param newOffset
+     */
+    public void setAsReference(byte[] newData, int newOffset) {
+        if (newData.length - newOffset < bytesUsed) {
+            throw new IllegalArgumentException("Requested " + bytesUsed + " bytes (k=" + lettersInKmer
+                    + ") but buffer has only " + (newData.length - newOffset) + " bytes");
+        }
+        bytes = newData;
+        offset = newOffset;
+    }
+    
+    /**
+     * Point this datablock to the given kmer's byte array It works like the pointer
+     * to new datablock.
+     * 
+     * @param newData
+     * @param offset
+     */
+    public void setAsReference(VKmerBytesWritable other) {
+        if (other.lettersInKmer != lettersInKmer) {
+            throw new IllegalArgumentException("Provided VKmer (" + other + ") is of an incompatible length (was " + other.getKmerLetterLength() + ", should be " + lettersInKmer + ")!");
+        }
+        bytes = other.bytes;
+        offset = other.kmerStartOffset;
+    }
+
+    /**
+     * Get one genecode (A|G|C|T) from the given kmer index e.g. Get the 4th
+     * gene of the kmer ACGTA will return T
+     * 
+     * @param pos
+     * @return
+     */
+    public byte getGeneCodeAtPosition(int pos) {
+        if (pos >= lettersInKmer || pos < 0) {
+            throw new ArrayIndexOutOfBoundsException("Gene position (" + pos + ") out of bounds for k=" + lettersInKmer);
+        }
+        return geneCodeAtPosition(pos);
+    }
+
+    /**
+     * unchecked version of getGeneCodeAtPosition. Used when kmerlength is
+     * inaccurate (mid-merge)
+     */
+    private byte geneCodeAtPosition(int pos) {
+        int posByte = pos / 4;
+        int shift = (pos % 4) << 1;
+        return (byte) ((bytes[offset + bytesUsed - 1 - posByte] >> shift) & 0x3);
+    }
+
+    public static int getKmerLength() {
+        return lettersInKmer;
+    }
+    
+    public static int getBytesPerKmer() {
+        return bytesUsed;
+    }
+
+    @Override
+    public byte[] getBytes() {
+        return bytes;
+    }
+
+    public int getOffset() {
+        return offset;
+    }
+
+    @Override
+    public int getLength() {
+        return bytesUsed;
+    }
+
+    /**
+     * Read Kmer from read text into bytes array e.g. AATAG will compress as
+     * [0x000G, 0xATAA]
+     * 
+     * @param stringBytes
+     * @param start
+     */
+    public void setByRead(byte[] stringBytes, int start) {
+        byte l = 0;
+        int bytecount = 0;
+        int bcount = this.bytesUsed - 1;
+        for (int i = start; i < start + lettersInKmer && i < stringBytes.length; i++) {
+            byte code = GeneCode.getCodeFromSymbol(stringBytes[i]);
+            l |= (byte) (code << bytecount);
+            bytecount += 2;
+            if (bytecount == 8) {
+                bytes[offset + bcount--] = l;
+                l = 0;
+                bytecount = 0;
+            }
+        }
+        if (bcount >= 0) {
+            bytes[offset] = l;
+        }
+    }
+
+    /**
+     * Compress Reversed read into bytes array e.g. AATAG will paired to CTATT,
+     * and then compress as [0x000T,0xTATC]
+     * 
+     * @param input
+     *            array
+     * @param start
+     *            position
+     */
+    public void setByReadReverse(byte[] array, int start) {
+        byte l = 0;
+        int bytecount = 0;
+        int bcount = bytesUsed - 1;
+        // for (int i = start + kmerlength - 1; i >= 0 && i < array.length; i--)
+        // {
+        for (int i = start + lettersInKmer - 1; i >= start && i < array.length; i--) {
+            byte code = GeneCode.getPairedCodeFromSymbol(array[i]);
+            l |= (byte) (code << bytecount);
+            bytecount += 2;
+            if (bytecount == 8) {
+                bytes[offset + bcount--] = l;
+                l = 0;
+                bytecount = 0;
+            }
+        }
+        if (bcount >= 0) {
+            bytes[offset] = l;
+        }
+    }
+
+    /**
+     * Shift Kmer to accept new char input
+     * 
+     * @param c
+     *            Input new gene character
+     * @return the shift out gene, in gene code format
+     */
+    public byte shiftKmerWithNextChar(byte c) {
+        return shiftKmerWithNextCode(GeneCode.getCodeFromSymbol(c));
+    }
+
+    /**
+     * Shift Kmer to accept new gene code
+     * 
+     * @param c
+     *            Input new gene code
+     * @return the shift out gene, in gene code format
+     */
+    public byte shiftKmerWithNextCode(byte c) {
+        byte output = (byte) (bytes[offset + bytesUsed - 1] & 0x03);
+        for (int i = bytesUsed - 1; i > 0; i--) {
+            byte in = (byte) (bytes[offset + i - 1] & 0x03);
+            bytes[offset + i] = (byte) (((bytes[offset + i] >>> 2) & 0x3f) | (in << 6));
+        }
+        int pos = ((lettersInKmer - 1) % 4) << 1;
+        byte code = (byte) (c << pos);
+        bytes[offset] = (byte) (((bytes[offset] >>> 2) & 0x3f) | code);
+        clearLeadBit();
+        return output;
+    }
+
+    /**
+     * Shift Kmer to accept new input char
+     * 
+     * @param c
+     *            Input new gene character
+     * @return the shiftout gene, in gene code format
+     */
+    public byte shiftKmerWithPreChar(byte c) {
+        return shiftKmerWithPreCode(GeneCode.getCodeFromSymbol(c));
+    }
+
+    /**
+     * Shift Kmer to accept new gene code
+     * 
+     * @param c
+     *            Input new gene code
+     * @return the shiftout gene, in gene code format
+     */
+    public byte shiftKmerWithPreCode(byte c) {
+        int pos = ((lettersInKmer - 1) % 4) << 1;
+        byte output = (byte) ((bytes[offset] >> pos) & 0x03);
+        for (int i = 0; i < bytesUsed - 1; i++) {
+            byte in = (byte) ((bytes[offset + i + 1] >> 6) & 0x03);
+            bytes[offset + i] = (byte) ((bytes[offset + i] << 2) | in);
+        }
+        bytes[offset + bytesUsed - 1] = (byte) ((bytes[offset + bytesUsed - 1] << 2) | c);
+        clearLeadBit();
+        return output;
+    }
+
+    public static void appendOneByteAtPosition(int k, byte onebyte, byte[] buffer, int start, int length) {
+        int position = start + length - 1 - k / 4;
+        if (position < start) {
+            throw new IllegalArgumentException("Buffer for kmer storage is invalid");
+        }
+        int shift = ((k) % 4) << 1;
+        int mask = shift == 0 ? 0 : ((1 << shift) - 1);
+
+        buffer[position] = (byte) ((buffer[position] & mask) | ((0xff & onebyte) << shift));
+        if (position > start && shift != 0) {
+            buffer[position - 1] = (byte) ((buffer[position - 1] & (0xff - mask)) | ((byte) ((0xff & onebyte) >>> (8 - shift))));
+        }
+    }
+
+    public static byte getOneByteFromKmerAtPosition(int k, byte[] buffer, int start, int length) {
+        int position = start + length - 1 - k / 4;
+        if (position < start) {
+            throw new IllegalArgumentException("Buffer of kmer storage is invalid");
+        }
+        int shift = (k % 4) << 1;
+        byte data = (byte) (((0xff) & buffer[position]) >>> shift);
+        if (shift != 0 && position > start) {
+            data |= 0xff & (buffer[position - 1] << (8 - shift));
+        }
+        return data;
+    }
+
+    protected void clearLeadBit() {
+        if (lettersInKmer % 4 != 0) {
+            bytes[offset] &= (1 << ((lettersInKmer % 4) << 1)) - 1;
+        }
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        in.readFully(bytes, offset, bytesUsed);
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        out.write(bytes, offset, bytesUsed);
+    }
+
+    @Override
+    public int hashCode() {
+        return Marshal.hashBytes(bytes, offset, bytesUsed);
+    }
+
+    @Override
+    public boolean equals(Object right_obj) {
+        if (right_obj instanceof KmerBytesWritable) {
+            // since these may be backed by storage of different sizes, we have to manually check each byte
+            KmerBytesWritable right = (KmerBytesWritable) right_obj;
+            for (int i=0; i < bytesUsed; i++) {
+                if (bytes[offset + i] != right.bytes[right.offset + i]) {
+                    return false;
+                }
+            }
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public String toString() {
+        return KmerUtil.recoverKmerFrom(lettersInKmer, bytes, offset, bytesUsed);
+    }
+
+    public static class Comparator extends WritableComparator {
+        public Comparator() {
+            super(KmerBytesWritable.class);
+        }
+
+        public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {
+            return compareBytes(b1, s1, l1, b2, s2, l2);
+        }
+    }
+
+    static { // register this comparator
+        WritableComparator.define(KmerBytesWritable.class, new Comparator());
+    }
+
+}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritableFactory.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritableFactory.java
new file mode 100644
index 0000000..c287c1b
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritableFactory.java
@@ -0,0 +1,311 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.type;
+
+public class KmerBytesWritableFactory {
+    private VKmerBytesWritable kmer;
+
+    public KmerBytesWritableFactory(int k) {
+        kmer = new VKmerBytesWritable(k);
+    }
+
+    /**
+     * Read Kmer from read text into bytes array e.g. AATAG will compress as
+     * [0x000G, 0xATAA]
+     * 
+     * @param k
+     * @param array
+     * @param start
+     */
+    public VKmerBytesWritable getKmerByRead(int k, byte[] array, int start) {
+        kmer.setByRead(k, array, start);
+        return kmer;
+    }
+
+    /**
+     * Compress Reversed Kmer into bytes array AATAG will compress as
+     * [0x000A,0xATAG]
+     * 
+     * @param array
+     * @param start
+     */
+    public VKmerBytesWritable getKmerByReadReverse(int k, byte[] array, int start) {
+        kmer.setByReadReverse(k, array, start);
+        return kmer;
+    }
+
+    /**
+     * Get last kmer from kmer-chain.
+     * e.g. kmerChain is AAGCTA, if k =5, it will
+     * return AGCTA
+     * 
+     * @param k
+     * @param kInChain
+     * @param kmerChain
+     * @return LastKmer bytes array
+     */
+    public VKmerBytesWritable getLastKmerFromChain(int lastK, final VKmerBytesWritable kmerChain) {
+        if (lastK > kmerChain.getKmerLetterLength()) {
+            return null;
+        }
+        if (lastK == kmerChain.getKmerLetterLength()) {
+            kmer.setAsCopy(kmerChain);
+            return kmer;
+        }
+        kmer.reset(lastK);
+
+        /** from end to start */
+        int byteInChain = kmerChain.getKmerByteLength() - 1 - (kmerChain.getKmerLetterLength() - lastK) / 4;
+        int posInByteOfChain = ((kmerChain.getKmerLetterLength() - lastK) % 4) << 1; // *2
+        int byteInKmer = kmer.getKmerByteLength() - 1;
+        for (; byteInKmer >= 0 && byteInChain > 0; byteInKmer--, byteInChain--) {
+            kmer.getBytes()[byteInKmer + kmer.getKmerOffset()] = (byte) ((0xff & kmerChain.getBytes()[byteInChain + kmerChain.getKmerOffset()]) >> posInByteOfChain);
+            kmer.getBytes()[byteInKmer + kmer.getKmerOffset()] |= ((kmerChain.getBytes()[byteInChain  + kmerChain.getKmerOffset() - 1] << (8 - posInByteOfChain)));
+        }
+
+        /** last kmer byte */
+        if (byteInKmer == 0) {
+            kmer.getBytes()[0 + kmer.getKmerOffset()] = (byte) ((kmerChain.getBytes()[0 + kmerChain.getKmerOffset()] & 0xff) >> posInByteOfChain);
+        }
+        kmer.clearLeadBit();
+        return kmer;
+    }
+
+    /**
+     * Get first kmer from kmer-chain e.g. kmerChain is AAGCTA, if k=5, it will
+     * return AAGCT
+     * 
+     * @param k
+     * @param kInChain
+     * @param kmerChain
+     * @return FirstKmer bytes array
+     */
+    public VKmerBytesWritable getFirstKmerFromChain(int firstK, final VKmerBytesWritable kmerChain) {
+        if (firstK > kmerChain.getKmerLetterLength()) {
+            return null;
+        }
+        if (firstK == kmerChain.getKmerLetterLength()) {
+            kmer.setAsCopy(kmerChain);
+            return kmer;
+        }
+        kmer.reset(firstK);
+
+        int i = 1;
+        for (; i < kmer.getKmerByteLength(); i++) {
+            kmer.getBytes()[kmer.getKmerOffset() + kmer.getKmerByteLength() - i] = kmerChain.getBytes()[kmerChain.getKmerOffset() + kmerChain.getKmerByteLength() - i];
+        }
+        int posInByteOfChain = (firstK % 4) << 1; // *2
+        if (posInByteOfChain == 0) {
+            kmer.getBytes()[0 + kmer.getKmerOffset()] = kmerChain.getBytes()[kmerChain.getKmerOffset() + kmerChain.getKmerByteLength() - i];
+        } else {
+            kmer.getBytes()[0 + kmer.getKmerOffset()] = (byte) (kmerChain.getBytes()[kmerChain.getKmerOffset() + kmerChain.getKmerByteLength() - i] & ((1 << posInByteOfChain) - 1));
+        }
+        kmer.clearLeadBit();
+        return kmer;
+    }
+
+    public VKmerBytesWritable getSubKmerFromChain(int startK, int kSize, final VKmerBytesWritable kmerChain) {
+        if (startK + kSize > kmerChain.getKmerLetterLength()) {
+            return null;
+        }
+        if (startK == 0 && kSize == kmerChain.getKmerLetterLength()) {
+            kmer.setAsCopy(kmerChain);
+            return kmer;
+        }
+        kmer.reset(kSize);
+
+        /** from end to start */
+        int byteInChain = kmerChain.getKmerByteLength() - 1 - startK / 4;
+        int posInByteOfChain = startK % 4 << 1; // *2
+        int byteInKmer = kmer.getKmerByteLength() - 1;
+        for (; byteInKmer >= 0 && byteInChain > 0; byteInKmer--, byteInChain--) {
+            kmer.getBytes()[byteInKmer + kmer.getKmerOffset()] = (byte) ((0xff & kmerChain.getBytes()[byteInChain + kmerChain.getKmerOffset()]) >> posInByteOfChain);
+            kmer.getBytes()[byteInKmer + kmer.getKmerOffset()] |= ((kmerChain.getBytes()[byteInChain + kmerChain.getKmerOffset() - 1] << (8 - posInByteOfChain)));
+        }
+
+        /** last kmer byte */
+        if (byteInKmer == 0) {
+            kmer.getBytes()[0 + kmer.getKmerOffset()] = (byte) ((kmerChain.getBytes()[0 + kmerChain.getKmerOffset()] & 0xff) >> posInByteOfChain);
+        }
+        kmer.clearLeadBit();
+        return kmer;
+    }
+
+    /**
+     * Merge kmer with next neighbor in gene-code format.
+     * The k of new kmer will increase by 1
+     * e.g. AAGCT merge with A => AAGCTA
+     * 
+     * @param k
+     *            :input k of kmer
+     * @param kmer
+     *            : input bytes of kmer
+     * @param nextCode
+     *            : next neighbor in gene-code format
+     * @return the merged Kmer, this K of this Kmer is k+1
+     */
+    public VKmerBytesWritable mergeKmerWithNextCode(final VKmerBytesWritable kmer, byte nextCode) {
+        this.kmer.reset(kmer.getKmerLetterLength() + 1);
+        for (int i = 1; i <= kmer.getKmerByteLength(); i++) {
+            this.kmer.getBytes()[this.kmer.getKmerOffset() + this.kmer.getKmerByteLength() - i] = kmer.getBytes()[kmer.getKmerOffset() + kmer.getKmerByteLength() - i];
+        }
+        if (this.kmer.getKmerByteLength() > kmer.getKmerByteLength()) {
+            this.kmer.getBytes()[0 + kmer.getKmerOffset()] = (byte) (nextCode & 0x3);
+        } else {
+            this.kmer.getBytes()[0 + kmer.getKmerOffset()] = (byte) (kmer.getBytes()[0 + kmer.getKmerOffset()] | ((nextCode & 0x3) << ((kmer.getKmerLetterLength() % 4) << 1)));
+        }
+        this.kmer.clearLeadBit();
+        return this.kmer;
+    }
+
+    /**
+     * Merge kmer with previous neighbor in gene-code format.
+     * The k of new kmer will increase by 1
+     * e.g. AAGCT merge with A => AAAGCT
+     * 
+     * @param k
+     *            :input k of kmer
+     * @param kmer
+     *            : input bytes of kmer
+     * @param preCode
+     *            : next neighbor in gene-code format
+     * @return the merged Kmer,this K of this Kmer is k+1
+     */
+    public VKmerBytesWritable mergeKmerWithPreCode(final VKmerBytesWritable kmer, byte preCode) {
+        this.kmer.reset(kmer.getKmerLetterLength() + 1);
+        int byteInMergedKmer = 0;
+        if (kmer.getKmerLetterLength() % 4 == 0) {
+            this.kmer.getBytes()[0 + kmer.getKmerOffset()] = (byte) ((kmer.getBytes()[0 + kmer.getKmerOffset()] >> 6) & 0x3);
+            byteInMergedKmer++;
+        }
+        for (int i = 0; i < kmer.getKmerByteLength() - 1; i++, byteInMergedKmer++) {
+            this.kmer.getBytes()[byteInMergedKmer + kmer.getKmerOffset()] = (byte) ((kmer.getBytes()[i + kmer.getKmerOffset()] << 2) | ((kmer.getBytes()[i + kmer.getKmerOffset() + 1] >> 6) & 0x3));
+        }
+        this.kmer.getBytes()[byteInMergedKmer + kmer.getKmerOffset()] = (byte) ((kmer.getBytes()[kmer.getKmerOffset() + kmer.getKmerByteLength() - 1] << 2) | (preCode & 0x3));
+        this.kmer.clearLeadBit();
+        return this.kmer;
+    }
+
+    /**
+     * Merge two kmer to one kmer
+     * e.g. ACTA + ACCGT => ACTAACCGT
+     * 
+     * @param preK
+     *            : previous k of kmer
+     * @param kmerPre
+     *            : bytes array of previous kmer
+     * @param nextK
+     *            : next k of kmer
+     * @param kmerNext
+     *            : bytes array of next kmer
+     * @return merged kmer, the new k is @preK + @nextK
+     */
+    public VKmerBytesWritable mergeTwoKmer(final VKmerBytesWritable preKmer, final VKmerBytesWritable nextKmer) {
+        kmer.reset(preKmer.getKmerLetterLength() + nextKmer.getKmerLetterLength());
+        int i = 1;
+        for (; i <= preKmer.getKmerByteLength(); i++) {
+            kmer.getBytes()[kmer.getKmerOffset() + kmer.getKmerByteLength() - i] = preKmer.getBytes()[preKmer.getKmerOffset() + preKmer.getKmerByteLength() - i];
+        }
+        if (i > 1) {
+            i--;
+        }
+        if (preKmer.getKmerLetterLength() % 4 == 0) {
+            for (int j = 1; j <= nextKmer.getKmerByteLength(); j++) {
+                kmer.getBytes()[kmer.getKmerOffset() + kmer.getKmerByteLength() - i - j] = nextKmer.getBytes()[nextKmer.getKmerOffset() + nextKmer.getKmerByteLength() - j];
+            }
+        } else {
+            int posNeedToMove = ((preKmer.getKmerLetterLength() % 4) << 1);
+            kmer.getBytes()[kmer.getKmerOffset() + kmer.getKmerByteLength() - i] |= nextKmer.getBytes()[nextKmer.getKmerOffset() + nextKmer.getKmerByteLength() - 1] << posNeedToMove;
+            for (int j = 1; j < nextKmer.getKmerByteLength(); j++) {
+                kmer.getBytes()[kmer.getKmerOffset() + kmer.getKmerByteLength() - i - j] = (byte) (((nextKmer.getBytes()[nextKmer.getKmerOffset() + nextKmer.getKmerByteLength() - j] & 0xff) >> (8 - posNeedToMove)) | (nextKmer
+                        .getBytes()[nextKmer.getKmerOffset() + nextKmer.getKmerByteLength() - j - 1] << posNeedToMove));
+            }
+            if (nextKmer.getKmerLetterLength() % 4 == 0 || (nextKmer.getKmerLetterLength() % 4) * 2 + posNeedToMove > 8) {
+                kmer.getBytes()[0 + kmer.getKmerOffset()] = (byte) ((0xff & nextKmer.getBytes()[0 + nextKmer.getKmerOffset()]) >> (8 - posNeedToMove));
+            }
+        }
+        kmer.clearLeadBit();
+        return kmer;
+    }
+
+    /**
+     * Safely shifted the kmer forward without change the input kmer
+     * e.g. AGCGC shift with T => GCGCT
+     * 
+     * @param k
+     *            : kmer length
+     * @param kmer
+     *            : input kmer
+     * @param afterCode
+     *            : input genecode
+     * @return new created kmer that shifted by afterCode, the K will not change
+     */
+    public VKmerBytesWritable shiftKmerWithNextCode(final VKmerBytesWritable kmer, byte afterCode) {
+        this.kmer.setAsCopy(kmer);
+        this.kmer.shiftKmerWithNextCode(afterCode);
+        return this.kmer;
+    }
+
+    /**
+     * Safely shifted the kmer backward without change the input kmer
+     * e.g. AGCGC shift with T => TAGCG
+     * 
+     * @param k
+     *            : kmer length
+     * @param kmer
+     *            : input kmer
+     * @param preCode
+     *            : input genecode
+     * @return new created kmer that shifted by preCode, the K will not change
+     */
+    public VKmerBytesWritable shiftKmerWithPreCode(final VKmerBytesWritable kmer, byte preCode) {
+        this.kmer.setAsCopy(kmer);
+        this.kmer.shiftKmerWithPreCode(preCode);
+        return this.kmer;
+    }
+
+    /**
+     * get the reverse sequence of given kmer
+     * 
+     * @param kmer
+     */
+    public VKmerBytesWritable reverse(final VKmerBytesWritable kmer) {
+        this.kmer.reset(kmer.getKmerLetterLength());
+
+        int curPosAtKmer = ((kmer.getKmerLetterLength() - 1) % 4) << 1;
+        int curByteAtKmer = 0;
+
+        int curPosAtReverse = 0;
+        int curByteAtReverse = this.kmer.getKmerByteLength() - 1;
+        this.kmer.getBytes()[curByteAtReverse + this.kmer.getKmerOffset()] = 0;
+        for (int i = 0; i < kmer.getKmerLetterLength(); i++) {
+            byte gene = (byte) ((kmer.getBytes()[curByteAtKmer + kmer.getKmerOffset()] >> curPosAtKmer) & 0x03);
+            this.kmer.getBytes()[curByteAtReverse + this.kmer.getKmerOffset()] |= gene << curPosAtReverse;
+            curPosAtReverse += 2;
+            if (curPosAtReverse >= 8) {
+                curPosAtReverse = 0;
+                this.kmer.getBytes()[--curByteAtReverse + this.kmer.getKmerOffset()] = 0;
+            }
+            curPosAtKmer -= 2;
+            if (curPosAtKmer < 0) {
+                curPosAtKmer = 6;
+                curByteAtKmer++;
+            }
+        }
+        this.kmer.clearLeadBit();
+        return this.kmer;
+    }
+}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
new file mode 100644
index 0000000..807dc7f
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
@@ -0,0 +1,333 @@
+package edu.uci.ics.genomix.type;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.Comparator;
+
+import org.apache.hadoop.io.WritableComparable;
+
+import edu.uci.ics.genomix.data.Marshal;
+
+
+public class NodeWritable implements WritableComparable<NodeWritable>, Serializable{
+
+    private static final long serialVersionUID = 1L;
+    public static final NodeWritable EMPTY_NODE = new NodeWritable();
+    
+    private static final int SIZE_FLOAT = 4;
+    
+    private PositionListWritable nodeIdList;
+    private VKmerListWritable forwardForwardList;
+    private VKmerListWritable forwardReverseList;
+    private VKmerListWritable reverseForwardList;
+    private VKmerListWritable reverseReverseList;
+    private VKmerBytesWritable kmer;
+    private float averageCoverage;
+    
+    // merge/update directions
+    public static class DirectionFlag {
+        public static final byte DIR_FF = 0b00 << 0;
+        public static final byte DIR_FR = 0b01 << 0;
+        public static final byte DIR_RF = 0b10 << 0;
+        public static final byte DIR_RR = 0b11 << 0;
+        public static final byte DIR_MASK = 0b11 << 0;
+    }
+    
+    public NodeWritable() {
+        nodeIdList = new PositionListWritable();
+        forwardForwardList = new VKmerListWritable();
+        forwardReverseList = new VKmerListWritable();
+        reverseForwardList = new VKmerListWritable();
+        reverseReverseList = new VKmerListWritable();
+        kmer = new VKmerBytesWritable();  // in graph construction - not set kmerlength Optimization: VKmer
+        averageCoverage = 0;
+    }
+    
+    public NodeWritable(PositionListWritable nodeIdList, VKmerListWritable FFList, VKmerListWritable FRList,
+            VKmerListWritable RFList, VKmerListWritable RRList, VKmerBytesWritable kmer, float coverage) {
+        this();
+        set(nodeIdList, FFList, FRList, RFList, RRList, kmer, coverage);
+    }
+    
+    public void set(NodeWritable node){
+        set(node.nodeIdList, node.forwardForwardList, node.forwardReverseList, node.reverseForwardList, 
+                node.reverseReverseList, node.kmer, node.averageCoverage);
+    }
+    
+    public void set(PositionListWritable nodeIdList, VKmerListWritable FFList, VKmerListWritable FRList,
+            VKmerListWritable RFList, VKmerListWritable RRList, VKmerBytesWritable kmer2, float coverage) {
+        this.nodeIdList.set(nodeIdList);
+        this.forwardForwardList.setCopy(FFList);
+        this.forwardReverseList.setCopy(FRList);
+        this.reverseForwardList.setCopy(RFList);
+        this.reverseReverseList.setCopy(RRList);
+        this.kmer.setAsCopy(kmer2);
+        this.averageCoverage = coverage;
+    }
+
+    public void reset() {
+        this.nodeIdList.reset();
+        this.forwardForwardList.reset();
+        this.forwardReverseList.reset();
+        this.reverseForwardList.reset();
+        this.reverseReverseList.reset();
+        this.kmer.reset(0);
+        averageCoverage = 0;
+    }
+    
+    public PositionListWritable getNodeIdList() {
+        return nodeIdList;
+    }
+
+    public void setNodeIdList(PositionListWritable nodeIdList) {
+        this.nodeIdList.set(nodeIdList);
+    }
+
+    public VKmerBytesWritable getKmer() {
+        return kmer;
+    }
+
+    public void setKmer(VKmerBytesWritable kmer) {
+        this.kmer.setAsCopy(kmer);
+    }
+    
+    public int getKmerLength() {
+        return kmer.getKmerLetterLength();
+    }
+    
+    public VKmerListWritable getFFList() {
+        return forwardForwardList;
+    }
+
+    public VKmerListWritable getFRList() {
+        return forwardReverseList;
+    }
+
+    public VKmerListWritable getRFList() {
+        return reverseForwardList;
+    }
+
+    public VKmerListWritable getRRList() {
+        return reverseReverseList;
+    }
+    
+	public void setFFList(VKmerListWritable forwardForwardList) {
+		this.forwardForwardList.setCopy(forwardForwardList);
+	}
+
+	public void setFRList(VKmerListWritable forwardReverseList) {
+		this.forwardReverseList.setCopy(forwardReverseList);
+	}
+
+	public void setRFList(VKmerListWritable reverseForwardList) {
+		this.reverseForwardList.setCopy(reverseForwardList);
+	}
+
+	public void setRRList(VKmerListWritable reverseReverseList) {
+		this.reverseReverseList.setCopy(reverseReverseList);
+	}
+
+	public VKmerListWritable getListFromDir(byte dir) {
+        switch (dir & DirectionFlag.DIR_MASK) {
+            case DirectionFlag.DIR_FF:
+                return getFFList();
+            case DirectionFlag.DIR_FR:
+                return getFRList();
+            case DirectionFlag.DIR_RF:
+                return getRFList();
+            case DirectionFlag.DIR_RR:
+                return getRRList();
+            default:
+                throw new RuntimeException("Unrecognized direction in getListFromDir: " + dir);
+        }
+    }
+	
+	/**
+	 * Update my coverage to be the average of this and other. Used when merging paths.
+	 */
+	public void mergeCoverage(NodeWritable other) {
+	    // sequence considered in the average doesn't include anything overlapping with other kmers
+	    float adjustedLength = kmer.getKmerLetterLength() + other.kmer.getKmerLetterLength() - (KmerBytesWritable.getKmerLength() - 1) * 2;
+	    
+	    float myCount = (kmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1) * averageCoverage;
+	    float otherCount = (other.kmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1) * other.averageCoverage;
+	    averageCoverage = (myCount + otherCount) / adjustedLength;
+	}
+	
+	/**
+	 * Update my coverage as if all the reads in other became my own 
+	 */
+	public void addCoverage(NodeWritable other) {
+	    float myAdjustedLength = kmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1;
+	    float otherAdjustedLength = other.kmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1; 
+	    averageCoverage += other.averageCoverage * (otherAdjustedLength / myAdjustedLength);
+	}
+	
+	public void setAvgCoverage(float coverage) {
+	    averageCoverage = coverage;
+	}
+	
+	public float getAvgCoverage() {
+	    return averageCoverage;
+	}
+	
+	/**
+	 * Returns the length of the byte-array version of this node
+	 */
+	public int getSerializedLength() {
+	    return nodeIdList.getLength() + forwardForwardList.getLength() + forwardReverseList.getLength() + 
+	            reverseForwardList.getLength() + reverseReverseList.getLength() + kmer.getLength() + SIZE_FLOAT;
+	}
+	
+	/**
+     * Return this Node's representation as a new byte array 
+     */
+    public byte[] marshalToByteArray() throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream(getSerializedLength());
+        DataOutputStream out = new DataOutputStream(baos);
+        write(out);
+        return baos.toByteArray();
+    }
+    
+    public void setAsCopy(byte[] data, int offset) {
+        int curOffset = offset;
+        nodeIdList.set(data, curOffset);
+        
+        curOffset += nodeIdList.getLength();
+        forwardForwardList.setCopy(data, curOffset);
+        curOffset += forwardForwardList.getLength();
+        forwardReverseList.setCopy(data, curOffset);
+        curOffset += forwardReverseList.getLength();
+        reverseForwardList.setCopy(data, curOffset);
+        curOffset += reverseForwardList.getLength();
+        reverseReverseList.setCopy(data, curOffset);
+        
+        curOffset += reverseReverseList.getLength();
+        kmer.setAsCopy(data, curOffset);
+        
+        curOffset += kmer.getLength();
+        averageCoverage = Marshal.getFloat(data, curOffset);
+    }
+    
+    public void setAsReference(byte[] data, int offset) {
+        int curOffset = offset;
+        nodeIdList.setNewReference(data, curOffset);
+        
+        curOffset += nodeIdList.getLength();
+        forwardForwardList.setNewReference(data, curOffset);
+        curOffset += forwardForwardList.getLength();
+        forwardReverseList.setNewReference(data, curOffset);
+        curOffset += forwardReverseList.getLength();
+        reverseForwardList.setNewReference(data, curOffset);
+        curOffset += reverseForwardList.getLength();
+        reverseReverseList.setNewReference(data, curOffset);
+        
+        curOffset += reverseReverseList.getLength();
+        kmer.setAsReference(data, curOffset);
+        
+        curOffset += kmer.getLength();
+        averageCoverage = Marshal.getFloat(data, curOffset);
+    }
+	
+    @Override
+    public void write(DataOutput out) throws IOException {
+        this.nodeIdList.write(out);
+        this.forwardForwardList.write(out);
+        this.forwardReverseList.write(out);
+        this.reverseForwardList.write(out);
+        this.reverseReverseList.write(out);
+        this.kmer.write(out);
+        out.writeFloat(averageCoverage);
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        reset();
+        this.nodeIdList.readFields(in);
+        this.forwardForwardList.readFields(in);
+        this.forwardReverseList.readFields(in);
+        this.reverseForwardList.readFields(in);
+        this.reverseReverseList.readFields(in);
+        this.kmer.readFields(in);
+        averageCoverage = in.readFloat();
+    }
+
+    @Override
+    public int compareTo(NodeWritable other) {
+        return this.kmer.compareTo(other.kmer);
+    }
+    
+    public class SortByCoverage implements Comparator<NodeWritable> {
+        @Override
+        public int compare(NodeWritable left, NodeWritable right) {
+            return Float.compare(left.averageCoverage, right.averageCoverage);
+        }
+    }
+    
+    @Override
+    public int hashCode() {
+        return this.kmer.hashCode();
+    }
+    
+    @Override
+    public boolean equals(Object o) {
+        if (o instanceof NodeWritable) {
+            NodeWritable nw = (NodeWritable) o;
+            return (this.nodeIdList.equals(nw.nodeIdList)
+                    && this.forwardForwardList.equals(nw.forwardForwardList)
+                    && this.forwardReverseList.equals(nw.forwardReverseList)
+                    && this.reverseForwardList.equals(nw.reverseForwardList)
+                    && this.reverseReverseList.equals(nw.reverseReverseList) && this.kmer.equals(nw.kmer));
+        }
+        return false;
+    }
+    
+    @Override
+    public String toString() {
+        StringBuilder sbuilder = new StringBuilder();
+        sbuilder.append('{');
+        sbuilder.append(nodeIdList.toString()).append('\t');
+        sbuilder.append(forwardForwardList.toString()).append('\t');
+        sbuilder.append(forwardReverseList.toString()).append('\t');
+        sbuilder.append(reverseForwardList.toString()).append('\t');
+        sbuilder.append(reverseReverseList.toString()).append('\t');
+        sbuilder.append(kmer.toString()).append('\t');
+        sbuilder.append(averageCoverage).append('x').append('}');
+        return sbuilder.toString();
+    }
+
+    public void mergeForwardNext(final NodeWritable nextNode, int initialKmerSize) {
+        this.forwardForwardList.setCopy(nextNode.forwardForwardList);
+        this.forwardReverseList.setCopy(nextNode.forwardReverseList);
+        kmer.mergeWithFFKmer(initialKmerSize, nextNode.getKmer());
+    }
+
+    public void mergeForwardPre(final NodeWritable preNode, int initialKmerSize) {
+        this.reverseForwardList.setCopy(preNode.reverseForwardList);
+        this.reverseReverseList.setCopy(preNode.reverseReverseList);
+        kmer.mergeWithRRKmer(initialKmerSize, preNode.getKmer());
+    }
+    
+    public int inDegree() {
+        return reverseReverseList.getCountOfPosition() + reverseForwardList.getCountOfPosition();
+    }
+
+    public int outDegree() {
+        return forwardForwardList.getCountOfPosition() + forwardReverseList.getCountOfPosition();
+    }
+
+    /*
+     * Return if this node is a "path" compressible node, that is, it has an in-degree and out-degree of 1 
+     */
+    public boolean isPathNode() {
+        return inDegree() == 1 && outDegree() == 1;
+    }
+
+    public boolean isSimpleOrTerminalPath() {
+        return isPathNode() || (inDegree() == 0 && outDegree() == 1) || (inDegree() == 1 && outDegree() == 0);
+    }
+}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java
new file mode 100644
index 0000000..d9a409d
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java
@@ -0,0 +1,295 @@
+package edu.uci.ics.genomix.type;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.hadoop.io.Writable;
+
+import edu.uci.ics.genomix.data.Marshal;
+import edu.uci.ics.genomix.type.PositionWritable;
+
+public class PositionListWritable implements Writable, Iterable<PositionWritable>, Serializable {
+    private static final long serialVersionUID = 1L;
+    protected static final byte[] EMPTY_BYTES = {0,0,0,0};
+    protected static final int HEADER_SIZE = 4;
+    
+    protected byte[] storage;
+    protected int offset;
+    protected int valueCount;
+    protected int maxStorageSize;
+
+
+    protected PositionWritable posIter = new PositionWritable();
+
+    public PositionListWritable() {
+        storage = EMPTY_BYTES;
+        valueCount = 0;
+        offset = 0;
+        maxStorageSize = storage.length; 
+    }
+
+    public PositionListWritable(byte[] data, int offset) {
+        setNewReference(data, offset);
+    }
+
+    public PositionListWritable(List<PositionWritable> posns) {
+        this();
+        setSize(posns.size() * PositionWritable.LENGTH + HEADER_SIZE); // reserve space for all elements
+        for (PositionWritable p : posns) {
+            append(p);
+        }
+    }
+  
+    public void setNewReference(byte[] data, int offset) {
+        this.valueCount = Marshal.getInt(data, offset);
+        this.storage = data;
+        this.offset = offset;
+        maxStorageSize = valueCount * PositionWritable.LENGTH + HEADER_SIZE;
+    }
+
+    public void append(long uuid) {
+        setSize((1 + valueCount) * PositionWritable.LENGTH + HEADER_SIZE);
+        Marshal.putLong(uuid, storage, offset + valueCount * PositionWritable.LENGTH + HEADER_SIZE);
+        valueCount += 1;
+        Marshal.putInt(valueCount, storage, offset);
+    }
+
+    public void append(byte mateId, long readId, int posId) {
+        append(PositionWritable.makeUUID(mateId, readId, posId));
+    }
+
+    public void append(PositionWritable pos) {
+        if (pos != null)
+            append(pos.getUUID());
+        else
+            throw new RuntimeException("This position is null pointer!");
+    }
+
+    /*
+     * Append the otherList to the end of myList
+     */
+    public void appendList(PositionListWritable otherList) {
+        if (otherList.valueCount > 0) {
+            setSize((valueCount + otherList.valueCount) * PositionWritable.LENGTH + HEADER_SIZE);
+            // copy contents of otherList into the end of my storage
+            System.arraycopy(otherList.storage, otherList.offset + HEADER_SIZE, storage, offset + valueCount
+                    * PositionWritable.LENGTH + HEADER_SIZE, otherList.valueCount * PositionWritable.LENGTH);
+            valueCount += otherList.valueCount;
+            Marshal.putInt(valueCount, storage, offset);
+        }
+    }
+
+    /**
+     * Save the union of my list and otherList. Uses a temporary HashSet for
+     * uniquefication
+     */
+    public void unionUpdate(PositionListWritable otherList) {
+        int newSize = valueCount + otherList.valueCount;
+        HashSet<PositionWritable> uniqueElements = new HashSet<PositionWritable>(newSize);
+        for (PositionWritable pos : this) {
+            uniqueElements.add(new PositionWritable(pos));
+        }
+        for (PositionWritable pos : otherList) {
+            uniqueElements.add(pos);
+        }
+        valueCount = 0;
+        setSize(newSize * PositionWritable.LENGTH + HEADER_SIZE);
+        for (PositionWritable pos : uniqueElements) {
+            append(pos);
+        }
+    }
+
+    public static int getCountByDataLength(int length) {
+        if (length % PositionWritable.LENGTH != 0) {
+            throw new IllegalArgumentException("Length of positionlist is invalid");
+        }
+        return length / PositionWritable.LENGTH;
+    }
+
+    public void set(PositionListWritable otherList) {
+        set(otherList.storage, otherList.offset);
+    }
+
+    public void set(byte[] newData, int newOffset) {
+        int newValueCount = Marshal.getInt(newData, newOffset);
+        setSize(newValueCount * PositionWritable.LENGTH + HEADER_SIZE);
+        if (newValueCount > 0) {
+            System.arraycopy(newData, newOffset + HEADER_SIZE, storage, this.offset + HEADER_SIZE, newValueCount * PositionWritable.LENGTH);
+        }
+        valueCount = newValueCount;
+        Marshal.putInt(valueCount, storage, this.offset);
+    }
+
+    public void reset() {
+        valueCount = 0;
+        Marshal.putInt(valueCount, storage, offset);
+    }
+
+    protected void setSize(int size) {
+        if (size > getCapacity()) {
+            setCapacity((size * 3 / 2));
+        }
+    }
+
+    protected int getCapacity() {
+        return maxStorageSize - offset;
+    }
+    
+    public String printReadIdSet(){
+        String output = "";
+        for(int i = 0; i < valueCount - 1; i++)
+            output += getPosition(i).getReadId() + ",";
+        output += getPosition(valueCount - 1).getReadId();
+        return output;
+    }
+
+    protected void setCapacity(int new_cap) {
+        if (new_cap > getCapacity()) {
+            byte[] new_data = new byte[new_cap];
+            if (valueCount > 0) {
+                System.arraycopy(storage, offset, new_data, 0, valueCount * PositionWritable.LENGTH + HEADER_SIZE);
+            }
+            storage = new_data;
+            offset = 0;
+            maxStorageSize = storage.length;
+        }
+    }
+
+    public PositionWritable getPosition(int i) {
+        if (i >= valueCount) {
+            throw new ArrayIndexOutOfBoundsException("No such positions");
+        }
+        posIter.setNewReference(storage, offset + i * PositionWritable.LENGTH + HEADER_SIZE);
+        return posIter;
+    }
+
+    public void resetPosition(int i, long uuid) {
+        if (i >= valueCount) {
+            throw new ArrayIndexOutOfBoundsException("No such positions");
+        }
+        Marshal.putLong(uuid, storage, offset + i * PositionWritable.LENGTH + HEADER_SIZE);
+    }
+
+    public int getCountOfPosition() {
+        return valueCount;
+    }
+
+    public byte[] getByteArray() {
+        return storage;
+    }
+
+    public int getStartOffset() {
+        return offset;
+    }
+
+    public int getLength() {
+        return valueCount * PositionWritable.LENGTH + HEADER_SIZE;
+    }
+
+    @Override
+    public Iterator<PositionWritable> iterator() {
+        Iterator<PositionWritable> it = new Iterator<PositionWritable>() {
+
+            private int currentIndex = 0;
+
+            @Override
+            public boolean hasNext() {
+                return currentIndex < valueCount;
+            }
+
+            @Override
+            public PositionWritable next() {
+                return getPosition(currentIndex++);
+            }
+
+            @Override
+            public void remove() {
+                if (currentIndex < valueCount)
+                    System.arraycopy(storage, offset + currentIndex * PositionWritable.LENGTH + HEADER_SIZE, storage, offset
+                            + (currentIndex - 1) * PositionWritable.LENGTH + HEADER_SIZE, (valueCount - currentIndex)
+                            * PositionWritable.LENGTH);
+                valueCount--;
+                currentIndex--;
+                Marshal.putInt(valueCount, storage, offset);
+            }
+        };
+        return it;
+    }
+
+    /*
+     * remove the first instance of @toRemove. Uses a linear scan.  Throws an exception if not in this list.
+     */
+    public void remove(PositionWritable toRemove, boolean ignoreMissing) {
+        Iterator<PositionWritable> posIterator = this.iterator();
+        while (posIterator.hasNext()) {
+            if (toRemove.equals(posIterator.next())) {
+                posIterator.remove();
+                return;  // found it. return early. 
+            }
+        }
+        // element not found.
+        if (!ignoreMissing) {
+            throw new ArrayIndexOutOfBoundsException("the PositionWritable `" + toRemove.toString()
+                    + "` was not found in this list.");
+        }
+    }
+
+    public void remove(PositionWritable toRemove) {
+        remove(toRemove, false);
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        out.writeInt(valueCount);
+        out.write(storage, offset + HEADER_SIZE, valueCount * PositionWritable.LENGTH);
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        int newValueCount = in.readInt();
+        setSize(newValueCount * PositionWritable.LENGTH + HEADER_SIZE);
+        in.readFully(storage, offset + HEADER_SIZE, newValueCount * PositionWritable.LENGTH);
+        valueCount = newValueCount;
+        Marshal.putInt(valueCount, storage, offset);
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sbuilder = new StringBuilder();
+        sbuilder.append('[');
+        for (PositionWritable pos : this) {
+            sbuilder.append(pos.toString());
+            sbuilder.append(',');
+        }
+        if (valueCount > 0) {
+            sbuilder.setCharAt(sbuilder.length() - 1, ']');
+        } else {
+            sbuilder.append(']');
+        }
+        return sbuilder.toString();
+    }
+
+    @Override
+    public int hashCode() {
+        return Marshal.hashBytes(getByteArray(), getStartOffset(), getLength());
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (!(o instanceof PositionListWritable))
+            return false;
+        PositionListWritable other = (PositionListWritable) o;
+        if (this.valueCount != other.valueCount)
+            return false;
+        for (int i = 0; i < this.valueCount; i++) {
+            if (!this.getPosition(i).equals(other.getPosition(i)))
+                return false;
+        }
+        return true;
+    }
+}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionWritable.java
new file mode 100644
index 0000000..bcdd423
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionWritable.java
@@ -0,0 +1,132 @@
+package edu.uci.ics.genomix.type;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+
+import org.apache.hadoop.io.WritableComparable;
+
+import edu.uci.ics.genomix.data.Marshal;
+import edu.uci.ics.genomix.type.PositionWritable;
+
+public class PositionWritable implements WritableComparable<PositionWritable>, Serializable{
+    private static final long serialVersionUID = 1L;
+    protected byte[] storage;
+    protected int offset;
+    public static final int LENGTH = 8;
+    
+    public static final int totalBits = 64;
+    private static final int bitsForMate = 1;
+    private static final int bitsForPosition = 16;
+    private static final int readIdShift = bitsForPosition + bitsForMate;
+    private static final int positionIdShift = bitsForMate;
+    
+    public PositionWritable() {
+        storage = new byte[LENGTH];
+        offset = 0;
+    }
+    
+    public PositionWritable(byte mateId, long readId, int posId){
+        this();
+        set(mateId, readId, posId);
+    }
+    
+    public PositionWritable(PositionWritable other) {
+        this();
+        set(other);
+    }
+    public PositionWritable(byte[] storage, int offset) {
+        setNewReference(storage, offset);
+    }
+    
+    public void set(long uuid){
+        Marshal.putLong(uuid, storage, offset);
+    }
+    
+    public static long makeUUID(byte mateId, long readId, int posId) {
+        return (readId << 17) + ((posId & 0xFFFF) << 1) + (mateId & 0b1);
+    }
+    
+    public void set(byte mateId, long readId, int posId){
+        Marshal.putLong(makeUUID(mateId, readId, posId), storage, offset);
+    }
+    
+    public void set(PositionWritable pos) {
+        set(pos.getMateId(),pos.getReadId(),pos.getPosId());
+    }
+    
+    public void setNewReference(byte[] storage, int offset) {
+        this.storage = storage;
+        this.offset = offset;
+    }
+    
+    public void reset(){
+        storage = new byte[LENGTH];
+        offset = 0;
+    }
+    
+    public long getUUID(){
+        return Marshal.getLong(storage, offset);
+    }
+    
+    public byte getMateId(){
+        return (byte) (Marshal.getLong(storage, offset) & 0b1);
+    }
+    
+    public long getReadId(){
+        return Marshal.getLong(storage, offset) >>> readIdShift;
+    }
+    
+    public int getPosId(){
+        return (int) ((Marshal.getLong(storage, offset) >>> positionIdShift) & 0xffff);
+    }
+    
+    public byte[] getByteArray() {
+        return storage;
+    }
+
+    public int getStartOffset() {
+        return offset;
+    }
+
+    public int getLength() {
+        return LENGTH;
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        in.readFully(storage, offset, LENGTH);
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        out.write(storage, offset, LENGTH);
+    }
+    
+    @Override
+    public int hashCode() {
+        return Marshal.hashBytes(getByteArray(), getStartOffset(), getLength());
+    }
+    
+    @Override
+    public boolean equals(Object o) {
+        if (!(o instanceof PositionWritable))
+            return false;
+        PositionWritable other = (PositionWritable) o;
+        return this.getUUID() == other.getUUID();
+    }
+    
+    @Override
+    public int compareTo(PositionWritable other) {
+        return (this.getUUID() < other.getUUID()) ? -1 : ((this.getUUID() == other.getUUID()) ? 0 : 1);
+    }
+    
+    /*
+     * String of form "(readId-posID_mate)" where mate is _0 or _1
+     */
+    @Override
+    public String toString() {
+        return "(" + this.getReadId() + "-" + this.getPosId() + "_" + (this.getMateId()) + ")";
+    }
+}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
new file mode 100644
index 0000000..f9ebd15
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
@@ -0,0 +1,733 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.type;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+
+import org.apache.hadoop.io.BinaryComparable;
+import org.apache.hadoop.io.WritableComparable;
+import org.apache.hadoop.io.WritableComparator;
+
+import edu.uci.ics.genomix.data.KmerUtil;
+import edu.uci.ics.genomix.data.Marshal;
+import edu.uci.ics.genomix.type.NodeWritable.DirectionFlag;
+
+
+/**
+ * Variable-length kmer which stores its length internally.
+ * Note: `offset` as used in this class is the offset at which the *kmer*
+ * begins. There is a {@value HEADER_SIZE}-byte header preceding the kmer
+ */
+public class VKmerBytesWritable extends BinaryComparable implements Serializable, WritableComparable<BinaryComparable> {
+    private static final long serialVersionUID = 1L;
+    protected static final byte[] EMPTY_BYTES = { 0, 0, 0, 0 }; // int indicating 0 length
+    protected static final int HEADER_SIZE = 4; // number of bytes for header info
+
+    protected int lettersInKmer;
+    protected int bytesUsed;
+    protected byte[] bytes;
+    protected int kmerStartOffset;
+    protected int storageMaxSize;  // since we may be a reference inside a larger datablock, we must track our maximum size
+
+    /**
+     * Initialize as empty kmer
+     */
+    public VKmerBytesWritable() {
+        this(EMPTY_BYTES, 0);
+    }
+
+    /**
+     * Copy contents of kmer string
+     */
+    public VKmerBytesWritable(String kmer) {
+        bytes = new byte[HEADER_SIZE + KmerUtil.getByteNumFromK(kmer.length())];
+        kmerStartOffset = HEADER_SIZE;
+        storageMaxSize = bytes.length;
+        setAsCopy(kmer);
+    }
+
+    /**
+     * Set as reference to given data
+     * 
+     * @param storage
+     *            : byte array with header
+     * @param offset
+     */
+    public VKmerBytesWritable(byte[] storage, int offset) {
+        setAsReference(storage, offset);
+    }
+
+    /**
+     * Reserve space for k letters
+     */
+    public VKmerBytesWritable(int k) {
+        if (k > 0) {
+            bytes = new byte[HEADER_SIZE + KmerUtil.getByteNumFromK(k)];
+        } else if (k == 0) {
+            bytes = EMPTY_BYTES;
+        } else {
+            throw new IllegalArgumentException("Invalid K (" + k + ").");
+        }
+        kmerStartOffset = HEADER_SIZE;
+        storageMaxSize = bytes.length;
+        setKmerLength(k);
+    }
+
+    /**
+     * deep copy of kmer in other
+     * 
+     * @param other
+     */
+    public VKmerBytesWritable(VKmerBytesWritable other) {
+        this(other.lettersInKmer);
+        setAsCopy(other);
+    }
+    
+    /**
+     * deep copy of kmer in other
+     * 
+     * @param other
+     */
+    public VKmerBytesWritable(KmerBytesWritable other) {
+        this(other.lettersInKmer);
+        setAsCopy(other);
+    }
+
+    /**
+     * Deep copy of the given kmer
+     * 
+     * @param other
+     */
+    public void setAsCopy(VKmerBytesWritable other) {
+        reset(other.lettersInKmer);
+        if (lettersInKmer > 0) {
+            System.arraycopy(other.bytes, other.kmerStartOffset, bytes, this.kmerStartOffset, bytesUsed);
+        }
+    }
+    
+    /**
+     * Deep copy of the given kmer
+     * 
+     * @param other
+     */
+    public void setAsCopy(KmerBytesWritable other) {
+        reset(other.lettersInKmer);
+        if (lettersInKmer > 0) {
+            System.arraycopy(other.bytes, other.offset, bytes, this.kmerStartOffset, bytesUsed);
+        }
+    }
+
+    /**
+     * set from String kmer
+     */
+    public void setAsCopy(String kmer) {
+        int k = kmer.length();
+        reset(k);
+        System.arraycopy(kmer.getBytes(), 0, bytes, kmerStartOffset, bytesUsed);
+    }
+
+    /**
+     * Deep copy of the given bytes data
+     * 
+     * @param newData
+     *            : byte array to copy (should have a header)
+     * @param offset
+     */
+    public void setAsCopy(byte[] newData, int offset) {
+        int k = Marshal.getInt(newData, offset);
+        reset(k);
+        System.arraycopy(newData, offset + HEADER_SIZE, bytes, this.kmerStartOffset, bytesUsed);
+    }
+
+    
+    /**
+     * Point this datablock to the given bytes array It works like the pointer
+     * to new datablock.
+     * 
+     * @param newData
+     *            : byte array to copy (should have a header)
+     * @param blockOffset
+     */
+    public void setAsReference(byte[] newData, int blockOffset) {
+        bytes = newData;
+        kmerStartOffset = blockOffset + HEADER_SIZE;
+        int kRequested = Marshal.getInt(newData, blockOffset);
+        int bytesRequested = KmerUtil.getByteNumFromK(kRequested) + HEADER_SIZE;
+        if (newData.length - blockOffset < bytesRequested) {
+            throw new IllegalArgumentException("Requested " + bytesRequested + " bytes (k=" + kRequested
+                    + ") but buffer has only " + (newData.length - blockOffset) + " bytes");
+        }
+        storageMaxSize = bytesRequested;  // since we are a reference, store our max capacity
+        setKmerLength(kRequested);
+    }
+
+    /**
+     * Reset array by kmerlength
+     * 
+     * @param k
+     */
+    public void reset(int k) {
+        int newByteLength = KmerUtil.getByteNumFromK(k);
+        if (bytesUsed < newByteLength) {
+            bytes = new byte[newByteLength + HEADER_SIZE];
+            kmerStartOffset = HEADER_SIZE;
+            storageMaxSize = bytes.length;
+        }
+        setKmerLength(k);
+    }
+
+    protected void clearLeadBit() {
+        if (lettersInKmer % 4 != 0) {
+            bytes[kmerStartOffset] &= (1 << ((lettersInKmer % 4) << 1)) - 1;
+        }
+    }
+
+    /**
+     * Get one genecode (A|G|C|T) from the given kmer index e.g. Get the 4th
+     * gene of the kmer ACGTA will return T
+     * 
+     * @param pos
+     * @return
+     */
+    public byte getGeneCodeAtPosition(int pos) {
+        if (pos >= lettersInKmer || pos < 0) {
+            throw new ArrayIndexOutOfBoundsException("Gene position (" + pos + ") out of bounds for k=" + lettersInKmer);
+        }
+        return geneCodeAtPosition(pos);
+    }
+
+    /**
+     * unchecked version of getGeneCodeAtPosition. Used when kmerlength is
+     * inaccurate (mid-merge)
+     */
+    private byte geneCodeAtPosition(int pos) {
+        int posByte = pos / 4;
+        int shift = (pos % 4) << 1;
+        return (byte) ((bytes[kmerStartOffset + bytesUsed - 1 - posByte] >> shift) & 0x3);
+    }
+
+    /**
+     * Shift Kmer to accept new char input
+     * 
+     * @param c
+     *            Input new gene character
+     * @return the shift out gene, in gene code format
+     */
+    public byte shiftKmerWithNextChar(byte c) {
+        return shiftKmerWithNextCode(GeneCode.getCodeFromSymbol(c));
+    }
+
+    /**
+     * Shift Kmer to accept new gene code
+     * 
+     * @param c
+     *            Input new gene code
+     * @return the shift out gene, in gene code format
+     */
+    public byte shiftKmerWithNextCode(byte c) {
+        byte output = (byte) (bytes[kmerStartOffset + bytesUsed - 1] & 0x03);
+        for (int i = bytesUsed - 1; i > 0; i--) {
+            byte in = (byte) (bytes[kmerStartOffset + i - 1] & 0x03);
+            bytes[kmerStartOffset + i] = (byte) (((bytes[kmerStartOffset + i] >>> 2) & 0x3f) | (in << 6));
+        }
+        int pos = ((lettersInKmer - 1) % 4) << 1;
+        byte code = (byte) (c << pos);
+        bytes[kmerStartOffset] = (byte) (((bytes[kmerStartOffset] >>> 2) & 0x3f) | code);
+        clearLeadBit();
+        return output;
+    }
+
+    /**
+     * Shift Kmer to accept new input char
+     * 
+     * @param c
+     *            Input new gene character
+     * @return the shiftout gene, in gene code format
+     */
+    public byte shiftKmerWithPreChar(byte c) {
+        return shiftKmerWithPreCode(GeneCode.getCodeFromSymbol(c));
+    }
+
+    /**
+     * Shift Kmer to accept new gene code
+     * 
+     * @param c
+     *            Input new gene code
+     * @return the shiftout gene, in gene code format
+     */
+    public byte shiftKmerWithPreCode(byte c) {
+        int pos = ((lettersInKmer - 1) % 4) << 1;
+        byte output = (byte) ((bytes[kmerStartOffset] >> pos) & 0x03);
+        for (int i = 0; i < bytesUsed - 1; i++) {
+            byte in = (byte) ((bytes[kmerStartOffset + i + 1] >> 6) & 0x03);
+            bytes[kmerStartOffset + i] = (byte) ((bytes[kmerStartOffset + i] << 2) | in);
+        }
+        bytes[kmerStartOffset + bytesUsed - 1] = (byte) ((bytes[kmerStartOffset + bytesUsed - 1] << 2) | c);
+        clearLeadBit();
+        return output;
+    }
+
+    public int getKmerLetterLength() {
+        return lettersInKmer;
+    }
+
+    @Override
+    public byte[] getBytes() {
+        return bytes;
+    }
+
+    /**
+     * Return the (hyracks-specific) data block offset. This includes the header.
+     */
+    public int getBlockOffset() {
+        return kmerStartOffset - HEADER_SIZE;
+    }
+
+    /**
+     * Return the data block offset where the kmer data begins. This excludes the header.
+     */
+    public int getKmerOffset() {
+        return kmerStartOffset;
+    }
+
+    /**
+     * Return the number of bytes used by both header and kmer chain
+     */
+    @Override
+    public int getLength() {
+        return bytesUsed + HEADER_SIZE;
+    }
+    
+    /**
+     * Return the number of bytes used by the kmer chain
+     */
+    public int getKmerByteLength() {
+        return bytesUsed;
+    }
+    
+
+    public void setKmerLength(int k) {
+        this.bytesUsed = KmerUtil.getByteNumFromK(k);
+        this.lettersInKmer = k;
+        saveHeader(k);
+    }
+
+    protected int getKmerByteCapacity() {
+        return storageMaxSize  - HEADER_SIZE;
+    }
+
+    protected void setKmerByteCapacity(int new_cap) {
+        if (new_cap != getKmerByteCapacity()) {
+            byte[] new_data = new byte[new_cap + HEADER_SIZE];
+            if (new_cap < bytesUsed) {
+                bytesUsed = new_cap;
+            }
+            if (bytesUsed != 0) {
+                System.arraycopy(bytes, kmerStartOffset, new_data, HEADER_SIZE, bytesUsed);
+            }
+            bytes = new_data;
+            kmerStartOffset = HEADER_SIZE;
+            storageMaxSize = bytes.length;
+        }
+    }
+
+    private void saveHeader(int length) {
+        Marshal.putInt(length, bytes, kmerStartOffset - HEADER_SIZE);
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        lettersInKmer = in.readInt();
+        bytesUsed = KmerUtil.getByteNumFromK(lettersInKmer);
+        if (lettersInKmer > 0) {
+            if (getKmerByteCapacity() < this.bytesUsed) {
+                this.bytes = new byte[this.bytesUsed + HEADER_SIZE];
+                this.kmerStartOffset = HEADER_SIZE;
+                storageMaxSize = bytes.length;
+            }
+            in.readFully(bytes, kmerStartOffset, bytesUsed);
+        }
+        saveHeader(lettersInKmer);
+    }
+
+    /**
+     * write the entire byte array including the header
+     */
+    @Override
+    public void write(DataOutput out) throws IOException {
+        out.write(bytes, kmerStartOffset - HEADER_SIZE, bytesUsed + HEADER_SIZE);
+    }
+
+    @Override
+    public int hashCode() {
+        return Marshal.hashBytes(bytes, kmerStartOffset - HEADER_SIZE, bytesUsed + HEADER_SIZE);
+    }
+
+    @Override
+    public boolean equals(Object right_obj) {
+        if (right_obj instanceof VKmerBytesWritable) {
+            // since these may be backed by storage of different sizes, we have to manually check each byte, including the header
+            VKmerBytesWritable right = (VKmerBytesWritable) right_obj;
+            for (int i = -HEADER_SIZE; i < bytesUsed; i++) {
+                if (bytes[kmerStartOffset + i] != right.bytes[right.kmerStartOffset + i]) {
+                    return false;
+                }
+            }
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public String toString() {
+        return KmerUtil.recoverKmerFrom(this.lettersInKmer, bytes, kmerStartOffset, bytesUsed);
+    }
+
+    public static class Comparator extends WritableComparator {
+
+        public Comparator() {
+            super(VKmerBytesWritable.class);
+        }
+
+        public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {
+            int kmerlength1 = Marshal.getInt(b1, s1);
+            int kmerlength2 = Marshal.getInt(b2, s2);
+            if (kmerlength1 == kmerlength2) {
+                return compareBytes(b1, s1 + HEADER_SIZE, l1 - HEADER_SIZE, b2, s2 + HEADER_SIZE, l2 - HEADER_SIZE);
+            }
+            return kmerlength1 - kmerlength2;
+        }
+    }
+
+    static { // register this comparator
+        WritableComparator.define(VKmerBytesWritable.class, new Comparator());
+    }
+
+    /**
+     * Ensures that there is space for at least `size` bytes of kmer (not
+     * including any header)
+     */
+    protected void setSize(int size) {
+        if (size > getKmerByteCapacity()) {
+            setKmerByteCapacity((size * 3 / 2));
+        }
+        this.bytesUsed = size;
+    }
+
+    public void setByRead(int k, byte[] stringBytes, int start) {
+        reset(k);
+        setByRead(stringBytes, start);
+    }
+
+    /**
+     * Read Kmer from read text into bytes array e.g. AATAG will compress as
+     * [0x000G, 0xATAA]
+     * 
+     * @param stringBytes
+     * @param start
+     */
+    private void setByRead(byte[] stringBytes, int start) {
+        byte l = 0;
+        int bytecount = 0;
+        int bcount = this.bytesUsed - 1;
+        for (int i = start; i < start + lettersInKmer && i < stringBytes.length; i++) {
+            byte code = GeneCode.getCodeFromSymbol(stringBytes[i]);
+            l |= (byte) (code << bytecount);
+            bytecount += 2;
+            if (bytecount == 8) {
+                bytes[kmerStartOffset + bcount--] = l;
+                l = 0;
+                bytecount = 0;
+            }
+        }
+        if (bcount >= 0) {
+            bytes[kmerStartOffset] = l;
+        }
+    }
+
+    public void setByReadReverse(int k, byte[] stringBytes, int start) {
+        reset(k);
+        setByReadReverse(stringBytes, start);
+    }
+
+    /**
+     * Compress Reversed read into bytes array e.g. AATAG will paired to CTATT,
+     * and then compress as [0x000T,0xTATC]
+     * 
+     * @param input
+     *            array
+     * @param start
+     *            position
+     */
+    private void setByReadReverse(byte[] array, int start) {
+        byte l = 0;
+        int bytecount = 0;
+        int bcount = bytesUsed - 1;
+        // for (int i = start + kmerlength - 1; i >= 0 && i < array.length; i--)
+        // {
+        for (int i = start + lettersInKmer - 1; i >= start && i < array.length; i--) {
+            byte code = GeneCode.getPairedCodeFromSymbol(array[i]);
+            l |= (byte) (code << bytecount);
+            bytecount += 2;
+            if (bytecount == 8) {
+                bytes[kmerStartOffset + bcount--] = l;
+                l = 0;
+                bytecount = 0;
+            }
+        }
+        if (bcount >= 0) {
+            bytes[kmerStartOffset] = l;
+        }
+    }
+
+    /**
+     * Merge Kmer with the next connected Kmer e.g. AAGCTAA merge with AACAACC,
+     * if the initial kmerSize = 3 then it will return AAGCTAACAACC
+     * 
+     * @param initialKmerSize
+     *            : the initial kmerSize
+     * @param kmer
+     *            : the next kmer
+     */
+    public void mergeWithFFKmer(int initialKmerSize, VKmerBytesWritable kmer) {
+    	if (lettersInKmer < initialKmerSize - 1 || kmer.lettersInKmer < initialKmerSize - 1) {
+    		throw new IllegalArgumentException("Not enough letters in the kmers to perform a merge! Tried K=" + initialKmerSize + ", merge '" + this + "' with '" + kmer + "'.");
+    	}
+        int preKmerLength = lettersInKmer;
+        int preSize = bytesUsed;
+        lettersInKmer += kmer.lettersInKmer - initialKmerSize + 1;
+        setSize(KmerUtil.getByteNumFromK(lettersInKmer));
+        for (int i = 1; i <= preSize; i++) {
+            bytes[kmerStartOffset + bytesUsed - i] = bytes[kmerStartOffset + preSize - i];
+        }
+        for (int k = initialKmerSize - 1; k < kmer.getKmerLetterLength(); k += 4) {
+            byte onebyte = KmerBytesWritable.getOneByteFromKmerAtPosition(k, kmer.bytes, kmer.kmerStartOffset,
+                    kmer.bytesUsed);
+            KmerBytesWritable.appendOneByteAtPosition(preKmerLength + k - initialKmerSize + 1, onebyte, bytes,
+                    kmerStartOffset, bytesUsed);
+        }
+        clearLeadBit();
+        saveHeader(lettersInKmer);
+    }
+    
+    public void mergeWithFFKmer(int kmerSize, KmerBytesWritable kmer) {
+        // TODO make this more efficient
+        mergeWithFFKmer(kmerSize, new VKmerBytesWritable(kmer.toString()));
+    }
+
+    /**
+     * Merge Kmer with the next connected Kmer, when that Kmer needs to be
+     * reverse-complemented e.g. AAGCTAA merge with GGTTGTT, if the initial
+     * kmerSize = 3 then it will return AAGCTAACAACC A merge B => A B~
+     * 
+     * @param initialKmerSize
+     *            : the initial kmerSize
+     * @param kmer
+     *            : the next kmer
+     */
+    public void mergeWithFRKmer(int initialKmerSize, VKmerBytesWritable kmer) {
+    	if (lettersInKmer < initialKmerSize - 1 || kmer.lettersInKmer < initialKmerSize - 1) {
+    		throw new IllegalArgumentException("Not enough letters in the kmers to perform a merge! Tried K=" + initialKmerSize + ", merge '" + this + "' with '" + kmer + "'.");
+    	}
+        int preSize = bytesUsed;
+        int preKmerLength = lettersInKmer;
+        lettersInKmer += kmer.lettersInKmer - initialKmerSize + 1;
+        setSize(KmerUtil.getByteNumFromK(lettersInKmer));
+        // copy prefix into right-side of buffer
+        for (int i = 1; i <= preSize; i++) {
+            bytes[kmerStartOffset + bytesUsed - i] = bytes[kmerStartOffset + preSize - i];
+        }
+
+        int bytecount = (preKmerLength % 4) * 2;
+        int bcount = bytesUsed - preSize - bytecount / 8; // may overlap
+                                                          // previous kmer
+        byte l = bcount == bytesUsed - preSize ? bytes[kmerStartOffset + bcount] : 0x00;
+        bytecount %= 8;
+        for (int i = kmer.lettersInKmer - initialKmerSize; i >= 0; i--) {
+            byte code = GeneCode.getPairedGeneCode(kmer.getGeneCodeAtPosition(i));
+            l |= (byte) (code << bytecount);
+            bytecount += 2;
+            if (bytecount == 8) {
+                bytes[kmerStartOffset + bcount--] = l;
+                l = 0;
+                bytecount = 0;
+            }
+        }
+        if (bcount >= 0) {
+            bytes[kmerStartOffset] = l;
+        }
+        saveHeader(lettersInKmer);
+    }
+    
+    public void mergeWithFRKmer(int kmerSize, KmerBytesWritable kmer) {
+        // TODO make this more efficient
+        mergeWithFRKmer(kmerSize, new VKmerBytesWritable(kmer.toString()));
+    }
+
+    /**
+     * Merge Kmer with the previous connected Kmer, when that kmer needs to be
+     * reverse-complemented e.g. AACAACC merge with TTCTGCC, if the initial
+     * kmerSize = 3 then it will return GGCAGAACAACC
+     * 
+     * @param initialKmerSize
+     *            : the initial kmerSize
+     * @param preKmer
+     *            : the previous kmer
+     */
+    public void mergeWithRFKmer(int initialKmerSize, VKmerBytesWritable preKmer) {
+        // TODO make this more efficient
+        VKmerBytesWritable reversed = new VKmerBytesWritable(preKmer.lettersInKmer);
+        reversed.setByReadReverse(preKmer.toString().getBytes(), 0);
+        mergeWithRRKmer(initialKmerSize, reversed);
+    }
+    
+    public void mergeWithRFKmer(int kmerSize, KmerBytesWritable kmer) {
+        // TODO make this more efficient
+        mergeWithRFKmer(kmerSize, new VKmerBytesWritable(kmer.toString()));
+    }
+
+    /**
+     * Merge Kmer with the previous connected Kmer e.g. AACAACC merge with
+     * AAGCTAA, if the initial kmerSize = 3 then it will return AAGCTAACAACC
+     * 
+     * @param initialKmerSize
+     *            : the initial kmerSize
+     * @param preKmer
+     *            : the previous kmer
+     */
+    public void mergeWithRRKmer(int initialKmerSize, VKmerBytesWritable preKmer) {
+    	if (lettersInKmer < initialKmerSize - 1 || preKmer.lettersInKmer < initialKmerSize - 1) {
+    		throw new IllegalArgumentException("Not enough letters in the kmers to perform a merge! Tried K=" + initialKmerSize + ", merge '" + this + "' with '" + preKmer + "'.");
+    	}
+        int preKmerLength = lettersInKmer;
+        int preSize = bytesUsed;
+        lettersInKmer += preKmer.lettersInKmer - initialKmerSize + 1;
+        setSize(KmerUtil.getByteNumFromK(lettersInKmer));
+        byte cacheByte = KmerBytesWritable.getOneByteFromKmerAtPosition(0, bytes, kmerStartOffset, preSize);
+
+        // copy prekmer
+        for (int k = 0; k < preKmer.lettersInKmer - initialKmerSize + 1; k += 4) {
+            byte onebyte = KmerBytesWritable.getOneByteFromKmerAtPosition(k, preKmer.bytes, preKmer.kmerStartOffset,
+                    preKmer.bytesUsed);
+            KmerBytesWritable.appendOneByteAtPosition(k, onebyte, bytes, kmerStartOffset, bytesUsed);
+        }
+
+        // copy current kmer
+        int k = 4;
+        for (; k < preKmerLength; k += 4) {
+            byte onebyte = KmerBytesWritable.getOneByteFromKmerAtPosition(k, bytes, kmerStartOffset, preSize);
+            KmerBytesWritable.appendOneByteAtPosition(preKmer.lettersInKmer - initialKmerSize + k - 4 + 1, cacheByte,
+                    bytes, kmerStartOffset, bytesUsed);
+            cacheByte = onebyte;
+        }
+        KmerBytesWritable.appendOneByteAtPosition(preKmer.lettersInKmer - initialKmerSize + k - 4 + 1, cacheByte,
+                bytes, kmerStartOffset, bytesUsed);
+        clearLeadBit();
+        saveHeader(lettersInKmer);
+    }
+    
+    public void mergeWithRRKmer(int kmerSize, KmerBytesWritable kmer) {
+        // TODO make this more efficient
+        mergeWithRRKmer(kmerSize, new VKmerBytesWritable(kmer.toString()));
+    }
+
+    public void mergeWithKmerInDir(byte dir, int initialKmerSize, VKmerBytesWritable kmer) {
+        switch (dir & DirectionFlag.DIR_MASK) {
+            case DirectionFlag.DIR_FF:
+                mergeWithFFKmer(initialKmerSize, kmer);
+                break;
+            case DirectionFlag.DIR_FR:
+                mergeWithFRKmer(initialKmerSize, kmer);
+                break;
+            case DirectionFlag.DIR_RF:
+                mergeWithRFKmer(initialKmerSize, kmer);
+                break;
+            case DirectionFlag.DIR_RR:
+                mergeWithRRKmer(initialKmerSize, kmer);
+                break;
+            default:
+                throw new RuntimeException("Direction not recognized: " + dir);
+        }
+    }
+    public void mergeWithKmerInDir(byte dir, int initialKmerSize, KmerBytesWritable kmer) {
+        // TODO make this more efficient
+        mergeWithKmerInDir(dir, initialKmerSize, new VKmerBytesWritable(kmer.toString()));
+    }
+
+    public KmerBytesWritable asFixedLengthKmer() {
+        if (lettersInKmer != KmerBytesWritable.getKmerLength()) {
+            throw new IllegalArgumentException("VKmer " + this.toString() + " is not of the same length as the fixed length Kmer (" + KmerBytesWritable.getKmerLength() + " )!");
+        }
+        return new KmerBytesWritable(bytes, kmerStartOffset);
+    }
+    
+    /**
+     * return the edit distance required to transform kemr1 into kmer2 using substitutions, insertions, and deletions.
+     * 
+     * This uses the classic dynamic programming algorithm and takes O(length_1 * length_2) time and space. 
+     */
+    public static int editDistance(VKmerBytesWritable kmer1, VKmerBytesWritable kmer2) {
+    	int rows = kmer1.getKmerLetterLength() + 1, columns = kmer2.getKmerLetterLength() + 1, r=0, c=0, match=0;
+    	int[][] distMat = new int[rows][columns];
+    	
+    	// initialize top row and left column
+    	for (r = 0; r < rows; r++) {
+    		distMat[r][0] = r;
+    	}
+    	for (c = 0; c < columns; c++) {
+    		distMat[0][c] = c;
+    	}
+    	
+    	// fill out the matrix as the min of left+1, up+1, and diag+nomatch
+    	for (r = 1; r < rows; r++) {
+    		for (c = 1; c < columns; c++) {
+    			match = kmer1.getGeneCodeAtPosition(r-1) == kmer2.getGeneCodeAtPosition(c-1) ? 0 : 1;
+    			distMat[r][c] = min(distMat[r-1][c] + 1,
+    								distMat[r][c-1] + 1,
+    								distMat[r-1][c-1] + match);
+    		}
+    	}
+    	return distMat[rows - 1][columns - 1];
+    }
+    
+    private static int min(int a, int b, int c) {
+    	return a <= b ? (a <= c ? a : c) : (b <= c ? b : c);
+    }
+    private static int min(int a, int b) {
+        return a <= b ? a : b;
+    }
+    
+    public int editDistance(VKmerBytesWritable other) {
+    	return editDistance(this, other);
+    }
+    
+    /**
+     * return the fractional difference between the given kmers.  This is the edit distance divided by the smaller length.
+     * 
+     * Note: the fraction may be larger than 1 (when the edit distance is larger than the kmer)
+     */
+    public static float fracDissimilar(VKmerBytesWritable kmer1, VKmerBytesWritable kmer2) {
+        return editDistance(kmer1, kmer2) / (float) min(kmer1.getKmerLetterLength(), kmer2.getKmerLetterLength());
+    }
+    
+    public float fracDissimilar(VKmerBytesWritable other) {
+        return fracDissimilar(this, other);
+    }
+
+}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerListWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerListWritable.java
new file mode 100644
index 0000000..80353c1
--- /dev/null
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerListWritable.java
@@ -0,0 +1,335 @@
+package edu.uci.ics.genomix.type;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.hadoop.io.Writable;
+
+import edu.uci.ics.genomix.data.KmerUtil;
+import edu.uci.ics.genomix.data.Marshal;
+
+/**
+ * A list of fixed-length kmers. The length of this list is stored internally.
+ */
+public class VKmerListWritable implements Writable, Iterable<VKmerBytesWritable>, Serializable {
+    private static final long serialVersionUID = 1L;
+    protected static final byte[] EMPTY_BYTES = { 0, 0, 0, 0 };
+    protected static final int HEADER_SIZE = 4;
+
+    protected byte[] storage;
+    protected int offset;
+    protected int valueCount;
+    protected int storageMaxSize; // since we may be a reference inside a larger datablock, we must track our maximum size
+
+    private VKmerBytesWritable posIter = new VKmerBytesWritable();
+
+    public VKmerListWritable() {
+        storage = EMPTY_BYTES;
+        valueCount = 0;
+        offset = 0;
+        storageMaxSize = storage.length;
+    }
+
+    public VKmerListWritable(byte[] data, int offset) {
+        setNewReference(data, offset);
+    }
+
+    public VKmerListWritable(List<VKmerBytesWritable> kmers) {
+        this();
+        for (VKmerBytesWritable kmer : kmers) {
+            append(kmer);
+        }
+    }
+
+    public void setNewReference(byte[] data, int offset) {
+        valueCount = Marshal.getInt(data, offset);
+        this.storage = data;
+        this.offset = offset;
+        this.storageMaxSize = getLength();
+    }
+
+    public void append(VKmerBytesWritable kmer) {
+        setSize(getLength() + kmer.getLength());
+        System.arraycopy(kmer.getBytes(), kmer.kmerStartOffset - VKmerBytesWritable.HEADER_SIZE, storage, offset
+                + getLength(), kmer.getLength());
+        valueCount += 1;
+        Marshal.putInt(valueCount, storage, offset);
+    }
+
+    public void append(int k, KmerBytesWritable kmer) {
+        setSize(getLength() + HEADER_SIZE + kmer.getLength());
+        Marshal.putInt(k, storage, offset + getLength());
+        System.arraycopy(kmer.getBytes(), kmer.getOffset(), storage, offset + getLength() + HEADER_SIZE,
+                kmer.getLength());
+        valueCount += 1;
+        Marshal.putInt(valueCount, storage, offset);
+    }
+    
+    public void append(KmerBytesWritable kmer) { // TODO optimize this into two separate containers...
+        setSize(getLength() + kmer.getLength() + VKmerBytesWritable.HEADER_SIZE);
+        int myLength = getLength();
+        Marshal.putInt(KmerBytesWritable.getKmerLength(), storage, offset + myLength); // write a new VKmer header
+        System.arraycopy(kmer.getBytes(), kmer.offset,
+                storage, offset + myLength + VKmerBytesWritable.HEADER_SIZE,
+                kmer.getLength());
+        valueCount += 1;
+        Marshal.putInt(valueCount, storage, offset);
+    }
+
+    /*
+     * Append the otherList to the end of myList
+     */
+    public void appendList(VKmerListWritable otherList) {
+        if (otherList.valueCount > 0) {
+            setSize(getLength() + otherList.getLength() - HEADER_SIZE); // one of the headers is redundant
+
+            // copy contents of otherList into the end of my storage
+            System.arraycopy(otherList.storage, otherList.offset + HEADER_SIZE, // skip other header
+                    storage, offset + getLength(), // add to end
+                    otherList.getLength() - HEADER_SIZE);
+            valueCount += otherList.valueCount;
+            Marshal.putInt(valueCount, storage, offset);
+        }
+    }
+
+    /**
+     * Save the union of my list and otherList. Uses a temporary HashSet for
+     * uniquefication
+     */
+    public void unionUpdate(VKmerListWritable otherList) {
+        int newSize = valueCount + otherList.valueCount;
+        HashSet<VKmerBytesWritable> uniqueElements = new HashSet<VKmerBytesWritable>(newSize);
+        for (VKmerBytesWritable kmer : this) {
+            // have to make copies of my own kmers since I may overwrite them
+            uniqueElements.add(new VKmerBytesWritable(kmer));
+        }
+        for (VKmerBytesWritable kmer : otherList) {
+            uniqueElements.add(kmer); // references okay
+        }
+        setSize(getLength() + otherList.getLength()); // upper bound on memory usage
+        valueCount = 0;
+        for (VKmerBytesWritable kmer : uniqueElements) {
+            append(kmer);
+        }
+        Marshal.putInt(valueCount, storage, offset);
+    }
+
+    protected void setSize(int size) {
+        if (size > getCapacity()) {
+            setCapacity((size * 3 / 2));
+        }
+    }
+
+    protected int getCapacity() {
+        return storageMaxSize - offset;
+    }
+
+    protected void setCapacity(int new_cap) {
+        if (new_cap > getCapacity()) {
+            byte[] new_data = new byte[new_cap];
+            if (valueCount > 0) {
+                System.arraycopy(storage, offset, new_data, 0, getLength());
+            }
+            storage = new_data;
+            offset = 0;
+            storageMaxSize = storage.length;
+        }
+    }
+
+    public void reset() {
+        valueCount = 0;
+        Marshal.putInt(valueCount, storage, offset);
+    }
+
+    public VKmerBytesWritable getPosition(int i) {
+        posIter.setAsReference(storage, getOffsetOfKmer(i));
+        return posIter;
+    }
+
+    /**
+     * Return the offset of the kmer at the i'th position
+     */
+    public int getOffsetOfKmer(int i) {
+        if (i >= valueCount) {
+            throw new ArrayIndexOutOfBoundsException("No such position " + i + " in list " + toString());
+        }
+        // seek to the given position
+        int posOffset = offset + HEADER_SIZE;
+        for (int curIndex = 0; curIndex < i; curIndex++) {
+            posOffset += KmerUtil.getByteNumFromK(Marshal.getInt(storage, posOffset)) + VKmerBytesWritable.HEADER_SIZE;
+        }
+        return posOffset;
+    }
+
+    public void setCopy(VKmerListWritable otherList) {
+        setCopy(otherList.storage, otherList.offset);
+    }
+
+    /**
+     * read a KmerListWritable from newData, which should include the header
+     */
+    public void setCopy(byte[] newData, int newOffset) {
+        int newValueCount = Marshal.getInt(newData, newOffset);
+        int newLength = getLength(newData, newOffset);
+        setSize(newLength);
+        if (newValueCount > 0) {
+            System.arraycopy(newData, newOffset + HEADER_SIZE, storage, this.offset + HEADER_SIZE, newLength
+                    - HEADER_SIZE);
+        }
+        valueCount = newValueCount;
+        Marshal.putInt(valueCount, storage, this.offset);
+    }
+
+    @Override
+    public Iterator<VKmerBytesWritable> iterator() {
+        Iterator<VKmerBytesWritable> it = new Iterator<VKmerBytesWritable>() {
+
+            private int currentIndex = 0;
+            private int currentOffset = offset + HEADER_SIZE; // init as offset of first kmer
+
+            @Override
+            public boolean hasNext() {
+                return currentIndex < valueCount;
+            }
+
+            @Override
+            public VKmerBytesWritable next() {
+                posIter.setAsReference(storage, currentOffset);
+                currentOffset += KmerUtil.getByteNumFromK(Marshal.getInt(storage, currentOffset))
+                        + VKmerBytesWritable.HEADER_SIZE;
+                currentIndex++;
+                return posIter;
+            }
+
+            @Override
+            public void remove() {
+                if (currentOffset <= 0) {
+                    throw new IllegalStateException(
+                            "You must advance the iterator using .next() before calling remove()!");
+                }
+                // we're removing the element at prevIndex
+                int prevIndex = currentIndex - 1;
+                int prevOffset = getOffsetOfKmer(prevIndex);
+
+                if (currentIndex < valueCount) { // if it's the last element, don't have to do any copying
+                    System.arraycopy(storage, currentOffset, // from the "next" element
+                            storage, prevOffset, // to the one just returned (overwriting it)
+                            getLength() - currentOffset + offset); // remaining bytes except current element
+                }
+                valueCount--;
+                currentIndex--;
+                Marshal.putInt(valueCount, storage, offset);
+                currentOffset = prevOffset;
+            }
+        };
+        return it;
+    }
+
+    /*
+     * remove the first instance of `toRemove`. Uses a linear scan. Throws an
+     * exception if not in this list.
+     */
+    public void remove(VKmerBytesWritable toRemove, boolean ignoreMissing) {
+        Iterator<VKmerBytesWritable> posIterator = this.iterator();
+        while (posIterator.hasNext()) {
+            if (toRemove.equals(posIterator.next())) {
+                posIterator.remove();
+                return; // break as soon as the element is found 
+            }
+        }
+        // element was not found
+        if (!ignoreMissing) {
+            throw new ArrayIndexOutOfBoundsException("the KmerBytesWritable `" + toRemove.toString()
+                    + "` was not found in this list.");
+        }
+    }
+
+    public void remove(VKmerBytesWritable toRemove) {
+        remove(toRemove, false);
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        reset();
+        int newValueCount = in.readInt();
+        int curOffset = offset + HEADER_SIZE;
+        int elemBytes = 0;
+        int elemLetters = 0;
+        int curLength = getLength();
+        for (int i = 0; i < newValueCount; i++) {
+            elemLetters = in.readInt();
+            elemBytes = KmerUtil.getByteNumFromK(elemLetters) + VKmerBytesWritable.HEADER_SIZE;
+            setSize(curLength + elemBytes); // make sure we have room for the new element
+            Marshal.putInt(elemLetters, storage, curOffset); // write header
+            in.readFully(storage, curOffset + VKmerBytesWritable.HEADER_SIZE, elemBytes
+                    - VKmerBytesWritable.HEADER_SIZE); // write kmer
+            curOffset += elemBytes;
+            curLength += elemBytes;
+            valueCount++;
+        }
+        valueCount = newValueCount;
+        Marshal.putInt(valueCount, storage, offset);
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        out.write(storage, offset, getLength());
+    }
+
+    public int getCountOfPosition() {
+        return valueCount;
+    }
+
+    public byte[] getByteArray() {
+        return storage;
+    }
+
+    public int getStartOffset() {
+        return offset;
+    }
+
+    public int getLength() {
+        int totalSize = HEADER_SIZE;
+        for (int curCount = 0; curCount < valueCount; curCount++) {
+            totalSize += KmerUtil.getByteNumFromK(Marshal.getInt(storage, offset + totalSize))
+                    + VKmerBytesWritable.HEADER_SIZE;
+        }
+        return totalSize;
+    }
+
+    public static int getLength(byte[] listStorage, int listOffset) {
+        int totalSize = HEADER_SIZE;
+        int listValueCount = Marshal.getInt(listStorage, listOffset);
+        for (int curCount = 0; curCount < listValueCount; curCount++) {
+            totalSize += KmerUtil.getByteNumFromK(Marshal.getInt(listStorage, listOffset + totalSize))
+                    + VKmerBytesWritable.HEADER_SIZE;
+        }
+        return totalSize;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sbuilder = new StringBuilder();
+        sbuilder.append('[');
+        for (int i = 0; i < valueCount; i++) {
+            sbuilder.append(getPosition(i).toString());
+            sbuilder.append(',');
+        }
+        if (valueCount > 0) {
+            sbuilder.setCharAt(sbuilder.length() - 1, ']');
+        } else {
+            sbuilder.append(']');
+        }
+        return sbuilder.toString();
+    }
+
+    @Override
+    public int hashCode() {
+        return Marshal.hashBytes(getByteArray(), getStartOffset(), getLength());
+    }
+}
diff --git a/genomix/genomix-data/src/main/resources/conf/cluster.properties b/genomix/genomix-data/src/main/resources/conf/cluster.properties
new file mode 100644
index 0000000..eabd81b
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/conf/cluster.properties
@@ -0,0 +1,40 @@
+#The CC port for Hyracks clients
+CC_CLIENTPORT=3099
+
+#The CC port for Hyracks cluster management
+CC_CLUSTERPORT=1099
+
+#The directory of hyracks binaries
+HYRACKS_HOME="../../../../hyracks"
+
+#The tmp directory for cc to install jars
+CCTMP_DIR=/tmp/t1
+
+#The tmp directory for nc to install jars
+NCTMP_DIR=/tmp/t2
+
+#The directory to put cc logs
+CCLOGS_DIR=$CCTMP_DIR/logs
+
+#The directory to put nc logs
+NCLOGS_DIR=$NCTMP_DIR/logs
+
+#Comma separated I/O directories for the spilling of external sort
+IO_DIRS="/tmp/t3,/tmp/t4"
+
+#The JAVA_HOME
+JAVA_HOME=$JAVA_HOME
+
+#HADOOP_HOME 
+CLASSPATH="${HADOOP_HOME}:${CLASSPATH}:."
+
+#The frame size of the internal dataflow engine
+FRAME_SIZE=65536
+
+#CC JAVA_OPTS
+CCJAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7001,server=y,suspend=n -Xmx1g -Djava.util.logging.config.file=logging.properties"
+# Yourkit option: -agentpath:/grid/0/dev/vborkar/tools/yjp-10.0.4/bin/linux-x86-64/libyjpagent.so=port=20001"
+
+#NC JAVA_OPTS
+NCJAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7002,server=y,suspend=n -Xmx10g -Djava.util.logging.config.file=logging.properties"
+
diff --git a/genomix/genomix-data/src/main/resources/conf/debugnc.properties b/genomix/genomix-data/src/main/resources/conf/debugnc.properties
new file mode 100644
index 0000000..27afa26
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/conf/debugnc.properties
@@ -0,0 +1,12 @@
+#The tmp directory for nc to install jars
+NCTMP_DIR2=/tmp/t-1
+
+#The directory to put nc logs
+NCLOGS_DIR2=$NCTMP_DIR/logs
+
+#Comma separated I/O directories for the spilling of external sort
+IO_DIRS2="/tmp/t-2,/tmp/t-3"
+
+#NC JAVA_OPTS
+NCJAVA_OPTS2="-Xdebug -Xrunjdwp:transport=dt_socket,address=7003,server=y,suspend=n -Xmx1g -Djava.util.logging.config.file=logging.properties"
+
diff --git a/genomix/genomix-data/src/main/resources/conf/master b/genomix/genomix-data/src/main/resources/conf/master
new file mode 100644
index 0000000..2fbb50c
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/conf/master
@@ -0,0 +1 @@
+localhost
diff --git a/genomix/genomix-data/src/main/resources/conf/slaves b/genomix/genomix-data/src/main/resources/conf/slaves
new file mode 100644
index 0000000..2fbb50c
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/conf/slaves
@@ -0,0 +1 @@
+localhost
diff --git a/genomix/genomix-data/src/main/resources/scripts/genomix b/genomix/genomix-data/src/main/resources/scripts/genomix
new file mode 100644
index 0000000..bdd7f20
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/genomix
@@ -0,0 +1,113 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+#  Copyright 2001-2006 The Apache Software Foundation.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+# ----------------------------------------------------------------------------
+#
+#   Copyright (c) 2001-2006 The Apache Software Foundation.  All rights
+#   reserved.
+
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+  ls=`ls -ld "$PRG"`
+  link=`expr "$ls" : '.*-> \(.*\)$'`
+  if expr "$link" : '/.*' > /dev/null; then
+    PRG="$link"
+  else
+    PRG=`dirname "$PRG"`/"$link"
+  fi
+done
+
+PRGDIR=`dirname "$PRG"`
+BASEDIR=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  Darwin*) darwin=true
+           if [ -z "$JAVA_VERSION" ] ; then
+             JAVA_VERSION="CurrentJDK"
+           else
+             echo "Using Java version: $JAVA_VERSION"
+           fi
+           if [ -z "$JAVA_HOME" ] ; then
+             JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home
+           fi
+           ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# If a specific java binary isn't specified search for the standard 'java' binary
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD=`which java`
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." 1>&2
+  echo "  We cannot execute $JAVACMD" 1>&2
+  exit 1
+fi
+
+if [ -z "$REPO" ]
+then
+  REPO="$BASEDIR"/lib
+fi
+
+CLASSPATH=$CLASSPATH_PREFIX:"$BASEDIR"/etc:"$REPO"/hyracks-dataflow-std-0.2.3-SNAPSHOT.jar:"$REPO"/hyracks-api-0.2.3-SNAPSHOT.jar:"$REPO"/json-20090211.jar:"$REPO"/httpclient-4.1-alpha2.jar:"$REPO"/httpcore-4.1-beta1.jar:"$REPO"/commons-logging-1.1.1.jar:"$REPO"/commons-codec-1.4.jar:"$REPO"/args4j-2.0.12.jar:"$REPO"/commons-lang3-3.1.jar:"$REPO"/hyracks-dataflow-common-0.2.3-SNAPSHOT.jar:"$REPO"/hyracks-data-std-0.2.3-SNAPSHOT.jar:"$REPO"/hyracks-control-cc-0.2.3-SNAPSHOT.jar:"$REPO"/hyracks-control-common-0.2.3-SNAPSHOT.jar:"$REPO"/jetty-server-8.0.0.RC0.jar:"$REPO"/servlet-api-3.0.20100224.jar:"$REPO"/jetty-continuation-8.0.0.RC0.jar:"$REPO"/jetty-http-8.0.0.RC0.jar:"$REPO"/jetty-io-8.0.0.RC0.jar:"$REPO"/jetty-webapp-8.0.0.RC0.jar:"$REPO"/jetty-xml-8.0.0.RC0.jar:"$REPO"/jetty-util-8.0.0.RC0.jar:"$REPO"/jetty-servlet-8.0.0.RC0.jar:"$REPO"/jetty-security-8.0.0.RC0.jar:"$REPO"/wicket-core-1.5.2.jar:"$REPO"/wicket-util-1.5.2.jar:"$REPO"/wicket-request-1.5.2.jar:"$REPO"/slf4j-api-1.6.1.jar:"$REPO"/slf4j-jcl-1.6.3.jar:"$REPO"/hyracks-control-nc-0.2.3-SNAPSHOT.jar:"$REPO"/dcache-client-0.0.1.jar:"$REPO"/jetty-client-8.0.0.M0.jar:"$REPO"/hyracks-net-0.2.3-SNAPSHOT.jar:"$REPO"/commons-io-1.3.1.jar:"$REPO"/hyracks-ipc-0.2.3-SNAPSHOT.jar:"$REPO"/genomix-0.2.3-SNAPSHOT.pom
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$HOME" ] && HOME=`cygpath --path --windows "$HOME"`
+  [ -n "$BASEDIR" ] && BASEDIR=`cygpath --path --windows "$BASEDIR"`
+  [ -n "$REPO" ] && REPO=`cygpath --path --windows "$REPO"`
+fi
+
+exec "$JAVACMD" $JAVA_OPTS  \
+  -classpath "$CLASSPATH" \
+  -Dapp.name="genomix" \
+  -Dapp.pid="$$" \
+  -Dapp.repo="$REPO" \
+  -Dapp.home="$BASEDIR" \
+  -Dbasedir="$BASEDIR" \
+  edu.uci.ics.genomix.driver.Driver \
+  "$@"
diff --git a/genomix/genomix-data/src/main/resources/scripts/genomix.bat b/genomix/genomix-data/src/main/resources/scripts/genomix.bat
new file mode 100644
index 0000000..1bd2098
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/genomix.bat
@@ -0,0 +1,108 @@
+@REM ----------------------------------------------------------------------------
+@REM  Copyright 2001-2006 The Apache Software Foundation.
+@REM
+@REM  Licensed under the Apache License, Version 2.0 (the "License");
+@REM  you may not use this file except in compliance with the License.
+@REM  You may obtain a copy of the License at
+@REM
+@REM       http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM  Unless required by applicable law or agreed to in writing, software
+@REM  distributed under the License is distributed on an "AS IS" BASIS,
+@REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@REM  See the License for the specific language governing permissions and
+@REM  limitations under the License.
+@REM ----------------------------------------------------------------------------
+@REM
+@REM   Copyright (c) 2001-2006 The Apache Software Foundation.  All rights
+@REM   reserved.
+
+@echo off
+
+set ERROR_CODE=0
+
+:init
+@REM Decide how to startup depending on the version of windows
+
+@REM -- Win98ME
+if NOT "%OS%"=="Windows_NT" goto Win9xArg
+
+@REM set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" @setlocal
+
+@REM -- 4NT shell
+if "%eval[2+2]" == "4" goto 4NTArgs
+
+@REM -- Regular WinNT shell
+set CMD_LINE_ARGS=%*
+goto WinNTGetScriptDir
+
+@REM The 4NT Shell from jp software
+:4NTArgs
+set CMD_LINE_ARGS=%$
+goto WinNTGetScriptDir
+
+:Win9xArg
+@REM Slurp the command line arguments.  This loop allows for an unlimited number
+@REM of arguments (up to the command line limit, anyway).
+set CMD_LINE_ARGS=
+:Win9xApp
+if %1a==a goto Win9xGetScriptDir
+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
+shift
+goto Win9xApp
+
+:Win9xGetScriptDir
+set SAVEDIR=%CD%
+%0\
+cd %0\..\.. 
+set BASEDIR=%CD%
+cd %SAVEDIR%
+set SAVE_DIR=
+goto repoSetup
+
+:WinNTGetScriptDir
+set BASEDIR=%~dp0\..
+
+:repoSetup
+
+
+if "%JAVACMD%"=="" set JAVACMD=java
+
+if "%REPO%"=="" set REPO=%BASEDIR%\lib
+
+set CLASSPATH="%BASEDIR%"\etc;"%REPO%"\hyracks-dataflow-std-0.2.3-SNAPSHOT.jar;"%REPO%"\hyracks-api-0.2.3-SNAPSHOT.jar;"%REPO%"\json-20090211.jar;"%REPO%"\httpclient-4.1-alpha2.jar;"%REPO%"\httpcore-4.1-beta1.jar;"%REPO%"\commons-logging-1.1.1.jar;"%REPO%"\commons-codec-1.4.jar;"%REPO%"\args4j-2.0.12.jar;"%REPO%"\commons-lang3-3.1.jar;"%REPO%"\hyracks-dataflow-common-0.2.3-SNAPSHOT.jar;"%REPO%"\hyracks-data-std-0.2.3-SNAPSHOT.jar;"%REPO%"\hyracks-control-cc-0.2.3-SNAPSHOT.jar;"%REPO%"\hyracks-control-common-0.2.3-SNAPSHOT.jar;"%REPO%"\jetty-server-8.0.0.RC0.jar;"%REPO%"\servlet-api-3.0.20100224.jar;"%REPO%"\jetty-continuation-8.0.0.RC0.jar;"%REPO%"\jetty-http-8.0.0.RC0.jar;"%REPO%"\jetty-io-8.0.0.RC0.jar;"%REPO%"\jetty-webapp-8.0.0.RC0.jar;"%REPO%"\jetty-xml-8.0.0.RC0.jar;"%REPO%"\jetty-util-8.0.0.RC0.jar;"%REPO%"\jetty-servlet-8.0.0.RC0.jar;"%REPO%"\jetty-security-8.0.0.RC0.jar;"%REPO%"\wicket-core-1.5.2.jar;"%REPO%"\wicket-util-1.5.2.jar;"%REPO%"\wicket-request-1.5.2.jar;"%REPO%"\slf4j-api-1.6.1.jar;"%REPO%"\slf4j-jcl-1.6.3.jar;"%REPO%"\hyracks-control-nc-0.2.3-SNAPSHOT.jar;"%REPO%"\dcache-client-0.0.1.jar;"%REPO%"\jetty-client-8.0.0.M0.jar;"%REPO%"\hyracks-net-0.2.3-SNAPSHOT.jar;"%REPO%"\commons-io-1.3.1.jar;"%REPO%"\hyracks-ipc-0.2.3-SNAPSHOT.jar;"%REPO%"\genomix-0.2.3-SNAPSHOT.pom
+goto endInit
+
+@REM Reaching here means variables are defined and arguments have been captured
+:endInit
+
+%JAVACMD% %JAVA_OPTS%  -classpath %CLASSPATH_PREFIX%;%CLASSPATH% -Dapp.name="genomix" -Dapp.repo="%REPO%" -Dapp.home="%BASEDIR%" -Dbasedir="%BASEDIR%" edu.uci.ics.genomix.driver.Driver %CMD_LINE_ARGS%
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+if "%OS%"=="Windows_NT" @endlocal
+set ERROR_CODE=%ERRORLEVEL%
+
+:end
+@REM set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" goto endNT
+
+@REM For old DOS remove the set variables from ENV - we assume they were not set
+@REM before we started - at least we don't leave any baggage around
+set CMD_LINE_ARGS=
+goto postExec
+
+:endNT
+@REM If error code is set to 1 then the endlocal was done already in :error.
+if %ERROR_CODE% EQU 0 @endlocal
+
+
+:postExec
+
+if "%FORCE_EXIT_ON_ERROR%" == "on" (
+  if %ERROR_CODE% NEQ 0 exit %ERROR_CODE%
+)
+
+exit /B %ERROR_CODE%
diff --git a/genomix/genomix-data/src/main/resources/scripts/getip.sh b/genomix/genomix-data/src/main/resources/scripts/getip.sh
new file mode 100644
index 0000000..e0cdf73
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/getip.sh
@@ -0,0 +1,21 @@
+#get the OS
+OS_NAME=`uname -a|awk '{print $1}'`
+LINUX_OS='Linux'
+
+if [ $OS_NAME = $LINUX_OS ];
+then
+        #Get IP Address
+        IPADDR=`/sbin/ifconfig eth0 | grep "inet " | awk '{print $2}' | cut -f 2 -d ':'`
+	if [ "$IPADDR" = "" ]
+        then
+		IPADDR=`/sbin/ifconfig lo | grep "inet " | awk '{print $2}' | cut -f 2 -d ':'`
+        fi 
+else
+        IPADDR=`/sbin/ifconfig en1 | grep "inet " | awk '{print $2}' | cut -f 2 -d ':'`
+	if [ "$IPADDR" = "" ]
+        then
+                IPADDR=`/sbin/ifconfig lo0 | grep "inet " | awk '{print $2}' | cut -f 2 -d ':'`
+        fi
+
+fi
+echo $IPADDR
diff --git a/genomix/genomix-data/src/main/resources/scripts/startAllNCs.sh b/genomix/genomix-data/src/main/resources/scripts/startAllNCs.sh
new file mode 100644
index 0000000..5e38c40
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/startAllNCs.sh
@@ -0,0 +1,6 @@
+GENOMIX_PATH=`pwd`
+
+for i in `cat conf/slaves`
+do
+   ssh $i "cd ${GENOMIX_PATH}; bin/startnc.sh"
+done
diff --git a/genomix/genomix-data/src/main/resources/scripts/startCluster.sh b/genomix/genomix-data/src/main/resources/scripts/startCluster.sh
new file mode 100755
index 0000000..4727764
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/startCluster.sh
@@ -0,0 +1,19 @@
+bin/startcc.sh
+sleep 5
+bin/startAllNCs.sh
+
+. conf/cluster.properties
+# do we need to specify the version somewhere?
+hyrackcmd=`ls ${HYRACKS_HOME}/hyracks-cli/target/hyracks-cli-*-binary-assembly/bin/hyrackscli`
+# find zip file
+appzip=`ls $PWD/../genomix-*-binary-assembly.zip`
+
+[ -f $hyrackcmd ] || { echo "Hyracks commandline is missing"; exit -1;}
+[ -f $appzip ] || { echo "Genomix binary-assembly.zip is missing"; exit -1;}
+
+CCHOST_NAME=`cat conf/master`
+
+IPADDR=`bin/getip.sh`
+echo "connect to \"${IPADDR}:${CC_CLIENTPORT}\"; create application genomix \"$appzip\";" | $hyrackcmd 
+echo ""
+
diff --git a/genomix/genomix-data/src/main/resources/scripts/startDebugNc.sh b/genomix/genomix-data/src/main/resources/scripts/startDebugNc.sh
new file mode 100644
index 0000000..fe6cf27
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/startDebugNc.sh
@@ -0,0 +1,50 @@
+hostname
+
+#Get the IP address of the cc
+CCHOST_NAME=`cat conf/master`
+CURRENT_PATH=`pwd`
+CCHOST=`ssh ${CCHOST_NAME} "cd ${CURRENT_PATH}; bin/getip.sh"`
+
+#Import cluster properties
+. conf/cluster.properties
+. conf/debugnc.properties
+
+#Clean up temp dir
+
+rm -rf $NCTMP_DIR2
+mkdir $NCTMP_DIR2
+
+#Clean up log dir
+rm -rf $NCLOGS_DIR2
+mkdir $NCLOGS_DIR2
+
+
+#Clean up I/O working dir
+io_dirs=$(echo $IO_DIRS2 | tr "," "\n")
+for io_dir in $io_dirs
+do
+	rm -rf $io_dir
+	mkdir $io_dir
+done
+
+#Set JAVA_HOME
+export JAVA_HOME=$JAVA_HOME
+
+#Get OS
+IPADDR=`bin/getip.sh`
+
+#Get node ID
+NODEID=`hostname | cut -d '.' -f 1`
+NODEID=${NODEID}2
+
+#Set JAVA_OPTS
+export JAVA_OPTS=$NCJAVA_OPTS2
+
+cd $HYRACKS_HOME
+HYRACKS_HOME=`pwd`
+
+#Enter the temp dir
+cd $NCTMP_DIR2
+
+#Launch hyracks nc
+$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyracksnc -cc-host $CCHOST -cc-port $CC_CLUSTERPORT -cluster-net-ip-address $IPADDR  -data-ip-address $IPADDR -node-id $NODEID -iodevices "${IO_DIRS2}" &> $NCLOGS_DIR2/$NODEID.log &
diff --git a/genomix/genomix-data/src/main/resources/scripts/startcc.sh b/genomix/genomix-data/src/main/resources/scripts/startcc.sh
new file mode 100644
index 0000000..fe2551d
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/startcc.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+hostname
+
+#Import cluster properties
+. conf/cluster.properties
+
+#Get the IP address of the cc
+CCHOST_NAME=`cat conf/master`
+CCHOST=`bin/getip.sh`
+
+#Remove the temp dir
+rm -rf $CCTMP_DIR
+mkdir $CCTMP_DIR
+
+#Remove the logs dir
+rm -rf $CCLOGS_DIR
+mkdir $CCLOGS_DIR
+
+#Export JAVA_HOME and JAVA_OPTS
+export JAVA_HOME=$JAVA_HOME
+export JAVA_OPTS=$CCJAVA_OPTS
+
+#Launch hyracks cc script
+chmod -R 755 $HYRACKS_HOME
+$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyrackscc -client-net-ip-address $CCHOST -cluster-net-ip-address $CCHOST -client-net-port $CC_CLIENTPORT -cluster-net-port $CC_CLUSTERPORT -max-heartbeat-lapse-periods 999999 -default-max-job-attempts 0 -job-history-size 3 &> $CCLOGS_DIR/cc.log &
diff --git a/genomix/genomix-data/src/main/resources/scripts/startnc.sh b/genomix/genomix-data/src/main/resources/scripts/startnc.sh
new file mode 100644
index 0000000..6e0f90e
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/startnc.sh
@@ -0,0 +1,49 @@
+hostname
+
+MY_NAME=`hostname`
+#Get the IP address of the cc
+CCHOST_NAME=`cat conf/master`
+CURRENT_PATH=`pwd`
+CCHOST=`ssh ${CCHOST_NAME} "cd ${CURRENT_PATH}; bin/getip.sh"`
+
+#Import cluster properties
+. conf/cluster.properties
+
+#Clean up temp dir
+
+rm -rf $NCTMP_DIR
+mkdir $NCTMP_DIR
+
+#Clean up log dir
+rm -rf $NCLOGS_DIR
+mkdir $NCLOGS_DIR
+
+
+#Clean up I/O working dir
+io_dirs=$(echo $IO_DIRS | tr "," "\n")
+for io_dir in $io_dirs
+do
+	rm -rf $io_dir
+	mkdir $io_dir
+done
+
+#Set JAVA_HOME
+export JAVA_HOME=$JAVA_HOME
+
+IPADDR=`bin/getip.sh`
+#echo $IPADDR
+
+#Get node ID
+NODEID=`hostname | cut -d '.' -f 1`
+
+#Set JAVA_OPTS
+export JAVA_OPTS=$NCJAVA_OPTS
+
+cd $HYRACKS_HOME
+HYRACKS_HOME=`pwd`
+
+#Enter the temp dir
+cd $NCTMP_DIR
+
+#Launch hyracks nc
+$HYRACKS_HOME/hyracks-server/target/appassembler/bin/hyracksnc -cc-host $CCHOST -cc-port $CC_CLUSTERPORT -cluster-net-ip-address $IPADDR  -data-ip-address $IPADDR -node-id $NODEID -iodevices "${IO_DIRS}" &> $NCLOGS_DIR/$NODEID.log &
diff --git a/genomix/genomix-data/src/main/resources/scripts/stopAllNCs.sh b/genomix/genomix-data/src/main/resources/scripts/stopAllNCs.sh
new file mode 100644
index 0000000..66ed866
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/stopAllNCs.sh
@@ -0,0 +1,6 @@
+GENOMIX_PATH=`pwd`
+
+for i in `cat conf/slaves`
+do
+   ssh $i "cd ${GENOMIX_PATH}; bin/stopnc.sh"
+done
diff --git a/genomix/genomix-data/src/main/resources/scripts/stopCluster.sh b/genomix/genomix-data/src/main/resources/scripts/stopCluster.sh
new file mode 100644
index 0000000..4889934
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/stopCluster.sh
@@ -0,0 +1,3 @@
+bin/stopAllNCs.sh
+sleep 2
+bin/stopcc.sh
diff --git a/genomix/genomix-data/src/main/resources/scripts/stopcc.sh b/genomix/genomix-data/src/main/resources/scripts/stopcc.sh
new file mode 100644
index 0000000..1865054
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/stopcc.sh
@@ -0,0 +1,10 @@
+hostname
+. conf/cluster.properties
+
+#Kill process
+PID=`ps -ef|grep ${USER}|grep java|grep hyracks|awk '{print $2}'`
+echo $PID
+[ "$PID" != "" ] && kill -9 $PID
+
+#Clean up CC temp dir
+rm -rf $CCTMP_DIR/*
diff --git a/genomix/genomix-data/src/main/resources/scripts/stopnc.sh b/genomix/genomix-data/src/main/resources/scripts/stopnc.sh
new file mode 100644
index 0000000..3928bb7
--- /dev/null
+++ b/genomix/genomix-data/src/main/resources/scripts/stopnc.sh
@@ -0,0 +1,23 @@
+hostname
+. conf/cluster.properties
+
+#Kill process
+PID=`ps -ef|grep ${USER}|grep java|grep 'Dapp.name=hyracksnc'|awk '{print $2}'`
+
+if [ "$PID" == "" ]; then
+  USERID=`id | sed 's/^uid=//;s/(.*$//'`
+  PID=`ps -ef|grep ${USERID}|grep java|grep 'Dapp.name=hyracksnc'|awk '{print $2}'`
+fi
+
+echo $PID
+[ "$PID" != "" ] && kill -9 $PID
+
+#Clean up I/O working dir
+io_dirs=$(echo $IO_DIRS | tr "," "\n")
+for io_dir in $io_dirs
+do
+	rm -rf $io_dir/*
+done
+
+#Clean up NC temp dir
+rm -rf $NCTMP_DIR/*
diff --git a/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableFactoryTest.java b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableFactoryTest.java
new file mode 100644
index 0000000..36115d3
--- /dev/null
+++ b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableFactoryTest.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.data.test;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import edu.uci.ics.genomix.type.GeneCode;
+import edu.uci.ics.genomix.type.KmerBytesWritableFactory;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class KmerBytesWritableFactoryTest {
+    static byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G', 'T' };
+
+    KmerBytesWritableFactory kmerFactory = new KmerBytesWritableFactory(8);
+
+    @Test
+    public void TestGetLastKmer() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        kmer.setByRead(9, array, 0);
+        Assert.assertEquals("AGCTGACCG", kmer.toString());
+        VKmerBytesWritable lastKmer;
+        for (int i = 8; i > 0; i--) {
+            lastKmer = kmerFactory.getLastKmerFromChain(i, kmer);
+            Assert.assertEquals("AGCTGACCG".substring(9 - i), lastKmer.toString());
+            lastKmer = kmerFactory.getSubKmerFromChain(9 - i, i, kmer);
+            Assert.assertEquals("AGCTGACCG".substring(9 - i), lastKmer.toString());
+        }
+        VKmerBytesWritable vlastKmer;
+        for (int i = 8; i > 0; i--) {
+            vlastKmer = kmerFactory.getLastKmerFromChain(i, kmer);
+            Assert.assertEquals("AGCTGACCG".substring(9 - i), vlastKmer.toString());
+            vlastKmer = kmerFactory.getSubKmerFromChain(9 - i, i, kmer);
+            Assert.assertEquals("AGCTGACCG".substring(9 - i), vlastKmer.toString());
+        }
+    }
+
+    @Test
+    public void TestGetFirstKmer() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        kmer.setByRead(9, array, 0);
+        Assert.assertEquals("AGCTGACCG", kmer.toString());
+        VKmerBytesWritable firstKmer;
+        for (int i = 8; i > 0; i--) {
+            firstKmer = kmerFactory.getFirstKmerFromChain(i, kmer);
+            Assert.assertEquals("AGCTGACCG".substring(0, i), firstKmer.toString());
+            firstKmer = kmerFactory.getSubKmerFromChain(0, i, kmer);
+            Assert.assertEquals("AGCTGACCG".substring(0, i), firstKmer.toString());
+        }
+        VKmerBytesWritable vfirstKmer;
+        for (int i = 8; i > 0; i--) {
+            vfirstKmer = kmerFactory.getFirstKmerFromChain(i, kmer);
+            Assert.assertEquals("AGCTGACCG".substring(0, i), vfirstKmer.toString());
+            vfirstKmer = kmerFactory.getSubKmerFromChain(0, i, kmer);
+            Assert.assertEquals("AGCTGACCG".substring(0, i), vfirstKmer.toString());
+        }
+    }
+
+    @Test
+    public void TestGetSubKmer() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        kmer.setByRead(9, array, 0);
+        Assert.assertEquals("AGCTGACCG", kmer.toString());
+        VKmerBytesWritable subKmer;
+        for (int istart = 0; istart < kmer.getKmerLetterLength() - 1; istart++) {
+            for (int isize = 1; isize + istart <= kmer.getKmerLetterLength(); isize++) {
+                subKmer = kmerFactory.getSubKmerFromChain(istart, isize, kmer);
+                Assert.assertEquals("AGCTGACCG".substring(istart, istart + isize), subKmer.toString());
+            }
+        }
+    }
+
+    @Test
+    public void TestMergeNext() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        kmer.setByRead(9, array, 0);
+        Assert.assertEquals("AGCTGACCG", kmer.toString());
+
+        String text = "AGCTGACCG";
+        for (byte x = GeneCode.A; x <= GeneCode.T; x++) {
+            VKmerBytesWritable newkmer = kmerFactory.mergeKmerWithNextCode(kmer, x);
+            text = text + (char) GeneCode.GENE_SYMBOL[x];
+            Assert.assertEquals(text, newkmer.toString());
+            kmer = new VKmerBytesWritable(newkmer);
+        }
+        for (byte x = GeneCode.A; x <= GeneCode.T; x++) {
+            VKmerBytesWritable newkmer = kmerFactory.mergeKmerWithNextCode(kmer, x);
+            text = text + (char) GeneCode.GENE_SYMBOL[x];
+            Assert.assertEquals(text, newkmer.toString());
+            kmer = new VKmerBytesWritable(newkmer);
+        }
+    }
+
+    @Test
+    public void TestMergePre() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        kmer.setByRead(9, array, 0);
+        Assert.assertEquals("AGCTGACCG", kmer.toString());
+        String text = "AGCTGACCG";
+        for (byte x = GeneCode.A; x <= GeneCode.T; x++) {
+            VKmerBytesWritable newkmer = kmerFactory.mergeKmerWithPreCode(kmer, x);
+            text = (char) GeneCode.GENE_SYMBOL[x] + text;
+            Assert.assertEquals(text, newkmer.toString());
+            kmer = new VKmerBytesWritable(newkmer);
+        }
+        for (byte x = GeneCode.A; x <= GeneCode.T; x++) {
+            VKmerBytesWritable newkmer = kmerFactory.mergeKmerWithPreCode(kmer, x);
+            text = (char) GeneCode.GENE_SYMBOL[x] + text;
+            Assert.assertEquals(text, newkmer.toString());
+            kmer = new VKmerBytesWritable(newkmer);
+        }
+    }
+
+    @Test
+    public void TestMergeTwoKmer() {
+        VKmerBytesWritable kmer1 = new VKmerBytesWritable();
+        kmer1.setByRead(9, array, 0);
+        String text1 = "AGCTGACCG";
+        VKmerBytesWritable kmer2 = new VKmerBytesWritable();
+        kmer2.setByRead(9, array, 1);
+        String text2 = "GCTGACCGT";
+        Assert.assertEquals(text1, kmer1.toString());
+        Assert.assertEquals(text2, kmer2.toString());
+
+        VKmerBytesWritable merged = kmerFactory.mergeTwoKmer(kmer1, kmer2);
+        Assert.assertEquals(text1 + text2, merged.toString());
+
+        VKmerBytesWritable kmer3 = new VKmerBytesWritable();
+        kmer3.setByRead(3, array, 1);
+        String text3 = "GCT";
+        Assert.assertEquals(text3, kmer3.toString());
+
+        merged = kmerFactory.mergeTwoKmer(kmer1, kmer3);
+        Assert.assertEquals(text1 + text3, merged.toString());
+        merged = kmerFactory.mergeTwoKmer(kmer3, kmer1);
+        Assert.assertEquals(text3 + text1, merged.toString());
+
+        VKmerBytesWritable kmer4 = new VKmerBytesWritable();
+        kmer4.setByRead(8, array, 0);
+        String text4 = "AGCTGACC";
+        Assert.assertEquals(text4, kmer4.toString());
+        merged = kmerFactory.mergeTwoKmer(kmer4, kmer3);
+        Assert.assertEquals(text4 + text3, merged.toString());
+
+        VKmerBytesWritable kmer5 = new VKmerBytesWritable();
+        kmer5.setByRead(7, array, 0);
+        String text5 = "AGCTGAC";
+        VKmerBytesWritable kmer6 = new VKmerBytesWritable();
+        kmer6.setByRead(9, array, 1);
+        String text6 = "GCTGACCGT";
+        merged = kmerFactory.mergeTwoKmer(kmer5, kmer6);
+        Assert.assertEquals(text5 + text6, merged.toString());
+
+        kmer6.setByRead(6, array, 1);
+        String text7 = "GCTGAC";
+        merged = kmerFactory.mergeTwoKmer(kmer5, kmer6);
+        Assert.assertEquals(text5 + text7, merged.toString());
+
+        kmer6.setByRead(4, array, 1);
+        String text8 = "GCTG";
+        merged = kmerFactory.mergeTwoKmer(kmer5, kmer6);
+        Assert.assertEquals(text5 + text8, merged.toString());
+    }
+
+    @Test
+    public void TestShift() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable(kmerFactory.getKmerByRead(9, array, 0));
+        String text = "AGCTGACCG";
+        Assert.assertEquals(text, kmer.toString());
+
+        VKmerBytesWritable kmerForward = kmerFactory.shiftKmerWithNextCode(kmer, GeneCode.A);
+        Assert.assertEquals(text, kmer.toString());
+        Assert.assertEquals("GCTGACCGA", kmerForward.toString());
+        VKmerBytesWritable kmerBackward = kmerFactory.shiftKmerWithPreCode(kmer, GeneCode.C);
+        Assert.assertEquals(text, kmer.toString());
+        Assert.assertEquals("CAGCTGACC", kmerBackward.toString());
+
+    }
+
+    @Test
+    public void TestReverseKmer() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        kmer.setByRead(7, array, 0);
+        Assert.assertEquals(kmer.toString(), "AGCTGAC");
+        VKmerBytesWritable reversed = kmerFactory.reverse(kmer);
+        Assert.assertEquals(reversed.toString(), "CAGTCGA");
+        
+        kmer.setByRead(8, ("AATAGAAC").getBytes(), 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAAC");
+        reversed.reset(8);
+        reversed = kmerFactory.reverse(kmer);
+        Assert.assertEquals(reversed.toString(), "CAAGATAA");
+    }
+}
diff --git a/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java
new file mode 100644
index 0000000..4f7b90e
--- /dev/null
+++ b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.data.test;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import edu.uci.ics.genomix.type.GeneCode;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+
+public class KmerBytesWritableTest {
+    static byte[] array = { 'A', 'A', 'T', 'A', 'G', 'A', 'A', 'G' };
+    static int k = 7;
+
+    @Test
+    public void TestCompressKmer() {
+        KmerBytesWritable.setGlobalKmerLength(k);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        kmer.setByRead(array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        kmer.setByRead(array, 1);
+        Assert.assertEquals(kmer.toString(), "ATAGAAG");
+    }
+
+    @Test
+    public void TestMoveKmer() {
+        KmerBytesWritable.setGlobalKmerLength(k);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        kmer.setByRead(array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        for (int i = k; i < array.length - 1; i++) {
+            kmer.shiftKmerWithNextCode(array[i]);
+            Assert.assertTrue(false);
+        }
+
+        byte out = kmer.shiftKmerWithNextChar(array[array.length - 1]);
+        Assert.assertEquals(out, GeneCode.getCodeFromSymbol((byte) 'A'));
+        Assert.assertEquals(kmer.toString(), "ATAGAAG");
+    }
+
+    @Test
+    public void TestCompressKmerReverse() {
+        KmerBytesWritable.setGlobalKmerLength(k);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        kmer.setByRead(array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        kmer.setByReadReverse(array, 1);
+        Assert.assertEquals(kmer.toString(), "CTTCTAT");
+    }
+
+    @Test
+    public void TestMoveKmerReverse() {
+        KmerBytesWritable.setGlobalKmerLength(k);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        kmer.setByRead(array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        for (int i = k; i < array.length - 1; i++) {
+            kmer.shiftKmerWithPreChar(array[i]);
+            Assert.assertTrue(false);
+        }
+
+        byte out = kmer.shiftKmerWithPreChar(array[array.length - 1]);
+        Assert.assertEquals(out, GeneCode.getCodeFromSymbol((byte) 'A'));
+        Assert.assertEquals(kmer.toString(), "GAATAGA");
+    }
+
+    @Test
+    public void TestGetGene() {
+        KmerBytesWritable.setGlobalKmerLength(9);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        String text = "AGCTGACCG";
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G' };
+        kmer.setByRead(array, 0);
+
+        for (int i = 0; i < 9; i++) {
+            Assert.assertEquals(text.charAt(i), (char) (GeneCode.getSymbolFromCode(kmer.getGeneCodeAtPosition(i))));
+        }
+    }
+
+    @Test
+    public void TestGetOneByteFromKmer() {
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G', 'T' };
+        String string = "AGCTGACCGT";
+        for (int k = 3; k <= 10; k++) {
+            KmerBytesWritable.setGlobalKmerLength(k);
+            KmerBytesWritable kmer = new KmerBytesWritable();
+            KmerBytesWritable kmerAppend = new KmerBytesWritable();
+            kmer.setByRead(array, 0);
+            Assert.assertEquals(string.substring(0, k), kmer.toString());
+            for (int b = 0; b < k; b++) {
+                byte byteActual = KmerBytesWritable.getOneByteFromKmerAtPosition(b, kmer.getBytes(), kmer.getOffset(),
+                        kmer.getLength());
+                byte byteExpect = GeneCode.getCodeFromSymbol(array[b]);
+                for (int i = 1; i < 4 && b + i < k; i++) {
+                    byteExpect += GeneCode.getCodeFromSymbol(array[b + i]) << (i * 2);
+                }
+                Assert.assertEquals(byteActual, byteExpect);
+                KmerBytesWritable.appendOneByteAtPosition(b, byteActual, kmerAppend.getBytes(), kmerAppend.getOffset(),
+                        kmerAppend.getLength());
+            }
+            Assert.assertEquals(kmer.toString(), kmerAppend.toString());
+        }
+    }    
+}
diff --git a/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java.orig b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java.orig
new file mode 100644
index 0000000..8a0cb6d
--- /dev/null
+++ b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java.orig
@@ -0,0 +1,427 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.data.test;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import edu.uci.ics.genomix.type.GeneCode;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+
+public class KmerBytesWritableTest {
+    static byte[] array = { 'A', 'A', 'T', 'A', 'G', 'A', 'A', 'G' };
+    static int k = 7;
+
+    @Test
+    public void TestCompressKmer() {
+        KmerBytesWritable.setGlobalKmerLength(k);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        kmer.setByRead(array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        kmer.setByRead(array, 1);
+        Assert.assertEquals(kmer.toString(), "ATAGAAG");
+    }
+
+    @Test
+    public void TestMoveKmer() {
+        KmerBytesWritable.setGlobalKmerLength(k);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        kmer.setByRead(array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        for (int i = k; i < array.length - 1; i++) {
+            kmer.shiftKmerWithNextCode(array[i]);
+            Assert.assertTrue(false);
+        }
+
+        byte out = kmer.shiftKmerWithNextChar(array[array.length - 1]);
+        Assert.assertEquals(out, GeneCode.getCodeFromSymbol((byte) 'A'));
+        Assert.assertEquals(kmer.toString(), "ATAGAAG");
+    }
+
+    @Test
+    public void TestCompressKmerReverse() {
+        KmerBytesWritable.setGlobalKmerLength(k);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        kmer.setByRead(array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        kmer.setByReadReverse(array, 1);
+        Assert.assertEquals(kmer.toString(), "CTTCTAT");
+    }
+
+    @Test
+    public void TestMoveKmerReverse() {
+        KmerBytesWritable.setGlobalKmerLength(k);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        kmer.setByRead(array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        for (int i = k; i < array.length - 1; i++) {
+            kmer.shiftKmerWithPreChar(array[i]);
+            Assert.assertTrue(false);
+        }
+
+        byte out = kmer.shiftKmerWithPreChar(array[array.length - 1]);
+        Assert.assertEquals(out, GeneCode.getCodeFromSymbol((byte) 'A'));
+        Assert.assertEquals(kmer.toString(), "GAATAGA");
+    }
+
+    @Test
+    public void TestGetGene() {
+        KmerBytesWritable.setGlobalKmerLength(9);
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        String text = "AGCTGACCG";
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G' };
+        kmer.setByRead(array, 0);
+
+        for (int i = 0; i < 9; i++) {
+            Assert.assertEquals(text.charAt(i), (char) (GeneCode.getSymbolFromCode(kmer.getGeneCodeAtPosition(i))));
+        }
+    }
+
+    @Test
+    public void TestGetOneByteFromKmer() {
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G', 'T' };
+        String string = "AGCTGACCGT";
+        for (int k = 3; k <= 10; k++) {
+            KmerBytesWritable.setGlobalKmerLength(k);
+            KmerBytesWritable kmer = new KmerBytesWritable();
+            KmerBytesWritable kmerAppend = new KmerBytesWritable();
+            kmer.setByRead(array, 0);
+            Assert.assertEquals(string.substring(0, k), kmer.toString());
+            for (int b = 0; b < k; b++) {
+                byte byteActual = KmerBytesWritable.getOneByteFromKmerAtPosition(b, kmer.getBytes(), kmer.getOffset(),
+                        kmer.getLength());
+                byte byteExpect = GeneCode.getCodeFromSymbol(array[b]);
+                for (int i = 1; i < 4 && b + i < k; i++) {
+                    byteExpect += GeneCode.getCodeFromSymbol(array[b + i]) << (i * 2);
+                }
+                Assert.assertEquals(byteActual, byteExpect);
+                KmerBytesWritable.appendOneByteAtPosition(b, byteActual, kmerAppend.getBytes(), kmerAppend.getOffset(),
+                        kmerAppend.getLength());
+            }
+            Assert.assertEquals(kmer.toString(), kmerAppend.toString());
+        }
+    }
+<<<<<<< HEAD
+=======
+
+    @Test
+    public void TestMergeFFKmer() {
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G', 'T' };
+        String text = "AGCTGACCGT";
+        KmerBytesWritable kmer1 = new KmerBytesWritable(8);
+        kmer1.setByRead(array, 0);
+        String text1 = "AGCTGACC";
+        KmerBytesWritable kmer2 = new KmerBytesWritable(8);
+        kmer2.setByRead(array, 1);
+        String text2 = "GCTGACCG";
+        Assert.assertEquals(text2, kmer2.toString());
+        KmerBytesWritable merge = new KmerBytesWritable(kmer1);
+        int kmerSize = 8;
+        merge.mergeWithFFKmer(kmerSize, kmer2);
+        Assert.assertEquals(text1 + text2.substring(kmerSize - 1), merge.toString());
+
+        for (int i = 1; i < 8; i++) {
+            merge.set(kmer1);
+            merge.mergeWithFFKmer(i, kmer2);
+            Assert.assertEquals(text1 + text2.substring(i - 1), merge.toString());
+        }
+
+        for (int ik = 1; ik <= 10; ik++) {
+            for (int jk = 1; jk <= 10; jk++) {
+                kmer1 = new KmerBytesWritable(ik);
+                kmer2 = new KmerBytesWritable(jk);
+                kmer1.setByRead(array, 0);
+                kmer2.setByRead(array, 0);
+                text1 = text.substring(0, ik);
+                text2 = text.substring(0, jk);
+                Assert.assertEquals(text1, kmer1.toString());
+                Assert.assertEquals(text2, kmer2.toString());
+                for (int x = 1; x < jk; x++) {
+                    merge.set(kmer1);
+                    merge.mergeWithFFKmer(x, kmer2);
+                    Assert.assertEquals(text1 + text2.substring(x - 1), merge.toString());
+                }
+            }
+        }
+    }
+    
+    @Test
+    public void TestMergeFRKmer() {
+        int kmerSize = 3;
+        String result = "AAGCTAACAACC";
+        byte[] resultArray = result.getBytes();
+        
+        String text1 = "AAGCTAA";
+        KmerBytesWritable kmer1 = new KmerBytesWritable(text1.length());
+        kmer1.setByRead(resultArray, 0);
+        Assert.assertEquals(text1, kmer1.toString());
+        
+        // kmer2 is the rc of the end of the read
+        String text2 = "GGTTGTT";
+        KmerBytesWritable kmer2 = new KmerBytesWritable(text2.length());
+        kmer2.setByReadReverse(resultArray, result.length() - text2.length());
+        Assert.assertEquals(text2, kmer2.toString());
+        
+        KmerBytesWritable merge = new KmerBytesWritable(kmer1);
+        merge.mergeWithFRKmer(kmerSize, kmer2);
+        Assert.assertEquals(result, merge.toString());
+        
+        int i = 1;
+        merge.set(kmer1);
+        merge.mergeWithFRKmer(i, kmer2);
+        Assert.assertEquals("AAGCTAAAACAACC", merge.toString());
+        
+        i = 2;
+        merge.set(kmer1);
+        merge.mergeWithFRKmer(i, kmer2);
+        Assert.assertEquals("AAGCTAAACAACC", merge.toString());
+        
+        i = 3;
+        merge.set(kmer1);
+        merge.mergeWithFRKmer(i, kmer2);
+        Assert.assertEquals("AAGCTAACAACC", merge.toString());
+    }
+    
+    
+    @Test
+    public void TestMergeRFKmer() {
+        int kmerSize = 3;
+        String result = "GGCACAACAACCC";
+        byte[] resultArray = result.getBytes();
+        
+        String text1 = "AACAACCC";
+        KmerBytesWritable kmer1 = new KmerBytesWritable(text1.length());
+        kmer1.setByRead(resultArray, 5);
+        Assert.assertEquals(text1, kmer1.toString());
+        
+        // kmer2 is the rc of the end of the read
+        String text2 = "TTGTGCC";
+        KmerBytesWritable kmer2 = new KmerBytesWritable(text2.length());
+        kmer2.setByReadReverse(resultArray, 0);
+        Assert.assertEquals(text2, kmer2.toString());
+        
+        KmerBytesWritable merge = new KmerBytesWritable(kmer1);
+        merge.mergeWithRFKmer(kmerSize, kmer2);
+        Assert.assertEquals(result, merge.toString());
+        
+        int i = 1;
+        merge.set(kmer1);
+        merge.mergeWithRFKmer(i, kmer2);
+        Assert.assertEquals("GGCACAAAACAACCC", merge.toString());
+        
+        i = 2;
+        merge.set(kmer1);
+        merge.mergeWithRFKmer(i, kmer2);
+        Assert.assertEquals("GGCACAAACAACCC", merge.toString());
+        
+        i = 3;
+        merge.set(kmer1);
+        merge.mergeWithRFKmer(i, kmer2);
+        Assert.assertEquals("GGCACAACAACCC", merge.toString());
+        
+        String test1;
+        String test2;
+        test1 = "CTA";
+        test2 = "AGA";
+        KmerBytesWritable k1 = new KmerBytesWritable(3);
+        KmerBytesWritable k2 = new KmerBytesWritable(3);
+        k1.setByRead(test1.getBytes(), 0);
+        k2.setByRead(test2.getBytes(), 0);
+        k1.mergeWithRFKmer(3, k2);
+        Assert.assertEquals("TCTA", k1.toString());
+        
+        test1 = "CTA";
+        test2 = "ATA"; //TAT
+        k1 = new KmerBytesWritable(3);
+        k2 = new KmerBytesWritable(3);
+        k1.setByRead(test1.getBytes(), 0);
+        k2.setByRead(test2.getBytes(), 0);
+        k1.mergeWithFRKmer(3, k2);
+        Assert.assertEquals("CTAT", k1.toString());
+        
+        test1 = "ATA";
+        test2 = "CTA"; //TAT
+        k1 = new KmerBytesWritable(3);
+        k2 = new KmerBytesWritable(3);
+        k1.setByRead(test1.getBytes(), 0);
+        k2.setByRead(test2.getBytes(), 0);
+        k1.mergeWithFRKmer(3, k2);
+        Assert.assertEquals("ATAG", k1.toString());
+        
+        test1 = "TCTAT";
+        test2 = "GAAC";
+        k1 = new KmerBytesWritable(5);
+        k2 = new KmerBytesWritable(4);
+        k1.setByRead(test1.getBytes(), 0);
+        k2.setByRead(test2.getBytes(), 0);
+        k1.mergeWithRFKmer(3, k2);
+        Assert.assertEquals("GTTCTAT", k1.toString());
+    }
+    
+    
+
+    @Test
+    public void TestMergeRRKmer() {
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G', 'T' };
+        String text = "AGCTGACCGT";
+        KmerBytesWritable kmer1 = new KmerBytesWritable(8);
+        kmer1.setByRead(array, 0);
+        String text1 = "AGCTGACC";
+        KmerBytesWritable kmer2 = new KmerBytesWritable(8);
+        kmer2.setByRead(array, 1);
+        String text2 = "GCTGACCG";
+        Assert.assertEquals(text2, kmer2.toString());
+        KmerBytesWritable merge = new KmerBytesWritable(kmer2);
+        int kmerSize = 8;
+        merge.mergeWithRRKmer(kmerSize, kmer1);
+        Assert.assertEquals(text1 + text2.substring(kmerSize - 1), merge.toString());
+
+        for (int i = 1; i < 8; i++) {
+            merge.set(kmer2);
+            merge.mergeWithRRKmer(i, kmer1);
+            Assert.assertEquals(text1.substring(0, text1.length() - i + 1) + text2, merge.toString());
+        }
+
+        for (int ik = 1; ik <= 10; ik++) {
+            for (int jk = 1; jk <= 10; jk++) {
+                kmer1 = new KmerBytesWritable(ik);
+                kmer2 = new KmerBytesWritable(jk);
+                kmer1.setByRead(array, 0);
+                kmer2.setByRead(array, 0);
+                text1 = text.substring(0, ik);
+                text2 = text.substring(0, jk);
+                Assert.assertEquals(text1, kmer1.toString());
+                Assert.assertEquals(text2, kmer2.toString());
+                for (int x = 1; x < ik; x++) {
+                    merge.set(kmer2);
+                    merge.mergeWithRRKmer(x, kmer1);
+                    Assert.assertEquals(text1.substring(0, text1.length() - x + 1) + text2, merge.toString());
+                }
+            }
+        }
+    }
+    
+    @Test
+    public void TestFinalMerge() {
+        String selfString;
+        String match;
+        String msgString;
+        int index;
+        KmerBytesWritable kmer = new KmerBytesWritable();
+        int kmerSize = 3;
+        
+        String F1 = "AATAG";
+        String F2 = "TAGAA";
+        String R1 = "CTATT";
+        String R2 = "TTCTA";
+        
+        //FF test
+        selfString = F1;
+        match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
+        msgString = F2;
+        index = msgString.indexOf(match);
+        kmer.reset(msgString.length() - index);
+        kmer.setByRead(msgString.substring(index).getBytes(), 0);
+        System.out.println(kmer.toString());
+        
+        //FR test
+        selfString = F1;
+        match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
+        msgString = GeneCode.reverseComplement(R2);
+        index = msgString.indexOf(match);
+        kmer.reset(msgString.length() - index);
+        kmer.setByRead(msgString.substring(index).getBytes(), 0);
+        System.out.println(kmer.toString());
+        
+        //RF test
+        selfString = R1;
+        match = selfString.substring(0,kmerSize - 1); 
+        msgString = GeneCode.reverseComplement(F2);
+        index = msgString.lastIndexOf(match) + kmerSize - 2;
+        kmer.reset(index + 1);
+        kmer.setByReadReverse(msgString.substring(0, index + 1).getBytes(), 0);
+        System.out.println(kmer.toString());
+        
+        //RR test
+        selfString = R1;
+        match = selfString.substring(0,kmerSize - 1); 
+        msgString = R2;
+        index = msgString.lastIndexOf(match) + kmerSize - 2;
+        kmer.reset(index + 1);
+        kmer.setByRead(msgString.substring(0, index + 1).getBytes(), 0);
+        System.out.println(kmer.toString());
+        
+        String[][] connectedTable = new String[][]{
+                {"FF", "RF"},
+                {"FF", "RR"},
+                {"FR", "RF"},
+                {"FR", "RR"}
+        };
+        System.out.println(connectedTable[0][1]);
+        
+        Set<Long> s1 = new HashSet<Long>();
+        Set<Long> s2 = new HashSet<Long>();
+        s1.add((long) 1);
+        s1.add((long) 2);
+        s2.add((long) 2);
+        s2.add((long) 3);
+        Set<Long> intersection = new HashSet<Long>();
+        intersection.addAll(s1);
+        intersection.retainAll(s2);
+        System.out.println(intersection.toString());
+        Set<Long> difference = new HashSet<Long>();
+        difference.addAll(s1);
+        difference.removeAll(s2);
+        System.out.println(difference.toString());
+        
+        Map<KmerBytesWritable, Set<Long>> map = new HashMap<KmerBytesWritable, Set<Long>>();
+        KmerBytesWritable k1 = new KmerBytesWritable(3);
+        Set<Long> set1 = new HashSet<Long>();
+        k1.setByRead(("CTA").getBytes(), 0);
+        set1.add((long)1);
+        map.put(k1, set1);
+        KmerBytesWritable k2 = new KmerBytesWritable(3);
+        k2.setByRead(("GTA").getBytes(), 0);
+        Set<Long> set2 = new HashSet<Long>();
+        set2.add((long) 2);
+        map.put(k2, set2);
+        KmerBytesWritable k3 = new KmerBytesWritable(3);
+        k3.setByRead(("ATG").getBytes(), 0);
+        Set<Long> set3 = new HashSet<Long>();
+        set3.add((long) 3);
+        map.put(k3, set3);
+        KmerBytesWritable k4 = new KmerBytesWritable(3);
+        k4.setByRead(("AAT").getBytes(), 0);
+        Set<Long> set4 = new HashSet<Long>();
+        set4.add((long) 4);
+        map.put(k4, set4);
+        System.out.println("CTA = " + map.get(k1).toString());
+        System.out.println("GTA = " + map.get(k2).toString());
+        System.out.println("ATG = " + map.get(k3).toString());
+        System.out.println("AAT = " + map.get(k4).toString());
+    }
+>>>>>>> 94e075b5c3db9aa613ef61c2581430a143b17bc8
+}
diff --git a/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerListWritableTest.java b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerListWritableTest.java
new file mode 100644
index 0000000..fc97664
--- /dev/null
+++ b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerListWritableTest.java
@@ -0,0 +1,131 @@
+package edu.uci.ics.genomix.data.test;
+
+import java.util.Iterator;
+import java.util.Random;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+
+public class KmerListWritableTest {
+
+    @Test
+    public void TestInitial() {
+        VKmerListWritable kmerList = new VKmerListWritable();
+        Assert.assertEquals(kmerList.getCountOfPosition(), 0);
+        
+        //one kmer in list and reset each time
+        VKmerBytesWritable kmer;
+        for (int i = 1; i < 200; i++) {
+            kmer = new VKmerBytesWritable(i);
+            String randomString = generaterRandomString(i);
+            byte[] array = randomString.getBytes();
+            kmer.setByRead(i, array, 0);
+            kmerList.reset();
+            kmerList.append(kmer);
+            Assert.assertEquals(randomString, kmerList.getPosition(0).toString());
+            Assert.assertEquals(1, kmerList.getCountOfPosition());
+        }
+        
+        kmerList.reset();
+        //add one more kmer each time and fix kmerSize
+        for (int i = 0; i < 200; i++) {
+            kmer = new VKmerBytesWritable(5);
+            String randomString = generaterRandomString(5);
+            byte[] array = randomString.getBytes();
+            kmer.setByRead(5, array, 0);
+            kmerList.append(kmer);
+            Assert.assertEquals(kmerList.getPosition(i).toString(), randomString);
+            Assert.assertEquals(i + 1, kmerList.getCountOfPosition());
+        }
+        
+        byte [] another = new byte [kmerList.getLength()*2];
+        int start = 20;
+        System.arraycopy(kmerList.getByteArray(), kmerList.getStartOffset(), another, start, kmerList.getLength());
+        VKmerListWritable plist2 = new VKmerListWritable(another, start);
+        for(int i = 0; i < plist2.getCountOfPosition(); i++){
+            Assert.assertEquals(kmerList.getPosition(i).toString(), plist2.getPosition(i).toString());
+        }
+    }
+    
+    @Test
+    public void TestRemove() {
+        VKmerListWritable kmerList = new VKmerListWritable();
+        Assert.assertEquals(kmerList.getCountOfPosition(), 0);
+        
+        int i;
+        VKmerBytesWritable kmer;
+        for (i = 0; i < 200; i++) {
+            kmer = new VKmerBytesWritable(5);
+            String randomString = generaterRandomString(5);
+            byte[] array = randomString.getBytes();
+            kmer.setByRead(5, array, 0);
+            kmerList.append(kmer);
+            Assert.assertEquals(randomString, kmerList.getPosition(i).toString());
+            Assert.assertEquals(i + 1, kmerList.getCountOfPosition());
+        }
+        
+        //delete one element each time
+        VKmerBytesWritable tmpKmer = new VKmerBytesWritable(5);
+        i = 0;
+        VKmerListWritable copyList = new VKmerListWritable();
+        copyList.setCopy(kmerList);
+        Iterator<VKmerBytesWritable> iterator;
+        for(int j = 0; j < 5; j++){
+            iterator = copyList.iterator();
+            byte[] array = kmerList.getPosition(j).toString().getBytes();
+            VKmerBytesWritable deletePos = new VKmerBytesWritable(5);
+            deletePos.setByRead(5, array, 0);
+            boolean removed = false;
+            while(iterator.hasNext()){
+                tmpKmer = iterator.next();
+                if(tmpKmer.equals(deletePos)){
+                    iterator.remove();
+                    removed = true;
+                    break;
+                }
+            }
+            Assert.assertTrue(removed);
+            Assert.assertEquals(200 - 1 - j, copyList.getCountOfPosition());
+            while(iterator.hasNext()){
+                tmpKmer = iterator.next();
+                Assert.assertTrue(!tmpKmer.getBytes().equals(deletePos.getBytes()));
+                i++;
+            }
+        }
+        
+        //delete all the elements
+        i = 0;
+        iterator = kmerList.iterator();
+        while(iterator.hasNext()){
+            tmpKmer = iterator.next();
+            iterator.remove();
+        }
+        
+        Assert.assertEquals(0, kmerList.getCountOfPosition());
+        
+        VKmerListWritable edgeList = new VKmerListWritable();
+        VKmerBytesWritable k = new VKmerBytesWritable(3);
+        k.setByRead(3, ("AAA").getBytes(), 0);
+        edgeList.append(k);
+        k.setByRead(3, ("CCC").getBytes(), 0);
+        edgeList.append(k);
+        for(VKmerBytesWritable edge : edgeList){
+        	System.out.println(edge.toString());
+        }
+    }
+    
+    public String generaterRandomString(int n){
+        char[] chars = "ACGT".toCharArray();
+        StringBuilder sb = new StringBuilder();
+        Random random = new Random();
+        for (int i = 0; i < n; i++) {
+            char c = chars[random.nextInt(chars.length)];
+            sb.append(c);
+        }
+        return sb.toString();
+    }
+}
diff --git a/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/PositionListWritableTest.java b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/PositionListWritableTest.java
new file mode 100644
index 0000000..ac7322e
--- /dev/null
+++ b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/PositionListWritableTest.java
@@ -0,0 +1,117 @@
+package edu.uci.ics.genomix.data.test;
+
+import java.util.Iterator;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import edu.uci.ics.genomix.type.PositionListWritable;
+import edu.uci.ics.genomix.type.PositionWritable;
+
+public class PositionListWritableTest {
+
+    @Test
+    public void TestInitial() {
+        PositionListWritable plist = new PositionListWritable();
+        Assert.assertEquals(plist.getCountOfPosition(), 0);
+        
+        byte mateId;
+        long readId;
+        int posId;
+        for (int i = 0; i < 200; i++) {
+            mateId = (byte)1;
+            readId = (long)i;
+            posId = i;
+            plist.append(mateId, readId, posId);
+            Assert.assertEquals(plist.getPosition(i).getMateId(), mateId);
+            Assert.assertEquals(plist.getPosition(i).getReadId(), readId);
+            Assert.assertEquals(plist.getPosition(i).getPosId(), posId);
+            Assert.assertEquals(i + 1, plist.getCountOfPosition());
+        }
+        
+        int i = 0;
+        for (PositionWritable pos : plist) {
+            Assert.assertEquals((byte)1, pos.getMateId());
+            Assert.assertEquals((long) i, pos.getReadId());
+            Assert.assertEquals(i, pos.getPosId());
+            i++;
+        }
+        
+        byte [] another = new byte [plist.getLength()*2];
+        int start = 20;
+        System.arraycopy(plist.getByteArray(), 0, another, start, plist.getLength());
+        PositionListWritable plist2 = new PositionListWritable(another,start);
+        for( i = 0; i < plist2.getCountOfPosition(); i++){
+            Assert.assertEquals(plist.getPosition(i), plist2.getPosition(i));
+        }
+    }
+    
+    @Test
+    public void TestRemove() {
+        PositionListWritable plist = new PositionListWritable();
+        Assert.assertEquals(plist.getCountOfPosition(), 0);
+        
+        byte mateId;
+        long readId;
+        int posId;
+        for (int i = 0; i < 5; i++) {
+            mateId = (byte)1;
+            readId = (long)i;
+            posId = i;
+            plist.append(mateId, readId, posId);
+            Assert.assertEquals(plist.getPosition(i).getMateId(), mateId);
+            Assert.assertEquals(plist.getPosition(i).getReadId(), readId);
+            Assert.assertEquals(plist.getPosition(i).getPosId(), posId);
+            Assert.assertEquals(i + 1, plist.getCountOfPosition());
+        }
+        
+        int i = 0;
+        for (PositionWritable pos : plist) {
+            Assert.assertEquals((byte)1, pos.getMateId());
+            Assert.assertEquals((long) i, pos.getReadId());
+            Assert.assertEquals(i, pos.getPosId());
+            i++;
+        }
+        
+        //delete one element each time
+        i = 0;
+        PositionListWritable copyList = new PositionListWritable();
+        copyList.set(plist);
+        PositionWritable pos = new PositionWritable();
+        Iterator<PositionWritable> iterator;
+        for(int j = 0; j < 5; j++){
+            iterator = copyList.iterator();
+            PositionWritable deletePos = new PositionWritable();
+            deletePos.set((byte)1, (long)j, j);
+            boolean removed = false;
+            while(iterator.hasNext()){
+                pos = iterator.next();
+                if(pos.equals(deletePos)){
+                    iterator.remove();
+                    removed = true;
+                    break;
+                }
+            }
+            Assert.assertTrue(removed);
+            Assert.assertEquals(5 - 1 - j, copyList.getCountOfPosition());
+            while(iterator.hasNext()){
+                pos = iterator.next();
+                Assert.assertTrue(! (pos.getUUID() == deletePos.getUUID() && 
+                                  pos.getReadId() == deletePos.getReadId() && 
+                                  pos.getPosId() == deletePos.getPosId()));
+                i++;
+            }
+        }
+        
+        //delete all the elements
+        i = 0;
+        iterator = plist.iterator();
+        while(iterator.hasNext()){
+            pos = iterator.next();
+            iterator.remove();
+        }
+        
+        Assert.assertEquals(0, plist.getCountOfPosition());
+    }
+}
diff --git a/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/PositionWritableTest.java b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/PositionWritableTest.java
new file mode 100644
index 0000000..003406d
--- /dev/null
+++ b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/PositionWritableTest.java
@@ -0,0 +1,47 @@
+package edu.uci.ics.genomix.data.test;
+
+import java.util.Random;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import edu.uci.ics.genomix.data.Marshal;
+import edu.uci.ics.genomix.type.PositionWritable;
+
+public class PositionWritableTest {
+
+    @Test
+    public void TestInitial() {
+        PositionWritable pos = new PositionWritable();
+        PositionWritable pos1 = new PositionWritable();
+        byte mateId;
+        long readId;
+        int posId;
+        Random gen = new Random();
+        byte[] start = new byte[15];
+        for (long i = 0; i < (1 << 47); i++) {
+            mateId = (byte) (gen.nextBoolean() ? 1 : 0);
+            readId = i;
+            posId = (int) (i % (1 << 16));
+            pos = new PositionWritable(mateId, readId, posId);
+            Assert.assertEquals(pos.getMateId(), mateId);
+            Assert.assertEquals(pos.getReadId(), readId);
+            Assert.assertEquals(pos.getPosId(), posId);
+            
+            long uuid = ((readId + 1) << 17) + ((posId & 0xFFFF) << 1) + (mateId & 0b1);
+            Marshal.putLong(uuid, start, 0);
+            pos1 = new PositionWritable(start, 0);
+            Assert.assertEquals(pos1.getMateId(), mateId);
+            Assert.assertEquals(pos1.getReadId(), readId + 1);
+            Assert.assertEquals(pos1.getPosId(), posId);
+            
+            pos.setNewReference(start, 0);
+            Assert.assertEquals(pos.getMateId(), mateId);
+            Assert.assertEquals(pos.getReadId(), readId + 1);
+            Assert.assertEquals(pos.getPosId(), posId);
+            
+            Assert.assertEquals(pos1.toString(), pos.toString());
+        }
+    }
+}
diff --git a/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/VKmerBytesWritableTest.java b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/VKmerBytesWritableTest.java
new file mode 100644
index 0000000..9bf728d
--- /dev/null
+++ b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/VKmerBytesWritableTest.java
@@ -0,0 +1,580 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.data.test;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import edu.uci.ics.genomix.type.GeneCode;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+
+
+public class VKmerBytesWritableTest {
+    static byte[] array = { 'A', 'A', 'T', 'A', 'G', 'A', 'A', 'G' };
+    static int k = 7;
+
+    @Test
+    public void TestCompressKmer() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable(k);
+        kmer.setByRead(k, array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        kmer.setByRead(k, array, 1);
+        Assert.assertEquals(kmer.toString(), "ATAGAAG");
+    }
+
+    @Test
+    public void TestMoveKmer() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable(k);
+        kmer.setByRead(k, array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        for (int i = k; i < array.length - 1; i++) {
+            kmer.shiftKmerWithNextCode(array[i]);
+            Assert.assertTrue(false);
+        }
+
+        byte out = kmer.shiftKmerWithNextChar(array[array.length - 1]);
+        Assert.assertEquals(out, GeneCode.getCodeFromSymbol((byte) 'A'));
+        Assert.assertEquals(kmer.toString(), "ATAGAAG");
+    }
+
+    @Test
+    public void TestCompressKmerReverse() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        kmer.setByRead(k, array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        kmer.setByReadReverse(k, array, 1);
+        Assert.assertEquals(kmer.toString(), "CTTCTAT");
+    }
+
+    @Test
+    public void TestMoveKmerReverse() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        kmer.setByRead(k, array, 0);
+        Assert.assertEquals(kmer.toString(), "AATAGAA");
+
+        for (int i = k; i < array.length - 1; i++) {
+            kmer.shiftKmerWithPreChar(array[i]);
+            Assert.assertTrue(false);
+        }
+
+        byte out = kmer.shiftKmerWithPreChar(array[array.length - 1]);
+        Assert.assertEquals(out, GeneCode.getCodeFromSymbol((byte) 'A'));
+        Assert.assertEquals(kmer.toString(), "GAATAGA");
+    }
+
+    @Test
+    public void TestGetGene() {
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        String text = "AGCTGACCG";
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G' };
+        kmer.setByRead(9, array, 0);
+
+        for (int i = 0; i < 9; i++) {
+            Assert.assertEquals(text.charAt(i), (char) (GeneCode.getSymbolFromCode(kmer.getGeneCodeAtPosition(i))));
+        }
+    }
+
+    @Test
+    public void TestGetOneByteFromKmer() {
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G', 'T' };
+        String string = "AGCTGACCGT";
+        for (int k = 3; k <= 10; k++) {
+            VKmerBytesWritable kmer = new VKmerBytesWritable();
+            VKmerBytesWritable kmerAppend = new VKmerBytesWritable(k);
+            kmer.setByRead(k, array, 0);
+            Assert.assertEquals(string.substring(0, k), kmer.toString());
+            for (int b = 0; b < k; b++) {
+                byte byteActual = KmerBytesWritable.getOneByteFromKmerAtPosition(b, kmer.getBytes(),
+                        kmer.getKmerOffset(), kmer.getKmerByteLength());
+                byte byteExpect = GeneCode.getCodeFromSymbol(array[b]);
+                for (int i = 1; i < 4 && b + i < k; i++) {
+                    byteExpect += GeneCode.getCodeFromSymbol(array[b + i]) << (i * 2);
+                }
+                Assert.assertEquals(byteActual, byteExpect);
+                KmerBytesWritable.appendOneByteAtPosition(b, byteActual, kmerAppend.getBytes(),
+                        kmerAppend.getKmerOffset(), kmerAppend.getKmerByteLength());
+            }
+            Assert.assertEquals(kmer.toString(), kmerAppend.toString());
+        }
+    }
+
+    @Test
+    public void TestMergeFFKmer() {
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G', 'T' };
+        String text = "AGCTGACCGT";
+        VKmerBytesWritable kmer1 = new VKmerBytesWritable();
+        kmer1.setByRead(8, array, 0);
+        String text1 = "AGCTGACC";
+        Assert.assertEquals(text1, kmer1.toString());
+
+        VKmerBytesWritable kmer2 = new VKmerBytesWritable();
+        kmer2.setByRead(8, array, 1);
+        String text2 = "GCTGACCG";
+        Assert.assertEquals(text2, kmer2.toString());
+
+        VKmerBytesWritable merge = new VKmerBytesWritable(kmer1);
+        int kmerSize = 8;
+        merge.mergeWithFFKmer(kmerSize, kmer2);
+        Assert.assertEquals(text1 + text2.substring(kmerSize - 1), merge.toString());
+
+        for (int i = 1; i < 8; i++) {
+            merge.setAsCopy(kmer1);
+            merge.mergeWithFFKmer(i, kmer2);
+            Assert.assertEquals(text1 + text2.substring(i - 1), merge.toString());
+        }
+
+        for (int ik = 1; ik <= 10; ik++) {
+            for (int jk = 1; jk <= 10; jk++) {
+                kmer1 = new VKmerBytesWritable(ik);
+                kmer2 = new VKmerBytesWritable(jk);
+                kmer1.setByRead(ik, array, 0);
+                kmer2.setByRead(jk, array, 0);
+                text1 = text.substring(0, ik);
+                text2 = text.substring(0, jk);
+                Assert.assertEquals(text1, kmer1.toString());
+                Assert.assertEquals(text2, kmer2.toString());
+                for (int x = 1; x < (jk < ik ? jk : ik); x++) {
+                    merge.setAsCopy(kmer1);
+                    merge.mergeWithFFKmer(x, kmer2);
+                    Assert.assertEquals(text1 + text2.substring(x - 1), merge.toString());
+                }
+            }
+        }
+    }
+
+    @Test
+    public void TestMergeFRKmer() {
+        int kmerSize = 3;
+        String result = "AAGCTAACAACC";
+        byte[] resultArray = result.getBytes();
+
+        String text1 = "AAGCTAA";
+        VKmerBytesWritable kmer1 = new VKmerBytesWritable();
+        kmer1.setByRead(text1.length(), resultArray, 0);
+        Assert.assertEquals(text1, kmer1.toString());
+
+        // kmer2 is the rc of the end of the read
+        String text2 = "GGTTGTT";
+        VKmerBytesWritable kmer2 = new VKmerBytesWritable();
+        kmer2.setByReadReverse(text2.length(), resultArray, result.length() - text2.length());
+        Assert.assertEquals(text2, kmer2.toString());
+
+        VKmerBytesWritable merge = new VKmerBytesWritable();
+        merge.setAsCopy(kmer1);
+        merge.mergeWithFRKmer(kmerSize, kmer2);
+        Assert.assertEquals(result, merge.toString());
+
+        int i = 1;
+        merge.setAsCopy(kmer1);
+        merge.mergeWithFRKmer(i, kmer2);
+        Assert.assertEquals("AAGCTAAAACAACC", merge.toString());
+
+        i = 2;
+        merge.setAsCopy(kmer1);
+        merge.mergeWithFRKmer(i, kmer2);
+        Assert.assertEquals("AAGCTAAACAACC", merge.toString());
+
+        i = 3;
+        merge.setAsCopy(kmer1);
+        merge.mergeWithFRKmer(i, kmer2);
+        Assert.assertEquals("AAGCTAACAACC", merge.toString());
+    }
+
+    @Test
+    public void TestMergeRFKmer() {
+        int kmerSize = 3;
+        String result = "GGCACAACAACCC";
+        byte[] resultArray = result.getBytes();
+
+        String text1 = "AACAACCC";
+        VKmerBytesWritable kmer1 = new VKmerBytesWritable();
+        kmer1.setByRead(text1.length(), resultArray, 5);
+        Assert.assertEquals(text1, kmer1.toString());
+
+        // kmer2 is the rc of the end of the read
+        String text2 = "TTGTGCC";
+        VKmerBytesWritable kmer2 = new VKmerBytesWritable();
+        kmer2.setByReadReverse(text2.length(), resultArray, 0);
+        Assert.assertEquals(text2, kmer2.toString());
+
+        VKmerBytesWritable merge = new VKmerBytesWritable();
+        merge.setAsCopy(kmer1);
+        merge.mergeWithRFKmer(kmerSize, kmer2);
+        Assert.assertEquals(result, merge.toString());
+
+        int i = 1;
+        merge.setAsCopy(kmer1);
+        merge.mergeWithRFKmer(i, kmer2);
+        Assert.assertEquals("GGCACAAAACAACCC", merge.toString());
+
+        i = 2;
+        merge.setAsCopy(kmer1);
+        merge.mergeWithRFKmer(i, kmer2);
+        Assert.assertEquals("GGCACAAACAACCC", merge.toString());
+
+        i = 3;
+        merge.setAsCopy(kmer1);
+        merge.mergeWithRFKmer(i, kmer2);
+        Assert.assertEquals("GGCACAACAACCC", merge.toString());
+
+        // String test1 = "CTTAT";
+        // String test2 = "AGACC"; // rc = GGTCT
+        // VKmerBytesWritable k1 = new VKmerBytesWritable(5);
+        // VKmerBytesWritable k2 = new VKmerBytesWritable(5);
+        // k1.setByRead(test1.getBytes(), 0);
+        // k2.setByRead(test2.getBytes(), 0);
+        // k1.mergeWithRFKmer(3, k2);
+        // Assert.assertEquals("GGTCTTAT", k1.toString()); //GGTCGTCT ->
+        // AGACGACC ??
+
+        String test3 = "CTA";
+        String test4 = "AGA"; // rc = TCT
+        VKmerBytesWritable k3 = new VKmerBytesWritable();
+        VKmerBytesWritable k4 = new VKmerBytesWritable();
+        k3.setByRead(3, test3.getBytes(), 0);
+        k4.setByRead(3, test4.getBytes(), 0);
+        k3.mergeWithRFKmer(3, k4);
+        Assert.assertEquals("TCTA", k3.toString());
+        // Assert.assertEquals("CTAT", k3); // this is an incorrect test case--
+        // the merge always flips the passed-in kmer
+        
+        String test1;
+        String test2;
+        test1 = "CTA";
+        test2 = "AGA";
+        VKmerBytesWritable k1 = new VKmerBytesWritable();
+        VKmerBytesWritable k2 = new VKmerBytesWritable();
+        k1.setByRead(3, test1.getBytes(), 0);
+        k2.setByRead(3, test2.getBytes(), 0);
+        k1.mergeWithRFKmer(3, k2);
+        Assert.assertEquals("TCTA", k1.toString());
+        
+        
+        
+        test1 = "CTA";
+        test2 = "ATA"; //TAT
+        k1 = new VKmerBytesWritable();
+        k2 = new VKmerBytesWritable();
+        k1.setByRead(3, test1.getBytes(), 0);
+        k2.setByRead(3, test2.getBytes(), 0);
+        k1.mergeWithFRKmer(3, k2);
+        Assert.assertEquals("CTAT", k1.toString());
+        
+        test1 = "ATA";
+        test2 = "CTA"; //TAT
+        k1 = new VKmerBytesWritable();
+        k2 = new VKmerBytesWritable();
+        k1.setByRead(3, test1.getBytes(), 0);
+        k2.setByRead(3, test2.getBytes(), 0);
+        k1.mergeWithFRKmer(3, k2);
+        Assert.assertEquals("ATAG", k1.toString());
+        
+        test1 = "TCTAT";
+        test2 = "GAAC";
+        k1 = new VKmerBytesWritable();
+        k2 = new VKmerBytesWritable();
+        k1.setByRead(5, test1.getBytes(), 0);
+        k2.setByRead(4, test2.getBytes(), 0);
+        k1.mergeWithRFKmer(3, k2);
+        Assert.assertEquals("GTTCTAT", k1.toString());
+    }
+
+    @Test
+    public void TestMergeRRKmer() {
+        byte[] array = { 'A', 'G', 'C', 'T', 'G', 'A', 'C', 'C', 'G', 'T' };
+        String text = "AGCTGACCGT";
+        VKmerBytesWritable kmer1 = new VKmerBytesWritable();
+        kmer1.setByRead(8, array, 0);
+        String text1 = "AGCTGACC";
+        VKmerBytesWritable kmer2 = new VKmerBytesWritable();
+        kmer2.setByRead(8, array, 1);
+        String text2 = "GCTGACCG";
+        Assert.assertEquals(text2, kmer2.toString());
+        VKmerBytesWritable merge = new VKmerBytesWritable(kmer2);
+        int kmerSize = 8;
+        merge.mergeWithRRKmer(kmerSize, kmer1);
+        Assert.assertEquals(text1 + text2.substring(kmerSize - 1), merge.toString());
+
+        for (int i = 1; i < 8; i++) {
+            merge.setAsCopy(kmer2);
+            merge.mergeWithRRKmer(i, kmer1);
+            Assert.assertEquals(text1.substring(0, text1.length() - i + 1) + text2, merge.toString());
+        }
+
+        for (int ik = 1; ik <= 10; ik++) {
+            for (int jk = 1; jk <= 10; jk++) {
+                kmer1 = new VKmerBytesWritable();
+                kmer2 = new VKmerBytesWritable();
+                kmer1.setByRead(ik, array, 0);
+                kmer2.setByRead(jk, array, 0);
+                text1 = text.substring(0, ik);
+                text2 = text.substring(0, jk);
+                Assert.assertEquals(text1, kmer1.toString());
+                Assert.assertEquals(text2, kmer2.toString());
+                for (int x = 1; x < (ik < jk ? ik : jk); x++) {
+                    merge.setAsCopy(kmer2);
+                    merge.mergeWithRRKmer(x, kmer1);
+                    Assert.assertEquals(text1.substring(0, text1.length() - x + 1) + text2, merge.toString());
+                }
+            }
+        }
+    }
+
+    @Test
+    public void TestMergeRFAndRRKmer() {
+        String test1 = "TAGAT";
+        String test2 = "TCTAG"; // rc = CTAGA
+        String test3 = "GCTAG";
+        VKmerBytesWritable k1 = new VKmerBytesWritable();
+        VKmerBytesWritable k2 = new VKmerBytesWritable();
+        VKmerBytesWritable k3 = new VKmerBytesWritable();
+        k1.setByRead(5, test1.getBytes(), 0);
+        k2.setByRead(5, test2.getBytes(), 0);
+        k3.setByRead(5, test3.getBytes(), 0);
+        k1.mergeWithRFKmer(5, k2);
+        Assert.assertEquals("CTAGAT", k1.toString());
+        k1.mergeWithRRKmer(5, k3);
+        Assert.assertEquals("GCTAGAT", k1.toString());
+    }
+
+    @Test
+    public void TestMergeRFAndRFKmer() {
+        String test1 = "TAGAT";
+        String test2 = "TCTAG"; // rc = CTAGA
+        String test3 = "CTAGC"; // rc = GCTAG
+        VKmerBytesWritable k1 = new VKmerBytesWritable();
+        VKmerBytesWritable k2 = new VKmerBytesWritable();
+        VKmerBytesWritable k3 = new VKmerBytesWritable();
+        k1.setByRead(5, test1.getBytes(), 0);
+        k2.setByRead(5, test2.getBytes(), 0);
+        k3.setByRead(5, test3.getBytes(), 0);
+        k1.mergeWithRFKmer(5, k2);
+        Assert.assertEquals("CTAGAT", k1.toString());
+        k1.mergeWithRFKmer(5, k3);
+        Assert.assertEquals("GCTAGAT", k1.toString());
+    }
+
+    @Test
+    public void TestMergeRFAndFRKmer() {
+        String test1 = "TAGAT"; // rc = ATCTA
+        String test2 = "TCTAG"; // rc = CTAGA
+        String test3 = "GCTAG"; // rc = CTAGC
+        VKmerBytesWritable k1 = new VKmerBytesWritable();
+        VKmerBytesWritable k2 = new VKmerBytesWritable();
+        VKmerBytesWritable k3 = new VKmerBytesWritable();
+        k1.setByRead(5, test1.getBytes(), 0);
+        k2.setByRead(5, test2.getBytes(), 0);
+        k3.setByRead(5, test3.getBytes(), 0);
+        k2.mergeWithRFKmer(5, k1);
+        Assert.assertEquals("ATCTAG", k2.toString());
+        k2.mergeWithFRKmer(5, k3);
+        Assert.assertEquals("ATCTAGC", k2.toString());
+    }
+
+    @Test
+    public void TestMergeRFAndFFKmer() {
+        String test1 = "TAGAT"; // rc = ATCTA
+        String test2 = "TCTAG"; // rc = CTAGA
+        String test3 = "CTAGC"; // rc = GCTAG
+        VKmerBytesWritable k1 = new VKmerBytesWritable();
+        VKmerBytesWritable k2 = new VKmerBytesWritable();
+        VKmerBytesWritable k3 = new VKmerBytesWritable();
+        k1.setByRead(5, test1.getBytes(), 0);
+        k2.setByRead(5, test2.getBytes(), 0);
+        k3.setByRead(5, test3.getBytes(), 0);
+        k2.mergeWithRFKmer(5, k1);
+        Assert.assertEquals("ATCTAG", k2.toString());
+        k2.mergeWithFFKmer(5, k3);
+        Assert.assertEquals("ATCTAGC", k2.toString());
+    }
+
+    @Test
+    public void TestMergeThreeVKmersRF_FF() {
+        String test1 = "TAGAT"; // rc = ATCTA
+        String test2 = "TCTAG"; // rc = CTAGA
+        String test3 = "CTAGC"; // rc = GCTAG
+        VKmerBytesWritable k1 = new VKmerBytesWritable();
+        VKmerBytesWritable k2 = new VKmerBytesWritable();
+        VKmerBytesWritable k3 = new VKmerBytesWritable();
+        k1.setByRead(5, test1.getBytes(), 0);
+        k2.setByRead(5, test2.getBytes(), 0);
+        k3.setByRead(5, test3.getBytes(), 0);
+        k2.mergeWithRFKmer(5, k1);
+        Assert.assertEquals("ATCTAG", k2.toString());
+        k2.mergeWithFFKmer(5, k3);
+        Assert.assertEquals("ATCTAGC", k2.toString());
+    }
+
+    @Test
+    public void TestMergeThreeVKmerRF_RF() {
+        String test1 = "TAGAT";
+        String test2 = "TCTAG"; // rc = CTAGA
+        String test3 = "CTAGC"; // rc = GCTAG
+        VKmerBytesWritable k1 = new VKmerBytesWritable();
+        VKmerBytesWritable k2 = new VKmerBytesWritable();
+        VKmerBytesWritable k3 = new VKmerBytesWritable();
+        k1.setByRead(5, test1.getBytes(), 0);
+        k2.setByRead(5, test2.getBytes(), 0);
+        k3.setByRead(5, test3.getBytes(), 0);
+        k1.mergeWithRFKmer(5, k2);
+        Assert.assertEquals("CTAGAT", k1.toString());
+        k1.mergeWithRFKmer(5, k3);
+        Assert.assertEquals("GCTAGAT", k1.toString());
+    }
+    
+    @Test
+    public void TestFinalMerge() {
+        String selfString;
+        String match;
+        String msgString;
+        int index;
+        VKmerBytesWritable kmer = new VKmerBytesWritable();
+        int kmerSize = 3;
+        
+        String F1 = "AATAG";
+        String F2 = "TAGAA";
+        String R1 = "CTATT";
+        String R2 = "TTCTA";
+        
+        //FF test
+        selfString = F1;
+        match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
+        msgString = F2;
+        index = msgString.indexOf(match);
+        // does this test belong in VKmer so it can have variable-length kmers?
+//        kmer.reset(msgString.length() - index);
+        kmer.setByRead(kmerSize, msgString.substring(index).getBytes(), 0);
+        System.out.println(kmer.toString());
+        
+        //FR test
+        selfString = F1;
+        match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
+        msgString = GeneCode.reverseComplement(R2);
+        index = msgString.indexOf(match);
+        kmer.reset(msgString.length() - index);
+        kmer.setByRead(kmerSize, msgString.substring(index).getBytes(), 0);
+        System.out.println(kmer.toString());
+        
+        //RF test
+        selfString = R1;
+        match = selfString.substring(0,kmerSize - 1); 
+        msgString = GeneCode.reverseComplement(F2);
+        index = msgString.lastIndexOf(match) + kmerSize - 2;
+        kmer.reset(index + 1);
+        kmer.setByReadReverse(kmerSize, msgString.substring(0, index + 1).getBytes(), 0);
+        System.out.println(kmer.toString());
+        
+        //RR test
+        selfString = R1;
+        match = selfString.substring(0,kmerSize - 1); 
+        msgString = R2;
+        index = msgString.lastIndexOf(match) + kmerSize - 2;
+        kmer.reset(index + 1);
+        kmer.setByRead(kmerSize, msgString.substring(0, index + 1).getBytes(), 0);
+        System.out.println(kmer.toString());
+        
+        String[][] connectedTable = new String[][]{
+                {"FF", "RF"},
+                {"FF", "RR"},
+                {"FR", "RF"},
+                {"FR", "RR"}
+        };
+        System.out.println(connectedTable[0][1]);
+        
+        Set<Long> s1 = new HashSet<Long>();
+        Set<Long> s2 = new HashSet<Long>();
+        s1.add((long) 1);
+        s1.add((long) 2);
+        s2.add((long) 2);
+        s2.add((long) 3);
+        Set<Long> intersection = new HashSet<Long>();
+        intersection.addAll(s1);
+        intersection.retainAll(s2);
+        System.out.println(intersection.toString());
+        Set<Long> difference = new HashSet<Long>();
+        difference.addAll(s1);
+        difference.removeAll(s2);
+        System.out.println(difference.toString());
+        
+        Map<VKmerBytesWritable, Set<Long>> map = new HashMap<VKmerBytesWritable, Set<Long>>();
+        VKmerBytesWritable k1 = new VKmerBytesWritable();
+        Set<Long> set1 = new HashSet<Long>();
+        k1.setByRead(3, ("CTA").getBytes(), 0);
+        set1.add((long)1);
+        map.put(k1, set1);
+        VKmerBytesWritable k2 = new VKmerBytesWritable();
+        k2.setByRead(3, ("GTA").getBytes(), 0);
+        Set<Long> set2 = new HashSet<Long>();
+        set2.add((long) 2);
+        map.put(k2, set2);
+        VKmerBytesWritable k3 = new VKmerBytesWritable();
+        k3.setByRead(3, ("ATG").getBytes(), 0);
+        Set<Long> set3 = new HashSet<Long>();
+        set3.add((long) 2);
+        map.put(k3, set3);
+        VKmerBytesWritable k4 = new VKmerBytesWritable();
+        k4.setByRead(3, ("AAT").getBytes(), 0);
+        Set<Long> set4 = new HashSet<Long>();
+        set4.add((long) 1);
+        map.put(k4, set4);
+        VKmerListWritable kmerList = new VKmerListWritable();
+        kmerList.append(k1);
+        kmerList.append(k2);
+        System.out.println("CTA = " + map.get(k1).toString());
+        System.out.println("GTA = " + map.get(k2).toString());
+        System.out.println("ATG = " + map.get(k3).toString());
+        System.out.println("AAT = " + map.get(k4).toString());
+        System.out.println(k1.compareTo(k2));
+        System.out.println(k2.compareTo(k1));
+        
+        System.out.println("CTA = " + kmerList.getPosition(0).toString());
+        System.out.println("GTA = " + kmerList.getPosition(1).toString());
+        System.out.println("CTA = " + map.get(kmerList.getPosition(0)).toString());
+        System.out.println("GTA = " + map.get(kmerList.getPosition(1)).toString());
+    }
+    
+    @Test
+    public void TestEditDistance() {
+    	VKmerBytesWritable kmer1 = new VKmerBytesWritable("ACGT");
+    	VKmerBytesWritable kmer2 = new VKmerBytesWritable("AAAACGT");
+    	
+    	Assert.assertEquals(kmer1.editDistance(kmer2), 3);
+    	Assert.assertEquals(kmer1.editDistance(kmer2), kmer2.editDistance(kmer1));
+    	Assert.assertEquals(kmer1.fracDissimilar(kmer2), .75f);
+    	
+    	kmer1.setAsCopy("");
+    	Assert.assertEquals(kmer1.editDistance(kmer2), kmer2.getKmerLetterLength());
+    	Assert.assertEquals(kmer1.editDistance(kmer2), kmer2.editDistance(kmer1));
+    	
+    	kmer2.setAsCopy("");
+    	Assert.assertEquals(kmer1.editDistance(kmer2), kmer2.getKmerLetterLength());
+    	Assert.assertEquals(kmer1.editDistance(kmer2), kmer2.editDistance(kmer1));
+    	
+    	
+    }
+
+}
diff --git a/genomix/genomix-data/src/test/resources/data/0/text.txt b/genomix/genomix-data/src/test/resources/data/0/text.txt
new file mode 100755
index 0000000..f63a141
--- /dev/null
+++ b/genomix/genomix-data/src/test/resources/data/0/text.txt
@@ -0,0 +1,4 @@
+@625E1AAXX100810:1:100:10000:10271/1
+AATAGAAG
++
+EDBDB?BEEEDGGEGGGDGGGA>DG@GGD;GD@DG@F?<B<BFFD?
diff --git a/genomix/genomix-data/src/test/resources/data/webmap/text.txt b/genomix/genomix-data/src/test/resources/data/webmap/text.txt
new file mode 100755
index 0000000..f63a141
--- /dev/null
+++ b/genomix/genomix-data/src/test/resources/data/webmap/text.txt
@@ -0,0 +1,4 @@
+@625E1AAXX100810:1:100:10000:10271/1
+AATAGAAG
++
+EDBDB?BEEEDGGEGGGDGGGA>DG@GGD;GD@DG@F?<B<BFFD?
diff --git a/genomix/genomix-data/src/test/resources/expected/result2 b/genomix/genomix-data/src/test/resources/expected/result2
new file mode 100755
index 0000000..5e76458
--- /dev/null
+++ b/genomix/genomix-data/src/test/resources/expected/result2
@@ -0,0 +1,4 @@
+AATAG	|A	1
+AGAAG	T|	1
+ATAGA	A|A	1
+TAGAA	A|G	1
diff --git a/genomix/genomix-data/src/test/resources/hadoop/conf/core-site.xml b/genomix/genomix-data/src/test/resources/hadoop/conf/core-site.xml
new file mode 100644
index 0000000..3e5bacb
--- /dev/null
+++ b/genomix/genomix-data/src/test/resources/hadoop/conf/core-site.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+	<property>
+		<name>fs.default.name</name>
+		<value>hdfs://127.0.0.1:31888</value>
+	</property>
+	<property>
+		<name>hadoop.tmp.dir</name>
+		<value>/tmp/hadoop</value>
+	</property>
+
+
+</configuration>
diff --git a/genomix/genomix-data/src/test/resources/hadoop/conf/hdfs-site.xml b/genomix/genomix-data/src/test/resources/hadoop/conf/hdfs-site.xml
new file mode 100644
index 0000000..b1b1902
--- /dev/null
+++ b/genomix/genomix-data/src/test/resources/hadoop/conf/hdfs-site.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+	<property>
+		<name>dfs.replication</name>
+		<value>1</value>
+	</property>
+
+	<property>
+		<name>dfs.block.size</name>
+		<value>65536</value>
+	</property>
+
+</configuration>
diff --git a/genomix/genomix-data/src/test/resources/hadoop/conf/log4j.properties b/genomix/genomix-data/src/test/resources/hadoop/conf/log4j.properties
new file mode 100755
index 0000000..d5e6004
--- /dev/null
+++ b/genomix/genomix-data/src/test/resources/hadoop/conf/log4j.properties
@@ -0,0 +1,94 @@
+# Define some default values that can be overridden by system properties
+hadoop.root.logger=FATAL,console
+hadoop.log.dir=.
+hadoop.log.file=hadoop.log
+
+# Define the root logger to the system property "hadoop.root.logger".
+log4j.rootLogger=${hadoop.root.logger}, EventCounter
+
+# Logging Threshold
+log4j.threshhold=FATAL
+
+#
+# Daily Rolling File Appender
+#
+
+log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Rollver at midnight
+log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
+
+# 30-day backup
+#log4j.appender.DRFA.MaxBackupIndex=30
+log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
+
+# Pattern format: Date LogLevel LoggerName LogMessage
+log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+# Debugging Pattern format
+#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+
+#
+# console
+# Add "console" to rootlogger above if you want to use this 
+#
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.target=System.err
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
+
+#
+# TaskLog Appender
+#
+
+#Default values
+hadoop.tasklog.taskid=null
+hadoop.tasklog.noKeepSplits=4
+hadoop.tasklog.totalLogFileSize=100
+hadoop.tasklog.purgeLogSplits=true
+hadoop.tasklog.logsRetainHours=12
+
+log4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender
+log4j.appender.TLA.taskId=${hadoop.tasklog.taskid}
+log4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}
+
+log4j.appender.TLA.layout=org.apache.log4j.PatternLayout
+log4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+
+#
+# Rolling File Appender
+#
+
+#log4j.appender.RFA=org.apache.log4j.RollingFileAppender
+#log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Logfile size and and 30-day backups
+#log4j.appender.RFA.MaxFileSize=1MB
+#log4j.appender.RFA.MaxBackupIndex=30
+
+#log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+#
+# FSNamesystem Audit logging
+# All audit events are logged at INFO level
+#
+log4j.logger.org.apache.hadoop.fs.FSNamesystem.audit=WARN
+
+# Custom Logging levels
+
+#log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG
+#log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG
+#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
+
+# Jets3t library
+log4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR
+
+#
+# Event Counter Appender
+# Sends counts of logging messages at different severity levels to Hadoop Metrics.
+#
+log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
diff --git a/genomix/genomix-data/src/test/resources/hadoop/conf/mapred-site.xml b/genomix/genomix-data/src/test/resources/hadoop/conf/mapred-site.xml
new file mode 100644
index 0000000..525e7d5
--- /dev/null
+++ b/genomix/genomix-data/src/test/resources/hadoop/conf/mapred-site.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+	<property>
+		<name>mapred.job.tracker</name>
+		<value>localhost:29007</value>
+	</property>
+	<property>
+		<name>mapred.tasktracker.map.tasks.maximum</name>
+		<value>20</value>
+	</property>
+	<property>
+		<name>mapred.tasktracker.reduce.tasks.maximum</name>
+		<value>20</value>
+	</property>
+	<property>
+		<name>mapred.max.split.size</name>
+		<value>2048</value>
+	</property>
+
+</configuration>
diff --git a/genomix/genomix-hadoop/data/webmap/AdjSplitRepeat.txt b/genomix/genomix-hadoop/data/webmap/AdjSplitRepeat.txt
new file mode 100644
index 0000000..f2e3942
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/AdjSplitRepeat.txt
@@ -0,0 +1,3 @@
+1	AATAG
+2	GCATA
+3	ATAGC
diff --git a/genomix/genomix-hadoop/data/webmap/MergeBubble.txt b/genomix/genomix-hadoop/data/webmap/MergeBubble.txt
new file mode 100644
index 0000000..087f43e
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/MergeBubble.txt
@@ -0,0 +1,2 @@
+1	AATAGAA
+2	AATACAA
diff --git a/genomix/genomix-hadoop/data/webmap/RemoveBridge.txt b/genomix/genomix-hadoop/data/webmap/RemoveBridge.txt
new file mode 100644
index 0000000..472a7dc
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/RemoveBridge.txt
@@ -0,0 +1,2 @@
+1	AATAG
+2	CACGC
diff --git a/genomix/genomix-hadoop/data/webmap/SplitOnce.txt b/genomix/genomix-hadoop/data/webmap/SplitOnce.txt
new file mode 100644
index 0000000..d8e2b7e
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/SplitOnce.txt
@@ -0,0 +1,2 @@
+1	AATAG
+2	GCATA
diff --git a/genomix/genomix-hadoop/data/webmap/SplitTwice.txt b/genomix/genomix-hadoop/data/webmap/SplitTwice.txt
new file mode 100644
index 0000000..bb03d70
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/SplitTwice.txt
@@ -0,0 +1,2 @@
+1	AATAG
+2	CATAC
diff --git a/genomix/genomix-hadoop/data/webmap/lastesttest/HighSplitRepeat/HighSplitRepeat.txt b/genomix/genomix-hadoop/data/webmap/lastesttest/HighSplitRepeat/HighSplitRepeat.txt
new file mode 100644
index 0000000..eca0a13
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/lastesttest/HighSplitRepeat/HighSplitRepeat.txt
@@ -0,0 +1,3 @@
+1	AGCCACA
+2	GCACTTT
+3	CGCCGTC
diff --git a/genomix/genomix-hadoop/data/webmap/lastesttest/LowSplitRepeat/LowSplitRepeat.txt b/genomix/genomix-hadoop/data/webmap/lastesttest/LowSplitRepeat/LowSplitRepeat.txt
new file mode 100644
index 0000000..259fd80
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/lastesttest/LowSplitRepeat/LowSplitRepeat.txt
@@ -0,0 +1,3 @@
+1	AGCCA
+2	AGCCG
+3	GCCTT
diff --git a/genomix/genomix-hadoop/data/webmap/lastesttest/MidSplitRepeat/MidSplitRepeat.txt b/genomix/genomix-hadoop/data/webmap/lastesttest/MidSplitRepeat/MidSplitRepeat.txt
new file mode 100644
index 0000000..e934e54
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/lastesttest/MidSplitRepeat/MidSplitRepeat.txt
@@ -0,0 +1,3 @@
+1	AGCCA
+2	CGCCT
+3	GCCGG
diff --git a/genomix/genomix-hadoop/data/webmap/lastesttest/Tips1/Tips1.txt b/genomix/genomix-hadoop/data/webmap/lastesttest/Tips1/Tips1.txt
new file mode 100644
index 0000000..1e16d68
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/lastesttest/Tips1/Tips1.txt
@@ -0,0 +1,2 @@
+1	CAGCCA
+2	GCCGTA
diff --git a/genomix/genomix-hadoop/data/webmap/lastesttest/Tips2/Tips2.txt b/genomix/genomix-hadoop/data/webmap/lastesttest/Tips2/Tips2.txt
new file mode 100644
index 0000000..8109730
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/lastesttest/Tips2/Tips2.txt
@@ -0,0 +1,2 @@
+1	ACAGCG
+2	GGCGAA
diff --git a/genomix/genomix-hadoop/data/webmap/lastesttest/Tips3/Tips3.txt b/genomix/genomix-hadoop/data/webmap/lastesttest/Tips3/Tips3.txt
new file mode 100644
index 0000000..a672034
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/lastesttest/Tips3/Tips3.txt
@@ -0,0 +1,2 @@
+1	CAGCCT
+2	CAGCCA
diff --git a/genomix/genomix-hadoop/data/webmap/lastesttest/Tips4/Tips4.txt b/genomix/genomix-hadoop/data/webmap/lastesttest/Tips4/Tips4.txt
new file mode 100644
index 0000000..499e8e6
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/lastesttest/Tips4/Tips4.txt
@@ -0,0 +1,2 @@
+1	CAGGCA
+2	CAGGCC
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/2/2 b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/2/2
new file mode 100644
index 0000000..0f501fe
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/2/2
@@ -0,0 +1 @@
+1	AATA
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/2~ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/2~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/2~
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/3/3 b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/3/3
new file mode 100644
index 0000000..b90246c
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/3/3
@@ -0,0 +1 @@
+1	AATAG
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/3~ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/3~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/3~
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/4/4 b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/4/4
new file mode 100644
index 0000000..3f1cd5c
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/4/4
@@ -0,0 +1 @@
+1	AATAGA
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/4~ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/4~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/4~
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/5/5 b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/5/5
new file mode 100644
index 0000000..a720dc4
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/5/5
@@ -0,0 +1 @@
+1	AATAGAA
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/5~ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/5~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/5~
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/6/6 b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/6/6
new file mode 100644
index 0000000..7a95b7c
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/6/6
@@ -0,0 +1 @@
+1	AATAGAAC
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/6~ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/6~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/6~
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/7/7 b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/7/7
new file mode 100644
index 0000000..ce4b8a8
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/7/7
@@ -0,0 +1 @@
+1	AATAGAACT
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/7~ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/7~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/7~
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/8/8 b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/8/8
new file mode 100644
index 0000000..3959d4d
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/8/8
@@ -0,0 +1 @@
+1	AATAGAACTT
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/8~ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/8~
new file mode 100644
index 0000000..89ead1e
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/8~
@@ -0,0 +1 @@
+1	AATAGAACTTA
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/9/9 b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/9/9
new file mode 100644
index 0000000..89ead1e
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/9/9
@@ -0,0 +1 @@
+1	AATAGAACTTA
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/9~ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/9~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/9~
diff --git a/genomix/genomix-hadoop/data/webmap/test.txt b/genomix/genomix-hadoop/data/webmap/test.txt
new file mode 100644
index 0000000..990dbd1
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/test.txt
@@ -0,0 +1,3 @@
+1	AATAGAAG
+2	TATAGACC
+3	CATAGATT
diff --git a/genomix/genomix-hadoop/data/webmap/text.txt b/genomix/genomix-hadoop/data/webmap/text.txt
new file mode 100755
index 0000000..01c49e5
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/text.txt
@@ -0,0 +1,6 @@
+1	AATAGAAG
+2	AATAGCTT
+3	AATAGAAG
+4	AATAGCTT
+5	AATAGAAG
+6	AGAAGAAG
diff --git a/genomix/genomix-hadoop/pom.xml b/genomix/genomix-hadoop/pom.xml
new file mode 100755
index 0000000..f305c49
--- /dev/null
+++ b/genomix/genomix-hadoop/pom.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>genomix-hadoop</artifactId>
+	<name>genomix-hadoop</name>
+
+	<parent>
+		<groupId>edu.uci.ics.hyracks</groupId>
+		<artifactId>genomix</artifactId>
+		<version>0.2.6-SNAPSHOT</version>
+	</parent>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+	
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.0.2</version>
+				<configuration>
+					<source>1.7</source>
+					<target>1.7</target>
+					<fork>true</fork>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<configuration>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+				<executions>
+					<execution>
+						<id>make-my-jar-with-dependencies</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>appassembler-maven-plugin</artifactId>
+				<executions>
+					<execution>
+						<configuration>
+							<programs>
+								<program>
+									<mainClass>edu.uci.ics.maxclique.Driver</mainClass>
+									<name>maxclique</name>
+								</program>
+							</programs>
+							<repositoryLayout>flat</repositoryLayout>
+							<repositoryName>lib</repositoryName>
+						</configuration>
+						<phase>package</phase>
+						<goals>
+							<goal>assemble</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>2.7.2</version>
+				<configuration>
+					<forkMode>pertest</forkMode>
+					<argLine>-enableassertions -Xmx512m -XX:MaxPermSize=300m
+						-Dfile.encoding=UTF-8
+						-Djava.util.logging.config.file=src/test/resources/logging.properties</argLine>
+					<includes>
+						<include>**/*TestSuite.java</include>
+						<include>**/*Test.java</include>
+					</includes>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-clean-plugin</artifactId>
+				<configuration>
+					<filesets>
+						<fileset>
+							<directory>.</directory>
+							<includes>
+								<include>teststore*</include>
+								<include>edu*</include>
+								<include>build*</include>
+								<include>log*</include>
+								<include>ClusterController*</include>
+							</includes>
+						</fileset>
+					</filesets>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.8.1</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.hadoop</groupId>
+			<artifactId>hadoop-core</artifactId>
+			<version>0.20.2</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.hadoop</groupId>
+			<artifactId>hadoop-test</artifactId>
+			<version>0.20.2</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.kenai.nbpwr</groupId>
+			<artifactId>org-apache-commons-io</artifactId>
+			<version>1.3.1-201002241208</version>
+			<type>nbm</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-jcl</artifactId>
+			<version>1.6.3</version>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>1.6.3</version>
+		</dependency>
+		<dependency>
+			<groupId>args4j</groupId>
+			<artifactId>args4j</artifactId>
+			<version>2.0.16</version>
+		</dependency>
+		<dependency>
+			<groupId>com.kenai.nbpwr</groupId>
+			<artifactId>org-apache-commons-io</artifactId>
+			<version>1.3.1-201002241208</version>
+			<type>nbm</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>genomix-data</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>genomix-hyracks</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-hdfs-core</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-hdfs-core</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.mrunit</groupId>
+			<artifactId>mrunit</artifactId>
+			<version>1.0.0</version>
+			<classifier>hadoop1</classifier>
+		</dependency>
+	</dependencies>
+</project>
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixDriver.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixDriver.java
new file mode 100644
index 0000000..d9e4876
--- /dev/null
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixDriver.java
@@ -0,0 +1,83 @@
+package edu.uci.ics.genomix.hadoop.contrailgraphbuilding;
+
+import java.io.IOException;
+
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.mapred.FileInputFormat;
+import org.apache.hadoop.mapred.FileOutputFormat;
+import org.apache.hadoop.mapred.JobClient;
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.SequenceFileOutputFormat;
+import org.apache.hadoop.mapred.TextInputFormat;
+import org.apache.hadoop.mapred.TextOutputFormat;
+import org.kohsuke.args4j.CmdLineParser;
+import org.kohsuke.args4j.Option;
+
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+
+@SuppressWarnings("deprecation")
+public class GenomixDriver {
+    
+    private static class Options {
+        @Option(name = "-inputpath", usage = "the input path", required = true)
+        public String inputPath;
+
+        @Option(name = "-outputpath", usage = "the output path", required = true)
+        public String outputPath;
+
+        @Option(name = "-num-reducers", usage = "the number of reducers", required = true)
+        public int numReducers;
+
+        @Option(name = "-kmer-size", usage = "the size of kmer", required = true)
+        public int sizeKmer;
+        
+//        @Option(name = "-read-length", usage = "the length of read", required = true)
+//        public int readLength;
+    }
+    
+    public void run(String inputPath, String outputPath, int numReducers, int sizeKmer,
+            boolean seqOutput, String defaultConfPath) throws IOException{
+        JobConf conf = new JobConf(GenomixDriver.class);
+        conf.setInt("sizeKmer", sizeKmer);
+        if (defaultConfPath != null) {
+            conf.addResource(new Path(defaultConfPath));
+        }
+
+        conf.setJobName("Genomix Graph Building");
+        conf.setMapperClass(GenomixMapper.class);
+        conf.setReducerClass(GenomixReducer.class);
+
+        conf.setMapOutputKeyClass(VKmerBytesWritable.class);
+        conf.setMapOutputValueClass(NodeWritable.class);
+        
+        //InputFormat and OutputFormat for Reducer
+        conf.setInputFormat(TextInputFormat.class);
+        if (seqOutput == true)
+            conf.setOutputFormat(SequenceFileOutputFormat.class);
+        else
+            conf.setOutputFormat(TextOutputFormat.class);
+        
+        //Output Key/Value Class
+        conf.setOutputKeyClass(VKmerBytesWritable.class);
+        conf.setOutputValueClass(NodeWritable.class);
+        
+        FileInputFormat.setInputPaths(conf, new Path(inputPath));
+        FileOutputFormat.setOutputPath(conf, new Path(outputPath));
+        conf.setNumReduceTasks(numReducers);
+
+        FileSystem dfs = FileSystem.get(conf);
+        dfs.delete(new Path(outputPath), true);
+        JobClient.runJob(conf);
+    }
+    
+    public static void main(String[] args) throws Exception {
+        Options options = new Options();
+        CmdLineParser parser = new CmdLineParser(options);
+        parser.parseArgument(args);
+        GenomixDriver driver = new GenomixDriver();
+        driver.run(options.inputPath, options.outputPath, options.numReducers, options.sizeKmer, true, null);
+    }
+}
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixMapper.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixMapper.java
new file mode 100644
index 0000000..39a7535
--- /dev/null
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixMapper.java
@@ -0,0 +1,246 @@
+package edu.uci.ics.genomix.hadoop.contrailgraphbuilding;
+
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.MapReduceBase;
+import org.apache.hadoop.mapred.Mapper;
+import org.apache.hadoop.mapred.OutputCollector;
+import org.apache.hadoop.mapred.Reporter;
+
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.PositionListWritable;
+import edu.uci.ics.genomix.type.PositionWritable;
+
+@SuppressWarnings("deprecation")
+public class GenomixMapper extends MapReduceBase implements
+    Mapper<LongWritable, Text, VKmerBytesWritable, NodeWritable>{
+    
+    public static enum KmerDir{
+        FORWARD,
+        REVERSE,
+    }
+    
+    public static int KMER_SIZE;
+    private VKmerBytesWritable preForwardKmer;
+    private VKmerBytesWritable preReverseKmer;
+    private VKmerBytesWritable curForwardKmer;
+    private VKmerBytesWritable curReverseKmer;
+    private VKmerBytesWritable nextForwardKmer;
+    private VKmerBytesWritable nextReverseKmer;
+    private PositionWritable nodeId;
+    private PositionListWritable nodeIdList;
+    private VKmerListWritable edgeListForPreKmer;
+    private VKmerListWritable edgeListForNextKmer;
+    private NodeWritable outputNode;
+    
+    private KmerDir preKmerDir;
+    private KmerDir curKmerDir;
+    private KmerDir nextKmerDir;
+    
+    byte mateId = (byte)0;
+    
+    @Override
+    public void configure(JobConf job) {
+        KMER_SIZE = Integer.parseInt(job.get("sizeKmer"));
+        preForwardKmer = new VKmerBytesWritable();
+        preReverseKmer = new VKmerBytesWritable();
+        curForwardKmer = new VKmerBytesWritable();
+        curReverseKmer = new VKmerBytesWritable();
+        nextForwardKmer = new VKmerBytesWritable();
+        nextReverseKmer = new VKmerBytesWritable();
+        nodeId = new PositionWritable();
+        nodeIdList = new PositionListWritable();
+        edgeListForPreKmer = new VKmerListWritable();
+        edgeListForNextKmer = new VKmerListWritable();
+        outputNode = new NodeWritable();
+        preKmerDir = KmerDir.FORWARD;
+        curKmerDir = KmerDir.FORWARD;
+        nextKmerDir = KmerDir.FORWARD;
+    }
+    
+    @Override
+    public void map(LongWritable key, Text value, OutputCollector<VKmerBytesWritable, NodeWritable> output,
+            Reporter reporter) throws IOException {
+        String[] rawLine = value.toString().split("\\t"); // Read the Real Gene Line
+        if (rawLine.length != 2) {
+            throw new IOException("invalid data");
+        }
+        int readID = 0;
+        readID = Integer.parseInt(rawLine[0]);
+        String geneLine = rawLine[1];
+        Pattern genePattern = Pattern.compile("[AGCT]+");
+        Matcher geneMatcher = genePattern.matcher(geneLine);
+        boolean isValid = geneMatcher.matches();
+        if (isValid == true) {
+            byte[] array = geneLine.getBytes();
+            if (KMER_SIZE >= array.length) {
+                throw new IOException("short read");
+            }
+            /** first kmer **/
+            outputNode.reset();
+            curForwardKmer.setByRead(KMER_SIZE, array, 0);
+            curReverseKmer.setByReadReverse(KMER_SIZE, array, 0);
+            curKmerDir = curForwardKmer.compareTo(curReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
+            setNextKmer(array[KMER_SIZE]);
+            //set value.nodeId
+            setNodeId(mateId, readID, 1);
+            //set value.edgeList
+            setEdgeListForNextKmer();
+            //set coverage = 1
+            outputNode.setAvgCoverage(1);
+            //output mapper result
+            setMapperOutput(output);
+            
+            /** middle kmer **/
+            for (int i = KMER_SIZE + 1; i < array.length; i++) {
+                outputNode.reset();
+            	setPreKmerByOldCurKmer();
+            	setCurKmerByOldNextKmer();
+            	setNextKmer(array[i]);
+        	    //set value.nodeId
+            	setNodeId(mateId, readID, i - KMER_SIZE + 1);
+                //set value.edgeList
+                setEdgeListForPreKmer();
+                setEdgeListForNextKmer();
+                //set coverage = 1
+                outputNode.setAvgCoverage(1);
+                //output mapper result
+                setMapperOutput(output);
+            }
+            
+            /** last kmer **/
+            outputNode.reset();
+        	setPreKmerByOldCurKmer();
+        	setCurKmerByOldNextKmer();
+        	//set value.nodeId
+        	setNodeId(mateId, readID, array.length - KMER_SIZE + 1);
+            //set value.edgeList
+            setEdgeListForPreKmer();
+            //set coverage = 1
+            outputNode.setAvgCoverage(1);
+            //output mapper result
+            setMapperOutput(output);
+        }
+    }
+    
+    public void setNodeId(byte mateId, long readID, int posId){
+        nodeId.set(mateId, readID, posId);
+        nodeIdList.reset();
+        nodeIdList.append(nodeId);
+        outputNode.setNodeIdList(nodeIdList);
+    }
+    
+    public void setEdgeListForPreKmer(){
+    	switch(curKmerDir){
+    		case FORWARD:
+    			switch(preKmerDir){
+    				case FORWARD:
+    				    edgeListForPreKmer.reset();
+    				    edgeListForPreKmer.append(preForwardKmer);
+    					outputNode.setRRList(edgeListForPreKmer);
+    					break;
+    				case REVERSE:
+    				    edgeListForPreKmer.reset();
+    				    edgeListForPreKmer.append(preReverseKmer);
+    					outputNode.setRFList(edgeListForPreKmer);
+    					break;
+    			}
+    			break;
+    		case REVERSE:
+    			switch(preKmerDir){
+    				case FORWARD:
+    				    edgeListForPreKmer.reset();
+    				    edgeListForPreKmer.append(preForwardKmer);
+    					outputNode.setFRList(edgeListForPreKmer);
+    					break;
+    				case REVERSE:
+    				    edgeListForPreKmer.reset();
+    				    edgeListForPreKmer.append(preReverseKmer);
+    					outputNode.setFFList(edgeListForPreKmer);
+    					break;
+    			}
+    			break;
+    	}
+    }
+    
+    public void setEdgeListForNextKmer(){
+    	switch(curKmerDir){
+    		case FORWARD:
+    			switch(nextKmerDir){
+    				case FORWARD:
+    					edgeListForNextKmer.reset();
+    					edgeListForNextKmer.append(nextForwardKmer);
+    					outputNode.setFFList(edgeListForNextKmer);
+    					break;
+    				case REVERSE:
+    					edgeListForNextKmer.reset();
+    					edgeListForNextKmer.append(nextReverseKmer);
+    					outputNode.setFRList(edgeListForNextKmer);
+    					break;
+    			}
+    			break;
+    		case REVERSE:
+    			switch(nextKmerDir){
+    				case FORWARD:
+    					edgeListForNextKmer.reset();
+    					edgeListForNextKmer.append(nextForwardKmer);
+    					outputNode.setRFList(edgeListForNextKmer);
+    					break;
+    				case REVERSE:
+    					edgeListForNextKmer.reset();
+    					edgeListForNextKmer.append(nextReverseKmer);
+    					outputNode.setRRList(edgeListForNextKmer);
+    					break;
+    			}
+    			break;
+    	}
+    }
+    
+    //set preKmer by shifting curKmer with preChar
+    public void setPreKmer(byte preChar){
+        preForwardKmer.setAsCopy(curForwardKmer);
+        preForwardKmer.shiftKmerWithPreChar(preChar);
+        preReverseKmer.setByReadReverse(KMER_SIZE, preForwardKmer.toString().getBytes(), preForwardKmer.getBlockOffset());
+        preKmerDir = preForwardKmer.compareTo(preReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
+    }
+    
+    //set nextKmer by shifting curKmer with nextChar
+    public void setNextKmer(byte nextChar){
+        nextForwardKmer.setAsCopy(curForwardKmer);
+        nextForwardKmer.shiftKmerWithNextChar(nextChar);
+        nextReverseKmer.setByReadReverse(KMER_SIZE, nextForwardKmer.toString().getBytes(), nextForwardKmer.getBlockOffset());
+        nextKmerDir = nextForwardKmer.compareTo(nextReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
+    }
+    
+    //old curKmer becomes current preKmer
+    public void setPreKmerByOldCurKmer(){
+    	preKmerDir = curKmerDir;
+    	preForwardKmer.setAsCopy(curForwardKmer);
+    	preReverseKmer.setAsCopy(curReverseKmer);
+    }
+    
+    //old nextKmer becomes current curKmer
+    public void setCurKmerByOldNextKmer(){
+    	curKmerDir = nextKmerDir;
+    	curForwardKmer.setAsCopy(nextForwardKmer);
+    	curReverseKmer.setAsCopy(nextReverseKmer);
+    }
+    
+    public void setMapperOutput(OutputCollector<VKmerBytesWritable, NodeWritable> output) throws IOException{
+    	switch(curKmerDir){
+    	case FORWARD:
+    		output.collect(curForwardKmer, outputNode);
+    		break;
+    	case REVERSE:
+    		output.collect(curReverseKmer, outputNode);
+    		break;
+    }
+   }
+}
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixReducer.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixReducer.java
new file mode 100644
index 0000000..e8e41c4
--- /dev/null
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixReducer.java
@@ -0,0 +1,51 @@
+package edu.uci.ics.genomix.hadoop.contrailgraphbuilding;
+
+import java.io.IOException;
+import java.util.Iterator;
+
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.MapReduceBase;
+import org.apache.hadoop.mapred.OutputCollector;
+import org.apache.hadoop.mapred.Reducer;
+import org.apache.hadoop.mapred.Reporter;
+
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+@SuppressWarnings("deprecation")
+public class GenomixReducer extends MapReduceBase implements
+	Reducer<VKmerBytesWritable, NodeWritable, VKmerBytesWritable, NodeWritable>{
+    
+    public static int KMER_SIZE;
+    private NodeWritable outputNode;
+    private NodeWritable tmpNode;
+    private float averageCoverage;
+    
+    @Override
+    public void configure(JobConf job) {
+        KMER_SIZE = GenomixMapper.KMER_SIZE;
+        outputNode = new NodeWritable();
+        tmpNode = new NodeWritable();
+    }
+    
+	@Override
+	public void reduce(VKmerBytesWritable key, Iterator<NodeWritable> values,
+			OutputCollector<VKmerBytesWritable, NodeWritable> output,
+			Reporter reporter) throws IOException {
+		outputNode.reset();
+		averageCoverage = 0;
+		
+		while (values.hasNext()) {
+		    tmpNode.set(values.next());
+		    outputNode.getNodeIdList().unionUpdate(tmpNode.getNodeIdList());
+		    outputNode.getFFList().unionUpdate(tmpNode.getFFList()); //appendList need to check if insert node exists
+		    outputNode.getFRList().unionUpdate(tmpNode.getFRList());
+		    outputNode.getRFList().unionUpdate(tmpNode.getRFList());
+		    outputNode.getRRList().unionUpdate(tmpNode.getRRList());
+		    averageCoverage += tmpNode.getAvgCoverage();
+		}
+		outputNode.setAvgCoverage(averageCoverage);
+		output.collect(key,outputNode);
+	}
+
+}
diff --git a/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestCase.java b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestCase.java
new file mode 100644
index 0000000..44f3168
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestCase.java
@@ -0,0 +1,70 @@
+package edu.uci.ics.genomix.hadoop.contrailgraphbuilding;
+
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.mapred.JobConf;
+import org.junit.Test;
+
+import edu.uci.ics.genomix.hadoop.graph.GenerateGraphViz;
+import edu.uci.ics.genomix.hadoop.pmcommon.HadoopMiniClusterTest;
+
+
+@SuppressWarnings({ "deprecation", "unused" })
+public class GraphBuildingTestCase extends TestCase{
+
+    private final String RESULT_PATH;
+    private final String HADOOP_CONF_PATH;
+    private final String HDFS_INPUTPATH;
+    private FileSystem dfs;
+    private JobConf conf;
+
+    private static final int COUNT_REDUCER = 1;
+    private final int SIZE_KMER;
+        
+    public GraphBuildingTestCase(String resultFileDir, String hadoopConfPath,
+            String hdfsInputPath, int kmerSize, FileSystem dfs, JobConf conf){
+        super("test");
+        this.RESULT_PATH = resultFileDir;
+        this.HADOOP_CONF_PATH = hadoopConfPath;
+        this.HDFS_INPUTPATH = hdfsInputPath;
+        this.SIZE_KMER = kmerSize;
+        this.dfs = dfs;
+        this.conf = conf;
+    }
+    
+    private void waitawhile() throws InterruptedException {
+        synchronized (this) {
+            this.wait(20);
+        }
+    }
+    
+    @Test
+    public void test() throws Exception {
+        setUp();
+        TestMapKmerToNode();
+        tearDown();
+        waitawhile();
+    }
+    
+    public void TestMapKmerToNode() throws Exception {
+        GenomixDriver driver = new GenomixDriver();
+        driver.run(HDFS_INPUTPATH, RESULT_PATH, COUNT_REDUCER, SIZE_KMER, true, HADOOP_CONF_PATH);
+        dumpResult();
+    }
+    
+    
+    
+    private void dumpResult() throws Exception {
+//        Path src = new Path(RESULT_PATH);
+//        Path dest = new Path(RESULT_PATH);
+//        dfs.copyToLocalFile(src, dest);
+        HadoopMiniClusterTest.copyResultsToLocal(RESULT_PATH, RESULT_PATH + "/test.txt", false, conf, true, dfs);
+        GenerateGraphViz.convertGraphBuildingOutputToGraphViz(RESULT_PATH + "/test.txt.bindir", RESULT_PATH + "/graphviz");
+    }
+}
diff --git a/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestSuite.java b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestSuite.java
new file mode 100644
index 0000000..30e75cf
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestSuite.java
@@ -0,0 +1,129 @@
+package edu.uci.ics.genomix.hadoop.contrailgraphbuilding;
+
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.MiniMRCluster;
+
+
+@SuppressWarnings("deprecation")
+public class GraphBuildingTestSuite extends TestSuite{
+
+    private static int SIZE_KMER = 3;
+    public static final String PreFix = "data/webmap/lastesttest"; 
+    public static final String[] TestDir = { PreFix + File.separator
+//        + "2", PreFix + File.separator
+//        + "3", PreFix + File.separator
+//        + "4", PreFix + File.separator
+//        + "5", PreFix + File.separator
+//        + "6", PreFix + File.separator
+//        + "7", PreFix + File.separator
+//        + "8", PreFix + File.separator
+//        + "9"};
+        + "HighSplitRepeat", PreFix + File.separator
+        + "LowSplitRepeat", PreFix + File.separator
+        + "MidSplitRepeat", PreFix + File.separator
+        + "Tips1", PreFix + File.separator
+        + "Tips2", PreFix + File.separator
+        + "Tips3", PreFix + File.separator
+        + "Tips4"};
+    
+    private static JobConf conf = new JobConf();
+    private static final String ACTUAL_RESULT_DIR = "actual";
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private static final String HDFS_INPUTPATH = "/webmap";
+    
+    private MiniDFSCluster dfsCluster;
+    private MiniMRCluster mrCluster;
+    private static FileSystem dfs;
+    
+    public void setUp() throws Exception{
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHadoop();
+    }
+    
+    private void startHadoop() throws IOException {
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, 1, true, null);
+        dfs = dfsCluster.getFileSystem();
+        mrCluster = new MiniMRCluster(1, dfs.getUri().toString(), 1);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+//        
+//        Path src = new Path(DATA_PATH);
+//        Path dest = new Path(HDFS_PATH + "/");
+//        dfs.mkdirs(dest);
+//        dfs.copyFromLocalFile(src, dest);
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+    
+    public void tearDown() throws Exception {
+        cleanupHadoop();
+    }
+    
+    private void cleanupHadoop() throws IOException {
+        mrCluster.shutdown();
+        dfsCluster.shutdown();
+    }
+    
+    public static Test suite() throws Exception {
+        GraphBuildingTestSuite testSuite = new GraphBuildingTestSuite();
+        testSuite.setUp();
+//        FileSystem dfs = FileSystem.get(testSuite.conf);
+        for (String testPathStr : TestDir) {
+            File testDir = new File(testPathStr);
+            String resultFileName = ACTUAL_RESULT_DIR + File.separator + 
+                    "bin" + File.separator + testDir.getName();
+            testSuite.addTest(new GraphBuildingTestCase(resultFileName, HADOOP_CONF_PATH, 
+                    HDFS_INPUTPATH + File.separator + testDir.getName(), SIZE_KMER, dfs, conf));
+        }
+        return testSuite;
+    }
+    
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+    
+}
diff --git a/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/SingleGraphBuildingTest.java b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/SingleGraphBuildingTest.java
new file mode 100644
index 0000000..5ee5593
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/SingleGraphBuildingTest.java
@@ -0,0 +1,81 @@
+package edu.uci.ics.genomix.hadoop.contrailgraphbuilding;
+
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.MiniMRCluster;
+import org.junit.Test;
+
+import edu.uci.ics.genomix.hadoop.pmcommon.HadoopMiniClusterTest;
+
+@SuppressWarnings("deprecation")
+public class SingleGraphBuildingTest {
+
+    private JobConf conf = new JobConf();
+    private static final String ACTUAL_RESULT_DIR = "actual";
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private static final String DATA_PATH = "data/webmap/RemoveBridge.txt";
+    private static final String HDFS_PATH = "/webmap";
+    private static final String RESULT_PATH = "/result";
+    
+    private static final int COUNT_REDUCER = 1;
+    private static final int SIZE_KMER = 3;
+    
+    private MiniDFSCluster dfsCluster;
+    private MiniMRCluster mrCluster;
+    private FileSystem dfs;
+    
+    @Test
+    public void test() throws Exception {
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHadoop();
+        TestMapKmerToNode();
+        cleanupHadoop();
+    }
+    
+    public void TestMapKmerToNode() throws Exception {
+        GenomixDriver driver = new GenomixDriver();
+        driver.run(HDFS_PATH, RESULT_PATH, COUNT_REDUCER, SIZE_KMER, true, HADOOP_CONF_PATH);
+        dumpResult();
+    }
+    
+    private void startHadoop() throws IOException {
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, 1, true, null);
+        dfs = dfsCluster.getFileSystem();
+        mrCluster = new MiniMRCluster(1, dfs.getUri().toString(), 1);
+
+        Path src = new Path(DATA_PATH);
+        Path dest = new Path(HDFS_PATH + "/");
+        dfs.mkdirs(dest);
+        dfs.copyFromLocalFile(src, dest);
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupHadoop() throws IOException {
+        mrCluster.shutdown();
+        dfsCluster.shutdown();
+    }
+    
+    private void dumpResult() throws IOException {
+        Path src = new Path(RESULT_PATH);
+        Path dest = new Path(ACTUAL_RESULT_DIR);
+        dfs.copyToLocalFile(src, dest);
+        HadoopMiniClusterTest.copyResultsToLocal(RESULT_PATH, "actual/test.txt", false, conf, true, dfs);
+    }
+}
diff --git a/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/pmcommon/HadoopMiniClusterTest.java b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/pmcommon/HadoopMiniClusterTest.java
new file mode 100644
index 0000000..3788a27
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/pmcommon/HadoopMiniClusterTest.java
@@ -0,0 +1,243 @@
+package edu.uci.ics.genomix.hadoop.pmcommon;
+
+import java.io.BufferedWriter;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.FileUtil;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.io.SequenceFile;
+import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.MiniMRCluster;
+import org.apache.hadoop.util.ReflectionUtils;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+
+//import edu.uci.ics.genomix.hadoop.velvetgraphbuilding.GraphBuildingDriver;
+import edu.uci.ics.genomix.hyracks.newgraph.test.TestUtils;
+
+/*
+ * A base class providing most of the boilerplate for Hadoop-based tests
+ */
+@SuppressWarnings("deprecation")
+public class HadoopMiniClusterTest {
+    protected int KMER_LENGTH = 5;
+    protected int READ_LENGTH = 8;
+
+    // subclass should modify this to include the HDFS directories that should be cleaned up
+    protected ArrayList<String> HDFS_PATHS = new ArrayList<String>();
+
+    protected static final String EXPECTED_ROOT = "src/test/resources/expected/";
+    protected static final String ACTUAL_ROOT = "src/test/resources/actual/";
+    protected static final String INPUT_ROOT = "src/test/resources/input/";
+
+    protected static String HADOOP_CONF_ROOT = "src/test/resources/hadoop/conf/";
+    protected static String HADOOP_CONF = HADOOP_CONF_ROOT + "conf.xml";
+
+    protected static MiniDFSCluster dfsCluster;
+    protected static MiniMRCluster mrCluster;
+    protected static FileSystem dfs;
+    protected static JobConf conf = new JobConf();
+    protected static int numberOfNC = 1;
+    protected static int numPartitionPerMachine = 1;
+
+    @BeforeClass
+    public static void setUpMiniCluster() throws Exception {
+        cleanupStores();
+        startHDFS();
+        FileUtils.forceMkdir(new File(ACTUAL_ROOT));
+        FileUtils.cleanDirectory(new File(ACTUAL_ROOT));
+    }
+
+    protected static void copyResultsToLocal(String hdfsSrcDir, String localDestFile, boolean resultsAreText,
+            Configuration conf) throws IOException {
+    	copyResultsToLocal(hdfsSrcDir, localDestFile, resultsAreText, conf, true);
+    }
+    
+    public static void copyResultsToLocal(String hdfsSrcDir, String localDestFile, boolean resultsAreText,
+            Configuration conf, boolean ignoreZeroOutputs) throws IOException {
+        copyResultsToLocal(hdfsSrcDir, localDestFile, resultsAreText,
+                conf, ignoreZeroOutputs, dfs);
+    }
+    
+    /*
+     * Merge and copy a DFS directory to a local destination, converting to text if necessary. 
+     * Also locally store the binary-formatted result if available.
+     */
+    public static void copyResultsToLocal(String hdfsSrcDir, String localDestFile, boolean resultsAreText,
+            Configuration conf, boolean ignoreZeroOutputs, FileSystem dfs) throws IOException {
+        if (resultsAreText) {
+            // for text files, just concatenate them together
+            FileUtil.copyMerge(FileSystem.get(conf), new Path(hdfsSrcDir), FileSystem.getLocal(new Configuration()),
+                    new Path(localDestFile), false, conf, null);
+        } else {
+            // file is binary
+            // save the entire binary output dir
+            FileUtil.copy(FileSystem.get(conf), new Path(hdfsSrcDir), FileSystem.getLocal(new Configuration()),
+                    new Path(localDestFile + ".bindir"), false, conf);
+            
+            // chomp through output files
+            FileStatus[] files = ArrayUtils.addAll(dfs.globStatus(new Path(hdfsSrcDir + "*")), dfs.globStatus(new Path(hdfsSrcDir + "*/*")));
+            FileStatus validFile = null;
+            for (FileStatus f : files) {
+            	if (f.getLen() != 0) {
+            		validFile = f;
+            		break;
+            	}
+            }
+            if (validFile == null) {
+            	if (ignoreZeroOutputs) {
+            		// just make a dummy output dir
+            		FileSystem lfs = FileSystem.getLocal(new Configuration());
+            		lfs.mkdirs(new Path(localDestFile).getParent());
+            		return;
+            	}
+            	else {
+            		throw new IOException("No non-zero outputs in source directory " + hdfsSrcDir);
+            	}
+            }
+
+            // also load the Nodes and write them out as text locally. 
+            FileSystem lfs = FileSystem.getLocal(new Configuration());
+            lfs.mkdirs(new Path(localDestFile).getParent());
+            File filePathTo = new File(localDestFile);
+            if (filePathTo.exists() && filePathTo.isDirectory()) {
+                filePathTo = new File(localDestFile + "/data");
+            }
+            BufferedWriter bw = new BufferedWriter(new FileWriter(filePathTo));
+            SequenceFile.Reader reader = new SequenceFile.Reader(dfs, validFile.getPath(), conf);
+            SequenceFile.Writer writer = new SequenceFile.Writer(lfs, new JobConf(), new Path(localDestFile
+                    + ".binmerge"), reader.getKeyClass(), reader.getValueClass());
+
+            Writable key = (Writable) ReflectionUtils.newInstance(reader.getKeyClass(), conf);
+            Writable value = (Writable) ReflectionUtils.newInstance(reader.getValueClass(), conf);
+
+            for (FileStatus f : files) {
+                if (f.getLen() == 0) {
+                    continue;
+                }
+                reader = new SequenceFile.Reader(dfs, f.getPath(), conf);
+                while (reader.next(key, value)) {
+                    if (key == null || value == null) {
+                        break;
+                    }
+                    bw.write(key.toString() + "\t" + value.toString());
+                    System.out.println(key.toString() + "\t" + value.toString());
+                    bw.newLine();
+                    writer.append(key, value);
+
+                }
+                reader.close();
+            }
+            writer.close();
+            bw.close();
+        }
+
+    }
+
+    protected static boolean checkResults(String expectedPath, String actualPath, int[] poslistField) throws Exception {
+        File dumped = new File(actualPath);
+        if (poslistField != null) {
+            TestUtils.compareWithUnSortedPosition(new File(expectedPath), dumped, poslistField);
+        } else {
+            TestUtils.compareWithSortedResult(new File(expectedPath), dumped);
+        }
+        return true;
+    }
+
+    protected static void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    protected static void startHDFS() throws IOException {
+//        conf.addResource(new Path(HADOOP_CONF_ROOT + "core-site.xml"));
+        //        conf.addResource(new Path(HADOOP_CONF_ROOT + "mapred-site.xml"));
+//        conf.addResource(new Path(HADOOP_CONF_ROOT + "hdfs-site.xml"));
+
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        dfs = dfsCluster.getFileSystem();
+        mrCluster = new MiniMRCluster(4, dfs.getUri().toString(), 2);
+        System.out.println(dfs.getUri().toString());
+
+        DataOutputStream confOutput = new DataOutputStream(
+                new FileOutputStream(new File(HADOOP_CONF)));
+        conf.writeXml(confOutput);
+        confOutput.close();
+    }
+
+    protected static void copyLocalToDFS(String localSrc, String hdfsDest) throws IOException {
+        Path dest = new Path(hdfsDest);
+        dfs.mkdirs(dest);
+        System.out.println("copying from " + localSrc + " to " + dest);
+        for (File f : new File(localSrc).listFiles()) {  
+        	dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+        }
+    }
+
+    /*
+     * Remove the local "actual" folder and any hdfs folders in use by this test
+     */
+    public void cleanUpOutput() throws IOException {
+        // local cleanup
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        if (lfs.exists(new Path(ACTUAL_ROOT))) {
+            lfs.delete(new Path(ACTUAL_ROOT), true);
+        }
+        // dfs cleanup
+        for (String path : HDFS_PATHS) {
+            if (dfs.exists(new Path(path))) {
+                dfs.delete(new Path(path), true);
+            }
+        }
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        cleanupHDFS();
+    }
+
+    protected static void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+        mrCluster.shutdown();
+    }
+    
+//    public void buildGraph() throws IOException {
+//        JobConf buildConf = new JobConf(conf);  // use a separate conf so we don't interfere with other jobs 
+//        FileInputFormat.setInputPaths(buildConf, SEQUENCE);
+//        FileOutputFormat.setOutputPath(buildConf, new Path(INPUT_GRAPH));
+//        
+//        GraphBuildingDriver tldriver = new GraphBuildingDriver();
+//        tldriver.run(SEQUENCE, INPUT_GRAPH, 2, kmerByteSize, READ_LENGTH, false, true, HADOOP_CONF_ROOT + "conf.xml");
+//        
+//        boolean resultsAreText = true;
+//        copyResultsToLocal(INPUT_GRAPH, ACTUAL_ROOT + INPUT_GRAPH, resultsAreText, buildConf);
+//    }
+//    
+//    private void prepareGraph() throws IOException {
+//        if (regenerateGraph) {
+//            copyLocalToDFS(LOCAL_SEQUENCE_FILE, SEQUENCE);
+//            buildGraph();
+//            copyLocalToDFS(ACTUAL_ROOT + INPUT_GRAPH + readsFile + ".binmerge", INPUT_GRAPH);
+//        } else {
+//            copyLocalToDFS(EXPECTED_ROOT + INPUT_GRAPH + readsFile + ".binmerge", INPUT_GRAPH);
+//        }
+//    }
+
+}
diff --git a/genomix/genomix-hadoop/src/test/python/convert_graphviz.py b/genomix/genomix-hadoop/src/test/python/convert_graphviz.py
new file mode 100755
index 0000000..39ca660
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/python/convert_graphviz.py
@@ -0,0 +1,123 @@
+#!/usr/bin/env python
+"""
+Convert a graph to graphviz format and run `dot` on it.
+
+Kmer sequences are included
+"""
+
+__author__ = "Jacob Biesinger"
+__copyright__ = "Copyright 2009-2013, The Regents of the University of California"
+__license__ = "Apache"
+
+
+import sys
+import os
+import re
+import string
+import argparse
+
+import pydot
+
+
+element_re = re.compile(r"\d+,\d+|\w+")
+#edge_colors = dict(FF='black', FR='red', RF='blue', RR='gray')
+edge_colors = dict(FF='#DD1E2F', FR='#EBB035', RF='#06A2CB', RR='#218559')
+
+
+def reverse_complement(kmer, _table=string.maketrans('ACGT', 'TGCA')):
+    return string.translate(kmer, _table)[::-1]
+
+
+def add_legend(graph):
+    legend = pydot.Subgraph('cluster_legend', splines='line', rankdir='LR', label='legend', rank='min')
+    for i, (edgetype, edgecolor) in enumerate(sorted(edge_colors.items())):
+        legend.add_node(pydot.Node('legend_0_' + str(i), label='', shape='point'))
+        legend.add_node(pydot.Node('legend_1_' + str(i), label='', shape='point'))
+        legend.add_edge(pydot.Edge('legend_0_' + str(i), 'legend_1_' + str(i), label=edgetype, color=edgecolor))
+    graph.add_subgraph(legend)
+    return graph
+
+
+def graph_from_file(filename, legend=True, kmers=True, flag=True):
+    graph_name = os.path.split(filename)[1].replace('.', '_')
+    graph = pydot.Dot(graph_name, graph_type='digraph', rankdir='LR', splines='ortho', weight='2')
+    if legend:
+        add_legend(graph)
+
+    # annoyingly, order matters. add nodes before any edges or else properties aren't set right
+    nodes = {}
+    edges = []
+    for line in open(filename):
+        nodeid, ff, fr, rf, rr, kmer, flag = map(element_re.findall, line.strip().split('\t'))
+        nodeid, kmer, flag = nodeid[0], kmer[0], flag[0]
+        readid = nodeid.split(',')[0]
+        flag = '--%s' % flag if flag else ''
+        FF_kmer = '<TR><TD BGCOLOR="%s">%s</TD></TR>' % (edge_colors['FF'], kmer) if kmers else ''
+        RR_kmer = '<TR><TD BGCOLOR="%s">%s</TD></TR>' % (edge_colors['RR'], reverse_complement(kmer)) if kmers else ''
+        node_label = r'''<<FONT POINT-SIZE="10"><TABLE ALIGN="CENTER" BORDER="0" CELLBORDER="0" CELLSPACING="0">
+        <TR><TD>{nodeid}{flag}</TD></TR>
+        {FF_kmer}
+        {RR_kmer}
+        </TABLE></FONT>>'''.format(**locals())
+        node = pydot.Node(nodeid, rank=readid, group=readid, label=node_label)
+        nodes.setdefault(readid, []).append(node)
+        for edgename, edgelist in [('FF', ff), ('FR', fr), ('RF', rf), ('RR', rr)]:
+            for e in edgelist:
+                edges.append(pydot.Edge(nodeid, e, color=edge_colors[edgename]))
+
+    for readid, subnodes in nodes.items():
+        subg = pydot.Subgraph('cluster_' + readid, fillcolor='lightgray')
+        for node in subnodes:
+            subg.add_node(node)
+        graph.add_subgraph(subg)
+
+    for e in edges:
+        graph.add_edge(e)
+
+    return graph
+
+def recursive_plot(topdir, suffix='.txt', **kwargs):
+    "Recursively plot any files matching `suffix`"
+    out_type = kwargs.get('out_type', 'svg')
+    for root, dirnames, filenames in os.walk(topdir):
+        for filename in filenames:
+            f = os.path.join(root, filename)
+            if not os.path.isfile(f) or not f.endswith(suffix):
+                continue
+            try:
+                graph = graph_from_file(f, **kwargs)
+            except Exception:
+                pass
+            else:
+                print 'plotting', f +'.' + out_type
+                graph.write(f + '.' + out_type, format=out_type)
+
+
+def get_parser():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--no-legend', action='store_true')
+    parser.add_argument('--no-kmers', action='store_true')
+    parser.add_argument('--no-flag', action='store_true')
+
+    parser.add_argument('txt_graphs', nargs='*')
+    parser.add_argument('--directory', '-d', help='Recurse here and plot all '
+                        'graphs that are found.', action='append', default=[])
+    parser.add_argument('--out-type', type=str, default='svg')
+    return parser
+
+
+def main(args):
+    parser = get_parser()
+    args = parser.parse_args(args)
+    kwargs = dict(legend=not args.no_legend, kmers=not args.no_kmers,
+                  flag=not args.no_flag)
+    for filename in args.txt_graphs:
+        graph = graph_from_file(filename, **kwargs)
+        print 'plotting', filename + args.out_type
+        graph.write(filename + args.out_type, format=args.out_type)
+
+    for d in args.directory:
+        recursive_plot(d, **kwargs)
+
+if __name__ == '__main__':
+    main(sys.argv[1:])
diff --git a/genomix/genomix-hadoop/src/test/python/generate_graph.py b/genomix/genomix-hadoop/src/test/python/generate_graph.py
new file mode 100644
index 0000000..2053bf9
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/python/generate_graph.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+Generate a random smattering of reads
+"""
+
+import sys
+import argparse
+import random
+import itertools
+import string
+
+
+def get_parser():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--walk', '-w', action='store_true')
+    parser.add_argument('--coverage', '-c', type=float, required=True)
+    parser.add_argument('--genome-length', '-g', type=int,
+                        required=True)
+    parser.add_argument('--read-length', '-l', type=int, required=True)
+    parser.add_argument('--no-rc', action='store_true')
+    parser.add_argument('--error-rate', type=float, default=.01)
+    parser.add_argument('--outreads', '-r', type=argparse.FileType('w'),
+                        default='reads.txt')
+    parser.add_argument('--outgenome', '-o', type=argparse.FileType('w'),
+                        default='genome.txt')
+    return parser
+
+
+def reverse_complement(kmer, _table=string.maketrans('ACGT', 'TGCA')):
+    return string.translate(kmer, _table)[::-1]
+
+
+def make_genome(length):
+    return ''.join(random.choice('ACGT') for i in xrange(length))
+
+
+def make_reads(genome, read_length, coverage, walk=False, no_rc=False,
+               error_rate=0.):
+    num_reads = int(coverage * len(genome)) / read_length
+    if walk:
+        step_size = max(1, int(len(genome) / num_reads))
+        next_starts = itertools.cycle(xrange(0, len(genome) - read_length + 1,
+                                            step_size))
+    else:
+        next_starts = (random.randrange(len(genome) - read_length) for i in itertools.cycle([None]))
+    num_errors = 0
+    for i in range(1, num_reads + 1):
+        start = next_starts.next()
+        seq = genome[start:start + read_length]
+        if not no_rc and random.choice([True, False]):
+            seq = reverse_complement(seq)
+        final_seq = []
+        for l in seq:
+            if random.random() < error_rate:
+                num_errors += 1
+                final_seq.append(random.choice(list(set('ATGC') - set(l))))
+            else:
+                final_seq.append(l)
+
+        yield '%s\t%s\n' % (i, ''.join(final_seq))
+    print >> sys.stderr, 'introduced', num_errors, 'errors'
+
+
+def main(args):
+    parser = get_parser()
+    args = parser.parse_args(args)
+    genome = make_genome(args.genome_length)
+    args.outgenome.write(genome)
+    args.outgenome.write('\n')
+    args.outreads.writelines(make_reads(genome, args.read_length,
+                                        args.coverage, args.walk, args.no_rc,
+                                        args.error_rate))
+
+
+if __name__ == '__main__':
+    main(sys.argv[1:])
diff --git a/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread.txt b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread.txt
new file mode 100644
index 0000000..be930c4
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread.txt
@@ -0,0 +1 @@
+((1,1)	[]	[]	[]	[]	AATAGAAG)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread.txt.svg b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread.txt.svg
new file mode 100644
index 0000000..31ebb54
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread.txt.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: singleread_txt Pages: 1 -->
+<svg width="206pt" height="321pt"
+ viewBox="0.00 0.00 206.00 321.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 317)">
+<title>singleread_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-317 203,-317 203,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="59,-8 59,-209 190,-209 190,-8 59,-8"/>
+<text text-anchor="middle" x="124.5" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 130,-305 130,-217 8,-217"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="69" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="180" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M70.9266,-157C82.3997,-157 142.097,-157 167.994,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="168.02,-160.5 178.02,-157 168.02,-153.5 168.02,-160.5"/>
+<text text-anchor="middle" x="150" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="69" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="180" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M70.9266,-116C82.3997,-116 142.097,-116 167.994,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="168.02,-119.5 178.02,-116 168.02,-112.5 168.02,-119.5"/>
+<text text-anchor="middle" x="150" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="69" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="180" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M70.9266,-75C82.3997,-75 142.097,-75 167.994,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="168.02,-78.5001 178.02,-75 168.02,-71.5001 168.02,-78.5001"/>
+<text text-anchor="middle" x="150" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="69" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="180" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M70.9266,-34C82.3997,-34 142.097,-34 167.994,-34"/>
+<polygon fill="#218559" stroke="#218559" points="168.02,-37.5001 178.02,-34 168.02,-30.5001 168.02,-37.5001"/>
+<text text-anchor="middle" x="150" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="69" cy="-261" rx="51.8276" ry="36.0624"/>
+<text text-anchor="start" x="49" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="40,-253 40,-267 98,-267 98,-253 40,-253"/>
+<text text-anchor="start" x="42.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AATAGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="40,-239 40,-253 98,-253 98,-239 40,-239"/>
+<text text-anchor="start" x="46.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CTTCTATT</text>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/.part-0.crc
new file mode 100644
index 0000000..6b5048e
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/.part-1.crc
new file mode 100644
index 0000000..6de18c1
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/part-0 b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/part-0
new file mode 100755
index 0000000..335dd8d
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/part-1 b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/part-1
new file mode 100755
index 0000000..3a7991c
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/expected/pathmerge/singleread/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/hadoop/conf/core-site.xml b/genomix/genomix-hadoop/src/test/resources/hadoop/conf/core-site.xml
new file mode 100644
index 0000000..3e5bacb
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/hadoop/conf/core-site.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+	<property>
+		<name>fs.default.name</name>
+		<value>hdfs://127.0.0.1:31888</value>
+	</property>
+	<property>
+		<name>hadoop.tmp.dir</name>
+		<value>/tmp/hadoop</value>
+	</property>
+
+
+</configuration>
diff --git a/genomix/genomix-hadoop/src/test/resources/hadoop/conf/hdfs-site.xml b/genomix/genomix-hadoop/src/test/resources/hadoop/conf/hdfs-site.xml
new file mode 100644
index 0000000..b1b1902
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/hadoop/conf/hdfs-site.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+	<property>
+		<name>dfs.replication</name>
+		<value>1</value>
+	</property>
+
+	<property>
+		<name>dfs.block.size</name>
+		<value>65536</value>
+	</property>
+
+</configuration>
diff --git a/genomix/genomix-hadoop/src/test/resources/hadoop/conf/log4j.properties b/genomix/genomix-hadoop/src/test/resources/hadoop/conf/log4j.properties
new file mode 100755
index 0000000..d5e6004
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/hadoop/conf/log4j.properties
@@ -0,0 +1,94 @@
+# Define some default values that can be overridden by system properties
+hadoop.root.logger=FATAL,console
+hadoop.log.dir=.
+hadoop.log.file=hadoop.log
+
+# Define the root logger to the system property "hadoop.root.logger".
+log4j.rootLogger=${hadoop.root.logger}, EventCounter
+
+# Logging Threshold
+log4j.threshhold=FATAL
+
+#
+# Daily Rolling File Appender
+#
+
+log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Rollver at midnight
+log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
+
+# 30-day backup
+#log4j.appender.DRFA.MaxBackupIndex=30
+log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
+
+# Pattern format: Date LogLevel LoggerName LogMessage
+log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+# Debugging Pattern format
+#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+
+#
+# console
+# Add "console" to rootlogger above if you want to use this 
+#
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.target=System.err
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
+
+#
+# TaskLog Appender
+#
+
+#Default values
+hadoop.tasklog.taskid=null
+hadoop.tasklog.noKeepSplits=4
+hadoop.tasklog.totalLogFileSize=100
+hadoop.tasklog.purgeLogSplits=true
+hadoop.tasklog.logsRetainHours=12
+
+log4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender
+log4j.appender.TLA.taskId=${hadoop.tasklog.taskid}
+log4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}
+
+log4j.appender.TLA.layout=org.apache.log4j.PatternLayout
+log4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+
+#
+# Rolling File Appender
+#
+
+#log4j.appender.RFA=org.apache.log4j.RollingFileAppender
+#log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Logfile size and and 30-day backups
+#log4j.appender.RFA.MaxFileSize=1MB
+#log4j.appender.RFA.MaxBackupIndex=30
+
+#log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+#
+# FSNamesystem Audit logging
+# All audit events are logged at INFO level
+#
+log4j.logger.org.apache.hadoop.fs.FSNamesystem.audit=WARN
+
+# Custom Logging levels
+
+#log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG
+#log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG
+#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
+
+# Jets3t library
+log4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR
+
+#
+# Event Counter Appender
+# Sends counts of logging messages at different severity levels to Hadoop Metrics.
+#
+log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
diff --git a/genomix/genomix-hadoop/src/test/resources/hadoop/conf/mapred-site.xml b/genomix/genomix-hadoop/src/test/resources/hadoop/conf/mapred-site.xml
new file mode 100644
index 0000000..525e7d5
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/hadoop/conf/mapred-site.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+	<property>
+		<name>mapred.job.tracker</name>
+		<value>localhost:29007</value>
+	</property>
+	<property>
+		<name>mapred.tasktracker.map.tasks.maximum</name>
+		<value>20</value>
+	</property>
+	<property>
+		<name>mapred.tasktracker.reduce.tasks.maximum</name>
+		<value>20</value>
+	</property>
+	<property>
+		<name>mapred.max.split.size</name>
+		<value>2048</value>
+	</property>
+
+</configuration>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles.txt
new file mode 100644
index 0000000..2896107
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles.txt
@@ -0,0 +1,16 @@
+((2,1)	[(3,1),(4,1),(2,2)]	[]	[]	[(1,1)]	CGTCC)	(null)
+((2,2)	[(2,3)]	[]	[]	[(2,1)]	GTCCT)	(null)
+((2,3)	[(2,4)]	[]	[]	[(2,2)]	TCCTT)	(null)
+((2,4)	[(4,4),(3,4)]	[]	[]	[(1,4),(2,3)]	CCTTA)	(null)
+((4,1)	[(4,2)]	[]	[]	[(1,2),(2,1)]	GTCCT)	(null)
+((4,2)	[(4,3)]	[]	[]	[(4,1)]	TCCTT)	(null)
+((4,3)	[(4,4)]	[]	[]	[(1,4),(4,2)]	CCTTA)	(null)
+((4,4)	[]	[]	[]	[(2,4),(4,3)]	CTTAG)	(null)
+((1,1)	[(2,1),(1,2)]	[]	[]	[]	ACGTC)	(null)
+((1,2)	[(3,1),(4,1),(1,3)]	[]	[]	[(1,1)]	CGTCC)	(null)
+((1,3)	[(1,4)]	[]	[]	[(1,2)]	GTCCT)	(null)
+((1,4)	[(3,3),(4,3),(2,4)]	[]	[]	[(1,3)]	TCCTT)	(null)
+((3,1)	[(3,2)]	[]	[]	[(1,2),(2,1)]	GTCCT)	(null)
+((3,2)	[(3,3)]	[]	[]	[(3,1)]	TCCTT)	(null)
+((3,3)	[(3,4)]	[]	[]	[(1,4),(3,2)]	CCTTA)	(null)
+((3,4)	[]	[]	[]	[(2,4),(3,3)]	CTTAG)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles.txt.svg
new file mode 100644
index 0000000..fef64c2
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles.txt.svg
@@ -0,0 +1,449 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: five_ff_bubbles_txt Pages: 1 -->
+<svg width="764pt" height="520pt"
+ viewBox="0.00 0.00 764.00 520.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 516)">
+<title>five_ff_bubbles_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-516 761,-516 761,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 500,-305 500,-217 8,-217"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="274,-416 274,-504 748,-504 748,-416 274,-416"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="150,-313 150,-401 624,-401 624,-313 150,-313"/>
+</g>
+<g id="graph6" class="cluster"><title>cluster_4</title>
+<polygon fill="none" stroke="black" points="274,-121 274,-209 748,-209 748,-121 274,-121"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="43.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ACGTC</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="42.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">GACGT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CGTCC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="183.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">GGACG</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge61" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 2,1 -->
+<g id="node25" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-349 179,-363 224,-363 224,-349 179,-349"/>
+<text text-anchor="start" x="185" y="-353.667" font-family="Times Roman,serif" font-size="10.00">CGTCC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-335 179,-349 224,-349 224,-335 179,-335"/>
+<text text-anchor="start" x="183.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">GGACG</text>
+</g>
+<!-- 1,1&#45;&gt;2,1 -->
+<g id="edge59" class="edge"><title>1,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#dd1e2f" d="M92.652,-283.751C112.403,-297.103 137.544,-314.1 158.635,-328.359"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="156.853,-331.379 167.097,-334.08 160.773,-325.58 156.853,-331.379"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge69" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="310" y="-257.667" font-family="Times Roman,serif" font-size="10.00">GTCCT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="308" y="-243.667" font-family="Times Roman,serif" font-size="10.00">AGGAC</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge67" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 3,1 -->
+<g id="node20" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-460" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-471.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-452 303,-466 348,-466 348,-452 303,-452"/>
+<text text-anchor="start" x="310" y="-456.667" font-family="Times Roman,serif" font-size="10.00">GTCCT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-438 303,-452 348,-452 348,-438 303,-438"/>
+<text text-anchor="start" x="308" y="-442.667" font-family="Times Roman,serif" font-size="10.00">AGGAC</text>
+</g>
+<!-- 1,2&#45;&gt;3,1 -->
+<g id="edge63" class="edge"><title>1,2&#45;&gt;3,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-290.029C236.061,-300.138 244,-309 244,-309 244,-309 274,-405 274,-405 274,-405 282.027,-413.657 291.712,-424.101"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="289.238,-426.58 298.604,-431.533 294.371,-421.821 289.238,-426.58"/>
+</g>
+<!-- 4,1 -->
+<g id="node30" class="node"><title>4,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">4,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-157 303,-171 348,-171 348,-157 303,-157"/>
+<text text-anchor="start" x="310" y="-161.667" font-family="Times Roman,serif" font-size="10.00">GTCCT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-143 303,-157 348,-157 348,-143 303,-143"/>
+<text text-anchor="start" x="308" y="-147.667" font-family="Times Roman,serif" font-size="10.00">AGGAC</text>
+</g>
+<!-- 1,2&#45;&gt;4,1 -->
+<g id="edge65" class="edge"><title>1,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-231.971C236.061,-221.862 244,-213 244,-213 244,-213 262,-184 262,-184 262,-184 267.269,-182.411 274.758,-180.152"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="275.825,-183.486 284.389,-177.248 273.804,-176.784 275.825,-183.486"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge73" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 1,4 -->
+<g id="node18" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-253 427,-267 472,-267 472,-253 427,-253"/>
+<text text-anchor="start" x="435" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TCCTT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-239 427,-253 472,-253 472,-239 427,-239"/>
+<text text-anchor="start" x="431.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">AAGGA</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge71" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-254.562C376.601,-254.258 386.531,-254.176 396.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-257.822 406.443,-254.554 396.527,-250.823 396.364,-257.822"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge81" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M406.443,-267.446C397.158,-267.745 387.225,-267.824 377.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-264.175 367.327,-267.438 377.242,-271.173 377.407,-264.175"/>
+</g>
+<!-- 3,3 -->
+<g id="node22" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-460" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-471.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-452 551,-466 596,-466 596,-452 551,-452"/>
+<text text-anchor="start" x="558.5" y="-456.667" font-family="Times Roman,serif" font-size="10.00">CCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-438 551,-452 596,-452 596,-438 551,-438"/>
+<text text-anchor="start" x="556.5" y="-442.667" font-family="Times Roman,serif" font-size="10.00">TAAGG</text>
+</g>
+<!-- 1,4&#45;&gt;3,3 -->
+<g id="edge75" class="edge"><title>1,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M477.779,-288.086C489.347,-298.974 500,-309 500,-309 500,-309 530,-405 530,-405 530,-405 535.671,-412.254 542.894,-421.492"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="540.32,-423.882 549.236,-429.604 545.834,-419.571 540.32,-423.882"/>
+</g>
+<!-- 2,4 -->
+<g id="node28" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-349 551,-363 596,-363 596,-349 551,-349"/>
+<text text-anchor="start" x="558.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">CCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-335 551,-349 596,-349 596,-335 551,-335"/>
+<text text-anchor="start" x="556.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">TAAGG</text>
+</g>
+<!-- 1,4&#45;&gt;2,4 -->
+<g id="edge79" class="edge"><title>1,4&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M479.857,-286.293C494.987,-298.695 510,-311 510,-311 510,-311 520.107,-318.38 532.225,-327.228"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="530.253,-330.121 540.393,-333.192 534.38,-324.468 530.253,-330.121"/>
+</g>
+<!-- 4,3 -->
+<g id="node32" class="node"><title>4,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">4,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-157 551,-171 596,-171 596,-157 551,-157"/>
+<text text-anchor="start" x="558.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">CCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-143 551,-157 596,-157 596,-143 551,-143"/>
+<text text-anchor="start" x="556.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">TAAGG</text>
+</g>
+<!-- 1,4&#45;&gt;4,3 -->
+<g id="edge77" class="edge"><title>1,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M479.143,-235.305C494.511,-222.204 510,-209 510,-209 510,-209 519.601,-202.295 531.307,-194.119"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="533.461,-196.884 539.655,-188.288 529.453,-191.145 533.461,-196.884"/>
+</g>
+<!-- 3,1&#45;&gt;1,2 -->
+<g id="edge85" class="edge"><title>3,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M298.604,-431.533C286.159,-418.113 274,-405 274,-405 274,-405 262,-384 262,-384 262,-384 244,-309 244,-309 244,-309 239.718,-304.221 233.857,-297.678"/>
+<polygon fill="#218559" stroke="#218559" points="236.285,-295.142 227.005,-290.029 231.071,-299.813 236.285,-295.142"/>
+</g>
+<!-- 3,2 -->
+<g id="node21" class="node"><title>3,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-460" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-471.167" font-family="Times Roman,serif" font-size="10.00">3,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-452 427,-466 472,-466 472,-452 427,-452"/>
+<text text-anchor="start" x="435" y="-456.667" font-family="Times Roman,serif" font-size="10.00">TCCTT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-438 427,-452 472,-452 472,-438 427,-438"/>
+<text text-anchor="start" x="431.5" y="-442.667" font-family="Times Roman,serif" font-size="10.00">AAGGA</text>
+</g>
+<!-- 3,1&#45;&gt;3,2 -->
+<g id="edge83" class="edge"><title>3,1&#45;&gt;3,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-453.562C376.601,-453.258 386.531,-453.176 396.159,-453.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-456.822 406.443,-453.554 396.527,-449.823 396.364,-456.822"/>
+</g>
+<!-- 3,1&#45;&gt;2,1 -->
+<g id="edge87" class="edge"><title>3,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M283.329,-450.078C271.613,-447.289 262,-445 262,-445 262,-445 244.717,-420.067 228.55,-396.744"/>
+<polygon fill="#218559" stroke="#218559" points="231.252,-394.498 222.678,-388.273 225.499,-398.486 231.252,-394.498"/>
+</g>
+<!-- 3,2&#45;&gt;3,1 -->
+<g id="edge91" class="edge"><title>3,2&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-466.446C397.158,-466.745 387.225,-466.824 377.602,-466.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-463.175 367.327,-466.438 377.242,-470.173 377.407,-463.175"/>
+</g>
+<!-- 3,2&#45;&gt;3,3 -->
+<g id="edge89" class="edge"><title>3,2&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-453.562C500.601,-453.258 510.531,-453.176 520.159,-453.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-456.822 530.443,-453.554 520.527,-449.823 520.364,-456.822"/>
+</g>
+<!-- 3,3&#45;&gt;1,4 -->
+<g id="edge95" class="edge"><title>3,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M549.236,-429.604C539.291,-416.884 530,-405 530,-405 530,-405 510,-359 510,-359 510,-359 500,-309 500,-309 500,-309 493.498,-302.881 485.137,-295.012"/>
+<polygon fill="#218559" stroke="#218559" points="487.46,-292.391 477.779,-288.086 482.662,-297.489 487.46,-292.391"/>
+</g>
+<!-- 3,3&#45;&gt;3,2 -->
+<g id="edge97" class="edge"><title>3,3&#45;&gt;3,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-466.446C521.158,-466.745 511.225,-466.824 501.602,-466.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-463.175 491.327,-466.438 501.242,-470.173 501.407,-463.175"/>
+</g>
+<!-- 3,4 -->
+<g id="node23" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-460" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-471.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-452 675,-466 720,-466 720,-452 675,-452"/>
+<text text-anchor="start" x="682" y="-456.667" font-family="Times Roman,serif" font-size="10.00">CTTAG</text>
+<polygon fill="#218559" stroke="#218559" points="675,-438 675,-452 720,-452 720,-438 675,-438"/>
+<text text-anchor="start" x="681" y="-442.667" font-family="Times Roman,serif" font-size="10.00">CTAAG</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge93" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-453.562C624.601,-453.258 634.531,-453.176 644.159,-453.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-456.822 654.443,-453.554 644.527,-449.823 644.364,-456.822"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge101" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M654.443,-466.446C645.158,-466.745 635.225,-466.824 625.602,-466.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-463.175 615.327,-466.438 625.242,-470.173 625.407,-463.175"/>
+</g>
+<!-- 3,4&#45;&gt;2,4 -->
+<g id="edge99" class="edge"><title>3,4&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M667.572,-433.467C651.973,-419.402 636,-405 636,-405 636,-405 625.367,-396.899 612.837,-387.352"/>
+<polygon fill="#218559" stroke="#218559" points="614.945,-384.558 604.869,-381.281 610.702,-390.126 614.945,-384.558"/>
+</g>
+<!-- 2,1&#45;&gt;1,1 -->
+<g id="edge21" class="edge"><title>2,1&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M163.346,-338.87C142.193,-328.685 120,-318 120,-318 120,-318 108.279,-307.047 95.112,-294.744"/>
+<polygon fill="#218559" stroke="#218559" points="97.41,-292.101 87.7138,-287.831 92.6308,-297.216 97.41,-292.101"/>
+</g>
+<!-- 2,1&#45;&gt;3,1 -->
+<g id="edge15" class="edge"><title>2,1&#45;&gt;3,1</title>
+<path fill="none" stroke="#dd1e2f" d="M225.811,-386.692C242.699,-406.902 262,-430 262,-430 262,-430 268.943,-433.306 278.219,-437.723"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="276.728,-440.89 287.262,-442.029 279.738,-434.57 276.728,-440.89"/>
+</g>
+<!-- 2,2 -->
+<g id="node26" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-349 303,-363 348,-363 348,-349 303,-349"/>
+<text text-anchor="start" x="310" y="-353.667" font-family="Times Roman,serif" font-size="10.00">GTCCT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-335 303,-349 348,-349 348,-335 303,-335"/>
+<text text-anchor="start" x="308" y="-339.667" font-family="Times Roman,serif" font-size="10.00">AGGAC</text>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge19" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-350.562C252.601,-350.258 262.531,-350.176 272.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-353.822 282.443,-350.554 272.527,-346.823 272.364,-353.822"/>
+</g>
+<!-- 2,1&#45;&gt;4,1 -->
+<g id="edge17" class="edge"><title>2,1&#45;&gt;4,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-327.971C236.061,-317.862 244,-309 244,-309 244,-309 274,-213 274,-213 274,-213 280.502,-206.881 288.863,-199.012"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="291.338,-201.489 296.221,-192.086 286.54,-196.391 291.338,-201.489"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge25" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M282.443,-363.446C273.158,-363.745 263.225,-363.824 253.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-360.175 243.327,-363.438 253.242,-367.173 253.407,-360.175"/>
+</g>
+<!-- 2,3 -->
+<g id="node27" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-349 427,-363 472,-363 472,-349 427,-349"/>
+<text text-anchor="start" x="435" y="-353.667" font-family="Times Roman,serif" font-size="10.00">TCCTT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-335 427,-349 472,-349 472,-335 427,-335"/>
+<text text-anchor="start" x="431.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">AAGGA</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge23" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-350.562C376.601,-350.258 386.531,-350.176 396.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-353.822 406.443,-350.554 396.527,-346.823 396.364,-353.822"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge29" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M406.443,-363.446C397.158,-363.745 387.225,-363.824 377.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-360.175 367.327,-363.438 377.242,-367.173 377.407,-360.175"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge27" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-350.562C500.601,-350.258 510.531,-350.176 520.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-353.822 530.443,-350.554 520.527,-346.823 520.364,-353.822"/>
+</g>
+<!-- 2,4&#45;&gt;1,4 -->
+<g id="edge35" class="edge"><title>2,4&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M541.015,-332.238C525.051,-319.878 505.587,-304.81 488.68,-291.72"/>
+<polygon fill="#218559" stroke="#218559" points="490.661,-288.827 480.611,-285.473 486.376,-294.363 490.661,-288.827"/>
+</g>
+<!-- 2,4&#45;&gt;3,4 -->
+<g id="edge33" class="edge"><title>2,4&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M603.652,-382.461C620.195,-396.202 640.78,-413.301 658.406,-427.942"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="656.342,-430.778 666.271,-434.475 660.815,-425.393 656.342,-430.778"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge37" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M530.443,-363.446C521.158,-363.745 511.225,-363.824 501.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-360.175 491.327,-363.438 501.242,-367.173 501.407,-360.175"/>
+</g>
+<!-- 4,4 -->
+<g id="node33" class="node"><title>4,4</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">4,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-157 675,-171 720,-171 720,-157 675,-157"/>
+<text text-anchor="start" x="682" y="-161.667" font-family="Times Roman,serif" font-size="10.00">CTTAG</text>
+<polygon fill="#218559" stroke="#218559" points="675,-143 675,-157 720,-157 720,-143 675,-143"/>
+<text text-anchor="start" x="681" y="-147.667" font-family="Times Roman,serif" font-size="10.00">CTAAG</text>
+</g>
+<!-- 2,4&#45;&gt;4,4 -->
+<g id="edge31" class="edge"><title>2,4&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M593.476,-325.295C614.656,-292.5 647.802,-241.178 670.862,-205.472"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="674.008,-207.051 676.494,-196.752 668.128,-203.254 674.008,-207.051"/>
+</g>
+<!-- 4,1&#45;&gt;1,2 -->
+<g id="edge41" class="edge"><title>4,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M285.459,-179.436C272.801,-184.057 262,-188 262,-188 262,-188 244,-213 244,-213 244,-213 239.718,-217.779 233.857,-224.322"/>
+<polygon fill="#218559" stroke="#218559" points="231.071,-222.187 227.005,-231.971 236.285,-226.858 231.071,-222.187"/>
+</g>
+<!-- 4,1&#45;&gt;2,1 -->
+<g id="edge43" class="edge"><title>4,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M296.221,-192.086C284.653,-202.974 274,-213 274,-213 274,-213 262,-243 262,-243 262,-243 244,-309 244,-309 244,-309 239.718,-313.779 233.857,-320.322"/>
+<polygon fill="#218559" stroke="#218559" points="231.071,-318.187 227.005,-327.971 236.285,-322.858 231.071,-318.187"/>
+</g>
+<!-- 4,2 -->
+<g id="node31" class="node"><title>4,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">4,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-157 427,-171 472,-171 472,-157 427,-157"/>
+<text text-anchor="start" x="435" y="-161.667" font-family="Times Roman,serif" font-size="10.00">TCCTT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-143 427,-157 472,-157 472,-143 427,-143"/>
+<text text-anchor="start" x="431.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">AAGGA</text>
+</g>
+<!-- 4,1&#45;&gt;4,2 -->
+<g id="edge39" class="edge"><title>4,1&#45;&gt;4,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-158.562C376.601,-158.258 386.531,-158.176 396.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-161.822 406.443,-158.554 396.527,-154.823 396.364,-161.822"/>
+</g>
+<!-- 4,2&#45;&gt;4,1 -->
+<g id="edge47" class="edge"><title>4,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-171.446C397.158,-171.745 387.225,-171.824 377.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-168.175 367.327,-171.438 377.242,-175.173 377.407,-168.175"/>
+</g>
+<!-- 4,2&#45;&gt;4,3 -->
+<g id="edge45" class="edge"><title>4,2&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-158.562C500.601,-158.258 510.531,-158.176 520.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-161.822 530.443,-158.554 520.527,-154.823 520.364,-161.822"/>
+</g>
+<!-- 4,3&#45;&gt;1,4 -->
+<g id="edge51" class="edge"><title>4,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M541.015,-189.762C525.051,-202.122 505.587,-217.19 488.68,-230.28"/>
+<polygon fill="#218559" stroke="#218559" points="486.376,-227.637 480.611,-236.527 490.661,-233.173 486.376,-227.637"/>
+</g>
+<!-- 4,3&#45;&gt;4,2 -->
+<g id="edge53" class="edge"><title>4,3&#45;&gt;4,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-171.446C521.158,-171.745 511.225,-171.824 501.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-168.175 491.327,-171.438 501.242,-175.173 501.407,-168.175"/>
+</g>
+<!-- 4,3&#45;&gt;4,4 -->
+<g id="edge49" class="edge"><title>4,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-158.562C624.601,-158.258 634.531,-158.176 644.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-161.822 654.443,-158.554 644.527,-154.823 644.364,-161.822"/>
+</g>
+<!-- 4,4&#45;&gt;2,4 -->
+<g id="edge55" class="edge"><title>4,4&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M678.863,-197.706C660.882,-230.131 636,-275 636,-275 636,-275 618.994,-297.135 602.652,-318.405"/>
+<polygon fill="#218559" stroke="#218559" points="599.776,-316.404 596.459,-326.466 605.327,-320.669 599.776,-316.404"/>
+</g>
+<!-- 4,4&#45;&gt;4,3 -->
+<g id="edge57" class="edge"><title>4,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M654.443,-171.446C645.158,-171.745 635.225,-171.824 625.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-168.175 615.327,-171.438 625.242,-175.173 625.407,-168.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/.part-0.crc
new file mode 100644
index 0000000..2085368
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/.part-1.crc
new file mode 100644
index 0000000..69dcf7d
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/part-0
new file mode 100755
index 0000000..36702f5
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/part-1
new file mode 100755
index 0000000..9045432
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_ff_bubbles/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles.txt
new file mode 100644
index 0000000..a41ce56
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles.txt
@@ -0,0 +1,18 @@
+((2,1)	[(2,3)]	[]	[]	[]	AATAGA)	(null)
+((2,3)	[(6,1),(2,4)]	[]	[]	[(2,1)]	TAGAA)	(null)
+((2,4)	[(6,2)]	[]	[]	[(2,3)]	AGAAG)	(null)
+((4,1)	[(4,3)]	[]	[]	[]	AATAGA)	(null)
+((4,3)	[(6,1),(4,4)]	[]	[]	[(4,1)]	TAGAA)	(null)
+((4,4)	[(6,2)]	[]	[]	[(4,3)]	AGAAG)	(null)
+((6,1)	[(6,2)]	[]	[]	[(2,3),(1,3),(3,3),(4,3),(5,3)]	AGAAG)	(null)
+((6,2)	[(6,3)]	[]	[]	[(2,4),(3,4),(1,4),(4,4),(5,4),(6,1)]	GAAGA)	(null)
+((6,3)	[]	[]	[]	[(6,2)]	AAGAAG)	(null)
+((1,1)	[(1,3)]	[]	[]	[]	AATAGA)	(null)
+((1,3)	[(6,1),(1,4)]	[]	[]	[(1,1)]	TAGAA)	(null)
+((1,4)	[(6,2)]	[]	[]	[(1,3)]	AGAAG)	(null)
+((3,1)	[(3,3)]	[]	[]	[]	AATAGA)	(null)
+((3,3)	[(6,1),(3,4)]	[]	[]	[(3,1)]	TAGAA)	(null)
+((3,4)	[(6,2)]	[]	[]	[(3,3)]	AGAAG)	(null)
+((5,1)	[(5,3)]	[]	[]	[]	AATAGA)	(null)
+((5,3)	[(6,1),(5,4)]	[]	[]	[(5,1)]	TAGAA)	(null)
+((5,4)	[(6,2)]	[]	[]	[(5,3)]	AGAAG)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles.txt.svg
new file mode 100644
index 0000000..ff38f7d
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles.txt.svg
@@ -0,0 +1,473 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: five_length1_bubbles_txt Pages: 1 -->
+<svg width="646pt" height="844pt"
+ viewBox="0.00 0.00 646.00 844.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 840)">
+<title>five_length1_bubbles_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-840 643,-840 643,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-548 8,-636 376,-636 376,-548 8,-548"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="8,-320 8,-408 376,-408 376,-320 8,-320"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="8,-740 8,-828 376,-828 376,-740 8,-740"/>
+</g>
+<g id="graph6" class="cluster"><title>cluster_5</title>
+<polygon fill="none" stroke="black" points="8,-644 8,-732 376,-732 376,-644 8,-644"/>
+</g>
+<g id="graph7" class="cluster"><title>cluster_4</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<g id="graph8" class="cluster"><title>cluster_6</title>
+<polygon fill="none" stroke="black" points="274,-426 274,-514 630,-514 630,-426 274,-426"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-592" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-603.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-584 37,-598 82,-598 82,-584 37,-584"/>
+<text text-anchor="start" x="40" y="-588.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-570 37,-584 82,-584 82,-570 37,-570"/>
+<text text-anchor="start" x="43" y="-574.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 1,3 -->
+<g id="node16" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-592" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-603.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-584 179,-598 224,-598 224,-584 179,-584"/>
+<text text-anchor="start" x="185" y="-588.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-570 179,-584 224,-584 224,-570 179,-570"/>
+<text text-anchor="start" x="187.5" y="-574.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 1,1&#45;&gt;1,3 -->
+<g id="edge69" class="edge"><title>1,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-585.755C116.207,-585.208 132.729,-585.105 148.049,-585.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-588.957 158.425,-585.756 148.534,-581.96 148.326,-588.957"/>
+</g>
+<!-- 1,3&#45;&gt;1,1 -->
+<g id="edge75" class="edge"><title>1,3&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-598.244C143.825,-598.792 127.305,-598.895 111.982,-598.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-595.043 101.605,-598.245 111.497,-602.04 111.704,-595.043"/>
+</g>
+<!-- 1,4 -->
+<g id="node17" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-592" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-603.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-584 303,-598 348,-598 348,-584 303,-584"/>
+<text text-anchor="start" x="307.5" y="-588.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-570 303,-584 348,-584 348,-570 303,-570"/>
+<text text-anchor="start" x="311" y="-574.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge73" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-585.562C252.601,-585.258 262.531,-585.176 272.159,-585.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-588.822 282.443,-585.554 272.527,-581.823 272.364,-588.822"/>
+</g>
+<!-- 6,1 -->
+<g id="node35" class="node"><title>6,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-470" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-481.167" font-family="Times Roman,serif" font-size="10.00">6,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-462 303,-476 348,-476 348,-462 303,-462"/>
+<text text-anchor="start" x="307.5" y="-466.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-448 303,-462 348,-462 348,-448 303,-448"/>
+<text text-anchor="start" x="311" y="-452.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;6,1 -->
+<g id="edge71" class="edge"><title>1,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M217.507,-558.714C235.573,-522.287 262,-469 262,-469 262,-469 264,-469 264,-469 264,-469 267.077,-469.05 271.85,-469.129"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="271.916,-472.63 281.972,-469.295 272.031,-465.631 271.916,-472.63"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge79" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-598.446C273.158,-598.745 263.225,-598.824 253.602,-598.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-595.175 243.327,-598.438 253.242,-602.173 253.407,-595.175"/>
+</g>
+<!-- 6,2 -->
+<g id="node36" class="node"><title>6,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-470" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-481.167" font-family="Times Roman,serif" font-size="10.00">6,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-462 427,-476 472,-476 472,-462 427,-462"/>
+<text text-anchor="start" x="431.5" y="-466.667" font-family="Times Roman,serif" font-size="10.00">GAAGA</text>
+<polygon fill="#218559" stroke="#218559" points="427,-448 427,-462 472,-462 472,-448 427,-448"/>
+<text text-anchor="start" x="435.5" y="-452.667" font-family="Times Roman,serif" font-size="10.00">TCTTC</text>
+</g>
+<!-- 1,4&#45;&gt;6,2 -->
+<g id="edge77" class="edge"><title>1,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M353.138,-564.316C371.132,-546.612 394.616,-523.507 413.837,-504.596"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="416.3,-507.082 420.974,-497.574 411.391,-502.093 416.3,-507.082"/>
+</g>
+<!-- 3,1 -->
+<g id="node19" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-364" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-375.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-356 37,-370 82,-370 82,-356 37,-356"/>
+<text text-anchor="start" x="40" y="-360.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-342 37,-356 82,-356 82,-342 37,-342"/>
+<text text-anchor="start" x="43" y="-346.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 3,3 -->
+<g id="node20" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-364" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-375.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-356 179,-370 224,-370 224,-356 179,-356"/>
+<text text-anchor="start" x="185" y="-360.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-342 179,-356 224,-356 224,-342 179,-342"/>
+<text text-anchor="start" x="187.5" y="-346.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 3,1&#45;&gt;3,3 -->
+<g id="edge81" class="edge"><title>3,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-357.755C116.207,-357.208 132.729,-357.105 148.049,-357.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-360.957 158.425,-357.756 148.534,-353.96 148.326,-360.957"/>
+</g>
+<!-- 3,3&#45;&gt;3,1 -->
+<g id="edge87" class="edge"><title>3,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-370.244C143.825,-370.792 127.305,-370.895 111.982,-370.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-367.043 101.605,-370.245 111.497,-374.04 111.704,-367.043"/>
+</g>
+<!-- 3,4 -->
+<g id="node21" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-364" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-375.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-356 303,-370 348,-370 348,-356 303,-356"/>
+<text text-anchor="start" x="307.5" y="-360.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-342 303,-356 348,-356 348,-342 303,-342"/>
+<text text-anchor="start" x="311" y="-346.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge85" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-357.562C252.601,-357.258 262.531,-357.176 272.159,-357.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-360.822 282.443,-357.554 272.527,-353.823 272.364,-360.822"/>
+</g>
+<!-- 3,3&#45;&gt;6,1 -->
+<g id="edge83" class="edge"><title>3,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M231.334,-389.931C247.997,-404.175 268.832,-421.985 286.618,-437.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="284.674,-440.132 294.55,-443.97 289.223,-434.812 284.674,-440.132"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge91" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-370.446C273.158,-370.745 263.225,-370.824 253.602,-370.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-367.175 243.327,-370.438 253.242,-374.173 253.407,-367.175"/>
+</g>
+<!-- 3,4&#45;&gt;6,2 -->
+<g id="edge89" class="edge"><title>3,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M356.869,-388.787C372.495,-400.941 388,-413 388,-413 388,-413 399.721,-423.953 412.888,-436.256"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="410.59,-438.899 420.286,-443.169 415.369,-433.784 410.59,-438.899"/>
+</g>
+<!-- 2,1 -->
+<g id="node23" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-784" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-795.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-776 37,-790 82,-790 82,-776 37,-776"/>
+<text text-anchor="start" x="40" y="-780.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-762 37,-776 82,-776 82,-762 37,-762"/>
+<text text-anchor="start" x="43" y="-766.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 2,3 -->
+<g id="node24" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-784" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-795.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-776 179,-790 224,-790 224,-776 179,-776"/>
+<text text-anchor="start" x="185" y="-780.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-762 179,-776 224,-776 224,-762 179,-762"/>
+<text text-anchor="start" x="187.5" y="-766.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 2,1&#45;&gt;2,3 -->
+<g id="edge17" class="edge"><title>2,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-777.755C116.207,-777.208 132.729,-777.105 148.049,-777.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-780.957 158.425,-777.756 148.534,-773.96 148.326,-780.957"/>
+</g>
+<!-- 2,3&#45;&gt;2,1 -->
+<g id="edge23" class="edge"><title>2,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-790.244C143.825,-790.792 127.305,-790.895 111.982,-790.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-787.043 101.605,-790.245 111.497,-794.04 111.704,-787.043"/>
+</g>
+<!-- 2,4 -->
+<g id="node25" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-784" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-795.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-776 303,-790 348,-790 348,-776 303,-776"/>
+<text text-anchor="start" x="307.5" y="-780.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-762 303,-776 348,-776 348,-762 303,-762"/>
+<text text-anchor="start" x="311" y="-766.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge21" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-777.562C252.601,-777.258 262.531,-777.176 272.159,-777.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-780.822 282.443,-777.554 272.527,-773.823 272.364,-780.822"/>
+</g>
+<!-- 2,3&#45;&gt;6,1 -->
+<g id="edge19" class="edge"><title>2,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-754.971C236.061,-744.862 244,-736 244,-736 244,-736 274,-544 274,-544 274,-544 285.426,-527.421 297.461,-509.958"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="300.579,-511.603 303.371,-501.383 294.815,-507.63 300.579,-511.603"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge27" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-790.446C273.158,-790.745 263.225,-790.824 253.602,-790.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-787.175 243.327,-790.438 253.242,-794.173 253.407,-787.175"/>
+</g>
+<!-- 2,4&#45;&gt;6,2 -->
+<g id="edge25" class="edge"><title>2,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M353.779,-756.914C365.347,-746.026 376,-736 376,-736 376,-736 415.795,-590.993 436.621,-515.107"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="440.035,-515.892 439.306,-505.323 433.284,-514.04 440.035,-515.892"/>
+</g>
+<!-- 5,1 -->
+<g id="node27" class="node"><title>5,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-688" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-699.167" font-family="Times Roman,serif" font-size="10.00">5,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-680 37,-694 82,-694 82,-680 37,-680"/>
+<text text-anchor="start" x="40" y="-684.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-666 37,-680 82,-680 82,-666 37,-666"/>
+<text text-anchor="start" x="43" y="-670.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 5,3 -->
+<g id="node28" class="node"><title>5,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-688" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-699.167" font-family="Times Roman,serif" font-size="10.00">5,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-680 179,-694 224,-694 224,-680 179,-680"/>
+<text text-anchor="start" x="185" y="-684.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-666 179,-680 224,-680 224,-666 179,-666"/>
+<text text-anchor="start" x="187.5" y="-670.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 5,1&#45;&gt;5,3 -->
+<g id="edge93" class="edge"><title>5,1&#45;&gt;5,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-681.755C116.207,-681.208 132.729,-681.105 148.049,-681.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-684.957 158.425,-681.756 148.534,-677.96 148.326,-684.957"/>
+</g>
+<!-- 5,3&#45;&gt;5,1 -->
+<g id="edge99" class="edge"><title>5,3&#45;&gt;5,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-694.244C143.825,-694.792 127.305,-694.895 111.982,-694.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-691.043 101.605,-694.245 111.497,-698.04 111.704,-691.043"/>
+</g>
+<!-- 5,4 -->
+<g id="node29" class="node"><title>5,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-688" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-699.167" font-family="Times Roman,serif" font-size="10.00">5,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-680 303,-694 348,-694 348,-680 303,-680"/>
+<text text-anchor="start" x="307.5" y="-684.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-666 303,-680 348,-680 348,-666 303,-666"/>
+<text text-anchor="start" x="311" y="-670.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 5,3&#45;&gt;5,4 -->
+<g id="edge97" class="edge"><title>5,3&#45;&gt;5,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-681.562C252.601,-681.258 262.531,-681.176 272.159,-681.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-684.822 282.443,-681.554 272.527,-677.823 272.364,-684.822"/>
+</g>
+<!-- 5,3&#45;&gt;6,1 -->
+<g id="edge95" class="edge"><title>5,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-658.971C236.061,-648.862 244,-640 244,-640 244,-640 262,-514 262,-514 262,-514 271.601,-507.295 283.307,-499.119"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="285.461,-501.884 291.655,-493.288 281.453,-496.145 285.461,-501.884"/>
+</g>
+<!-- 5,4&#45;&gt;5,3 -->
+<g id="edge103" class="edge"><title>5,4&#45;&gt;5,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-694.446C273.158,-694.745 263.225,-694.824 253.602,-694.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-691.175 243.327,-694.438 253.242,-698.173 253.407,-691.175"/>
+</g>
+<!-- 5,4&#45;&gt;6,2 -->
+<g id="edge101" class="edge"><title>5,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M353.779,-660.914C365.347,-650.026 376,-640 376,-640 376,-640 408.743,-563.749 430.371,-513.382"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="433.673,-514.563 434.403,-503.993 427.241,-511.801 433.673,-514.563"/>
+</g>
+<!-- 4,1 -->
+<g id="node31" class="node"><title>4,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">4,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="40" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="43" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 4,3 -->
+<g id="node32" class="node"><title>4,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">4,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="187.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 4,1&#45;&gt;4,3 -->
+<g id="edge29" class="edge"><title>4,1&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 4,3&#45;&gt;4,1 -->
+<g id="edge35" class="edge"><title>4,3&#45;&gt;4,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 4,4 -->
+<g id="node33" class="node"><title>4,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">4,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="307.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="311" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 4,3&#45;&gt;4,4 -->
+<g id="edge33" class="edge"><title>4,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 4,3&#45;&gt;6,1 -->
+<g id="edge31" class="edge"><title>4,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M238.738,-278.971C252.156,-285.36 264,-291 264,-291 264,-291 274,-412 274,-412 274,-412 282.58,-421.757 292.701,-433.268"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="290.268,-435.801 299.5,-441 295.525,-431.179 290.268,-435.801"/>
+</g>
+<!-- 4,4&#45;&gt;4,3 -->
+<g id="edge39" class="edge"><title>4,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 4,4&#45;&gt;6,2 -->
+<g id="edge37" class="edge"><title>4,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M351.718,-289.414C368.888,-307.675 388,-328 388,-328 388,-328 412.394,-384.787 430.33,-426.538"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427.226,-428.181 434.389,-435.987 433.658,-425.418 427.226,-428.181"/>
+</g>
+<!-- 6,1&#45;&gt;1,3 -->
+<g id="edge45" class="edge"><title>6,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M286.368,-453.534C274.262,-448.374 264,-444 264,-444 264,-444 262,-444 262,-444 262,-444 236.975,-504.716 218.982,-548.371"/>
+<polygon fill="#218559" stroke="#218559" points="215.723,-547.095 215.148,-557.674 222.195,-549.762 215.723,-547.095"/>
+</g>
+<!-- 6,1&#45;&gt;3,3 -->
+<g id="edge47" class="edge"><title>6,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M299.5,-441C286.75,-426.5 274,-412 274,-412 274,-412 264,-394 264,-394 264,-394 257.057,-390.694 247.781,-386.277"/>
+<polygon fill="#218559" stroke="#218559" points="249.272,-383.11 238.738,-381.971 246.262,-389.43 249.272,-383.11"/>
+</g>
+<!-- 6,1&#45;&gt;2,3 -->
+<g id="edge43" class="edge"><title>6,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M303.371,-501.383C289.471,-521.551 274,-544 274,-544 274,-544 264,-629 264,-629 264,-629 244,-736 244,-736 244,-736 239.718,-740.779 233.857,-747.322"/>
+<polygon fill="#218559" stroke="#218559" points="231.071,-745.187 227.005,-754.971 236.285,-749.858 231.071,-745.187"/>
+</g>
+<!-- 6,1&#45;&gt;5,3 -->
+<g id="edge51" class="edge"><title>6,1&#45;&gt;5,3</title>
+<path fill="none" stroke="#218559" d="M293.131,-494.787C277.505,-506.941 262,-519 262,-519 262,-519 244,-640 244,-640 244,-640 239.718,-644.779 233.857,-651.322"/>
+<polygon fill="#218559" stroke="#218559" points="231.071,-649.187 227.005,-658.971 236.285,-653.858 231.071,-649.187"/>
+</g>
+<!-- 6,1&#45;&gt;4,3 -->
+<g id="edge49" class="edge"><title>6,1&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M299.5,-441C286.75,-426.5 274,-412 274,-412 274,-412 264,-316 264,-316 264,-316 252.076,-305.59 238.602,-293.828"/>
+<polygon fill="#218559" stroke="#218559" points="240.859,-291.151 231.024,-287.211 236.255,-296.425 240.859,-291.151"/>
+</g>
+<!-- 6,1&#45;&gt;6,2 -->
+<g id="edge41" class="edge"><title>6,1&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-463.562C376.601,-463.258 386.531,-463.176 396.159,-463.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-466.822 406.443,-463.554 396.527,-459.823 396.364,-466.822"/>
+</g>
+<!-- 6,2&#45;&gt;1,4 -->
+<g id="edge59" class="edge"><title>6,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M423.484,-499.281C406.768,-518.463 388,-540 388,-540 388,-540 376.647,-549.37 363.581,-560.156"/>
+<polygon fill="#218559" stroke="#218559" points="361.246,-557.544 355.762,-566.609 365.702,-562.943 361.246,-557.544"/>
+</g>
+<!-- 6,2&#45;&gt;3,4 -->
+<g id="edge57" class="edge"><title>6,2&#45;&gt;3,4</title>
+<path fill="none" stroke="#218559" d="M418.55,-443.97C401.867,-429.709 381.029,-411.896 363.258,-396.704"/>
+<polygon fill="#218559" stroke="#218559" points="365.209,-393.768 355.334,-389.931 360.661,-399.089 365.209,-393.768"/>
+</g>
+<!-- 6,2&#45;&gt;2,4 -->
+<g id="edge55" class="edge"><title>6,2&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M440.065,-505.448C423.121,-572.666 388,-712 388,-712 388,-712 376,-736 376,-736 376,-736 369.498,-742.119 361.137,-749.988"/>
+<polygon fill="#218559" stroke="#218559" points="358.662,-747.511 353.779,-756.914 363.46,-752.609 358.662,-747.511"/>
+</g>
+<!-- 6,2&#45;&gt;5,4 -->
+<g id="edge63" class="edge"><title>6,2&#45;&gt;5,4</title>
+<path fill="none" stroke="#218559" d="M436.802,-504.593C419.001,-555.079 388,-643 388,-643 388,-643 378.242,-649.97 366.407,-658.423"/>
+<polygon fill="#218559" stroke="#218559" points="364.079,-655.785 357.976,-664.446 368.148,-661.481 364.079,-655.785"/>
+</g>
+<!-- 6,2&#45;&gt;4,4 -->
+<g id="edge61" class="edge"><title>6,2&#45;&gt;4,4</title>
+<path fill="none" stroke="#218559" d="M432.98,-436.204C411.491,-390.872 376,-316 376,-316 376,-316 367.973,-307.343 358.288,-296.899"/>
+<polygon fill="#218559" stroke="#218559" points="360.762,-294.42 351.396,-289.467 355.629,-299.179 360.762,-294.42"/>
+</g>
+<!-- 6,2&#45;&gt;6,1 -->
+<g id="edge65" class="edge"><title>6,2&#45;&gt;6,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-476.446C397.158,-476.745 387.225,-476.824 377.602,-476.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-473.175 367.327,-476.438 377.242,-480.173 377.407,-473.175"/>
+</g>
+<!-- 6,3 -->
+<g id="node37" class="node"><title>6,3</title>
+<ellipse fill="none" stroke="black" cx="576" cy="-470" rx="44.7575" ry="36.0624"/>
+<text text-anchor="start" x="556" y="-481.167" font-family="Times Roman,serif" font-size="10.00">6,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="552,-462 552,-476 600,-476 600,-462 552,-462"/>
+<text text-anchor="start" x="554.5" y="-466.667" font-family="Times Roman,serif" font-size="10.00">AAGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="552,-448 552,-462 600,-462 600,-448 552,-448"/>
+<text text-anchor="start" x="559" y="-452.667" font-family="Times Roman,serif" font-size="10.00">CTTCTT</text>
+</g>
+<!-- 6,2&#45;&gt;6,3 -->
+<g id="edge53" class="edge"><title>6,2&#45;&gt;6,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.642,-463.585C501.055,-463.272 511.156,-463.178 520.981,-463.304"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="521.009,-466.805 531.079,-463.514 521.154,-459.807 521.009,-466.805"/>
+</g>
+<!-- 6,3&#45;&gt;6,2 -->
+<g id="edge67" class="edge"><title>6,3&#45;&gt;6,2</title>
+<path fill="none" stroke="#218559" d="M531.079,-476.486C521.562,-476.764 511.435,-476.822 501.66,-476.662"/>
+<polygon fill="#218559" stroke="#218559" points="501.726,-473.162 491.642,-476.415 501.553,-480.16 501.726,-473.162"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/.part-0.crc
new file mode 100644
index 0000000..53d1b45
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/.part-1.crc
new file mode 100644
index 0000000..e76bd36
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/part-0
new file mode 100755
index 0000000..a9f8b84
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/part-1
new file mode 100755
index 0000000..f1c5899
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/five_length1_bubbles/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble.txt
new file mode 100644
index 0000000..51cc418
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble.txt
@@ -0,0 +1,6 @@
+((2,1)	[(2,3)]	[]	[]	[]	GGAATA)	(null)
+((2,3)	[(2,4)]	[(1,4)]	[]	[(2,1)]	AATAC)	(null)
+((2,4)	[]	[(1,3)]	[]	[(2,3)]	ATACG)	(null)
+((1,1)	[(1,3)]	[]	[]	[]	AAACGT)	(null)
+((1,3)	[(1,4)]	[(2,4)]	[]	[(1,1)]	ACGTA)	(null)
+((1,4)	[]	[(2,3)]	[]	[(1,3)]	CGTAT)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble.txt.svg
new file mode 100644
index 0000000..cb1b291
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble.txt.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: fr_bubble_txt Pages: 1 -->
+<svg width="392pt" height="428pt"
+ viewBox="0.00 0.00 392.00 428.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 424)">
+<title>fr_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-424 389,-424 389,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="8,-324 8,-412 376,-412 376,-324 8,-324"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="39.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AAACGT</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="41.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ACGTTT</text>
+</g>
+<!-- 1,3 -->
+<g id="node16" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="186" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+</g>
+<!-- 1,1&#45;&gt;1,3 -->
+<g id="edge25" class="edge"><title>1,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 1,3&#45;&gt;1,1 -->
+<g id="edge31" class="edge"><title>1,3&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,4 -->
+<g id="node17" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="310.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="309.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge27" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 2,4 -->
+<g id="node21" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-360 303,-374 348,-374 348,-360 303,-360"/>
+<text text-anchor="start" x="309.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-346 303,-360 348,-360 348,-346 303,-346"/>
+<text text-anchor="start" x="310.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 1,3&#45;&gt;2,4 -->
+<g id="edge29" class="edge"><title>1,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#ebb035" d="M231.017,-286.902C247.799,-301.383 268.887,-319.58 286.832,-335.065"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="284.972,-338.083 294.83,-341.966 289.545,-332.783 284.972,-338.083"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge35" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 2,3 -->
+<g id="node20" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-360 179,-374 224,-374 224,-360 179,-360"/>
+<text text-anchor="start" x="186" y="-364.667" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-346 179,-360 224,-360 224,-346 179,-346"/>
+<text text-anchor="start" x="187.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 1,4&#45;&gt;2,3 -->
+<g id="edge33" class="edge"><title>1,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#ebb035" d="M299.131,-289.838C282.505,-308.372 264,-329 264,-329 264,-329 255.356,-334.351 244.471,-341.089"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="242.477,-338.207 235.817,-346.447 246.162,-344.159 242.477,-338.207"/>
+</g>
+<!-- 2,1 -->
+<g id="node19" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-360 37,-374 82,-374 82,-360 37,-360"/>
+<text text-anchor="start" x="39.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">GGAATA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-346 37,-360 82,-360 82,-346 37,-346"/>
+<text text-anchor="start" x="42.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">TATTCC</text>
+</g>
+<!-- 2,1&#45;&gt;2,3 -->
+<g id="edge13" class="edge"><title>2,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-361.755C116.207,-361.208 132.729,-361.105 148.049,-361.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-364.957 158.425,-361.756 148.534,-357.96 148.326,-364.957"/>
+</g>
+<!-- 2,3&#45;&gt;1,4 -->
+<g id="edge17" class="edge"><title>2,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#ebb035" d="M231.017,-342.098C247.799,-327.617 268.887,-309.42 286.832,-293.935"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="289.545,-296.217 294.83,-287.034 284.972,-290.917 289.545,-296.217"/>
+</g>
+<!-- 2,3&#45;&gt;2,1 -->
+<g id="edge19" class="edge"><title>2,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-374.244C143.825,-374.792 127.305,-374.895 111.982,-374.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-371.043 101.605,-374.245 111.497,-378.04 111.704,-371.043"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge15" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-361.562C252.601,-361.258 262.531,-361.176 272.159,-361.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-364.822 282.443,-361.554 272.527,-357.823 272.364,-364.822"/>
+</g>
+<!-- 2,4&#45;&gt;1,3 -->
+<g id="edge21" class="edge"><title>2,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#ebb035" d="M294.83,-341.966C278.021,-327.462 256.93,-309.262 239.004,-293.794"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="240.875,-290.785 231.017,-286.902 236.301,-296.085 240.875,-290.785"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge23" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-374.446C273.158,-374.745 263.225,-374.824 253.602,-374.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-371.175 243.327,-374.438 253.242,-378.173 253.407,-371.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/.part-0.crc
new file mode 100644
index 0000000..d40cb4d
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/.part-1.crc
new file mode 100644
index 0000000..bc50c79
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/part-0
new file mode 100755
index 0000000..f757027
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/part-1
new file mode 100755
index 0000000..96978fb
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt
new file mode 100644
index 0000000..b53f352
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt
@@ -0,0 +1,9 @@
+((2,1)	[(2,2)]	[]	[]	[(1,3)]	CGTAT)	(null)
+((2,2)	[(2,3)]	[]	[]	[(1,4),(2,1)]	GTATT)	(null)
+((2,3)	[]	[]	[]	[(2,2)]	TATTCC)	(null)
+((1,1)	[(1,3)]	[]	[]	[]	AAACGT)	(null)
+((1,3)	[(2,1),(1,4)]	[(3,4)]	[]	[(1,1)]	ACGTA)	(null)
+((1,4)	[(2,2)]	[(3,3)]	[]	[(1,3)]	CGTAT)	(null)
+((3,1)	[(3,3)]	[]	[]	[]	GGAATA)	(null)
+((3,3)	[(3,4)]	[(1,4)]	[]	[(3,1)]	AATAC)	(null)
+((3,4)	[]	[(1,3)]	[]	[(3,3)]	ATACG)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt.svg
new file mode 100644
index 0000000..aaaab66
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt.svg
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: fr_bubble_and_ff_bubble_txt Pages: 1 -->
+<svg width="640pt" height="428pt"
+ viewBox="0.00 0.00 640.00 428.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 424)">
+<title>fr_bubble_and_ff_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-424 637,-424 637,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="8,-324 8,-412 376,-412 376,-324 8,-324"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="274,-121 274,-209 624,-209 624,-121 274,-121"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="39.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AAACGT</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="41.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ACGTTT</text>
+</g>
+<!-- 1,3 -->
+<g id="node16" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="186" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+</g>
+<!-- 1,1&#45;&gt;1,3 -->
+<g id="edge26" class="edge"><title>1,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 1,3&#45;&gt;1,1 -->
+<g id="edge34" class="edge"><title>1,3&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,4 -->
+<g id="node17" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="310.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="309.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge30" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 3,4 -->
+<g id="node21" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-360 303,-374 348,-374 348,-360 303,-360"/>
+<text text-anchor="start" x="309.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-346 303,-360 348,-360 348,-346 303,-346"/>
+<text text-anchor="start" x="310.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 1,3&#45;&gt;3,4 -->
+<g id="edge32" class="edge"><title>1,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#ebb035" d="M231.017,-286.902C247.799,-301.383 268.887,-319.58 286.832,-335.065"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="284.972,-338.083 294.83,-341.966 289.545,-332.783 284.972,-338.083"/>
+</g>
+<!-- 2,1 -->
+<g id="node23" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-157 303,-171 348,-171 348,-157 303,-157"/>
+<text text-anchor="start" x="310.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-143 303,-157 348,-157 348,-143 303,-143"/>
+<text text-anchor="start" x="309.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+</g>
+<!-- 1,3&#45;&gt;2,1 -->
+<g id="edge28" class="edge"><title>1,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#dd1e2f" d="M234.345,-237.712C249.456,-227.157 264,-217 264,-217 264,-217 274.622,-207.945 287.002,-197.392"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="289.518,-199.846 294.857,-190.695 284.977,-194.519 289.518,-199.846"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge40" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 3,3 -->
+<g id="node20" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-360 179,-374 224,-374 224,-360 179,-360"/>
+<text text-anchor="start" x="186" y="-364.667" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-346 179,-360 224,-360 224,-346 179,-346"/>
+<text text-anchor="start" x="187.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 1,4&#45;&gt;3,3 -->
+<g id="edge38" class="edge"><title>1,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#ebb035" d="M294.83,-287.034C278.021,-301.538 256.93,-319.738 239.004,-335.206"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="236.301,-332.915 231.017,-342.098 240.875,-338.215 236.301,-332.915"/>
+</g>
+<!-- 2,2 -->
+<g id="node24" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-157 427,-171 472,-171 472,-157 427,-157"/>
+<text text-anchor="start" x="435.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-143 427,-157 472,-157 472,-143 427,-143"/>
+<text text-anchor="start" x="434" y="-147.667" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+</g>
+<!-- 1,4&#45;&gt;2,2 -->
+<g id="edge36" class="edge"><title>1,4&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M356.611,-236.527C372.521,-224.21 391.976,-209.147 408.924,-196.027"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="411.251,-198.652 417.015,-189.762 406.965,-193.117 411.251,-198.652"/>
+</g>
+<!-- 3,1 -->
+<g id="node19" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-360 37,-374 82,-374 82,-360 37,-360"/>
+<text text-anchor="start" x="39.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">GGAATA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-346 37,-360 82,-360 82,-346 37,-346"/>
+<text text-anchor="start" x="42.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">TATTCC</text>
+</g>
+<!-- 3,1&#45;&gt;3,3 -->
+<g id="edge42" class="edge"><title>3,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-361.755C116.207,-361.208 132.729,-361.105 148.049,-361.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-364.957 158.425,-361.756 148.534,-357.96 148.326,-364.957"/>
+</g>
+<!-- 3,3&#45;&gt;1,4 -->
+<g id="edge46" class="edge"><title>3,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#ebb035" d="M229.714,-341.169C245.535,-326.385 262,-311 262,-311 262,-311 272.801,-302.428 285.459,-292.382"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="287.843,-294.958 293.5,-286 283.491,-289.475 287.843,-294.958"/>
+</g>
+<!-- 3,3&#45;&gt;3,1 -->
+<g id="edge48" class="edge"><title>3,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-374.244C143.825,-374.792 127.305,-374.895 111.982,-374.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-371.043 101.605,-374.245 111.497,-378.04 111.704,-371.043"/>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge44" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-361.562C252.601,-361.258 262.531,-361.176 272.159,-361.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-364.822 282.443,-361.554 272.527,-357.823 272.364,-364.822"/>
+</g>
+<!-- 3,4&#45;&gt;1,3 -->
+<g id="edge50" class="edge"><title>3,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#ebb035" d="M294.83,-341.966C278.021,-327.462 256.93,-309.262 239.004,-293.794"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="240.875,-290.785 231.017,-286.902 236.301,-296.085 240.875,-290.785"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge52" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-374.446C273.158,-374.745 263.225,-374.824 253.602,-374.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-371.175 243.327,-374.438 253.242,-378.173 253.407,-371.175"/>
+</g>
+<!-- 2,1&#45;&gt;1,3 -->
+<g id="edge16" class="edge"><title>2,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M293.015,-189.762C277.051,-202.122 257.587,-217.19 240.68,-230.28"/>
+<polygon fill="#218559" stroke="#218559" points="238.376,-227.637 232.611,-236.527 242.661,-233.173 238.376,-227.637"/>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge14" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-158.562C376.601,-158.258 386.531,-158.176 396.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-161.822 406.443,-158.554 396.527,-154.823 396.364,-161.822"/>
+</g>
+<!-- 2,2&#45;&gt;1,4 -->
+<g id="edge20" class="edge"><title>2,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M420.286,-191.831C404.465,-206.615 388,-222 388,-222 388,-222 379.356,-227.351 368.471,-234.089"/>
+<polygon fill="#218559" stroke="#218559" points="366.477,-231.207 359.817,-239.447 370.162,-237.159 366.477,-231.207"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge22" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-171.446C397.158,-171.745 387.225,-171.824 377.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-168.175 367.327,-171.438 377.242,-175.173 377.407,-168.175"/>
+</g>
+<!-- 2,3 -->
+<g id="node25" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-157 551,-171 596,-171 596,-157 551,-157"/>
+<text text-anchor="start" x="556.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">TATTCC</text>
+<polygon fill="#218559" stroke="#218559" points="551,-143 551,-157 596,-157 596,-143 551,-143"/>
+<text text-anchor="start" x="553.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">GGAATA</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge18" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-158.562C500.601,-158.258 510.531,-158.176 520.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-161.822 530.443,-158.554 520.527,-154.823 520.364,-161.822"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge24" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-171.446C521.158,-171.745 511.225,-171.824 501.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-168.175 491.327,-171.438 501.242,-175.173 501.407,-168.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-0.crc
new file mode 100644
index 0000000..528de91
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-1.crc
new file mode 100644
index 0000000..247ccc7
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-0
new file mode 100755
index 0000000..795d0c7
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-1
new file mode 100755
index 0000000..8a0aa72
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble.txt
new file mode 100644
index 0000000..8b0bfdc
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble.txt
@@ -0,0 +1,6 @@
+((2,1)	[(2,2)]	[]	[(1,2)]	[]	ACCGT)	(null)
+((2,2)	[(2,3)]	[]	[(1,1)]	[(2,1)]	CCGTG)	(null)
+((2,3)	[]	[]	[]	[(2,2)]	CGTGGT)	(null)
+((1,1)	[(1,2)]	[]	[(2,2)]	[]	ACGGT)	(null)
+((1,2)	[(1,3)]	[]	[(2,1)]	[(1,1)]	CGGTG)	(null)
+((1,3)	[]	[]	[]	[(1,2)]	GGTGTA)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble.txt.svg
new file mode 100644
index 0000000..80a9d65
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble.txt.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: rf_bubble_txt Pages: 1 -->
+<svg width="394pt" height="428pt"
+ viewBox="0.00 0.00 394.00 428.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 424)">
+<title>rf_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-424 391,-424 391,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-324 8,-412 377,-412 377,-324 8,-324"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 378,-305 378,-217 8,-217"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-360 37,-374 82,-374 82,-360 37,-360"/>
+<text text-anchor="start" x="42.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">ACGGT</text>
+<polygon fill="#218559" stroke="#218559" points="37,-346 37,-360 82,-360 82,-346 37,-346"/>
+<text text-anchor="start" x="43" y="-350.667" font-family="Times Roman,serif" font-size="10.00">ACCGT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-360 179,-374 224,-374 224,-360 179,-360"/>
+<text text-anchor="start" x="184" y="-364.667" font-family="Times Roman,serif" font-size="10.00">CGGTG</text>
+<polygon fill="#218559" stroke="#218559" points="179,-346 179,-360 224,-360 224,-346 179,-346"/>
+<text text-anchor="start" x="184" y="-350.667" font-family="Times Roman,serif" font-size="10.00">CACCG</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge25" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-361.755C116.207,-361.208 132.729,-361.105 148.049,-361.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-364.957 158.425,-361.756 148.534,-357.96 148.326,-364.957"/>
+</g>
+<!-- 2,2 -->
+<g id="node20" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="184.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CCGTG</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="183.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CACGG</text>
+</g>
+<!-- 1,1&#45;&gt;2,2 -->
+<g id="edge27" class="edge"><title>1,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#06a2cb" d="M96.6544,-349.87C117.807,-339.685 140,-329 140,-329 140,-329 153.666,-313.765 168.062,-297.718"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="171.058,-299.619 175.131,-289.838 165.848,-294.945 171.058,-299.619"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge33" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-374.244C143.825,-374.792 127.305,-374.895 111.982,-374.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-371.043 101.605,-374.245 111.497,-378.04 111.704,-371.043"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="326" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="306.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="304,-360 304,-374 349,-374 349,-360 304,-360"/>
+<text text-anchor="start" x="307" y="-364.667" font-family="Times Roman,serif" font-size="10.00">GGTGTA</text>
+<polygon fill="#218559" stroke="#218559" points="304,-346 304,-360 349,-360 349,-346 304,-346"/>
+<text text-anchor="start" x="307.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">TACACC</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge29" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.319,-361.573C252.886,-361.256 263.16,-361.173 273.102,-361.321"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="273.22,-364.825 283.299,-361.561 273.384,-357.827 273.22,-364.825"/>
+</g>
+<!-- 2,1 -->
+<g id="node19" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="43" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ACCGT</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="42.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ACGGT</text>
+</g>
+<!-- 1,2&#45;&gt;2,1 -->
+<g id="edge31" class="edge"><title>1,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#06a2cb" d="M167.587,-345.312C145.274,-330.161 120,-313 120,-313 120,-313 109.378,-303.945 96.9983,-293.392"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="99.0233,-290.519 89.1426,-286.695 94.4822,-295.846 99.0233,-290.519"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge35" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M283.299,-374.439C273.713,-374.75 263.434,-374.828 253.502,-374.673"/>
+<polygon fill="#218559" stroke="#218559" points="253.401,-371.169 243.319,-374.427 253.232,-378.167 253.401,-371.169"/>
+</g>
+<!-- 2,1&#45;&gt;1,2 -->
+<g id="edge15" class="edge"><title>2,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#06a2cb" d="M92.4134,-283.688C114.726,-298.839 140,-316 140,-316 140,-316 150.622,-325.055 163.002,-335.608"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="160.977,-338.481 170.857,-342.305 165.518,-333.154 160.977,-338.481"/>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge13" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 2,2&#45;&gt;1,1 -->
+<g id="edge19" class="edge"><title>2,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#06a2cb" d="M168.906,-285.184C148.325,-300.692 121.435,-320.954 99.4042,-337.555"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="97.1022,-334.907 91.222,-343.72 101.315,-340.497 97.1022,-334.907"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge21" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 2,3 -->
+<g id="node21" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="326" cy="-261" rx="43.8406" ry="36.0624"/>
+<text text-anchor="start" x="306" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 349,-267 349,-253 303,-253"/>
+<text text-anchor="start" x="306" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CGTGGT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 349,-253 349,-239 303,-239"/>
+<text text-anchor="start" x="305.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ACCACG</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge17" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.319,-254.573C252.676,-254.263 262.709,-254.176 272.446,-254.312"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.37,-257.811 282.446,-254.534 272.526,-250.813 272.37,-257.811"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge23" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M282.446,-267.466C273.13,-267.753 263.195,-267.823 253.581,-267.674"/>
+<polygon fill="#218559" stroke="#218559" points="253.401,-264.169 243.319,-267.427 253.232,-271.167 253.401,-264.169"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/.part-0.crc
new file mode 100644
index 0000000..e87ee4f
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/.part-1.crc
new file mode 100644
index 0000000..2c9bb22
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/part-0
new file mode 100755
index 0000000..4388d34
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/part-1
new file mode 100755
index 0000000..fbd0d87
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/rf_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble.txt
new file mode 100644
index 0000000..14cf2e1
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble.txt
@@ -0,0 +1,6 @@
+((2,1)	[(2,2)]	[]	[]	[(1,3)]	AGAAG)	(null)
+((2,2)	[(2,3)]	[]	[]	[(1,4),(2,1)]	GAAGC)	(null)
+((2,3)	[]	[]	[]	[(2,2)]	AAGCCC)	(null)
+((1,1)	[(1,3)]	[]	[]	[]	AATAGA)	(null)
+((1,3)	[(2,1),(1,4)]	[]	[]	[(1,1)]	TAGAA)	(null)
+((1,4)	[(2,2)]	[]	[]	[(1,3)]	AGAAG)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble.txt.svg
new file mode 100644
index 0000000..550660b
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble.txt.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: small_bubble_txt Pages: 1 -->
+<svg width="644pt" height="321pt"
+ viewBox="0.00 0.00 644.00 321.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 317)">
+<title>small_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-317 641,-317 641,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="274,-121 274,-209 628,-209 628,-121 274,-121"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="40" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="43" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 1,3 -->
+<g id="node16" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="187.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 1,1&#45;&gt;1,3 -->
+<g id="edge25" class="edge"><title>1,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 1,3&#45;&gt;1,1 -->
+<g id="edge31" class="edge"><title>1,3&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,4 -->
+<g id="node17" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="307.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="311" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge29" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 2,1 -->
+<g id="node19" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-157 303,-171 348,-171 348,-157 303,-157"/>
+<text text-anchor="start" x="307.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-143 303,-157 348,-157 348,-143 303,-143"/>
+<text text-anchor="start" x="311" y="-147.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;2,1 -->
+<g id="edge27" class="edge"><title>1,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#dd1e2f" d="M234.345,-237.712C249.456,-227.157 264,-217 264,-217 264,-217 274.622,-207.945 287.002,-197.392"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="289.518,-199.846 294.857,-190.695 284.977,-194.519 289.518,-199.846"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge35" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 2,2 -->
+<g id="node20" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-157 427,-171 472,-171 472,-157 427,-157"/>
+<text text-anchor="start" x="431.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">GAAGC</text>
+<polygon fill="#218559" stroke="#218559" points="427,-143 427,-157 472,-157 472,-143 427,-143"/>
+<text text-anchor="start" x="434" y="-147.667" font-family="Times Roman,serif" font-size="10.00">GCTTC</text>
+</g>
+<!-- 1,4&#45;&gt;2,2 -->
+<g id="edge33" class="edge"><title>1,4&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M361.282,-241.419C375.287,-233.861 388,-227 388,-227 388,-227 400.484,-214.311 414.157,-200.414"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="416.837,-202.681 421.356,-193.098 411.847,-197.771 416.837,-202.681"/>
+</g>
+<!-- 2,1&#45;&gt;1,3 -->
+<g id="edge15" class="edge"><title>2,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M293.015,-189.762C277.051,-202.122 257.587,-217.19 240.68,-230.28"/>
+<polygon fill="#218559" stroke="#218559" points="238.376,-227.637 232.611,-236.527 242.661,-233.173 238.376,-227.637"/>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge13" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-158.562C376.601,-158.258 386.531,-158.176 396.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-161.822 406.443,-158.554 396.527,-154.823 396.364,-161.822"/>
+</g>
+<!-- 2,2&#45;&gt;1,4 -->
+<g id="edge19" class="edge"><title>2,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M417.015,-189.762C401.051,-202.122 381.587,-217.19 364.68,-230.28"/>
+<polygon fill="#218559" stroke="#218559" points="362.376,-227.637 356.611,-236.527 366.661,-233.173 362.376,-227.637"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge21" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-171.446C397.158,-171.745 387.225,-171.824 377.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-168.175 367.327,-171.438 377.242,-175.173 377.407,-168.175"/>
+</g>
+<!-- 2,3 -->
+<g id="node21" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="575" cy="-165" rx="44.0472" ry="36.0624"/>
+<text text-anchor="start" x="555.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="552,-157 552,-171 599,-171 599,-157 552,-157"/>
+<text text-anchor="start" x="554.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">AAGCCC</text>
+<polygon fill="#218559" stroke="#218559" points="552,-143 552,-157 599,-157 599,-143 552,-143"/>
+<text text-anchor="start" x="555.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">GGGCTT</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge17" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.658,-158.573C501.09,-158.263 511.203,-158.176 521.018,-158.312"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="521.023,-161.813 531.097,-158.534 521.177,-154.814 521.023,-161.813"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge23" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M531.097,-171.466C521.607,-171.756 511.479,-171.824 501.692,-171.669"/>
+<polygon fill="#218559" stroke="#218559" points="501.739,-168.169 491.658,-171.427 501.571,-175.167 501.739,-168.169"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/.part-0.crc
new file mode 100644
index 0000000..fc426bc
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/.part-1.crc
new file mode 100644
index 0000000..611cf9d
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/part-0
new file mode 100755
index 0000000..de5dd64
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/part-1
new file mode 100755
index 0000000..d84c1d2
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/small_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble.txt
new file mode 100644
index 0000000..5fde720
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble.txt
@@ -0,0 +1,9 @@
+((2,1)	[(3,1),(2,2)]	[]	[]	[(1,1)]	ATAGA)	(null)
+((2,2)	[(2,3)]	[]	[]	[(2,1)]	TAGAC)	(null)
+((2,3)	[(2,4)]	[]	[]	[(2,2)]	AGACT)	(null)
+((2,4)	[(3,4)]	[]	[]	[(2,3)]	GACTA)	(null)
+((1,1)	[(2,1),(1,2)]	[]	[]	[]	AATAG)	(null)
+((1,2)	[]	[]	[]	[(1,1)]	ATAGAAG)	(null)
+((3,1)	[(3,3)]	[]	[]	[(2,1)]	TAGACT)	(null)
+((3,3)	[(3,4)]	[]	[]	[(3,1)]	GACTA)	(null)
+((3,4)	[]	[]	[]	[(2,4),(3,3)]	ACTAC)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble.txt.svg
new file mode 100644
index 0000000..1ae4c53
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble.txt.svg
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: tip_and_bubble_txt Pages: 1 -->
+<svg width="650pt" height="417pt"
+ viewBox="0.00 0.00 650.00 417.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 413)">
+<title>tip_and_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-413 647,-413 647,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 216,-209 216,-8 49,-8"/>
+<text text-anchor="middle" x="132.5" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-313 8,-401 262,-401 262,-313 8,-313"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="284,-109 284,-197 634,-197 634,-109 284,-109"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="155,-217 155,-305 634,-305 634,-217 155,-217"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="206" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.078,-157C75.5476,-157 161.628,-157 193.842,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="194.198,-160.5 204.198,-157 194.198,-153.5 194.198,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="206" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.078,-116C75.5476,-116 161.628,-116 193.842,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="194.198,-119.5 204.198,-116 194.198,-112.5 194.198,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="206" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.078,-75C75.5476,-75 161.628,-75 193.842,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="194.198,-78.5001 204.198,-75 194.198,-71.5001 194.198,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="206" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.078,-34C75.5476,-34 161.628,-34 193.842,-34"/>
+<polygon fill="#218559" stroke="#218559" points="194.198,-37.5001 204.198,-34 194.198,-30.5001 194.198,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-349 37,-363 82,-363 82,-349 37,-349"/>
+<text text-anchor="start" x="43.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">AATAG</text>
+<polygon fill="#218559" stroke="#218559" points="37,-335 37,-349 82,-349 82,-335 37,-335"/>
+<text text-anchor="start" x="45.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">CTATT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="206" cy="-357" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="186.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="181,-349 181,-363 232,-363 232,-349 181,-349"/>
+<text text-anchor="start" x="183.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">ATAGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="181,-335 181,-349 232,-349 232,-335 181,-335"/>
+<text text-anchor="start" x="187" y="-339.667" font-family="Times Roman,serif" font-size="10.00">CTTCTAT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge34" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.518,-350.814C116.334,-350.242 133.206,-350.105 149.005,-350.404"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="149.114,-353.907 159.199,-350.663 149.292,-346.91 149.114,-353.907"/>
+</g>
+<!-- 2,1 -->
+<g id="node22" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="206" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="186.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="184,-253 184,-267 229,-267 229,-253 184,-253"/>
+<text text-anchor="start" x="190.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="184,-239 184,-253 229,-253 229,-239 184,-239"/>
+<text text-anchor="start" x="192.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TCTAT</text>
+</g>
+<!-- 1,1&#45;&gt;2,1 -->
+<g id="edge32" class="edge"><title>1,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#dd1e2f" d="M95.2356,-337.316C116.802,-325.601 140,-313 140,-313 140,-313 152.492,-303.158 166.607,-292.037"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="168.857,-294.72 174.546,-285.782 164.525,-289.221 168.857,-294.72"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge36" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M159.199,-363.337C144.021,-363.827 127.084,-363.881 111.518,-363.499"/>
+<polygon fill="#218559" stroke="#218559" points="111.623,-360.001 101.518,-363.186 111.404,-366.998 111.623,-360.001"/>
+</g>
+<!-- 3,1 -->
+<g id="node18" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="335" cy="-153" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="315.5" y="-164.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="313,-145 313,-159 358,-159 358,-145 313,-145"/>
+<text text-anchor="start" x="316.5" y="-149.667" font-family="Times Roman,serif" font-size="10.00">TAGACT</text>
+<polygon fill="#218559" stroke="#218559" points="313,-131 313,-145 358,-145 358,-131 313,-131"/>
+<text text-anchor="start" x="317" y="-135.667" font-family="Times Roman,serif" font-size="10.00">AGTCTA</text>
+</g>
+<!-- 3,3 -->
+<g id="node19" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="459" cy="-153" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="439.5" y="-164.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="437,-145 437,-159 482,-159 482,-145 437,-145"/>
+<text text-anchor="start" x="443" y="-149.667" font-family="Times Roman,serif" font-size="10.00">GACTA</text>
+<polygon fill="#218559" stroke="#218559" points="437,-131 437,-145 482,-145 482,-131 437,-131"/>
+<text text-anchor="start" x="444.5" y="-135.667" font-family="Times Roman,serif" font-size="10.00">TAGTC</text>
+</g>
+<!-- 3,1&#45;&gt;3,3 -->
+<g id="edge38" class="edge"><title>3,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M377.327,-146.562C386.601,-146.258 396.531,-146.176 406.159,-146.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="406.364,-149.822 416.443,-146.554 406.527,-142.823 406.364,-149.822"/>
+</g>
+<!-- 3,1&#45;&gt;2,1 -->
+<g id="edge40" class="edge"><title>3,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M307.356,-180.644C291.216,-196.784 274,-214 274,-214 274,-214 261.746,-222.469 247.643,-232.218"/>
+<polygon fill="#218559" stroke="#218559" points="245.439,-229.486 239.203,-238.051 249.42,-235.244 245.439,-229.486"/>
+</g>
+<!-- 3,3&#45;&gt;3,1 -->
+<g id="edge44" class="edge"><title>3,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M416.443,-159.446C407.158,-159.745 397.225,-159.824 387.602,-159.681"/>
+<polygon fill="#218559" stroke="#218559" points="387.407,-156.175 377.327,-159.438 387.242,-163.173 387.407,-156.175"/>
+</g>
+<!-- 3,4 -->
+<g id="node20" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="583" cy="-153" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="563.5" y="-164.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="561,-145 561,-159 606,-159 606,-145 561,-145"/>
+<text text-anchor="start" x="567.5" y="-149.667" font-family="Times Roman,serif" font-size="10.00">ACTAC</text>
+<polygon fill="#218559" stroke="#218559" points="561,-131 561,-145 606,-145 606,-131 561,-131"/>
+<text text-anchor="start" x="568" y="-135.667" font-family="Times Roman,serif" font-size="10.00">GTAGT</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge42" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M501.327,-146.562C510.601,-146.258 520.531,-146.176 530.159,-146.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="530.364,-149.822 540.443,-146.554 530.527,-142.823 530.364,-149.822"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge48" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M540.443,-159.446C531.158,-159.745 521.225,-159.824 511.602,-159.681"/>
+<polygon fill="#218559" stroke="#218559" points="511.407,-156.175 501.327,-159.438 511.242,-163.173 511.407,-156.175"/>
+</g>
+<!-- 2,4 -->
+<g id="node25" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="583" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="563.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="561,-253 561,-267 606,-267 606,-253 561,-253"/>
+<text text-anchor="start" x="567" y="-257.667" font-family="Times Roman,serif" font-size="10.00">GACTA</text>
+<polygon fill="#218559" stroke="#218559" points="561,-239 561,-253 606,-253 606,-239 561,-239"/>
+<text text-anchor="start" x="568.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TAGTC</text>
+</g>
+<!-- 3,4&#45;&gt;2,4 -->
+<g id="edge46" class="edge"><title>3,4&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M583,-188.897C583,-188.965 583,-189 583,-189 583,-189 583,-204.137 583,-214.808"/>
+<polygon fill="#218559" stroke="#218559" points="579.5,-215.103 583,-225.103 586.5,-215.103 579.5,-215.103"/>
+</g>
+<!-- 2,1&#45;&gt;1,1 -->
+<g id="edge18" class="edge"><title>2,1&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M171.021,-282.15C147.211,-296.547 120,-313 120,-313 120,-313 111.029,-319.471 99.9682,-327.449"/>
+<polygon fill="#218559" stroke="#218559" points="97.7057,-324.766 91.643,-333.454 101.801,-330.443 97.7057,-324.766"/>
+</g>
+<!-- 2,1&#45;&gt;3,1 -->
+<g id="edge14" class="edge"><title>2,1&#45;&gt;3,1</title>
+<path fill="none" stroke="#dd1e2f" d="M236.571,-235.406C254.514,-220.384 277.353,-201.262 296.514,-185.221"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="298.78,-187.888 304.201,-178.785 294.287,-182.521 298.78,-187.888"/>
+</g>
+<!-- 2,2 -->
+<g id="node23" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="335" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="315.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="313,-253 313,-267 358,-267 358,-253 313,-253"/>
+<text text-anchor="start" x="319.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TAGAC</text>
+<polygon fill="#218559" stroke="#218559" points="313,-239 313,-253 358,-253 358,-239 313,-239"/>
+<text text-anchor="start" x="320.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">GTCTA</text>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge16" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M248.597,-254.609C259.385,-254.242 271.101,-254.157 282.322,-254.352"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="282.362,-257.854 292.448,-254.61 282.54,-250.856 282.362,-257.854"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge22" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M292.448,-267.39C281.662,-267.757 269.947,-267.843 258.724,-267.649"/>
+<polygon fill="#218559" stroke="#218559" points="258.683,-264.147 248.597,-267.391 258.505,-271.145 258.683,-264.147"/>
+</g>
+<!-- 2,3 -->
+<g id="node24" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="459" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="439.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="437,-253 437,-267 482,-267 482,-253 437,-253"/>
+<text text-anchor="start" x="443" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AGACT</text>
+<polygon fill="#218559" stroke="#218559" points="437,-239 437,-253 482,-253 482,-239 437,-239"/>
+<text text-anchor="start" x="444" y="-243.667" font-family="Times Roman,serif" font-size="10.00">AGTCT</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge20" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M377.327,-254.562C386.601,-254.258 396.531,-254.176 406.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="406.364,-257.822 416.443,-254.554 406.527,-250.823 406.364,-257.822"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge26" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M416.443,-267.446C407.158,-267.745 397.225,-267.824 387.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="387.407,-264.175 377.327,-267.438 387.242,-271.173 387.407,-264.175"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge24" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M501.327,-254.562C510.601,-254.258 520.531,-254.176 530.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="530.364,-257.822 540.443,-254.554 530.527,-250.823 530.364,-257.822"/>
+</g>
+<!-- 2,4&#45;&gt;3,4 -->
+<g id="edge28" class="edge"><title>2,4&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M583,-225.103C583,-225.035 583,-225 583,-225 583,-225 583,-209.863 583,-199.192"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="586.5,-198.897 583,-188.897 579.5,-198.897 586.5,-198.897"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge30" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M540.443,-267.446C531.158,-267.745 521.225,-267.824 511.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="511.407,-264.175 501.327,-267.438 511.242,-271.173 511.407,-264.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/.part-0.crc
new file mode 100644
index 0000000..3b5cec2
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/.part-1.crc
new file mode 100644
index 0000000..6621cf4
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/part-0
new file mode 100755
index 0000000..a6a5e83
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/part-1
new file mode 100755
index 0000000..a65fe7e
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/bubblemerge/tip_and_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread.txt
new file mode 100644
index 0000000..7a3e64f
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread.txt
@@ -0,0 +1,4 @@
+((1,1)	[(1,2)]	[]	[]	[]	AATAG)	(null)
+((1,2)	[(1,3)]	[]	[]	[(1,1)]	ATAGA)	(null)
+((1,3)	[(1,4)]	[]	[]	[(1,2)]	TAGAA)	(null)
+((1,4)	[]	[]	[]	[(1,3)]	AGAAG)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread.txt.svg
new file mode 100644
index 0000000..efaf9e1
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread.txt.svg
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: singleread_txt Pages: 1 -->
+<svg width="516pt" height="321pt"
+ viewBox="0.00 0.00 516.00 321.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 317)">
+<title>singleread_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-317 513,-317 513,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 500,-305 500,-217 8,-217"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="43.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AATAG</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="45.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CTATT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="187.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TCTAT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge12" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge16" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="309" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="311.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge14" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge20" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 1,4 -->
+<g id="node18" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-253 427,-267 472,-267 472,-253 427,-253"/>
+<text text-anchor="start" x="431.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="427,-239 427,-253 472,-253 472,-239 427,-239"/>
+<text text-anchor="start" x="435" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge18" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-254.562C376.601,-254.258 386.531,-254.176 396.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-257.822 406.443,-254.554 396.527,-250.823 396.364,-257.822"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge22" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M406.443,-267.446C397.158,-267.745 387.225,-267.824 377.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-264.175 367.327,-267.438 377.242,-271.173 377.407,-264.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/.part-0.crc
new file mode 100644
index 0000000..b972cba
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/.part-1.crc
new file mode 100644
index 0000000..23505c8
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/part-0
new file mode 100755
index 0000000..39d79bc
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/part-1
new file mode 100755
index 0000000..e49fcdd
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/pathmerge/singleread/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1.txt
new file mode 100644
index 0000000..bdeb586
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1.txt
@@ -0,0 +1,147 @@
+((2,1)	[(2,2)]	[]	[]	[]	CCTCG)	(null)
+((2,2)	[(2,3)]	[(1,4)]	[]	[(2,1)]	CTCGC)	(null)
+((2,3)	[(2,4)]	[]	[]	[(2,2)]	TCGCA)	(null)
+((2,4)	[]	[(1,2)]	[]	[(2,3)]	CGCAC)	(null)
+((4,1)	[(4,2)]	[]	[]	[]	GAGGG)	(null)
+((4,2)	[(4,3)]	[(5,4)]	[]	[(4,1)]	AGGGT)	(null)
+((4,3)	[(4,4)]	[]	[]	[(3,4),(4,2)]	GGGTT)	(null)
+((4,4)	[]	[(5,2)]	[]	[(4,3)]	GGTTG)	(null)
+((6,1)	[(6,2)]	[]	[(5,3)]	[]	GTTGC)	(null)
+((6,2)	[(6,3)]	[(7,4)]	[]	[(6,1)]	TTGCT)	(null)
+((6,3)	[(6,4)]	[]	[(5,1)]	[(6,2)]	TGCTG)	(null)
+((6,4)	[]	[(7,2)]	[]	[(6,3)]	GCTGA)	(null)
+((8,1)	[(24,1),(8,2)]	[]	[(7,3)]	[]	CTGAA)	(null)
+((8,2)	[(8,3)]	[(9,4)]	[]	[(8,1)]	TGAAA)	(null)
+((8,3)	[(8,4)]	[]	[(7,1)]	[(19,4),(8,2)]	GAAAT)	(null)
+((8,4)	[]	[(9,2)]	[]	[(8,3)]	AAATC)	(null)
+((10,1)	[(10,2)]	[]	[]	[(11,2)]	GGCAG)	(null)
+((10,2)	[(9,1),(10,3)]	[]	[]	[(10,1)]	GCAGA)	(null)
+((10,3)	[(10,4)]	[]	[]	[(11,4),(10,2)]	CAGAT)	(null)
+((10,4)	[(9,3)]	[]	[]	[(10,3)]	AGATT)	(null)
+((12,1)	[(12,2)]	[]	[]	[(13,2)]	CTCTG)	(null)
+((12,2)	[(11,1),(12,3)]	[]	[]	[(12,1)]	TCTGG)	(null)
+((12,3)	[(12,4)]	[]	[]	[(13,4),(12,2)]	CTGGC)	(null)
+((12,4)	[(11,3)]	[]	[]	[(12,3)]	TGGCA)	(null)
+((14,1)	[(14,2)]	[]	[]	[(15,2)]	GCATC)	(null)
+((14,2)	[(13,1),(14,3)]	[]	[]	[(14,1)]	CATCT)	(null)
+((14,3)	[(14,4)]	[]	[]	[(15,4),(14,2)]	ATCTC)	(null)
+((14,4)	[(13,3)]	[]	[]	[(14,3)]	TCTCT)	(null)
+((16,1)	[(16,2)]	[]	[]	[(17,2)]	AACGG)	(null)
+((16,2)	[(15,1),(16,3)]	[]	[]	[(16,1)]	ACGGC)	(null)
+((16,3)	[(16,4)]	[]	[]	[(17,4),(16,2)]	CGGCA)	(null)
+((16,4)	[(15,3)]	[]	[]	[(16,3)]	GGCAT)	(null)
+((18,1)	[(23,1),(18,2)]	[]	[(17,3)]	[]	CGTTT)	(null)
+((18,2)	[(7,1),(18,3)]	[(19,4)]	[]	[(18,1)]	GTTTC)	(null)
+((18,3)	[(18,4)]	[]	[(17,1)]	[(18,2)]	TTTCA)	(null)
+((18,4)	[]	[(19,2)]	[(24,1)]	[(18,3)]	TTCAA)	(null)
+((20,1)	[(20,2)]	[]	[(19,3)]	[]	TCAAT)	(null)
+((20,2)	[(21,1),(20,3)]	[]	[]	[(20,1)]	CAATA)	(null)
+((20,3)	[(20,4)]	[]	[(19,1)]	[(20,2)]	AATAC)	(null)
+((20,4)	[(21,3)]	[]	[]	[(20,3)]	ATACG)	(null)
+((22,1)	[(22,2)]	[]	[]	[(28,1),(27,3),(21,2)]	TACGT)	(null)
+((22,2)	[(22,3)]	[(23,4)]	[]	[(27,4),(22,1)]	ACGTG)	(null)
+((22,3)	[(22,4)]	[]	[]	[(21,4),(22,2)]	CGTGA)	(null)
+((22,4)	[]	[(23,2)]	[]	[(22,3)]	GTGAA)	(null)
+((24,1)	[(17,1),(24,2)]	[]	[(23,3),(18,4),(7,2)]	[(8,1),(19,3)]	TGAAA)	(null)
+((24,2)	[(25,1),(24,3)]	[]	[(7,1)]	[(19,4),(24,1)]	GAAAC)	(null)
+((24,3)	[(24,4)]	[]	[(23,1)]	[(24,2)]	AAACT)	(null)
+((24,4)	[(25,3)]	[]	[]	[(24,3)]	AACTA)	(null)
+((26,1)	[(26,2)]	[]	[(27,3)]	[]	GTAAT)	(null)
+((26,2)	[(26,3)]	[(25,4)]	[]	[(26,1)]	TAATA)	(null)
+((26,3)	[(26,4)]	[]	[(27,1)]	[(26,2)]	AATAG)	(null)
+((26,4)	[]	[(25,2)]	[]	[(26,3)]	ATAGT)	(null)
+((28,1)	[(22,1),(28,2)]	[]	[]	[(27,2)]	TTACG)	(null)
+((28,2)	[(28,3)]	[(29,4)]	[]	[(28,1)]	TACGT)	(null)
+((28,3)	[(28,4)]	[]	[]	[(27,4),(28,2)]	ACGTC)	(null)
+((28,4)	[(31,3)]	[(29,2)]	[]	[(28,3)]	CGTCA)	(null)
+((30,1)	[(30,2)]	[]	[(29,3)]	[(31,2)]	GTCAT)	(null)
+((30,2)	[(29,1),(30,3)]	[(31,4)]	[]	[(30,1)]	TCATG)	(null)
+((30,3)	[(30,4)]	[]	[(29,1)]	[(31,4),(30,2)]	CATGA)	(null)
+((30,4)	[(29,3)]	[(31,2)]	[]	[(30,3)]	ATGAC)	(null)
+((32,1)	[(32,2)]	[]	[(33,3),(35,3)]	[]	AAGCG)	(null)
+((32,2)	[(31,1),(32,3)]	[]	[]	[(32,1)]	AGCGT)	(null)
+((32,3)	[(32,4)]	[]	[]	[(32,2)]	GCGTC)	(null)
+((32,4)	[(31,3)]	[(29,2)]	[]	[(32,3)]	CGTCA)	(null)
+((34,1)	[(34,2)]	[]	[]	[(33,2),(35,2)]	GCTTA)	(null)
+((34,2)	[(34,3)]	[(35,4),(33,4)]	[]	[(34,1)]	CTTAA)	(null)
+((34,3)	[(34,4)]	[]	[]	[(35,4),(33,4),(34,2)]	TTAAG)	(null)
+((34,4)	[]	[(33,2),(35,2)]	[]	[(34,3)]	TAAGC)	(null)
+((36,1)	[(36,2)]	[]	[(33,3),(35,3)]	[]	AAGCG)	(null)
+((36,2)	[(36,3)]	[(37,4)]	[]	[(36,1)]	AGCGT)	(null)
+((36,3)	[(36,4)]	[]	[]	[(36,2)]	GCGTG)	(null)
+((36,4)	[]	[(37,2)]	[]	[(36,3)]	CGTGT)	(null)
+((1,1)	[(1,2)]	[]	[]	[]	TAGTG)	(null)
+((1,2)	[(1,3)]	[(2,4)]	[]	[(1,1)]	AGTGC)	(null)
+((1,3)	[(1,4)]	[]	[]	[(1,2)]	GTGCG)	(null)
+((1,4)	[]	[(2,2)]	[]	[(1,3)]	TGCGA)	(null)
+((3,1)	[(3,3)]	[]	[]	[]	GCTAGG)	(null)
+((3,3)	[(3,4)]	[]	[]	[(3,1)]	TAGGG)	(null)
+((3,4)	[(4,3)]	[]	[]	[(3,3)]	AGGGT)	(null)
+((5,1)	[(5,2)]	[]	[(6,3)]	[]	AGCAA)	(null)
+((5,2)	[(5,3)]	[(4,4)]	[]	[(5,1)]	GCAAC)	(null)
+((5,3)	[(5,4)]	[]	[(6,1)]	[(5,2)]	CAACC)	(null)
+((5,4)	[]	[(4,2)]	[]	[(5,3)]	AACCC)	(null)
+((7,1)	[(7,2)]	[]	[(8,3),(24,2)]	[(18,2),(23,1)]	TTTCA)	(null)
+((7,2)	[(7,3)]	[(6,4)]	[(24,1)]	[(7,1)]	TTCAG)	(null)
+((7,3)	[(7,4)]	[]	[(8,1)]	[(7,2)]	TCAGC)	(null)
+((7,4)	[]	[(6,2)]	[]	[(7,3)]	CAGCA)	(null)
+((9,1)	[(9,2)]	[]	[]	[(10,2)]	CAGAT)	(null)
+((9,2)	[(9,3)]	[(8,4)]	[]	[(9,1)]	AGATT)	(null)
+((9,3)	[(9,4)]	[]	[]	[(10,4),(9,2)]	GATTT)	(null)
+((9,4)	[]	[(8,2)]	[]	[(9,3)]	ATTTC)	(null)
+((11,1)	[(11,2)]	[]	[]	[(12,2)]	CTGGC)	(null)
+((11,2)	[(10,1),(11,3)]	[]	[]	[(11,1)]	TGGCA)	(null)
+((11,3)	[(11,4)]	[]	[]	[(12,4),(11,2)]	GGCAG)	(null)
+((11,4)	[(10,3)]	[]	[]	[(11,3)]	GCAGA)	(null)
+((13,1)	[(13,2)]	[]	[]	[(14,2)]	ATCTC)	(null)
+((13,2)	[(12,1),(13,3)]	[]	[]	[(13,1)]	TCTCT)	(null)
+((13,3)	[(13,4)]	[]	[]	[(14,4),(13,2)]	CTCTG)	(null)
+((13,4)	[(12,3)]	[]	[]	[(13,3)]	TCTGG)	(null)
+((15,1)	[(15,2)]	[]	[]	[(16,2)]	CGGCA)	(null)
+((15,2)	[(14,1),(15,3)]	[]	[]	[(15,1)]	GGCAT)	(null)
+((15,3)	[(15,4)]	[]	[]	[(16,4),(15,2)]	GCATC)	(null)
+((15,4)	[(14,3)]	[]	[]	[(15,3)]	CATCT)	(null)
+((17,1)	[(17,2)]	[]	[(23,2),(18,3)]	[(24,1)]	GAAAC)	(null)
+((17,2)	[(16,1),(17,3)]	[]	[(23,1)]	[(17,1)]	AAACG)	(null)
+((17,3)	[(17,4)]	[]	[(18,1)]	[(17,2)]	AACGG)	(null)
+((17,4)	[(16,3)]	[]	[]	[(17,3)]	ACGGC)	(null)
+((19,1)	[(19,2)]	[]	[(20,3)]	[]	TATTG)	(null)
+((19,2)	[(19,3)]	[(18,4)]	[]	[(19,1)]	ATTGA)	(null)
+((19,3)	[(24,1),(19,4)]	[]	[(20,1)]	[(19,2)]	TTGAA)	(null)
+((19,4)	[(8,3),(24,2)]	[(18,2),(23,1)]	[]	[(19,3)]	TGAAA)	(null)
+((21,1)	[(21,2)]	[]	[]	[(20,2)]	AATAC)	(null)
+((21,2)	[(22,1),(21,3)]	[]	[]	[(21,1)]	ATACG)	(null)
+((21,3)	[(21,4)]	[]	[]	[(20,4),(21,2)]	TACGT)	(null)
+((21,4)	[(22,3)]	[]	[]	[(27,4),(21,3)]	ACGTG)	(null)
+((23,1)	[(7,1),(23,2)]	[(19,4)]	[(24,3),(17,2)]	[(18,1)]	GTTTC)	(null)
+((23,2)	[(23,3)]	[(22,4)]	[(17,1)]	[(23,1)]	TTTCA)	(null)
+((23,3)	[(23,4)]	[]	[(24,1)]	[(23,2)]	TTCAC)	(null)
+((23,4)	[]	[(22,2)]	[]	[(23,3)]	TCACG)	(null)
+((25,1)	[(25,2)]	[]	[]	[(24,2)]	AAACT)	(null)
+((25,2)	[(25,3)]	[(26,4)]	[]	[(25,1)]	AACTA)	(null)
+((25,3)	[(25,4)]	[]	[]	[(24,4),(25,2)]	ACTAT)	(null)
+((25,4)	[]	[(26,2)]	[]	[(25,3)]	CTATT)	(null)
+((27,1)	[(27,2)]	[]	[(26,3)]	[]	TATTA)	(null)
+((27,2)	[(28,1),(27,3)]	[]	[]	[(27,1)]	ATTAC)	(null)
+((27,3)	[(22,1),(27,4)]	[]	[(26,1)]	[(27,2)]	TTACG)	(null)
+((27,4)	[(28,3),(21,4),(22,2)]	[]	[]	[(27,3)]	TACGT)	(null)
+((29,1)	[(29,2)]	[]	[(30,3)]	[(30,2)]	CATGA)	(null)
+((29,2)	[(29,3)]	[(32,4),(28,4)]	[]	[(29,1)]	ATGAC)	(null)
+((29,3)	[(29,4)]	[]	[(30,1)]	[(30,4),(29,2)]	TGACG)	(null)
+((29,4)	[]	[(28,2)]	[]	[(29,3)]	GACGT)	(null)
+((31,1)	[(31,2)]	[]	[]	[(32,2)]	GCGTC)	(null)
+((31,2)	[(30,1),(31,3)]	[(30,4)]	[]	[(31,1)]	CGTCA)	(null)
+((31,3)	[(31,4)]	[]	[]	[(32,4),(28,4),(31,2)]	GTCAT)	(null)
+((31,4)	[(30,3)]	[(30,2)]	[]	[(31,3)]	TCATG)	(null)
+((33,1)	[(33,2)]	[]	[]	[]	TCGCT)	(null)
+((33,2)	[(34,1),(33,3)]	[(34,4)]	[]	[(33,1)]	CGCTT)	(null)
+((33,3)	[(33,4)]	[]	[(36,1),(32,1)]	[(33,2)]	GCTTA)	(null)
+((33,4)	[(34,3)]	[(34,2)]	[]	[(33,3)]	CTTAA)	(null)
+((35,1)	[(35,2)]	[]	[]	[]	TCGCT)	(null)
+((35,2)	[(34,1),(35,3)]	[(34,4)]	[]	[(35,1)]	CGCTT)	(null)
+((35,3)	[(35,4)]	[]	[(36,1),(32,1)]	[(35,2)]	GCTTA)	(null)
+((35,4)	[(34,3)]	[(34,2)]	[]	[(35,3)]	CTTAA)	(null)
+((37,1)	[(37,2)]	[]	[]	[]	CCACA)	(null)
+((37,2)	[(37,3)]	[(36,4)]	[]	[(37,1)]	CACAC)	(null)
+((37,3)	[(37,4)]	[]	[]	[(37,2)]	ACACG)	(null)
+((37,4)	[]	[(36,2)]	[]	[(37,3)]	CACGC)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1.txt.svg
new file mode 100644
index 0000000..655df86
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1.txt.svg
@@ -0,0 +1,3577 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: walk_random_seq1_txt Pages: 1 -->
+<svg width="1494pt" height="5501pt"
+ viewBox="0.00 0.00 1494.00 5501.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 5497)">
+<title>walk_random_seq1_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-5497 1491,-5497 1491,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="54,-1935 54,-2136 226,-2136 226,-1935 54,-1935"/>
+<text text-anchor="middle" x="140" y="-2119.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_24</title>
+<polygon fill="none" stroke="black" points="428,-5076 428,-5164 942,-5164 942,-5076 428,-5076"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_25</title>
+<polygon fill="none" stroke="black" points="562,-1126 562,-1214 1076,-1214 1076,-1126 562,-1126"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_26</title>
+<polygon fill="none" stroke="black" points="428,-2358 428,-2446 942,-2446 942,-2358 428,-2358"/>
+</g>
+<g id="graph6" class="cluster"><title>cluster_27</title>
+<polygon fill="none" stroke="black" points="294,-2792 294,-2880 808,-2880 808,-2792 294,-2792"/>
+</g>
+<g id="graph7" class="cluster"><title>cluster_20</title>
+<polygon fill="none" stroke="black" points="160,-4070 160,-4158 674,-4158 674,-4070 160,-4070"/>
+</g>
+<g id="graph8" class="cluster"><title>cluster_21</title>
+<polygon fill="none" stroke="black" points="428,-3605 428,-3693 942,-3693 942,-3605 428,-3605"/>
+</g>
+<g id="graph9" class="cluster"><title>cluster_22</title>
+<polygon fill="none" stroke="black" points="428,-3190 428,-3278 942,-3278 942,-3190 428,-3190"/>
+</g>
+<g id="graph10" class="cluster"><title>cluster_23</title>
+<polygon fill="none" stroke="black" points="294,-4681 294,-4769 808,-4769 808,-4681 294,-4681"/>
+</g>
+<g id="graph11" class="cluster"><title>cluster_28</title>
+<polygon fill="none" stroke="black" points="562,-2696 562,-2784 1076,-2784 1076,-2696 562,-2696"/>
+</g>
+<g id="graph12" class="cluster"><title>cluster_29</title>
+<polygon fill="none" stroke="black" points="696,-2262 696,-2350 1210,-2350 1210,-2262 696,-2262"/>
+</g>
+<g id="graph13" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="13,-5371 13,-5459 535,-5459 535,-5371 13,-5371"/>
+</g>
+<g id="graph14" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="700,-8 700,-96 1071,-96 1071,-8 700,-8"/>
+</g>
+<g id="graph15" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="165,-5275 165,-5363 669,-5363 669,-5275 165,-5275"/>
+</g>
+<g id="graph16" class="cluster"><title>cluster_5</title>
+<polygon fill="none" stroke="black" points="701,-2454 701,-2542 1205,-2542 1205,-2454 701,-2454"/>
+</g>
+<g id="graph17" class="cluster"><title>cluster_4</title>
+<polygon fill="none" stroke="black" points="835,-1400 835,-1488 1339,-1488 1339,-1400 835,-1400"/>
+</g>
+<g id="graph18" class="cluster"><title>cluster_7</title>
+<polygon fill="none" stroke="black" points="433,-4585 433,-4673 937,-4673 937,-4585 433,-4585"/>
+</g>
+<g id="graph19" class="cluster"><title>cluster_6</title>
+<polygon fill="none" stroke="black" points="567,-3087 567,-3175 1071,-3175 1071,-3087 567,-3087"/>
+</g>
+<g id="graph20" class="cluster"><title>cluster_9</title>
+<polygon fill="none" stroke="black" points="433,-3439 433,-3527 937,-3527 937,-3439 433,-3439"/>
+</g>
+<g id="graph21" class="cluster"><title>cluster_8</title>
+<polygon fill="none" stroke="black" points="299,-4980 299,-5068 803,-5068 803,-4980 299,-4980"/>
+</g>
+<g id="graph22" class="cluster"><title>cluster_11</title>
+<polygon fill="none" stroke="black" points="294,-616 294,-704 808,-704 808,-616 294,-616"/>
+</g>
+<g id="graph23" class="cluster"><title>cluster_10</title>
+<polygon fill="none" stroke="black" points="428,-2991 428,-3079 942,-3079 942,-2991 428,-2991"/>
+</g>
+<g id="graph24" class="cluster"><title>cluster_13</title>
+<polygon fill="none" stroke="black" points="294,-424 294,-512 808,-512 808,-424 294,-424"/>
+</g>
+<g id="graph25" class="cluster"><title>cluster_12</title>
+<polygon fill="none" stroke="black" points="294,-520 294,-608 808,-608 808,-520 294,-520"/>
+</g>
+<g id="graph26" class="cluster"><title>cluster_15</title>
+<polygon fill="none" stroke="black" points="294,-232 294,-320 808,-320 808,-232 294,-232"/>
+</g>
+<g id="graph27" class="cluster"><title>cluster_14</title>
+<polygon fill="none" stroke="black" points="294,-328 294,-416 808,-416 808,-328 294,-328"/>
+</g>
+<g id="graph28" class="cluster"><title>cluster_17</title>
+<polygon fill="none" stroke="black" points="294,-3904 294,-3992 808,-3992 808,-3904 294,-3904"/>
+</g>
+<g id="graph29" class="cluster"><title>cluster_16</title>
+<polygon fill="none" stroke="black" points="294,-104 294,-192 808,-192 808,-104 294,-104"/>
+</g>
+<g id="graph30" class="cluster"><title>cluster_19</title>
+<polygon fill="none" stroke="black" points="8,-5172 8,-5260 540,-5260 540,-5172 8,-5172"/>
+</g>
+<g id="graph31" class="cluster"><title>cluster_18</title>
+<polygon fill="none" stroke="black" points="160,-4419 160,-4507 674,-4507 674,-4419 160,-4419"/>
+</g>
+<g id="graph32" class="cluster"><title>cluster_31</title>
+<polygon fill="none" stroke="black" points="562,-1688 562,-1776 1076,-1776 1076,-1688 562,-1688"/>
+</g>
+<g id="graph33" class="cluster"><title>cluster_30</title>
+<polygon fill="none" stroke="black" points="696,-2096 696,-2184 1210,-2184 1210,-2096 696,-2096"/>
+</g>
+<g id="graph34" class="cluster"><title>cluster_37</title>
+<polygon fill="none" stroke="black" points="964,-616 964,-704 1478,-704 1478,-616 964,-616"/>
+</g>
+<g id="graph35" class="cluster"><title>cluster_36</title>
+<polygon fill="none" stroke="black" points="830,-1030 830,-1118 1344,-1118 1344,-1030 830,-1030"/>
+</g>
+<g id="graph36" class="cluster"><title>cluster_35</title>
+<polygon fill="none" stroke="black" points="428,-1592 428,-1680 942,-1680 942,-1592 428,-1592"/>
+</g>
+<g id="graph37" class="cluster"><title>cluster_34</title>
+<polygon fill="none" stroke="black" points="562,-712 562,-800 1076,-800 1076,-712 562,-712"/>
+</g>
+<g id="graph38" class="cluster"><title>cluster_33</title>
+<polygon fill="none" stroke="black" points="428,-1496 428,-1584 942,-1584 942,-1496 428,-1496"/>
+</g>
+<g id="graph39" class="cluster"><title>cluster_32</title>
+<polygon fill="none" stroke="black" points="562,-1930 562,-2018 1076,-2018 1076,-1930 562,-1930"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="64" cy="-2084" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="216" cy="-2084" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M66.1487,-2084C81.1775,-2084 170.918,-2084 203.873,-2084"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="204.136,-2087.5 214.136,-2084 204.136,-2080.5 204.136,-2087.5"/>
+<text text-anchor="middle" x="140" y="-2089.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="64" cy="-2043" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="216" cy="-2043" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M66.1487,-2043C81.1775,-2043 170.918,-2043 203.873,-2043"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="204.136,-2046.5 214.136,-2043 204.136,-2039.5 204.136,-2046.5"/>
+<text text-anchor="middle" x="140" y="-2048.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="64" cy="-2002" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="216" cy="-2002" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M66.1487,-2002C81.1775,-2002 170.918,-2002 203.873,-2002"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="204.136,-2005.5 214.136,-2002 204.136,-1998.5 204.136,-2005.5"/>
+<text text-anchor="middle" x="140" y="-2007.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="64" cy="-1961" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="216" cy="-1961" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M66.1487,-1961C81.1775,-1961 170.918,-1961 203.873,-1961"/>
+<polygon fill="#218559" stroke="#218559" points="204.136,-1964.5 214.136,-1961 204.136,-1957.5 204.136,-1964.5"/>
+<text text-anchor="middle" x="140" y="-1966.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 24,1 -->
+<g id="node15" class="node"><title>24,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5120" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-5131.17" font-family="Times Roman,serif" font-size="10.00">24,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-5112 459,-5126 510,-5126 510,-5112 459,-5112"/>
+<text text-anchor="start" x="467.5" y="-5116.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-5098 459,-5112 510,-5112 510,-5098 459,-5098"/>
+<text text-anchor="start" x="470" y="-5102.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+</g>
+<!-- 24,2 -->
+<g id="node16" class="node"><title>24,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-5120" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-5131.17" font-family="Times Roman,serif" font-size="10.00">24,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-5112 593,-5126 644,-5126 644,-5112 593,-5112"/>
+<text text-anchor="start" x="601" y="-5116.67" font-family="Times Roman,serif" font-size="10.00">GAAAC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-5098 593,-5112 644,-5112 644,-5098 593,-5098"/>
+<text text-anchor="start" x="604" y="-5102.67" font-family="Times Roman,serif" font-size="10.00">GTTTC</text>
+</g>
+<!-- 24,1&#45;&gt;24,2 -->
+<g id="edge280" class="edge"><title>24,1&#45;&gt;24,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-5113.53C540.501,-5113.25 550.748,-5113.18 560.703,-5113.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-5116.82 570.933,-5113.52 561.007,-5109.82 560.864,-5116.82"/>
+</g>
+<!-- 23,3 -->
+<g id="node52" class="node"><title>23,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-4725" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-4736.17" font-family="Times Roman,serif" font-size="10.00">23,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-4717 593,-4731 644,-4731 644,-4717 593,-4717"/>
+<text text-anchor="start" x="603.5" y="-4721.67" font-family="Times Roman,serif" font-size="10.00">TTCAC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-4703 593,-4717 644,-4717 644,-4703 593,-4703"/>
+<text text-anchor="start" x="601.5" y="-4707.67" font-family="Times Roman,serif" font-size="10.00">GTGAA</text>
+</g>
+<!-- 24,1&#45;&gt;23,3 -->
+<g id="edge282" class="edge"><title>24,1&#45;&gt;23,3</title>
+<path fill="none" stroke="#06a2cb" d="M515.6,-5092.91C528.303,-5082.03 540,-5072 540,-5072 540,-5072 586.676,-4864.35 607.814,-4770.32"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="611.241,-4771.03 610.019,-4760.5 604.411,-4769.49 611.241,-4771.03"/>
+</g>
+<!-- 7,2 -->
+<g id="node90" class="node"><title>7,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-4629" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-4640.17" font-family="Times Roman,serif" font-size="10.00">7,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-4621 596,-4635 641,-4635 641,-4621 596,-4621"/>
+<text text-anchor="start" x="603" y="-4625.67" font-family="Times Roman,serif" font-size="10.00">TTCAG</text>
+<polygon fill="#218559" stroke="#218559" points="596,-4607 596,-4621 641,-4621 641,-4607 596,-4607"/>
+<text text-anchor="start" x="601.5" y="-4611.67" font-family="Times Roman,serif" font-size="10.00">CTGAA</text>
+</g>
+<!-- 24,1&#45;&gt;7,2 -->
+<g id="edge286" class="edge"><title>24,1&#45;&gt;7,2</title>
+<path fill="none" stroke="#06a2cb" d="M515.6,-5092.91C528.303,-5082.03 540,-5072 540,-5072 540,-5072 552,-4898 552,-4898 552,-4898 562,-4677 562,-4677 562,-4677 569.944,-4670.19 579.849,-4661.7"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="582.391,-4664.13 587.705,-4654.97 577.835,-4658.82 582.391,-4664.13"/>
+</g>
+<!-- 8,1 -->
+<g id="node104" class="node"><title>8,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-5024" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="330.5" y="-5035.17" font-family="Times Roman,serif" font-size="10.00">8,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="328,-5016 328,-5030 373,-5030 373,-5016 328,-5016"/>
+<text text-anchor="start" x="333.5" y="-5020.67" font-family="Times Roman,serif" font-size="10.00">CTGAA</text>
+<polygon fill="#218559" stroke="#218559" points="328,-5002 328,-5016 373,-5016 373,-5002 328,-5002"/>
+<text text-anchor="start" x="335" y="-5006.67" font-family="Times Roman,serif" font-size="10.00">TTCAG</text>
+</g>
+<!-- 24,1&#45;&gt;8,1 -->
+<g id="edge288" class="edge"><title>24,1&#45;&gt;8,1</title>
+<path fill="none" stroke="#218559" d="M445.233,-5098.91C429.962,-5090.6 416,-5083 416,-5083 416,-5083 402.293,-5070.75 387.372,-5057.41"/>
+<polygon fill="#218559" stroke="#218559" points="389.313,-5054.45 379.525,-5050.39 384.648,-5059.67 389.313,-5054.45"/>
+</g>
+<!-- 17,1 -->
+<g id="node139" class="node"><title>17,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-3948" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-3959.17" font-family="Times Roman,serif" font-size="10.00">17,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-3940 325,-3954 376,-3954 376,-3940 325,-3940"/>
+<text text-anchor="start" x="333" y="-3944.67" font-family="Times Roman,serif" font-size="10.00">GAAAC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-3926 325,-3940 376,-3940 376,-3926 325,-3926"/>
+<text text-anchor="start" x="336" y="-3930.67" font-family="Times Roman,serif" font-size="10.00">GTTTC</text>
+</g>
+<!-- 24,1&#45;&gt;17,1 -->
+<g id="edge278" class="edge"><title>24,1&#45;&gt;17,1</title>
+<path fill="none" stroke="#dd1e2f" d="M452.4,-5092.91C439.697,-5082.03 428,-5072 428,-5072 428,-5072 418,-3850 418,-3850 418,-3850 416,-3850 416,-3850 416,-3850 395.53,-3880.4 377.39,-3907.33"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="374.294,-3905.66 371.611,-3915.91 380.1,-3909.57 374.294,-3905.66"/>
+</g>
+<!-- 19,3 -->
+<g id="node151" class="node"><title>19,3</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-5216" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-5227.17" font-family="Times Roman,serif" font-size="10.00">19,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-5208 325,-5222 376,-5222 376,-5208 325,-5208"/>
+<text text-anchor="start" x="334.5" y="-5212.67" font-family="Times Roman,serif" font-size="10.00">TTGAA</text>
+<polygon fill="#218559" stroke="#218559" points="325,-5194 325,-5208 376,-5208 376,-5194 325,-5194"/>
+<text text-anchor="start" x="335" y="-5198.67" font-family="Times Roman,serif" font-size="10.00">TTCAA</text>
+</g>
+<!-- 24,1&#45;&gt;19,3 -->
+<g id="edge290" class="edge"><title>24,1&#45;&gt;19,3</title>
+<path fill="none" stroke="#218559" d="M449.317,-5144.85C432.127,-5157.16 411.205,-5172.15 393.005,-5185.19"/>
+<polygon fill="#218559" stroke="#218559" points="390.948,-5182.36 384.857,-5191.03 395.025,-5188.05 390.948,-5182.36"/>
+</g>
+<!-- 18,4 -->
+<g id="node157" class="node"><title>18,4</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-4463" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-4474.17" font-family="Times Roman,serif" font-size="10.00">18,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-4455 593,-4469 644,-4469 644,-4455 593,-4455"/>
+<text text-anchor="start" x="603" y="-4459.67" font-family="Times Roman,serif" font-size="10.00">TTCAA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-4441 593,-4455 644,-4455 644,-4441 593,-4441"/>
+<text text-anchor="start" x="602.5" y="-4445.67" font-family="Times Roman,serif" font-size="10.00">TTGAA</text>
+</g>
+<!-- 24,1&#45;&gt;18,4 -->
+<g id="edge284" class="edge"><title>24,1&#45;&gt;18,4</title>
+<path fill="none" stroke="#06a2cb" d="M515.6,-5092.91C528.303,-5082.03 540,-5072 540,-5072 540,-5072 550,-4876 550,-4876 550,-4876 552,-4843 552,-4843 552,-4843 562,-4581 562,-4581 562,-4581 581.437,-4540.04 597.409,-4506.39"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="600.677,-4507.67 601.802,-4497.13 594.353,-4504.66 600.677,-4507.67"/>
+</g>
+<!-- 24,2&#45;&gt;24,1 -->
+<g id="edge300" class="edge"><title>24,2&#45;&gt;24,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-5126.48C561.29,-5126.75 551.041,-5126.82 541.091,-5126.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-5123.18 530.867,-5126.47 540.792,-5130.18 540.937,-5123.18"/>
+</g>
+<!-- 24,3 -->
+<g id="node17" class="node"><title>24,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-5120" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-5131.17" font-family="Times Roman,serif" font-size="10.00">24,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-5112 727,-5126 778,-5126 778,-5112 727,-5112"/>
+<text text-anchor="start" x="736" y="-5116.67" font-family="Times Roman,serif" font-size="10.00">AAACT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-5098 727,-5112 778,-5112 778,-5098 727,-5098"/>
+<text text-anchor="start" x="737.5" y="-5102.67" font-family="Times Roman,serif" font-size="10.00">AGTTT</text>
+</g>
+<!-- 24,2&#45;&gt;24,3 -->
+<g id="edge294" class="edge"><title>24,2&#45;&gt;24,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-5113.53C674.501,-5113.25 684.748,-5113.18 694.703,-5113.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-5116.82 704.933,-5113.52 695.007,-5109.82 694.864,-5116.82"/>
+</g>
+<!-- 25,1 -->
+<g id="node20" class="node"><title>25,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1170" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1181.17" font-family="Times Roman,serif" font-size="10.00">25,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1162 593,-1176 644,-1176 644,-1162 593,-1162"/>
+<text text-anchor="start" x="602" y="-1166.67" font-family="Times Roman,serif" font-size="10.00">AAACT</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1148 593,-1162 644,-1162 644,-1148 593,-1148"/>
+<text text-anchor="start" x="603.5" y="-1152.67" font-family="Times Roman,serif" font-size="10.00">AGTTT</text>
+</g>
+<!-- 24,2&#45;&gt;25,1 -->
+<g id="edge292" class="edge"><title>24,2&#45;&gt;25,1</title>
+<path fill="none" stroke="#dd1e2f" d="M586.07,-5092.84C568.813,-5078.15 551,-5063 551,-5063 551,-5063 551,-1501 551,-1501 551,-1501 590.35,-1306.6 608.737,-1215.76"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="612.213,-1216.23 610.766,-1205.74 605.352,-1214.84 612.213,-1216.23"/>
+</g>
+<!-- 7,1 -->
+<g id="node89" class="node"><title>7,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-4629" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-4640.17" font-family="Times Roman,serif" font-size="10.00">7,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-4621 462,-4635 507,-4635 507,-4621 462,-4621"/>
+<text text-anchor="start" x="470" y="-4625.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+<polygon fill="#218559" stroke="#218559" points="462,-4607 462,-4621 507,-4621 507,-4607 462,-4607"/>
+<text text-anchor="start" x="467.5" y="-4611.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+</g>
+<!-- 24,2&#45;&gt;7,1 -->
+<g id="edge296" class="edge"><title>24,2&#45;&gt;7,1</title>
+<path fill="none" stroke="#06a2cb" d="M586.4,-5092.91C573.697,-5082.03 562,-5072 562,-5072 562,-5072 552,-4365 552,-4365 552,-4365 550,-4365 550,-4365 550,-4365 540,-4579 540,-4579 540,-4579 531.629,-4586.47 521.36,-4595.64"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="518.768,-4593.26 513.64,-4602.54 523.43,-4598.49 518.768,-4593.26"/>
+</g>
+<!-- 19,4 -->
+<g id="node152" class="node"><title>19,4</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5216" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-5227.17" font-family="Times Roman,serif" font-size="10.00">19,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-5208 459,-5222 510,-5222 510,-5208 459,-5208"/>
+<text text-anchor="start" x="467.5" y="-5212.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-5194 459,-5208 510,-5208 510,-5194 459,-5194"/>
+<text text-anchor="start" x="470" y="-5198.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+</g>
+<!-- 24,2&#45;&gt;19,4 -->
+<g id="edge298" class="edge"><title>24,2&#45;&gt;19,4</title>
+<path fill="none" stroke="#218559" d="M599.965,-5153.61C580.424,-5190.03 552,-5243 552,-5243 552,-5243 550,-5243 550,-5243 550,-5243 544,-5240.55 535.618,-5237.12"/>
+<polygon fill="#218559" stroke="#218559" points="536.753,-5233.8 526.172,-5233.25 534.103,-5240.28 536.753,-5233.8"/>
+</g>
+<!-- 24,3&#45;&gt;24,2 -->
+<g id="edge306" class="edge"><title>24,3&#45;&gt;24,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-5126.48C695.29,-5126.75 685.041,-5126.82 675.091,-5126.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-5123.18 664.867,-5126.47 674.792,-5130.18 674.937,-5123.18"/>
+</g>
+<!-- 24,4 -->
+<g id="node18" class="node"><title>24,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-5120" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-5131.17" font-family="Times Roman,serif" font-size="10.00">24,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-5112 861,-5126 912,-5126 912,-5112 861,-5112"/>
+<text text-anchor="start" x="870.5" y="-5116.67" font-family="Times Roman,serif" font-size="10.00">AACTA</text>
+<polygon fill="#218559" stroke="#218559" points="861,-5098 861,-5112 912,-5112 912,-5098 861,-5098"/>
+<text text-anchor="start" x="872" y="-5102.67" font-family="Times Roman,serif" font-size="10.00">TAGTT</text>
+</g>
+<!-- 24,3&#45;&gt;24,4 -->
+<g id="edge302" class="edge"><title>24,3&#45;&gt;24,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-5113.53C808.501,-5113.25 818.748,-5113.18 828.703,-5113.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-5116.82 838.933,-5113.52 829.007,-5109.82 828.864,-5116.82"/>
+</g>
+<!-- 23,1 -->
+<g id="node50" class="node"><title>23,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-4725" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-4736.17" font-family="Times Roman,serif" font-size="10.00">23,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-4717 325,-4731 376,-4731 376,-4717 325,-4717"/>
+<text text-anchor="start" x="336" y="-4721.67" font-family="Times Roman,serif" font-size="10.00">GTTTC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-4703 325,-4717 376,-4717 376,-4703 325,-4703"/>
+<text text-anchor="start" x="333" y="-4707.67" font-family="Times Roman,serif" font-size="10.00">GAAAC</text>
+</g>
+<!-- 24,3&#45;&gt;23,1 -->
+<g id="edge304" class="edge"><title>24,3&#45;&gt;23,1</title>
+<path fill="none" stroke="#06a2cb" d="M720.4,-5092.91C707.697,-5082.03 696,-5072 696,-5072 696,-5072 674,-3900 674,-3900 674,-3900 562,-3900 562,-3900 562,-3900 540,-4026 540,-4026 540,-4026 428,-4066 428,-4066 428,-4066 418,-4240 418,-4240 418,-4240 398,-4511 398,-4511 398,-4511 374.399,-4616.22 360.296,-4679.1"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="356.808,-4678.66 358.034,-4689.18 363.638,-4680.19 356.808,-4678.66"/>
+</g>
+<!-- 24,4&#45;&gt;24,3 -->
+<g id="edge310" class="edge"><title>24,4&#45;&gt;24,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-5126.48C829.29,-5126.75 819.041,-5126.82 809.091,-5126.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-5123.18 798.867,-5126.47 808.792,-5130.18 808.937,-5123.18"/>
+</g>
+<!-- 25,3 -->
+<g id="node22" class="node"><title>25,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1170" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1181.17" font-family="Times Roman,serif" font-size="10.00">25,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1162 861,-1176 912,-1176 912,-1162 861,-1162"/>
+<text text-anchor="start" x="871.5" y="-1166.67" font-family="Times Roman,serif" font-size="10.00">ACTAT</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1148 861,-1162 912,-1162 912,-1148 861,-1148"/>
+<text text-anchor="start" x="871.5" y="-1152.67" font-family="Times Roman,serif" font-size="10.00">ATAGT</text>
+</g>
+<!-- 24,4&#45;&gt;25,3 -->
+<g id="edge308" class="edge"><title>24,4&#45;&gt;25,3</title>
+<path fill="none" stroke="#dd1e2f" d="M880.687,-5084.15C864.84,-4977.25 819,-4668 819,-4668 819,-4668 819,-1405 819,-1405 819,-1405 853.684,-1283.35 873.142,-1215.1"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="876.521,-1216.01 875.897,-1205.44 869.789,-1214.09 876.521,-1216.01"/>
+</g>
+<!-- 25,1&#45;&gt;24,2 -->
+<g id="edge716" class="edge"><title>25,1&#45;&gt;24,2</title>
+<path fill="none" stroke="#218559" d="M610.766,-1205.74C593.441,-1291.33 551,-1501 551,-1501 551,-1501 551,-5063 551,-5063 551,-5063 563.917,-5073.99 578.409,-5086.32"/>
+<polygon fill="#218559" stroke="#218559" points="576.185,-5089.02 586.07,-5092.84 580.721,-5083.69 576.185,-5089.02"/>
+</g>
+<!-- 25,2 -->
+<g id="node21" class="node"><title>25,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1170" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1181.17" font-family="Times Roman,serif" font-size="10.00">25,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1162 727,-1176 778,-1176 778,-1162 727,-1162"/>
+<text text-anchor="start" x="736.5" y="-1166.67" font-family="Times Roman,serif" font-size="10.00">AACTA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1148 727,-1162 778,-1162 778,-1148 727,-1148"/>
+<text text-anchor="start" x="738" y="-1152.67" font-family="Times Roman,serif" font-size="10.00">TAGTT</text>
+</g>
+<!-- 25,1&#45;&gt;25,2 -->
+<g id="edge714" class="edge"><title>25,1&#45;&gt;25,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1163.53C674.501,-1163.25 684.748,-1163.18 694.703,-1163.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1166.82 704.933,-1163.52 695.007,-1159.82 694.864,-1166.82"/>
+</g>
+<!-- 25,2&#45;&gt;25,1 -->
+<g id="edge722" class="edge"><title>25,2&#45;&gt;25,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-1176.48C695.29,-1176.75 685.041,-1176.82 675.091,-1176.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1173.18 664.867,-1176.47 674.792,-1180.18 674.937,-1173.18"/>
+</g>
+<!-- 25,2&#45;&gt;25,3 -->
+<g id="edge718" class="edge"><title>25,2&#45;&gt;25,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1163.53C808.501,-1163.25 818.748,-1163.18 828.703,-1163.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1166.82 838.933,-1163.52 829.007,-1159.82 828.864,-1166.82"/>
+</g>
+<!-- 26,4 -->
+<g id="node28" class="node"><title>26,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2402" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-2413.17" font-family="Times Roman,serif" font-size="10.00">26,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-2394 861,-2408 912,-2408 912,-2394 861,-2394"/>
+<text text-anchor="start" x="871.5" y="-2398.67" font-family="Times Roman,serif" font-size="10.00">ATAGT</text>
+<polygon fill="#218559" stroke="#218559" points="861,-2380 861,-2394 912,-2394 912,-2380 861,-2380"/>
+<text text-anchor="start" x="871.5" y="-2384.67" font-family="Times Roman,serif" font-size="10.00">ACTAT</text>
+</g>
+<!-- 25,2&#45;&gt;26,4 -->
+<g id="edge720" class="edge"><title>25,2&#45;&gt;26,4</title>
+<path fill="none" stroke="#ebb035" d="M758.261,-1206C772.874,-1290.02 808,-1492 808,-1492 808,-1492 820,-1894 820,-1894 820,-1894 830,-2354 830,-2354 830,-2354 837.283,-2360.24 846.596,-2368.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="844.529,-2371.06 854.4,-2374.91 849.085,-2365.75 844.529,-2371.06"/>
+</g>
+<!-- 25,3&#45;&gt;24,4 -->
+<g id="edge726" class="edge"><title>25,3&#45;&gt;24,4</title>
+<path fill="none" stroke="#218559" d="M875.897,-1205.44C857.18,-1271.09 819,-1405 819,-1405 819,-1405 819,-4668 819,-4668 819,-4668 862.193,-4959.39 879.219,-5074.25"/>
+<polygon fill="#218559" stroke="#218559" points="875.758,-5074.78 880.687,-5084.15 882.682,-5073.75 875.758,-5074.78"/>
+</g>
+<!-- 25,3&#45;&gt;25,2 -->
+<g id="edge728" class="edge"><title>25,3&#45;&gt;25,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-1176.48C829.29,-1176.75 819.041,-1176.82 809.091,-1176.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1173.18 798.867,-1176.47 808.792,-1180.18 808.937,-1173.18"/>
+</g>
+<!-- 25,4 -->
+<g id="node23" class="node"><title>25,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1170" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-1181.17" font-family="Times Roman,serif" font-size="10.00">25,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-1162 995,-1176 1046,-1176 1046,-1162 995,-1162"/>
+<text text-anchor="start" x="1006.5" y="-1166.67" font-family="Times Roman,serif" font-size="10.00">CTATT</text>
+<polygon fill="#218559" stroke="#218559" points="995,-1148 995,-1162 1046,-1162 1046,-1148 995,-1148"/>
+<text text-anchor="start" x="1004.5" y="-1152.67" font-family="Times Roman,serif" font-size="10.00">AATAG</text>
+</g>
+<!-- 25,3&#45;&gt;25,4 -->
+<g id="edge724" class="edge"><title>25,3&#45;&gt;25,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-1163.53C942.501,-1163.25 952.748,-1163.18 962.703,-1163.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-1166.82 972.933,-1163.52 963.007,-1159.82 962.864,-1166.82"/>
+</g>
+<!-- 25,4&#45;&gt;25,3 -->
+<g id="edge732" class="edge"><title>25,4&#45;&gt;25,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-1176.48C963.29,-1176.75 953.041,-1176.82 943.091,-1176.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-1173.18 932.867,-1176.47 942.792,-1180.18 942.937,-1173.18"/>
+</g>
+<!-- 26,2 -->
+<g id="node26" class="node"><title>26,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-2402" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-2413.17" font-family="Times Roman,serif" font-size="10.00">26,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-2394 593,-2408 644,-2408 644,-2394 593,-2394"/>
+<text text-anchor="start" x="604" y="-2398.67" font-family="Times Roman,serif" font-size="10.00">TAATA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-2380 593,-2394 644,-2394 644,-2380 593,-2380"/>
+<text text-anchor="start" x="605" y="-2384.67" font-family="Times Roman,serif" font-size="10.00">TATTA</text>
+</g>
+<!-- 25,4&#45;&gt;26,2 -->
+<g id="edge730" class="edge"><title>25,4&#45;&gt;26,2</title>
+<path fill="none" stroke="#ebb035" d="M1007.69,-1205.13C988.09,-1261.04 952,-1364 952,-1364 952,-1364 942,-1814 942,-1814 942,-1814 830,-1848 830,-1848 830,-1848 818,-1892 818,-1892 818,-1892 808,-2054 808,-2054 808,-2054 696,-2092 696,-2092 696,-2092 651.064,-2270.59 629.406,-2356.67"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="625.994,-2355.89 626.948,-2366.44 632.782,-2357.6 625.994,-2355.89"/>
+</g>
+<!-- 26,1 -->
+<g id="node25" class="node"><title>26,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-2402" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-2413.17" font-family="Times Roman,serif" font-size="10.00">26,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-2394 459,-2408 510,-2408 510,-2394 459,-2394"/>
+<text text-anchor="start" x="469.5" y="-2398.67" font-family="Times Roman,serif" font-size="10.00">GTAAT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-2380 459,-2394 510,-2394 510,-2380 459,-2380"/>
+<text text-anchor="start" x="470" y="-2384.67" font-family="Times Roman,serif" font-size="10.00">ATTAC</text>
+</g>
+<!-- 26,1&#45;&gt;26,2 -->
+<g id="edge312" class="edge"><title>26,1&#45;&gt;26,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-2395.53C540.501,-2395.25 550.748,-2395.18 560.703,-2395.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-2398.82 570.933,-2395.52 561.007,-2391.82 560.864,-2398.82"/>
+</g>
+<!-- 27,3 -->
+<g id="node32" class="node"><title>27,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-2836" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-2847.17" font-family="Times Roman,serif" font-size="10.00">27,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-2828 593,-2842 644,-2842 644,-2828 593,-2828"/>
+<text text-anchor="start" x="603" y="-2832.67" font-family="Times Roman,serif" font-size="10.00">TTACG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-2814 593,-2828 644,-2828 644,-2814 593,-2814"/>
+<text text-anchor="start" x="602" y="-2818.67" font-family="Times Roman,serif" font-size="10.00">CGTAA</text>
+</g>
+<!-- 26,1&#45;&gt;27,3 -->
+<g id="edge314" class="edge"><title>26,1&#45;&gt;27,3</title>
+<path fill="none" stroke="#06a2cb" d="M491.198,-2437.62C510.508,-2533.18 562,-2788 562,-2788 562,-2788 569.283,-2794.24 578.596,-2802.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="576.529,-2805.06 586.4,-2808.91 581.085,-2799.75 576.529,-2805.06"/>
+</g>
+<!-- 26,2&#45;&gt;25,4 -->
+<g id="edge318" class="edge"><title>26,2&#45;&gt;25,4</title>
+<path fill="none" stroke="#ebb035" d="M624.938,-2366.26C641.884,-2278.96 684,-2062 684,-2062 684,-2062 808,-2022 808,-2022 808,-2022 818,-1826 818,-1826 818,-1826 830,-1820 830,-1820 830,-1820 942,-1780 942,-1780 942,-1780 952,-1268 952,-1268 952,-1268 973.274,-1237.34 992.023,-1210.32"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="994.909,-1212.3 997.734,-1202.09 989.158,-1208.31 994.909,-1212.3"/>
+</g>
+<!-- 26,2&#45;&gt;26,1 -->
+<g id="edge320" class="edge"><title>26,2&#45;&gt;26,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-2408.48C561.29,-2408.75 551.041,-2408.82 541.091,-2408.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-2405.18 530.867,-2408.47 540.792,-2412.18 540.937,-2405.18"/>
+</g>
+<!-- 26,3 -->
+<g id="node27" class="node"><title>26,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2402" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2413.17" font-family="Times Roman,serif" font-size="10.00">26,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2394 727,-2408 778,-2408 778,-2394 727,-2394"/>
+<text text-anchor="start" x="736.5" y="-2398.67" font-family="Times Roman,serif" font-size="10.00">AATAG</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2380 727,-2394 778,-2394 778,-2380 727,-2380"/>
+<text text-anchor="start" x="738.5" y="-2384.67" font-family="Times Roman,serif" font-size="10.00">CTATT</text>
+</g>
+<!-- 26,2&#45;&gt;26,3 -->
+<g id="edge316" class="edge"><title>26,2&#45;&gt;26,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-2395.53C674.501,-2395.25 684.748,-2395.18 694.703,-2395.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-2398.82 704.933,-2395.52 695.007,-2391.82 694.864,-2398.82"/>
+</g>
+<!-- 26,3&#45;&gt;26,2 -->
+<g id="edge326" class="edge"><title>26,3&#45;&gt;26,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-2408.48C695.29,-2408.75 685.041,-2408.82 675.091,-2408.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-2405.18 664.867,-2408.47 674.792,-2412.18 674.937,-2405.18"/>
+</g>
+<!-- 26,3&#45;&gt;26,4 -->
+<g id="edge322" class="edge"><title>26,3&#45;&gt;26,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-2395.53C808.501,-2395.25 818.748,-2395.18 828.703,-2395.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-2398.82 838.933,-2395.52 829.007,-2391.82 828.864,-2398.82"/>
+</g>
+<!-- 27,1 -->
+<g id="node30" class="node"><title>27,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-2836" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-2847.17" font-family="Times Roman,serif" font-size="10.00">27,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-2828 325,-2842 376,-2842 376,-2828 325,-2828"/>
+<text text-anchor="start" x="337" y="-2832.67" font-family="Times Roman,serif" font-size="10.00">TATTA</text>
+<polygon fill="#218559" stroke="#218559" points="325,-2814 325,-2828 376,-2828 376,-2814 325,-2814"/>
+<text text-anchor="start" x="336" y="-2818.67" font-family="Times Roman,serif" font-size="10.00">TAATA</text>
+</g>
+<!-- 26,3&#45;&gt;27,1 -->
+<g id="edge324" class="edge"><title>26,3&#45;&gt;27,1</title>
+<path fill="none" stroke="#06a2cb" d="M720.4,-2429.09C707.697,-2439.97 696,-2450 696,-2450 696,-2450 686,-2566 686,-2566 686,-2566 480.412,-2731.2 390.866,-2803.16"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="388.432,-2800.63 382.829,-2809.62 392.816,-2806.08 388.432,-2800.63"/>
+</g>
+<!-- 26,4&#45;&gt;25,2 -->
+<g id="edge328" class="edge"><title>26,4&#45;&gt;25,2</title>
+<path fill="none" stroke="#ebb035" d="M854.4,-2374.91C841.697,-2364.03 830,-2354 830,-2354 830,-2354 808,-1492 808,-1492 808,-1492 775.499,-1305.12 760.017,-1216.1"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="763.423,-1215.25 758.261,-1206 756.526,-1216.45 763.423,-1215.25"/>
+</g>
+<!-- 26,4&#45;&gt;26,3 -->
+<g id="edge330" class="edge"><title>26,4&#45;&gt;26,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-2408.48C829.29,-2408.75 819.041,-2408.82 809.091,-2408.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-2405.18 798.867,-2408.47 808.792,-2412.18 808.937,-2405.18"/>
+</g>
+<!-- 27,1&#45;&gt;26,3 -->
+<g id="edge736" class="edge"><title>27,1&#45;&gt;26,3</title>
+<path fill="none" stroke="#06a2cb" d="M366.925,-2802.15C389.865,-2756.27 428,-2680 428,-2680 428,-2680 696,-2450 696,-2450 696,-2450 703.283,-2443.76 712.596,-2435.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="715.085,-2438.25 720.4,-2429.09 710.529,-2432.94 715.085,-2438.25"/>
+</g>
+<!-- 27,2 -->
+<g id="node31" class="node"><title>27,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-2836" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-2847.17" font-family="Times Roman,serif" font-size="10.00">27,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-2828 459,-2842 510,-2842 510,-2828 459,-2828"/>
+<text text-anchor="start" x="470" y="-2832.67" font-family="Times Roman,serif" font-size="10.00">ATTAC</text>
+<polygon fill="#218559" stroke="#218559" points="459,-2814 459,-2828 510,-2828 510,-2814 459,-2814"/>
+<text text-anchor="start" x="469.5" y="-2818.67" font-family="Times Roman,serif" font-size="10.00">GTAAT</text>
+</g>
+<!-- 27,1&#45;&gt;27,2 -->
+<g id="edge734" class="edge"><title>27,1&#45;&gt;27,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-2829.53C406.501,-2829.25 416.748,-2829.18 426.703,-2829.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-2832.82 436.933,-2829.52 427.007,-2825.82 426.864,-2832.82"/>
+</g>
+<!-- 27,2&#45;&gt;27,1 -->
+<g id="edge742" class="edge"><title>27,2&#45;&gt;27,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-2842.48C427.29,-2842.75 417.041,-2842.82 407.091,-2842.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-2839.18 396.867,-2842.47 406.792,-2846.18 406.937,-2839.18"/>
+</g>
+<!-- 27,2&#45;&gt;27,3 -->
+<g id="edge740" class="edge"><title>27,2&#45;&gt;27,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-2829.53C540.501,-2829.25 550.748,-2829.18 560.703,-2829.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-2832.82 570.933,-2829.52 561.007,-2825.82 560.864,-2832.82"/>
+</g>
+<!-- 28,1 -->
+<g id="node55" class="node"><title>28,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-2740" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-2751.17" font-family="Times Roman,serif" font-size="10.00">28,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-2732 593,-2746 644,-2746 644,-2732 593,-2732"/>
+<text text-anchor="start" x="603" y="-2736.67" font-family="Times Roman,serif" font-size="10.00">TTACG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-2718 593,-2732 644,-2732 644,-2718 593,-2718"/>
+<text text-anchor="start" x="602" y="-2722.67" font-family="Times Roman,serif" font-size="10.00">CGTAA</text>
+</g>
+<!-- 27,2&#45;&gt;28,1 -->
+<g id="edge738" class="edge"><title>27,2&#45;&gt;28,1</title>
+<path fill="none" stroke="#dd1e2f" d="M523.949,-2816.03C538.751,-2808.62 552,-2802 552,-2802 552,-2802 562,-2788 562,-2788 562,-2788 569.283,-2781.76 578.596,-2773.78"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="581.085,-2776.25 586.4,-2767.09 576.529,-2770.94 581.085,-2776.25"/>
+</g>
+<!-- 27,3&#45;&gt;26,1 -->
+<g id="edge748" class="edge"><title>27,3&#45;&gt;26,1</title>
+<path fill="none" stroke="#06a2cb" d="M586.4,-2808.91C573.697,-2798.03 562,-2788 562,-2788 562,-2788 550,-2746 550,-2746 550,-2746 510.777,-2541.56 492.805,-2447.89"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="496.198,-2447 490.876,-2437.84 489.323,-2448.32 496.198,-2447"/>
+</g>
+<!-- 27,3&#45;&gt;27,2 -->
+<g id="edge750" class="edge"><title>27,3&#45;&gt;27,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-2842.48C561.29,-2842.75 551.041,-2842.82 541.091,-2842.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-2839.18 530.867,-2842.47 540.792,-2846.18 540.937,-2839.18"/>
+</g>
+<!-- 27,4 -->
+<g id="node33" class="node"><title>27,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2836" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2847.17" font-family="Times Roman,serif" font-size="10.00">27,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2828 727,-2842 778,-2842 778,-2828 727,-2828"/>
+<text text-anchor="start" x="737" y="-2832.67" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2814 727,-2828 778,-2828 778,-2814 727,-2814"/>
+<text text-anchor="start" x="736.5" y="-2818.67" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+</g>
+<!-- 27,3&#45;&gt;27,4 -->
+<g id="edge746" class="edge"><title>27,3&#45;&gt;27,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-2829.53C674.501,-2829.25 684.748,-2829.18 694.703,-2829.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-2832.82 704.933,-2829.52 695.007,-2825.82 694.864,-2832.82"/>
+</g>
+<!-- 22,1 -->
+<g id="node45" class="node"><title>22,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3234" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-3245.17" font-family="Times Roman,serif" font-size="10.00">22,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-3226 459,-3240 510,-3240 510,-3226 459,-3226"/>
+<text text-anchor="start" x="469" y="-3230.67" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-3212 459,-3226 510,-3226 510,-3212 459,-3212"/>
+<text text-anchor="start" x="468.5" y="-3216.67" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+</g>
+<!-- 27,3&#45;&gt;22,1 -->
+<g id="edge744" class="edge"><title>27,3&#45;&gt;22,1</title>
+<path fill="none" stroke="#dd1e2f" d="M605.012,-2871.02C588.469,-2915.63 562,-2987 562,-2987 562,-2987 540,-3083 540,-3083 540,-3083 517.026,-3144.95 500.508,-3189.49"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="497.184,-3188.38 496.988,-3198.98 503.747,-3190.82 497.184,-3188.38"/>
+</g>
+<!-- 27,4&#45;&gt;27,3 -->
+<g id="edge758" class="edge"><title>27,4&#45;&gt;27,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-2842.48C695.29,-2842.75 685.041,-2842.82 675.091,-2842.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-2839.18 664.867,-2842.47 674.792,-2846.18 674.937,-2839.18"/>
+</g>
+<!-- 21,4 -->
+<g id="node43" class="node"><title>21,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3649" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-3660.17" font-family="Times Roman,serif" font-size="10.00">21,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-3641 861,-3655 912,-3655 912,-3641 861,-3641"/>
+<text text-anchor="start" x="869.5" y="-3645.67" font-family="Times Roman,serif" font-size="10.00">ACGTG</text>
+<polygon fill="#218559" stroke="#218559" points="861,-3627 861,-3641 912,-3641 912,-3627 861,-3627"/>
+<text text-anchor="start" x="870" y="-3631.67" font-family="Times Roman,serif" font-size="10.00">CACGT</text>
+</g>
+<!-- 27,4&#45;&gt;21,4 -->
+<g id="edge754" class="edge"><title>27,4&#45;&gt;21,4</title>
+<path fill="none" stroke="#dd1e2f" d="M764.988,-2871.02C781.531,-2915.63 808,-2987 808,-2987 808,-2987 820,-3083 820,-3083 820,-3083 830,-3531 830,-3531 830,-3531 849.437,-3571.96 865.409,-3605.61"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="862.353,-3607.34 869.802,-3614.87 868.677,-3604.33 862.353,-3607.34"/>
+</g>
+<!-- 22,2 -->
+<g id="node46" class="node"><title>22,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3234" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-3245.17" font-family="Times Roman,serif" font-size="10.00">22,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-3226 593,-3240 644,-3240 644,-3226 593,-3226"/>
+<text text-anchor="start" x="601.5" y="-3230.67" font-family="Times Roman,serif" font-size="10.00">ACGTG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-3212 593,-3226 644,-3226 644,-3212 593,-3212"/>
+<text text-anchor="start" x="602" y="-3216.67" font-family="Times Roman,serif" font-size="10.00">CACGT</text>
+</g>
+<!-- 27,4&#45;&gt;22,2 -->
+<g id="edge756" class="edge"><title>27,4&#45;&gt;22,2</title>
+<path fill="none" stroke="#dd1e2f" d="M739.012,-2871.02C722.469,-2915.63 696,-2987 696,-2987 696,-2987 674,-3179 674,-3179 674,-3179 665.159,-3187.68 654.502,-3198.15"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="651.994,-3195.71 647.312,-3205.21 656.899,-3200.7 651.994,-3195.71"/>
+</g>
+<!-- 28,3 -->
+<g id="node57" class="node"><title>28,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2740" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-2751.17" font-family="Times Roman,serif" font-size="10.00">28,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-2732 861,-2746 912,-2746 912,-2732 861,-2732"/>
+<text text-anchor="start" x="870.5" y="-2736.67" font-family="Times Roman,serif" font-size="10.00">ACGTC</text>
+<polygon fill="#218559" stroke="#218559" points="861,-2718 861,-2732 912,-2732 912,-2718 861,-2718"/>
+<text text-anchor="start" x="869.5" y="-2722.67" font-family="Times Roman,serif" font-size="10.00">GACGT</text>
+</g>
+<!-- 27,4&#45;&gt;28,3 -->
+<g id="edge752" class="edge"><title>27,4&#45;&gt;28,3</title>
+<path fill="none" stroke="#dd1e2f" d="M790.767,-2814.91C806.038,-2806.6 820,-2799 820,-2799 820,-2799 832.918,-2787.45 847.324,-2774.57"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="849.81,-2777.05 854.933,-2767.77 845.145,-2771.83 849.81,-2777.05"/>
+</g>
+<!-- 20,1 -->
+<g id="node35" class="node"><title>20,1</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-4114" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="193.5" y="-4125.17" font-family="Times Roman,serif" font-size="10.00">20,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="191,-4106 191,-4120 242,-4120 242,-4106 191,-4106"/>
+<text text-anchor="start" x="201.5" y="-4110.67" font-family="Times Roman,serif" font-size="10.00">TCAAT</text>
+<polygon fill="#218559" stroke="#218559" points="191,-4092 191,-4106 242,-4106 242,-4092 191,-4092"/>
+<text text-anchor="start" x="201" y="-4096.67" font-family="Times Roman,serif" font-size="10.00">ATTGA</text>
+</g>
+<!-- 20,2 -->
+<g id="node36" class="node"><title>20,2</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-4114" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-4125.17" font-family="Times Roman,serif" font-size="10.00">20,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-4106 325,-4120 376,-4120 376,-4106 325,-4106"/>
+<text text-anchor="start" x="335" y="-4110.67" font-family="Times Roman,serif" font-size="10.00">CAATA</text>
+<polygon fill="#218559" stroke="#218559" points="325,-4092 325,-4106 376,-4106 376,-4092 325,-4092"/>
+<text text-anchor="start" x="336" y="-4096.67" font-family="Times Roman,serif" font-size="10.00">TATTG</text>
+</g>
+<!-- 20,1&#45;&gt;20,2 -->
+<g id="edge232" class="edge"><title>20,1&#45;&gt;20,2</title>
+<path fill="none" stroke="#dd1e2f" d="M262.867,-4107.53C272.501,-4107.25 282.748,-4107.18 292.703,-4107.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="292.864,-4110.82 302.933,-4107.52 293.007,-4103.82 292.864,-4110.82"/>
+</g>
+<!-- 20,1&#45;&gt;19,3 -->
+<g id="edge234" class="edge"><title>20,1&#45;&gt;19,3</title>
+<path fill="none" stroke="#06a2cb" d="M237.703,-4146.23C257.603,-4175.79 284,-4215 284,-4215 284,-4215 294,-5072 294,-5072 294,-5072 316.267,-5129.26 332.719,-5171.56"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="329.557,-5173.09 336.444,-5181.14 336.081,-5170.55 329.557,-5173.09"/>
+</g>
+<!-- 20,2&#45;&gt;20,1 -->
+<g id="edge240" class="edge"><title>20,2&#45;&gt;20,1</title>
+<path fill="none" stroke="#218559" d="M302.933,-4120.48C293.29,-4120.75 283.041,-4120.82 273.091,-4120.68"/>
+<polygon fill="#218559" stroke="#218559" points="272.937,-4117.18 262.867,-4120.47 272.792,-4124.18 272.937,-4117.18"/>
+</g>
+<!-- 20,3 -->
+<g id="node37" class="node"><title>20,3</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-4114" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-4125.17" font-family="Times Roman,serif" font-size="10.00">20,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-4106 459,-4120 510,-4120 510,-4106 459,-4106"/>
+<text text-anchor="start" x="469" y="-4110.67" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="459,-4092 459,-4106 510,-4106 510,-4092 459,-4092"/>
+<text text-anchor="start" x="470.5" y="-4096.67" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 20,2&#45;&gt;20,3 -->
+<g id="edge238" class="edge"><title>20,2&#45;&gt;20,3</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-4107.53C406.501,-4107.25 416.748,-4107.18 426.703,-4107.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-4110.82 436.933,-4107.52 427.007,-4103.82 426.864,-4110.82"/>
+</g>
+<!-- 21,1 -->
+<g id="node40" class="node"><title>21,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3649" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-3660.17" font-family="Times Roman,serif" font-size="10.00">21,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-3641 459,-3655 510,-3655 510,-3641 459,-3641"/>
+<text text-anchor="start" x="469" y="-3645.67" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="459,-3627 459,-3641 510,-3641 510,-3627 459,-3627"/>
+<text text-anchor="start" x="470.5" y="-3631.67" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 20,2&#45;&gt;21,1 -->
+<g id="edge236" class="edge"><title>20,2&#45;&gt;21,1</title>
+<path fill="none" stroke="#dd1e2f" d="M364.013,-4079.55C378.18,-4044.72 398,-3996 398,-3996 398,-3996 449.463,-3788.35 472.769,-3694.32"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="476.192,-3695.05 475.201,-3684.5 469.398,-3693.37 476.192,-3695.05"/>
+</g>
+<!-- 20,3&#45;&gt;20,2 -->
+<g id="edge246" class="edge"><title>20,3&#45;&gt;20,2</title>
+<path fill="none" stroke="#218559" d="M436.933,-4120.48C427.29,-4120.75 417.041,-4120.82 407.091,-4120.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-4117.18 396.867,-4120.47 406.792,-4124.18 406.937,-4117.18"/>
+</g>
+<!-- 20,4 -->
+<g id="node38" class="node"><title>20,4</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-4114" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-4125.17" font-family="Times Roman,serif" font-size="10.00">20,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-4106 593,-4120 644,-4120 644,-4106 593,-4106"/>
+<text text-anchor="start" x="602.5" y="-4110.67" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-4092 593,-4106 644,-4106 644,-4092 593,-4092"/>
+<text text-anchor="start" x="603.5" y="-4096.67" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 20,3&#45;&gt;20,4 -->
+<g id="edge242" class="edge"><title>20,3&#45;&gt;20,4</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-4107.53C540.501,-4107.25 550.748,-4107.18 560.703,-4107.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-4110.82 570.933,-4107.52 561.007,-4103.82 560.864,-4110.82"/>
+</g>
+<!-- 19,1 -->
+<g id="node149" class="node"><title>19,1</title>
+<ellipse fill="none" stroke="black" cx="64" cy="-5216" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="41.5" y="-5227.17" font-family="Times Roman,serif" font-size="10.00">19,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="39,-5208 39,-5222 90,-5222 90,-5208 39,-5208"/>
+<text text-anchor="start" x="50" y="-5212.67" font-family="Times Roman,serif" font-size="10.00">TATTG</text>
+<polygon fill="#218559" stroke="#218559" points="39,-5194 39,-5208 90,-5208 90,-5194 39,-5194"/>
+<text text-anchor="start" x="49" y="-5198.67" font-family="Times Roman,serif" font-size="10.00">CAATA</text>
+</g>
+<!-- 20,3&#45;&gt;19,1 -->
+<g id="edge244" class="edge"><title>20,3&#45;&gt;19,1</title>
+<path fill="none" stroke="#06a2cb" d="M476.816,-4149.67C456.146,-4252.3 398,-4541 398,-4541 398,-4541 294,-4677 294,-4677 294,-4677 137.748,-5043.17 82.8196,-5171.9"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="79.4431,-5170.89 78.7374,-5181.46 85.8814,-5173.64 79.4431,-5170.89"/>
+</g>
+<!-- 20,4&#45;&gt;20,3 -->
+<g id="edge250" class="edge"><title>20,4&#45;&gt;20,3</title>
+<path fill="none" stroke="#218559" d="M570.933,-4120.48C561.29,-4120.75 551.041,-4120.82 541.091,-4120.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-4117.18 530.867,-4120.47 540.792,-4124.18 540.937,-4117.18"/>
+</g>
+<!-- 21,3 -->
+<g id="node42" class="node"><title>21,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3649" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-3660.17" font-family="Times Roman,serif" font-size="10.00">21,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-3641 727,-3655 778,-3655 778,-3641 727,-3641"/>
+<text text-anchor="start" x="737" y="-3645.67" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-3627 727,-3641 778,-3641 778,-3627 727,-3627"/>
+<text text-anchor="start" x="736.5" y="-3631.67" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+</g>
+<!-- 20,4&#45;&gt;21,3 -->
+<g id="edge248" class="edge"><title>20,4&#45;&gt;21,3</title>
+<path fill="none" stroke="#dd1e2f" d="M634.198,-4079.87C650.736,-4045.02 674,-3996 674,-3996 674,-3996 684,-3750 684,-3750 684,-3750 705.679,-3717.8 724.556,-3689.76"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727.616,-3691.48 730.297,-3681.23 721.809,-3687.58 727.616,-3691.48"/>
+</g>
+<!-- 21,1&#45;&gt;20,2 -->
+<g id="edge664" class="edge"><title>21,1&#45;&gt;20,2</title>
+<path fill="none" stroke="#218559" d="M475.04,-3684.44C456.575,-3757.49 416,-3918 416,-3918 416,-3918 398,-3996 398,-3996 398,-3996 381.582,-4036.36 367.95,-4069.87"/>
+<polygon fill="#218559" stroke="#218559" points="364.539,-4068.97 364.013,-4079.55 371.023,-4071.61 364.539,-4068.97"/>
+</g>
+<!-- 21,2 -->
+<g id="node41" class="node"><title>21,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3649" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-3660.17" font-family="Times Roman,serif" font-size="10.00">21,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-3641 593,-3655 644,-3655 644,-3641 593,-3641"/>
+<text text-anchor="start" x="602.5" y="-3645.67" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-3627 593,-3641 644,-3641 644,-3627 593,-3627"/>
+<text text-anchor="start" x="603.5" y="-3631.67" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 21,1&#45;&gt;21,2 -->
+<g id="edge662" class="edge"><title>21,1&#45;&gt;21,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-3642.53C540.501,-3642.25 550.748,-3642.18 560.703,-3642.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-3645.82 570.933,-3642.52 561.007,-3638.82 560.864,-3645.82"/>
+</g>
+<!-- 21,2&#45;&gt;21,1 -->
+<g id="edge670" class="edge"><title>21,2&#45;&gt;21,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-3655.48C561.29,-3655.75 551.041,-3655.82 541.091,-3655.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-3652.18 530.867,-3655.47 540.792,-3659.18 540.937,-3652.18"/>
+</g>
+<!-- 21,2&#45;&gt;21,3 -->
+<g id="edge668" class="edge"><title>21,2&#45;&gt;21,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-3642.53C674.501,-3642.25 684.748,-3642.18 694.703,-3642.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-3645.82 704.933,-3642.52 695.007,-3638.82 694.864,-3645.82"/>
+</g>
+<!-- 21,2&#45;&gt;22,1 -->
+<g id="edge666" class="edge"><title>21,2&#45;&gt;22,1</title>
+<path fill="none" stroke="#dd1e2f" d="M601.802,-3614.87C585.264,-3580.02 562,-3531 562,-3531 562,-3531 552,-3362 552,-3362 552,-3362 526.516,-3314.03 506.749,-3276.82"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="509.649,-3274.82 501.866,-3267.63 503.467,-3278.1 509.649,-3274.82"/>
+</g>
+<!-- 21,3&#45;&gt;20,4 -->
+<g id="edge674" class="edge"><title>21,3&#45;&gt;20,4</title>
+<path fill="none" stroke="#218559" d="M733.956,-3682.43C713.81,-3719.76 684,-3775 684,-3775 684,-3775 674,-3996 674,-3996 674,-3996 654.563,-4036.96 638.591,-4070.61"/>
+<polygon fill="#218559" stroke="#218559" points="635.323,-4069.33 634.198,-4079.87 641.647,-4072.34 635.323,-4069.33"/>
+</g>
+<!-- 21,3&#45;&gt;21,2 -->
+<g id="edge676" class="edge"><title>21,3&#45;&gt;21,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-3655.48C695.29,-3655.75 685.041,-3655.82 675.091,-3655.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-3652.18 664.867,-3655.47 674.792,-3659.18 674.937,-3652.18"/>
+</g>
+<!-- 21,3&#45;&gt;21,4 -->
+<g id="edge672" class="edge"><title>21,3&#45;&gt;21,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-3642.53C808.501,-3642.25 818.748,-3642.18 828.703,-3642.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-3645.82 838.933,-3642.52 829.007,-3638.82 828.864,-3645.82"/>
+</g>
+<!-- 21,4&#45;&gt;27,4 -->
+<g id="edge680" class="edge"><title>21,4&#45;&gt;27,4</title>
+<path fill="none" stroke="#218559" d="M869.802,-3614.87C853.264,-3580.02 830,-3531 830,-3531 830,-3531 820,-2915 820,-2915 820,-2915 802.13,-2894.24 784.712,-2874"/>
+<polygon fill="#218559" stroke="#218559" points="787.272,-2871.61 778.096,-2866.32 781.967,-2876.18 787.272,-2871.61"/>
+</g>
+<!-- 21,4&#45;&gt;21,3 -->
+<g id="edge682" class="edge"><title>21,4&#45;&gt;21,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-3655.48C829.29,-3655.75 819.041,-3655.82 809.091,-3655.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-3652.18 798.867,-3655.47 808.792,-3659.18 808.937,-3652.18"/>
+</g>
+<!-- 22,3 -->
+<g id="node47" class="node"><title>22,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3234" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-3245.17" font-family="Times Roman,serif" font-size="10.00">22,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-3226 727,-3240 778,-3240 778,-3226 727,-3226"/>
+<text text-anchor="start" x="735.5" y="-3230.67" font-family="Times Roman,serif" font-size="10.00">CGTGA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-3212 727,-3226 778,-3226 778,-3212 727,-3212"/>
+<text text-anchor="start" x="736" y="-3216.67" font-family="Times Roman,serif" font-size="10.00">TCACG</text>
+</g>
+<!-- 21,4&#45;&gt;22,3 -->
+<g id="edge678" class="edge"><title>21,4&#45;&gt;22,3</title>
+<path fill="none" stroke="#dd1e2f" d="M869.802,-3614.87C853.264,-3580.02 830,-3531 830,-3531 830,-3531 820,-3477 820,-3477 820,-3477 784.341,-3349.57 764.668,-3279.27"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="767.953,-3278.02 761.888,-3269.33 761.212,-3279.91 767.953,-3278.02"/>
+</g>
+<!-- 22,1&#45;&gt;27,3 -->
+<g id="edge256" class="edge"><title>22,1&#45;&gt;27,3</title>
+<path fill="none" stroke="#218559" d="M496.988,-3198.98C513.531,-3154.37 540,-3083 540,-3083 540,-3083 550,-2962 550,-2962 550,-2962 575.335,-2915.06 595.076,-2878.48"/>
+<polygon fill="#218559" stroke="#218559" points="598.286,-2879.9 599.956,-2869.43 592.126,-2876.57 598.286,-2879.9"/>
+</g>
+<!-- 22,1&#45;&gt;21,2 -->
+<g id="edge258" class="edge"><title>22,1&#45;&gt;21,2</title>
+<path fill="none" stroke="#218559" d="M500.984,-3267.72C521.125,-3307.7 552,-3369 552,-3369 552,-3369 562,-3531 562,-3531 562,-3531 581.437,-3571.96 597.409,-3605.61"/>
+<polygon fill="#218559" stroke="#218559" points="594.353,-3607.34 601.802,-3614.87 600.677,-3604.33 594.353,-3607.34"/>
+</g>
+<!-- 22,1&#45;&gt;22,2 -->
+<g id="edge252" class="edge"><title>22,1&#45;&gt;22,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-3227.53C540.501,-3227.25 550.748,-3227.18 560.703,-3227.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-3230.82 570.933,-3227.52 561.007,-3223.82 560.864,-3230.82"/>
+</g>
+<!-- 22,1&#45;&gt;28,1 -->
+<g id="edge254" class="edge"><title>22,1&#45;&gt;28,1</title>
+<path fill="none" stroke="#218559" d="M496.988,-3198.98C513.531,-3154.37 540,-3083 540,-3083 540,-3083 562,-2788 562,-2788 562,-2788 569.283,-2781.76 578.596,-2773.78"/>
+<polygon fill="#218559" stroke="#218559" points="581.085,-2776.25 586.4,-2767.09 576.529,-2770.94 581.085,-2776.25"/>
+</g>
+<!-- 22,2&#45;&gt;27,4 -->
+<g id="edge264" class="edge"><title>22,2&#45;&gt;27,4</title>
+<path fill="none" stroke="#218559" d="M647.312,-3205.21C660.861,-3191.9 674,-3179 674,-3179 674,-3179 684,-2962 684,-2962 684,-2962 709.335,-2915.06 729.076,-2878.48"/>
+<polygon fill="#218559" stroke="#218559" points="732.286,-2879.9 733.956,-2869.43 726.126,-2876.57 732.286,-2879.9"/>
+</g>
+<!-- 22,2&#45;&gt;22,1 -->
+<g id="edge266" class="edge"><title>22,2&#45;&gt;22,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-3240.48C561.29,-3240.75 551.041,-3240.82 541.091,-3240.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-3237.18 530.867,-3240.47 540.792,-3244.18 540.937,-3237.18"/>
+</g>
+<!-- 22,2&#45;&gt;22,3 -->
+<g id="edge260" class="edge"><title>22,2&#45;&gt;22,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-3227.53C674.501,-3227.25 684.748,-3227.18 694.703,-3227.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-3230.82 704.933,-3227.52 695.007,-3223.82 694.864,-3230.82"/>
+</g>
+<!-- 23,4 -->
+<g id="node53" class="node"><title>23,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-4725" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-4736.17" font-family="Times Roman,serif" font-size="10.00">23,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-4717 727,-4731 778,-4731 778,-4717 727,-4717"/>
+<text text-anchor="start" x="736" y="-4721.67" font-family="Times Roman,serif" font-size="10.00">TCACG</text>
+<polygon fill="#218559" stroke="#218559" points="727,-4703 727,-4717 778,-4717 778,-4703 727,-4703"/>
+<text text-anchor="start" x="735.5" y="-4707.67" font-family="Times Roman,serif" font-size="10.00">CGTGA</text>
+</g>
+<!-- 22,2&#45;&gt;23,4 -->
+<g id="edge262" class="edge"><title>22,2&#45;&gt;23,4</title>
+<path fill="none" stroke="#ebb035" d="M627.883,-3269.47C643.959,-3327.18 674,-3435 674,-3435 674,-3435 686,-3516 686,-3516 686,-3516 696,-4677 696,-4677 696,-4677 703.283,-4683.24 712.596,-4691.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="710.529,-4694.06 720.4,-4697.91 715.085,-4688.75 710.529,-4694.06"/>
+</g>
+<!-- 22,3&#45;&gt;21,4 -->
+<g id="edge270" class="edge"><title>22,3&#45;&gt;21,4</title>
+<path fill="none" stroke="#218559" d="M761.883,-3269.47C777.959,-3327.18 808,-3435 808,-3435 808,-3435 830,-3531 830,-3531 830,-3531 849.437,-3571.96 865.409,-3605.61"/>
+<polygon fill="#218559" stroke="#218559" points="862.353,-3607.34 869.802,-3614.87 868.677,-3604.33 862.353,-3607.34"/>
+</g>
+<!-- 22,3&#45;&gt;22,2 -->
+<g id="edge272" class="edge"><title>22,3&#45;&gt;22,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-3240.48C695.29,-3240.75 685.041,-3240.82 675.091,-3240.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-3237.18 664.867,-3240.47 674.792,-3244.18 674.937,-3237.18"/>
+</g>
+<!-- 22,4 -->
+<g id="node48" class="node"><title>22,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3234" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-3245.17" font-family="Times Roman,serif" font-size="10.00">22,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-3226 861,-3240 912,-3240 912,-3226 861,-3226"/>
+<text text-anchor="start" x="869.5" y="-3230.67" font-family="Times Roman,serif" font-size="10.00">GTGAA</text>
+<polygon fill="#218559" stroke="#218559" points="861,-3212 861,-3226 912,-3226 912,-3212 861,-3212"/>
+<text text-anchor="start" x="871.5" y="-3216.67" font-family="Times Roman,serif" font-size="10.00">TTCAC</text>
+</g>
+<!-- 22,3&#45;&gt;22,4 -->
+<g id="edge268" class="edge"><title>22,3&#45;&gt;22,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-3227.53C808.501,-3227.25 818.748,-3227.18 828.703,-3227.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-3230.82 838.933,-3227.52 829.007,-3223.82 828.864,-3230.82"/>
+</g>
+<!-- 22,4&#45;&gt;22,3 -->
+<g id="edge276" class="edge"><title>22,4&#45;&gt;22,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-3240.48C829.29,-3240.75 819.041,-3240.82 809.091,-3240.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-3237.18 798.867,-3240.47 808.792,-3244.18 808.937,-3237.18"/>
+</g>
+<!-- 23,2 -->
+<g id="node51" class="node"><title>23,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-4725" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-4736.17" font-family="Times Roman,serif" font-size="10.00">23,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-4717 459,-4731 510,-4731 510,-4717 459,-4717"/>
+<text text-anchor="start" x="470" y="-4721.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-4703 459,-4717 510,-4717 510,-4703 459,-4703"/>
+<text text-anchor="start" x="467.5" y="-4707.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+</g>
+<!-- 22,4&#45;&gt;23,2 -->
+<g id="edge274" class="edge"><title>22,4&#45;&gt;23,2</title>
+<path fill="none" stroke="#ebb035" d="M876.117,-3269.47C860.041,-3327.18 830,-3435 830,-3435 830,-3435 808,-3561 808,-3561 808,-3561 696,-3601 696,-3601 696,-3601 674,-4192 674,-4192 674,-4192 562,-4415 562,-4415 562,-4415 550,-4546 550,-4546 550,-4546 540,-4677 540,-4677 540,-4677 532.717,-4683.24 523.404,-4691.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="520.915,-4688.75 515.6,-4697.91 525.471,-4694.06 520.915,-4688.75"/>
+</g>
+<!-- 23,1&#45;&gt;24,3 -->
+<g id="edge690" class="edge"><title>23,1&#45;&gt;24,3</title>
+<path fill="none" stroke="#06a2cb" d="M358.034,-4689.18C371.699,-4628.26 398,-4511 398,-4511 398,-4511 416,-4240 416,-4240 416,-4240 418,-4212 418,-4212 418,-4212 428,-4026 428,-4026 428,-4026 540,-3996 540,-3996 540,-3996 562,-3896 562,-3896 562,-3896 674,-3896 674,-3896 674,-3896 686,-4442 686,-4442 686,-4442 696,-5072 696,-5072 696,-5072 703.283,-5078.24 712.596,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="710.529,-5089.06 720.4,-5092.91 715.085,-5083.75 710.529,-5089.06"/>
+</g>
+<!-- 23,1&#45;&gt;23,2 -->
+<g id="edge686" class="edge"><title>23,1&#45;&gt;23,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-4718.53C406.501,-4718.25 416.748,-4718.18 426.703,-4718.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-4721.82 436.933,-4718.52 427.007,-4714.82 426.864,-4721.82"/>
+</g>
+<!-- 23,1&#45;&gt;7,1 -->
+<g id="edge684" class="edge"><title>23,1&#45;&gt;7,1</title>
+<path fill="none" stroke="#dd1e2f" d="M386.389,-4701.45C402.556,-4690.99 418,-4681 418,-4681 418,-4681 430.492,-4671.16 444.607,-4660.04"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="446.857,-4662.72 452.546,-4653.78 442.525,-4657.22 446.857,-4662.72"/>
+</g>
+<!-- 17,2 -->
+<g id="node140" class="node"><title>17,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3948" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-3959.17" font-family="Times Roman,serif" font-size="10.00">17,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-3940 459,-3954 510,-3954 510,-3940 459,-3940"/>
+<text text-anchor="start" x="467" y="-3944.67" font-family="Times Roman,serif" font-size="10.00">AAACG</text>
+<polygon fill="#218559" stroke="#218559" points="459,-3926 459,-3940 510,-3940 510,-3926 459,-3926"/>
+<text text-anchor="start" x="469.5" y="-3930.67" font-family="Times Roman,serif" font-size="10.00">CGTTT</text>
+</g>
+<!-- 23,1&#45;&gt;17,2 -->
+<g id="edge692" class="edge"><title>23,1&#45;&gt;17,2</title>
+<path fill="none" stroke="#06a2cb" d="M358.034,-4689.18C371.699,-4628.26 398,-4511 398,-4511 398,-4511 416,-4215 416,-4215 416,-4215 418,-4187 418,-4187 418,-4187 428,-3998 428,-3998 428,-3998 435.684,-3991.14 445.359,-3982.5"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="447.923,-3984.9 453.052,-3975.63 443.261,-3979.68 447.923,-3984.9"/>
+</g>
+<!-- 23,1&#45;&gt;19,4 -->
+<g id="edge688" class="edge"><title>23,1&#45;&gt;19,4</title>
+<path fill="none" stroke="#ebb035" d="M356.826,-4760.7C370.078,-4829.99 398,-4976 398,-4976 398,-4976 418,-5091 418,-5091 418,-5091 428,-5168 428,-5168 428,-5168 435.283,-5174.24 444.596,-5182.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="442.529,-5185.06 452.4,-5188.91 447.085,-5179.75 442.529,-5185.06"/>
+</g>
+<!-- 18,1 -->
+<g id="node154" class="node"><title>18,1</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-4463" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="193.5" y="-4474.17" font-family="Times Roman,serif" font-size="10.00">18,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="191,-4455 191,-4469 242,-4469 242,-4455 191,-4455"/>
+<text text-anchor="start" x="201.5" y="-4459.67" font-family="Times Roman,serif" font-size="10.00">CGTTT</text>
+<polygon fill="#218559" stroke="#218559" points="191,-4441 191,-4455 242,-4455 242,-4441 191,-4441"/>
+<text text-anchor="start" x="199" y="-4445.67" font-family="Times Roman,serif" font-size="10.00">AAACG</text>
+</g>
+<!-- 23,1&#45;&gt;18,1 -->
+<g id="edge694" class="edge"><title>23,1&#45;&gt;18,1</title>
+<path fill="none" stroke="#218559" d="M333.345,-4690.93C313.793,-4650.94 284,-4590 284,-4590 284,-4590 258.516,-4542.4 238.749,-4505.49"/>
+<polygon fill="#218559" stroke="#218559" points="241.672,-4503.53 233.866,-4496.37 235.501,-4506.84 241.672,-4503.53"/>
+</g>
+<!-- 23,2&#45;&gt;22,4 -->
+<g id="edge698" class="edge"><title>23,2&#45;&gt;22,4</title>
+<path fill="none" stroke="#ebb035" d="M515.6,-4697.91C528.303,-4687.03 540,-4677 540,-4677 540,-4677 562,-4192 562,-4192 562,-4192 674,-4162 674,-4162 674,-4162 684,-3796 684,-3796 684,-3796 696,-3561 696,-3561 696,-3561 808,-3531 808,-3531 808,-3531 830,-3435 830,-3435 830,-3435 856.845,-3338.65 873.362,-3279.36"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="876.805,-3280.04 876.117,-3269.47 870.062,-3278.17 876.805,-3280.04"/>
+</g>
+<!-- 23,2&#45;&gt;23,1 -->
+<g id="edge702" class="edge"><title>23,2&#45;&gt;23,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-4731.48C427.29,-4731.75 417.041,-4731.82 407.091,-4731.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-4728.18 396.867,-4731.47 406.792,-4735.18 406.937,-4728.18"/>
+</g>
+<!-- 23,2&#45;&gt;23,3 -->
+<g id="edge696" class="edge"><title>23,2&#45;&gt;23,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-4718.53C540.501,-4718.25 550.748,-4718.18 560.703,-4718.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-4721.82 570.933,-4718.52 561.007,-4714.82 560.864,-4721.82"/>
+</g>
+<!-- 23,2&#45;&gt;17,1 -->
+<g id="edge700" class="edge"><title>23,2&#45;&gt;17,1</title>
+<path fill="none" stroke="#06a2cb" d="M452.4,-4697.91C439.697,-4687.03 428,-4677 428,-4677 428,-4677 418,-3825 418,-3825 418,-3825 416,-3825 416,-3825 416,-3825 392.048,-3869.64 373.003,-3905.13"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="369.679,-3903.92 368.035,-3914.39 375.847,-3907.23 369.679,-3903.92"/>
+</g>
+<!-- 23,3&#45;&gt;24,1 -->
+<g id="edge706" class="edge"><title>23,3&#45;&gt;24,1</title>
+<path fill="none" stroke="#06a2cb" d="M609.73,-4760.63C591.608,-4838.72 550,-5018 550,-5018 550,-5018 540,-5072 540,-5072 540,-5072 532.717,-5078.24 523.404,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="520.915,-5083.75 515.6,-5092.91 525.471,-5089.06 520.915,-5083.75"/>
+</g>
+<!-- 23,3&#45;&gt;23,2 -->
+<g id="edge708" class="edge"><title>23,3&#45;&gt;23,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-4731.48C561.29,-4731.75 551.041,-4731.82 541.091,-4731.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-4728.18 530.867,-4731.47 540.792,-4735.18 540.937,-4728.18"/>
+</g>
+<!-- 23,3&#45;&gt;23,4 -->
+<g id="edge704" class="edge"><title>23,3&#45;&gt;23,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-4718.53C674.501,-4718.25 684.748,-4718.18 694.703,-4718.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-4721.82 704.933,-4718.52 695.007,-4714.82 694.864,-4721.82"/>
+</g>
+<!-- 23,4&#45;&gt;22,2 -->
+<g id="edge710" class="edge"><title>23,4&#45;&gt;22,2</title>
+<path fill="none" stroke="#ebb035" d="M720.4,-4697.91C707.697,-4687.03 696,-4677 696,-4677 696,-4677 686,-3501 686,-3501 686,-3501 674,-3435 674,-3435 674,-3435 647.155,-3338.65 630.638,-3279.36"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="633.938,-3278.17 627.883,-3269.47 627.195,-3280.04 633.938,-3278.17"/>
+</g>
+<!-- 23,4&#45;&gt;23,3 -->
+<g id="edge712" class="edge"><title>23,4&#45;&gt;23,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-4731.48C695.29,-4731.75 685.041,-4731.82 675.091,-4731.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-4728.18 664.867,-4731.47 674.792,-4735.18 674.937,-4728.18"/>
+</g>
+<!-- 28,1&#45;&gt;27,2 -->
+<g id="edge336" class="edge"><title>28,1&#45;&gt;27,2</title>
+<path fill="none" stroke="#218559" d="M583.317,-2764.85C566.127,-2777.16 545.205,-2792.15 527.005,-2805.19"/>
+<polygon fill="#218559" stroke="#218559" points="524.948,-2802.36 518.857,-2811.03 529.025,-2808.05 524.948,-2802.36"/>
+</g>
+<!-- 28,1&#45;&gt;22,1 -->
+<g id="edge332" class="edge"><title>28,1&#45;&gt;22,1</title>
+<path fill="none" stroke="#dd1e2f" d="M586.4,-2767.09C573.697,-2777.97 562,-2788 562,-2788 562,-2788 550,-2923 550,-2923 550,-2923 540,-3083 540,-3083 540,-3083 517.026,-3144.95 500.508,-3189.49"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="497.184,-3188.38 496.988,-3198.98 503.747,-3190.82 497.184,-3188.38"/>
+</g>
+<!-- 28,2 -->
+<g id="node56" class="node"><title>28,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2740" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2751.17" font-family="Times Roman,serif" font-size="10.00">28,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2732 727,-2746 778,-2746 778,-2732 727,-2732"/>
+<text text-anchor="start" x="737" y="-2736.67" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2718 727,-2732 778,-2732 778,-2718 727,-2718"/>
+<text text-anchor="start" x="736.5" y="-2722.67" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+</g>
+<!-- 28,1&#45;&gt;28,2 -->
+<g id="edge334" class="edge"><title>28,1&#45;&gt;28,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-2733.53C674.501,-2733.25 684.748,-2733.18 694.703,-2733.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-2736.82 704.933,-2733.52 695.007,-2729.82 694.864,-2736.82"/>
+</g>
+<!-- 28,2&#45;&gt;28,1 -->
+<g id="edge342" class="edge"><title>28,2&#45;&gt;28,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-2746.48C695.29,-2746.75 685.041,-2746.82 675.091,-2746.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-2743.18 664.867,-2746.47 674.792,-2750.18 674.937,-2743.18"/>
+</g>
+<!-- 28,2&#45;&gt;28,3 -->
+<g id="edge338" class="edge"><title>28,2&#45;&gt;28,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-2733.53C808.501,-2733.25 818.748,-2733.18 828.703,-2733.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-2736.82 838.933,-2733.52 829.007,-2729.82 828.864,-2736.82"/>
+</g>
+<!-- 29,4 -->
+<g id="node63" class="node"><title>29,4</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-2306" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1131.5" y="-2317.17" font-family="Times Roman,serif" font-size="10.00">29,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1129,-2298 1129,-2312 1180,-2312 1180,-2298 1129,-2298"/>
+<text text-anchor="start" x="1137.5" y="-2302.67" font-family="Times Roman,serif" font-size="10.00">GACGT</text>
+<polygon fill="#218559" stroke="#218559" points="1129,-2284 1129,-2298 1180,-2298 1180,-2284 1129,-2284"/>
+<text text-anchor="start" x="1138.5" y="-2288.67" font-family="Times Roman,serif" font-size="10.00">ACGTC</text>
+</g>
+<!-- 28,2&#45;&gt;29,4 -->
+<g id="edge340" class="edge"><title>28,2&#45;&gt;29,4</title>
+<path fill="none" stroke="#ebb035" d="M790.086,-2718.03C809.886,-2706.6 830,-2695 830,-2695 830,-2695 1076,-2610 1076,-2610 1076,-2610 1106,-2450 1106,-2450 1106,-2450 1124.98,-2393.07 1139.07,-2350.8"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1142.42,-2351.82 1142.26,-2341.23 1135.78,-2349.61 1142.42,-2351.82"/>
+</g>
+<!-- 28,3&#45;&gt;27,4 -->
+<g id="edge346" class="edge"><title>28,3&#45;&gt;27,4</title>
+<path fill="none" stroke="#218559" d="M851.317,-2764.85C834.127,-2777.16 813.205,-2792.15 795.005,-2805.19"/>
+<polygon fill="#218559" stroke="#218559" points="792.948,-2802.36 786.857,-2811.03 797.025,-2808.05 792.948,-2802.36"/>
+</g>
+<!-- 28,3&#45;&gt;28,2 -->
+<g id="edge348" class="edge"><title>28,3&#45;&gt;28,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-2746.48C829.29,-2746.75 819.041,-2746.82 809.091,-2746.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-2743.18 798.867,-2746.47 808.792,-2750.18 808.937,-2743.18"/>
+</g>
+<!-- 28,4 -->
+<g id="node58" class="node"><title>28,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-2740" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-2751.17" font-family="Times Roman,serif" font-size="10.00">28,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-2732 995,-2746 1046,-2746 1046,-2732 995,-2732"/>
+<text text-anchor="start" x="1004" y="-2736.67" font-family="Times Roman,serif" font-size="10.00">CGTCA</text>
+<polygon fill="#218559" stroke="#218559" points="995,-2718 995,-2732 1046,-2732 1046,-2718 995,-2718"/>
+<text text-anchor="start" x="1003.5" y="-2722.67" font-family="Times Roman,serif" font-size="10.00">TGACG</text>
+</g>
+<!-- 28,3&#45;&gt;28,4 -->
+<g id="edge344" class="edge"><title>28,3&#45;&gt;28,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-2733.53C942.501,-2733.25 952.748,-2733.18 962.703,-2733.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-2736.82 972.933,-2733.52 963.007,-2729.82 962.864,-2736.82"/>
+</g>
+<!-- 28,4&#45;&gt;28,3 -->
+<g id="edge354" class="edge"><title>28,4&#45;&gt;28,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-2746.48C963.29,-2746.75 953.041,-2746.82 943.091,-2746.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-2743.18 932.867,-2746.47 942.792,-2750.18 942.937,-2743.18"/>
+</g>
+<!-- 29,2 -->
+<g id="node61" class="node"><title>29,2</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2306" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-2317.17" font-family="Times Roman,serif" font-size="10.00">29,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-2298 861,-2312 912,-2312 912,-2298 861,-2298"/>
+<text text-anchor="start" x="870" y="-2302.67" font-family="Times Roman,serif" font-size="10.00">ATGAC</text>
+<polygon fill="#218559" stroke="#218559" points="861,-2284 861,-2298 912,-2298 912,-2284 861,-2284"/>
+<text text-anchor="start" x="871.5" y="-2288.67" font-family="Times Roman,serif" font-size="10.00">GTCAT</text>
+</g>
+<!-- 28,4&#45;&gt;29,2 -->
+<g id="edge352" class="edge"><title>28,4&#45;&gt;29,2</title>
+<path fill="none" stroke="#ebb035" d="M1009.73,-2704.42C993.562,-2648.41 964,-2546 964,-2546 964,-2546 954,-2407 954,-2407 954,-2407 942,-2354 942,-2354 942,-2354 934.717,-2347.76 925.404,-2339.78"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="927.471,-2336.94 917.6,-2333.09 922.915,-2342.25 927.471,-2336.94"/>
+</g>
+<!-- 31,3 -->
+<g id="node161" class="node"><title>31,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1732" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1743.17" font-family="Times Roman,serif" font-size="10.00">31,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1724 861,-1738 912,-1738 912,-1724 861,-1724"/>
+<text text-anchor="start" x="871.5" y="-1728.67" font-family="Times Roman,serif" font-size="10.00">GTCAT</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1710 861,-1724 912,-1724 912,-1710 861,-1710"/>
+<text text-anchor="start" x="870" y="-1714.67" font-family="Times Roman,serif" font-size="10.00">ATGAC</text>
+</g>
+<!-- 28,4&#45;&gt;31,3 -->
+<g id="edge350" class="edge"><title>28,4&#45;&gt;31,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1009.73,-2704.42C993.562,-2648.41 964,-2546 964,-2546 964,-2546 954,-1346 954,-1346 954,-1346 952,-1346 952,-1346 952,-1346 942,-1684 942,-1684 942,-1684 934.717,-1690.24 925.404,-1698.22"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="922.915,-1695.75 917.6,-1704.91 927.471,-1701.06 922.915,-1695.75"/>
+</g>
+<!-- 29,1 -->
+<g id="node60" class="node"><title>29,1</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2306" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2317.17" font-family="Times Roman,serif" font-size="10.00">29,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2298 727,-2312 778,-2312 778,-2298 727,-2298"/>
+<text text-anchor="start" x="736" y="-2302.67" font-family="Times Roman,serif" font-size="10.00">CATGA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2284 727,-2298 778,-2298 778,-2284 727,-2284"/>
+<text text-anchor="start" x="737" y="-2288.67" font-family="Times Roman,serif" font-size="10.00">TCATG</text>
+</g>
+<!-- 29,1&#45;&gt;29,2 -->
+<g id="edge760" class="edge"><title>29,1&#45;&gt;29,2</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-2299.53C808.501,-2299.25 818.748,-2299.18 828.703,-2299.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-2302.82 838.933,-2299.52 829.007,-2295.82 828.864,-2302.82"/>
+</g>
+<!-- 30,2 -->
+<g id="node165" class="node"><title>30,2</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2140" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-2151.17" font-family="Times Roman,serif" font-size="10.00">30,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-2132 861,-2146 912,-2146 912,-2132 861,-2132"/>
+<text text-anchor="start" x="871" y="-2136.67" font-family="Times Roman,serif" font-size="10.00">TCATG</text>
+<polygon fill="#218559" stroke="#218559" points="861,-2118 861,-2132 912,-2132 912,-2118 861,-2118"/>
+<text text-anchor="start" x="870" y="-2122.67" font-family="Times Roman,serif" font-size="10.00">CATGA</text>
+</g>
+<!-- 29,1&#45;&gt;30,2 -->
+<g id="edge764" class="edge"><title>29,1&#45;&gt;30,2</title>
+<path fill="none" stroke="#218559" d="M780.444,-2277.14C799.078,-2258.23 820,-2237 820,-2237 820,-2237 840.341,-2207.11 858.438,-2180.51"/>
+<polygon fill="#218559" stroke="#218559" points="861.474,-2182.27 864.206,-2172.03 855.687,-2178.33 861.474,-2182.27"/>
+</g>
+<!-- 30,3 -->
+<g id="node166" class="node"><title>30,3</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-2140" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-2151.17" font-family="Times Roman,serif" font-size="10.00">30,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-2132 995,-2146 1046,-2146 1046,-2132 995,-2132"/>
+<text text-anchor="start" x="1004" y="-2136.67" font-family="Times Roman,serif" font-size="10.00">CATGA</text>
+<polygon fill="#218559" stroke="#218559" points="995,-2118 995,-2132 1046,-2132 1046,-2118 995,-2118"/>
+<text text-anchor="start" x="1005" y="-2122.67" font-family="Times Roman,serif" font-size="10.00">TCATG</text>
+</g>
+<!-- 29,1&#45;&gt;30,3 -->
+<g id="edge762" class="edge"><title>29,1&#45;&gt;30,3</title>
+<path fill="none" stroke="#06a2cb" d="M768.198,-2271.87C784.736,-2237.02 808,-2188 808,-2188 808,-2188 820,-2139 820,-2139 820,-2139 830,-2095 830,-2095 830,-2095 942,-2095 942,-2095 942,-2095 956.586,-2103.41 973.143,-2112.97"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="971.503,-2116.06 981.914,-2118.03 975.001,-2110 971.503,-2116.06"/>
+</g>
+<!-- 29,2&#45;&gt;28,4 -->
+<g id="edge770" class="edge"><title>29,2&#45;&gt;28,4</title>
+<path fill="none" stroke="#ebb035" d="M917.6,-2333.09C930.303,-2343.97 942,-2354 942,-2354 942,-2354 964,-2546 964,-2546 964,-2546 990.308,-2637.14 1006.86,-2694.48"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1003.59,-2695.78 1009.73,-2704.42 1010.32,-2693.84 1003.59,-2695.78"/>
+</g>
+<!-- 29,2&#45;&gt;29,1 -->
+<g id="edge772" class="edge"><title>29,2&#45;&gt;29,1</title>
+<path fill="none" stroke="#218559" d="M838.933,-2312.48C829.29,-2312.75 819.041,-2312.82 809.091,-2312.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-2309.18 798.867,-2312.47 808.792,-2316.18 808.937,-2309.18"/>
+</g>
+<!-- 29,3 -->
+<g id="node62" class="node"><title>29,3</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-2306" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-2317.17" font-family="Times Roman,serif" font-size="10.00">29,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-2298 995,-2312 1046,-2312 1046,-2298 995,-2298"/>
+<text text-anchor="start" x="1003.5" y="-2302.67" font-family="Times Roman,serif" font-size="10.00">TGACG</text>
+<polygon fill="#218559" stroke="#218559" points="995,-2284 995,-2298 1046,-2298 1046,-2284 995,-2284"/>
+<text text-anchor="start" x="1004" y="-2288.67" font-family="Times Roman,serif" font-size="10.00">CGTCA</text>
+</g>
+<!-- 29,2&#45;&gt;29,3 -->
+<g id="edge766" class="edge"><title>29,2&#45;&gt;29,3</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-2299.53C942.501,-2299.25 952.748,-2299.18 962.703,-2299.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-2302.82 972.933,-2299.52 963.007,-2295.82 962.864,-2302.82"/>
+</g>
+<!-- 32,4 -->
+<g id="node197" class="node"><title>32,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1974" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-1985.17" font-family="Times Roman,serif" font-size="10.00">32,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-1966 995,-1980 1046,-1980 1046,-1966 995,-1966"/>
+<text text-anchor="start" x="1004" y="-1970.67" font-family="Times Roman,serif" font-size="10.00">CGTCA</text>
+<polygon fill="#218559" stroke="#218559" points="995,-1952 995,-1966 1046,-1966 1046,-1952 995,-1952"/>
+<text text-anchor="start" x="1003.5" y="-1956.67" font-family="Times Roman,serif" font-size="10.00">TGACG</text>
+</g>
+<!-- 29,2&#45;&gt;32,4 -->
+<g id="edge768" class="edge"><title>29,2&#45;&gt;32,4</title>
+<path fill="none" stroke="#ebb035" d="M902.198,-2271.87C918.736,-2237.02 942,-2188 942,-2188 942,-2188 954,-2154 954,-2154 954,-2154 964,-2092 964,-2092 964,-2092 983.437,-2051.04 999.409,-2017.39"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1002.68,-2018.67 1003.8,-2008.13 996.353,-2015.66 1002.68,-2018.67"/>
+</g>
+<!-- 29,3&#45;&gt;29,2 -->
+<g id="edge780" class="edge"><title>29,3&#45;&gt;29,2</title>
+<path fill="none" stroke="#218559" d="M972.933,-2312.48C963.29,-2312.75 953.041,-2312.82 943.091,-2312.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-2309.18 932.867,-2312.47 942.792,-2316.18 942.937,-2309.18"/>
+</g>
+<!-- 29,3&#45;&gt;29,4 -->
+<g id="edge774" class="edge"><title>29,3&#45;&gt;29,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1066.87,-2299.53C1076.5,-2299.25 1086.75,-2299.18 1096.7,-2299.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1096.86,-2302.82 1106.93,-2299.52 1097.01,-2295.82 1096.86,-2302.82"/>
+</g>
+<!-- 30,1 -->
+<g id="node164" class="node"><title>30,1</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2140" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2151.17" font-family="Times Roman,serif" font-size="10.00">30,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2132 727,-2146 778,-2146 778,-2132 727,-2132"/>
+<text text-anchor="start" x="737.5" y="-2136.67" font-family="Times Roman,serif" font-size="10.00">GTCAT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2118 727,-2132 778,-2132 778,-2118 727,-2118"/>
+<text text-anchor="start" x="736" y="-2122.67" font-family="Times Roman,serif" font-size="10.00">ATGAC</text>
+</g>
+<!-- 29,3&#45;&gt;30,1 -->
+<g id="edge776" class="edge"><title>29,3&#45;&gt;30,1</title>
+<path fill="none" stroke="#06a2cb" d="M1003.8,-2271.87C987.264,-2237.02 964,-2188 964,-2188 964,-2188 942,-1926 942,-1926 942,-1926 830,-1926 830,-1926 830,-1926 808,-2090 808,-2090 808,-2090 800.316,-2096.86 790.641,-2105.5"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="788.077,-2103.1 782.948,-2112.37 792.739,-2108.32 788.077,-2103.1"/>
+</g>
+<!-- 30,4 -->
+<g id="node167" class="node"><title>30,4</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-2140" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1131.5" y="-2151.17" font-family="Times Roman,serif" font-size="10.00">30,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1129,-2132 1129,-2146 1180,-2146 1180,-2132 1129,-2132"/>
+<text text-anchor="start" x="1138" y="-2136.67" font-family="Times Roman,serif" font-size="10.00">ATGAC</text>
+<polygon fill="#218559" stroke="#218559" points="1129,-2118 1129,-2132 1180,-2132 1180,-2118 1129,-2118"/>
+<text text-anchor="start" x="1139.5" y="-2122.67" font-family="Times Roman,serif" font-size="10.00">GTCAT</text>
+</g>
+<!-- 29,3&#45;&gt;30,4 -->
+<g id="edge778" class="edge"><title>29,3&#45;&gt;30,4</title>
+<path fill="none" stroke="#218559" d="M1048.44,-2277.14C1067.08,-2258.23 1088,-2237 1088,-2237 1088,-2237 1108.34,-2207.11 1126.44,-2180.51"/>
+<polygon fill="#218559" stroke="#218559" points="1129.47,-2182.27 1132.21,-2172.03 1123.69,-2178.33 1129.47,-2182.27"/>
+</g>
+<!-- 29,4&#45;&gt;28,2 -->
+<g id="edge782" class="edge"><title>29,4&#45;&gt;28,2</title>
+<path fill="none" stroke="#ebb035" d="M1142.26,-2341.23C1128.05,-2383.86 1106,-2450 1106,-2450 1106,-2450 1076,-2546 1076,-2546 1076,-2546 954,-2614 954,-2614 954,-2614 830,-2653 830,-2653 830,-2653 808,-2678 808,-2678 808,-2678 797.753,-2689.34 786.026,-2702.33"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="783.121,-2700.32 779.016,-2710.09 788.316,-2705.01 783.121,-2700.32"/>
+</g>
+<!-- 29,4&#45;&gt;29,3 -->
+<g id="edge784" class="edge"><title>29,4&#45;&gt;29,3</title>
+<path fill="none" stroke="#218559" d="M1106.93,-2312.48C1097.29,-2312.75 1087.04,-2312.82 1077.09,-2312.68"/>
+<polygon fill="#218559" stroke="#218559" points="1076.94,-2309.18 1066.87,-2312.47 1076.79,-2316.18 1076.94,-2309.18"/>
+</g>
+<!-- 1,1 -->
+<g id="node65" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="64" cy="-5415" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="44.5" y="-5426.17" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="42,-5407 42,-5421 87,-5421 87,-5407 42,-5407"/>
+<text text-anchor="start" x="49" y="-5411.67" font-family="Times Roman,serif" font-size="10.00">TAGTG</text>
+<polygon fill="#218559" stroke="#218559" points="42,-5393 42,-5407 87,-5407 87,-5393 42,-5393"/>
+<text text-anchor="start" x="48.5" y="-5397.67" font-family="Times Roman,serif" font-size="10.00">CACTA</text>
+</g>
+<!-- 1,2 -->
+<g id="node66" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-5415" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="196.5" y="-5426.17" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="194,-5407 194,-5421 239,-5421 239,-5407 194,-5407"/>
+<text text-anchor="start" x="199.5" y="-5411.67" font-family="Times Roman,serif" font-size="10.00">AGTGC</text>
+<polygon fill="#218559" stroke="#218559" points="194,-5393 194,-5407 239,-5407 239,-5393 194,-5393"/>
+<text text-anchor="start" x="200" y="-5397.67" font-family="Times Roman,serif" font-size="10.00">GCACT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge454" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M106.745,-5408.86C124.378,-5408.17 144.986,-5408.07 163.523,-5408.55"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="163.467,-5412.05 173.576,-5408.87 163.695,-5405.05 163.467,-5412.05"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge460" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M173.576,-5421.13C155.979,-5421.82 135.377,-5421.94 116.815,-5421.46"/>
+<polygon fill="#218559" stroke="#218559" points="116.852,-5417.96 106.745,-5421.14 116.627,-5424.96 116.852,-5417.96"/>
+</g>
+<!-- 1,3 -->
+<g id="node67" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-5415" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="330.5" y="-5426.17" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="328,-5407 328,-5421 373,-5421 373,-5407 328,-5407"/>
+<text text-anchor="start" x="333" y="-5411.67" font-family="Times Roman,serif" font-size="10.00">GTGCG</text>
+<polygon fill="#218559" stroke="#218559" points="328,-5393 328,-5407 373,-5407 373,-5393 328,-5393"/>
+<text text-anchor="start" x="333" y="-5397.67" font-family="Times Roman,serif" font-size="10.00">CGCAC</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge456" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M258.398,-5408.67C270.741,-5408.23 284.377,-5408.14 297.273,-5408.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="297.326,-5411.89 307.417,-5408.67 297.517,-5404.89 297.326,-5411.89"/>
+</g>
+<!-- 2,4 -->
+<g id="node77" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-5319" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-5330.17" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-5311 596,-5325 641,-5325 641,-5311 596,-5311"/>
+<text text-anchor="start" x="601" y="-5315.67" font-family="Times Roman,serif" font-size="10.00">CGCAC</text>
+<polygon fill="#218559" stroke="#218559" points="596,-5297 596,-5311 641,-5311 641,-5297 596,-5297"/>
+<text text-anchor="start" x="601" y="-5301.67" font-family="Times Roman,serif" font-size="10.00">GTGCG</text>
+</g>
+<!-- 1,2&#45;&gt;2,4 -->
+<g id="edge458" class="edge"><title>1,2&#45;&gt;2,4</title>
+<path fill="none" stroke="#ebb035" d="M251.804,-5435.66C272.309,-5447.49 294,-5460 294,-5460 294,-5460 540,-5460 540,-5460 540,-5460 571.999,-5402.16 595.006,-5360.57"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="598.131,-5362.15 599.909,-5351.7 592.006,-5358.76 598.131,-5362.15"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge464" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M307.417,-5421.33C295.062,-5421.77 281.424,-5421.86 268.535,-5421.61"/>
+<polygon fill="#218559" stroke="#218559" points="268.491,-5418.11 258.398,-5421.33 268.298,-5425.1 268.491,-5418.11"/>
+</g>
+<!-- 1,4 -->
+<g id="node68" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5415" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-5426.17" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-5407 462,-5421 507,-5421 507,-5407 462,-5407"/>
+<text text-anchor="start" x="467.5" y="-5411.67" font-family="Times Roman,serif" font-size="10.00">TGCGA</text>
+<polygon fill="#218559" stroke="#218559" points="462,-5393 462,-5407 507,-5407 507,-5393 462,-5393"/>
+<text text-anchor="start" x="468" y="-5397.67" font-family="Times Roman,serif" font-size="10.00">TCGCA</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge462" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M392.398,-5408.67C404.741,-5408.23 418.377,-5408.14 431.273,-5408.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="431.326,-5411.89 441.417,-5408.67 431.517,-5404.89 431.326,-5411.89"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge468" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M441.417,-5421.33C429.062,-5421.77 415.424,-5421.86 402.535,-5421.61"/>
+<polygon fill="#218559" stroke="#218559" points="402.491,-5418.11 392.398,-5421.33 402.298,-5425.1 402.491,-5418.11"/>
+</g>
+<!-- 2,2 -->
+<g id="node75" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-5319" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="330.5" y="-5330.17" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="328,-5311 328,-5325 373,-5325 373,-5311 328,-5311"/>
+<text text-anchor="start" x="334" y="-5315.67" font-family="Times Roman,serif" font-size="10.00">CTCGC</text>
+<polygon fill="#218559" stroke="#218559" points="328,-5297 328,-5311 373,-5311 373,-5297 328,-5297"/>
+<text text-anchor="start" x="332.5" y="-5301.67" font-family="Times Roman,serif" font-size="10.00">GCGAG</text>
+</g>
+<!-- 1,4&#45;&gt;2,2 -->
+<g id="edge466" class="edge"><title>1,4&#45;&gt;2,2</title>
+<path fill="none" stroke="#ebb035" d="M448.805,-5394.3C432.212,-5384.54 416,-5375 416,-5375 416,-5375 402.69,-5363.71 388.025,-5351.26"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="390.185,-5348.51 380.296,-5344.71 385.656,-5353.84 390.185,-5348.51"/>
+</g>
+<!-- 3,1 -->
+<g id="node70" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-52" rx="43.8406" ry="36.0624"/>
+<text text-anchor="start" x="732" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="729,-44 729,-58 775,-58 775,-44 729,-44"/>
+<text text-anchor="start" x="731.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">GCTAGG</text>
+<polygon fill="#218559" stroke="#218559" points="729,-30 729,-44 775,-44 775,-30 729,-30"/>
+<text text-anchor="start" x="732.5" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">CCTAGC</text>
+</g>
+<!-- 3,3 -->
+<g id="node71" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-44 864,-58 909,-58 909,-44 864,-44"/>
+<text text-anchor="start" x="869.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">TAGGG</text>
+<polygon fill="#218559" stroke="#218559" points="864,-30 864,-44 909,-44 909,-30 864,-30"/>
+<text text-anchor="start" x="870.5" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">CCCTA</text>
+</g>
+<!-- 3,1&#45;&gt;3,3 -->
+<g id="edge470" class="edge"><title>3,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M795.506,-45.6333C807.566,-45.224 820.789,-45.1425 833.312,-45.3888"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.533,-48.8961 843.626,-45.6728 833.726,-41.8988 833.533,-48.8961"/>
+</g>
+<!-- 3,3&#45;&gt;3,1 -->
+<g id="edge474" class="edge"><title>3,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M843.626,-58.3272C831.641,-58.7571 818.434,-58.8591 805.869,-58.6334"/>
+<polygon fill="#218559" stroke="#218559" points="805.593,-55.1253 795.506,-58.3667 805.413,-62.1229 805.593,-55.1253"/>
+</g>
+<!-- 3,4 -->
+<g id="node72" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1000.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="998,-44 998,-58 1043,-58 1043,-44 998,-44"/>
+<text text-anchor="start" x="1003.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">AGGGT</text>
+<polygon fill="#218559" stroke="#218559" points="998,-30 998,-44 1043,-44 1043,-30 998,-30"/>
+<text text-anchor="start" x="1004" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">ACCCT</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge472" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M928.398,-45.6719C940.741,-45.2298 954.377,-45.1351 967.273,-45.388"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="967.326,-48.8907 977.417,-45.6653 967.517,-41.8933 967.326,-48.8907"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge478" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M977.417,-58.3347C965.062,-58.7734 951.424,-58.8645 938.535,-58.6082"/>
+<polygon fill="#218559" stroke="#218559" points="938.491,-55.1057 928.398,-58.3281 938.298,-62.1031 938.491,-55.1057"/>
+</g>
+<!-- 4,3 -->
+<g id="node86" class="node"><title>4,3</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-1444" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1134.5" y="-1455.17" font-family="Times Roman,serif" font-size="10.00">4,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1132,-1436 1132,-1450 1177,-1450 1177,-1436 1132,-1436"/>
+<text text-anchor="start" x="1138" y="-1440.67" font-family="Times Roman,serif" font-size="10.00">GGGTT</text>
+<polygon fill="#218559" stroke="#218559" points="1132,-1422 1132,-1436 1177,-1436 1177,-1422 1132,-1422"/>
+<text text-anchor="start" x="1137.5" y="-1426.67" font-family="Times Roman,serif" font-size="10.00">AACCC</text>
+</g>
+<!-- 3,4&#45;&gt;4,3 -->
+<g id="edge476" class="edge"><title>3,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1023.59,-87.8824C1035.95,-211.48 1076,-612 1076,-612 1076,-612 1106,-1122 1106,-1122 1106,-1122 1133.86,-1308.88 1147.13,-1397.9"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1143.7,-1398.63 1148.63,-1408 1150.62,-1397.59 1143.7,-1398.63"/>
+</g>
+<!-- 2,1 -->
+<g id="node74" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-5319" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="196.5" y="-5330.17" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="194,-5311 194,-5325 239,-5325 239,-5311 194,-5311"/>
+<text text-anchor="start" x="200" y="-5315.67" font-family="Times Roman,serif" font-size="10.00">CCTCG</text>
+<polygon fill="#218559" stroke="#218559" points="194,-5297 194,-5311 239,-5311 239,-5297 194,-5297"/>
+<text text-anchor="start" x="198.5" y="-5301.67" font-family="Times Roman,serif" font-size="10.00">CGAGG</text>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge48" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M258.398,-5312.67C270.741,-5312.23 284.377,-5312.14 297.273,-5312.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="297.326,-5315.89 307.417,-5312.67 297.517,-5308.89 297.326,-5315.89"/>
+</g>
+<!-- 2,2&#45;&gt;1,4 -->
+<g id="edge52" class="edge"><title>2,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#ebb035" d="M382.78,-5342.48C400.868,-5355.44 423.505,-5371.66 442.782,-5385.47"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="440.926,-5388.45 451.094,-5391.43 445.003,-5382.76 440.926,-5388.45"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge54" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M307.417,-5325.33C295.062,-5325.77 281.424,-5325.86 268.535,-5325.61"/>
+<polygon fill="#218559" stroke="#218559" points="268.491,-5322.11 258.398,-5325.33 268.298,-5329.1 268.491,-5322.11"/>
+</g>
+<!-- 2,3 -->
+<g id="node76" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5319" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-5330.17" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-5311 462,-5325 507,-5325 507,-5311 462,-5311"/>
+<text text-anchor="start" x="468" y="-5315.67" font-family="Times Roman,serif" font-size="10.00">TCGCA</text>
+<polygon fill="#218559" stroke="#218559" points="462,-5297 462,-5311 507,-5311 507,-5297 462,-5297"/>
+<text text-anchor="start" x="467.5" y="-5301.67" font-family="Times Roman,serif" font-size="10.00">TGCGA</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge50" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M392.398,-5312.67C404.741,-5312.23 418.377,-5312.14 431.273,-5312.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="431.326,-5315.89 441.417,-5312.67 431.517,-5308.89 431.326,-5315.89"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge58" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M441.417,-5325.33C429.062,-5325.77 415.424,-5325.86 402.535,-5325.61"/>
+<polygon fill="#218559" stroke="#218559" points="402.491,-5322.11 392.398,-5325.33 402.298,-5329.1 402.491,-5322.11"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge56" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M526.398,-5312.67C538.741,-5312.23 552.377,-5312.14 565.273,-5312.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="565.326,-5315.89 575.417,-5312.67 565.517,-5308.89 565.326,-5315.89"/>
+</g>
+<!-- 2,4&#45;&gt;1,2 -->
+<g id="edge60" class="edge"><title>2,4&#45;&gt;1,2</title>
+<path fill="none" stroke="#ebb035" d="M604.961,-5353.38C585.726,-5404.09 552,-5493 552,-5493 552,-5493 282,-5493 282,-5493 282,-5493 264.575,-5472.41 247.632,-5452.38"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="250.083,-5449.86 240.952,-5444.49 244.739,-5454.38 250.083,-5449.86"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge62" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M575.417,-5325.33C563.062,-5325.77 549.424,-5325.86 536.535,-5325.61"/>
+<polygon fill="#218559" stroke="#218559" points="536.491,-5322.11 526.398,-5325.33 536.298,-5329.1 536.491,-5322.11"/>
+</g>
+<!-- 5,1 -->
+<g id="node79" class="node"><title>5,1</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2498" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-2509.17" font-family="Times Roman,serif" font-size="10.00">5,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-2490 730,-2504 775,-2504 775,-2490 730,-2490"/>
+<text text-anchor="start" x="735" y="-2494.67" font-family="Times Roman,serif" font-size="10.00">AGCAA</text>
+<polygon fill="#218559" stroke="#218559" points="730,-2476 730,-2490 775,-2490 775,-2476 730,-2476"/>
+<text text-anchor="start" x="737.5" y="-2480.67" font-family="Times Roman,serif" font-size="10.00">TTGCT</text>
+</g>
+<!-- 5,2 -->
+<g id="node80" class="node"><title>5,2</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2498" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-2509.17" font-family="Times Roman,serif" font-size="10.00">5,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-2490 864,-2504 909,-2504 909,-2490 864,-2490"/>
+<text text-anchor="start" x="869" y="-2494.67" font-family="Times Roman,serif" font-size="10.00">GCAAC</text>
+<polygon fill="#218559" stroke="#218559" points="864,-2476 864,-2490 909,-2490 909,-2476 864,-2476"/>
+<text text-anchor="start" x="870.5" y="-2480.67" font-family="Times Roman,serif" font-size="10.00">GTTGC</text>
+</g>
+<!-- 5,1&#45;&gt;5,2 -->
+<g id="edge480" class="edge"><title>5,1&#45;&gt;5,2</title>
+<path fill="none" stroke="#dd1e2f" d="M794.398,-2491.67C806.741,-2491.23 820.377,-2491.14 833.273,-2491.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.326,-2494.89 843.417,-2491.67 833.517,-2487.89 833.326,-2494.89"/>
+</g>
+<!-- 6,3 -->
+<g id="node96" class="node"><title>6,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3131" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-3142.17" font-family="Times Roman,serif" font-size="10.00">6,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-3123 864,-3137 909,-3137 909,-3123 864,-3123"/>
+<text text-anchor="start" x="870" y="-3127.67" font-family="Times Roman,serif" font-size="10.00">TGCTG</text>
+<polygon fill="#218559" stroke="#218559" points="864,-3109 864,-3123 909,-3123 909,-3109 864,-3109"/>
+<text text-anchor="start" x="869" y="-3113.67" font-family="Times Roman,serif" font-size="10.00">CAGCA</text>
+</g>
+<!-- 5,1&#45;&gt;6,3 -->
+<g id="edge482" class="edge"><title>5,1&#45;&gt;6,3</title>
+<path fill="none" stroke="#06a2cb" d="M762.141,-2533.13C778.279,-2589.04 808,-2692 808,-2692 808,-2692 820,-2810 820,-2810 820,-2810 830,-3083 830,-3083 830,-3083 837.944,-3089.81 847.849,-3098.3"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="845.835,-3101.18 855.705,-3105.03 850.391,-3095.87 845.835,-3101.18"/>
+</g>
+<!-- 5,2&#45;&gt;5,1 -->
+<g id="edge488" class="edge"><title>5,2&#45;&gt;5,1</title>
+<path fill="none" stroke="#218559" d="M843.417,-2504.33C831.062,-2504.77 817.424,-2504.86 804.535,-2504.61"/>
+<polygon fill="#218559" stroke="#218559" points="804.491,-2501.11 794.398,-2504.33 804.298,-2508.1 804.491,-2501.11"/>
+</g>
+<!-- 5,3 -->
+<g id="node81" class="node"><title>5,3</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-2498" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1000.5" y="-2509.17" font-family="Times Roman,serif" font-size="10.00">5,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="998,-2490 998,-2504 1043,-2504 1043,-2490 998,-2490"/>
+<text text-anchor="start" x="1003.5" y="-2494.67" font-family="Times Roman,serif" font-size="10.00">CAACC</text>
+<polygon fill="#218559" stroke="#218559" points="998,-2476 998,-2490 1043,-2490 1043,-2476 998,-2476"/>
+<text text-anchor="start" x="1004" y="-2480.67" font-family="Times Roman,serif" font-size="10.00">GGTTG</text>
+</g>
+<!-- 5,2&#45;&gt;5,3 -->
+<g id="edge484" class="edge"><title>5,2&#45;&gt;5,3</title>
+<path fill="none" stroke="#dd1e2f" d="M928.398,-2491.67C940.741,-2491.23 954.377,-2491.14 967.273,-2491.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="967.326,-2494.89 977.417,-2491.67 967.517,-2487.89 967.326,-2494.89"/>
+</g>
+<!-- 4,4 -->
+<g id="node87" class="node"><title>4,4</title>
+<ellipse fill="none" stroke="black" cx="1288" cy="-1444" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1268.5" y="-1455.17" font-family="Times Roman,serif" font-size="10.00">4,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1266,-1436 1266,-1450 1311,-1450 1311,-1436 1266,-1436"/>
+<text text-anchor="start" x="1272" y="-1440.67" font-family="Times Roman,serif" font-size="10.00">GGTTG</text>
+<polygon fill="#218559" stroke="#218559" points="1266,-1422 1266,-1436 1311,-1436 1311,-1422 1266,-1422"/>
+<text text-anchor="start" x="1271.5" y="-1426.67" font-family="Times Roman,serif" font-size="10.00">CAACC</text>
+</g>
+<!-- 5,2&#45;&gt;4,4 -->
+<g id="edge486" class="edge"><title>5,2&#45;&gt;4,4</title>
+<path fill="none" stroke="#ebb035" d="M916.295,-2472.03C929.489,-2460.72 942,-2450 942,-2450 942,-2450 954,-2353 954,-2353 954,-2353 964,-2258 964,-2258 964,-2258 1210,-2211 1210,-2211 1210,-2211 1222,-2096 1222,-2096 1222,-2096 1268.27,-1638.87 1283.33,-1490.15"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1286.83,-1490.28 1284.36,-1479.98 1279.87,-1489.58 1286.83,-1490.28"/>
+</g>
+<!-- 5,3&#45;&gt;5,2 -->
+<g id="edge494" class="edge"><title>5,3&#45;&gt;5,2</title>
+<path fill="none" stroke="#218559" d="M977.417,-2504.33C965.062,-2504.77 951.424,-2504.86 938.535,-2504.61"/>
+<polygon fill="#218559" stroke="#218559" points="938.491,-2501.11 928.398,-2504.33 938.298,-2508.1 938.491,-2501.11"/>
+</g>
+<!-- 5,4 -->
+<g id="node82" class="node"><title>5,4</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-2498" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1134.5" y="-2509.17" font-family="Times Roman,serif" font-size="10.00">5,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1132,-2490 1132,-2504 1177,-2504 1177,-2490 1132,-2490"/>
+<text text-anchor="start" x="1137.5" y="-2494.67" font-family="Times Roman,serif" font-size="10.00">AACCC</text>
+<polygon fill="#218559" stroke="#218559" points="1132,-2476 1132,-2490 1177,-2490 1177,-2476 1132,-2476"/>
+<text text-anchor="start" x="1138" y="-2480.67" font-family="Times Roman,serif" font-size="10.00">GGGTT</text>
+</g>
+<!-- 5,3&#45;&gt;5,4 -->
+<g id="edge490" class="edge"><title>5,3&#45;&gt;5,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1062.4,-2491.67C1074.74,-2491.23 1088.38,-2491.14 1101.27,-2491.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1101.33,-2494.89 1111.42,-2491.67 1101.52,-2487.89 1101.33,-2494.89"/>
+</g>
+<!-- 6,1 -->
+<g id="node94" class="node"><title>6,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3131" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-3142.17" font-family="Times Roman,serif" font-size="10.00">6,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-3123 596,-3137 641,-3137 641,-3123 596,-3123"/>
+<text text-anchor="start" x="602.5" y="-3127.67" font-family="Times Roman,serif" font-size="10.00">GTTGC</text>
+<polygon fill="#218559" stroke="#218559" points="596,-3109 596,-3123 641,-3123 641,-3109 596,-3109"/>
+<text text-anchor="start" x="601" y="-3113.67" font-family="Times Roman,serif" font-size="10.00">GCAAC</text>
+</g>
+<!-- 5,3&#45;&gt;6,1 -->
+<g id="edge492" class="edge"><title>5,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#06a2cb" d="M988.4,-2522.83C975.697,-2532.81 964,-2542 964,-2542 964,-2542 942,-2577 942,-2577 942,-2577 830,-2615 830,-2615 830,-2615 808,-2636 808,-2636 808,-2636 696,-2692 696,-2692 696,-2692 686,-2881 686,-2881 686,-2881 674,-3083 674,-3083 674,-3083 666.056,-3089.81 656.151,-3098.3"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="653.609,-3095.87 648.295,-3105.03 658.165,-3101.18 653.609,-3095.87"/>
+</g>
+<!-- 5,4&#45;&gt;5,3 -->
+<g id="edge498" class="edge"><title>5,4&#45;&gt;5,3</title>
+<path fill="none" stroke="#218559" d="M1111.42,-2504.33C1099.06,-2504.77 1085.42,-2504.86 1072.54,-2504.61"/>
+<polygon fill="#218559" stroke="#218559" points="1072.49,-2501.11 1062.4,-2504.33 1072.3,-2508.1 1072.49,-2501.11"/>
+</g>
+<!-- 4,2 -->
+<g id="node85" class="node"><title>4,2</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1444" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1000.5" y="-1455.17" font-family="Times Roman,serif" font-size="10.00">4,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="998,-1436 998,-1450 1043,-1450 1043,-1436 998,-1436"/>
+<text text-anchor="start" x="1003.5" y="-1440.67" font-family="Times Roman,serif" font-size="10.00">AGGGT</text>
+<polygon fill="#218559" stroke="#218559" points="998,-1422 998,-1436 1043,-1436 1043,-1422 998,-1422"/>
+<text text-anchor="start" x="1004" y="-1426.67" font-family="Times Roman,serif" font-size="10.00">ACCCT</text>
+</g>
+<!-- 5,4&#45;&gt;4,2 -->
+<g id="edge496" class="edge"><title>5,4&#45;&gt;4,2</title>
+<path fill="none" stroke="#ebb035" d="M1142.38,-2463.14C1128.17,-2420.52 1106,-2354 1106,-2354 1106,-2354 1086,-1913 1086,-1913 1086,-1913 1076,-1684 1076,-1684 1076,-1684 1046.78,-1558.79 1030.56,-1489.25"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1033.94,-1488.36 1028.26,-1479.41 1027.13,-1489.95 1033.94,-1488.36"/>
+</g>
+<!-- 4,1 -->
+<g id="node84" class="node"><title>4,1</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1444" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-1455.17" font-family="Times Roman,serif" font-size="10.00">4,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-1436 864,-1450 909,-1450 909,-1436 864,-1436"/>
+<text text-anchor="start" x="868" y="-1440.67" font-family="Times Roman,serif" font-size="10.00">GAGGG</text>
+<polygon fill="#218559" stroke="#218559" points="864,-1422 864,-1436 909,-1436 909,-1422 864,-1422"/>
+<text text-anchor="start" x="870.5" y="-1426.67" font-family="Times Roman,serif" font-size="10.00">CCCTC</text>
+</g>
+<!-- 4,1&#45;&gt;4,2 -->
+<g id="edge64" class="edge"><title>4,1&#45;&gt;4,2</title>
+<path fill="none" stroke="#dd1e2f" d="M928.398,-1437.67C940.741,-1437.23 954.377,-1437.14 967.273,-1437.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="967.326,-1440.89 977.417,-1437.67 967.517,-1433.89 967.326,-1440.89"/>
+</g>
+<!-- 4,2&#45;&gt;5,4 -->
+<g id="edge68" class="edge"><title>4,2&#45;&gt;5,4</title>
+<path fill="none" stroke="#ebb035" d="M1028.26,-1479.41C1043.84,-1546.17 1076,-1684 1076,-1684 1076,-1684 1088,-1915 1088,-1915 1088,-1915 1106,-2354 1106,-2354 1106,-2354 1125.09,-2411.26 1139.19,-2453.56"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1135.9,-2454.76 1142.38,-2463.14 1142.54,-2452.55 1135.9,-2454.76"/>
+</g>
+<!-- 4,2&#45;&gt;4,1 -->
+<g id="edge70" class="edge"><title>4,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#218559" d="M977.417,-1450.33C965.062,-1450.77 951.424,-1450.86 938.535,-1450.61"/>
+<polygon fill="#218559" stroke="#218559" points="938.491,-1447.11 928.398,-1450.33 938.298,-1454.1 938.491,-1447.11"/>
+</g>
+<!-- 4,2&#45;&gt;4,3 -->
+<g id="edge66" class="edge"><title>4,2&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1062.4,-1437.67C1074.74,-1437.23 1088.38,-1437.14 1101.27,-1437.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1101.33,-1440.89 1111.42,-1437.67 1101.52,-1433.89 1101.33,-1440.89"/>
+</g>
+<!-- 4,3&#45;&gt;3,4 -->
+<g id="edge74" class="edge"><title>4,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#218559" d="M1148.63,-1408C1136.11,-1323.98 1106,-1122 1106,-1122 1106,-1122 1088,-453 1088,-453 1088,-453 1045.65,-203.273 1027.79,-97.9643"/>
+<polygon fill="#218559" stroke="#218559" points="1031.22,-97.213 1026.09,-87.939 1024.32,-98.3834 1031.22,-97.213"/>
+</g>
+<!-- 4,3&#45;&gt;4,2 -->
+<g id="edge76" class="edge"><title>4,3&#45;&gt;4,2</title>
+<path fill="none" stroke="#218559" d="M1111.42,-1450.33C1099.06,-1450.77 1085.42,-1450.86 1072.54,-1450.61"/>
+<polygon fill="#218559" stroke="#218559" points="1072.49,-1447.11 1062.4,-1450.33 1072.3,-1454.1 1072.49,-1447.11"/>
+</g>
+<!-- 4,3&#45;&gt;4,4 -->
+<g id="edge72" class="edge"><title>4,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1196.4,-1437.67C1208.74,-1437.23 1222.38,-1437.14 1235.27,-1437.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1235.33,-1440.89 1245.42,-1437.67 1235.52,-1433.89 1235.33,-1440.89"/>
+</g>
+<!-- 4,4&#45;&gt;5,2 -->
+<g id="edge78" class="edge"><title>4,4&#45;&gt;5,2</title>
+<path fill="none" stroke="#ebb035" d="M1284.24,-1479.88C1268.66,-1628.5 1210,-2188 1210,-2188 1210,-2188 964,-2228 964,-2228 964,-2228 942,-2450 942,-2450 942,-2450 934.056,-2456.81 924.151,-2465.3"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="921.609,-2462.87 916.295,-2472.03 926.165,-2468.18 921.609,-2462.87"/>
+</g>
+<!-- 4,4&#45;&gt;4,3 -->
+<g id="edge80" class="edge"><title>4,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M1245.42,-1450.33C1233.06,-1450.77 1219.42,-1450.86 1206.54,-1450.61"/>
+<polygon fill="#218559" stroke="#218559" points="1206.49,-1447.11 1196.4,-1450.33 1206.3,-1454.1 1206.49,-1447.11"/>
+</g>
+<!-- 7,1&#45;&gt;24,2 -->
+<g id="edge504" class="edge"><title>7,1&#45;&gt;24,2</title>
+<path fill="none" stroke="#06a2cb" d="M514.295,-4654.97C527.489,-4666.28 540,-4677 540,-4677 540,-4677 562,-5072 562,-5072 562,-5072 569.283,-5078.24 578.596,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="576.529,-5089.06 586.4,-5092.91 581.085,-5083.75 576.529,-5089.06"/>
+</g>
+<!-- 7,1&#45;&gt;23,1 -->
+<g id="edge508" class="edge"><title>7,1&#45;&gt;23,1</title>
+<path fill="none" stroke="#218559" d="M451.161,-4652.53C433.641,-4665.08 411.867,-4680.68 393.012,-4694.19"/>
+<polygon fill="#218559" stroke="#218559" points="390.948,-4691.36 384.857,-4700.03 395.025,-4697.05 390.948,-4691.36"/>
+</g>
+<!-- 7,1&#45;&gt;7,2 -->
+<g id="edge500" class="edge"><title>7,1&#45;&gt;7,2</title>
+<path fill="none" stroke="#dd1e2f" d="M526.398,-4622.67C538.741,-4622.23 552.377,-4622.14 565.273,-4622.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="565.326,-4625.89 575.417,-4622.67 565.517,-4618.89 565.326,-4625.89"/>
+</g>
+<!-- 8,3 -->
+<g id="node106" class="node"><title>8,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-5024" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-5035.17" font-family="Times Roman,serif" font-size="10.00">8,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-5016 596,-5030 641,-5030 641,-5016 596,-5016"/>
+<text text-anchor="start" x="602" y="-5020.67" font-family="Times Roman,serif" font-size="10.00">GAAAT</text>
+<polygon fill="#218559" stroke="#218559" points="596,-5002 596,-5016 641,-5016 641,-5002 596,-5002"/>
+<text text-anchor="start" x="604.5" y="-5006.67" font-family="Times Roman,serif" font-size="10.00">ATTTC</text>
+</g>
+<!-- 7,1&#45;&gt;8,3 -->
+<g id="edge502" class="edge"><title>7,1&#45;&gt;8,3</title>
+<path fill="none" stroke="#06a2cb" d="M513.64,-4602.54C527.072,-4590.54 540,-4579 540,-4579 540,-4579 550,-4340 550,-4340 550,-4340 552,-4340 552,-4340 552,-4340 562,-4773 562,-4773 562,-4773 591.791,-4906.53 607.915,-4978.8"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="604.502,-4979.57 610.095,-4988.57 611.334,-4978.05 604.502,-4979.57"/>
+</g>
+<!-- 18,2 -->
+<g id="node155" class="node"><title>18,2</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-4463" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-4474.17" font-family="Times Roman,serif" font-size="10.00">18,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-4455 325,-4469 376,-4469 376,-4455 325,-4455"/>
+<text text-anchor="start" x="336" y="-4459.67" font-family="Times Roman,serif" font-size="10.00">GTTTC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-4441 325,-4455 376,-4455 376,-4441 325,-4441"/>
+<text text-anchor="start" x="333" y="-4445.67" font-family="Times Roman,serif" font-size="10.00">GAAAC</text>
+</g>
+<!-- 7,1&#45;&gt;18,2 -->
+<g id="edge506" class="edge"><title>7,1&#45;&gt;18,2</title>
+<path fill="none" stroke="#218559" d="M468.102,-4595.5C451.546,-4560.62 428,-4511 428,-4511 428,-4511 418,-4336 418,-4336 418,-4336 416,-4336 416,-4336 416,-4336 391.411,-4383.32 372.25,-4420.19"/>
+<polygon fill="#218559" stroke="#218559" points="369.019,-4418.81 367.514,-4429.3 375.231,-4422.04 369.019,-4418.81"/>
+</g>
+<!-- 7,2&#45;&gt;24,1 -->
+<g id="edge514" class="edge"><title>7,2&#45;&gt;24,1</title>
+<path fill="none" stroke="#06a2cb" d="M587.705,-4654.97C574.511,-4666.28 562,-4677 562,-4677 562,-4677 552,-4873 552,-4873 552,-4873 550,-4901 550,-4901 550,-4901 540,-5072 540,-5072 540,-5072 532.717,-5078.24 523.404,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="520.915,-5083.75 515.6,-5092.91 525.471,-5089.06 520.915,-5083.75"/>
+</g>
+<!-- 7,2&#45;&gt;7,1 -->
+<g id="edge516" class="edge"><title>7,2&#45;&gt;7,1</title>
+<path fill="none" stroke="#218559" d="M575.417,-4635.33C563.062,-4635.77 549.424,-4635.86 536.535,-4635.61"/>
+<polygon fill="#218559" stroke="#218559" points="536.491,-4632.11 526.398,-4635.33 536.298,-4639.1 536.491,-4632.11"/>
+</g>
+<!-- 7,3 -->
+<g id="node91" class="node"><title>7,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-4629" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-4640.17" font-family="Times Roman,serif" font-size="10.00">7,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-4621 730,-4635 775,-4635 775,-4621 730,-4621"/>
+<text text-anchor="start" x="736" y="-4625.67" font-family="Times Roman,serif" font-size="10.00">TCAGC</text>
+<polygon fill="#218559" stroke="#218559" points="730,-4607 730,-4621 775,-4621 775,-4607 730,-4607"/>
+<text text-anchor="start" x="735.5" y="-4611.67" font-family="Times Roman,serif" font-size="10.00">GCTGA</text>
+</g>
+<!-- 7,2&#45;&gt;7,3 -->
+<g id="edge510" class="edge"><title>7,2&#45;&gt;7,3</title>
+<path fill="none" stroke="#dd1e2f" d="M660.398,-4622.67C672.741,-4622.23 686.377,-4622.14 699.273,-4622.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="699.326,-4625.89 709.417,-4622.67 699.517,-4618.89 699.326,-4625.89"/>
+</g>
+<!-- 6,4 -->
+<g id="node97" class="node"><title>6,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-3131" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1000.5" y="-3142.17" font-family="Times Roman,serif" font-size="10.00">6,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="998,-3123 998,-3137 1043,-3137 1043,-3123 998,-3123"/>
+<text text-anchor="start" x="1003.5" y="-3127.67" font-family="Times Roman,serif" font-size="10.00">GCTGA</text>
+<polygon fill="#218559" stroke="#218559" points="998,-3109 998,-3123 1043,-3123 1043,-3109 998,-3109"/>
+<text text-anchor="start" x="1004" y="-3113.67" font-family="Times Roman,serif" font-size="10.00">TCAGC</text>
+</g>
+<!-- 7,2&#45;&gt;6,4 -->
+<g id="edge512" class="edge"><title>7,2&#45;&gt;6,4</title>
+<path fill="none" stroke="#ebb035" d="M653.804,-4608.34C674.309,-4596.51 696,-4584 696,-4584 696,-4584 808,-4541 808,-4541 808,-4541 820,-4518 820,-4518 820,-4518 942,-4081 942,-4081 942,-4081 1000.55,-3367.83 1016.2,-3177.32"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1019.71,-3177.33 1017.04,-3167.08 1012.73,-3176.76 1019.71,-3177.33"/>
+</g>
+<!-- 7,3&#45;&gt;7,2 -->
+<g id="edge522" class="edge"><title>7,3&#45;&gt;7,2</title>
+<path fill="none" stroke="#218559" d="M709.417,-4635.33C697.062,-4635.77 683.424,-4635.86 670.535,-4635.61"/>
+<polygon fill="#218559" stroke="#218559" points="670.491,-4632.11 660.398,-4635.33 670.298,-4639.1 670.491,-4632.11"/>
+</g>
+<!-- 7,4 -->
+<g id="node92" class="node"><title>7,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-4629" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-4640.17" font-family="Times Roman,serif" font-size="10.00">7,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-4621 864,-4635 909,-4635 909,-4621 864,-4621"/>
+<text text-anchor="start" x="869" y="-4625.67" font-family="Times Roman,serif" font-size="10.00">CAGCA</text>
+<polygon fill="#218559" stroke="#218559" points="864,-4607 864,-4621 909,-4621 909,-4607 864,-4607"/>
+<text text-anchor="start" x="870" y="-4611.67" font-family="Times Roman,serif" font-size="10.00">TGCTG</text>
+</g>
+<!-- 7,3&#45;&gt;7,4 -->
+<g id="edge518" class="edge"><title>7,3&#45;&gt;7,4</title>
+<path fill="none" stroke="#dd1e2f" d="M794.398,-4622.67C806.741,-4622.23 820.377,-4622.14 833.273,-4622.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.326,-4625.89 843.417,-4622.67 833.517,-4618.89 833.326,-4625.89"/>
+</g>
+<!-- 7,3&#45;&gt;8,1 -->
+<g id="edge520" class="edge"><title>7,3&#45;&gt;8,1</title>
+<path fill="none" stroke="#06a2cb" d="M739.294,-4594.14C717.192,-4533.5 674,-4415 674,-4415 674,-4415 552,-4311 552,-4311 552,-4311 550,-4311 550,-4311 550,-4311 540,-4545 540,-4545 540,-4545 428,-4584 428,-4584 428,-4584 398,-4773 398,-4773 398,-4773 372.635,-4905.64 358.782,-4978.08"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="355.267,-4977.82 356.826,-4988.3 362.142,-4979.14 355.267,-4977.82"/>
+</g>
+<!-- 7,4&#45;&gt;7,3 -->
+<g id="edge526" class="edge"><title>7,4&#45;&gt;7,3</title>
+<path fill="none" stroke="#218559" d="M843.417,-4635.33C831.062,-4635.77 817.424,-4635.86 804.535,-4635.61"/>
+<polygon fill="#218559" stroke="#218559" points="804.491,-4632.11 794.398,-4635.33 804.298,-4639.1 804.491,-4632.11"/>
+</g>
+<!-- 6,2 -->
+<g id="node95" class="node"><title>6,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3131" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-3142.17" font-family="Times Roman,serif" font-size="10.00">6,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-3123 730,-3137 775,-3137 775,-3123 730,-3123"/>
+<text text-anchor="start" x="737.5" y="-3127.67" font-family="Times Roman,serif" font-size="10.00">TTGCT</text>
+<polygon fill="#218559" stroke="#218559" points="730,-3109 730,-3123 775,-3123 775,-3109 730,-3109"/>
+<text text-anchor="start" x="735" y="-3113.67" font-family="Times Roman,serif" font-size="10.00">AGCAA</text>
+</g>
+<!-- 7,4&#45;&gt;6,2 -->
+<g id="edge524" class="edge"><title>7,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#ebb035" d="M883.839,-4593.04C873.548,-4421.76 830,-3697 830,-3697 830,-3697 808,-3186 808,-3186 808,-3186 798.399,-3176.57 787.148,-3165.52"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="789.587,-3163.01 780,-3158.5 784.682,-3168 789.587,-3163.01"/>
+</g>
+<!-- 6,1&#45;&gt;5,3 -->
+<g id="edge84" class="edge"><title>6,1&#45;&gt;5,3</title>
+<path fill="none" stroke="#06a2cb" d="M648.295,-3105.03C661.489,-3093.72 674,-3083 674,-3083 674,-3083 696,-2650 696,-2650 696,-2650 818,-2587 818,-2587 818,-2587 942,-2543 942,-2543 942,-2543 957.73,-2533.93 975.061,-2523.93"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="977.283,-2526.69 984.196,-2518.66 973.785,-2520.62 977.283,-2526.69"/>
+</g>
+<!-- 6,1&#45;&gt;6,2 -->
+<g id="edge82" class="edge"><title>6,1&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M660.398,-3124.67C672.741,-3124.23 686.377,-3124.14 699.273,-3124.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="699.326,-3127.89 709.417,-3124.67 699.517,-3120.89 699.326,-3127.89"/>
+</g>
+<!-- 6,2&#45;&gt;7,4 -->
+<g id="edge88" class="edge"><title>6,2&#45;&gt;7,4</title>
+<path fill="none" stroke="#ebb035" d="M790.372,-3147.93C805.796,-3154.73 820,-3161 820,-3161 820,-3161 830,-3697 830,-3697 830,-3697 871.947,-4395.11 883.232,-4582.94"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="879.745,-4583.26 883.839,-4593.04 886.733,-4582.84 879.745,-4583.26"/>
+</g>
+<!-- 6,2&#45;&gt;6,1 -->
+<g id="edge90" class="edge"><title>6,2&#45;&gt;6,1</title>
+<path fill="none" stroke="#218559" d="M709.417,-3137.33C697.062,-3137.77 683.424,-3137.86 670.535,-3137.61"/>
+<polygon fill="#218559" stroke="#218559" points="670.491,-3134.11 660.398,-3137.33 670.298,-3141.1 670.491,-3134.11"/>
+</g>
+<!-- 6,2&#45;&gt;6,3 -->
+<g id="edge86" class="edge"><title>6,2&#45;&gt;6,3</title>
+<path fill="none" stroke="#dd1e2f" d="M794.398,-3124.67C806.741,-3124.23 820.377,-3124.14 833.273,-3124.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.326,-3127.89 843.417,-3124.67 833.517,-3120.89 833.326,-3127.89"/>
+</g>
+<!-- 6,3&#45;&gt;5,1 -->
+<g id="edge94" class="edge"><title>6,3&#45;&gt;5,1</title>
+<path fill="none" stroke="#06a2cb" d="M855.705,-3105.03C842.511,-3093.72 830,-3083 830,-3083 830,-3083 820,-2834 820,-2834 820,-2834 808,-2692 808,-2692 808,-2692 781.55,-2600.37 765.006,-2543.06"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="768.277,-2541.77 762.141,-2533.13 761.552,-2543.71 768.277,-2541.77"/>
+</g>
+<!-- 6,3&#45;&gt;6,2 -->
+<g id="edge96" class="edge"><title>6,3&#45;&gt;6,2</title>
+<path fill="none" stroke="#218559" d="M843.417,-3137.33C831.062,-3137.77 817.424,-3137.86 804.535,-3137.61"/>
+<polygon fill="#218559" stroke="#218559" points="804.491,-3134.11 794.398,-3137.33 804.298,-3141.1 804.491,-3134.11"/>
+</g>
+<!-- 6,3&#45;&gt;6,4 -->
+<g id="edge92" class="edge"><title>6,3&#45;&gt;6,4</title>
+<path fill="none" stroke="#dd1e2f" d="M928.398,-3124.67C940.741,-3124.23 954.377,-3124.14 967.273,-3124.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="967.326,-3127.89 977.417,-3124.67 967.517,-3120.89 967.326,-3127.89"/>
+</g>
+<!-- 6,4&#45;&gt;7,2 -->
+<g id="edge98" class="edge"><title>6,4&#45;&gt;7,2</title>
+<path fill="none" stroke="#ebb035" d="M1015.06,-3166.84C997.916,-3291.25 942,-3697 942,-3697 942,-3697 820,-4503 820,-4503 820,-4503 684,-4551 684,-4551 684,-4551 674,-4579 674,-4579 674,-4579 665.629,-4586.47 655.36,-4595.64"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="652.768,-4593.26 647.64,-4602.54 657.43,-4598.49 652.768,-4593.26"/>
+</g>
+<!-- 6,4&#45;&gt;6,3 -->
+<g id="edge100" class="edge"><title>6,4&#45;&gt;6,3</title>
+<path fill="none" stroke="#218559" d="M977.417,-3137.33C965.062,-3137.77 951.424,-3137.86 938.535,-3137.61"/>
+<polygon fill="#218559" stroke="#218559" points="938.491,-3134.11 928.398,-3137.33 938.298,-3141.1 938.491,-3134.11"/>
+</g>
+<!-- 9,1 -->
+<g id="node99" class="node"><title>9,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3483" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-3494.17" font-family="Times Roman,serif" font-size="10.00">9,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-3475 462,-3489 507,-3489 507,-3475 462,-3475"/>
+<text text-anchor="start" x="468" y="-3479.67" font-family="Times Roman,serif" font-size="10.00">CAGAT</text>
+<polygon fill="#218559" stroke="#218559" points="462,-3461 462,-3475 507,-3475 507,-3461 462,-3461"/>
+<text text-anchor="start" x="469" y="-3465.67" font-family="Times Roman,serif" font-size="10.00">ATCTG</text>
+</g>
+<!-- 9,2 -->
+<g id="node100" class="node"><title>9,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3483" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-3494.17" font-family="Times Roman,serif" font-size="10.00">9,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-3475 596,-3489 641,-3489 641,-3475 596,-3475"/>
+<text text-anchor="start" x="603" y="-3479.67" font-family="Times Roman,serif" font-size="10.00">AGATT</text>
+<polygon fill="#218559" stroke="#218559" points="596,-3461 596,-3475 641,-3475 641,-3461 596,-3461"/>
+<text text-anchor="start" x="603.5" y="-3465.67" font-family="Times Roman,serif" font-size="10.00">AATCT</text>
+</g>
+<!-- 9,1&#45;&gt;9,2 -->
+<g id="edge528" class="edge"><title>9,1&#45;&gt;9,2</title>
+<path fill="none" stroke="#dd1e2f" d="M526.398,-3476.67C538.741,-3476.23 552.377,-3476.14 565.273,-3476.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="565.326,-3479.89 575.417,-3476.67 565.517,-3472.89 565.326,-3479.89"/>
+</g>
+<!-- 10,2 -->
+<g id="node115" class="node"><title>10,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3035" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-3046.17" font-family="Times Roman,serif" font-size="10.00">10,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-3027 593,-3041 644,-3041 644,-3027 593,-3027"/>
+<text text-anchor="start" x="600.5" y="-3031.67" font-family="Times Roman,serif" font-size="10.00">GCAGA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-3013 593,-3027 644,-3027 644,-3013 593,-3013"/>
+<text text-anchor="start" x="603" y="-3017.67" font-family="Times Roman,serif" font-size="10.00">TCTGC</text>
+</g>
+<!-- 9,1&#45;&gt;10,2 -->
+<g id="edge530" class="edge"><title>9,1&#45;&gt;10,2</title>
+<path fill="none" stroke="#218559" d="M493.883,-3447.53C509.959,-3389.82 540,-3282 540,-3282 540,-3282 552,-3197 552,-3197 552,-3197 562,-3083 562,-3083 562,-3083 569.283,-3076.76 578.596,-3068.78"/>
+<polygon fill="#218559" stroke="#218559" points="581.085,-3071.25 586.4,-3062.09 576.529,-3065.94 581.085,-3071.25"/>
+</g>
+<!-- 9,2&#45;&gt;9,1 -->
+<g id="edge536" class="edge"><title>9,2&#45;&gt;9,1</title>
+<path fill="none" stroke="#218559" d="M575.417,-3489.33C563.062,-3489.77 549.424,-3489.86 536.535,-3489.61"/>
+<polygon fill="#218559" stroke="#218559" points="536.491,-3486.11 526.398,-3489.33 536.298,-3493.1 536.491,-3486.11"/>
+</g>
+<!-- 9,3 -->
+<g id="node101" class="node"><title>9,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3483" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-3494.17" font-family="Times Roman,serif" font-size="10.00">9,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-3475 730,-3489 775,-3489 775,-3475 730,-3475"/>
+<text text-anchor="start" x="738" y="-3479.67" font-family="Times Roman,serif" font-size="10.00">GATTT</text>
+<polygon fill="#218559" stroke="#218559" points="730,-3461 730,-3475 775,-3475 775,-3461 730,-3461"/>
+<text text-anchor="start" x="736.5" y="-3465.67" font-family="Times Roman,serif" font-size="10.00">AAATC</text>
+</g>
+<!-- 9,2&#45;&gt;9,3 -->
+<g id="edge532" class="edge"><title>9,2&#45;&gt;9,3</title>
+<path fill="none" stroke="#dd1e2f" d="M660.398,-3476.67C672.741,-3476.23 686.377,-3476.14 699.273,-3476.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="699.326,-3479.89 709.417,-3476.67 699.517,-3472.89 699.326,-3479.89"/>
+</g>
+<!-- 8,4 -->
+<g id="node107" class="node"><title>8,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-5024" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-5035.17" font-family="Times Roman,serif" font-size="10.00">8,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-5016 730,-5030 775,-5030 775,-5016 730,-5016"/>
+<text text-anchor="start" x="736.5" y="-5020.67" font-family="Times Roman,serif" font-size="10.00">AAATC</text>
+<polygon fill="#218559" stroke="#218559" points="730,-5002 730,-5016 775,-5016 775,-5002 730,-5002"/>
+<text text-anchor="start" x="738" y="-5006.67" font-family="Times Roman,serif" font-size="10.00">GATTT</text>
+</g>
+<!-- 9,2&#45;&gt;8,4 -->
+<g id="edge534" class="edge"><title>9,2&#45;&gt;8,4</title>
+<path fill="none" stroke="#ebb035" d="M633.898,-3516.5C650.454,-3551.38 674,-3601 674,-3601 674,-3601 686,-3822 686,-3822 686,-3822 696,-4773 696,-4773 696,-4773 725.791,-4906.53 741.915,-4978.8"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="738.502,-4979.57 744.095,-4988.57 745.334,-4978.05 738.502,-4979.57"/>
+</g>
+<!-- 9,3&#45;&gt;9,2 -->
+<g id="edge542" class="edge"><title>9,3&#45;&gt;9,2</title>
+<path fill="none" stroke="#218559" d="M709.417,-3489.33C697.062,-3489.77 683.424,-3489.86 670.535,-3489.61"/>
+<polygon fill="#218559" stroke="#218559" points="670.491,-3486.11 660.398,-3489.33 670.298,-3493.1 670.491,-3486.11"/>
+</g>
+<!-- 9,4 -->
+<g id="node102" class="node"><title>9,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3483" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-3494.17" font-family="Times Roman,serif" font-size="10.00">9,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-3475 864,-3489 909,-3489 909,-3475 864,-3475"/>
+<text text-anchor="start" x="872.5" y="-3479.67" font-family="Times Roman,serif" font-size="10.00">ATTTC</text>
+<polygon fill="#218559" stroke="#218559" points="864,-3461 864,-3475 909,-3475 909,-3461 864,-3461"/>
+<text text-anchor="start" x="870" y="-3465.67" font-family="Times Roman,serif" font-size="10.00">GAAAT</text>
+</g>
+<!-- 9,3&#45;&gt;9,4 -->
+<g id="edge538" class="edge"><title>9,3&#45;&gt;9,4</title>
+<path fill="none" stroke="#dd1e2f" d="M794.398,-3476.67C806.741,-3476.23 820.377,-3476.14 833.273,-3476.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.326,-3479.89 843.417,-3476.67 833.517,-3472.89 833.326,-3479.89"/>
+</g>
+<!-- 10,4 -->
+<g id="node117" class="node"><title>10,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3035" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-3046.17" font-family="Times Roman,serif" font-size="10.00">10,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-3027 861,-3041 912,-3041 912,-3027 861,-3027"/>
+<text text-anchor="start" x="871" y="-3031.67" font-family="Times Roman,serif" font-size="10.00">AGATT</text>
+<polygon fill="#218559" stroke="#218559" points="861,-3013 861,-3027 912,-3027 912,-3013 861,-3013"/>
+<text text-anchor="start" x="871.5" y="-3017.67" font-family="Times Roman,serif" font-size="10.00">AATCT</text>
+</g>
+<!-- 9,3&#45;&gt;10,4 -->
+<g id="edge540" class="edge"><title>9,3&#45;&gt;10,4</title>
+<path fill="none" stroke="#218559" d="M761.883,-3447.53C777.959,-3389.82 808,-3282 808,-3282 808,-3282 820,-3197 820,-3197 820,-3197 830,-3083 830,-3083 830,-3083 837.283,-3076.76 846.596,-3068.78"/>
+<polygon fill="#218559" stroke="#218559" points="849.085,-3071.25 854.4,-3062.09 844.529,-3065.94 849.085,-3071.25"/>
+</g>
+<!-- 9,4&#45;&gt;9,3 -->
+<g id="edge546" class="edge"><title>9,4&#45;&gt;9,3</title>
+<path fill="none" stroke="#218559" d="M843.417,-3489.33C831.062,-3489.77 817.424,-3489.86 804.535,-3489.61"/>
+<polygon fill="#218559" stroke="#218559" points="804.491,-3486.11 794.398,-3489.33 804.298,-3493.1 804.491,-3486.11"/>
+</g>
+<!-- 8,2 -->
+<g id="node105" class="node"><title>8,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5024" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-5035.17" font-family="Times Roman,serif" font-size="10.00">8,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-5016 462,-5030 507,-5030 507,-5016 462,-5016"/>
+<text text-anchor="start" x="467.5" y="-5020.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+<polygon fill="#218559" stroke="#218559" points="462,-5002 462,-5016 507,-5016 507,-5002 462,-5002"/>
+<text text-anchor="start" x="470" y="-5006.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+</g>
+<!-- 9,4&#45;&gt;8,2 -->
+<g id="edge544" class="edge"><title>9,4&#45;&gt;8,2</title>
+<path fill="none" stroke="#ebb035" d="M870.102,-3516.5C853.546,-3551.38 830,-3601 830,-3601 830,-3601 808,-3996 808,-3996 808,-3996 674,-4511 674,-4511 674,-4511 562,-4541 562,-4541 562,-4541 540,-4855 540,-4855 540,-4855 515.396,-4929.25 498.805,-4979.32"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="495.426,-4978.39 495.603,-4988.98 502.071,-4980.59 495.426,-4978.39"/>
+</g>
+<!-- 8,1&#45;&gt;24,1 -->
+<g id="edge102" class="edge"><title>8,1&#45;&gt;24,1</title>
+<path fill="none" stroke="#dd1e2f" d="M382.78,-5047.48C400.328,-5060.06 422.158,-5075.7 441.047,-5089.23"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="439.049,-5092.1 449.217,-5095.08 443.126,-5086.41 439.049,-5092.1"/>
+</g>
+<!-- 8,1&#45;&gt;7,3 -->
+<g id="edge106" class="edge"><title>8,1&#45;&gt;7,3</title>
+<path fill="none" stroke="#06a2cb" d="M356.826,-4988.3C370.078,-4919.01 398,-4773 398,-4773 398,-4773 428,-4551 428,-4551 428,-4551 540,-4511 540,-4511 540,-4511 550,-4259 550,-4259 550,-4259 562,-4248 562,-4248 562,-4248 674,-4162 674,-4162 674,-4162 684,-3800 684,-3800 684,-3800 686,-3800 686,-3800 686,-3800 696,-3996 696,-3996 696,-3996 734.995,-4436.78 747.905,-4582.71"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="744.42,-4583.04 748.788,-4592.69 751.393,-4582.42 744.42,-4583.04"/>
+</g>
+<!-- 8,1&#45;&gt;8,2 -->
+<g id="edge104" class="edge"><title>8,1&#45;&gt;8,2</title>
+<path fill="none" stroke="#dd1e2f" d="M392.398,-5017.67C404.741,-5017.23 418.377,-5017.14 431.273,-5017.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="431.326,-5020.89 441.417,-5017.67 431.517,-5013.89 431.326,-5020.89"/>
+</g>
+<!-- 8,2&#45;&gt;9,4 -->
+<g id="edge110" class="edge"><title>8,2&#45;&gt;9,4</title>
+<path fill="none" stroke="#ebb035" d="M495.845,-4988.99C515.327,-4931.4 552,-4823 552,-4823 552,-4823 562,-4581 562,-4581 562,-4581 674,-4541 674,-4541 674,-4541 696,-4504 696,-4504 696,-4504 820,-4465 820,-4465 820,-4465 830,-3601 830,-3601 830,-3601 849.673,-3559.55 865.699,-3525.78"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="868.977,-3527.03 870.102,-3516.5 862.653,-3524.03 868.977,-3527.03"/>
+</g>
+<!-- 8,2&#45;&gt;8,1 -->
+<g id="edge112" class="edge"><title>8,2&#45;&gt;8,1</title>
+<path fill="none" stroke="#218559" d="M441.417,-5030.33C429.062,-5030.77 415.424,-5030.86 402.535,-5030.61"/>
+<polygon fill="#218559" stroke="#218559" points="402.491,-5027.11 392.398,-5030.33 402.298,-5034.1 402.491,-5027.11"/>
+</g>
+<!-- 8,2&#45;&gt;8,3 -->
+<g id="edge108" class="edge"><title>8,2&#45;&gt;8,3</title>
+<path fill="none" stroke="#dd1e2f" d="M526.398,-5017.67C538.741,-5017.23 552.377,-5017.14 565.273,-5017.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="565.326,-5020.89 575.417,-5017.67 565.517,-5013.89 565.326,-5020.89"/>
+</g>
+<!-- 8,3&#45;&gt;7,1 -->
+<g id="edge116" class="edge"><title>8,3&#45;&gt;7,1</title>
+<path fill="none" stroke="#06a2cb" d="M610.095,-4988.57C594.659,-4919.38 562,-4773 562,-4773 562,-4773 552,-4315 552,-4315 552,-4315 550,-4315 550,-4315 550,-4315 540,-4579 540,-4579 540,-4579 531.629,-4586.47 521.36,-4595.64"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="518.768,-4593.26 513.64,-4602.54 523.43,-4598.49 518.768,-4593.26"/>
+</g>
+<!-- 8,3&#45;&gt;8,2 -->
+<g id="edge120" class="edge"><title>8,3&#45;&gt;8,2</title>
+<path fill="none" stroke="#218559" d="M575.417,-5030.33C563.062,-5030.77 549.424,-5030.86 536.535,-5030.61"/>
+<polygon fill="#218559" stroke="#218559" points="536.491,-5027.11 526.398,-5030.33 536.298,-5034.1 536.491,-5027.11"/>
+</g>
+<!-- 8,3&#45;&gt;8,4 -->
+<g id="edge114" class="edge"><title>8,3&#45;&gt;8,4</title>
+<path fill="none" stroke="#dd1e2f" d="M660.398,-5017.67C672.741,-5017.23 686.377,-5017.14 699.273,-5017.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="699.326,-5020.89 709.417,-5017.67 699.517,-5013.89 699.326,-5020.89"/>
+</g>
+<!-- 8,3&#45;&gt;19,4 -->
+<g id="edge118" class="edge"><title>8,3&#45;&gt;19,4</title>
+<path fill="none" stroke="#218559" d="M587.705,-5049.97C574.511,-5061.28 562,-5072 562,-5072 562,-5072 552,-5193 552,-5193 552,-5193 545.818,-5195.09 537.182,-5198.01"/>
+<polygon fill="#218559" stroke="#218559" points="535.802,-5194.78 527.45,-5201.3 538.045,-5201.41 535.802,-5194.78"/>
+</g>
+<!-- 8,4&#45;&gt;9,2 -->
+<g id="edge122" class="edge"><title>8,4&#45;&gt;9,2</title>
+<path fill="none" stroke="#ebb035" d="M744.095,-4988.57C728.659,-4919.38 696,-4773 696,-4773 696,-4773 686,-3557 686,-3557 686,-3557 668.526,-3537.98 651.293,-3519.23"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="653.829,-3516.82 644.485,-3511.82 648.674,-3521.55 653.829,-3516.82"/>
+</g>
+<!-- 8,4&#45;&gt;8,3 -->
+<g id="edge124" class="edge"><title>8,4&#45;&gt;8,3</title>
+<path fill="none" stroke="#218559" d="M709.417,-5030.33C697.062,-5030.77 683.424,-5030.86 670.535,-5030.61"/>
+<polygon fill="#218559" stroke="#218559" points="670.491,-5027.11 660.398,-5030.33 670.298,-5034.1 670.491,-5027.11"/>
+</g>
+<!-- 11,1 -->
+<g id="node109" class="node"><title>11,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">11,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-652 325,-666 376,-666 376,-652 325,-652"/>
+<text text-anchor="start" x="333.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">CTGGC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-638 325,-652 376,-652 376,-638 325,-638"/>
+<text text-anchor="start" x="332.5" y="-642.667" font-family="Times Roman,serif" font-size="10.00">GCCAG</text>
+</g>
+<!-- 11,2 -->
+<g id="node110" class="node"><title>11,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">11,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-652 459,-666 510,-666 510,-652 459,-652"/>
+<text text-anchor="start" x="467.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">TGGCA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-638 459,-652 510,-652 510,-638 459,-638"/>
+<text text-anchor="start" x="467.5" y="-642.667" font-family="Times Roman,serif" font-size="10.00">TGCCA</text>
+</g>
+<!-- 11,1&#45;&gt;11,2 -->
+<g id="edge548" class="edge"><title>11,1&#45;&gt;11,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-653.529C406.501,-653.254 416.748,-653.183 426.703,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-656.817 436.933,-653.523 427.007,-649.819 426.864,-656.817"/>
+</g>
+<!-- 12,2 -->
+<g id="node125" class="node"><title>12,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-564" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-575.167" font-family="Times Roman,serif" font-size="10.00">12,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-556 459,-570 510,-570 510,-556 459,-556"/>
+<text text-anchor="start" x="468.5" y="-560.667" font-family="Times Roman,serif" font-size="10.00">TCTGG</text>
+<polygon fill="#218559" stroke="#218559" points="459,-542 459,-556 510,-556 510,-542 459,-542"/>
+<text text-anchor="start" x="467" y="-546.667" font-family="Times Roman,serif" font-size="10.00">CCAGA</text>
+</g>
+<!-- 11,1&#45;&gt;12,2 -->
+<g id="edge550" class="edge"><title>11,1&#45;&gt;12,2</title>
+<path fill="none" stroke="#218559" d="M387.58,-637.894C403.307,-628.643 418,-620 418,-620 418,-620 430.304,-609.561 444.286,-597.696"/>
+<polygon fill="#218559" stroke="#218559" points="446.799,-600.154 452.16,-591.016 442.27,-594.817 446.799,-600.154"/>
+</g>
+<!-- 11,2&#45;&gt;11,1 -->
+<g id="edge556" class="edge"><title>11,2&#45;&gt;11,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-666.477C427.29,-666.749 417.041,-666.817 407.091,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-663.18 396.867,-666.471 406.792,-670.179 406.937,-663.18"/>
+</g>
+<!-- 11,3 -->
+<g id="node111" class="node"><title>11,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">11,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-652 593,-666 644,-666 644,-652 593,-652"/>
+<text text-anchor="start" x="600.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">GGCAG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-638 593,-652 644,-652 644,-638 593,-638"/>
+<text text-anchor="start" x="601.5" y="-642.667" font-family="Times Roman,serif" font-size="10.00">CTGCC</text>
+</g>
+<!-- 11,2&#45;&gt;11,3 -->
+<g id="edge554" class="edge"><title>11,2&#45;&gt;11,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-653.529C540.501,-653.254 550.748,-653.183 560.703,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-656.817 570.933,-653.523 561.007,-649.819 560.864,-656.817"/>
+</g>
+<!-- 10,1 -->
+<g id="node114" class="node"><title>10,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3035" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-3046.17" font-family="Times Roman,serif" font-size="10.00">10,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-3027 459,-3041 510,-3041 510,-3027 459,-3027"/>
+<text text-anchor="start" x="466.5" y="-3031.67" font-family="Times Roman,serif" font-size="10.00">GGCAG</text>
+<polygon fill="#218559" stroke="#218559" points="459,-3013 459,-3027 510,-3027 510,-3013 459,-3013"/>
+<text text-anchor="start" x="467.5" y="-3017.67" font-family="Times Roman,serif" font-size="10.00">CTGCC</text>
+</g>
+<!-- 11,2&#45;&gt;10,1 -->
+<g id="edge552" class="edge"><title>11,2&#45;&gt;10,1</title>
+<path fill="none" stroke="#dd1e2f" d="M480.949,-696.137C467.359,-857.109 413,-1501 413,-1501 413,-1501 413,-2875 413,-2875 413,-2875 443.68,-2944.14 464.704,-2991.52"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="461.513,-2992.96 468.769,-3000.68 467.912,-2990.12 461.513,-2992.96"/>
+</g>
+<!-- 11,3&#45;&gt;11,2 -->
+<g id="edge562" class="edge"><title>11,3&#45;&gt;11,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-666.477C561.29,-666.749 551.041,-666.817 541.091,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-663.18 530.867,-666.471 540.792,-670.179 540.937,-663.18"/>
+</g>
+<!-- 11,4 -->
+<g id="node112" class="node"><title>11,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">11,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-652 727,-666 778,-666 778,-652 727,-652"/>
+<text text-anchor="start" x="734.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">GCAGA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-638 727,-652 778,-652 778,-638 727,-638"/>
+<text text-anchor="start" x="737" y="-642.667" font-family="Times Roman,serif" font-size="10.00">TCTGC</text>
+</g>
+<!-- 11,3&#45;&gt;11,4 -->
+<g id="edge558" class="edge"><title>11,3&#45;&gt;11,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-653.529C674.501,-653.254 684.748,-653.183 694.703,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-656.817 704.933,-653.523 695.007,-649.819 694.864,-656.817"/>
+</g>
+<!-- 12,4 -->
+<g id="node127" class="node"><title>12,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-564" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-575.167" font-family="Times Roman,serif" font-size="10.00">12,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-556 727,-570 778,-570 778,-556 727,-556"/>
+<text text-anchor="start" x="735.5" y="-560.667" font-family="Times Roman,serif" font-size="10.00">TGGCA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-542 727,-556 778,-556 778,-542 727,-542"/>
+<text text-anchor="start" x="735.5" y="-546.667" font-family="Times Roman,serif" font-size="10.00">TGCCA</text>
+</g>
+<!-- 11,3&#45;&gt;12,4 -->
+<g id="edge560" class="edge"><title>11,3&#45;&gt;12,4</title>
+<path fill="none" stroke="#218559" d="M655.58,-637.894C671.307,-628.643 686,-620 686,-620 686,-620 698.304,-609.561 712.286,-597.696"/>
+<polygon fill="#218559" stroke="#218559" points="714.799,-600.154 720.16,-591.016 710.27,-594.817 714.799,-600.154"/>
+</g>
+<!-- 11,4&#45;&gt;11,3 -->
+<g id="edge566" class="edge"><title>11,4&#45;&gt;11,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-666.477C695.29,-666.749 685.041,-666.817 675.091,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-663.18 664.867,-666.471 674.792,-670.179 674.937,-663.18"/>
+</g>
+<!-- 10,3 -->
+<g id="node116" class="node"><title>10,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3035" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-3046.17" font-family="Times Roman,serif" font-size="10.00">10,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-3027 727,-3041 778,-3041 778,-3027 727,-3027"/>
+<text text-anchor="start" x="736" y="-3031.67" font-family="Times Roman,serif" font-size="10.00">CAGAT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-3013 727,-3027 778,-3027 778,-3013 727,-3013"/>
+<text text-anchor="start" x="737" y="-3017.67" font-family="Times Roman,serif" font-size="10.00">ATCTG</text>
+</g>
+<!-- 11,4&#45;&gt;10,3 -->
+<g id="edge564" class="edge"><title>11,4&#45;&gt;10,3</title>
+<path fill="none" stroke="#dd1e2f" d="M720.07,-687.164C702.813,-701.845 685,-717 685,-717 685,-717 685,-2875 685,-2875 685,-2875 713.831,-2943.85 733.667,-2991.22"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730.536,-2992.8 737.627,-3000.68 736.993,-2990.1 730.536,-2992.8"/>
+</g>
+<!-- 10,1&#45;&gt;11,2 -->
+<g id="edge128" class="edge"><title>10,1&#45;&gt;11,2</title>
+<path fill="none" stroke="#218559" d="M468.769,-3000.68C447.907,-2953.66 413,-2875 413,-2875 413,-2875 413,-1501 413,-1501 413,-1501 465.257,-882.016 480.107,-706.113"/>
+<polygon fill="#218559" stroke="#218559" points="483.595,-706.396 480.949,-696.137 476.62,-705.807 483.595,-706.396"/>
+</g>
+<!-- 10,1&#45;&gt;10,2 -->
+<g id="edge126" class="edge"><title>10,1&#45;&gt;10,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-3028.53C540.501,-3028.25 550.748,-3028.18 560.703,-3028.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-3031.82 570.933,-3028.52 561.007,-3024.82 560.864,-3031.82"/>
+</g>
+<!-- 10,2&#45;&gt;9,1 -->
+<g id="edge130" class="edge"><title>10,2&#45;&gt;9,1</title>
+<path fill="none" stroke="#dd1e2f" d="M586.4,-3062.09C573.697,-3072.97 562,-3083 562,-3083 562,-3083 540,-3282 540,-3282 540,-3282 513.155,-3378.35 496.638,-3437.64"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="493.195,-3436.96 493.883,-3447.53 499.938,-3438.83 493.195,-3436.96"/>
+</g>
+<!-- 10,2&#45;&gt;10,1 -->
+<g id="edge134" class="edge"><title>10,2&#45;&gt;10,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-3041.48C561.29,-3041.75 551.041,-3041.82 541.091,-3041.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-3038.18 530.867,-3041.47 540.792,-3045.18 540.937,-3038.18"/>
+</g>
+<!-- 10,2&#45;&gt;10,3 -->
+<g id="edge132" class="edge"><title>10,2&#45;&gt;10,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-3028.53C674.501,-3028.25 684.748,-3028.18 694.703,-3028.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-3031.82 704.933,-3028.52 695.007,-3024.82 694.864,-3031.82"/>
+</g>
+<!-- 10,3&#45;&gt;11,4 -->
+<g id="edge138" class="edge"><title>10,3&#45;&gt;11,4</title>
+<path fill="none" stroke="#218559" d="M737.627,-3000.68C717.94,-2953.66 685,-2875 685,-2875 685,-2875 685,-717 685,-717 685,-717 697.917,-706.011 712.409,-693.682"/>
+<polygon fill="#218559" stroke="#218559" points="714.721,-696.31 720.07,-687.164 710.185,-690.979 714.721,-696.31"/>
+</g>
+<!-- 10,3&#45;&gt;10,2 -->
+<g id="edge140" class="edge"><title>10,3&#45;&gt;10,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-3041.48C695.29,-3041.75 685.041,-3041.82 675.091,-3041.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-3038.18 664.867,-3041.47 674.792,-3045.18 674.937,-3038.18"/>
+</g>
+<!-- 10,3&#45;&gt;10,4 -->
+<g id="edge136" class="edge"><title>10,3&#45;&gt;10,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-3028.53C808.501,-3028.25 818.748,-3028.18 828.703,-3028.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-3031.82 838.933,-3028.52 829.007,-3024.82 828.864,-3031.82"/>
+</g>
+<!-- 10,4&#45;&gt;9,3 -->
+<g id="edge142" class="edge"><title>10,4&#45;&gt;9,3</title>
+<path fill="none" stroke="#dd1e2f" d="M854.4,-3062.09C841.697,-3072.97 830,-3083 830,-3083 830,-3083 808,-3282 808,-3282 808,-3282 781.155,-3378.35 764.638,-3437.64"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="761.195,-3436.96 761.883,-3447.53 767.938,-3438.83 761.195,-3436.96"/>
+</g>
+<!-- 10,4&#45;&gt;10,3 -->
+<g id="edge144" class="edge"><title>10,4&#45;&gt;10,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-3041.48C829.29,-3041.75 819.041,-3041.82 809.091,-3041.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-3038.18 798.867,-3041.47 808.792,-3045.18 808.937,-3038.18"/>
+</g>
+<!-- 13,1 -->
+<g id="node119" class="node"><title>13,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-468" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-479.167" font-family="Times Roman,serif" font-size="10.00">13,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-460 325,-474 376,-474 376,-460 325,-460"/>
+<text text-anchor="start" x="336" y="-464.667" font-family="Times Roman,serif" font-size="10.00">ATCTC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-446 325,-460 376,-460 376,-446 325,-446"/>
+<text text-anchor="start" x="334" y="-450.667" font-family="Times Roman,serif" font-size="10.00">GAGAT</text>
+</g>
+<!-- 13,2 -->
+<g id="node120" class="node"><title>13,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-468" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-479.167" font-family="Times Roman,serif" font-size="10.00">13,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-460 459,-474 510,-474 510,-460 459,-460"/>
+<text text-anchor="start" x="470" y="-464.667" font-family="Times Roman,serif" font-size="10.00">TCTCT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-446 459,-460 510,-460 510,-446 459,-446"/>
+<text text-anchor="start" x="467" y="-450.667" font-family="Times Roman,serif" font-size="10.00">AGAGA</text>
+</g>
+<!-- 13,1&#45;&gt;13,2 -->
+<g id="edge568" class="edge"><title>13,1&#45;&gt;13,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-461.529C406.501,-461.254 416.748,-461.183 426.703,-461.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-464.817 436.933,-461.523 427.007,-457.819 426.864,-464.817"/>
+</g>
+<!-- 14,2 -->
+<g id="node135" class="node"><title>14,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-372" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-383.167" font-family="Times Roman,serif" font-size="10.00">14,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-364 459,-378 510,-378 510,-364 459,-364"/>
+<text text-anchor="start" x="469.5" y="-368.667" font-family="Times Roman,serif" font-size="10.00">CATCT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-350 459,-364 510,-364 510,-350 459,-350"/>
+<text text-anchor="start" x="468" y="-354.667" font-family="Times Roman,serif" font-size="10.00">AGATG</text>
+</g>
+<!-- 13,1&#45;&gt;14,2 -->
+<g id="edge570" class="edge"><title>13,1&#45;&gt;14,2</title>
+<path fill="none" stroke="#218559" d="M387.58,-445.894C403.307,-436.643 418,-428 418,-428 418,-428 430.304,-417.561 444.286,-405.696"/>
+<polygon fill="#218559" stroke="#218559" points="446.799,-408.154 452.16,-399.016 442.27,-402.817 446.799,-408.154"/>
+</g>
+<!-- 13,2&#45;&gt;13,1 -->
+<g id="edge576" class="edge"><title>13,2&#45;&gt;13,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-474.477C427.29,-474.749 417.041,-474.817 407.091,-474.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-471.18 396.867,-474.471 406.792,-478.179 406.937,-471.18"/>
+</g>
+<!-- 13,3 -->
+<g id="node121" class="node"><title>13,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-468" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-479.167" font-family="Times Roman,serif" font-size="10.00">13,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-460 593,-474 644,-474 644,-460 593,-460"/>
+<text text-anchor="start" x="603" y="-464.667" font-family="Times Roman,serif" font-size="10.00">CTCTG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-446 593,-460 644,-460 644,-446 593,-446"/>
+<text text-anchor="start" x="601" y="-450.667" font-family="Times Roman,serif" font-size="10.00">CAGAG</text>
+</g>
+<!-- 13,2&#45;&gt;13,3 -->
+<g id="edge574" class="edge"><title>13,2&#45;&gt;13,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-461.529C540.501,-461.254 550.748,-461.183 560.703,-461.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-464.817 570.933,-461.523 561.007,-457.819 560.864,-464.817"/>
+</g>
+<!-- 12,1 -->
+<g id="node124" class="node"><title>12,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-564" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-575.167" font-family="Times Roman,serif" font-size="10.00">12,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-556 325,-570 376,-570 376,-556 325,-556"/>
+<text text-anchor="start" x="335" y="-560.667" font-family="Times Roman,serif" font-size="10.00">CTCTG</text>
+<polygon fill="#218559" stroke="#218559" points="325,-542 325,-556 376,-556 376,-542 325,-542"/>
+<text text-anchor="start" x="333" y="-546.667" font-family="Times Roman,serif" font-size="10.00">CAGAG</text>
+</g>
+<!-- 13,2&#45;&gt;12,1 -->
+<g id="edge572" class="edge"><title>13,2&#45;&gt;12,1</title>
+<path fill="none" stroke="#dd1e2f" d="M452.16,-495.016C435.283,-509.336 418,-524 418,-524 418,-524 408.3,-529.706 396.227,-536.808"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="394.425,-533.807 387.58,-541.894 397.974,-539.841 394.425,-533.807"/>
+</g>
+<!-- 13,3&#45;&gt;13,2 -->
+<g id="edge582" class="edge"><title>13,3&#45;&gt;13,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-474.477C561.29,-474.749 551.041,-474.817 541.091,-474.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-471.18 530.867,-474.471 540.792,-478.179 540.937,-471.18"/>
+</g>
+<!-- 13,4 -->
+<g id="node122" class="node"><title>13,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-468" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-479.167" font-family="Times Roman,serif" font-size="10.00">13,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-460 727,-474 778,-474 778,-460 727,-460"/>
+<text text-anchor="start" x="736.5" y="-464.667" font-family="Times Roman,serif" font-size="10.00">TCTGG</text>
+<polygon fill="#218559" stroke="#218559" points="727,-446 727,-460 778,-460 778,-446 727,-446"/>
+<text text-anchor="start" x="735" y="-450.667" font-family="Times Roman,serif" font-size="10.00">CCAGA</text>
+</g>
+<!-- 13,3&#45;&gt;13,4 -->
+<g id="edge578" class="edge"><title>13,3&#45;&gt;13,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-461.529C674.501,-461.254 684.748,-461.183 694.703,-461.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-464.817 704.933,-461.523 695.007,-457.819 694.864,-464.817"/>
+</g>
+<!-- 14,4 -->
+<g id="node137" class="node"><title>14,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-372" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-383.167" font-family="Times Roman,serif" font-size="10.00">14,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-364 727,-378 778,-378 778,-364 727,-364"/>
+<text text-anchor="start" x="738" y="-368.667" font-family="Times Roman,serif" font-size="10.00">TCTCT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-350 727,-364 778,-364 778,-350 727,-350"/>
+<text text-anchor="start" x="735" y="-354.667" font-family="Times Roman,serif" font-size="10.00">AGAGA</text>
+</g>
+<!-- 13,3&#45;&gt;14,4 -->
+<g id="edge580" class="edge"><title>13,3&#45;&gt;14,4</title>
+<path fill="none" stroke="#218559" d="M655.58,-445.894C671.307,-436.643 686,-428 686,-428 686,-428 698.304,-417.561 712.286,-405.696"/>
+<polygon fill="#218559" stroke="#218559" points="714.799,-408.154 720.16,-399.016 710.27,-402.817 714.799,-408.154"/>
+</g>
+<!-- 13,4&#45;&gt;13,3 -->
+<g id="edge586" class="edge"><title>13,4&#45;&gt;13,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-474.477C695.29,-474.749 685.041,-474.817 675.091,-474.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-471.18 664.867,-474.471 674.792,-478.179 674.937,-471.18"/>
+</g>
+<!-- 12,3 -->
+<g id="node126" class="node"><title>12,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-564" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-575.167" font-family="Times Roman,serif" font-size="10.00">12,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-556 593,-570 644,-570 644,-556 593,-556"/>
+<text text-anchor="start" x="601.5" y="-560.667" font-family="Times Roman,serif" font-size="10.00">CTGGC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-542 593,-556 644,-556 644,-542 593,-542"/>
+<text text-anchor="start" x="600.5" y="-546.667" font-family="Times Roman,serif" font-size="10.00">GCCAG</text>
+</g>
+<!-- 13,4&#45;&gt;12,3 -->
+<g id="edge584" class="edge"><title>13,4&#45;&gt;12,3</title>
+<path fill="none" stroke="#dd1e2f" d="M720.16,-495.016C703.283,-509.336 686,-524 686,-524 686,-524 676.3,-529.706 664.227,-536.808"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="662.425,-533.807 655.58,-541.894 665.974,-539.841 662.425,-533.807"/>
+</g>
+<!-- 12,1&#45;&gt;13,2 -->
+<g id="edge148" class="edge"><title>12,1&#45;&gt;13,2</title>
+<path fill="none" stroke="#218559" d="M384.857,-539.028C402.072,-526.694 422.998,-511.703 441.18,-498.677"/>
+<polygon fill="#218559" stroke="#218559" points="443.227,-501.516 449.317,-492.847 439.15,-495.826 443.227,-501.516"/>
+</g>
+<!-- 12,1&#45;&gt;12,2 -->
+<g id="edge146" class="edge"><title>12,1&#45;&gt;12,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-557.529C406.501,-557.254 416.748,-557.183 426.703,-557.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-560.817 436.933,-557.523 427.007,-553.819 426.864,-560.817"/>
+</g>
+<!-- 12,2&#45;&gt;11,1 -->
+<g id="edge150" class="edge"><title>12,2&#45;&gt;11,1</title>
+<path fill="none" stroke="#dd1e2f" d="M449.317,-588.847C432.127,-601.162 411.205,-616.152 393.005,-629.191"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="390.948,-626.359 384.857,-635.028 395.025,-632.049 390.948,-626.359"/>
+</g>
+<!-- 12,2&#45;&gt;12,1 -->
+<g id="edge154" class="edge"><title>12,2&#45;&gt;12,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-570.477C427.29,-570.749 417.041,-570.817 407.091,-570.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-567.18 396.867,-570.471 406.792,-574.179 406.937,-567.18"/>
+</g>
+<!-- 12,2&#45;&gt;12,3 -->
+<g id="edge152" class="edge"><title>12,2&#45;&gt;12,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-557.529C540.501,-557.254 550.748,-557.183 560.703,-557.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-560.817 570.933,-557.523 561.007,-553.819 560.864,-560.817"/>
+</g>
+<!-- 12,3&#45;&gt;13,4 -->
+<g id="edge158" class="edge"><title>12,3&#45;&gt;13,4</title>
+<path fill="none" stroke="#218559" d="M652.857,-539.028C670.072,-526.694 690.998,-511.703 709.18,-498.677"/>
+<polygon fill="#218559" stroke="#218559" points="711.227,-501.516 717.317,-492.847 707.15,-495.826 711.227,-501.516"/>
+</g>
+<!-- 12,3&#45;&gt;12,2 -->
+<g id="edge160" class="edge"><title>12,3&#45;&gt;12,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-570.477C561.29,-570.749 551.041,-570.817 541.091,-570.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-567.18 530.867,-570.471 540.792,-574.179 540.937,-567.18"/>
+</g>
+<!-- 12,3&#45;&gt;12,4 -->
+<g id="edge156" class="edge"><title>12,3&#45;&gt;12,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-557.529C674.501,-557.254 684.748,-557.183 694.703,-557.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-560.817 704.933,-557.523 695.007,-553.819 694.864,-560.817"/>
+</g>
+<!-- 12,4&#45;&gt;11,3 -->
+<g id="edge162" class="edge"><title>12,4&#45;&gt;11,3</title>
+<path fill="none" stroke="#dd1e2f" d="M717.317,-588.847C700.127,-601.162 679.205,-616.152 661.005,-629.191"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="658.948,-626.359 652.857,-635.028 663.025,-632.049 658.948,-626.359"/>
+</g>
+<!-- 12,4&#45;&gt;12,3 -->
+<g id="edge164" class="edge"><title>12,4&#45;&gt;12,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-570.477C695.29,-570.749 685.041,-570.817 675.091,-570.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-567.18 664.867,-570.471 674.792,-574.179 674.937,-567.18"/>
+</g>
+<!-- 15,1 -->
+<g id="node129" class="node"><title>15,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-276" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-287.167" font-family="Times Roman,serif" font-size="10.00">15,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-268 325,-282 376,-282 376,-268 325,-268"/>
+<text text-anchor="start" x="332.5" y="-272.667" font-family="Times Roman,serif" font-size="10.00">CGGCA</text>
+<polygon fill="#218559" stroke="#218559" points="325,-254 325,-268 376,-268 376,-254 325,-254"/>
+<text text-anchor="start" x="333.5" y="-258.667" font-family="Times Roman,serif" font-size="10.00">TGCCG</text>
+</g>
+<!-- 15,2 -->
+<g id="node130" class="node"><title>15,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-276" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-287.167" font-family="Times Roman,serif" font-size="10.00">15,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-268 459,-282 510,-282 510,-268 459,-268"/>
+<text text-anchor="start" x="468" y="-272.667" font-family="Times Roman,serif" font-size="10.00">GGCAT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-254 459,-268 510,-268 510,-254 459,-254"/>
+<text text-anchor="start" x="468" y="-258.667" font-family="Times Roman,serif" font-size="10.00">ATGCC</text>
+</g>
+<!-- 15,1&#45;&gt;15,2 -->
+<g id="edge588" class="edge"><title>15,1&#45;&gt;15,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-269.529C406.501,-269.254 416.748,-269.183 426.703,-269.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-272.817 436.933,-269.523 427.007,-265.819 426.864,-272.817"/>
+</g>
+<!-- 16,2 -->
+<g id="node145" class="node"><title>16,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-148" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">16,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-140 459,-154 510,-154 510,-140 459,-140"/>
+<text text-anchor="start" x="466.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">ACGGC</text>
+<polygon fill="#218559" stroke="#218559" points="459,-126 459,-140 510,-140 510,-126 459,-126"/>
+<text text-anchor="start" x="467.5" y="-130.667" font-family="Times Roman,serif" font-size="10.00">GCCGT</text>
+</g>
+<!-- 15,1&#45;&gt;16,2 -->
+<g id="edge590" class="edge"><title>15,1&#45;&gt;16,2</title>
+<path fill="none" stroke="#218559" d="M384.398,-250.707C401.265,-238.305 418,-226 418,-226 418,-226 434.96,-205.956 451.686,-186.19"/>
+<polygon fill="#218559" stroke="#218559" points="454.506,-188.275 458.294,-178.38 449.162,-183.753 454.506,-188.275"/>
+</g>
+<!-- 15,2&#45;&gt;15,1 -->
+<g id="edge596" class="edge"><title>15,2&#45;&gt;15,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-282.477C427.29,-282.749 417.041,-282.817 407.091,-282.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-279.18 396.867,-282.471 406.792,-286.179 406.937,-279.18"/>
+</g>
+<!-- 15,3 -->
+<g id="node131" class="node"><title>15,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-276" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-287.167" font-family="Times Roman,serif" font-size="10.00">15,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-268 593,-282 644,-282 644,-268 593,-268"/>
+<text text-anchor="start" x="602.5" y="-272.667" font-family="Times Roman,serif" font-size="10.00">GCATC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-254 593,-268 644,-268 644,-254 593,-254"/>
+<text text-anchor="start" x="602" y="-258.667" font-family="Times Roman,serif" font-size="10.00">GATGC</text>
+</g>
+<!-- 15,2&#45;&gt;15,3 -->
+<g id="edge594" class="edge"><title>15,2&#45;&gt;15,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-269.529C540.501,-269.254 550.748,-269.183 560.703,-269.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-272.817 570.933,-269.523 561.007,-265.819 560.864,-272.817"/>
+</g>
+<!-- 14,1 -->
+<g id="node134" class="node"><title>14,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-372" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-383.167" font-family="Times Roman,serif" font-size="10.00">14,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-364 325,-378 376,-378 376,-364 325,-364"/>
+<text text-anchor="start" x="334.5" y="-368.667" font-family="Times Roman,serif" font-size="10.00">GCATC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-350 325,-364 376,-364 376,-350 325,-350"/>
+<text text-anchor="start" x="334" y="-354.667" font-family="Times Roman,serif" font-size="10.00">GATGC</text>
+</g>
+<!-- 15,2&#45;&gt;14,1 -->
+<g id="edge592" class="edge"><title>15,2&#45;&gt;14,1</title>
+<path fill="none" stroke="#dd1e2f" d="M452.16,-303.016C435.283,-317.336 418,-332 418,-332 418,-332 408.3,-337.706 396.227,-344.808"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="394.425,-341.807 387.58,-349.894 397.974,-347.841 394.425,-341.807"/>
+</g>
+<!-- 15,3&#45;&gt;15,2 -->
+<g id="edge602" class="edge"><title>15,3&#45;&gt;15,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-282.477C561.29,-282.749 551.041,-282.817 541.091,-282.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-279.18 530.867,-282.471 540.792,-286.179 540.937,-279.18"/>
+</g>
+<!-- 15,4 -->
+<g id="node132" class="node"><title>15,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-276" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-287.167" font-family="Times Roman,serif" font-size="10.00">15,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-268 727,-282 778,-282 778,-268 727,-268"/>
+<text text-anchor="start" x="737.5" y="-272.667" font-family="Times Roman,serif" font-size="10.00">CATCT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-254 727,-268 778,-268 778,-254 727,-254"/>
+<text text-anchor="start" x="736" y="-258.667" font-family="Times Roman,serif" font-size="10.00">AGATG</text>
+</g>
+<!-- 15,3&#45;&gt;15,4 -->
+<g id="edge598" class="edge"><title>15,3&#45;&gt;15,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-269.529C674.501,-269.254 684.748,-269.183 694.703,-269.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-272.817 704.933,-269.523 695.007,-265.819 694.864,-272.817"/>
+</g>
+<!-- 16,4 -->
+<g id="node147" class="node"><title>16,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-148" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">16,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-140 727,-154 778,-154 778,-140 727,-140"/>
+<text text-anchor="start" x="736" y="-144.667" font-family="Times Roman,serif" font-size="10.00">GGCAT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-126 727,-140 778,-140 778,-126 727,-126"/>
+<text text-anchor="start" x="736" y="-130.667" font-family="Times Roman,serif" font-size="10.00">ATGCC</text>
+</g>
+<!-- 15,3&#45;&gt;16,4 -->
+<g id="edge600" class="edge"><title>15,3&#45;&gt;16,4</title>
+<path fill="none" stroke="#218559" d="M652.398,-250.707C669.265,-238.305 686,-226 686,-226 686,-226 702.96,-205.956 719.686,-186.19"/>
+<polygon fill="#218559" stroke="#218559" points="722.506,-188.275 726.294,-178.38 717.162,-183.753 722.506,-188.275"/>
+</g>
+<!-- 15,4&#45;&gt;15,3 -->
+<g id="edge606" class="edge"><title>15,4&#45;&gt;15,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-282.477C695.29,-282.749 685.041,-282.817 675.091,-282.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-279.18 664.867,-282.471 674.792,-286.179 674.937,-279.18"/>
+</g>
+<!-- 14,3 -->
+<g id="node136" class="node"><title>14,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-372" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-383.167" font-family="Times Roman,serif" font-size="10.00">14,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-364 593,-378 644,-378 644,-364 593,-364"/>
+<text text-anchor="start" x="604" y="-368.667" font-family="Times Roman,serif" font-size="10.00">ATCTC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-350 593,-364 644,-364 644,-350 593,-350"/>
+<text text-anchor="start" x="602" y="-354.667" font-family="Times Roman,serif" font-size="10.00">GAGAT</text>
+</g>
+<!-- 15,4&#45;&gt;14,3 -->
+<g id="edge604" class="edge"><title>15,4&#45;&gt;14,3</title>
+<path fill="none" stroke="#dd1e2f" d="M720.16,-303.016C703.283,-317.336 686,-332 686,-332 686,-332 676.3,-337.706 664.227,-344.808"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="662.425,-341.807 655.58,-349.894 665.974,-347.841 662.425,-341.807"/>
+</g>
+<!-- 14,1&#45;&gt;15,2 -->
+<g id="edge168" class="edge"><title>14,1&#45;&gt;15,2</title>
+<path fill="none" stroke="#218559" d="M384.857,-347.028C402.072,-334.694 422.998,-319.703 441.18,-306.677"/>
+<polygon fill="#218559" stroke="#218559" points="443.227,-309.516 449.317,-300.847 439.15,-303.826 443.227,-309.516"/>
+</g>
+<!-- 14,1&#45;&gt;14,2 -->
+<g id="edge166" class="edge"><title>14,1&#45;&gt;14,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-365.529C406.501,-365.254 416.748,-365.183 426.703,-365.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-368.817 436.933,-365.523 427.007,-361.819 426.864,-368.817"/>
+</g>
+<!-- 14,2&#45;&gt;13,1 -->
+<g id="edge170" class="edge"><title>14,2&#45;&gt;13,1</title>
+<path fill="none" stroke="#dd1e2f" d="M449.317,-396.847C432.127,-409.162 411.205,-424.152 393.005,-437.191"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="390.948,-434.359 384.857,-443.028 395.025,-440.049 390.948,-434.359"/>
+</g>
+<!-- 14,2&#45;&gt;14,1 -->
+<g id="edge174" class="edge"><title>14,2&#45;&gt;14,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-378.477C427.29,-378.749 417.041,-378.817 407.091,-378.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-375.18 396.867,-378.471 406.792,-382.179 406.937,-375.18"/>
+</g>
+<!-- 14,2&#45;&gt;14,3 -->
+<g id="edge172" class="edge"><title>14,2&#45;&gt;14,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-365.529C540.501,-365.254 550.748,-365.183 560.703,-365.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-368.817 570.933,-365.523 561.007,-361.819 560.864,-368.817"/>
+</g>
+<!-- 14,3&#45;&gt;15,4 -->
+<g id="edge178" class="edge"><title>14,3&#45;&gt;15,4</title>
+<path fill="none" stroke="#218559" d="M652.857,-347.028C670.072,-334.694 690.998,-319.703 709.18,-306.677"/>
+<polygon fill="#218559" stroke="#218559" points="711.227,-309.516 717.317,-300.847 707.15,-303.826 711.227,-309.516"/>
+</g>
+<!-- 14,3&#45;&gt;14,2 -->
+<g id="edge180" class="edge"><title>14,3&#45;&gt;14,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-378.477C561.29,-378.749 551.041,-378.817 541.091,-378.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-375.18 530.867,-378.471 540.792,-382.179 540.937,-375.18"/>
+</g>
+<!-- 14,3&#45;&gt;14,4 -->
+<g id="edge176" class="edge"><title>14,3&#45;&gt;14,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-365.529C674.501,-365.254 684.748,-365.183 694.703,-365.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-368.817 704.933,-365.523 695.007,-361.819 694.864,-368.817"/>
+</g>
+<!-- 14,4&#45;&gt;13,3 -->
+<g id="edge182" class="edge"><title>14,4&#45;&gt;13,3</title>
+<path fill="none" stroke="#dd1e2f" d="M717.317,-396.847C700.127,-409.162 679.205,-424.152 661.005,-437.191"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="658.948,-434.359 652.857,-443.028 663.025,-440.049 658.948,-434.359"/>
+</g>
+<!-- 14,4&#45;&gt;14,3 -->
+<g id="edge184" class="edge"><title>14,4&#45;&gt;14,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-378.477C695.29,-378.749 685.041,-378.817 675.091,-378.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-375.18 664.867,-378.471 674.792,-382.179 674.937,-375.18"/>
+</g>
+<!-- 17,1&#45;&gt;24,1 -->
+<g id="edge614" class="edge"><title>17,1&#45;&gt;24,1</title>
+<path fill="none" stroke="#218559" d="M364.013,-3982.45C378.18,-4017.28 398,-4066 398,-4066 398,-4066 418,-4361 418,-4361 418,-4361 428,-5072 428,-5072 428,-5072 435.283,-5078.24 444.596,-5086.22"/>
+<polygon fill="#218559" stroke="#218559" points="442.529,-5089.06 452.4,-5092.91 447.085,-5083.75 442.529,-5089.06"/>
+</g>
+<!-- 17,1&#45;&gt;23,2 -->
+<g id="edge610" class="edge"><title>17,1&#45;&gt;23,2</title>
+<path fill="none" stroke="#06a2cb" d="M365.308,-3913.67C384.805,-3869.95 416,-3800 416,-3800 416,-3800 418,-3800 418,-3800 418,-3800 428,-4677 428,-4677 428,-4677 435.283,-4683.24 444.596,-4691.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="442.529,-4694.06 452.4,-4697.91 447.085,-4688.75 442.529,-4694.06"/>
+</g>
+<!-- 17,1&#45;&gt;17,2 -->
+<g id="edge608" class="edge"><title>17,1&#45;&gt;17,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-3941.53C406.501,-3941.25 416.748,-3941.18 426.703,-3941.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-3944.82 436.933,-3941.52 427.007,-3937.82 426.864,-3944.82"/>
+</g>
+<!-- 18,3 -->
+<g id="node156" class="node"><title>18,3</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-4463" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-4474.17" font-family="Times Roman,serif" font-size="10.00">18,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-4455 459,-4469 510,-4469 510,-4455 459,-4455"/>
+<text text-anchor="start" x="470" y="-4459.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-4441 459,-4455 510,-4455 510,-4441 459,-4441"/>
+<text text-anchor="start" x="467.5" y="-4445.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+</g>
+<!-- 17,1&#45;&gt;18,3 -->
+<g id="edge612" class="edge"><title>17,1&#45;&gt;18,3</title>
+<path fill="none" stroke="#06a2cb" d="M365.188,-3913.83C379.25,-3882.19 398,-3840 398,-3840 398,-3840 416,-3775 416,-3775 416,-3775 418,-3775 418,-3775 418,-3775 428,-4162 428,-4162 428,-4162 459.813,-4333 475.483,-4417.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="472.086,-4418.1 477.356,-4427.29 478.968,-4416.82 472.086,-4418.1"/>
+</g>
+<!-- 17,2&#45;&gt;23,1 -->
+<g id="edge620" class="edge"><title>17,2&#45;&gt;23,1</title>
+<path fill="none" stroke="#06a2cb" d="M453.052,-3975.63C440.1,-3987.2 428,-3998 428,-3998 428,-3998 416,-4190 416,-4190 416,-4190 398,-4511 398,-4511 398,-4511 374.399,-4616.22 360.296,-4679.1"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="356.808,-4678.66 358.034,-4689.18 363.638,-4680.19 356.808,-4678.66"/>
+</g>
+<!-- 17,2&#45;&gt;17,1 -->
+<g id="edge622" class="edge"><title>17,2&#45;&gt;17,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-3954.48C427.29,-3954.75 417.041,-3954.82 407.091,-3954.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-3951.18 396.867,-3954.47 406.792,-3958.18 406.937,-3951.18"/>
+</g>
+<!-- 17,3 -->
+<g id="node141" class="node"><title>17,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3948" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-3959.17" font-family="Times Roman,serif" font-size="10.00">17,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-3940 593,-3954 644,-3954 644,-3940 593,-3940"/>
+<text text-anchor="start" x="600.5" y="-3944.67" font-family="Times Roman,serif" font-size="10.00">AACGG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-3926 593,-3940 644,-3940 644,-3926 593,-3926"/>
+<text text-anchor="start" x="603" y="-3930.67" font-family="Times Roman,serif" font-size="10.00">CCGTT</text>
+</g>
+<!-- 17,2&#45;&gt;17,3 -->
+<g id="edge618" class="edge"><title>17,2&#45;&gt;17,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-3941.53C540.501,-3941.25 550.748,-3941.18 560.703,-3941.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-3944.82 570.933,-3941.52 561.007,-3937.82 560.864,-3944.82"/>
+</g>
+<!-- 16,1 -->
+<g id="node144" class="node"><title>16,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-148" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">16,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-140 325,-154 376,-154 376,-140 325,-140"/>
+<text text-anchor="start" x="332.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">AACGG</text>
+<polygon fill="#218559" stroke="#218559" points="325,-126 325,-140 376,-140 376,-126 325,-126"/>
+<text text-anchor="start" x="335" y="-130.667" font-family="Times Roman,serif" font-size="10.00">CCGTT</text>
+</g>
+<!-- 17,2&#45;&gt;16,1 -->
+<g id="edge616" class="edge"><title>17,2&#45;&gt;16,1</title>
+<path fill="none" stroke="#dd1e2f" d="M476.036,-3912.3C460.575,-3843.01 428,-3697 428,-3697 428,-3697 418,-2372 418,-2372 418,-2372 398,-228 398,-228 398,-228 386.635,-209.059 374.965,-189.609"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="377.947,-187.775 369.801,-181.001 371.944,-191.377 377.947,-187.775"/>
+</g>
+<!-- 17,3&#45;&gt;17,2 -->
+<g id="edge628" class="edge"><title>17,3&#45;&gt;17,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-3954.48C561.29,-3954.75 551.041,-3954.82 541.091,-3954.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-3951.18 530.867,-3954.47 540.792,-3958.18 540.937,-3951.18"/>
+</g>
+<!-- 17,4 -->
+<g id="node142" class="node"><title>17,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3948" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-3959.17" font-family="Times Roman,serif" font-size="10.00">17,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-3940 727,-3954 778,-3954 778,-3940 727,-3940"/>
+<text text-anchor="start" x="734.5" y="-3944.67" font-family="Times Roman,serif" font-size="10.00">ACGGC</text>
+<polygon fill="#218559" stroke="#218559" points="727,-3926 727,-3940 778,-3940 778,-3926 727,-3926"/>
+<text text-anchor="start" x="735.5" y="-3930.67" font-family="Times Roman,serif" font-size="10.00">GCCGT</text>
+</g>
+<!-- 17,3&#45;&gt;17,4 -->
+<g id="edge624" class="edge"><title>17,3&#45;&gt;17,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-3941.53C674.501,-3941.25 684.748,-3941.18 694.703,-3941.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-3944.82 704.933,-3941.52 695.007,-3937.82 694.864,-3944.82"/>
+</g>
+<!-- 17,3&#45;&gt;18,1 -->
+<g id="edge626" class="edge"><title>17,3&#45;&gt;18,1</title>
+<path fill="none" stroke="#06a2cb" d="M610.036,-3912.3C594.575,-3843.01 562,-3697 562,-3697 562,-3697 540,-3435 540,-3435 540,-3435 428,-3435 428,-3435 428,-3435 398,-3669 398,-3669 398,-3669 294,-3903 294,-3903 294,-3903 264,-4162 264,-4162 264,-4162 236.799,-4332.57 223.35,-4416.91"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="219.861,-4416.56 221.742,-4426.99 226.773,-4417.67 219.861,-4416.56"/>
+</g>
+<!-- 17,4&#45;&gt;17,3 -->
+<g id="edge632" class="edge"><title>17,4&#45;&gt;17,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-3954.48C695.29,-3954.75 685.041,-3954.82 675.091,-3954.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-3951.18 664.867,-3954.47 674.792,-3958.18 674.937,-3951.18"/>
+</g>
+<!-- 16,3 -->
+<g id="node146" class="node"><title>16,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-148" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">16,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-140 593,-154 644,-154 644,-140 593,-140"/>
+<text text-anchor="start" x="600.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">CGGCA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-126 593,-140 644,-140 644,-126 593,-126"/>
+<text text-anchor="start" x="601.5" y="-130.667" font-family="Times Roman,serif" font-size="10.00">TGCCG</text>
+</g>
+<!-- 17,4&#45;&gt;16,3 -->
+<g id="edge630" class="edge"><title>17,4&#45;&gt;16,3</title>
+<path fill="none" stroke="#dd1e2f" d="M744.036,-3912.3C728.575,-3843.01 696,-3697 696,-3697 696,-3697 686,-1855 686,-1855 686,-1855 674,-228 674,-228 674,-228 660.245,-208.35 646.369,-188.527"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="649.057,-186.263 640.455,-180.078 643.322,-190.278 649.057,-186.263"/>
+</g>
+<!-- 16,1&#45;&gt;17,2 -->
+<g id="edge188" class="edge"><title>16,1&#45;&gt;17,2</title>
+<path fill="none" stroke="#218559" d="M369.801,-181.001C383.023,-203.038 398,-228 398,-228 398,-228 428,-3697 428,-3697 428,-3697 457.714,-3830.18 473.853,-3902.52"/>
+<polygon fill="#218559" stroke="#218559" points="470.442,-3903.31 476.036,-3912.3 477.274,-3901.78 470.442,-3903.31"/>
+</g>
+<!-- 16,1&#45;&gt;16,2 -->
+<g id="edge186" class="edge"><title>16,1&#45;&gt;16,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-141.529C406.501,-141.254 416.748,-141.183 426.703,-141.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-144.817 436.933,-141.523 427.007,-137.819 426.864,-144.817"/>
+</g>
+<!-- 16,2&#45;&gt;15,1 -->
+<g id="edge190" class="edge"><title>16,2&#45;&gt;15,1</title>
+<path fill="none" stroke="#dd1e2f" d="M454.344,-176.328C434.498,-195.285 408.229,-220.378 387.013,-240.644"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="384.553,-238.154 379.739,-247.593 389.388,-243.216 384.553,-238.154"/>
+</g>
+<!-- 16,2&#45;&gt;16,1 -->
+<g id="edge194" class="edge"><title>16,2&#45;&gt;16,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-154.477C427.29,-154.749 417.041,-154.817 407.091,-154.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-151.18 396.867,-154.471 406.792,-158.179 406.937,-151.18"/>
+</g>
+<!-- 16,2&#45;&gt;16,3 -->
+<g id="edge192" class="edge"><title>16,2&#45;&gt;16,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-141.529C540.501,-141.254 550.748,-141.183 560.703,-141.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-144.817 570.933,-141.523 561.007,-137.819 560.864,-144.817"/>
+</g>
+<!-- 16,3&#45;&gt;17,4 -->
+<g id="edge198" class="edge"><title>16,3&#45;&gt;17,4</title>
+<path fill="none" stroke="#218559" d="M640.455,-180.078C656.034,-202.335 674,-228 674,-228 674,-228 696,-3697 696,-3697 696,-3697 725.714,-3830.18 741.853,-3902.52"/>
+<polygon fill="#218559" stroke="#218559" points="738.442,-3903.31 744.036,-3912.3 745.274,-3901.78 738.442,-3903.31"/>
+</g>
+<!-- 16,3&#45;&gt;16,2 -->
+<g id="edge200" class="edge"><title>16,3&#45;&gt;16,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-154.477C561.29,-154.749 551.041,-154.817 541.091,-154.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-151.18 530.867,-154.471 540.792,-158.179 540.937,-151.18"/>
+</g>
+<!-- 16,3&#45;&gt;16,4 -->
+<g id="edge196" class="edge"><title>16,3&#45;&gt;16,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-141.529C674.501,-141.254 684.748,-141.183 694.703,-141.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-144.817 704.933,-141.523 695.007,-137.819 694.864,-144.817"/>
+</g>
+<!-- 16,4&#45;&gt;15,3 -->
+<g id="edge202" class="edge"><title>16,4&#45;&gt;15,3</title>
+<path fill="none" stroke="#dd1e2f" d="M722.344,-176.328C702.498,-195.285 676.229,-220.378 655.013,-240.644"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="652.553,-238.154 647.739,-247.593 657.388,-243.216 652.553,-238.154"/>
+</g>
+<!-- 16,4&#45;&gt;16,3 -->
+<g id="edge204" class="edge"><title>16,4&#45;&gt;16,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-154.477C695.29,-154.749 685.041,-154.817 675.091,-154.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-151.18 664.867,-154.471 674.792,-158.179 674.937,-151.18"/>
+</g>
+<!-- 19,1&#45;&gt;20,3 -->
+<g id="edge636" class="edge"><title>19,1&#45;&gt;20,3</title>
+<path fill="none" stroke="#06a2cb" d="M71.2944,-5180.29C93.6974,-5070.61 160,-4746 160,-4746 160,-4746 294,-4541 294,-4541 294,-4541 398,-4511 398,-4511 398,-4511 451.557,-4263.76 474.142,-4159.51"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="477.596,-4160.09 476.292,-4149.58 470.755,-4158.61 477.596,-4160.09"/>
+</g>
+<!-- 19,2 -->
+<g id="node150" class="node"><title>19,2</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-5216" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="193.5" y="-5227.17" font-family="Times Roman,serif" font-size="10.00">19,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="191,-5208 191,-5222 242,-5222 242,-5208 191,-5208"/>
+<text text-anchor="start" x="201" y="-5212.67" font-family="Times Roman,serif" font-size="10.00">ATTGA</text>
+<polygon fill="#218559" stroke="#218559" points="191,-5194 191,-5208 242,-5208 242,-5194 191,-5194"/>
+<text text-anchor="start" x="201.5" y="-5198.67" font-family="Times Roman,serif" font-size="10.00">TCAAT</text>
+</g>
+<!-- 19,1&#45;&gt;19,2 -->
+<g id="edge634" class="edge"><title>19,1&#45;&gt;19,2</title>
+<path fill="none" stroke="#dd1e2f" d="M110.845,-5209.71C126.015,-5209.21 143.011,-5209.12 158.843,-5209.44"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="158.958,-5212.94 169.048,-5209.71 159.144,-5205.94 158.958,-5212.94"/>
+</g>
+<!-- 19,2&#45;&gt;19,1 -->
+<g id="edge642" class="edge"><title>19,2&#45;&gt;19,1</title>
+<path fill="none" stroke="#218559" d="M169.048,-5222.29C153.87,-5222.79 136.872,-5222.88 121.045,-5222.56"/>
+<polygon fill="#218559" stroke="#218559" points="120.935,-5219.06 110.845,-5222.29 120.748,-5226.05 120.935,-5219.06"/>
+</g>
+<!-- 19,2&#45;&gt;19,3 -->
+<g id="edge638" class="edge"><title>19,2&#45;&gt;19,3</title>
+<path fill="none" stroke="#dd1e2f" d="M262.867,-5209.53C272.501,-5209.25 282.748,-5209.18 292.703,-5209.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="292.864,-5212.82 302.933,-5209.52 293.007,-5205.82 292.864,-5212.82"/>
+</g>
+<!-- 19,2&#45;&gt;18,4 -->
+<g id="edge640" class="edge"><title>19,2&#45;&gt;18,4</title>
+<path fill="none" stroke="#ebb035" d="M227.425,-5180.84C249.091,-5114.18 294,-4976 294,-4976 294,-4976 540,-4801 540,-4801 540,-4801 562,-4513 562,-4513 562,-4513 569.684,-4506.14 579.359,-4497.5"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="581.923,-4499.9 587.052,-4490.63 577.261,-4494.68 581.923,-4499.9"/>
+</g>
+<!-- 19,3&#45;&gt;24,1 -->
+<g id="edge644" class="edge"><title>19,3&#45;&gt;24,1</title>
+<path fill="none" stroke="#dd1e2f" d="M383,-5190C399.5,-5177 416,-5164 416,-5164 416,-5164 426.392,-5157.28 439.051,-5149.08"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="441.117,-5151.92 447.611,-5143.55 437.314,-5146.04 441.117,-5151.92"/>
+</g>
+<!-- 19,3&#45;&gt;20,1 -->
+<g id="edge648" class="edge"><title>19,3&#45;&gt;20,1</title>
+<path fill="none" stroke="#06a2cb" d="M336.444,-5181.14C319.871,-5138.52 294,-5072 294,-5072 294,-5072 264,-4415 264,-4415 264,-4415 236.799,-4244.43 223.35,-4160.09"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="226.773,-4159.33 221.742,-4150.01 219.861,-4160.44 226.773,-4159.33"/>
+</g>
+<!-- 19,3&#45;&gt;19,2 -->
+<g id="edge650" class="edge"><title>19,3&#45;&gt;19,2</title>
+<path fill="none" stroke="#218559" d="M302.933,-5222.48C293.29,-5222.75 283.041,-5222.82 273.091,-5222.68"/>
+<polygon fill="#218559" stroke="#218559" points="272.937,-5219.18 262.867,-5222.47 272.792,-5226.18 272.937,-5219.18"/>
+</g>
+<!-- 19,3&#45;&gt;19,4 -->
+<g id="edge646" class="edge"><title>19,3&#45;&gt;19,4</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-5209.53C406.501,-5209.25 416.748,-5209.18 426.703,-5209.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-5212.82 436.933,-5209.52 427.007,-5205.82 426.864,-5212.82"/>
+</g>
+<!-- 19,4&#45;&gt;24,2 -->
+<g id="edge654" class="edge"><title>19,4&#45;&gt;24,2</title>
+<path fill="none" stroke="#dd1e2f" d="M531.615,-5217.44C542.023,-5217.76 550,-5218 550,-5218 550,-5218 552,-5218 552,-5218 552,-5218 572.47,-5187.6 590.61,-5160.67"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593.706,-5162.34 596.389,-5152.09 587.9,-5158.43 593.706,-5162.34"/>
+</g>
+<!-- 19,4&#45;&gt;23,1 -->
+<g id="edge658" class="edge"><title>19,4&#45;&gt;23,1</title>
+<path fill="none" stroke="#ebb035" d="M452.4,-5188.91C439.697,-5178.03 428,-5168 428,-5168 428,-5168 398,-4976 398,-4976 398,-4976 372.635,-4843.36 358.782,-4770.92"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="362.142,-4769.86 356.826,-4760.7 355.267,-4771.18 362.142,-4769.86"/>
+</g>
+<!-- 19,4&#45;&gt;8,3 -->
+<g id="edge652" class="edge"><title>19,4&#45;&gt;8,3</title>
+<path fill="none" stroke="#dd1e2f" d="M515.6,-5188.91C528.303,-5178.03 540,-5168 540,-5168 540,-5168 562,-5072 562,-5072 562,-5072 569.944,-5065.19 579.849,-5056.7"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="582.391,-5059.13 587.705,-5049.97 577.835,-5053.82 582.391,-5059.13"/>
+</g>
+<!-- 19,4&#45;&gt;19,3 -->
+<g id="edge660" class="edge"><title>19,4&#45;&gt;19,3</title>
+<path fill="none" stroke="#218559" d="M436.933,-5222.48C427.29,-5222.75 417.041,-5222.82 407.091,-5222.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-5219.18 396.867,-5222.47 406.792,-5226.18 406.937,-5219.18"/>
+</g>
+<!-- 19,4&#45;&gt;18,2 -->
+<g id="edge656" class="edge"><title>19,4&#45;&gt;18,2</title>
+<path fill="none" stroke="#ebb035" d="M452.4,-5188.91C439.697,-5178.03 428,-5168 428,-5168 428,-5168 398,-4677 398,-4677 398,-4677 374.399,-4571.78 360.296,-4508.9"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="363.638,-4507.81 358.034,-4498.82 356.808,-4509.34 363.638,-4507.81"/>
+</g>
+<!-- 18,1&#45;&gt;23,1 -->
+<g id="edge206" class="edge"><title>18,1&#45;&gt;23,1</title>
+<path fill="none" stroke="#dd1e2f" d="M233.244,-4496.72C257.516,-4544.17 301.748,-4630.66 328.249,-4682.47"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325.153,-4684.1 332.822,-4691.41 331.385,-4680.92 325.153,-4684.1"/>
+</g>
+<!-- 18,1&#45;&gt;17,3 -->
+<g id="edge210" class="edge"><title>18,1&#45;&gt;17,3</title>
+<path fill="none" stroke="#06a2cb" d="M221.742,-4426.99C234.483,-4347.1 264,-4162 264,-4162 264,-4162 294,-3812 294,-3812 294,-3812 428,-3405 428,-3405 428,-3405 552,-3405 552,-3405 552,-3405 562,-3697 562,-3697 562,-3697 591.714,-3830.18 607.853,-3902.52"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="604.442,-3903.31 610.036,-3912.3 611.274,-3901.78 604.442,-3903.31"/>
+</g>
+<!-- 18,1&#45;&gt;18,2 -->
+<g id="edge208" class="edge"><title>18,1&#45;&gt;18,2</title>
+<path fill="none" stroke="#dd1e2f" d="M262.867,-4456.53C272.501,-4456.25 282.748,-4456.18 292.703,-4456.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="292.864,-4459.82 302.933,-4456.52 293.007,-4452.82 292.864,-4459.82"/>
+</g>
+<!-- 18,2&#45;&gt;7,1 -->
+<g id="edge212" class="edge"><title>18,2&#45;&gt;7,1</title>
+<path fill="none" stroke="#dd1e2f" d="M368.035,-4429.39C387.576,-4392.97 416,-4340 416,-4340 416,-4340 418,-4340 418,-4340 418,-4340 428,-4511 428,-4511 428,-4511 447.673,-4552.45 463.699,-4586.22"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="460.653,-4587.97 468.102,-4595.5 466.977,-4584.97 460.653,-4587.97"/>
+</g>
+<!-- 18,2&#45;&gt;19,4 -->
+<g id="edge216" class="edge"><title>18,2&#45;&gt;19,4</title>
+<path fill="none" stroke="#ebb035" d="M371.611,-4430.91C390.859,-4402.33 416,-4365 416,-4365 416,-4365 418,-4365 418,-4365 418,-4365 428,-5168 428,-5168 428,-5168 435.283,-5174.24 444.596,-5182.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="442.529,-5185.06 452.4,-5188.91 447.085,-5179.75 442.529,-5185.06"/>
+</g>
+<!-- 18,2&#45;&gt;18,1 -->
+<g id="edge218" class="edge"><title>18,2&#45;&gt;18,1</title>
+<path fill="none" stroke="#218559" d="M302.933,-4469.48C293.29,-4469.75 283.041,-4469.82 273.091,-4469.68"/>
+<polygon fill="#218559" stroke="#218559" points="272.937,-4466.18 262.867,-4469.47 272.792,-4473.18 272.937,-4466.18"/>
+</g>
+<!-- 18,2&#45;&gt;18,3 -->
+<g id="edge214" class="edge"><title>18,2&#45;&gt;18,3</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-4456.53C406.501,-4456.25 416.748,-4456.18 426.703,-4456.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-4459.82 436.933,-4456.52 427.007,-4452.82 426.864,-4459.82"/>
+</g>
+<!-- 18,3&#45;&gt;17,1 -->
+<g id="edge222" class="edge"><title>18,3&#45;&gt;17,1</title>
+<path fill="none" stroke="#06a2cb" d="M477.356,-4427.29C462.522,-4347.56 428,-4162 428,-4162 428,-4162 418,-3750 418,-3750 418,-3750 416,-3750 416,-3750 416,-3750 398,-3840 398,-3840 398,-3840 382.733,-3874.35 369.42,-3904.31"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="366.051,-3903.27 365.188,-3913.83 372.447,-3906.11 366.051,-3903.27"/>
+</g>
+<!-- 18,3&#45;&gt;18,2 -->
+<g id="edge224" class="edge"><title>18,3&#45;&gt;18,2</title>
+<path fill="none" stroke="#218559" d="M436.933,-4469.48C427.29,-4469.75 417.041,-4469.82 407.091,-4469.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-4466.18 396.867,-4469.47 406.792,-4473.18 406.937,-4466.18"/>
+</g>
+<!-- 18,3&#45;&gt;18,4 -->
+<g id="edge220" class="edge"><title>18,3&#45;&gt;18,4</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-4456.53C540.501,-4456.25 550.748,-4456.18 560.703,-4456.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-4459.82 570.933,-4456.52 561.007,-4452.82 560.864,-4459.82"/>
+</g>
+<!-- 18,4&#45;&gt;24,1 -->
+<g id="edge228" class="edge"><title>18,4&#45;&gt;24,1</title>
+<path fill="none" stroke="#06a2cb" d="M601.802,-4497.13C585.264,-4531.98 562,-4581 562,-4581 562,-4581 550,-4848 550,-4848 550,-4848 540,-5072 540,-5072 540,-5072 532.717,-5078.24 523.404,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="520.915,-5083.75 515.6,-5092.91 525.471,-5089.06 520.915,-5083.75"/>
+</g>
+<!-- 18,4&#45;&gt;19,2 -->
+<g id="edge226" class="edge"><title>18,4&#45;&gt;19,2</title>
+<path fill="none" stroke="#ebb035" d="M587.052,-4490.63C574.1,-4502.2 562,-4513 562,-4513 562,-4513 550,-4556 550,-4556 550,-4556 540,-4773 540,-4773 540,-4773 282,-4836 282,-4836 282,-4836 241.471,-5069.35 223.932,-5170.33"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="220.472,-5169.8 222.209,-5180.25 227.369,-5171 220.472,-5169.8"/>
+</g>
+<!-- 18,4&#45;&gt;18,3 -->
+<g id="edge230" class="edge"><title>18,4&#45;&gt;18,3</title>
+<path fill="none" stroke="#218559" d="M570.933,-4469.48C561.29,-4469.75 551.041,-4469.82 541.091,-4469.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-4466.18 530.867,-4469.47 540.792,-4473.18 540.937,-4466.18"/>
+</g>
+<!-- 31,1 -->
+<g id="node159" class="node"><title>31,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1732" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1743.17" font-family="Times Roman,serif" font-size="10.00">31,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1724 593,-1738 644,-1738 644,-1724 593,-1724"/>
+<text text-anchor="start" x="602" y="-1728.67" font-family="Times Roman,serif" font-size="10.00">GCGTC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1710 593,-1724 644,-1724 644,-1710 593,-1710"/>
+<text text-anchor="start" x="600.5" y="-1714.67" font-family="Times Roman,serif" font-size="10.00">GACGC</text>
+</g>
+<!-- 31,2 -->
+<g id="node160" class="node"><title>31,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1732" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1743.17" font-family="Times Roman,serif" font-size="10.00">31,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1724 727,-1738 778,-1738 778,-1724 727,-1724"/>
+<text text-anchor="start" x="736" y="-1728.67" font-family="Times Roman,serif" font-size="10.00">CGTCA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1710 727,-1724 778,-1724 778,-1710 727,-1710"/>
+<text text-anchor="start" x="735.5" y="-1714.67" font-family="Times Roman,serif" font-size="10.00">TGACG</text>
+</g>
+<!-- 31,1&#45;&gt;31,2 -->
+<g id="edge786" class="edge"><title>31,1&#45;&gt;31,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1725.53C674.501,-1725.25 684.748,-1725.18 694.703,-1725.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1728.82 704.933,-1725.52 695.007,-1721.82 694.864,-1728.82"/>
+</g>
+<!-- 32,2 -->
+<g id="node195" class="node"><title>32,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1974" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1985.17" font-family="Times Roman,serif" font-size="10.00">32,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1966 727,-1980 778,-1980 778,-1966 727,-1966"/>
+<text text-anchor="start" x="735.5" y="-1970.67" font-family="Times Roman,serif" font-size="10.00">AGCGT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1952 727,-1966 778,-1966 778,-1952 727,-1952"/>
+<text text-anchor="start" x="736" y="-1956.67" font-family="Times Roman,serif" font-size="10.00">ACGCT</text>
+</g>
+<!-- 31,1&#45;&gt;32,2 -->
+<g id="edge788" class="edge"><title>31,1&#45;&gt;32,2</title>
+<path fill="none" stroke="#218559" d="M636.491,-1765.39C660.503,-1808.76 702.432,-1884.48 728.624,-1931.78"/>
+<polygon fill="#218559" stroke="#218559" points="725.577,-1933.51 733.483,-1940.56 731.701,-1930.12 725.577,-1933.51"/>
+</g>
+<!-- 31,2&#45;&gt;31,1 -->
+<g id="edge796" class="edge"><title>31,2&#45;&gt;31,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-1738.48C695.29,-1738.75 685.041,-1738.82 675.091,-1738.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1735.18 664.867,-1738.47 674.792,-1742.18 674.937,-1735.18"/>
+</g>
+<!-- 31,2&#45;&gt;31,3 -->
+<g id="edge792" class="edge"><title>31,2&#45;&gt;31,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1725.53C808.501,-1725.25 818.748,-1725.18 828.703,-1725.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1728.82 838.933,-1725.52 829.007,-1721.82 828.864,-1728.82"/>
+</g>
+<!-- 31,2&#45;&gt;30,1 -->
+<g id="edge790" class="edge"><title>31,2&#45;&gt;30,1</title>
+<path fill="none" stroke="#dd1e2f" d="M740.329,-1767.36C721.134,-1825.52 685,-1935 685,-1935 685,-1935 685,-2013 685,-2013 685,-2013 709.962,-2060.32 729.413,-2097.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="726.459,-2099.09 734.221,-2106.3 732.651,-2095.82 726.459,-2099.09"/>
+</g>
+<!-- 31,2&#45;&gt;30,4 -->
+<g id="edge794" class="edge"><title>31,2&#45;&gt;30,4</title>
+<path fill="none" stroke="#ebb035" d="M783.6,-1704.91C796.303,-1694.03 808,-1684 808,-1684 808,-1684 820,-1354 820,-1354 820,-1354 830,-1026 830,-1026 830,-1026 1076,-1026 1076,-1026 1076,-1026 1106,-1492 1106,-1492 1106,-1492 1139.58,-1945.29 1150.57,-2093.63"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1147.09,-2094.06 1151.32,-2103.77 1154.07,-2093.54 1147.09,-2094.06"/>
+</g>
+<!-- 31,3&#45;&gt;28,4 -->
+<g id="edge802" class="edge"><title>31,3&#45;&gt;28,4</title>
+<path fill="none" stroke="#218559" d="M896.271,-1767.58C912.438,-1823.59 942,-1926 942,-1926 942,-1926 964,-2546 964,-2546 964,-2546 990.308,-2637.14 1006.86,-2694.48"/>
+<polygon fill="#218559" stroke="#218559" points="1003.59,-2695.78 1009.73,-2704.42 1010.32,-2693.84 1003.59,-2695.78"/>
+</g>
+<!-- 31,3&#45;&gt;31,2 -->
+<g id="edge804" class="edge"><title>31,3&#45;&gt;31,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-1738.48C829.29,-1738.75 819.041,-1738.82 809.091,-1738.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1735.18 798.867,-1738.47 808.792,-1742.18 808.937,-1735.18"/>
+</g>
+<!-- 31,4 -->
+<g id="node162" class="node"><title>31,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1732" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-1743.17" font-family="Times Roman,serif" font-size="10.00">31,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-1724 995,-1738 1046,-1738 1046,-1724 995,-1724"/>
+<text text-anchor="start" x="1005" y="-1728.67" font-family="Times Roman,serif" font-size="10.00">TCATG</text>
+<polygon fill="#218559" stroke="#218559" points="995,-1710 995,-1724 1046,-1724 1046,-1710 995,-1710"/>
+<text text-anchor="start" x="1004" y="-1714.67" font-family="Times Roman,serif" font-size="10.00">CATGA</text>
+</g>
+<!-- 31,3&#45;&gt;31,4 -->
+<g id="edge798" class="edge"><title>31,3&#45;&gt;31,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-1725.53C942.501,-1725.25 952.748,-1725.18 962.703,-1725.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-1728.82 972.933,-1725.52 963.007,-1721.82 962.864,-1728.82"/>
+</g>
+<!-- 31,3&#45;&gt;32,4 -->
+<g id="edge800" class="edge"><title>31,3&#45;&gt;32,4</title>
+<path fill="none" stroke="#218559" d="M917.6,-1704.91C930.303,-1694.03 942,-1684 942,-1684 942,-1684 952,-1293 952,-1293 952,-1293 954,-1293 954,-1293 954,-1293 964,-1780 964,-1780 964,-1780 990.308,-1871.14 1006.86,-1928.48"/>
+<polygon fill="#218559" stroke="#218559" points="1003.59,-1929.78 1009.73,-1938.42 1010.32,-1927.84 1003.59,-1929.78"/>
+</g>
+<!-- 31,4&#45;&gt;31,3 -->
+<g id="edge810" class="edge"><title>31,4&#45;&gt;31,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-1738.48C963.29,-1738.75 953.041,-1738.82 943.091,-1738.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-1735.18 932.867,-1738.47 942.792,-1742.18 942.937,-1735.18"/>
+</g>
+<!-- 31,4&#45;&gt;30,2 -->
+<g id="edge808" class="edge"><title>31,4&#45;&gt;30,2</title>
+<path fill="none" stroke="#ebb035" d="M1009.73,-1767.58C993.562,-1823.59 964,-1926 964,-1926 964,-1926 942,-2022 942,-2022 942,-2022 922.563,-2062.96 906.591,-2096.61"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="903.323,-2095.33 902.198,-2105.87 909.647,-2098.34 903.323,-2095.33"/>
+</g>
+<!-- 31,4&#45;&gt;30,3 -->
+<g id="edge806" class="edge"><title>31,4&#45;&gt;30,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1008.33,-1767.36C989.134,-1825.52 953,-1935 953,-1935 953,-1935 953,-2013 953,-2013 953,-2013 977.962,-2060.32 997.413,-2097.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="994.459,-2099.09 1002.22,-2106.3 1000.65,-2095.82 994.459,-2099.09"/>
+</g>
+<!-- 30,1&#45;&gt;29,3 -->
+<g id="edge358" class="edge"><title>30,1&#45;&gt;29,3</title>
+<path fill="none" stroke="#06a2cb" d="M782.948,-2112.37C795.9,-2100.8 808,-2090 808,-2090 808,-2090 818,-1896 818,-1896 818,-1896 942,-1848 942,-1848 942,-1848 952,-1368 952,-1368 952,-1368 954,-1368 954,-1368 954,-1368 964,-2188 964,-2188 964,-2188 983.437,-2228.96 999.409,-2262.61"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="996.353,-2264.34 1003.8,-2271.87 1002.68,-2261.33 996.353,-2264.34"/>
+</g>
+<!-- 30,1&#45;&gt;31,2 -->
+<g id="edge360" class="edge"><title>30,1&#45;&gt;31,2</title>
+<path fill="none" stroke="#218559" d="M734.221,-2106.3C714.372,-2068.68 685,-2013 685,-2013 685,-2013 685,-1935 685,-1935 685,-1935 717.423,-1836.76 737.159,-1776.97"/>
+<polygon fill="#218559" stroke="#218559" points="740.519,-1777.95 740.329,-1767.36 733.872,-1775.76 740.519,-1777.95"/>
+</g>
+<!-- 30,1&#45;&gt;30,2 -->
+<g id="edge356" class="edge"><title>30,1&#45;&gt;30,2</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-2133.53C808.501,-2133.25 818.748,-2133.18 828.703,-2133.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-2136.82 838.933,-2133.52 829.007,-2129.82 828.864,-2136.82"/>
+</g>
+<!-- 30,2&#45;&gt;29,1 -->
+<g id="edge362" class="edge"><title>30,2&#45;&gt;29,1</title>
+<path fill="none" stroke="#dd1e2f" d="M861.016,-2170.95C839.056,-2198.15 807,-2237.87 783.329,-2267.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="780.448,-2265.19 776.89,-2275.17 785.895,-2269.58 780.448,-2265.19"/>
+</g>
+<!-- 30,2&#45;&gt;31,4 -->
+<g id="edge366" class="edge"><title>30,2&#45;&gt;31,4</title>
+<path fill="none" stroke="#ebb035" d="M902.198,-2105.87C918.736,-2071.02 942,-2022 942,-2022 942,-2022 952,-1898 952,-1898 952,-1898 981.876,-1825.07 1002.02,-1775.89"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1005.36,-1776.98 1005.91,-1766.4 998.881,-1774.32 1005.36,-1776.98"/>
+</g>
+<!-- 30,2&#45;&gt;30,1 -->
+<g id="edge368" class="edge"><title>30,2&#45;&gt;30,1</title>
+<path fill="none" stroke="#218559" d="M838.933,-2146.48C829.29,-2146.75 819.041,-2146.82 809.091,-2146.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-2143.18 798.867,-2146.47 808.792,-2150.18 808.937,-2143.18"/>
+</g>
+<!-- 30,2&#45;&gt;30,3 -->
+<g id="edge364" class="edge"><title>30,2&#45;&gt;30,3</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-2133.53C942.501,-2133.25 952.748,-2133.18 962.703,-2133.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-2136.82 972.933,-2133.52 963.007,-2129.82 962.864,-2136.82"/>
+</g>
+<!-- 30,3&#45;&gt;29,1 -->
+<g id="edge372" class="edge"><title>30,3&#45;&gt;29,1</title>
+<path fill="none" stroke="#06a2cb" d="M1003.8,-2105.87C987.264,-2071.02 964,-2022 964,-2022 964,-2022 954,-1876 954,-1876 954,-1876 952,-1876 952,-1876 952,-1876 942,-2022 942,-2022 942,-2022 830,-2062 830,-2062 830,-2062 808,-2188 808,-2188 808,-2188 788.563,-2228.96 772.591,-2262.61"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="769.323,-2261.33 768.198,-2271.87 775.647,-2264.34 769.323,-2261.33"/>
+</g>
+<!-- 30,3&#45;&gt;31,4 -->
+<g id="edge374" class="edge"><title>30,3&#45;&gt;31,4</title>
+<path fill="none" stroke="#218559" d="M1002.22,-2106.3C982.372,-2068.68 953,-2013 953,-2013 953,-2013 953,-1935 953,-1935 953,-1935 985.423,-1836.76 1005.16,-1776.97"/>
+<polygon fill="#218559" stroke="#218559" points="1008.52,-1777.95 1008.33,-1767.36 1001.87,-1775.76 1008.52,-1777.95"/>
+</g>
+<!-- 30,3&#45;&gt;30,2 -->
+<g id="edge376" class="edge"><title>30,3&#45;&gt;30,2</title>
+<path fill="none" stroke="#218559" d="M972.933,-2146.48C963.29,-2146.75 953.041,-2146.82 943.091,-2146.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-2143.18 932.867,-2146.47 942.792,-2150.18 942.937,-2143.18"/>
+</g>
+<!-- 30,3&#45;&gt;30,4 -->
+<g id="edge370" class="edge"><title>30,3&#45;&gt;30,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1066.87,-2133.53C1076.5,-2133.25 1086.75,-2133.18 1096.7,-2133.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1096.86,-2136.82 1106.93,-2133.52 1097.01,-2129.82 1096.86,-2136.82"/>
+</g>
+<!-- 30,4&#45;&gt;29,3 -->
+<g id="edge378" class="edge"><title>30,4&#45;&gt;29,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1129.02,-2170.95C1107.06,-2198.15 1075,-2237.87 1051.33,-2267.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1048.45,-2265.19 1044.89,-2275.17 1053.89,-2269.58 1048.45,-2265.19"/>
+</g>
+<!-- 30,4&#45;&gt;31,2 -->
+<g id="edge380" class="edge"><title>30,4&#45;&gt;31,2</title>
+<path fill="none" stroke="#ebb035" d="M1151.32,-2103.77C1141.21,-1967.31 1106,-1492 1106,-1492 1106,-1492 1088,-996 1088,-996 1088,-996 830,-996 830,-996 830,-996 808,-1684 808,-1684 808,-1684 800.717,-1690.24 791.404,-1698.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="788.915,-1695.75 783.6,-1704.91 793.471,-1701.06 788.915,-1695.75"/>
+</g>
+<!-- 30,4&#45;&gt;30,3 -->
+<g id="edge382" class="edge"><title>30,4&#45;&gt;30,3</title>
+<path fill="none" stroke="#218559" d="M1106.93,-2146.48C1097.29,-2146.75 1087.04,-2146.82 1077.09,-2146.68"/>
+<polygon fill="#218559" stroke="#218559" points="1076.94,-2143.18 1066.87,-2146.47 1076.79,-2150.18 1076.94,-2143.18"/>
+</g>
+<!-- 37,1 -->
+<g id="node169" class="node"><title>37,1</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">37,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-652 995,-666 1046,-666 1046,-652 995,-652"/>
+<text text-anchor="start" x="1003.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">CCACA</text>
+<polygon fill="#218559" stroke="#218559" points="995,-638 995,-652 1046,-652 1046,-638 995,-638"/>
+<text text-anchor="start" x="1004" y="-642.667" font-family="Times Roman,serif" font-size="10.00">TGTGG</text>
+</g>
+<!-- 37,2 -->
+<g id="node170" class="node"><title>37,2</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1131.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">37,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1129,-652 1129,-666 1180,-666 1180,-652 1129,-652"/>
+<text text-anchor="start" x="1137.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">CACAC</text>
+<polygon fill="#218559" stroke="#218559" points="1129,-638 1129,-652 1180,-652 1180,-638 1129,-638"/>
+<text text-anchor="start" x="1138" y="-642.667" font-family="Times Roman,serif" font-size="10.00">GTGTG</text>
+</g>
+<!-- 37,1&#45;&gt;37,2 -->
+<g id="edge860" class="edge"><title>37,1&#45;&gt;37,2</title>
+<path fill="none" stroke="#dd1e2f" d="M1066.87,-653.529C1076.5,-653.254 1086.75,-653.183 1096.7,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1096.86,-656.817 1106.93,-653.523 1097.01,-649.819 1096.86,-656.817"/>
+</g>
+<!-- 37,2&#45;&gt;37,1 -->
+<g id="edge866" class="edge"><title>37,2&#45;&gt;37,1</title>
+<path fill="none" stroke="#218559" d="M1106.93,-666.477C1097.29,-666.749 1087.04,-666.817 1077.09,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="1076.94,-663.18 1066.87,-666.471 1076.79,-670.179 1076.94,-663.18"/>
+</g>
+<!-- 37,3 -->
+<g id="node171" class="node"><title>37,3</title>
+<ellipse fill="none" stroke="black" cx="1288" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1265.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">37,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1263,-652 1263,-666 1314,-666 1314,-652 1263,-652"/>
+<text text-anchor="start" x="1271" y="-656.667" font-family="Times Roman,serif" font-size="10.00">ACACG</text>
+<polygon fill="#218559" stroke="#218559" points="1263,-638 1263,-652 1314,-652 1314,-638 1263,-638"/>
+<text text-anchor="start" x="1272.5" y="-642.667" font-family="Times Roman,serif" font-size="10.00">CGTGT</text>
+</g>
+<!-- 37,2&#45;&gt;37,3 -->
+<g id="edge862" class="edge"><title>37,2&#45;&gt;37,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1200.87,-653.529C1210.5,-653.254 1220.75,-653.183 1230.7,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1230.86,-656.817 1240.93,-653.523 1231.01,-649.819 1230.86,-656.817"/>
+</g>
+<!-- 36,4 -->
+<g id="node177" class="node"><title>36,4</title>
+<ellipse fill="none" stroke="black" cx="1288" cy="-1074" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1265.5" y="-1085.17" font-family="Times Roman,serif" font-size="10.00">36,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1263,-1066 1263,-1080 1314,-1080 1314,-1066 1263,-1066"/>
+<text text-anchor="start" x="1272.5" y="-1070.67" font-family="Times Roman,serif" font-size="10.00">CGTGT</text>
+<polygon fill="#218559" stroke="#218559" points="1263,-1052 1263,-1066 1314,-1066 1314,-1052 1263,-1052"/>
+<text text-anchor="start" x="1271" y="-1056.67" font-family="Times Roman,serif" font-size="10.00">ACACG</text>
+</g>
+<!-- 37,2&#45;&gt;36,4 -->
+<g id="edge864" class="edge"><title>37,2&#45;&gt;36,4</title>
+<path fill="none" stroke="#ebb035" d="M1165.42,-695.297C1189.75,-770.458 1246.64,-946.204 1273.48,-1029.15"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1270.19,-1030.36 1276.6,-1038.79 1276.85,-1028.2 1270.19,-1030.36"/>
+</g>
+<!-- 37,3&#45;&gt;37,2 -->
+<g id="edge870" class="edge"><title>37,3&#45;&gt;37,2</title>
+<path fill="none" stroke="#218559" d="M1240.93,-666.477C1231.29,-666.749 1221.04,-666.817 1211.09,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="1210.94,-663.18 1200.87,-666.471 1210.79,-670.179 1210.94,-663.18"/>
+</g>
+<!-- 37,4 -->
+<g id="node172" class="node"><title>37,4</title>
+<ellipse fill="none" stroke="black" cx="1422" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1399.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">37,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1397,-652 1397,-666 1448,-666 1448,-652 1397,-652"/>
+<text text-anchor="start" x="1405" y="-656.667" font-family="Times Roman,serif" font-size="10.00">CACGC</text>
+<polygon fill="#218559" stroke="#218559" points="1397,-638 1397,-652 1448,-652 1448,-638 1397,-638"/>
+<text text-anchor="start" x="1405" y="-642.667" font-family="Times Roman,serif" font-size="10.00">GCGTG</text>
+</g>
+<!-- 37,3&#45;&gt;37,4 -->
+<g id="edge868" class="edge"><title>37,3&#45;&gt;37,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1334.87,-653.529C1344.5,-653.254 1354.75,-653.183 1364.7,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1364.86,-656.817 1374.93,-653.523 1365.01,-649.819 1364.86,-656.817"/>
+</g>
+<!-- 37,4&#45;&gt;37,3 -->
+<g id="edge874" class="edge"><title>37,4&#45;&gt;37,3</title>
+<path fill="none" stroke="#218559" d="M1374.93,-666.477C1365.29,-666.749 1355.04,-666.817 1345.09,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="1344.94,-663.18 1334.87,-666.471 1344.79,-670.179 1344.94,-663.18"/>
+</g>
+<!-- 36,2 -->
+<g id="node175" class="node"><title>36,2</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1074" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-1085.17" font-family="Times Roman,serif" font-size="10.00">36,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-1066 995,-1080 1046,-1080 1046,-1066 995,-1066"/>
+<text text-anchor="start" x="1003.5" y="-1070.67" font-family="Times Roman,serif" font-size="10.00">AGCGT</text>
+<polygon fill="#218559" stroke="#218559" points="995,-1052 995,-1066 1046,-1066 1046,-1052 995,-1052"/>
+<text text-anchor="start" x="1004" y="-1056.67" font-family="Times Roman,serif" font-size="10.00">ACGCT</text>
+</g>
+<!-- 37,4&#45;&gt;36,2 -->
+<g id="edge872" class="edge"><title>37,4&#45;&gt;36,2</title>
+<path fill="none" stroke="#ebb035" d="M1404.3,-693.583C1381.29,-737.25 1344,-808 1344,-808 1344,-808 1210,-946 1210,-946 1210,-946 1120.23,-1006.48 1064.1,-1044.29"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1062.08,-1041.43 1055.74,-1049.92 1065.99,-1047.24 1062.08,-1041.43"/>
+</g>
+<!-- 36,1 -->
+<g id="node174" class="node"><title>36,1</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1074" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1085.17" font-family="Times Roman,serif" font-size="10.00">36,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1066 861,-1080 912,-1080 912,-1066 861,-1066"/>
+<text text-anchor="start" x="868.5" y="-1070.67" font-family="Times Roman,serif" font-size="10.00">AAGCG</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1052 861,-1066 912,-1066 912,-1052 861,-1052"/>
+<text text-anchor="start" x="870.5" y="-1056.67" font-family="Times Roman,serif" font-size="10.00">CGCTT</text>
+</g>
+<!-- 36,1&#45;&gt;36,2 -->
+<g id="edge434" class="edge"><title>36,1&#45;&gt;36,2</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-1067.53C942.501,-1067.25 952.748,-1067.18 962.703,-1067.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-1070.82 972.933,-1067.52 963.007,-1063.82 962.864,-1070.82"/>
+</g>
+<!-- 35,3 -->
+<g id="node181" class="node"><title>35,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1636" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1647.17" font-family="Times Roman,serif" font-size="10.00">35,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1628 727,-1642 778,-1642 778,-1628 727,-1628"/>
+<text text-anchor="start" x="737" y="-1632.67" font-family="Times Roman,serif" font-size="10.00">GCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1614 727,-1628 778,-1628 778,-1614 727,-1614"/>
+<text text-anchor="start" x="736" y="-1618.67" font-family="Times Roman,serif" font-size="10.00">TAAGC</text>
+</g>
+<!-- 36,1&#45;&gt;35,3 -->
+<g id="edge438" class="edge"><title>36,1&#45;&gt;35,3</title>
+<path fill="none" stroke="#06a2cb" d="M854.4,-1101.09C841.697,-1111.97 830,-1122 830,-1122 830,-1122 818,-1321 818,-1321 818,-1321 808,-1588 808,-1588 808,-1588 800.717,-1594.24 791.404,-1602.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="788.915,-1599.75 783.6,-1608.91 793.471,-1605.06 788.915,-1599.75"/>
+</g>
+<!-- 33,3 -->
+<g id="node191" class="node"><title>33,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1540" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1551.17" font-family="Times Roman,serif" font-size="10.00">33,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1532 727,-1546 778,-1546 778,-1532 727,-1532"/>
+<text text-anchor="start" x="737" y="-1536.67" font-family="Times Roman,serif" font-size="10.00">GCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1518 727,-1532 778,-1532 778,-1518 727,-1518"/>
+<text text-anchor="start" x="736" y="-1522.67" font-family="Times Roman,serif" font-size="10.00">TAAGC</text>
+</g>
+<!-- 36,1&#45;&gt;33,3 -->
+<g id="edge436" class="edge"><title>36,1&#45;&gt;33,3</title>
+<path fill="none" stroke="#06a2cb" d="M854.4,-1101.09C841.697,-1111.97 830,-1122 830,-1122 830,-1122 780.859,-1385.34 760.587,-1493.98"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="757.112,-1493.53 758.718,-1504 763.993,-1494.81 757.112,-1493.53"/>
+</g>
+<!-- 36,2&#45;&gt;37,4 -->
+<g id="edge442" class="edge"><title>36,2&#45;&gt;37,4</title>
+<path fill="none" stroke="#ebb035" d="M1048.27,-1044.89C1119.77,-971.25 1307.74,-777.671 1386.49,-696.569"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1389.31,-698.692 1393.76,-689.08 1384.29,-693.816 1389.31,-698.692"/>
+</g>
+<!-- 36,2&#45;&gt;36,1 -->
+<g id="edge444" class="edge"><title>36,2&#45;&gt;36,1</title>
+<path fill="none" stroke="#218559" d="M972.933,-1080.48C963.29,-1080.75 953.041,-1080.82 943.091,-1080.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-1077.18 932.867,-1080.47 942.792,-1084.18 942.937,-1077.18"/>
+</g>
+<!-- 36,3 -->
+<g id="node176" class="node"><title>36,3</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-1074" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1131.5" y="-1085.17" font-family="Times Roman,serif" font-size="10.00">36,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1129,-1066 1129,-1080 1180,-1080 1180,-1066 1129,-1066"/>
+<text text-anchor="start" x="1137" y="-1070.67" font-family="Times Roman,serif" font-size="10.00">GCGTG</text>
+<polygon fill="#218559" stroke="#218559" points="1129,-1052 1129,-1066 1180,-1066 1180,-1052 1129,-1052"/>
+<text text-anchor="start" x="1137" y="-1056.67" font-family="Times Roman,serif" font-size="10.00">CACGC</text>
+</g>
+<!-- 36,2&#45;&gt;36,3 -->
+<g id="edge440" class="edge"><title>36,2&#45;&gt;36,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1066.87,-1067.53C1076.5,-1067.25 1086.75,-1067.18 1096.7,-1067.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1096.86,-1070.82 1106.93,-1067.52 1097.01,-1063.82 1096.86,-1070.82"/>
+</g>
+<!-- 36,3&#45;&gt;36,2 -->
+<g id="edge448" class="edge"><title>36,3&#45;&gt;36,2</title>
+<path fill="none" stroke="#218559" d="M1106.93,-1080.48C1097.29,-1080.75 1087.04,-1080.82 1077.09,-1080.68"/>
+<polygon fill="#218559" stroke="#218559" points="1076.94,-1077.18 1066.87,-1080.47 1076.79,-1084.18 1076.94,-1077.18"/>
+</g>
+<!-- 36,3&#45;&gt;36,4 -->
+<g id="edge446" class="edge"><title>36,3&#45;&gt;36,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1200.87,-1067.53C1210.5,-1067.25 1220.75,-1067.18 1230.7,-1067.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1230.86,-1070.82 1240.93,-1067.52 1231.01,-1063.82 1230.86,-1070.82"/>
+</g>
+<!-- 36,4&#45;&gt;37,2 -->
+<g id="edge450" class="edge"><title>36,4&#45;&gt;37,2</title>
+<path fill="none" stroke="#ebb035" d="M1274.73,-1039.06C1254.94,-986.97 1220,-895 1220,-895 1220,-895 1185.83,-773.346 1166.67,-705.097"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1170.03,-704.117 1163.95,-695.436 1163.29,-706.01 1170.03,-704.117"/>
+</g>
+<!-- 36,4&#45;&gt;36,3 -->
+<g id="edge452" class="edge"><title>36,4&#45;&gt;36,3</title>
+<path fill="none" stroke="#218559" d="M1240.93,-1080.48C1231.29,-1080.75 1221.04,-1080.82 1211.09,-1080.68"/>
+<polygon fill="#218559" stroke="#218559" points="1210.94,-1077.18 1200.87,-1080.47 1210.79,-1084.18 1210.94,-1077.18"/>
+</g>
+<!-- 35,1 -->
+<g id="node179" class="node"><title>35,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-1636" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-1647.17" font-family="Times Roman,serif" font-size="10.00">35,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-1628 459,-1642 510,-1642 510,-1628 459,-1628"/>
+<text text-anchor="start" x="469" y="-1632.67" font-family="Times Roman,serif" font-size="10.00">TCGCT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-1614 459,-1628 510,-1628 510,-1614 459,-1614"/>
+<text text-anchor="start" x="466.5" y="-1618.67" font-family="Times Roman,serif" font-size="10.00">AGCGA</text>
+</g>
+<!-- 35,2 -->
+<g id="node180" class="node"><title>35,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1636" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1647.17" font-family="Times Roman,serif" font-size="10.00">35,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1628 593,-1642 644,-1642 644,-1628 593,-1628"/>
+<text text-anchor="start" x="602.5" y="-1632.67" font-family="Times Roman,serif" font-size="10.00">CGCTT</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1614 593,-1628 644,-1628 644,-1614 593,-1614"/>
+<text text-anchor="start" x="600.5" y="-1618.67" font-family="Times Roman,serif" font-size="10.00">AAGCG</text>
+</g>
+<!-- 35,1&#45;&gt;35,2 -->
+<g id="edge836" class="edge"><title>35,1&#45;&gt;35,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-1629.53C540.501,-1629.25 550.748,-1629.18 560.703,-1629.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-1632.82 570.933,-1629.52 561.007,-1625.82 560.864,-1632.82"/>
+</g>
+<!-- 35,2&#45;&gt;35,1 -->
+<g id="edge844" class="edge"><title>35,2&#45;&gt;35,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-1642.48C561.29,-1642.75 551.041,-1642.82 541.091,-1642.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-1639.18 530.867,-1642.47 540.792,-1646.18 540.937,-1639.18"/>
+</g>
+<!-- 35,2&#45;&gt;35,3 -->
+<g id="edge840" class="edge"><title>35,2&#45;&gt;35,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1629.53C674.501,-1629.25 684.748,-1629.18 694.703,-1629.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1632.82 704.933,-1629.52 695.007,-1625.82 694.864,-1632.82"/>
+</g>
+<!-- 34,1 -->
+<g id="node184" class="node"><title>34,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-756" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-767.167" font-family="Times Roman,serif" font-size="10.00">34,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-748 593,-762 644,-762 644,-748 593,-748"/>
+<text text-anchor="start" x="603" y="-752.667" font-family="Times Roman,serif" font-size="10.00">GCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-734 593,-748 644,-748 644,-734 593,-734"/>
+<text text-anchor="start" x="602" y="-738.667" font-family="Times Roman,serif" font-size="10.00">TAAGC</text>
+</g>
+<!-- 35,2&#45;&gt;34,1 -->
+<g id="edge838" class="edge"><title>35,2&#45;&gt;34,1</title>
+<path fill="none" stroke="#dd1e2f" d="M586.07,-1608.84C568.813,-1594.15 551,-1579 551,-1579 551,-1579 551,-1131 551,-1131 551,-1131 591.863,-902.29 609.764,-802.095"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="613.262,-802.416 611.576,-791.957 606.371,-801.185 613.262,-802.416"/>
+</g>
+<!-- 34,4 -->
+<g id="node187" class="node"><title>34,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-756" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-767.167" font-family="Times Roman,serif" font-size="10.00">34,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-748 995,-762 1046,-762 1046,-748 995,-748"/>
+<text text-anchor="start" x="1004" y="-752.667" font-family="Times Roman,serif" font-size="10.00">TAAGC</text>
+<polygon fill="#218559" stroke="#218559" points="995,-734 995,-748 1046,-748 1046,-734 995,-734"/>
+<text text-anchor="start" x="1005" y="-738.667" font-family="Times Roman,serif" font-size="10.00">GCTTA</text>
+</g>
+<!-- 35,2&#45;&gt;34,4 -->
+<g id="edge842" class="edge"><title>35,2&#45;&gt;34,4</title>
+<path fill="none" stroke="#ebb035" d="M649.6,-1608.91C662.303,-1598.03 674,-1588 674,-1588 674,-1588 696,-1122 696,-1122 696,-1122 808,-1060 808,-1060 808,-1060 830,-992 830,-992 830,-992 942,-911 942,-911 942,-911 975.191,-845.043 998.271,-799.18"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1001.51,-800.521 1002.88,-790.015 995.261,-797.375 1001.51,-800.521"/>
+</g>
+<!-- 35,3&#45;&gt;36,1 -->
+<g id="edge848" class="edge"><title>35,3&#45;&gt;36,1</title>
+<path fill="none" stroke="#06a2cb" d="M783.6,-1608.91C796.303,-1598.03 808,-1588 808,-1588 808,-1588 830,-1122 830,-1122 830,-1122 837.283,-1115.76 846.596,-1107.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="849.085,-1110.25 854.4,-1101.09 844.529,-1104.94 849.085,-1110.25"/>
+</g>
+<!-- 35,3&#45;&gt;35,2 -->
+<g id="edge852" class="edge"><title>35,3&#45;&gt;35,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-1642.48C695.29,-1642.75 685.041,-1642.82 675.091,-1642.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1639.18 664.867,-1642.47 674.792,-1646.18 674.937,-1639.18"/>
+</g>
+<!-- 35,4 -->
+<g id="node182" class="node"><title>35,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1636" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1647.17" font-family="Times Roman,serif" font-size="10.00">35,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1628 861,-1642 912,-1642 912,-1628 861,-1628"/>
+<text text-anchor="start" x="871" y="-1632.67" font-family="Times Roman,serif" font-size="10.00">CTTAA</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1614 861,-1628 912,-1628 912,-1614 861,-1614"/>
+<text text-anchor="start" x="871" y="-1618.67" font-family="Times Roman,serif" font-size="10.00">TTAAG</text>
+</g>
+<!-- 35,3&#45;&gt;35,4 -->
+<g id="edge846" class="edge"><title>35,3&#45;&gt;35,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1629.53C808.501,-1629.25 818.748,-1629.18 828.703,-1629.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1632.82 838.933,-1629.52 829.007,-1625.82 828.864,-1632.82"/>
+</g>
+<!-- 32,1 -->
+<g id="node194" class="node"><title>32,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1974" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1985.17" font-family="Times Roman,serif" font-size="10.00">32,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1966 593,-1980 644,-1980 644,-1966 593,-1966"/>
+<text text-anchor="start" x="600.5" y="-1970.67" font-family="Times Roman,serif" font-size="10.00">AAGCG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1952 593,-1966 644,-1966 644,-1952 593,-1952"/>
+<text text-anchor="start" x="602.5" y="-1956.67" font-family="Times Roman,serif" font-size="10.00">CGCTT</text>
+</g>
+<!-- 35,3&#45;&gt;32,1 -->
+<g id="edge850" class="edge"><title>35,3&#45;&gt;32,1</title>
+<path fill="none" stroke="#06a2cb" d="M720.4,-1663.09C707.697,-1673.97 696,-1684 696,-1684 696,-1684 686,-1878 686,-1878 686,-1878 665.176,-1907.4 646.575,-1933.66"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="643.567,-1931.85 640.643,-1942.03 649.279,-1935.9 643.567,-1931.85"/>
+</g>
+<!-- 35,4&#45;&gt;35,3 -->
+<g id="edge858" class="edge"><title>35,4&#45;&gt;35,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-1642.48C829.29,-1642.75 819.041,-1642.82 809.091,-1642.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1639.18 798.867,-1642.47 808.792,-1646.18 808.937,-1639.18"/>
+</g>
+<!-- 34,2 -->
+<g id="node185" class="node"><title>34,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-756" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-767.167" font-family="Times Roman,serif" font-size="10.00">34,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-748 727,-762 778,-762 778,-748 727,-748"/>
+<text text-anchor="start" x="737" y="-752.667" font-family="Times Roman,serif" font-size="10.00">CTTAA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-734 727,-748 778,-748 778,-734 727,-734"/>
+<text text-anchor="start" x="737" y="-738.667" font-family="Times Roman,serif" font-size="10.00">TTAAG</text>
+</g>
+<!-- 35,4&#45;&gt;34,2 -->
+<g id="edge856" class="edge"><title>35,4&#45;&gt;34,2</title>
+<path fill="none" stroke="#ebb035" d="M854.4,-1608.91C841.697,-1598.03 830,-1588 830,-1588 830,-1588 820,-1343 820,-1343 820,-1343 808,-1122 808,-1122 808,-1122 774.093,-900.394 759.047,-802.057"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="762.495,-801.451 757.523,-792.095 755.576,-802.509 762.495,-801.451"/>
+</g>
+<!-- 34,3 -->
+<g id="node186" class="node"><title>34,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-756" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-767.167" font-family="Times Roman,serif" font-size="10.00">34,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-748 861,-762 912,-762 912,-748 861,-748"/>
+<text text-anchor="start" x="871" y="-752.667" font-family="Times Roman,serif" font-size="10.00">TTAAG</text>
+<polygon fill="#218559" stroke="#218559" points="861,-734 861,-748 912,-748 912,-734 861,-734"/>
+<text text-anchor="start" x="871" y="-738.667" font-family="Times Roman,serif" font-size="10.00">CTTAA</text>
+</g>
+<!-- 35,4&#45;&gt;34,3 -->
+<g id="edge854" class="edge"><title>35,4&#45;&gt;34,3</title>
+<path fill="none" stroke="#dd1e2f" d="M854.07,-1608.84C836.813,-1594.15 819,-1579 819,-1579 819,-1579 819,-1035 819,-1035 819,-1035 855.988,-880.975 874.999,-801.809"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="878.514,-802.16 877.446,-791.619 871.708,-800.525 878.514,-802.16"/>
+</g>
+<!-- 34,1&#45;&gt;35,2 -->
+<g id="edge410" class="edge"><title>34,1&#45;&gt;35,2</title>
+<path fill="none" stroke="#218559" d="M611.576,-791.957C594.806,-885.816 551,-1131 551,-1131 551,-1131 551,-1579 551,-1579 551,-1579 563.917,-1589.99 578.409,-1602.32"/>
+<polygon fill="#218559" stroke="#218559" points="576.185,-1605.02 586.07,-1608.84 580.721,-1599.69 576.185,-1605.02"/>
+</g>
+<!-- 34,1&#45;&gt;34,2 -->
+<g id="edge406" class="edge"><title>34,1&#45;&gt;34,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-749.529C674.501,-749.254 684.748,-749.183 694.703,-749.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-752.817 704.933,-749.523 695.007,-745.819 694.864,-752.817"/>
+</g>
+<!-- 33,2 -->
+<g id="node190" class="node"><title>33,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1540" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1551.17" font-family="Times Roman,serif" font-size="10.00">33,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1532 593,-1546 644,-1546 644,-1532 593,-1532"/>
+<text text-anchor="start" x="602.5" y="-1536.67" font-family="Times Roman,serif" font-size="10.00">CGCTT</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1518 593,-1532 644,-1532 644,-1518 593,-1518"/>
+<text text-anchor="start" x="600.5" y="-1522.67" font-family="Times Roman,serif" font-size="10.00">AAGCG</text>
+</g>
+<!-- 34,1&#45;&gt;33,2 -->
+<g id="edge408" class="edge"><title>34,1&#45;&gt;33,2</title>
+<path fill="none" stroke="#218559" d="M611.576,-791.957C594.806,-885.816 551,-1131 551,-1131 551,-1131 551,-1209 551,-1209 551,-1209 590.35,-1403.4 608.737,-1494.24"/>
+<polygon fill="#218559" stroke="#218559" points="605.352,-1495.16 610.766,-1504.26 612.213,-1493.77 605.352,-1495.16"/>
+</g>
+<!-- 34,2&#45;&gt;35,4 -->
+<g id="edge414" class="edge"><title>34,2&#45;&gt;35,4</title>
+<path fill="none" stroke="#ebb035" d="M759.934,-791.701C777.871,-872.42 820,-1062 820,-1062 820,-1062 830,-1588 830,-1588 830,-1588 837.283,-1594.24 846.596,-1602.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="844.529,-1605.06 854.4,-1608.91 849.085,-1599.75 844.529,-1605.06"/>
+</g>
+<!-- 34,2&#45;&gt;34,1 -->
+<g id="edge418" class="edge"><title>34,2&#45;&gt;34,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-762.477C695.29,-762.749 685.041,-762.817 675.091,-762.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-759.18 664.867,-762.471 674.792,-766.179 674.937,-759.18"/>
+</g>
+<!-- 34,2&#45;&gt;34,3 -->
+<g id="edge412" class="edge"><title>34,2&#45;&gt;34,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-749.529C808.501,-749.254 818.748,-749.183 828.703,-749.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-752.817 838.933,-749.523 829.007,-745.819 828.864,-752.817"/>
+</g>
+<!-- 33,4 -->
+<g id="node192" class="node"><title>33,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1540" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1551.17" font-family="Times Roman,serif" font-size="10.00">33,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1532 861,-1546 912,-1546 912,-1532 861,-1532"/>
+<text text-anchor="start" x="871" y="-1536.67" font-family="Times Roman,serif" font-size="10.00">CTTAA</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1518 861,-1532 912,-1532 912,-1518 861,-1518"/>
+<text text-anchor="start" x="871" y="-1522.67" font-family="Times Roman,serif" font-size="10.00">TTAAG</text>
+</g>
+<!-- 34,2&#45;&gt;33,4 -->
+<g id="edge416" class="edge"><title>34,2&#45;&gt;33,4</title>
+<path fill="none" stroke="#ebb035" d="M762.034,-791.413C780.949,-858.173 820,-996 820,-996 820,-996 830,-1492 830,-1492 830,-1492 837.283,-1498.24 846.596,-1506.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="844.529,-1509.06 854.4,-1512.91 849.085,-1503.75 844.529,-1509.06"/>
+</g>
+<!-- 34,3&#45;&gt;35,4 -->
+<g id="edge422" class="edge"><title>34,3&#45;&gt;35,4</title>
+<path fill="none" stroke="#218559" d="M877.446,-791.619C859.384,-866.834 819,-1035 819,-1035 819,-1035 819,-1579 819,-1579 819,-1579 831.917,-1589.99 846.409,-1602.32"/>
+<polygon fill="#218559" stroke="#218559" points="844.185,-1605.02 854.07,-1608.84 848.721,-1599.69 844.185,-1605.02"/>
+</g>
+<!-- 34,3&#45;&gt;34,2 -->
+<g id="edge426" class="edge"><title>34,3&#45;&gt;34,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-762.477C829.29,-762.749 819.041,-762.817 809.091,-762.684"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-759.18 798.867,-762.471 808.792,-766.179 808.937,-759.18"/>
+</g>
+<!-- 34,3&#45;&gt;34,4 -->
+<g id="edge420" class="edge"><title>34,3&#45;&gt;34,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-749.529C942.501,-749.254 952.748,-749.183 962.703,-749.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-752.817 972.933,-749.523 963.007,-745.819 962.864,-752.817"/>
+</g>
+<!-- 34,3&#45;&gt;33,4 -->
+<g id="edge424" class="edge"><title>34,3&#45;&gt;33,4</title>
+<path fill="none" stroke="#218559" d="M877.446,-791.619C859.384,-866.834 819,-1035 819,-1035 819,-1035 819,-1483 819,-1483 819,-1483 831.917,-1493.99 846.409,-1506.32"/>
+<polygon fill="#218559" stroke="#218559" points="844.185,-1509.02 854.07,-1512.84 848.721,-1503.69 844.185,-1509.02"/>
+</g>
+<!-- 34,4&#45;&gt;35,2 -->
+<g id="edge430" class="edge"><title>34,4&#45;&gt;35,2</title>
+<path fill="none" stroke="#ebb035" d="M998.48,-788.28C975.392,-822.912 942,-873 942,-873 942,-873 830,-920 830,-920 830,-920 808,-1000 808,-1000 808,-1000 696,-1091 696,-1091 696,-1091 686,-1262 686,-1262 686,-1262 684,-1296 684,-1296 684,-1296 674,-1588 674,-1588 674,-1588 666.717,-1594.24 657.404,-1602.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="654.915,-1599.75 649.6,-1608.91 659.471,-1605.06 654.915,-1599.75"/>
+</g>
+<!-- 34,4&#45;&gt;34,3 -->
+<g id="edge432" class="edge"><title>34,4&#45;&gt;34,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-762.477C963.29,-762.749 953.041,-762.817 943.091,-762.684"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-759.18 932.867,-762.471 942.792,-766.179 942.937,-759.18"/>
+</g>
+<!-- 34,4&#45;&gt;33,2 -->
+<g id="edge428" class="edge"><title>34,4&#45;&gt;33,2</title>
+<path fill="none" stroke="#ebb035" d="M994.294,-786.38C975.762,-808.281 954,-834 954,-834 954,-834 818,-883 818,-883 818,-883 808,-929 808,-929 808,-929 696,-1042 696,-1042 696,-1042 686,-1243 686,-1243 686,-1243 647.466,-1411.3 628.413,-1494.52"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="624.955,-1493.94 626.135,-1504.47 631.778,-1495.5 624.955,-1493.94"/>
+</g>
+<!-- 33,1 -->
+<g id="node189" class="node"><title>33,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-1540" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-1551.17" font-family="Times Roman,serif" font-size="10.00">33,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-1532 459,-1546 510,-1546 510,-1532 459,-1532"/>
+<text text-anchor="start" x="469" y="-1536.67" font-family="Times Roman,serif" font-size="10.00">TCGCT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-1518 459,-1532 510,-1532 510,-1518 459,-1518"/>
+<text text-anchor="start" x="466.5" y="-1522.67" font-family="Times Roman,serif" font-size="10.00">AGCGA</text>
+</g>
+<!-- 33,1&#45;&gt;33,2 -->
+<g id="edge812" class="edge"><title>33,1&#45;&gt;33,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-1533.53C540.501,-1533.25 550.748,-1533.18 560.703,-1533.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-1536.82 570.933,-1533.52 561.007,-1529.82 560.864,-1536.82"/>
+</g>
+<!-- 33,2&#45;&gt;34,1 -->
+<g id="edge814" class="edge"><title>33,2&#45;&gt;34,1</title>
+<path fill="none" stroke="#dd1e2f" d="M610.766,-1504.26C593.441,-1418.67 551,-1209 551,-1209 551,-1209 551,-1131 551,-1131 551,-1131 591.863,-902.29 609.764,-802.095"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="613.262,-802.416 611.576,-791.957 606.371,-801.185 613.262,-802.416"/>
+</g>
+<!-- 33,2&#45;&gt;34,4 -->
+<g id="edge818" class="edge"><title>33,2&#45;&gt;34,4</title>
+<path fill="none" stroke="#ebb035" d="M624.261,-1504C638.874,-1419.98 674,-1218 674,-1218 674,-1218 696,-929 696,-929 696,-929 830,-835 830,-835 830,-835 942,-801 942,-801 942,-801 956.586,-792.585 973.143,-783.033"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="975.001,-786.002 981.914,-777.973 971.503,-779.938 975.001,-786.002"/>
+</g>
+<!-- 33,2&#45;&gt;33,1 -->
+<g id="edge820" class="edge"><title>33,2&#45;&gt;33,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-1546.48C561.29,-1546.75 551.041,-1546.82 541.091,-1546.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-1543.18 530.867,-1546.47 540.792,-1550.18 540.937,-1543.18"/>
+</g>
+<!-- 33,2&#45;&gt;33,3 -->
+<g id="edge816" class="edge"><title>33,2&#45;&gt;33,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1533.53C674.501,-1533.25 684.748,-1533.18 694.703,-1533.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1536.82 704.933,-1533.52 695.007,-1529.82 694.864,-1536.82"/>
+</g>
+<!-- 33,3&#45;&gt;36,1 -->
+<g id="edge824" class="edge"><title>33,3&#45;&gt;36,1</title>
+<path fill="none" stroke="#06a2cb" d="M759.085,-1504.26C776.501,-1416.41 820,-1197 820,-1197 820,-1197 830,-1122 830,-1122 830,-1122 837.283,-1115.76 846.596,-1107.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="849.085,-1110.25 854.4,-1101.09 844.529,-1104.94 849.085,-1110.25"/>
+</g>
+<!-- 33,3&#45;&gt;33,2 -->
+<g id="edge828" class="edge"><title>33,3&#45;&gt;33,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-1546.48C695.29,-1546.75 685.041,-1546.82 675.091,-1546.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1543.18 664.867,-1546.47 674.792,-1550.18 674.937,-1543.18"/>
+</g>
+<!-- 33,3&#45;&gt;33,4 -->
+<g id="edge822" class="edge"><title>33,3&#45;&gt;33,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1533.53C808.501,-1533.25 818.748,-1533.18 828.703,-1533.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1536.82 838.933,-1533.52 829.007,-1529.82 828.864,-1536.82"/>
+</g>
+<!-- 33,3&#45;&gt;32,1 -->
+<g id="edge826" class="edge"><title>33,3&#45;&gt;32,1</title>
+<path fill="none" stroke="#06a2cb" d="M720.4,-1567.09C707.697,-1577.97 696,-1588 696,-1588 696,-1588 686,-1698 686,-1698 686,-1698 674,-1780 674,-1780 674,-1780 647.692,-1871.14 631.139,-1928.48"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="627.682,-1927.84 628.271,-1938.42 634.407,-1929.78 627.682,-1927.84"/>
+</g>
+<!-- 33,4&#45;&gt;34,2 -->
+<g id="edge832" class="edge"><title>33,4&#45;&gt;34,2</title>
+<path fill="none" stroke="#ebb035" d="M854.4,-1512.91C841.697,-1502.03 830,-1492 830,-1492 830,-1492 820,-1032 820,-1032 820,-1032 782.554,-880.014 763.238,-801.612"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="766.541,-800.389 760.751,-791.517 759.745,-802.064 766.541,-800.389"/>
+</g>
+<!-- 33,4&#45;&gt;34,3 -->
+<g id="edge830" class="edge"><title>33,4&#45;&gt;34,3</title>
+<path fill="none" stroke="#dd1e2f" d="M854.07,-1512.84C836.813,-1498.15 819,-1483 819,-1483 819,-1483 819,-1035 819,-1035 819,-1035 855.988,-880.975 874.999,-801.809"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="878.514,-802.16 877.446,-791.619 871.708,-800.525 878.514,-802.16"/>
+</g>
+<!-- 33,4&#45;&gt;33,3 -->
+<g id="edge834" class="edge"><title>33,4&#45;&gt;33,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-1546.48C829.29,-1546.75 819.041,-1546.82 809.091,-1546.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1543.18 798.867,-1546.47 808.792,-1550.18 808.937,-1543.18"/>
+</g>
+<!-- 32,1&#45;&gt;35,3 -->
+<g id="edge388" class="edge"><title>32,1&#45;&gt;35,3</title>
+<path fill="none" stroke="#06a2cb" d="M638.034,-1941C658.093,-1907.96 686,-1862 686,-1862 686,-1862 696,-1684 696,-1684 696,-1684 703.283,-1677.76 712.596,-1669.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="715.085,-1672.25 720.4,-1663.09 710.529,-1666.94 715.085,-1672.25"/>
+</g>
+<!-- 32,1&#45;&gt;33,3 -->
+<g id="edge386" class="edge"><title>32,1&#45;&gt;33,3</title>
+<path fill="none" stroke="#06a2cb" d="M628.271,-1938.42C644.438,-1882.41 674,-1780 674,-1780 674,-1780 696,-1588 696,-1588 696,-1588 703.283,-1581.76 712.596,-1573.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="715.085,-1576.25 720.4,-1567.09 710.529,-1570.94 715.085,-1576.25"/>
+</g>
+<!-- 32,1&#45;&gt;32,2 -->
+<g id="edge384" class="edge"><title>32,1&#45;&gt;32,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1967.53C674.501,-1967.25 684.748,-1967.18 694.703,-1967.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1970.82 704.933,-1967.52 695.007,-1963.82 694.864,-1970.82"/>
+</g>
+<!-- 32,2&#45;&gt;31,1 -->
+<g id="edge390" class="edge"><title>32,2&#45;&gt;31,1</title>
+<path fill="none" stroke="#dd1e2f" d="M719.991,-1947.17C702.354,-1932.39 684,-1917 684,-1917 684,-1917 653.327,-1831.02 633.801,-1776.29"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="637.071,-1775.04 630.414,-1766.8 630.478,-1777.39 637.071,-1775.04"/>
+</g>
+<!-- 32,2&#45;&gt;32,1 -->
+<g id="edge394" class="edge"><title>32,2&#45;&gt;32,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-1980.48C695.29,-1980.75 685.041,-1980.82 675.091,-1980.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1977.18 664.867,-1980.47 674.792,-1984.18 674.937,-1977.18"/>
+</g>
+<!-- 32,3 -->
+<g id="node196" class="node"><title>32,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1974" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1985.17" font-family="Times Roman,serif" font-size="10.00">32,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1966 861,-1980 912,-1980 912,-1966 861,-1966"/>
+<text text-anchor="start" x="870" y="-1970.67" font-family="Times Roman,serif" font-size="10.00">GCGTC</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1952 861,-1966 912,-1966 912,-1952 861,-1952"/>
+<text text-anchor="start" x="868.5" y="-1956.67" font-family="Times Roman,serif" font-size="10.00">GACGC</text>
+</g>
+<!-- 32,2&#45;&gt;32,3 -->
+<g id="edge392" class="edge"><title>32,2&#45;&gt;32,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1967.53C808.501,-1967.25 818.748,-1967.18 828.703,-1967.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1970.82 838.933,-1967.52 829.007,-1963.82 828.864,-1970.82"/>
+</g>
+<!-- 32,3&#45;&gt;32,2 -->
+<g id="edge398" class="edge"><title>32,3&#45;&gt;32,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-1980.48C829.29,-1980.75 819.041,-1980.82 809.091,-1980.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1977.18 798.867,-1980.47 808.792,-1984.18 808.937,-1977.18"/>
+</g>
+<!-- 32,3&#45;&gt;32,4 -->
+<g id="edge396" class="edge"><title>32,3&#45;&gt;32,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-1967.53C942.501,-1967.25 952.748,-1967.18 962.703,-1967.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-1970.82 972.933,-1967.52 963.007,-1963.82 962.864,-1970.82"/>
+</g>
+<!-- 32,4&#45;&gt;29,2 -->
+<g id="edge402" class="edge"><title>32,4&#45;&gt;29,2</title>
+<path fill="none" stroke="#ebb035" d="M1003.8,-2008.13C987.264,-2042.98 964,-2092 964,-2092 964,-2092 942,-2188 942,-2188 942,-2188 922.563,-2228.96 906.591,-2262.61"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="903.323,-2261.33 902.198,-2271.87 909.647,-2264.34 903.323,-2261.33"/>
+</g>
+<!-- 32,4&#45;&gt;31,3 -->
+<g id="edge400" class="edge"><title>32,4&#45;&gt;31,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1009.73,-1938.42C993.562,-1882.41 964,-1780 964,-1780 964,-1780 954,-1246 954,-1246 954,-1246 952,-1246 952,-1246 952,-1246 942,-1684 942,-1684 942,-1684 934.717,-1690.24 925.404,-1698.22"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="922.915,-1695.75 917.6,-1704.91 927.471,-1701.06 922.915,-1695.75"/>
+</g>
+<!-- 32,4&#45;&gt;32,3 -->
+<g id="edge404" class="edge"><title>32,4&#45;&gt;32,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-1980.48C963.29,-1980.75 953.041,-1980.82 943.091,-1980.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-1977.18 932.867,-1980.47 942.792,-1984.18 942.937,-1977.18"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/.part-0.crc
new file mode 100644
index 0000000..32c39ff
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/.part-1.crc
new file mode 100644
index 0000000..72c5a6b
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/part-0
new file mode 100755
index 0000000..7db79d9
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/part-1
new file mode 100755
index 0000000..54cde64
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq1/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2.txt
new file mode 100644
index 0000000..474c862
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2.txt
@@ -0,0 +1,24 @@
+((2,1)	[(2,2)]	[]	[(3,3)]	[]	CTAGC)	(null)
+((2,2)	[(6,1),(2,3)]	[(1,4)]	[]	[(2,1)]	TAGCG)	(null)
+((2,3)	[(2,4)]	[]	[(3,1)]	[(2,2)]	AGCGC)	(null)
+((2,4)	[(6,3)]	[(1,2)]	[]	[(2,3)]	GCGCA)	(null)
+((4,1)	[(4,2)]	[]	[]	[(3,2)]	CTAGG)	(null)
+((4,2)	[(5,1),(4,3)]	[]	[]	[(4,1)]	TAGGA)	(null)
+((4,3)	[(4,4)]	[]	[]	[(3,4),(4,2)]	AGGAG)	(null)
+((4,4)	[(5,3)]	[]	[]	[(4,3)]	GGAGT)	(null)
+((6,1)	[(6,2)]	[]	[]	[(2,2)]	AGCGC)	(null)
+((6,2)	[(6,3)]	[]	[]	[(6,1)]	GCGCA)	(null)
+((6,3)	[(6,4)]	[]	[]	[(2,4),(6,2)]	CGCAT)	(null)
+((6,4)	[]	[]	[]	[(6,3)]	GCATT)	(null)
+((1,1)	[(1,2)]	[]	[]	[]	AATGC)	(null)
+((1,2)	[(1,3)]	[(2,4)]	[]	[(1,1)]	ATGCG)	(null)
+((1,3)	[(1,4)]	[]	[]	[(1,2)]	TGCGC)	(null)
+((1,4)	[]	[(2,2)]	[]	[(1,3)]	GCGCT)	(null)
+((3,1)	[(3,2)]	[]	[(2,3)]	[]	CGCTA)	(null)
+((3,2)	[(4,1),(3,3)]	[]	[]	[(3,1)]	GCTAG)	(null)
+((3,3)	[(3,4)]	[]	[(2,1)]	[(3,2)]	CTAGG)	(null)
+((3,4)	[(4,3)]	[]	[]	[(3,3)]	TAGGA)	(null)
+((5,1)	[(5,2)]	[]	[]	[(4,2)]	AGGAG)	(null)
+((5,2)	[(5,3)]	[]	[]	[(5,1)]	GGAGT)	(null)
+((5,3)	[(5,4)]	[]	[]	[(4,4),(5,2)]	GAGTT)	(null)
+((5,4)	[]	[]	[]	[(5,3)]	AGTTG)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2.txt.svg
new file mode 100644
index 0000000..70ffb5c
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2.txt.svg
@@ -0,0 +1,587 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: walk_random_seq2_txt Pages: 1 -->
+<svg width="1260pt" height="669pt"
+ viewBox="0.00 0.00 1260.00 669.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 665)">
+<title>walk_random_seq2_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-665 1257,-665 1257,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-130 49,-331 211,-331 211,-130 49,-130"/>
+<text text-anchor="middle" x="130" y="-314.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-558 8,-646 500,-646 500,-558 8,-558"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="274,-200 274,-288 748,-288 748,-200 274,-200"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="150,-462 150,-550 624,-550 624,-462 150,-462"/>
+</g>
+<g id="graph6" class="cluster"><title>cluster_5</title>
+<polygon fill="none" stroke="black" points="770,-8 770,-96 1244,-96 1244,-8 770,-8"/>
+</g>
+<g id="graph7" class="cluster"><title>cluster_4</title>
+<polygon fill="none" stroke="black" points="522,-104 522,-192 996,-192 996,-104 522,-104"/>
+</g>
+<g id="graph8" class="cluster"><title>cluster_6</title>
+<polygon fill="none" stroke="black" points="398,-366 398,-454 872,-454 872,-366 398,-366"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-279" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-279" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-279C74.8673,-279 156.744,-279 188.46,-279"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-282.5 198.862,-279 188.861,-275.5 188.862,-282.5"/>
+<text text-anchor="middle" x="130" y="-284.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-238" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-238" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-238C74.8673,-238 156.744,-238 188.46,-238"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-241.5 198.862,-238 188.861,-234.5 188.862,-241.5"/>
+<text text-anchor="middle" x="130" y="-243.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-197" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-197" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-197C74.8673,-197 156.744,-197 188.46,-197"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-200.5 198.862,-197 188.861,-193.5 188.862,-200.5"/>
+<text text-anchor="middle" x="130" y="-202.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-156" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-156" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-156C74.8673,-156 156.744,-156 188.46,-156"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-159.5 198.862,-156 188.861,-152.5 188.862,-159.5"/>
+<text text-anchor="middle" x="130" y="-161.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-602" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-613.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-594 37,-608 82,-608 82,-594 37,-594"/>
+<text text-anchor="start" x="43" y="-598.667" font-family="Times Roman,serif" font-size="10.00">AATGC</text>
+<polygon fill="#218559" stroke="#218559" points="37,-580 37,-594 82,-594 82,-580 37,-580"/>
+<text text-anchor="start" x="44" y="-584.667" font-family="Times Roman,serif" font-size="10.00">GCATT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-602" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-613.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-594 179,-608 224,-608 224,-594 179,-594"/>
+<text text-anchor="start" x="185" y="-598.667" font-family="Times Roman,serif" font-size="10.00">ATGCG</text>
+<polygon fill="#218559" stroke="#218559" points="179,-580 179,-594 224,-594 224,-580 179,-580"/>
+<text text-anchor="start" x="185" y="-584.667" font-family="Times Roman,serif" font-size="10.00">CGCAT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge77" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-595.755C116.207,-595.208 132.729,-595.105 148.049,-595.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-598.957 158.425,-595.756 148.534,-591.96 148.326,-598.957"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge83" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-608.244C143.825,-608.792 127.305,-608.895 111.982,-608.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-605.043 101.605,-608.245 111.497,-612.04 111.704,-605.043"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-602" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-613.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-594 303,-608 348,-608 348,-594 303,-594"/>
+<text text-anchor="start" x="308.5" y="-598.667" font-family="Times Roman,serif" font-size="10.00">TGCGC</text>
+<polygon fill="#218559" stroke="#218559" points="303,-580 303,-594 348,-594 348,-580 303,-580"/>
+<text text-anchor="start" x="307.5" y="-584.667" font-family="Times Roman,serif" font-size="10.00">GCGCA</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge79" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-595.562C252.601,-595.258 262.531,-595.176 272.159,-595.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-598.822 282.443,-595.554 272.527,-591.823 272.364,-598.822"/>
+</g>
+<!-- 2,4 -->
+<g id="node28" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-506" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-517.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-498 551,-512 596,-512 596,-498 551,-498"/>
+<text text-anchor="start" x="555.5" y="-502.667" font-family="Times Roman,serif" font-size="10.00">GCGCA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-484 551,-498 596,-498 596,-484 551,-484"/>
+<text text-anchor="start" x="556.5" y="-488.667" font-family="Times Roman,serif" font-size="10.00">TGCGC</text>
+</g>
+<!-- 1,2&#45;&gt;2,4 -->
+<g id="edge81" class="edge"><title>1,2&#45;&gt;2,4</title>
+<path fill="none" stroke="#ebb035" d="M231.143,-627.695C246.511,-640.796 262,-654 262,-654 262,-654 274,-661 274,-661 274,-661 500,-661 500,-661 500,-661 512,-639 512,-639 512,-639 535.266,-588.272 553.061,-549.474"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="556.462,-550.454 557.449,-539.906 550.099,-547.536 556.462,-550.454"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge87" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M282.443,-608.446C273.158,-608.745 263.225,-608.824 253.602,-608.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-605.175 243.327,-608.438 253.242,-612.173 253.407,-605.175"/>
+</g>
+<!-- 1,4 -->
+<g id="node18" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-602" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-613.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-594 427,-608 472,-608 472,-594 427,-594"/>
+<text text-anchor="start" x="432.5" y="-598.667" font-family="Times Roman,serif" font-size="10.00">GCGCT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-580 427,-594 472,-594 472,-580 427,-580"/>
+<text text-anchor="start" x="431.5" y="-584.667" font-family="Times Roman,serif" font-size="10.00">AGCGC</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge85" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-595.562C376.601,-595.258 386.531,-595.176 396.159,-595.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-598.822 406.443,-595.554 396.527,-591.823 396.364,-598.822"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge91" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M406.443,-608.446C397.158,-608.745 387.225,-608.824 377.602,-608.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-605.175 367.327,-608.438 377.242,-612.173 377.407,-605.175"/>
+</g>
+<!-- 2,2 -->
+<g id="node26" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-506" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-517.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-498 303,-512 348,-512 348,-498 303,-498"/>
+<text text-anchor="start" x="309" y="-502.667" font-family="Times Roman,serif" font-size="10.00">TAGCG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-484 303,-498 348,-498 348,-484 303,-484"/>
+<text text-anchor="start" x="309" y="-488.667" font-family="Times Roman,serif" font-size="10.00">CGCTA</text>
+</g>
+<!-- 1,4&#45;&gt;2,2 -->
+<g id="edge89" class="edge"><title>1,4&#45;&gt;2,2</title>
+<path fill="none" stroke="#ebb035" d="M414.551,-580.127C399.843,-570.789 386,-562 386,-562 386,-562 374.667,-551.596 361.771,-539.757"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="363.804,-536.872 354.071,-532.688 359.07,-542.029 363.804,-536.872"/>
+</g>
+<!-- 3,1 -->
+<g id="node20" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-244" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-255.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-236 303,-250 348,-250 348,-236 303,-236"/>
+<text text-anchor="start" x="309" y="-240.667" font-family="Times Roman,serif" font-size="10.00">CGCTA</text>
+<polygon fill="#218559" stroke="#218559" points="303,-222 303,-236 348,-236 348,-222 303,-222"/>
+<text text-anchor="start" x="309" y="-226.667" font-family="Times Roman,serif" font-size="10.00">TAGCG</text>
+</g>
+<!-- 3,2 -->
+<g id="node21" class="node"><title>3,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-244" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-255.167" font-family="Times Roman,serif" font-size="10.00">3,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-236 427,-250 472,-250 472,-236 427,-236"/>
+<text text-anchor="start" x="433" y="-240.667" font-family="Times Roman,serif" font-size="10.00">GCTAG</text>
+<polygon fill="#218559" stroke="#218559" points="427,-222 427,-236 472,-236 472,-222 427,-222"/>
+<text text-anchor="start" x="433" y="-226.667" font-family="Times Roman,serif" font-size="10.00">CTAGC</text>
+</g>
+<!-- 3,1&#45;&gt;3,2 -->
+<g id="edge93" class="edge"><title>3,1&#45;&gt;3,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-237.562C376.601,-237.258 386.531,-237.176 396.159,-237.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-240.822 406.443,-237.554 396.527,-233.823 396.364,-240.822"/>
+</g>
+<!-- 2,3 -->
+<g id="node27" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-506" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-517.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-498 427,-512 472,-512 472,-498 427,-498"/>
+<text text-anchor="start" x="431.5" y="-502.667" font-family="Times Roman,serif" font-size="10.00">AGCGC</text>
+<polygon fill="#218559" stroke="#218559" points="427,-484 427,-498 472,-498 472,-484 427,-484"/>
+<text text-anchor="start" x="432.5" y="-488.667" font-family="Times Roman,serif" font-size="10.00">GCGCT</text>
+</g>
+<!-- 3,1&#45;&gt;2,3 -->
+<g id="edge95" class="edge"><title>3,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#06a2cb" d="M336.891,-278.859C357.577,-339.499 398,-458 398,-458 398,-458 404.502,-464.119 412.863,-471.988"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="410.54,-474.609 420.221,-478.914 415.338,-469.511 410.54,-474.609"/>
+</g>
+<!-- 3,2&#45;&gt;3,1 -->
+<g id="edge101" class="edge"><title>3,2&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-250.446C397.158,-250.745 387.225,-250.824 377.602,-250.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-247.175 367.327,-250.438 377.242,-254.173 377.407,-247.175"/>
+</g>
+<!-- 3,3 -->
+<g id="node22" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-244" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-255.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-236 551,-250 596,-250 596,-236 551,-236"/>
+<text text-anchor="start" x="557" y="-240.667" font-family="Times Roman,serif" font-size="10.00">CTAGG</text>
+<polygon fill="#218559" stroke="#218559" points="551,-222 551,-236 596,-236 596,-222 551,-222"/>
+<text text-anchor="start" x="557" y="-226.667" font-family="Times Roman,serif" font-size="10.00">CCTAG</text>
+</g>
+<!-- 3,2&#45;&gt;3,3 -->
+<g id="edge99" class="edge"><title>3,2&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-237.562C500.601,-237.258 510.531,-237.176 520.159,-237.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-240.822 530.443,-237.554 520.527,-233.823 520.364,-240.822"/>
+</g>
+<!-- 4,1 -->
+<g id="node35" class="node"><title>4,1</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-148" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">4,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-140 551,-154 596,-154 596,-140 551,-140"/>
+<text text-anchor="start" x="557" y="-144.667" font-family="Times Roman,serif" font-size="10.00">CTAGG</text>
+<polygon fill="#218559" stroke="#218559" points="551,-126 551,-140 596,-140 596,-126 551,-126"/>
+<text text-anchor="start" x="557" y="-130.667" font-family="Times Roman,serif" font-size="10.00">CCTAG</text>
+</g>
+<!-- 3,2&#45;&gt;4,1 -->
+<g id="edge97" class="edge"><title>3,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#dd1e2f" d="M479.143,-218.305C494.511,-205.204 510,-192 510,-192 510,-192 519.601,-185.295 531.307,-177.119"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="533.461,-179.884 539.655,-171.288 529.453,-174.145 533.461,-179.884"/>
+</g>
+<!-- 3,3&#45;&gt;3,2 -->
+<g id="edge107" class="edge"><title>3,3&#45;&gt;3,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-250.446C521.158,-250.745 511.225,-250.824 501.602,-250.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-247.175 491.327,-250.438 501.242,-254.173 501.407,-247.175"/>
+</g>
+<!-- 3,4 -->
+<g id="node23" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-244" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-255.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-236 675,-250 720,-250 720,-236 675,-236"/>
+<text text-anchor="start" x="681" y="-240.667" font-family="Times Roman,serif" font-size="10.00">TAGGA</text>
+<polygon fill="#218559" stroke="#218559" points="675,-222 675,-236 720,-236 720,-222 675,-222"/>
+<text text-anchor="start" x="682.5" y="-226.667" font-family="Times Roman,serif" font-size="10.00">TCCTA</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge103" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-237.562C624.601,-237.258 634.531,-237.176 644.159,-237.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-240.822 654.443,-237.554 644.527,-233.823 644.364,-240.822"/>
+</g>
+<!-- 2,1 -->
+<g id="node25" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-506" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-517.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-498 179,-512 224,-512 224,-498 179,-498"/>
+<text text-anchor="start" x="185" y="-502.667" font-family="Times Roman,serif" font-size="10.00">CTAGC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-484 179,-498 224,-498 224,-484 179,-484"/>
+<text text-anchor="start" x="185" y="-488.667" font-family="Times Roman,serif" font-size="10.00">GCTAG</text>
+</g>
+<!-- 3,3&#45;&gt;2,1 -->
+<g id="edge105" class="edge"><title>3,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#06a2cb" d="M544.148,-271.271C523.744,-290.557 500,-313 500,-313 500,-313 398,-362 398,-362 398,-362 299.419,-434.059 241.729,-476.229"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="239.538,-473.494 233.531,-482.221 243.669,-479.146 239.538,-473.494"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge111" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M654.443,-250.446C645.158,-250.745 635.225,-250.824 625.602,-250.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-247.175 615.327,-250.438 625.242,-254.173 625.407,-247.175"/>
+</g>
+<!-- 4,3 -->
+<g id="node37" class="node"><title>4,3</title>
+<ellipse fill="none" stroke="black" cx="821" cy="-148" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="801.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">4,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="799,-140 799,-154 844,-154 844,-140 799,-140"/>
+<text text-anchor="start" x="803.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">AGGAG</text>
+<polygon fill="#218559" stroke="#218559" points="799,-126 799,-140 844,-140 844,-126 799,-126"/>
+<text text-anchor="start" x="806" y="-130.667" font-family="Times Roman,serif" font-size="10.00">CTCCT</text>
+</g>
+<!-- 3,4&#45;&gt;4,3 -->
+<g id="edge109" class="edge"><title>3,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M733.282,-224.419C747.287,-216.861 760,-210 760,-210 760,-210 772.484,-197.311 786.157,-183.414"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="788.837,-185.681 793.356,-176.098 783.847,-180.771 788.837,-185.681"/>
+</g>
+<!-- 2,1&#45;&gt;3,3 -->
+<g id="edge19" class="edge"><title>2,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#06a2cb" d="M213.198,-471.207C230.999,-420.429 262,-332 262,-332 262,-332 500,-289 500,-289 500,-289 513.817,-280.483 529.429,-270.859"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="531.534,-273.673 538.21,-265.446 527.861,-267.714 531.534,-273.673"/>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge17" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-499.562C252.601,-499.258 262.531,-499.176 272.159,-499.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-502.822 282.443,-499.554 272.527,-495.823 272.364,-502.822"/>
+</g>
+<!-- 2,2&#45;&gt;1,4 -->
+<g id="edge25" class="edge"><title>2,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#ebb035" d="M356.611,-530.473C372.521,-542.79 391.976,-557.853 408.924,-570.973"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="406.965,-573.883 417.015,-577.238 411.251,-568.348 406.965,-573.883"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge27" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M282.443,-512.446C273.158,-512.745 263.225,-512.824 253.602,-512.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-509.175 243.327,-512.438 253.242,-516.173 253.407,-509.175"/>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge23" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-499.562C376.601,-499.258 386.531,-499.176 396.159,-499.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-502.822 406.443,-499.554 396.527,-495.823 396.364,-502.822"/>
+</g>
+<!-- 6,1 -->
+<g id="node40" class="node"><title>6,1</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-410" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-421.167" font-family="Times Roman,serif" font-size="10.00">6,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-402 427,-416 472,-416 472,-402 427,-402"/>
+<text text-anchor="start" x="431.5" y="-406.667" font-family="Times Roman,serif" font-size="10.00">AGCGC</text>
+<polygon fill="#218559" stroke="#218559" points="427,-388 427,-402 472,-402 472,-388 427,-388"/>
+<text text-anchor="start" x="432.5" y="-392.667" font-family="Times Roman,serif" font-size="10.00">GCGCT</text>
+</g>
+<!-- 2,2&#45;&gt;6,1 -->
+<g id="edge21" class="edge"><title>2,2&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M356.611,-481.527C372.521,-469.21 391.976,-454.147 408.924,-441.027"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="411.251,-443.652 417.015,-434.762 406.965,-438.117 411.251,-443.652"/>
+</g>
+<!-- 2,3&#45;&gt;3,1 -->
+<g id="edge31" class="edge"><title>2,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#06a2cb" d="M419.713,-479.502C403.261,-464.617 386,-449 386,-449 386,-449 356.323,-349.267 338.369,-288.928"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="341.693,-287.827 335.486,-279.241 334.984,-289.824 341.693,-287.827"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge33" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M406.443,-512.446C397.158,-512.745 387.225,-512.824 377.602,-512.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-509.175 367.327,-512.438 377.242,-516.173 377.407,-509.175"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge29" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-499.562C500.601,-499.258 510.531,-499.176 520.159,-499.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-502.822 530.443,-499.554 520.527,-495.823 520.364,-502.822"/>
+</g>
+<!-- 2,4&#45;&gt;1,2 -->
+<g id="edge37" class="edge"><title>2,4&#45;&gt;1,2</title>
+<path fill="none" stroke="#ebb035" d="M555.885,-539.058C534.308,-580.734 500,-647 500,-647 500,-647 274,-647 274,-647 274,-647 260.183,-638.483 244.571,-628.859"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="246.139,-625.714 235.79,-623.446 242.466,-631.673 246.139,-625.714"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge39" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M530.443,-512.446C521.158,-512.745 511.225,-512.824 501.602,-512.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-509.175 491.327,-512.438 501.242,-516.173 501.407,-509.175"/>
+</g>
+<!-- 6,3 -->
+<g id="node42" class="node"><title>6,3</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-410" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-421.167" font-family="Times Roman,serif" font-size="10.00">6,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-402 675,-416 720,-416 720,-402 675,-402"/>
+<text text-anchor="start" x="681" y="-406.667" font-family="Times Roman,serif" font-size="10.00">CGCAT</text>
+<polygon fill="#218559" stroke="#218559" points="675,-388 675,-402 720,-402 720,-388 675,-388"/>
+<text text-anchor="start" x="681" y="-392.667" font-family="Times Roman,serif" font-size="10.00">ATGCG</text>
+</g>
+<!-- 2,4&#45;&gt;6,3 -->
+<g id="edge35" class="edge"><title>2,4&#45;&gt;6,3</title>
+<path fill="none" stroke="#dd1e2f" d="M607.817,-484.447C622.387,-475.427 636,-467 636,-467 636,-467 647.721,-456.047 660.888,-443.744"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="663.369,-446.216 668.286,-436.831 658.59,-441.101 663.369,-446.216"/>
+</g>
+<!-- 5,1 -->
+<g id="node30" class="node"><title>5,1</title>
+<ellipse fill="none" stroke="black" cx="821" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="801.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">5,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="799,-44 799,-58 844,-58 844,-44 799,-44"/>
+<text text-anchor="start" x="803.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">AGGAG</text>
+<polygon fill="#218559" stroke="#218559" points="799,-30 799,-44 844,-44 844,-30 799,-30"/>
+<text text-anchor="start" x="806" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">CTCCT</text>
+</g>
+<!-- 5,2 -->
+<g id="node31" class="node"><title>5,2</title>
+<ellipse fill="none" stroke="black" cx="945" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="925.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">5,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="923,-44 923,-58 968,-58 968,-44 923,-44"/>
+<text text-anchor="start" x="928.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">GGAGT</text>
+<polygon fill="#218559" stroke="#218559" points="923,-30 923,-44 968,-44 968,-30 923,-30"/>
+<text text-anchor="start" x="929.5" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">ACTCC</text>
+</g>
+<!-- 5,1&#45;&gt;5,2 -->
+<g id="edge113" class="edge"><title>5,1&#45;&gt;5,2</title>
+<path fill="none" stroke="#dd1e2f" d="M863.327,-45.5616C872.601,-45.2583 882.531,-45.1764 892.159,-45.3159"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="892.364,-48.8215 902.443,-45.5541 892.527,-41.8234 892.364,-48.8215"/>
+</g>
+<!-- 4,2 -->
+<g id="node36" class="node"><title>4,2</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-148" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">4,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-140 675,-154 720,-154 720,-140 675,-140"/>
+<text text-anchor="start" x="681" y="-144.667" font-family="Times Roman,serif" font-size="10.00">TAGGA</text>
+<polygon fill="#218559" stroke="#218559" points="675,-126 675,-140 720,-140 720,-126 675,-126"/>
+<text text-anchor="start" x="682.5" y="-130.667" font-family="Times Roman,serif" font-size="10.00">TCCTA</text>
+</g>
+<!-- 5,1&#45;&gt;4,2 -->
+<g id="edge115" class="edge"><title>5,1&#45;&gt;4,2</title>
+<path fill="none" stroke="#218559" d="M790.857,-77.6953C775.489,-90.7961 760,-104 760,-104 760,-104 750.399,-110.705 738.693,-118.881"/>
+<polygon fill="#218559" stroke="#218559" points="736.539,-116.116 730.345,-124.712 740.547,-121.855 736.539,-116.116"/>
+</g>
+<!-- 5,2&#45;&gt;5,1 -->
+<g id="edge119" class="edge"><title>5,2&#45;&gt;5,1</title>
+<path fill="none" stroke="#218559" d="M902.443,-58.4459C893.158,-58.7455 883.225,-58.8237 873.602,-58.6806"/>
+<polygon fill="#218559" stroke="#218559" points="873.407,-55.1751 863.327,-58.4384 873.242,-62.1732 873.407,-55.1751"/>
+</g>
+<!-- 5,3 -->
+<g id="node32" class="node"><title>5,3</title>
+<ellipse fill="none" stroke="black" cx="1069" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1049.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">5,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1047,-44 1047,-58 1092,-58 1092,-44 1047,-44"/>
+<text text-anchor="start" x="1053.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">GAGTT</text>
+<polygon fill="#218559" stroke="#218559" points="1047,-30 1047,-44 1092,-44 1092,-30 1047,-30"/>
+<text text-anchor="start" x="1053.5" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">AACTC</text>
+</g>
+<!-- 5,2&#45;&gt;5,3 -->
+<g id="edge117" class="edge"><title>5,2&#45;&gt;5,3</title>
+<path fill="none" stroke="#dd1e2f" d="M987.327,-45.5616C996.601,-45.2583 1006.53,-45.1764 1016.16,-45.3159"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1016.36,-48.8215 1026.44,-45.5541 1016.53,-41.8234 1016.36,-48.8215"/>
+</g>
+<!-- 5,3&#45;&gt;5,2 -->
+<g id="edge125" class="edge"><title>5,3&#45;&gt;5,2</title>
+<path fill="none" stroke="#218559" d="M1026.44,-58.4459C1017.16,-58.7455 1007.23,-58.8237 997.602,-58.6806"/>
+<polygon fill="#218559" stroke="#218559" points="997.407,-55.1751 987.327,-58.4384 997.242,-62.1732 997.407,-55.1751"/>
+</g>
+<!-- 5,4 -->
+<g id="node33" class="node"><title>5,4</title>
+<ellipse fill="none" stroke="black" cx="1193" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1173.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">5,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1171,-44 1171,-58 1216,-58 1216,-44 1171,-44"/>
+<text text-anchor="start" x="1177.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">AGTTG</text>
+<polygon fill="#218559" stroke="#218559" points="1171,-30 1171,-44 1216,-44 1216,-30 1171,-30"/>
+<text text-anchor="start" x="1177" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">CAACT</text>
+</g>
+<!-- 5,3&#45;&gt;5,4 -->
+<g id="edge121" class="edge"><title>5,3&#45;&gt;5,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1111.33,-45.5616C1120.6,-45.2583 1130.53,-45.1764 1140.16,-45.3159"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1140.36,-48.8215 1150.44,-45.5541 1140.53,-41.8234 1140.36,-48.8215"/>
+</g>
+<!-- 4,4 -->
+<g id="node38" class="node"><title>4,4</title>
+<ellipse fill="none" stroke="black" cx="945" cy="-148" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="925.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">4,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="923,-140 923,-154 968,-154 968,-140 923,-140"/>
+<text text-anchor="start" x="928.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">GGAGT</text>
+<polygon fill="#218559" stroke="#218559" points="923,-126 923,-140 968,-140 968,-126 923,-126"/>
+<text text-anchor="start" x="929.5" y="-130.667" font-family="Times Roman,serif" font-size="10.00">ACTCC</text>
+</g>
+<!-- 5,3&#45;&gt;4,4 -->
+<g id="edge123" class="edge"><title>5,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#218559" d="M1041.36,-80.0975C1025.22,-96.502 1008,-114 1008,-114 1008,-114 1000.24,-118.188 990.168,-123.624"/>
+<polygon fill="#218559" stroke="#218559" points="988.42,-120.59 981.282,-128.419 991.745,-126.75 988.42,-120.59"/>
+</g>
+<!-- 5,4&#45;&gt;5,3 -->
+<g id="edge127" class="edge"><title>5,4&#45;&gt;5,3</title>
+<path fill="none" stroke="#218559" d="M1150.44,-58.4459C1141.16,-58.7455 1131.23,-58.8237 1121.6,-58.6806"/>
+<polygon fill="#218559" stroke="#218559" points="1121.41,-55.1751 1111.33,-58.4384 1121.24,-62.1732 1121.41,-55.1751"/>
+</g>
+<!-- 4,1&#45;&gt;3,2 -->
+<g id="edge43" class="edge"><title>4,1&#45;&gt;3,2</title>
+<path fill="none" stroke="#218559" d="M541.015,-172.762C525.051,-185.122 505.587,-200.19 488.68,-213.28"/>
+<polygon fill="#218559" stroke="#218559" points="486.376,-210.637 480.611,-219.527 490.661,-216.173 486.376,-210.637"/>
+</g>
+<!-- 4,1&#45;&gt;4,2 -->
+<g id="edge41" class="edge"><title>4,1&#45;&gt;4,2</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-141.562C624.601,-141.258 634.531,-141.176 644.159,-141.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-144.822 654.443,-141.554 644.527,-137.823 644.364,-144.822"/>
+</g>
+<!-- 4,2&#45;&gt;5,1 -->
+<g id="edge45" class="edge"><title>4,2&#45;&gt;5,1</title>
+<path fill="none" stroke="#dd1e2f" d="M728.611,-123.527C744.521,-111.21 763.976,-96.1473 780.924,-83.0268"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="783.251,-85.6517 789.015,-76.7624 778.965,-80.1166 783.251,-85.6517"/>
+</g>
+<!-- 4,2&#45;&gt;4,1 -->
+<g id="edge49" class="edge"><title>4,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#218559" d="M654.443,-154.446C645.158,-154.745 635.225,-154.824 625.602,-154.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-151.175 615.327,-154.438 625.242,-158.173 625.407,-151.175"/>
+</g>
+<!-- 4,2&#45;&gt;4,3 -->
+<g id="edge47" class="edge"><title>4,2&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M739.327,-141.562C748.601,-141.258 758.531,-141.176 768.159,-141.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="768.364,-144.822 778.443,-141.554 768.527,-137.823 768.364,-144.822"/>
+</g>
+<!-- 4,3&#45;&gt;3,4 -->
+<g id="edge53" class="edge"><title>4,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#218559" d="M789.015,-172.762C773.051,-185.122 753.587,-200.19 736.68,-213.28"/>
+<polygon fill="#218559" stroke="#218559" points="734.376,-210.637 728.611,-219.527 738.661,-216.173 734.376,-210.637"/>
+</g>
+<!-- 4,3&#45;&gt;4,2 -->
+<g id="edge55" class="edge"><title>4,3&#45;&gt;4,2</title>
+<path fill="none" stroke="#218559" d="M778.443,-154.446C769.158,-154.745 759.225,-154.824 749.602,-154.681"/>
+<polygon fill="#218559" stroke="#218559" points="749.407,-151.175 739.327,-154.438 749.242,-158.173 749.407,-151.175"/>
+</g>
+<!-- 4,3&#45;&gt;4,4 -->
+<g id="edge51" class="edge"><title>4,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M863.327,-141.562C872.601,-141.258 882.531,-141.176 892.159,-141.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="892.364,-144.822 902.443,-141.554 892.527,-137.823 892.364,-144.822"/>
+</g>
+<!-- 4,4&#45;&gt;5,3 -->
+<g id="edge57" class="edge"><title>4,4&#45;&gt;5,3</title>
+<path fill="none" stroke="#dd1e2f" d="M976.611,-123.527C992.521,-111.21 1011.98,-96.1473 1028.92,-83.0268"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1031.25,-85.6517 1037.02,-76.7624 1026.97,-80.1166 1031.25,-85.6517"/>
+</g>
+<!-- 4,4&#45;&gt;4,3 -->
+<g id="edge59" class="edge"><title>4,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M902.443,-154.446C893.158,-154.745 883.225,-154.824 873.602,-154.681"/>
+<polygon fill="#218559" stroke="#218559" points="873.407,-151.175 863.327,-154.438 873.242,-158.173 873.407,-151.175"/>
+</g>
+<!-- 6,1&#45;&gt;2,2 -->
+<g id="edge63" class="edge"><title>6,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M415.655,-433.288C400.544,-443.843 386,-454 386,-454 386,-454 375.378,-463.055 362.998,-473.608"/>
+<polygon fill="#218559" stroke="#218559" points="360.482,-471.154 355.143,-480.305 365.023,-476.481 360.482,-471.154"/>
+</g>
+<!-- 6,2 -->
+<g id="node41" class="node"><title>6,2</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-410" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-421.167" font-family="Times Roman,serif" font-size="10.00">6,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-402 551,-416 596,-416 596,-402 551,-402"/>
+<text text-anchor="start" x="555.5" y="-406.667" font-family="Times Roman,serif" font-size="10.00">GCGCA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-388 551,-402 596,-402 596,-388 551,-388"/>
+<text text-anchor="start" x="556.5" y="-392.667" font-family="Times Roman,serif" font-size="10.00">TGCGC</text>
+</g>
+<!-- 6,1&#45;&gt;6,2 -->
+<g id="edge61" class="edge"><title>6,1&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-403.562C500.601,-403.258 510.531,-403.176 520.159,-403.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-406.822 530.443,-403.554 520.527,-399.823 520.364,-406.822"/>
+</g>
+<!-- 6,2&#45;&gt;6,1 -->
+<g id="edge67" class="edge"><title>6,2&#45;&gt;6,1</title>
+<path fill="none" stroke="#218559" d="M530.443,-416.446C521.158,-416.745 511.225,-416.824 501.602,-416.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-413.175 491.327,-416.438 501.242,-420.173 501.407,-413.175"/>
+</g>
+<!-- 6,2&#45;&gt;6,3 -->
+<g id="edge65" class="edge"><title>6,2&#45;&gt;6,3</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-403.562C624.601,-403.258 634.531,-403.176 644.159,-403.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-406.822 654.443,-403.554 644.527,-399.823 644.364,-406.822"/>
+</g>
+<!-- 6,3&#45;&gt;2,4 -->
+<g id="edge71" class="edge"><title>6,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M665.015,-434.762C649.051,-447.122 629.587,-462.19 612.68,-475.28"/>
+<polygon fill="#218559" stroke="#218559" points="610.376,-472.637 604.611,-481.527 614.661,-478.173 610.376,-472.637"/>
+</g>
+<!-- 6,3&#45;&gt;6,2 -->
+<g id="edge73" class="edge"><title>6,3&#45;&gt;6,2</title>
+<path fill="none" stroke="#218559" d="M654.443,-416.446C645.158,-416.745 635.225,-416.824 625.602,-416.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-413.175 615.327,-416.438 625.242,-420.173 625.407,-413.175"/>
+</g>
+<!-- 6,4 -->
+<g id="node43" class="node"><title>6,4</title>
+<ellipse fill="none" stroke="black" cx="821" cy="-410" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="801.5" y="-421.167" font-family="Times Roman,serif" font-size="10.00">6,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="799,-402 799,-416 844,-416 844,-402 799,-402"/>
+<text text-anchor="start" x="806" y="-406.667" font-family="Times Roman,serif" font-size="10.00">GCATT</text>
+<polygon fill="#218559" stroke="#218559" points="799,-388 799,-402 844,-402 844,-388 799,-388"/>
+<text text-anchor="start" x="805" y="-392.667" font-family="Times Roman,serif" font-size="10.00">AATGC</text>
+</g>
+<!-- 6,3&#45;&gt;6,4 -->
+<g id="edge69" class="edge"><title>6,3&#45;&gt;6,4</title>
+<path fill="none" stroke="#dd1e2f" d="M739.327,-403.562C748.601,-403.258 758.531,-403.176 768.159,-403.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="768.364,-406.822 778.443,-403.554 768.527,-399.823 768.364,-406.822"/>
+</g>
+<!-- 6,4&#45;&gt;6,3 -->
+<g id="edge75" class="edge"><title>6,4&#45;&gt;6,3</title>
+<path fill="none" stroke="#218559" d="M778.443,-416.446C769.158,-416.745 759.225,-416.824 749.602,-416.681"/>
+<polygon fill="#218559" stroke="#218559" points="749.407,-413.175 739.327,-416.438 749.242,-420.173 749.407,-413.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/.part-0.crc
new file mode 100644
index 0000000..2372965
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/.part-1.crc
new file mode 100644
index 0000000..dc540d5
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/part-0
new file mode 100755
index 0000000..f05a165
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/part-1
new file mode 100755
index 0000000..54201ec
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/synthetic/walk_random_seq2/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip.txt b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip.txt
new file mode 100644
index 0000000..84f6828
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip.txt
@@ -0,0 +1,6 @@
+((2,1)	[(2,3)]	[]	[]	[]	GGAATA)	(null)
+((2,3)	[(2,4)]	[]	[]	[(2,1)]	AATAC)	(null)
+((2,4)	[]	[(1,2)]	[]	[(2,3)]	ATACG)	(null)
+((1,1)	[(1,2)]	[]	[]	[]	AACGT)	(null)
+((1,2)	[(1,3)]	[(2,4)]	[]	[(1,1)]	ACGTA)	(null)
+((1,3)	[]	[]	[]	[(1,2)]	CGTATA)	(null)
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip.txt.svg b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip.txt.svg
new file mode 100644
index 0000000..9f13c3f
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip.txt.svg
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: fr_with_tip_txt Pages: 1 -->
+<svg width="640pt" height="417pt"
+ viewBox="0.00 0.00 640.00 417.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 413)">
+<title>fr_with_tip_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-413 637,-413 637,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="274,-313 274,-401 624,-401 624,-313 274,-313"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-349 303,-363 348,-363 348,-349 303,-349"/>
+<text text-anchor="start" x="309" y="-353.667" font-family="Times Roman,serif" font-size="10.00">AACGT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-335 303,-349 348,-349 348,-335 303,-335"/>
+<text text-anchor="start" x="310" y="-339.667" font-family="Times Roman,serif" font-size="10.00">ACGTT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-349 427,-363 472,-363 472,-349 427,-349"/>
+<text text-anchor="start" x="433.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+<polygon fill="#218559" stroke="#218559" points="427,-335 427,-349 472,-349 472,-335 427,-335"/>
+<text text-anchor="start" x="434" y="-339.667" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge23" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-350.562C376.601,-350.258 386.531,-350.176 396.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-353.822 406.443,-350.554 396.527,-346.823 396.364,-353.822"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge29" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-363.446C397.158,-363.745 387.225,-363.824 377.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-360.175 367.327,-363.438 377.242,-367.173 377.407,-360.175"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-349 551,-363 596,-363 596,-349 551,-349"/>
+<text text-anchor="start" x="555.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">CGTATA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-335 551,-349 596,-349 596,-335 551,-335"/>
+<text text-anchor="start" x="555.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">TATACG</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge25" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-350.562C500.601,-350.258 510.531,-350.176 520.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-353.822 530.443,-350.554 520.527,-346.823 520.364,-353.822"/>
+</g>
+<!-- 2,4 -->
+<g id="node21" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="309.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="310.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 1,2&#45;&gt;2,4 -->
+<g id="edge27" class="edge"><title>1,2&#45;&gt;2,4</title>
+<path fill="none" stroke="#ebb035" d="M415.655,-333.712C400.544,-323.157 386,-313 386,-313 386,-313 375.378,-303.945 362.998,-293.392"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="365.023,-290.519 355.143,-286.695 360.482,-295.846 365.023,-290.519"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge31" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-363.446C521.158,-363.745 511.225,-363.824 501.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-360.175 491.327,-363.438 501.242,-367.173 501.407,-360.175"/>
+</g>
+<!-- 2,1 -->
+<g id="node19" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="39.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">GGAATA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="42.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TATTCC</text>
+</g>
+<!-- 2,3 -->
+<g id="node20" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="186" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="187.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 2,1&#45;&gt;2,3 -->
+<g id="edge13" class="edge"><title>2,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 2,3&#45;&gt;2,1 -->
+<g id="edge17" class="edge"><title>2,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge15" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 2,4&#45;&gt;1,2 -->
+<g id="edge19" class="edge"><title>2,4&#45;&gt;1,2</title>
+<path fill="none" stroke="#ebb035" d="M356.611,-285.473C372.521,-297.79 391.976,-312.853 408.924,-325.973"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="406.965,-328.883 417.015,-332.238 411.251,-323.348 406.965,-328.883"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge21" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/.part-0.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/.part-0.crc
new file mode 100644
index 0000000..35486b9
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/.part-1.crc b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/.part-1.crc
new file mode 100644
index 0000000..53a0483
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/part-0 b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/part-0
new file mode 100755
index 0000000..6077d6e
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/part-0
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/part-1 b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/part-1
new file mode 100755
index 0000000..5e8d3f9
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/graphs/tipremove/fr_with_tip/part-1
Binary files differ
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/five_ff_bubbles.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/five_ff_bubbles.txt
new file mode 100644
index 0000000..63a8e55
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/five_ff_bubbles.txt
@@ -0,0 +1,4 @@
+1	ACGTCCTT
+2	CGTCCTTA
+3	GTCCTTAG
+4	GTCCTTAG
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/five_length1_bubbles.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/five_length1_bubbles.txt
new file mode 100644
index 0000000..13190dd
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/five_length1_bubbles.txt
@@ -0,0 +1,6 @@
+1	AATAGAAG
+2	AATAGAAG
+3	AATAGAAG
+4	AATAGAAG
+5	AATAGAAG
+6	AGAAGAAG
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/fr_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/fr_bubble.txt
new file mode 100644
index 0000000..4026c2c
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/fr_bubble.txt
@@ -0,0 +1,2 @@
+1	AAACGTAT
+2	GGAATACG
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/fr_bubble_and_ff_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/fr_bubble_and_ff_bubble.txt
new file mode 100644
index 0000000..e166418
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/fr_bubble_and_ff_bubble.txt
@@ -0,0 +1,3 @@
+1	AAACGTAT
+2	CGTATTCC
+3	GGAATACG
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/rf_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/rf_bubble.txt
new file mode 100644
index 0000000..154dc8c
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/rf_bubble.txt
@@ -0,0 +1,3 @@
+1	ACGGTGTA
+2	ACCGTGGT
+
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/small_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/small_bubble.txt
new file mode 100644
index 0000000..3e3bf7b
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/small_bubble.txt
@@ -0,0 +1,2 @@
+1	AATAGAAG
+2	AGAAGCCC
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/tip_and_bubble.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/tip_and_bubble.txt
new file mode 100644
index 0000000..958ccff
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/bubblemerge/tip_and_bubble.txt
@@ -0,0 +1,3 @@
+1	AATAGAAG
+2	ATAGACTA
+3	TAGACTAC
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/pathmerge/singleread.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/pathmerge/singleread.txt
new file mode 100644
index 0000000..63a95ad
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/pathmerge/singleread.txt
@@ -0,0 +1 @@
+1	AATAGAAG
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/synthetic/walk_random_seq1.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/synthetic/walk_random_seq1.txt
new file mode 100644
index 0000000..35f1c49
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/synthetic/walk_random_seq1.txt
@@ -0,0 +1,37 @@
+1	TAGTGCGA
+2	CCTCGCAC
+3	GCTAGGGT
+4	GAGGGTTG
+5	AGCAACCC
+6	GTTGCTGA
+7	TTTCAGCA
+8	CTGAAATC
+9	CAGATTTC
+10	GGCAGATT
+11	CTGGCAGA
+12	CTCTGGCA
+13	ATCTCTGG
+14	GCATCTCT
+15	CGGCATCT
+16	AACGGCAT
+17	GAAACGGC
+18	CGTTTCAA
+19	TATTGAAA
+20	TCAATACG
+21	AATACGTG
+22	TACGTGAA
+23	GTTTCACG
+24	TGAAACTA
+25	AAACTATT
+26	GTAATAGT
+27	TATTACGT
+28	TTACGTCA
+29	CATGACGT
+30	GTCATGAC
+31	GCGTCATG
+32	AAGCGTCA
+33	TCGCTTAA
+34	GCTTAAGC
+35	TCGCTTAA
+36	AAGCGTGT
+37	CCACACGC
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/synthetic/walk_random_seq2.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/synthetic/walk_random_seq2.txt
new file mode 100644
index 0000000..d65f7c0
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/synthetic/walk_random_seq2.txt
@@ -0,0 +1,6 @@
+1	AATGCGCT
+2	CTAGCGCA
+3	CGCTAGGA
+4	CTAGGAGT
+5	AGGAGTTG
+6	AGCGCATT
diff --git a/genomix/genomix-hadoop/src/test/resources/input/reads/tipremove/fr_with_tip.txt b/genomix/genomix-hadoop/src/test/resources/input/reads/tipremove/fr_with_tip.txt
new file mode 100644
index 0000000..b6e1640
--- /dev/null
+++ b/genomix/genomix-hadoop/src/test/resources/input/reads/tipremove/fr_with_tip.txt
@@ -0,0 +1,2 @@
+1	AACGTATA
+2	GGAATACG
diff --git a/genomix/genomix-hyracks/HyracksCodeFormatProfile.xml b/genomix/genomix-hyracks/HyracksCodeFormatProfile.xml
new file mode 100644
index 0000000..733ca5c
--- /dev/null
+++ b/genomix/genomix-hyracks/HyracksCodeFormatProfile.xml
@@ -0,0 +1,784 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profiles version="11">
+	<profile kind="CodeFormatterProfile" name="HyracksCodeFormatProfile"
+		version="11">
+		<setting
+			id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.formatter.disabling_tag"
+			value="@formatter:off" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration"
+			value="end_of_line" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field"
+			value="0" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line"
+			value="false" />
+		<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression"
+			value="80" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer"
+			value="end_of_line" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package"
+			value="1" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.formatter.continuation_indentation"
+			value="2" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk"
+			value="1" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package"
+			value="0" />
+		<setting id="org.eclipse.jdt.core.compiler.source" value="1.5" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type"
+			value="1" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.align_type_members_on_columns"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment"
+			value="false" />
+		<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration"
+			value="0" />
+		<setting id="org.eclipse.jdt.core.formatter.indentation.size"
+			value="4" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.enabling_tag"
+			value="@formatter:on" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration"
+			value="16" />
+		<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment"
+			value="0" />
+		<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier"
+			value="error" />
+		<setting id="org.eclipse.jdt.core.formatter.tabulation.char"
+			value="space" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body"
+			value="true" />
+		<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method"
+			value="1" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration"
+			value="end_of_line" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration"
+			value="0" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch"
+			value="end_of_line" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier"
+			value="error" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch"
+			value="true" />
+		<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block"
+			value="end_of_line" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration"
+			value="end_of_line" />
+		<setting id="org.eclipse.jdt.core.formatter.compact_else_if"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant"
+			value="end_of_line" />
+		<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.tabulation.size"
+			value="4" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case"
+			value="end_of_line" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve"
+			value="1" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression"
+			value="16" />
+		<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.5" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer"
+			value="2" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration"
+			value="end_of_line" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode"
+			value="enabled" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line"
+			value="false" />
+		<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant"
+			value="48" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments"
+			value="true" />
+		<setting id="org.eclipse.jdt.core.formatter.comment.line_length"
+			value="9999" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups"
+			value="1" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration"
+			value="end_of_line" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body"
+			value="0" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations"
+			value="1" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration"
+			value="16" />
+		<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports"
+			value="1" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.formatter.comment.format_html"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration"
+			value="16" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform"
+			value="1.5" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation"
+			value="0" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member"
+			value="insert" />
+		<setting id="org.eclipse.jdt.core.formatter.comment.format_header"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.comment.format_block_comments"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant"
+			value="do not insert" />
+		<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants"
+			value="49" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration"
+			value="end_of_line" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries"
+			value="true" />
+		<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports"
+			value="1" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header"
+			value="true" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for"
+			value="insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments"
+			value="do not insert" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column"
+			value="false" />
+		<setting
+			id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line"
+			value="false" />
+	</profile>
+</profiles>
diff --git a/genomix/genomix-hyracks/pom.xml b/genomix/genomix-hyracks/pom.xml
new file mode 100644
index 0000000..69d5839
--- /dev/null
+++ b/genomix/genomix-hyracks/pom.xml
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>genomix-hyracks</artifactId>
+	<name>genomix-hyracks</name>
+
+	<parent>
+		<groupId>edu.uci.ics.hyracks</groupId>
+		<artifactId>genomix</artifactId>
+		<version>0.2.6-SNAPSHOT</version>
+	</parent>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.0.2</version>
+				<configuration>
+					<source>1.7</source>
+					<target>1.7</target>
+					<fork>true</fork>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>appassembler-maven-plugin</artifactId>
+				<executions>
+					<execution>
+						<configuration>
+							<programs>
+								<program>
+									<mainClass>edu.uci.ics.genomix.hyracks.driver.Driver</mainClass>
+									<name>genomix</name>
+								</program>
+								<program>
+									<mainClass>edu.uci.ics.hyracks.control.cc.CCDriver</mainClass>
+									<name>genomixcc</name>
+								</program>
+								<program>
+									<mainClass>edu.uci.ics.hyracks.control.nc.NCDriver</mainClass>
+									<name>genomixnc</name>
+								</program>
+							</programs>
+							<repositoryLayout>flat</repositoryLayout>
+							<repositoryName>lib</repositoryName>
+						</configuration>
+						<phase>package</phase>
+						<goals>
+							<goal>assemble</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<version>2.2-beta-5</version>
+				<configuration>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+				<executions>
+					<execution>
+						<configuration>
+							<descriptors>
+								<descriptor>src/main/assembly/binary-assembly.xml</descriptor>
+							</descriptors>
+						</configuration>
+						<phase>package</phase>
+						<goals>
+							<goal>attached</goal>
+						</goals>
+					</execution>
+					<execution>
+						<id>make-my-jar-with-dependencies</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>2.7.2</version>
+				<configuration>
+					<forkMode>pertest</forkMode>
+					<argLine>-enableassertions -Xmx512m -XX:MaxPermSize=300m
+						-Dfile.encoding=UTF-8
+						-Djava.util.logging.config.file=src/test/resources/logging.properties</argLine>
+					<includes>
+						<include>**/*TestSuite.java</include>
+						<include>**/*Test.java</include>
+					</includes>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-clean-plugin</artifactId>
+				<configuration>
+					<filesets>
+						<fileset>
+							<directory>.</directory>
+							<includes>
+								<include>teststore*</include>
+								<include>edu*</include>
+								<include>actual*</include>
+								<include>build*</include>
+								<include>expect*</include>
+								<include>ClusterController*</include>
+							</includes>
+						</fileset>
+					</filesets>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-resources-plugin</artifactId>
+				<version>2.5</version>
+				<executions>
+					<execution>
+						<id>copy-scripts</id>
+						<!-- here the phase you need -->
+						<phase>package</phase>
+						<goals>
+							<goal>copy-resources</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>target/appassembler/bin</outputDirectory>
+							<resources>
+								<resource>
+									<directory>src/main/resources/scripts</directory>
+								</resource>
+							</resources>
+						</configuration>
+					</execution>
+					<execution>
+						<id>copy-conf</id>
+						<!-- here the phase you need -->
+						<phase>package</phase>
+						<goals>
+							<goal>copy-resources</goal>
+						</goals>
+						<configuration>
+							<outputDirectory>target/appassembler/conf</outputDirectory>
+							<resources>
+								<resource>
+									<directory>src/main/resources/conf</directory>
+								</resource>
+							</resources>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-resources-plugin</artifactId>
+				<version>2.6</version>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.8.1</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-dataflow-std</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-api</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-dataflow-common</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-data-std</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-control-cc</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-control-nc</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.kenai.nbpwr</groupId>
+			<artifactId>org-apache-commons-io</artifactId>
+			<version>1.3.1-201002241208</version>
+			<type>nbm</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks.examples</groupId>
+			<artifactId>hyracks-integration-tests</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-ipc</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.hadoop</groupId>
+			<artifactId>hadoop-core</artifactId>
+			<version>0.20.2</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.hadoop</groupId>
+			<artifactId>hadoop-test</artifactId>
+			<version>0.20.2</version>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-hdfs-core</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-hdfs-core</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>genomix-data</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+
+	</dependencies>
+</project>
diff --git a/genomix/genomix-hyracks/src/main/assembly/binary-assembly.xml b/genomix/genomix-hyracks/src/main/assembly/binary-assembly.xml
new file mode 100644
index 0000000..68d424a
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/assembly/binary-assembly.xml
@@ -0,0 +1,19 @@
+<assembly>
+	<id>binary-assembly</id>
+	<formats>
+		<format>zip</format>
+		<format>dir</format>
+	</formats>
+	<includeBaseDirectory>false</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>target/appassembler/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+		</fileSet>
+		<fileSet>
+			<directory>target/appassembler/lib</directory>
+			<outputDirectory>lib</outputDirectory>
+		</fileSet>
+	</fileSets>
+</assembly>
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/ByteSerializerDeserializer.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/ByteSerializerDeserializer.java
new file mode 100644
index 0000000..257d5a3
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/ByteSerializerDeserializer.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.data.accessors;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+
+public class ByteSerializerDeserializer implements ISerializerDeserializer<Byte> {
+
+    private static final long serialVersionUID = 1L;
+
+    public static final ByteSerializerDeserializer INSTANCE = new ByteSerializerDeserializer();
+
+    private ByteSerializerDeserializer() {
+    }
+
+    @Override
+    public Byte deserialize(DataInput in) throws HyracksDataException {
+        try {
+            return in.readByte();
+        } catch (IOException e) {
+            throw new HyracksDataException(e);
+        }
+    }
+
+    @Override
+    public void serialize(Byte instance, DataOutput out) throws HyracksDataException {
+        try {
+            out.writeByte(instance.intValue());
+        } catch (IOException e) {
+            throw new HyracksDataException(e);
+        }
+    }
+
+    public static byte getByte(byte[] bytes, int offset) {
+        return bytes[offset];
+    }
+
+    public static void putByte(byte val, byte[] bytes, int offset) {
+        bytes[offset] = val;
+    }
+
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/KmerBinaryHashFunctionFamily.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/KmerBinaryHashFunctionFamily.java
new file mode 100644
index 0000000..130d5ab
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/KmerBinaryHashFunctionFamily.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.data.accessors;
+
+import edu.uci.ics.genomix.hyracks.data.primitive.KmerPointable;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunction;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFamily;
+
+public class KmerBinaryHashFunctionFamily implements IBinaryHashFunctionFamily {
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public IBinaryHashFunction createBinaryHashFunction(final int seed) {
+
+        return new IBinaryHashFunction() {
+            private KmerPointable p = new KmerPointable();
+
+            @Override
+            public int hash(byte[] bytes, int offset, int length) {
+                if (length + offset >= bytes.length)
+                    throw new IllegalStateException("out of bound");
+                p.set(bytes, offset, length);
+                int hash = p.hash() * (seed + 1);
+                if (hash < 0) {
+                    hash = -(hash + 1);
+                }
+                return hash;
+            }
+        };
+    }
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/KmerHashPartitioncomputerFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/KmerHashPartitioncomputerFactory.java
new file mode 100644
index 0000000..f8d4f84
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/KmerHashPartitioncomputerFactory.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.data.accessors;
+
+import java.nio.ByteBuffer;
+
+import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputerFactory;
+
+public class KmerHashPartitioncomputerFactory implements ITuplePartitionComputerFactory {
+
+    private static final long serialVersionUID = 1L;
+
+    public static int hashBytes(byte[] bytes, int offset, int length) {
+        int hash = 1;
+        for (int i = offset; i < offset + length; i++)
+            hash = (31 * hash) + (int) bytes[i];
+        return hash;
+    }
+
+    @Override
+    public ITuplePartitionComputer createPartitioner() {
+        return new ITuplePartitionComputer() {
+            @Override
+            public int partition(IFrameTupleAccessor accessor, int tIndex, int nParts) {
+                int startOffset = accessor.getTupleStartOffset(tIndex);
+                int fieldOffset = accessor.getFieldStartOffset(tIndex, 0);
+                int slotLength = accessor.getFieldSlotsLength();
+                int fieldLength = accessor.getFieldLength(tIndex, 0);
+
+                ByteBuffer buf = accessor.getBuffer();
+
+                int hash = hashBytes(buf.array(), startOffset + fieldOffset + slotLength, fieldLength);
+                if (hash < 0) {
+                    hash = -(hash + 1);
+                }
+
+                return hash % nParts;
+            }
+        };
+    }
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/KmerNormarlizedComputerFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/KmerNormarlizedComputerFactory.java
new file mode 100644
index 0000000..7dd3b14
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/KmerNormarlizedComputerFactory.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.data.accessors;
+
+import edu.uci.ics.genomix.hyracks.data.primitive.KmerPointable;
+import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
+
+public class KmerNormarlizedComputerFactory implements INormalizedKeyComputerFactory {
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public INormalizedKeyComputer createNormalizedKeyComputer() {
+        return new INormalizedKeyComputer() {
+            /**
+             * read one int from Kmer, make sure this int is consistent whith Kmer compartor
+             */
+            @Override
+            public int normalize(byte[] bytes, int start, int length) {
+                return KmerPointable.getIntReverse(bytes, start, length);
+            }
+        };
+    }
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/ReadIDPartitionComputerFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/ReadIDPartitionComputerFactory.java
new file mode 100644
index 0000000..6773a73
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/accessors/ReadIDPartitionComputerFactory.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.data.accessors;
+
+import java.nio.ByteBuffer;
+
+import edu.uci.ics.genomix.data.Marshal;
+import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputerFactory;
+
+public class ReadIDPartitionComputerFactory implements ITuplePartitionComputerFactory {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public ITuplePartitionComputer createPartitioner() {
+        return new ITuplePartitionComputer() {
+            @Override
+            public int partition(IFrameTupleAccessor accessor, int tIndex, int nParts) {
+                int startOffset = accessor.getTupleStartOffset(tIndex);
+                int fieldOffset = accessor.getFieldStartOffset(tIndex, 0);
+                int slotLength = accessor.getFieldSlotsLength();
+
+                ByteBuffer buf = accessor.getBuffer();
+
+                int hash = Marshal.getInt(buf.array(), startOffset + fieldOffset + slotLength);
+                if (hash < 0) {
+                    hash = -(hash + 1);
+                }
+
+                return hash % nParts;
+            }
+        };
+    }
+
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/primitive/KmerPointable.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/primitive/KmerPointable.java
new file mode 100644
index 0000000..0457de9
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/data/primitive/KmerPointable.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.data.primitive;
+
+import edu.uci.ics.genomix.hyracks.data.accessors.KmerHashPartitioncomputerFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.ITypeTraits;
+import edu.uci.ics.hyracks.data.std.api.AbstractPointable;
+import edu.uci.ics.hyracks.data.std.api.IComparable;
+import edu.uci.ics.hyracks.data.std.api.IHashable;
+import edu.uci.ics.hyracks.data.std.api.INumeric;
+import edu.uci.ics.hyracks.data.std.api.IPointable;
+import edu.uci.ics.hyracks.data.std.api.IPointableFactory;
+
+public final class KmerPointable extends AbstractPointable implements IHashable, IComparable, INumeric {
+    public static final ITypeTraits TYPE_TRAITS = new ITypeTraits() {
+        private static final long serialVersionUID = 1L;
+
+        @Override
+        public boolean isFixedLength() {
+            return false;
+        }
+
+        @Override
+        public int getFixedLength() {
+            return -1;
+        }
+    };
+
+    public static final IPointableFactory FACTORY = new IPointableFactory() {
+        private static final long serialVersionUID = 1L;
+
+        @Override
+        public IPointable createPointable() {
+            return new KmerPointable();
+        }
+
+        @Override
+        public ITypeTraits getTypeTraits() {
+            return TYPE_TRAITS;
+        }
+    };
+
+    public static short getShortReverse(byte[] bytes, int offset, int length) {
+        if (length < 2) {
+            return (short) (bytes[offset] & 0xff);
+        }
+        return (short) (((bytes[offset + length - 1] & 0xff) << 8) + (bytes[offset + length - 2] & 0xff));
+    }
+
+    public static int getIntReverse(byte[] bytes, int offset, int length) {
+        int shortValue = getShortReverse(bytes, offset, length) & 0xffff;
+
+        if (length < 3) {
+            return shortValue;
+        }
+        if (length == 3) {
+            return (((bytes[offset + 2] & 0xff) << 16) + ((bytes[offset + 1] & 0xff) << 8) + ((bytes[offset] & 0xff)));
+        }
+        return ((bytes[offset + length - 1] & 0xff) << 24) + ((bytes[offset + length - 2] & 0xff) << 16)
+                + ((bytes[offset + length - 3] & 0xff) << 8) + ((bytes[offset + length - 4] & 0xff) << 0);
+    }
+
+    public static long getLongReverse(byte[] bytes, int offset, int length) {
+        if (length < 8) {
+            return ((long) getIntReverse(bytes, offset, length)) & 0x0ffffffffL;
+        }
+        return (((long) (bytes[offset + length - 1] & 0xff)) << 56)
+                + (((long) (bytes[offset + length - 2] & 0xff)) << 48)
+                + (((long) (bytes[offset + length - 3] & 0xff)) << 40)
+                + (((long) (bytes[offset + length - 4] & 0xff)) << 32)
+                + (((long) (bytes[offset + length - 5] & 0xff)) << 24)
+                + (((long) (bytes[offset + length - 6] & 0xff)) << 16)
+                + (((long) (bytes[offset + length - 7] & 0xff)) << 8) + (((long) (bytes[offset + length - 8] & 0xff)));
+    }
+
+    @Override
+    public int compareTo(IPointable pointer) {
+        return compareTo(pointer.getByteArray(), pointer.getStartOffset(), pointer.getLength());
+    }
+
+    @Override
+    public int compareTo(byte[] bytes, int offset, int length) {
+
+        if (this.length != length) {
+            return this.length - length;
+        }
+        for (int i = length - 1; i >= 0; i--) {
+            int cmp = (this.bytes[this.start + i] & 0xff) - (bytes[offset + i] & 0xff);
+            if (cmp != 0) {
+                return cmp;
+            }
+        }
+
+        return 0;
+    }
+
+    @Override
+    public int hash() {
+        int hash = KmerHashPartitioncomputerFactory.hashBytes(bytes, start, length);
+        return hash;
+    }
+
+    @Override
+    public byte byteValue() {
+        return bytes[start + length - 1];
+    }
+
+    @Override
+    public short shortValue() {
+        return getShortReverse(bytes, start, length);
+    }
+
+    @Override
+    public int intValue() {
+        return getIntReverse(bytes, start, length);
+    }
+
+    @Override
+    public long longValue() {
+        return getLongReverse(bytes, start, length);
+    }
+
+    @Override
+    public float floatValue() {
+        return Float.intBitsToFloat(intValue());
+    }
+
+    @Override
+    public double doubleValue() {
+        return Double.longBitsToDouble(longValue());
+    }
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/AssembleKeyIntoNodeOperator.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/AssembleKeyIntoNodeOperator.java
new file mode 100644
index 0000000..f245c7a
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/AssembleKeyIntoNodeOperator.java
@@ -0,0 +1,161 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.dataflow;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.NodeWritable;
+
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.IOperatorNodePushable;
+import edu.uci.ics.hyracks.api.dataflow.value.IRecordDescriptorProvider;
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.api.job.IOperatorDescriptorRegistry;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAppender;
+import edu.uci.ics.hyracks.dataflow.common.comm.util.FrameUtils;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractSingleActivityOperatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractUnaryInputUnaryOutputOperatorNodePushable;
+
+public class AssembleKeyIntoNodeOperator extends AbstractSingleActivityOperatorDescriptor {
+
+    public AssembleKeyIntoNodeOperator(IOperatorDescriptorRegistry spec, RecordDescriptor outRecDesc, int kmerSize) {
+        super(spec, 1, 1);
+        recordDescriptors[0] = outRecDesc;
+        this.kmerSize = kmerSize;
+        KmerBytesWritable.setGlobalKmerLength(this.kmerSize);
+    }
+
+    private static final long serialVersionUID = 1L;
+    private final int kmerSize;
+
+    public static final int InputKmerField = 0;
+    public static final int InputtempNodeField = 1;
+    public static final int OutputNodeField = 0;
+
+    public static final RecordDescriptor nodeOutputRec = new RecordDescriptor(new ISerializerDeserializer[1]);
+
+    public class MapReadToNodePushable extends AbstractUnaryInputUnaryOutputOperatorNodePushable {
+        public static final int INT_LENGTH = 4;  
+        private final IHyracksTaskContext ctx;  
+        private final RecordDescriptor inputRecDesc; 
+        private final RecordDescriptor outputRecDesc; 
+
+        private FrameTupleAccessor accessor;
+        private ByteBuffer writeBuffer;
+        private ArrayTupleBuilder builder;
+        private FrameTupleAppender appender;
+        
+        NodeWritable readNode;
+        KmerBytesWritable readKmer;
+
+        public MapReadToNodePushable(IHyracksTaskContext ctx, RecordDescriptor inputRecDesc,
+                RecordDescriptor outputRecDesc) {
+            this.ctx = ctx;
+            this.inputRecDesc = inputRecDesc;
+            this.outputRecDesc = outputRecDesc;
+   
+            readNode = new NodeWritable();
+            readKmer = new KmerBytesWritable();            
+        }
+
+        @Override
+        public void open() throws HyracksDataException {
+            accessor = new FrameTupleAccessor(ctx.getFrameSize(), inputRecDesc);
+            writeBuffer = ctx.allocateFrame();
+            builder = new ArrayTupleBuilder(outputRecDesc.getFieldCount());
+            appender = new FrameTupleAppender(ctx.getFrameSize());
+            appender.reset(writeBuffer, true);
+            writer.open();
+        }
+
+        @Override
+        public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
+            accessor.reset(buffer);
+            int tupleCount = accessor.getTupleCount();
+            for (int i = 0; i < tupleCount; i++) {
+                generateNodeFromKmer(i);
+            }
+        }
+
+        private void generateNodeFromKmer(int tIndex) throws HyracksDataException {
+            int offsetPoslist = accessor.getTupleStartOffset(tIndex) + accessor.getFieldSlotsLength();
+            setKmer(readKmer, offsetPoslist + accessor.getFieldStartOffset(tIndex, InputKmerField));
+            readNode.reset();
+            setNode(readNode, offsetPoslist + accessor.getFieldStartOffset(tIndex, InputtempNodeField));
+            readNode.getKmer().setAsCopy(readKmer);
+            outputNode(readNode);
+        }
+
+
+        private void setKmer(KmerBytesWritable kmer, int offset) {
+            ByteBuffer buffer = accessor.getBuffer();
+            kmer.setAsCopy(buffer.array(), offset);
+        }
+
+        private void setNode(NodeWritable node, int offset) {
+            ByteBuffer buffer = accessor.getBuffer();
+            node.setAsCopy(buffer.array(), offset);
+        }
+
+
+        private void outputNode(NodeWritable node) throws HyracksDataException {
+
+            try {
+                builder.reset();
+                builder.addField(node.marshalToByteArray(), 0, node.getSerializedLength());
+
+                if (!appender.append(builder.getFieldEndOffsets(), builder.getByteArray(), 0, builder.getSize())) {
+                    FrameUtils.flushFrame(writeBuffer, writer);
+                    appender.reset(writeBuffer, true);
+                    if (!appender.append(builder.getFieldEndOffsets(), builder.getByteArray(), 0, builder.getSize())) {
+                        throw new IllegalStateException("Failed to append tuplebuilder to frame");
+                    }
+                }
+            } catch (IOException e) {
+                throw new IllegalStateException("Failed to Add a field to the tupleBuilder.");
+            }
+        }
+
+        @Override
+        public void fail() throws HyracksDataException {
+            writer.fail();
+        }
+
+        @Override
+        public void close() throws HyracksDataException {
+            if (appender.getTupleCount() > 0) {
+                FrameUtils.flushFrame(writeBuffer, writer);
+            }
+            writer.close();
+        }
+
+    }
+
+    @Override
+    public IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx,
+            IRecordDescriptorProvider recordDescProvider, int partition, int nPartitions) throws HyracksDataException {
+        return new MapReadToNodePushable(ctx, recordDescProvider.getInputRecordDescriptor(getActivityId(), 0),
+                recordDescriptors[0]);
+    }
+
+}
+
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ConnectorPolicyAssignmentPolicy.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ConnectorPolicyAssignmentPolicy.java
new file mode 100644
index 0000000..6919e76
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ConnectorPolicyAssignmentPolicy.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.dataflow;
+
+import edu.uci.ics.hyracks.api.dataflow.IConnectorDescriptor;
+import edu.uci.ics.hyracks.api.dataflow.connectors.IConnectorPolicy;
+import edu.uci.ics.hyracks.api.dataflow.connectors.IConnectorPolicyAssignmentPolicy;
+import edu.uci.ics.hyracks.api.dataflow.connectors.PipeliningConnectorPolicy;
+import edu.uci.ics.hyracks.api.dataflow.connectors.SendSideMaterializedPipeliningConnectorPolicy;
+import edu.uci.ics.hyracks.dataflow.std.connectors.MToNPartitioningMergingConnectorDescriptor;
+
+/**
+ * used by precluster groupby
+ */
+public class ConnectorPolicyAssignmentPolicy implements IConnectorPolicyAssignmentPolicy {
+    private static final long serialVersionUID = 1L;
+    private IConnectorPolicy senderSideMaterializePolicy = new SendSideMaterializedPipeliningConnectorPolicy();
+    private IConnectorPolicy pipeliningPolicy = new PipeliningConnectorPolicy();
+
+    @Override
+    public IConnectorPolicy getConnectorPolicyAssignment(IConnectorDescriptor c, int nProducers, int nConsumers,
+            int[] fanouts) {
+        if (c instanceof MToNPartitioningMergingConnectorDescriptor) {
+            return senderSideMaterializePolicy;
+        } else {
+            return pipeliningPolicy;
+        }
+    }
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java
new file mode 100644
index 0000000..572fb96
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java
@@ -0,0 +1,228 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.dataflow;
+
+import java.nio.ByteBuffer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
+
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.PositionListWritable;
+import edu.uci.ics.genomix.type.PositionWritable;
+
+import edu.uci.ics.hyracks.api.comm.IFrameWriter;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAppender;
+import edu.uci.ics.hyracks.dataflow.common.comm.util.FrameUtils;
+import edu.uci.ics.hyracks.hdfs.api.IKeyValueParser;
+import edu.uci.ics.hyracks.hdfs.api.IKeyValueParserFactory;
+
+public class ReadsKeyValueParserFactory implements IKeyValueParserFactory<LongWritable, Text> {
+    private static final long serialVersionUID = 1L;
+    private static final Log LOG = LogFactory.getLog(ReadsKeyValueParserFactory.class);
+
+    public static final int OutputKmerField = 0;
+    public static final int OutputNodeField = 1;
+
+    private final int readLength;
+    private final int kmerSize;
+
+    public static final RecordDescriptor readKmerOutputRec = new RecordDescriptor(new ISerializerDeserializer[] { null,
+            null });
+
+    public ReadsKeyValueParserFactory(int readlength, int k) {
+        this.readLength = readlength;
+        this.kmerSize = k;
+    }
+
+    public enum KmerDir {
+        FORWARD,
+        REVERSE,
+    }
+
+    @Override
+    public IKeyValueParser<LongWritable, Text> createKeyValueParser(final IHyracksTaskContext ctx) {
+        final ArrayTupleBuilder tupleBuilder = new ArrayTupleBuilder(2);
+        final ByteBuffer outputBuffer = ctx.allocateFrame();
+        final FrameTupleAppender outputAppender = new FrameTupleAppender(ctx.getFrameSize());
+        outputAppender.reset(outputBuffer, true);
+        KmerBytesWritable.setGlobalKmerLength(kmerSize);
+        return new IKeyValueParser<LongWritable, Text>() {
+
+            private PositionWritable nodeId = new PositionWritable();
+            private PositionListWritable nodeIdList = new PositionListWritable();
+            private NodeWritable curNode = new NodeWritable();
+            private NodeWritable nextNode = new NodeWritable();
+
+            private KmerBytesWritable curForwardKmer = new KmerBytesWritable();
+            private KmerBytesWritable curReverseKmer = new KmerBytesWritable();
+            private KmerBytesWritable nextForwardKmer = new KmerBytesWritable();
+            private KmerBytesWritable nextReverseKmer = new KmerBytesWritable();
+
+            private KmerDir curKmerDir = KmerDir.FORWARD;
+            private KmerDir nextKmerDir = KmerDir.FORWARD;
+
+            byte mateId = (byte) 0;
+
+            @Override
+            public void parse(LongWritable key, Text value, IFrameWriter writer) throws HyracksDataException {
+                String[] geneLine = value.toString().split("\\t"); // Read the Real Gene Line
+                if (geneLine.length != 2) {
+                    return;
+                }
+                int readID = 0;
+                try {
+                    readID = Integer.parseInt(geneLine[0]);
+                } catch (NumberFormatException e) {
+                    LOG.warn("Invalid data ");
+                    return;
+                }
+
+                Pattern genePattern = Pattern.compile("[AGCT]+");
+                Matcher geneMatcher = genePattern.matcher(geneLine[1]);
+                boolean isValid = geneMatcher.matches();
+                if (isValid) {
+                    if (geneLine[1].length() != readLength) {
+                        LOG.warn("Invalid readlength at: " + readID);
+                        return;
+                    }
+                    SplitReads(readID, geneLine[1].getBytes(), writer);
+                }
+            }
+
+            private void SplitReads(int readID, byte[] array, IFrameWriter writer) {
+                /*first kmer*/
+                if (kmerSize >= array.length) {
+                    return;
+                }
+                curNode.reset();
+                nextNode.reset();
+                curForwardKmer.setByRead(array, 0);
+                curReverseKmer.setByReadReverse(array, 0);
+                curKmerDir = curForwardKmer.compareTo(curReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
+                nextForwardKmer.setAsCopy(curForwardKmer);
+                nextKmerDir = setNextKmer(nextForwardKmer, nextReverseKmer, array[kmerSize]);
+                setNodeBasicInfo(curNode, mateId, readID, 0, 1);
+                setNodeBasicInfo(nextNode, mateId, readID, 0, 1);
+                setEdgeListForCurAndNextKmer(curKmerDir, curNode, nextKmerDir, nextNode);
+                writeToFrame(curForwardKmer, curReverseKmer, curKmerDir, curNode, writer);
+
+                /*middle kmer*/
+                int i = kmerSize + 1;
+                for (; i < array.length; i++) {
+                    curForwardKmer.setAsCopy(nextForwardKmer);
+                    curReverseKmer.setAsCopy(nextReverseKmer);
+                    curKmerDir = nextKmerDir;
+                    curNode.set(nextNode);
+                    nextNode.reset();
+                    nextKmerDir = setNextKmer(nextForwardKmer, nextReverseKmer, array[i]);
+                    setNodeBasicInfo(nextNode, mateId, readID, 0, 1);
+                    setEdgeListForCurAndNextKmer(curKmerDir, curNode, nextKmerDir, nextNode);
+                    writeToFrame(curForwardKmer, curReverseKmer, curKmerDir, curNode, writer);
+                }
+
+                /*last kmer*/
+                writeToFrame(nextForwardKmer, nextReverseKmer, nextKmerDir, nextNode, writer);
+            }
+
+            public void setNodeBasicInfo(NodeWritable node, byte mateId, long readID, int posId, int iniCovergage) {
+                nodeId.set(mateId, readID, posId);
+                nodeIdList.reset();
+                nodeIdList.append(nodeId);
+                node.setNodeIdList(nodeIdList);
+                node.setAvgCoverage(iniCovergage);
+            }
+
+            public KmerDir setNextKmer(KmerBytesWritable forwardKmer, KmerBytesWritable ReverseKmer,
+                    byte nextChar) {
+                forwardKmer.shiftKmerWithNextChar(nextChar);
+                ReverseKmer.setByReadReverse(forwardKmer.toString().getBytes(), forwardKmer.getOffset());
+                return forwardKmer.compareTo(ReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
+            }
+
+            public void writeToFrame(KmerBytesWritable forwardKmer, KmerBytesWritable reverseKmer, KmerDir curKmerDir,
+                    NodeWritable node, IFrameWriter writer) {
+                switch (curKmerDir) {
+                    case FORWARD:
+                        InsertToFrame(forwardKmer, node, writer);
+                        break;
+                    case REVERSE:
+                        InsertToFrame(reverseKmer, node, writer);
+                        break;
+                }
+            }
+
+            public void setEdgeListForCurAndNextKmer(KmerDir curKmerDir, NodeWritable curNode, KmerDir nextKmerDir,
+                    NodeWritable nextNode) {
+                if (curKmerDir == KmerDir.FORWARD && nextKmerDir == KmerDir.FORWARD) {
+                    curNode.getFFList().append(kmerSize, nextForwardKmer);
+                    nextNode.getRRList().append(kmerSize, curForwardKmer);
+                }
+                if (curKmerDir == KmerDir.FORWARD && nextKmerDir == KmerDir.REVERSE) {
+                    curNode.getFRList().append(kmerSize, nextReverseKmer);
+                    nextNode.getFRList().append(kmerSize, curForwardKmer);
+                }
+                if (curKmerDir == KmerDir.REVERSE && nextKmerDir == KmerDir.FORWARD) {
+                    curNode.getRFList().append(kmerSize, nextForwardKmer);
+                    nextNode.getRFList().append(kmerSize, curReverseKmer);
+                }
+                if (curKmerDir == KmerDir.REVERSE && nextKmerDir == KmerDir.REVERSE) {
+                    curNode.getRRList().append(kmerSize, nextReverseKmer);
+                    nextNode.getFFList().append(kmerSize, curReverseKmer);
+                }
+            }
+
+            private void InsertToFrame(KmerBytesWritable kmer, NodeWritable node, IFrameWriter writer) {
+                try {
+                    tupleBuilder.reset();
+                    tupleBuilder.addField(kmer.getBytes(), kmer.getOffset(), kmer.getLength());
+                    tupleBuilder.addField(node.marshalToByteArray(), 0, node.getSerializedLength());
+
+                    if (!outputAppender.append(tupleBuilder.getFieldEndOffsets(), tupleBuilder.getByteArray(), 0,
+                            tupleBuilder.getSize())) {
+                        FrameUtils.flushFrame(outputBuffer, writer);
+                        outputAppender.reset(outputBuffer, true);
+                        if (!outputAppender.append(tupleBuilder.getFieldEndOffsets(), tupleBuilder.getByteArray(), 0,
+                                tupleBuilder.getSize())) {
+                            throw new IllegalStateException(
+                                    "Failed to copy an record into a frame: the record kmerByteSize is too large.");
+                        }
+                    }
+                } catch (Exception e) {
+                    throw new IllegalStateException(e);
+                }
+            }
+
+            @Override
+            public void open(IFrameWriter writer) throws HyracksDataException {
+            }
+
+            @Override
+            public void close(IFrameWriter writer) throws HyracksDataException {
+                FrameUtils.flushFrame(outputBuffer, writer);
+            }
+        };
+    }
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/aggregators/AggregateKmerAggregateFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/aggregators/AggregateKmerAggregateFactory.java
new file mode 100644
index 0000000..94c8ec1
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/aggregators/AggregateKmerAggregateFactory.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.dataflow.aggregators;
+
+import java.io.DataOutput;
+import java.io.IOException;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import edu.uci.ics.hyracks.dataflow.std.group.AggregateState;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptorFactory;
+
+public class AggregateKmerAggregateFactory implements IAggregatorDescriptorFactory {
+
+    /**
+     * local Aggregate
+     */
+    private static final long serialVersionUID = 1L;
+    private final int kmerSize;
+    
+    public AggregateKmerAggregateFactory(int k) {
+        this.kmerSize = k;
+    }
+    
+    @Override
+    public IAggregatorDescriptor createAggregator(IHyracksTaskContext ctx, RecordDescriptor inRecordDescriptor,
+            RecordDescriptor outRecordDescriptor, int[] keyFields, int[] keyFieldsInPartialResults)
+            throws HyracksDataException {
+        KmerBytesWritable.setGlobalKmerLength(kmerSize);
+        return new IAggregatorDescriptor() {
+            
+            private NodeWritable readNode = new NodeWritable();
+            
+            protected int getOffSet(IFrameTupleAccessor accessor, int tIndex, int fieldId) {
+                int tupleOffset = accessor.getTupleStartOffset(tIndex);
+                int fieldStart = accessor.getFieldStartOffset(tIndex, fieldId);
+                int offset = tupleOffset + fieldStart + accessor.getFieldSlotsLength();
+                return offset;
+            }
+
+            @Override
+            public void reset() {
+            }
+
+            @Override
+            public void close() {
+
+            }
+
+            @Override
+            public AggregateState createAggregateStates() {
+                return new AggregateState(new NodeWritable());
+            }
+
+            @Override
+            public void init(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex,
+                    AggregateState state) throws HyracksDataException {
+                NodeWritable localUniNode = (NodeWritable) state.state;
+                localUniNode.reset();
+                readNode.setAsReference(accessor.getBuffer().array(), getOffSet(accessor, tIndex, 1));
+                localUniNode.getNodeIdList().appendList(readNode.getNodeIdList());
+                localUniNode.getFFList().appendList(readNode.getFFList());
+                localUniNode.getFRList().appendList(readNode.getFRList());
+                localUniNode.getRFList().appendList(readNode.getRFList());
+                localUniNode.getRRList().appendList(readNode.getRRList());
+                localUniNode.addCoverage(readNode);
+                // make an empty field
+//                tupleBuilder.addFieldEndOffset();// mark question?
+            }
+
+            @Override
+            public void aggregate(IFrameTupleAccessor accessor, int tIndex, IFrameTupleAccessor stateAccessor,
+                    int stateTupleIndex, AggregateState state) throws HyracksDataException {
+                NodeWritable localUniNode = (NodeWritable) state.state;
+                readNode.setAsReference(accessor.getBuffer().array(), getOffSet(accessor, tIndex, 1));
+                localUniNode.getNodeIdList().appendList(readNode.getNodeIdList());
+                localUniNode.getFFList().appendList(readNode.getFFList());
+                localUniNode.getFRList().appendList(readNode.getFRList());
+                localUniNode.getRFList().appendList(readNode.getRFList());
+                localUniNode.getRRList().appendList(readNode.getRRList());
+                localUniNode.addCoverage(readNode);
+            }
+
+            @Override
+            public void outputPartialResult(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex,
+                    AggregateState state) throws HyracksDataException {
+                throw new IllegalStateException("partial result method should not be called");
+            }
+
+            @Override
+            public void outputFinalResult(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex,
+                    AggregateState state) throws HyracksDataException {
+                DataOutput fieldOutput = tupleBuilder.getDataOutput();
+                NodeWritable localUniNode = (NodeWritable) state.state;
+                try {
+                    fieldOutput.write(localUniNode.marshalToByteArray(), 0, localUniNode.getSerializedLength());
+                    tupleBuilder.addFieldEndOffset();
+                } catch (IOException e) {
+                    throw new HyracksDataException("I/O exception when writing aggregation to the output buffer.");
+                }
+            }
+
+        };
+    }
+
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/aggregators/MergeKmerAggregateFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/aggregators/MergeKmerAggregateFactory.java
new file mode 100644
index 0000000..f83bc4b
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/aggregators/MergeKmerAggregateFactory.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.dataflow.aggregators;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import edu.uci.ics.hyracks.dataflow.std.group.AggregateState;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptorFactory;
+
+public class MergeKmerAggregateFactory implements IAggregatorDescriptorFactory {
+    private static final long serialVersionUID = 1L;
+    private static final Log LOG = LogFactory.getLog(MergeKmerAggregateFactory.class);
+    
+    private final int kmerSize;
+    
+    public MergeKmerAggregateFactory(int k) {
+        this.kmerSize = k;
+    }
+    
+    @Override
+    public IAggregatorDescriptor createAggregator(IHyracksTaskContext ctx, RecordDescriptor inRecordDescriptor,
+            RecordDescriptor outRecordDescriptor, int[] keyFields, int[] keyFieldsInPartialResults)
+            throws HyracksDataException {
+        final int frameSize = ctx.getFrameSize();
+        KmerBytesWritable.setGlobalKmerLength(kmerSize);
+        return new IAggregatorDescriptor() {
+
+            private NodeWritable readNode = new NodeWritable();
+
+            protected int getOffSet(IFrameTupleAccessor accessor, int tIndex, int fieldId) {
+                int tupleOffset = accessor.getTupleStartOffset(tIndex);
+                int fieldStart = accessor.getFieldStartOffset(tIndex, fieldId);
+                int offset = tupleOffset + fieldStart + accessor.getFieldSlotsLength();
+                return offset;
+            }
+            
+            @Override
+            public AggregateState createAggregateStates() {
+                return new AggregateState(new NodeWritable());
+            }
+
+            @Override
+            public void init(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex,
+                    AggregateState state) throws HyracksDataException {
+                NodeWritable localUniNode = (NodeWritable) state.state;
+                localUniNode.reset();
+                readNode.setAsReference(accessor.getBuffer().array(), getOffSet(accessor, tIndex, 1));
+                localUniNode.getNodeIdList().unionUpdate(readNode.getNodeIdList());
+                localUniNode.getFFList().unionUpdate(readNode.getFFList());
+                localUniNode.getFRList().unionUpdate(readNode.getFRList());
+                localUniNode.getRFList().unionUpdate(readNode.getRFList());
+                localUniNode.getRRList().unionUpdate(readNode.getRRList());
+                localUniNode.addCoverage(readNode);
+                //make a fake feild to cheat caller
+ //               tupleBuilder.addFieldEndOffset();
+            }
+
+            @Override
+            public void reset() {
+
+            }
+
+            @Override
+            public void aggregate(IFrameTupleAccessor accessor, int tIndex, IFrameTupleAccessor stateAccessor,
+                    int stateTupleIndex, AggregateState state) throws HyracksDataException {
+                NodeWritable localUniNode = (NodeWritable) state.state;
+                readNode.setAsReference(accessor.getBuffer().array(), getOffSet(accessor, tIndex, 1));
+                localUniNode.getNodeIdList().unionUpdate(readNode.getNodeIdList());
+                localUniNode.getFFList().unionUpdate(readNode.getFFList());
+                localUniNode.getFRList().unionUpdate(readNode.getFRList());
+                localUniNode.getRFList().unionUpdate(readNode.getRFList());
+                localUniNode.getRRList().unionUpdate(readNode.getRRList());
+                localUniNode.addCoverage(readNode);
+            }
+
+            @Override
+            public void outputPartialResult(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex,
+                    AggregateState state) throws HyracksDataException {
+                throw new IllegalStateException("partial result method should not be called");
+            }
+
+            @Override
+            public void outputFinalResult(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex,
+                    AggregateState state) throws HyracksDataException {
+                DataOutput fieldOutput = tupleBuilder.getDataOutput();
+                NodeWritable localUniNode = (NodeWritable) state.state;
+                try {
+                    if (localUniNode.getSerializedLength() > frameSize / 2) {
+                        LOG.warn("MergeKmer: output data kmerByteSize is too big: " + localUniNode.getSerializedLength());
+                    }
+                    fieldOutput.write(localUniNode.marshalToByteArray(), 0, localUniNode.getSerializedLength());
+                    tupleBuilder.addFieldEndOffset();
+
+                } catch (IOException e) {
+                    throw new HyracksDataException("I/O exception when writing aggregation to the output buffer.");
+                }
+            }
+
+            @Override
+            public void close() {
+
+            }
+
+        };
+
+    }
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/driver/Driver.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/driver/Driver.java
new file mode 100644
index 0000000..4602ed2
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/driver/Driver.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.driver;
+
+import java.net.URL;
+import java.util.EnumSet;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.util.GenericOptionsParser;
+
+import edu.uci.ics.genomix.hyracks.newgraph.job.GenomixJobConf;
+import edu.uci.ics.genomix.hyracks.newgraph.job.JobGen;
+import edu.uci.ics.genomix.hyracks.newgraph.job.JobGenBrujinGraph;
+import edu.uci.ics.genomix.hyracks.newgraph.job.JobGenCheckReader;
+
+import edu.uci.ics.hyracks.api.client.HyracksConnection;
+import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
+import edu.uci.ics.hyracks.api.client.NodeControllerInfo;
+import edu.uci.ics.hyracks.api.exceptions.HyracksException;
+import edu.uci.ics.hyracks.api.job.JobFlag;
+import edu.uci.ics.hyracks.api.job.JobId;
+import edu.uci.ics.hyracks.api.job.JobSpecification;
+import edu.uci.ics.hyracks.hdfs.scheduler.Scheduler;
+
+public class Driver {
+    public static enum Plan {
+        BUILD_DEBRUJIN_GRAPH,
+        CHECK_KMERREADER,
+    }
+
+    private static final String IS_PROFILING = "genomix.driver.profiling";
+    private static final String CPARTITION_PER_MACHINE = "genomix.driver.duplicate.num";
+    private static final Log LOG = LogFactory.getLog(Driver.class);
+    private JobGen jobGen;
+    private boolean profiling;
+
+    private int numPartitionPerMachine;
+
+    private IHyracksClientConnection hcc;
+    private Scheduler scheduler;
+
+    public Driver(String ipAddress, int port, int numPartitionPerMachine) throws HyracksException {
+        try {
+            hcc = new HyracksConnection(ipAddress, port);
+            scheduler = new Scheduler(hcc.getNodeControllerInfos());
+        } catch (Exception e) {
+            throw new HyracksException(e);
+        }
+        this.numPartitionPerMachine = numPartitionPerMachine;
+    }
+
+    public void runJob(GenomixJobConf job) throws HyracksException {
+        runJob(job, Plan.BUILD_DEBRUJIN_GRAPH, false);
+    }
+
+    public void runJob(GenomixJobConf job, Plan planChoice, boolean profiling) throws HyracksException {
+        /** add hadoop configurations */
+        URL hadoopCore = job.getClass().getClassLoader().getResource("core-site.xml");
+        job.addResource(hadoopCore);
+        URL hadoopMapRed = job.getClass().getClassLoader().getResource("mapred-site.xml");
+        job.addResource(hadoopMapRed);
+        URL hadoopHdfs = job.getClass().getClassLoader().getResource("hdfs-site.xml");
+        job.addResource(hadoopHdfs);
+
+        LOG.info("job started");
+        long start = System.currentTimeMillis();
+        long end = start;
+        long time = 0;
+
+        this.profiling = profiling;
+        try {
+            Map<String, NodeControllerInfo> ncMap = hcc.getNodeControllerInfos();
+            LOG.info("ncmap:" + ncMap.size() + " " + ncMap.keySet().toString());
+            switch (planChoice) {
+                case BUILD_DEBRUJIN_GRAPH:
+                default:
+                    jobGen = new JobGenBrujinGraph(job, scheduler, ncMap, numPartitionPerMachine);
+                    break;
+                case CHECK_KMERREADER:
+                    jobGen = new JobGenCheckReader(job, scheduler, ncMap, numPartitionPerMachine);
+                    break;
+            }
+
+            start = System.currentTimeMillis();
+            run(jobGen);
+            end = System.currentTimeMillis();
+            time = end - start;
+            LOG.info("result writing finished " + time + "ms");
+            LOG.info("job finished");
+        } catch (Exception e) {
+            throw new HyracksException(e);
+        }
+    }
+
+    private void run(JobGen jobGen) throws Exception {
+        try {
+            JobSpecification createJob = jobGen.generateJob();
+            execute(createJob);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw e;
+        }
+    }
+
+    private void execute(JobSpecification job) throws Exception {
+        job.setUseConnectorPolicyForScheduling(false);
+        JobId jobId = hcc.startJob(job, profiling ? EnumSet.of(JobFlag.PROFILE_RUNTIME) : EnumSet.noneOf(JobFlag.class));
+        hcc.waitForCompletion(jobId);
+    }
+
+    public static void main(String[] args) throws Exception {
+        GenomixJobConf jobConf = new GenomixJobConf();
+        String[] otherArgs = new GenericOptionsParser(jobConf, args).getRemainingArgs();
+        if (otherArgs.length < 4) {
+            System.err.println("Need <serverIP> <port> <input> <output>");
+            System.exit(-1);
+        }
+        String ipAddress = otherArgs[0];
+        int port = Integer.parseInt(otherArgs[1]);
+        int numOfDuplicate = jobConf.getInt(CPARTITION_PER_MACHINE, 2);
+        boolean bProfiling = jobConf.getBoolean(IS_PROFILING, true);
+        // FileInputFormat.setInputPaths(job, otherArgs[2]);
+        {
+            @SuppressWarnings("deprecation")
+            Path path = new Path(jobConf.getWorkingDirectory(), otherArgs[2]);
+            jobConf.set("mapred.input.dir", path.toString());
+
+            @SuppressWarnings("deprecation")
+            Path outputDir = new Path(jobConf.getWorkingDirectory(), otherArgs[3]);
+            jobConf.set("mapred.output.dir", outputDir.toString());
+        }
+        // FileInputFormat.addInputPath(jobConf, new Path(otherArgs[2]));
+        // FileOutputFormat.setOutputPath(job, new Path(otherArgs[3]));
+        Driver driver = new Driver(ipAddress, port, numOfDuplicate);
+        driver.runJob(jobConf, Plan.BUILD_DEBRUJIN_GRAPH, bProfiling);
+    }
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/io/NodeSequenceWriterFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/io/NodeSequenceWriterFactory.java
new file mode 100644
index 0000000..1ca59d8
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/io/NodeSequenceWriterFactory.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.hyracks.newgraph.io;
+
+import java.io.DataOutput;
+import java.io.IOException;
+import org.apache.hadoop.fs.FSDataOutputStream;
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.io.SequenceFile;
+import org.apache.hadoop.io.SequenceFile.CompressionType;
+import org.apache.hadoop.io.SequenceFile.Writer;
+import org.apache.hadoop.mapred.JobConf;
+import edu.uci.ics.genomix.hyracks.newgraph.job.GenomixJobConf;
+import edu.uci.ics.genomix.hyracks.newgraph.dataflow.AssembleKeyIntoNodeOperator;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
+import edu.uci.ics.hyracks.hdfs.api.ITupleWriter;
+import edu.uci.ics.hyracks.hdfs.api.ITupleWriterFactory;
+import edu.uci.ics.hyracks.hdfs.dataflow.ConfFactory;
+
+@SuppressWarnings("deprecation")
+public class NodeSequenceWriterFactory implements ITupleWriterFactory {
+
+    /**
+     * Write the node to Text
+     */
+    private static final long serialVersionUID = 1L;
+    private final int kmerSize;
+    private ConfFactory confFactory;
+    
+    public static final int OutputNodeField = AssembleKeyIntoNodeOperator.OutputNodeField;
+    
+    public NodeSequenceWriterFactory(JobConf conf) throws HyracksDataException {
+        this.confFactory = new ConfFactory(conf);
+        this.kmerSize = conf.getInt(GenomixJobConf.KMER_LENGTH, GenomixJobConf.DEFAULT_KMERLEN);
+    }
+
+    public class TupleWriter implements ITupleWriter {
+
+        public TupleWriter(ConfFactory confFactory) {
+            this.cf = confFactory;
+        }
+
+        ConfFactory cf;
+        Writer writer = null;
+        NodeWritable node = new NodeWritable();
+
+        @Override
+        public void open(DataOutput output) throws HyracksDataException {
+            try {
+                writer = SequenceFile.createWriter(cf.getConf(), (FSDataOutputStream) output, NodeWritable.class,
+                        NullWritable.class, CompressionType.NONE, null);
+            } catch (IOException e) {
+                throw new HyracksDataException(e);
+            }
+        }
+
+        @Override
+        public void write(DataOutput output, ITupleReference tuple) throws HyracksDataException {
+            node.setAsReference(tuple.getFieldData(OutputNodeField), tuple.getFieldStart(OutputNodeField));
+            try {
+                writer.append(node, NullWritable.get());
+            } catch (IOException e) {
+                throw new HyracksDataException(e);
+            }
+        }
+
+        @Override
+        public void close(DataOutput output) throws HyracksDataException {
+        }
+
+    }
+
+    @Override
+    public ITupleWriter getTupleWriter(IHyracksTaskContext ctx) throws HyracksDataException {
+        KmerBytesWritable.setGlobalKmerLength(kmerSize);
+        return new TupleWriter(confFactory);
+    }
+
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/io/NodeTextWriterFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/io/NodeTextWriterFactory.java
new file mode 100644
index 0000000..fa6ae9b
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/io/NodeTextWriterFactory.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.hyracks.newgraph.io;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import edu.uci.ics.genomix.hyracks.newgraph.dataflow.AssembleKeyIntoNodeOperator;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
+import edu.uci.ics.hyracks.hdfs.api.ITupleWriter;
+import edu.uci.ics.hyracks.hdfs.api.ITupleWriterFactory;
+
+public class NodeTextWriterFactory implements ITupleWriterFactory {
+
+    /**
+     * Write the node to Text
+     */
+    private static final long serialVersionUID = 1L;
+    private final int kmerSize;
+    public static final int OutputNodeField = AssembleKeyIntoNodeOperator.OutputNodeField;
+    
+    public NodeTextWriterFactory(int k) {
+        this.kmerSize = k;
+    }
+
+    @Override
+    public ITupleWriter getTupleWriter(IHyracksTaskContext ctx) throws HyracksDataException {
+        KmerBytesWritable.setGlobalKmerLength(kmerSize);
+        return new ITupleWriter() {
+            NodeWritable node = new NodeWritable();
+            
+            @Override
+            public void open(DataOutput output) throws HyracksDataException {
+
+            }
+
+            @Override
+            public void write(DataOutput output, ITupleReference tuple) throws HyracksDataException {
+                node.setAsReference(tuple.getFieldData(OutputNodeField), tuple.getFieldStart(OutputNodeField));
+                try {
+                    output.write(node.toString().getBytes());
+                    output.writeByte('\n');
+                } catch (IOException e) {
+                    throw new HyracksDataException(e);
+                }
+            }
+
+            @Override
+            public void close(DataOutput output) throws HyracksDataException {
+
+            }
+
+        };
+    }
+
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/GenomixJobConf.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/GenomixJobConf.java
new file mode 100644
index 0000000..b0edf77
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/GenomixJobConf.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.job;
+
+import java.io.IOException;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.mapred.JobConf;
+
+@SuppressWarnings("deprecation")
+public class GenomixJobConf extends JobConf {
+
+    public static final String JOB_NAME = "genomix";
+
+    /** Kmers length */
+    public static final String KMER_LENGTH = "genomix.kmerlen";
+    /** Read length */
+    public static final String READ_LENGTH = "genomix.readlen";
+    /** Frame Size */
+    public static final String FRAME_SIZE = "genomix.framesize";
+    /** Frame Limit, hyracks need */
+    public static final String FRAME_LIMIT = "genomix.framelimit";
+    /** Table Size, hyracks need */
+    public static final String TABLE_SIZE = "genomix.tablesize";
+    /** Groupby types */
+    public static final String GROUPBY_TYPE = "genomix.graph.groupby.type";
+    /** Graph outputformat */
+    public static final String OUTPUT_FORMAT = "genomix.graph.output";
+    /** Get reversed Kmer Sequence */
+    public static final String REVERSED_KMER = "genomix.kmer.reversed";
+
+    /** Configurations used by hybrid groupby function in graph build phrase */
+    public static final String GROUPBY_HYBRID_INPUTSIZE = "genomix.graph.groupby.hybrid.inputsize";
+    public static final String GROUPBY_HYBRID_INPUTKEYS = "genomix.graph.groupby.hybrid.inputkeys";
+    public static final String GROUPBY_HYBRID_RECORDSIZE_SINGLE = "genomix.graph.groupby.hybrid.recordsize.single";
+    public static final String GROUPBY_HYBRID_RECORDSIZE_CROSS = "genomix.graph.groupby.hybrid.recordsize.cross";
+    public static final String GROUPBY_HYBRID_HASHLEVEL = "genomix.graph.groupby.hybrid.hashlevel";
+
+    public static final int DEFAULT_KMERLEN = 21;
+    public static final int DEFAULT_READLEN = 124;
+    public static final int DEFAULT_FRAME_SIZE = 128 * 1024;
+    public static final int DEFAULT_FRAME_LIMIT = 4096;
+    public static final int DEFAULT_TABLE_SIZE = 10485767;
+    public static final long DEFAULT_GROUPBY_HYBRID_INPUTSIZE = 154000000L;
+    public static final long DEFAULT_GROUPBY_HYBRID_INPUTKEYS = 38500000L;
+    public static final int DEFAULT_GROUPBY_HYBRID_RECORDSIZE_SINGLE = 9;
+    public static final int DEFAULT_GROUPBY_HYBRID_HASHLEVEL = 1;
+    public static final int DEFAULT_GROUPBY_HYBRID_RECORDSIZE_CROSS = 13;
+
+    public static final boolean DEFAULT_REVERSED = true;
+
+    public static final String JOB_PLAN_GRAPHBUILD = "graphbuild";
+    public static final String JOB_PLAN_GRAPHSTAT = "graphstat";
+
+    public static final String GROUPBY_TYPE_HYBRID = "hybrid";
+    public static final String GROUPBY_TYPE_EXTERNAL = "external";
+    public static final String GROUPBY_TYPE_PRECLUSTER = "precluster";
+    public static final String OUTPUT_FORMAT_BINARY = "binary";
+    public static final String OUTPUT_FORMAT_TEXT = "text";
+
+    public GenomixJobConf() throws IOException {
+        super(new Configuration());
+    }
+
+    public GenomixJobConf(Configuration conf) throws IOException {
+        super(conf);
+    }
+
+    /**
+     * Set the kmer length
+     * 
+     * @param the
+     *            desired frame kmerByteSize
+     */
+    final public void setKmerLength(int kmerlength) {
+        setInt(KMER_LENGTH, kmerlength);
+    }
+
+    final public void setFrameSize(int frameSize) {
+        setInt(FRAME_SIZE, frameSize);
+    }
+
+    final public void setFrameLimit(int frameLimit) {
+        setInt(FRAME_LIMIT, frameLimit);
+    }
+
+    final public void setTableSize(int tableSize) {
+        setInt(TABLE_SIZE, tableSize);
+    }
+
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGen.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGen.java
new file mode 100644
index 0000000..9649566
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGen.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.job;
+
+import java.io.Serializable;
+import java.util.UUID;
+
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.api.exceptions.HyracksException;
+import edu.uci.ics.hyracks.api.job.JobSpecification;
+import edu.uci.ics.hyracks.hdfs.dataflow.ConfFactory;
+
+public abstract class JobGen implements Serializable {
+
+    /**
+     * generate the jobId
+     */
+    private static final long serialVersionUID = 1L;
+    protected final ConfFactory confFactory;
+    protected String jobId = new UUID(System.currentTimeMillis(), System.nanoTime()).toString();
+
+    public JobGen(GenomixJobConf job) throws HyracksDataException {
+        this.confFactory = new ConfFactory(job);
+    }
+
+    public abstract JobSpecification generateJob() throws HyracksException;
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenBrujinGraph.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenBrujinGraph.java
new file mode 100644
index 0000000..6a5dcc4
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenBrujinGraph.java
@@ -0,0 +1,274 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.job;
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.mapred.InputSplit;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.genomix.hyracks.data.accessors.KmerHashPartitioncomputerFactory;
+import edu.uci.ics.genomix.hyracks.data.accessors.KmerNormarlizedComputerFactory;
+import edu.uci.ics.genomix.hyracks.data.primitive.KmerPointable;
+import edu.uci.ics.genomix.hyracks.newgraph.dataflow.ConnectorPolicyAssignmentPolicy;
+import edu.uci.ics.genomix.hyracks.newgraph.dataflow.ReadsKeyValueParserFactory;
+import edu.uci.ics.genomix.hyracks.newgraph.dataflow.AssembleKeyIntoNodeOperator;
+import edu.uci.ics.genomix.hyracks.newgraph.dataflow.aggregators.AggregateKmerAggregateFactory;
+import edu.uci.ics.genomix.hyracks.newgraph.dataflow.aggregators.MergeKmerAggregateFactory;
+import edu.uci.ics.genomix.hyracks.newgraph.io.NodeTextWriterFactory;
+
+import edu.uci.ics.hyracks.api.client.NodeControllerInfo;
+import edu.uci.ics.hyracks.api.constraints.PartitionConstraintHelper;
+import edu.uci.ics.hyracks.api.dataflow.IConnectorDescriptor;
+import edu.uci.ics.hyracks.api.dataflow.IOperatorDescriptor;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.ISerializerDeserializer;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputerFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.api.exceptions.HyracksException;
+import edu.uci.ics.hyracks.api.job.JobSpecification;
+import edu.uci.ics.hyracks.data.std.accessors.PointableBinaryComparatorFactory;
+import edu.uci.ics.hyracks.data.std.api.IPointableFactory;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractOperatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.connectors.MToNPartitioningMergingConnectorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.connectors.OneToOneConnectorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptorFactory;
+import edu.uci.ics.hyracks.dataflow.std.group.preclustered.PreclusteredGroupOperatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.sort.ExternalSortOperatorDescriptor;
+import edu.uci.ics.hyracks.hdfs.api.ITupleWriterFactory;
+import edu.uci.ics.hyracks.hdfs.dataflow.ConfFactory;
+import edu.uci.ics.hyracks.hdfs.dataflow.HDFSReadOperatorDescriptor;
+import edu.uci.ics.hyracks.hdfs.dataflow.HDFSWriteOperatorDescriptor;
+import edu.uci.ics.hyracks.hdfs.scheduler.Scheduler;
+
+@SuppressWarnings("deprecation")
+public class JobGenBrujinGraph extends JobGen {
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+
+    public enum GroupbyType {
+        EXTERNAL,
+        PRECLUSTER,
+        HYBRIDHASH,
+    }
+
+    public enum OutputFormat {
+        TEXT,
+        BINARY,
+    }
+
+    protected ConfFactory hadoopJobConfFactory;
+    protected static final Log LOG = LogFactory.getLog(JobGenBrujinGraph.class);
+    protected String[] ncNodeNames;
+    protected String[] readSchedule;
+
+    protected int readLength;
+    protected int kmerSize;
+    protected int frameLimits;
+    protected int frameSize;
+    protected int tableSize;
+    protected GroupbyType groupbyType;
+    protected OutputFormat outputFormat;
+
+
+    protected void logDebug(String status) {
+        LOG.debug(status + " nc nodes:" + ncNodeNames.length);
+    }
+
+    public JobGenBrujinGraph(GenomixJobConf job, Scheduler scheduler, final Map<String, NodeControllerInfo> ncMap,
+            int numPartitionPerMachine) throws HyracksDataException {
+        super(job);
+        String[] nodes = new String[ncMap.size()];
+        ncMap.keySet().toArray(nodes);
+        ncNodeNames = new String[nodes.length * numPartitionPerMachine];
+        for (int i = 0; i < numPartitionPerMachine; i++) {
+            System.arraycopy(nodes, 0, ncNodeNames, i * nodes.length, nodes.length);
+        }
+        initJobConfiguration(scheduler);
+    }
+
+    private Object[] generateAggeragateDescriptorbyType(JobSpecification jobSpec, int[] keyFields,
+            IAggregatorDescriptorFactory aggregator, IAggregatorDescriptorFactory merger,
+            ITuplePartitionComputerFactory partition, INormalizedKeyComputerFactory normalizer,
+            IPointableFactory pointable, RecordDescriptor combineRed, RecordDescriptor finalRec)
+            throws HyracksDataException {
+
+        Object[] obj = new Object[3];
+
+        switch (groupbyType) {
+            case PRECLUSTER:
+            default:
+                obj[0] = new PreclusteredGroupOperatorDescriptor(jobSpec, keyFields,
+                        new IBinaryComparatorFactory[] { PointableBinaryComparatorFactory.of(pointable) }, aggregator,
+                        combineRed);
+                obj[1] = new MToNPartitioningMergingConnectorDescriptor(jobSpec, partition, keyFields,
+                        new IBinaryComparatorFactory[] { PointableBinaryComparatorFactory.of(pointable) });
+                obj[2] = new PreclusteredGroupOperatorDescriptor(jobSpec, keyFields,
+                        new IBinaryComparatorFactory[] { PointableBinaryComparatorFactory.of(pointable) }, merger,
+                        finalRec);
+                jobSpec.setConnectorPolicyAssignmentPolicy(new ConnectorPolicyAssignmentPolicy());
+                break;
+        }
+        return obj;
+    }
+
+    public HDFSReadOperatorDescriptor createHDFSReader(JobSpecification jobSpec) throws HyracksDataException {
+        try {
+            InputSplit[] splits = hadoopJobConfFactory.getConf().getInputFormat()
+                    .getSplits(hadoopJobConfFactory.getConf(), ncNodeNames.length);
+
+            return new HDFSReadOperatorDescriptor(jobSpec, ReadsKeyValueParserFactory.readKmerOutputRec,
+                    hadoopJobConfFactory.getConf(), splits, readSchedule, new ReadsKeyValueParserFactory(readLength,
+                            kmerSize));
+        } catch (Exception e) {
+            throw new HyracksDataException(e);
+        }
+    }
+
+    public static void connectOperators(JobSpecification jobSpec, IOperatorDescriptor preOp, String[] preNodes,
+            IOperatorDescriptor nextOp, String[] nextNodes, IConnectorDescriptor conn) {
+        PartitionConstraintHelper.addAbsoluteLocationConstraint(jobSpec, preOp, preNodes);
+        PartitionConstraintHelper.addAbsoluteLocationConstraint(jobSpec, nextOp, nextNodes);
+        jobSpec.connect(conn, preOp, 0, nextOp, 0);
+    }
+
+    public AbstractOperatorDescriptor generateGroupbyKmerJob(JobSpecification jobSpec,
+            AbstractOperatorDescriptor readOperator) throws HyracksDataException {
+        int[] keyFields = new int[] { 0 }; // the id of grouped key
+
+        ExternalSortOperatorDescriptor sorter = new ExternalSortOperatorDescriptor(jobSpec, frameLimits, keyFields,
+                new IBinaryComparatorFactory[] { PointableBinaryComparatorFactory.of(KmerPointable.FACTORY) },
+                ReadsKeyValueParserFactory.readKmerOutputRec);
+        
+        connectOperators(jobSpec, readOperator, ncNodeNames, sorter, ncNodeNames, new OneToOneConnectorDescriptor(
+                jobSpec));
+
+        RecordDescriptor combineKmerOutputRec = new RecordDescriptor(new ISerializerDeserializer[] { null, null });
+        jobSpec.setFrameSize(frameSize);
+
+        Object[] objs = generateAggeragateDescriptorbyType(jobSpec, keyFields, new AggregateKmerAggregateFactory(kmerSize),
+                new MergeKmerAggregateFactory(kmerSize), new KmerHashPartitioncomputerFactory(),
+                new KmerNormarlizedComputerFactory(), KmerPointable.FACTORY, combineKmerOutputRec, combineKmerOutputRec);
+        AbstractOperatorDescriptor kmerLocalAggregator = (AbstractOperatorDescriptor) objs[0];
+        logDebug("LocalKmerGroupby Operator");
+        connectOperators(jobSpec, sorter, ncNodeNames, kmerLocalAggregator, ncNodeNames,
+                new OneToOneConnectorDescriptor(jobSpec));
+
+        logDebug("CrossKmerGroupby Operator");
+        IConnectorDescriptor kmerConnPartition = (IConnectorDescriptor) objs[1];
+        AbstractOperatorDescriptor kmerCrossAggregator = (AbstractOperatorDescriptor) objs[2];
+        connectOperators(jobSpec, kmerLocalAggregator, ncNodeNames, kmerCrossAggregator, ncNodeNames, kmerConnPartition);
+        return kmerCrossAggregator;
+    }
+
+    public AbstractOperatorDescriptor generateKmerToFinalNode(JobSpecification jobSpec,
+            AbstractOperatorDescriptor kmerCrossAggregator) {
+
+        AbstractOperatorDescriptor mapToFinalNode = new AssembleKeyIntoNodeOperator(jobSpec,
+                AssembleKeyIntoNodeOperator.nodeOutputRec, kmerSize);
+        connectOperators(jobSpec, kmerCrossAggregator, ncNodeNames, mapToFinalNode, ncNodeNames,
+                new OneToOneConnectorDescriptor(jobSpec));
+        return mapToFinalNode;
+    }
+    
+    public AbstractOperatorDescriptor generateNodeWriterOpertator(JobSpecification jobSpec,
+            AbstractOperatorDescriptor mapEachReadToNode) throws HyracksException {
+        ITupleWriterFactory nodeWriter = null;
+        switch (outputFormat) {
+            case TEXT:
+                nodeWriter = new NodeTextWriterFactory(kmerSize);
+                break;
+        }
+        logDebug("WriteOperator");
+        // Output Node
+        HDFSWriteOperatorDescriptor writeNodeOperator = new HDFSWriteOperatorDescriptor(jobSpec,
+                hadoopJobConfFactory.getConf(), nodeWriter);
+        connectOperators(jobSpec, mapEachReadToNode, ncNodeNames, writeNodeOperator, ncNodeNames,
+                new OneToOneConnectorDescriptor(jobSpec));
+        return writeNodeOperator;
+    }
+
+    @Override
+    public JobSpecification generateJob() throws HyracksException {
+
+        JobSpecification jobSpec = new JobSpecification();
+        logDebug("ReadKmer Operator");
+
+        HDFSReadOperatorDescriptor readOperator = createHDFSReader(jobSpec);
+
+        logDebug("Group by Kmer");
+        AbstractOperatorDescriptor lastOperator = generateGroupbyKmerJob(jobSpec, readOperator);
+
+        logDebug("Generate final node");
+        lastOperator = generateKmerToFinalNode(jobSpec, lastOperator);
+
+        jobSpec.addRoot(lastOperator);
+        
+        logDebug("Write node to result");
+        lastOperator = generateNodeWriterOpertator(jobSpec, lastOperator);
+
+        jobSpec.addRoot(lastOperator);
+        return jobSpec;
+    }
+
+    protected void initJobConfiguration(Scheduler scheduler) throws HyracksDataException {
+        Configuration conf = confFactory.getConf();
+        readLength = conf.getInt(GenomixJobConf.READ_LENGTH, GenomixJobConf.DEFAULT_READLEN);
+        kmerSize = conf.getInt(GenomixJobConf.KMER_LENGTH, GenomixJobConf.DEFAULT_KMERLEN);
+        if (kmerSize % 2 == 0) {
+            kmerSize--;
+            conf.setInt(GenomixJobConf.KMER_LENGTH, kmerSize);
+        }
+        frameLimits = conf.getInt(GenomixJobConf.FRAME_LIMIT, GenomixJobConf.DEFAULT_FRAME_LIMIT);
+        tableSize = conf.getInt(GenomixJobConf.TABLE_SIZE, GenomixJobConf.DEFAULT_TABLE_SIZE);
+        frameSize = conf.getInt(GenomixJobConf.FRAME_SIZE, GenomixJobConf.DEFAULT_FRAME_SIZE);
+
+        String type = conf.get(GenomixJobConf.GROUPBY_TYPE, GenomixJobConf.GROUPBY_TYPE_PRECLUSTER);
+        groupbyType = GroupbyType.PRECLUSTER;
+
+        String output = conf.get(GenomixJobConf.OUTPUT_FORMAT, GenomixJobConf.OUTPUT_FORMAT_TEXT);
+        
+        if (output.equalsIgnoreCase("text")) {
+            outputFormat = OutputFormat.TEXT;
+        } else {
+            outputFormat = OutputFormat.BINARY;
+        }
+        try {
+            hadoopJobConfFactory = new ConfFactory(new JobConf(conf));
+            InputSplit[] splits = hadoopJobConfFactory.getConf().getInputFormat()
+                    .getSplits(hadoopJobConfFactory.getConf(), ncNodeNames.length);
+            readSchedule = scheduler.getLocationConstraints(splits);
+        } catch (IOException ex) {
+            throw new HyracksDataException(ex);
+        }
+
+        LOG.info("Genomix Graph Build Configuration");
+        LOG.info("Kmer:" + kmerSize);
+        LOG.info("Groupby type:" + type);
+        LOG.info("Output format:" + output);
+        LOG.info("Frame limit" + frameLimits);
+        LOG.info("Frame kmerByteSize" + frameSize);
+    }
+
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java
new file mode 100644
index 0000000..f512f43
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.hyracks.newgraph.job;
+
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.Map;
+
+import org.apache.hadoop.conf.Configuration;
+import edu.uci.ics.genomix.hyracks.newgraph.dataflow.ReadsKeyValueParserFactory;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+
+import edu.uci.ics.hyracks.api.client.NodeControllerInfo;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.api.exceptions.HyracksException;
+import edu.uci.ics.hyracks.api.job.JobSpecification;
+import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractSingleActivityOperatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.connectors.OneToOneConnectorDescriptor;
+import edu.uci.ics.hyracks.hdfs.api.ITupleWriter;
+import edu.uci.ics.hyracks.hdfs.api.ITupleWriterFactory;
+import edu.uci.ics.hyracks.hdfs.dataflow.ConfFactory;
+import edu.uci.ics.hyracks.hdfs.dataflow.HDFSReadOperatorDescriptor;
+import edu.uci.ics.hyracks.hdfs.dataflow.HDFSWriteOperatorDescriptor;
+import edu.uci.ics.hyracks.hdfs.scheduler.Scheduler;
+
+public class JobGenCheckReader extends JobGenBrujinGraph {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+
+    public JobGenCheckReader(GenomixJobConf job, Scheduler scheduler, Map<String, NodeControllerInfo> ncMap,
+            int numPartitionPerMachine) throws HyracksDataException {
+        super(job, scheduler, ncMap, numPartitionPerMachine);
+    }
+
+    @Override
+    public JobSpecification generateJob() throws HyracksException {
+
+        JobSpecification jobSpec = new JobSpecification();
+        logDebug("ReadKmer Operator");
+        HDFSReadOperatorDescriptor readOperator = createHDFSReader(jobSpec);
+
+        logDebug("Write kmer to result");
+        generateRootByWriteKmerReader(jobSpec, readOperator);
+
+        return jobSpec;
+    }
+
+    public AbstractSingleActivityOperatorDescriptor generateRootByWriteKmerReader(JobSpecification jobSpec,
+            HDFSReadOperatorDescriptor readOperator) throws HyracksException {
+        
+        HDFSWriteOperatorDescriptor writeKmerOperator = new HDFSWriteOperatorDescriptor(jobSpec,
+                hadoopJobConfFactory.getConf(), new ITupleWriterFactory() {
+
+                    private static final long serialVersionUID = 1L;
+
+                    @Override
+                    public ITupleWriter getTupleWriter(IHyracksTaskContext ctx) throws HyracksDataException {
+                        KmerBytesWritable.setGlobalKmerLength(kmerSize);
+                        return new ITupleWriter() {
+
+                            private NodeWritable outputNode = new NodeWritable();
+                            private KmerBytesWritable outputKmer = new KmerBytesWritable();
+
+                            @Override
+                            public void open(DataOutput output) throws HyracksDataException {
+                            }
+
+                            @Override
+                            public void write(DataOutput output, ITupleReference tuple) throws HyracksDataException {
+                                try {
+                                    if (outputKmer.getLength() > tuple
+                                            .getFieldLength(ReadsKeyValueParserFactory.OutputKmerField)) {
+                                        throw new IllegalArgumentException("Not enough kmer bytes");
+                                    }
+                                    outputKmer.setAsReference(
+                                            tuple.getFieldData(ReadsKeyValueParserFactory.OutputKmerField),
+                                            tuple.getFieldStart(ReadsKeyValueParserFactory.OutputKmerField));
+                                    outputNode.setAsReference(
+                                            tuple.getFieldData(ReadsKeyValueParserFactory.OutputNodeField),
+                                            tuple.getFieldStart(ReadsKeyValueParserFactory.OutputNodeField));
+
+                                    output.write(outputKmer.toString().getBytes());
+                                    output.writeByte('\t');
+                                    output.write(outputNode.toString().getBytes());
+                                    output.writeByte('\n');
+                                } catch (IOException e) {
+                                    throw new HyracksDataException(e);
+                                }
+                            }
+
+                            @Override
+                            public void close(DataOutput output) throws HyracksDataException {
+
+                            }
+
+                        };
+                    }
+
+                });
+        connectOperators(jobSpec, readOperator, ncNodeNames, writeKmerOperator, ncNodeNames,
+                new OneToOneConnectorDescriptor(jobSpec));
+        jobSpec.addRoot(writeKmerOperator);
+        return writeKmerOperator;
+    }
+
+}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/util/StatCountAggregateFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/util/StatCountAggregateFactory.java
new file mode 100644
index 0000000..26daa96
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/util/StatCountAggregateFactory.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.hyracks.util;
+
+import java.io.DataOutput;
+import java.io.IOException;
+
+import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import edu.uci.ics.hyracks.dataflow.common.data.marshalling.IntegerSerializerDeserializer;
+import edu.uci.ics.hyracks.dataflow.std.group.AggregateState;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptorFactory;
+
+public class StatCountAggregateFactory implements IAggregatorDescriptorFactory {
+
+    /**
+	 * 
+	 */
+    private static final long serialVersionUID = 1L;
+
+    public class CountAggregator implements IAggregatorDescriptor {
+        private final int[] keyFields;
+
+        public CountAggregator(int[] keyFields) {
+            this.keyFields = keyFields;
+        }
+
+        @Override
+        public AggregateState createAggregateStates() {
+            return null;
+        }
+
+        @Override
+        public void init(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex, AggregateState state)
+                throws HyracksDataException {
+            int count = 1;
+            DataOutput fieldOutput = tupleBuilder.getDataOutput();
+            try {
+                fieldOutput.writeInt(count);
+                tupleBuilder.addFieldEndOffset();
+            } catch (IOException e) {
+                throw new HyracksDataException("I/O exception when initializing the aggregator.");
+            }
+        }
+
+        @Override
+        public void reset() {
+
+        }
+
+        @Override
+        public void aggregate(IFrameTupleAccessor accessor, int tIndex, IFrameTupleAccessor stateAccessor,
+                int stateTupleIndex, AggregateState state) throws HyracksDataException {
+            int count = 1;
+
+            int statetupleOffset = stateAccessor.getTupleStartOffset(stateTupleIndex);
+            int countfieldStart = stateAccessor.getFieldStartOffset(stateTupleIndex, keyFields.length);
+            int countoffset = statetupleOffset + stateAccessor.getFieldSlotsLength() + countfieldStart;
+
+            byte[] data = stateAccessor.getBuffer().array();
+            count += IntegerSerializerDeserializer.getInt(data, countoffset);
+            IntegerSerializerDeserializer.putInt(count, data, countoffset);
+        }
+
+        @Override
+        public void outputPartialResult(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex,
+                AggregateState state) throws HyracksDataException {
+            int count = getCount(accessor, tIndex);
+            DataOutput fieldOutput = tupleBuilder.getDataOutput();
+            try {
+                fieldOutput.writeInt(count);
+                tupleBuilder.addFieldEndOffset();
+            } catch (IOException e) {
+                throw new HyracksDataException("I/O exception when writing aggregation to the output buffer.");
+            }
+
+        }
+
+        protected int getCount(IFrameTupleAccessor accessor, int tIndex) {
+            int tupleOffset = accessor.getTupleStartOffset(tIndex);
+            int fieldStart = accessor.getFieldStartOffset(tIndex, keyFields.length);
+            int countoffset = tupleOffset + accessor.getFieldSlotsLength() + fieldStart;
+            byte[] data = accessor.getBuffer().array();
+
+            return IntegerSerializerDeserializer.getInt(data, countoffset);
+        }
+
+        @Override
+        public void outputFinalResult(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex,
+                AggregateState state) throws HyracksDataException {
+            outputPartialResult(tupleBuilder, accessor, tIndex, state);
+        }
+
+        @Override
+        public void close() {
+
+        }
+
+    }
+
+    @Override
+    public IAggregatorDescriptor createAggregator(IHyracksTaskContext ctx, RecordDescriptor inRecordDescriptor,
+            RecordDescriptor outRecordDescriptor, int[] keyFields, int[] keyFieldsInPartialResults)
+            throws HyracksDataException {
+        return new CountAggregator(keyFields);
+    }
+
+}
diff --git a/genomix/genomix-hyracks/src/main/resources/conf/cluster.properties b/genomix/genomix-hyracks/src/main/resources/conf/cluster.properties
new file mode 100644
index 0000000..66251be
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/conf/cluster.properties
@@ -0,0 +1,41 @@
+#The CC port for Hyracks clients
+CC_CLIENTPORT=3099
+
+#The CC port for Hyracks cluster management
+CC_CLUSTERPORT=1099
+
+#The directory of hyracks binaries
+HYRACKS_HOME="../../../../hyracks"
+
+WORKPATH=""
+#The tmp directory for cc to install jars
+CCTMP_DIR=${WORKPATH}/tmp/t1
+
+#The tmp directory for nc to install jars
+NCTMP_DIR=${WORKPATH}/tmp/t2
+
+#The directory to put cc logs
+CCLOGS_DIR=$CCTMP_DIR/logs
+
+#The directory to put nc logs
+NCLOGS_DIR=$NCTMP_DIR/logs
+
+#Comma separated I/O directories for the spilling of external sort
+IO_DIRS="${WORKPATH}/tmp/t3"
+
+#The JAVA_HOME
+JAVA_HOME=$JAVA_HOME
+
+#HADOOP_HOME 
+CLASSPATH="${HADOOP_HOME}:${CLASSPATH}:."
+
+#The frame size of the internal dataflow engine
+FRAME_SIZE=65536
+
+#CC JAVA_OPTS
+CCJAVA_OPTS="-Xrunjdwp:transport=dt_socket,address=7001,server=y,suspend=n -Xmx1g -Djava.util.logging.config.file=logging.properties"
+# Yourkit option: -agentpath:/grid/0/dev/vborkar/tools/yjp-10.0.4/bin/linux-x86-64/libyjpagent.so=port=20001"
+
+#NC JAVA_OPTS
+NCJAVA_OPTS="-Xrunjdwp:transport=dt_socket,address=7002,server=y,suspend=n -Xmx10g -Djava.util.logging.config.file=logging.properties"
+
diff --git a/genomix/genomix-hyracks/src/main/resources/conf/debugnc.properties b/genomix/genomix-hyracks/src/main/resources/conf/debugnc.properties
new file mode 100644
index 0000000..27afa26
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/conf/debugnc.properties
@@ -0,0 +1,12 @@
+#The tmp directory for nc to install jars
+NCTMP_DIR2=/tmp/t-1
+
+#The directory to put nc logs
+NCLOGS_DIR2=$NCTMP_DIR/logs
+
+#Comma separated I/O directories for the spilling of external sort
+IO_DIRS2="/tmp/t-2,/tmp/t-3"
+
+#NC JAVA_OPTS
+NCJAVA_OPTS2="-Xdebug -Xrunjdwp:transport=dt_socket,address=7003,server=y,suspend=n -Xmx1g -Djava.util.logging.config.file=logging.properties"
+
diff --git a/genomix/genomix-hyracks/src/main/resources/conf/master b/genomix/genomix-hyracks/src/main/resources/conf/master
new file mode 100644
index 0000000..2fbb50c
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/conf/master
@@ -0,0 +1 @@
+localhost
diff --git a/genomix/genomix-hyracks/src/main/resources/conf/slaves b/genomix/genomix-hyracks/src/main/resources/conf/slaves
new file mode 100644
index 0000000..2fbb50c
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/conf/slaves
@@ -0,0 +1 @@
+localhost
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/genomix b/genomix/genomix-hyracks/src/main/resources/scripts/genomix
new file mode 100644
index 0000000..239a46c
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/genomix
@@ -0,0 +1,113 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+#  Copyright 2001-2006 The Apache Software Foundation.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+# ----------------------------------------------------------------------------
+#
+#   Copyright (c) 2001-2006 The Apache Software Foundation.  All rights
+#   reserved.
+
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+  ls=`ls -ld "$PRG"`
+  link=`expr "$ls" : '.*-> \(.*\)$'`
+  if expr "$link" : '/.*' > /dev/null; then
+    PRG="$link"
+  else
+    PRG=`dirname "$PRG"`/"$link"
+  fi
+done
+
+PRGDIR=`dirname "$PRG"`
+BASEDIR=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  Darwin*) darwin=true
+           if [ -z "$JAVA_VERSION" ] ; then
+             JAVA_VERSION="CurrentJDK"
+           else
+             echo "Using Java version: $JAVA_VERSION"
+           fi
+           if [ -z "$JAVA_HOME" ] ; then
+             JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home
+           fi
+           ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# If a specific java binary isn't specified search for the standard 'java' binary
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD=`which java`
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." 1>&2
+  echo "  We cannot execute $JAVACMD" 1>&2
+  exit 1
+fi
+
+if [ -z "$REPO" ]
+then
+  REPO="$BASEDIR"/lib
+fi
+
+CLASSPATH=$CLASSPATH_PREFIX:"$BASEDIR"/etc:"$REPO"/hyracks-dataflow-std-0.2.3-SNAPSHOT.jar:"$REPO"/hyracks-api-0.2.3-SNAPSHOT.jar:"$REPO"/json-20090211.jar:"$REPO"/httpclient-4.1-alpha2.jar:"$REPO"/httpcore-4.1-beta1.jar:"$REPO"/commons-logging-1.1.1.jar:"$REPO"/args4j-2.0.12.jar:"$REPO"/commons-lang3-3.1.jar:"$REPO"/hyracks-dataflow-common-0.2.3-SNAPSHOT.jar:"$REPO"/hyracks-data-std-0.2.3-SNAPSHOT.jar:"$REPO"/hyracks-control-cc-0.2.3-SNAPSHOT.jar:"$REPO"/hyracks-control-common-0.2.3-SNAPSHOT.jar:"$REPO"/jetty-server-8.0.0.RC0.jar:"$REPO"/servlet-api-3.0.20100224.jar:"$REPO"/jetty-continuation-8.0.0.RC0.jar:"$REPO"/jetty-http-8.0.0.RC0.jar:"$REPO"/jetty-io-8.0.0.RC0.jar:"$REPO"/jetty-webapp-8.0.0.RC0.jar:"$REPO"/jetty-xml-8.0.0.RC0.jar:"$REPO"/jetty-util-8.0.0.RC0.jar:"$REPO"/jetty-servlet-8.0.0.RC0.jar:"$REPO"/jetty-security-8.0.0.RC0.jar:"$REPO"/wicket-core-1.5.2.jar:"$REPO"/wicket-util-1.5.2.jar:"$REPO"/wicket-request-1.5.2.jar:"$REPO"/slf4j-api-1.6.1.jar:"$REPO"/slf4j-jcl-1.6.3.jar:"$REPO"/hyracks-control-nc-0.2.3-SNAPSHOT.jar:"$REPO"/dcache-client-0.0.1.jar:"$REPO"/jetty-client-8.0.0.M0.jar:"$REPO"/hyracks-net-0.2.3-SNAPSHOT.jar:"$REPO"/commons-io-1.3.1.jar:"$REPO"/hyracks-ipc-0.2.3-SNAPSHOT.jar:"$REPO"/hadoop-core-0.20.2.jar:"$REPO"/commons-cli-1.2.jar:"$REPO"/xmlenc-0.52.jar:"$REPO"/commons-httpclient-3.0.1.jar:"$REPO"/commons-codec-1.3.jar:"$REPO"/commons-net-1.4.1.jar:"$REPO"/jetty-6.1.14.jar:"$REPO"/jetty-util-6.1.14.jar:"$REPO"/jasper-runtime-5.5.12.jar:"$REPO"/jasper-compiler-5.5.12.jar:"$REPO"/jsp-api-2.1-6.1.14.jar:"$REPO"/jsp-2.1-6.1.14.jar:"$REPO"/ant-1.6.5.jar:"$REPO"/commons-el-1.0.jar:"$REPO"/jets3t-0.7.1.jar:"$REPO"/servlet-api-2.5-6.1.14.jar:"$REPO"/kfs-0.3.jar:"$REPO"/hsqldb-1.8.0.10.jar:"$REPO"/oro-2.0.8.jar:"$REPO"/core-3.1.1.jar:"$REPO"/hadoop-test-0.20.2.jar:"$REPO"/ftplet-api-1.0.0.jar:"$REPO"/mina-core-2.0.0-M5.jar:"$REPO"/ftpserver-core-1.0.0.jar:"$REPO"/ftpserver-deprecated-1.0.0-M2.jar:"$REPO"/hyracks-hdfs-core-0.2.3-SNAPSHOT.jar:"$REPO"/hyracks-hdfs-0.20.2-0.2.3-SNAPSHOT.jar:"$REPO"/genomix-data-0.2.3-SNAPSHOT.jar:"$REPO"/genomix-hyracks-0.2.3-SNAPSHOT.jar
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$HOME" ] && HOME=`cygpath --path --windows "$HOME"`
+  [ -n "$BASEDIR" ] && BASEDIR=`cygpath --path --windows "$BASEDIR"`
+  [ -n "$REPO" ] && REPO=`cygpath --path --windows "$REPO"`
+fi
+
+exec "$JAVACMD" $JAVA_OPTS  \
+  -classpath "$CLASSPATH" \
+  -Dapp.name="genomix" \
+  -Dapp.pid="$$" \
+  -Dapp.repo="$REPO" \
+  -Dapp.home="$BASEDIR" \
+  -Dbasedir="$BASEDIR" \
+  edu.uci.ics.genomix.driver.Driver \
+  "$@"
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/genomix.bat b/genomix/genomix-hyracks/src/main/resources/scripts/genomix.bat
new file mode 100644
index 0000000..abcafaf
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/genomix.bat
@@ -0,0 +1,108 @@
+@REM ----------------------------------------------------------------------------
+@REM  Copyright 2001-2006 The Apache Software Foundation.
+@REM
+@REM  Licensed under the Apache License, Version 2.0 (the "License");
+@REM  you may not use this file except in compliance with the License.
+@REM  You may obtain a copy of the License at
+@REM
+@REM       http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM  Unless required by applicable law or agreed to in writing, software
+@REM  distributed under the License is distributed on an "AS IS" BASIS,
+@REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@REM  See the License for the specific language governing permissions and
+@REM  limitations under the License.
+@REM ----------------------------------------------------------------------------
+@REM
+@REM   Copyright (c) 2001-2006 The Apache Software Foundation.  All rights
+@REM   reserved.
+
+@echo off
+
+set ERROR_CODE=0
+
+:init
+@REM Decide how to startup depending on the version of windows
+
+@REM -- Win98ME
+if NOT "%OS%"=="Windows_NT" goto Win9xArg
+
+@REM set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" @setlocal
+
+@REM -- 4NT shell
+if "%eval[2+2]" == "4" goto 4NTArgs
+
+@REM -- Regular WinNT shell
+set CMD_LINE_ARGS=%*
+goto WinNTGetScriptDir
+
+@REM The 4NT Shell from jp software
+:4NTArgs
+set CMD_LINE_ARGS=%$
+goto WinNTGetScriptDir
+
+:Win9xArg
+@REM Slurp the command line arguments.  This loop allows for an unlimited number
+@REM of arguments (up to the command line limit, anyway).
+set CMD_LINE_ARGS=
+:Win9xApp
+if %1a==a goto Win9xGetScriptDir
+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
+shift
+goto Win9xApp
+
+:Win9xGetScriptDir
+set SAVEDIR=%CD%
+%0\
+cd %0\..\.. 
+set BASEDIR=%CD%
+cd %SAVEDIR%
+set SAVE_DIR=
+goto repoSetup
+
+:WinNTGetScriptDir
+set BASEDIR=%~dp0\..
+
+:repoSetup
+
+
+if "%JAVACMD%"=="" set JAVACMD=java
+
+if "%REPO%"=="" set REPO=%BASEDIR%\lib
+
+set CLASSPATH="%BASEDIR%"\etc;"%REPO%"\hyracks-dataflow-std-0.2.3-SNAPSHOT.jar;"%REPO%"\hyracks-api-0.2.3-SNAPSHOT.jar;"%REPO%"\json-20090211.jar;"%REPO%"\httpclient-4.1-alpha2.jar;"%REPO%"\httpcore-4.1-beta1.jar;"%REPO%"\commons-logging-1.1.1.jar;"%REPO%"\args4j-2.0.12.jar;"%REPO%"\commons-lang3-3.1.jar;"%REPO%"\hyracks-dataflow-common-0.2.3-SNAPSHOT.jar;"%REPO%"\hyracks-data-std-0.2.3-SNAPSHOT.jar;"%REPO%"\hyracks-control-cc-0.2.3-SNAPSHOT.jar;"%REPO%"\hyracks-control-common-0.2.3-SNAPSHOT.jar;"%REPO%"\jetty-server-8.0.0.RC0.jar;"%REPO%"\servlet-api-3.0.20100224.jar;"%REPO%"\jetty-continuation-8.0.0.RC0.jar;"%REPO%"\jetty-http-8.0.0.RC0.jar;"%REPO%"\jetty-io-8.0.0.RC0.jar;"%REPO%"\jetty-webapp-8.0.0.RC0.jar;"%REPO%"\jetty-xml-8.0.0.RC0.jar;"%REPO%"\jetty-util-8.0.0.RC0.jar;"%REPO%"\jetty-servlet-8.0.0.RC0.jar;"%REPO%"\jetty-security-8.0.0.RC0.jar;"%REPO%"\wicket-core-1.5.2.jar;"%REPO%"\wicket-util-1.5.2.jar;"%REPO%"\wicket-request-1.5.2.jar;"%REPO%"\slf4j-api-1.6.1.jar;"%REPO%"\slf4j-jcl-1.6.3.jar;"%REPO%"\hyracks-control-nc-0.2.3-SNAPSHOT.jar;"%REPO%"\dcache-client-0.0.1.jar;"%REPO%"\jetty-client-8.0.0.M0.jar;"%REPO%"\hyracks-net-0.2.3-SNAPSHOT.jar;"%REPO%"\commons-io-1.3.1.jar;"%REPO%"\hyracks-ipc-0.2.3-SNAPSHOT.jar;"%REPO%"\hadoop-core-0.20.2.jar;"%REPO%"\commons-cli-1.2.jar;"%REPO%"\xmlenc-0.52.jar;"%REPO%"\commons-httpclient-3.0.1.jar;"%REPO%"\commons-codec-1.3.jar;"%REPO%"\commons-net-1.4.1.jar;"%REPO%"\jetty-6.1.14.jar;"%REPO%"\jetty-util-6.1.14.jar;"%REPO%"\jasper-runtime-5.5.12.jar;"%REPO%"\jasper-compiler-5.5.12.jar;"%REPO%"\jsp-api-2.1-6.1.14.jar;"%REPO%"\jsp-2.1-6.1.14.jar;"%REPO%"\ant-1.6.5.jar;"%REPO%"\commons-el-1.0.jar;"%REPO%"\jets3t-0.7.1.jar;"%REPO%"\servlet-api-2.5-6.1.14.jar;"%REPO%"\kfs-0.3.jar;"%REPO%"\hsqldb-1.8.0.10.jar;"%REPO%"\oro-2.0.8.jar;"%REPO%"\core-3.1.1.jar;"%REPO%"\hadoop-test-0.20.2.jar;"%REPO%"\ftplet-api-1.0.0.jar;"%REPO%"\mina-core-2.0.0-M5.jar;"%REPO%"\ftpserver-core-1.0.0.jar;"%REPO%"\ftpserver-deprecated-1.0.0-M2.jar;"%REPO%"\hyracks-hdfs-core-0.2.3-SNAPSHOT.jar;"%REPO%"\hyracks-hdfs-0.20.2-0.2.3-SNAPSHOT.jar;"%REPO%"\genomix-data-0.2.3-SNAPSHOT.jar;"%REPO%"\genomix-hyracks-0.2.3-SNAPSHOT.jar
+goto endInit
+
+@REM Reaching here means variables are defined and arguments have been captured
+:endInit
+
+%JAVACMD% %JAVA_OPTS%  -classpath %CLASSPATH_PREFIX%;%CLASSPATH% -Dapp.name="genomix" -Dapp.repo="%REPO%" -Dapp.home="%BASEDIR%" -Dbasedir="%BASEDIR%" edu.uci.ics.genomix.driver.Driver %CMD_LINE_ARGS%
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+if "%OS%"=="Windows_NT" @endlocal
+set ERROR_CODE=%ERRORLEVEL%
+
+:end
+@REM set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" goto endNT
+
+@REM For old DOS remove the set variables from ENV - we assume they were not set
+@REM before we started - at least we don't leave any baggage around
+set CMD_LINE_ARGS=
+goto postExec
+
+:endNT
+@REM If error code is set to 1 then the endlocal was done already in :error.
+if %ERROR_CODE% EQU 0 @endlocal
+
+
+:postExec
+
+if "%FORCE_EXIT_ON_ERROR%" == "on" (
+  if %ERROR_CODE% NEQ 0 exit %ERROR_CODE%
+)
+
+exit /B %ERROR_CODE%
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/getip.sh b/genomix/genomix-hyracks/src/main/resources/scripts/getip.sh
new file mode 100644
index 0000000..e0cdf73
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/getip.sh
@@ -0,0 +1,21 @@
+#get the OS
+OS_NAME=`uname -a|awk '{print $1}'`
+LINUX_OS='Linux'
+
+if [ $OS_NAME = $LINUX_OS ];
+then
+        #Get IP Address
+        IPADDR=`/sbin/ifconfig eth0 | grep "inet " | awk '{print $2}' | cut -f 2 -d ':'`
+	if [ "$IPADDR" = "" ]
+        then
+		IPADDR=`/sbin/ifconfig lo | grep "inet " | awk '{print $2}' | cut -f 2 -d ':'`
+        fi 
+else
+        IPADDR=`/sbin/ifconfig en1 | grep "inet " | awk '{print $2}' | cut -f 2 -d ':'`
+	if [ "$IPADDR" = "" ]
+        then
+                IPADDR=`/sbin/ifconfig lo0 | grep "inet " | awk '{print $2}' | cut -f 2 -d ':'`
+        fi
+
+fi
+echo $IPADDR
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/startAllNCs.sh b/genomix/genomix-hyracks/src/main/resources/scripts/startAllNCs.sh
new file mode 100644
index 0000000..28fcb84
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/startAllNCs.sh
@@ -0,0 +1,6 @@
+GENOMIX_PATH=`pwd`
+
+for i in `cat conf/slaves`
+do
+   ssh $i "cd ${GENOMIX_PATH}; export JAVA_HOME=${JAVA_HOME}; bin/startnc.sh"
+done
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/startCluster.sh b/genomix/genomix-hyracks/src/main/resources/scripts/startCluster.sh
new file mode 100755
index 0000000..843a6b1
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/startCluster.sh
@@ -0,0 +1,4 @@
+bin/startcc.sh
+sleep 5
+bin/startAllNCs.sh
+
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/startDebugNc.sh b/genomix/genomix-hyracks/src/main/resources/scripts/startDebugNc.sh
new file mode 100644
index 0000000..5f89bcc
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/startDebugNc.sh
@@ -0,0 +1,48 @@
+hostname
+
+#Get the IP address of the cc
+CCHOST_NAME=`cat conf/master`
+CURRENT_PATH=`pwd`
+CCHOST=`ssh ${CCHOST_NAME} "cd ${CURRENT_PATH}; bin/getip.sh"`
+
+#Import cluster properties
+. conf/cluster.properties
+. conf/debugnc.properties
+
+#Clean up temp dir
+
+#rm -rf $NCTMP_DIR2
+mkdir -p $NCTMP_DIR2
+
+#Clean up log dir
+#rm -rf $NCLOGS_DIR2
+mkdir -p $NCLOGS_DIR2
+
+
+#Clean up I/O working dir
+io_dirs=$(echo $IO_DIRS2 | tr "," "\n")
+for io_dir in $io_dirs
+do
+	#rm -rf $io_dir
+	mkdir $io_dir
+done
+
+#Set JAVA_HOME
+export JAVA_HOME=$JAVA_HOME
+
+#Get OS
+IPADDR=`bin/getip.sh`
+
+#Get node ID
+NODEID=`hostname | cut -d '.' -f 1`
+
+#Set JAVA_OPTS
+export JAVA_OPTS=$NCJAVA_OPTS2
+
+GENOMIX_HOME=`pwd`
+
+#Enter the temp dir
+cd $NCTMP_DIR2
+
+#Launch hyracks nc
+${GENOMIX_HOME}/bin/genomixnc -cc-host $CCHOST -cc-port $CC_CLUSTERPORT -cluster-net-ip-address $IPADDR  -data-ip-address $IPADDR -result-ip-address $IPADDR -node-id $NODEID -iodevices "${IO_DIRS}" &> $NCLOGS_DIR/$NODEID.log &
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/startcc.sh b/genomix/genomix-hyracks/src/main/resources/scripts/startcc.sh
new file mode 100644
index 0000000..67023c1
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/startcc.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+hostname
+
+#Import cluster properties
+. conf/cluster.properties
+
+#Get the IP address of the cc
+CCHOST_NAME=`cat conf/master`
+CCHOST=`bin/getip.sh`
+
+#Remove the temp dir
+#rm -rf $CCTMP_DIR
+mkdir -p $CCTMP_DIR
+
+#Remove the logs dir
+#rm -rf $CCLOGS_DIR
+mkdir -p $CCLOGS_DIR
+
+#Export JAVA_HOME and JAVA_OPTS
+export JAVA_HOME=$JAVA_HOME
+export JAVA_OPTS=$CCJAVA_OPTS
+
+GENOMIX_HOME=`pwd`
+cd $CCTMP_DIR
+#Launch hyracks cc script
+${GENOMIX_HOME}/bin/genomixcc -client-net-ip-address $CCHOST -cluster-net-ip-address $CCHOST -client-net-port $CC_CLIENTPORT -cluster-net-port $CC_CLUSTERPORT -max-heartbeat-lapse-periods 999999 -default-max-job-attempts 0 -job-history-size 3 &> $CCLOGS_DIR/cc.log &
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/startnc.sh b/genomix/genomix-hyracks/src/main/resources/scripts/startnc.sh
new file mode 100644
index 0000000..bfcc1d4
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/startnc.sh
@@ -0,0 +1,48 @@
+hostname
+
+MY_NAME=`hostname`
+#Get the IP address of the cc
+CCHOST_NAME=`cat conf/master`
+CURRENT_PATH=`pwd`
+CCHOST=`ssh ${CCHOST_NAME} "cd ${CURRENT_PATH}; bin/getip.sh"`
+
+#Import cluster properties
+. conf/cluster.properties
+
+#Clean up temp dir
+
+#rm -rf $NCTMP_DIR
+mkdir -p $NCTMP_DIR
+
+#Clean up log dir
+#rm -rf $NCLOGS_DIR
+mkdir -p $NCLOGS_DIR
+
+
+#Clean up I/O working dir
+io_dirs=$(echo $IO_DIRS | tr "," "\n")
+for io_dir in $io_dirs
+do
+	#rm -rf $io_dir
+	mkdir -p $io_dir
+done
+
+#Set JAVA_HOME
+export JAVA_HOME=$JAVA_HOME
+
+IPADDR=`bin/getip.sh`
+#echo $IPADDR
+
+#Get node ID
+NODEID=`hostname | cut -d '.' -f 1`
+
+#Set JAVA_OPTS
+export JAVA_OPTS=$NCJAVA_OPTS
+
+GENOMIX_HOME=`pwd`
+
+#Enter the temp dir
+cd $NCTMP_DIR
+
+#Launch hyracks nc
+${GENOMIX_HOME}/bin/genomixnc -cc-host $CCHOST -cc-port $CC_CLUSTERPORT -cluster-net-ip-address $IPADDR  -data-ip-address $IPADDR -result-ip-address $IPADDR -node-id $NODEID -iodevices "${IO_DIRS}" &> $NCLOGS_DIR/$NODEID.log &
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/stopAllNCs.sh b/genomix/genomix-hyracks/src/main/resources/scripts/stopAllNCs.sh
new file mode 100644
index 0000000..66ed866
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/stopAllNCs.sh
@@ -0,0 +1,6 @@
+GENOMIX_PATH=`pwd`
+
+for i in `cat conf/slaves`
+do
+   ssh $i "cd ${GENOMIX_PATH}; bin/stopnc.sh"
+done
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/stopCluster.sh b/genomix/genomix-hyracks/src/main/resources/scripts/stopCluster.sh
new file mode 100644
index 0000000..4889934
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/stopCluster.sh
@@ -0,0 +1,3 @@
+bin/stopAllNCs.sh
+sleep 2
+bin/stopcc.sh
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/stopcc.sh b/genomix/genomix-hyracks/src/main/resources/scripts/stopcc.sh
new file mode 100644
index 0000000..6d1b2d2
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/stopcc.sh
@@ -0,0 +1,20 @@
+hostname
+. conf/cluster.properties
+
+#Kill process
+PID=`ps -ef|grep ${USER}|grep java|grep 'Dapp.name=genomixcc'|awk '{print $2}'`
+
+if [ "$PID" == "" ]; then
+    PID=`ps -ef|grep ${USER}|grep java|grep 'hyracks'|awk '{print $2}'`
+fi
+
+if [ "$PID" == "" ]; then
+    USERID=`id | sed 's/^uid=//;s/(.*$//'`
+    PID=`ps -ef|grep ${USERID}|grep java|grep 'Dapp.name=genomixcc'|awk '{print $2}'`
+fi
+
+echo $PID
+kill -9 $PID
+
+#Clean up CC temp dir
+rm -rf $CCTMP_DIR/*
diff --git a/genomix/genomix-hyracks/src/main/resources/scripts/stopnc.sh b/genomix/genomix-hyracks/src/main/resources/scripts/stopnc.sh
new file mode 100644
index 0000000..092e232
--- /dev/null
+++ b/genomix/genomix-hyracks/src/main/resources/scripts/stopnc.sh
@@ -0,0 +1,31 @@
+hostname
+. conf/cluster.properties
+
+#Kill process
+PID=`ps -ef|grep ${USER}|grep java|grep 'Dapp.name=genomixnc'|awk '{print $2}'`
+
+if [ "$PID" == "" ]; then
+  PID=`ps -ef|grep ${USER}|grep java|grep 'hyracks'|awk '{print $2}'`
+fi
+
+if [ "$PID" == "" ]; then
+  PID=`ps -ef|grep ${USER}|grep java|grep 'hyracks'|awk '{print $2}'`
+fi
+
+if [ "$PID" == "" ]; then
+  USERID=`id | sed 's/^uid=//;s/(.*$//'`
+  PID=`ps -ef|grep ${USERID}|grep java|grep 'Dapp.name=genomixnc'|awk '{print $2}'`
+fi
+
+echo $PID
+kill -9 $PID
+
+#Clean up I/O working dir
+io_dirs=$(echo $IO_DIRS | tr "," "\n")
+for io_dir in $io_dirs
+do
+	rm -rf $io_dir/*
+done
+
+#Clean up NC temp dir
+rm -rf $NCTMP_DIR/*
diff --git a/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/newgraph/test/JobRun.java b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/newgraph/test/JobRun.java
new file mode 100644
index 0000000..3a98573
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/newgraph/test/JobRun.java
@@ -0,0 +1,148 @@
+package edu.uci.ics.genomix.hyracks.newgraph.test;
+
+import java.io.BufferedWriter;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+
+import junit.framework.Assert;
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.FileUtil;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.io.SequenceFile;
+import org.apache.hadoop.mapred.FileInputFormat;
+import org.apache.hadoop.mapred.FileOutputFormat;
+import org.apache.hadoop.mapred.JobConf;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import edu.uci.ics.genomix.hyracks.newgraph.job.GenomixJobConf;
+import edu.uci.ics.genomix.hyracks.newgraph.driver.Driver;
+import edu.uci.ics.genomix.hyracks.newgraph.driver.Driver.Plan;
+//import edu.uci.ics.genomix.hyracks.test.TestUtils;
+//import edu.uci.ics.genomix.oldtype.NodeWritable;
+
+@SuppressWarnings("deprecation")
+public class JobRun {
+    private static final int KmerSize = 3;
+    private static final int ReadLength = 6;
+    private static final String ACTUAL_RESULT_DIR = "actual";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+
+    private static final String DATA_INPUT_PATH = "src/test/resources/data/lastesttest/Tips4.txt";
+    private static final String HDFS_INPUT_PATH = "/webmap";
+    private static final String HDFS_OUTPUT_PATH = "/webmap_result";
+
+    private static final String DUMPED_RESULT = ACTUAL_RESULT_DIR + HDFS_OUTPUT_PATH + "/Tips4.txt";
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";;
+    private MiniDFSCluster dfsCluster;
+    
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 2;
+    private int numPartitionPerMachine = 2;
+    
+    private Driver driver;
+    
+    @Test
+    public void TestAll() throws Exception {
+//        TestReader();
+        TestGroupby();
+    }
+    
+    public void TestReader() throws Exception {
+        cleanUpReEntry();
+        conf.set(GenomixJobConf.OUTPUT_FORMAT, GenomixJobConf.OUTPUT_FORMAT_TEXT);
+        driver.runJob(new GenomixJobConf(conf), Plan.CHECK_KMERREADER, true);
+        dumpResult();
+    }
+    
+    public void TestGroupby() throws Exception {
+        conf.set(GenomixJobConf.OUTPUT_FORMAT, GenomixJobConf.OUTPUT_FORMAT_TEXT);
+        cleanUpReEntry();
+        conf.set(GenomixJobConf.GROUPBY_TYPE, GenomixJobConf.GROUPBY_TYPE_PRECLUSTER);
+        driver.runJob(new GenomixJobConf(conf), Plan.BUILD_DEBRUJIN_GRAPH, true);
+        dumpResult();
+    }
+    
+    @Before
+    public void setUp() throws Exception {
+        cleanupStores();
+        edu.uci.ics.hyracks.hdfs.utils.HyracksUtils.init();
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+
+        FileInputFormat.setInputPaths(conf, HDFS_INPUT_PATH);
+        FileOutputFormat.setOutputPath(conf, new Path(HDFS_OUTPUT_PATH));
+
+        conf.setInt(GenomixJobConf.KMER_LENGTH, KmerSize);
+        conf.setInt(GenomixJobConf.READ_LENGTH, ReadLength);
+        driver = new Driver(edu.uci.ics.hyracks.hdfs.utils.HyracksUtils.CC_HOST,
+                edu.uci.ics.hyracks.hdfs.utils.HyracksUtils.TEST_HYRACKS_CC_CLIENT_PORT, numPartitionPerMachine);
+    }
+    
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+        Path src = new Path(DATA_INPUT_PATH);
+        Path dest = new Path(HDFS_INPUT_PATH);
+        dfs.mkdirs(dest);
+        // dfs.mkdirs(result);
+        dfs.copyFromLocalFile(src, dest);
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+    
+    private void cleanUpReEntry() throws IOException {
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        if (lfs.exists(new Path(DUMPED_RESULT))) {
+            lfs.delete(new Path(DUMPED_RESULT), true);
+        }
+        FileSystem dfs = FileSystem.get(conf);
+        if (dfs.exists(new Path(HDFS_OUTPUT_PATH))) {
+            dfs.delete(new Path(HDFS_OUTPUT_PATH), true);
+        }
+    }
+    
+    private void dumpResult() throws Exception {
+        String format = conf.get(GenomixJobConf.OUTPUT_FORMAT);
+        if (GenomixJobConf.OUTPUT_FORMAT_TEXT.equalsIgnoreCase(format)) {
+            FileUtil.copyMerge(FileSystem.get(conf), new Path(HDFS_OUTPUT_PATH),
+                    FileSystem.getLocal(new Configuration()), new Path(DUMPED_RESULT), false, conf, null);
+        } 
+    }
+    
+    @After
+    public void tearDown() throws Exception {
+        edu.uci.ics.hyracks.hdfs.utils.HyracksUtils.deinit();
+        cleanupHDFS();
+    }
+
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+}
diff --git a/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/newgraph/test/TestUtils.java b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/newgraph/test/TestUtils.java
new file mode 100644
index 0000000..9fcbca3
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/newgraph/test/TestUtils.java
@@ -0,0 +1,235 @@
+/*
+ * Copyright 2009-2013 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.hyracks.newgraph.test;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.Collections;
+
+public class TestUtils {
+    /**
+     * Compare with the sorted expected file.
+     * The actual file may not be sorted;
+     * 
+     * @param expectedFile
+     * @param actualFile
+     */
+    public static void compareWithSortedResult(File expectedFile, File actualFile) throws Exception {
+        BufferedReader readerActual = new BufferedReader(new FileReader(actualFile));
+        BufferedReader readerExpected = new BufferedReader(new FileReader(expectedFile));
+        ArrayList<String> actualLines = new ArrayList<String>();
+        String lineExpected, lineActual;
+        try {
+            while ((lineActual = readerActual.readLine()) != null) {
+                actualLines.add(lineActual);
+            }
+            Collections.sort(actualLines);
+            int num = 1;
+            for (String actualLine : actualLines) {
+                lineExpected = readerExpected.readLine();
+                if (lineExpected == null) {
+                    throw new Exception("Actual result changed at line " + num + ":\n< " + actualLine + "\n> ");
+                }
+                if (!equalStrings(lineExpected, actualLine)) {
+                    throw new Exception("Result for changed at line " + num + ":\n< " + lineExpected + "\n> "
+                            + actualLine);
+                }
+                ++num;
+            }
+            lineExpected = readerExpected.readLine();
+            if (lineExpected != null) {
+                throw new Exception("Actual result changed at line " + num + ":\n< \n> " + lineExpected);
+            }
+        } finally {
+            readerActual.close();
+            readerExpected.close();
+        }
+    }
+
+    public static void compareWithUnSortedPosition(File expectedFile, File actualFile, int[] poslistField)
+            throws Exception {
+        BufferedReader readerActual = new BufferedReader(new FileReader(actualFile));
+        BufferedReader readerExpected = new BufferedReader(new FileReader(expectedFile));
+        ArrayList<String> actualLines = new ArrayList<String>();
+        String lineExpected, lineActual;
+        try {
+            while ((lineActual = readerActual.readLine()) != null) {
+                actualLines.add(lineActual);
+            }
+            Collections.sort(actualLines);
+            int num = 1;
+            for (String actualLine : actualLines) {
+                lineExpected = readerExpected.readLine();
+                if (lineExpected == null) {
+                    throw new Exception("Actual result changed at line " + num + ":\n< " + actualLine + "\n> ");
+                }
+                if (!containStrings(lineExpected, actualLine, poslistField)) {
+                    throw new Exception("Result for changed at line " + num + ":\n< " + lineExpected + "\n> "
+                            + actualLine);
+                }
+                ++num;
+            }
+            lineExpected = readerExpected.readLine();
+            if (lineExpected != null) {
+                throw new Exception("Actual result changed at line " + num + ":\n< \n> " + lineExpected);
+            }
+        } finally {
+            readerActual.close();
+            readerExpected.close();
+        }
+    }
+
+    public static void compareWithResult(File expectedFile, File actualFile) throws Exception {
+        BufferedReader readerExpected = new BufferedReader(new FileReader(expectedFile));
+        BufferedReader readerActual = new BufferedReader(new FileReader(actualFile));
+        String lineExpected, lineActual;
+        int num = 1;
+        try {
+            while ((lineExpected = readerExpected.readLine()) != null) {
+                lineActual = readerActual.readLine();
+                // Assert.assertEquals(lineExpected, lineActual);
+                if (lineActual == null) {
+                    throw new Exception("Actual result changed at line " + num + ":\n< " + lineExpected + "\n> ");
+                }
+                if (!equalStrings(lineExpected, lineActual)) {
+                    throw new Exception("Result for changed at line " + num + ":\n< " + lineExpected + "\n> "
+                            + lineActual);
+                }
+                ++num;
+            }
+            lineActual = readerActual.readLine();
+            if (lineActual != null) {
+                throw new Exception("Actual result changed at line " + num + ":\n< \n> " + lineActual);
+            }
+        } finally {
+            readerExpected.close();
+            readerActual.close();
+        }
+    }
+
+    private static boolean equalStrings(String s1, String s2) {
+        String[] rowsOne = s1.split("\n");
+        String[] rowsTwo = s2.split("\n");
+
+        if (rowsOne.length != rowsTwo.length)
+            return false;
+
+        for (int i = 0; i < rowsOne.length; i++) {
+            String row1 = rowsOne[i];
+            String row2 = rowsTwo[i];
+
+            if (row1.equals(row2))
+                continue;
+
+            String[] fields1 = row1.split(",");
+            String[] fields2 = row2.split(",");
+
+            for (int j = 0; j < fields1.length; j++) {
+                if (fields1[j].equals(fields2[j])) {
+                    continue;
+                } else if (fields1[j].indexOf('.') < 0) {
+                    return false;
+                } else {
+                    fields1[j] = fields1[j].split("=")[1];
+                    fields2[j] = fields2[j].split("=")[1];
+                    Double double1 = Double.parseDouble(fields1[j]);
+                    Double double2 = Double.parseDouble(fields2[j]);
+                    float float1 = (float) double1.doubleValue();
+                    float float2 = (float) double2.doubleValue();
+
+                    if (Math.abs(float1 - float2) == 0)
+                        continue;
+                    else {
+                        return false;
+                    }
+                }
+            }
+        }
+        return true;
+    }
+
+    private static boolean containStrings(String lineExpected, String actualLine, int[] poslistField) {
+        if (lineExpected.equals(actualLine)) {
+            return true;
+        }
+        String[] fieldsExp = lineExpected.split("\\\t");
+        String[] fieldsAct = actualLine.split("\\\t");
+        if (fieldsAct.length != fieldsExp.length) {
+            return false;
+        }
+        for (int i = 0; i < fieldsAct.length; i++) {
+            boolean cont = false;
+            for (int x : poslistField) {
+                if (i == x) {
+                    cont = true;
+                    break;
+                }
+            }
+            if (cont) {
+                continue;
+            }
+            if (!fieldsAct[i].equals(fieldsExp[i])) {
+                return false;
+            }
+        }
+
+        ArrayList<String> posExp = new ArrayList<String>();
+        ArrayList<String> posAct = new ArrayList<String>();
+
+        for (int x : poslistField) {
+            String valueExp = lineExpected.split("\\\t")[x];
+            for (int i = 1; i < valueExp.length() - 1;) {
+                if (valueExp.charAt(i) == '(') {
+                    String str = "";
+                    i++;
+                    while (i < valueExp.length() - 1 && valueExp.charAt(i) != ')') {
+                        str += valueExp.charAt(i);
+                        i++;
+                    }
+                    posExp.add(str);
+                }
+                i++;
+            }
+            String valueAct = actualLine.split("\\\t")[x];
+            for (int i = 1; i < valueAct.length() - 1;) {
+                if (valueAct.charAt(i) == '(') {
+                    String str = "";
+                    i++;
+                    while (i < valueAct.length() - 1 && valueAct.charAt(i) != ')') {
+                        str += valueAct.charAt(i);
+                        i++;
+                    }
+                    posAct.add(str);
+                }
+                i++;
+            }
+
+            if (posExp.size() != posAct.size()) {
+                return false;
+            }
+            Collections.sort(posExp);
+            Collections.sort(posAct);
+            for (int i = 0; i < posExp.size(); i++) {
+                if (!posExp.get(i).equals(posAct.get(i))) {
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+}
diff --git a/genomix/genomix-hyracks/src/test/resources/HighSplitRepeatResult.txt b/genomix/genomix-hyracks/src/test/resources/HighSplitRepeatResult.txt
new file mode 100755
index 0000000..dc4395d
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/HighSplitRepeatResult.txt
@@ -0,0 +1,6 @@
+{[(1-0_0)]	[]	[]	[]	[GCC]	CCA	1.0x}
+{[(2-0_0)]	[GCC]	[]	[]	[]	CGC	1.0x}
+{[(3-0_0)]	[]	[CCG]	[]	[GCC]	CCG	2.0x}
+{[(2-0_0),(3-0_0),(1-0_0)]	[CCG,CCA]	[AGG]	[]	[AGC,CGC]	GCC	3.0x}
+{[(1-0_0)]	[GCC]	[]	[]	[]	AGC	1.0x}
+{[(2-0_0)]	[]	[GCC]	[]	[]	AGG	1.0x}
diff --git a/genomix/genomix-hyracks/src/test/resources/LowSplitRepeatResult.txt b/genomix/genomix-hyracks/src/test/resources/LowSplitRepeatResult.txt
new file mode 100755
index 0000000..f8df8bb
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/LowSplitRepeatResult.txt
@@ -0,0 +1,6 @@
+{[(1-0_0)]	[]	[]	[]	[GCC]	CCA	1.0x}
+{[(2-0_0)]	[]	[]	[]	[GCC]	CCG	1.0x}
+{[(2-0_0),(3-0_0),(1-0_0)]	[CCG,CCA]	[AGG]	[]	[AGC]	GCC	3.0x}
+{[(2-0_0),(1-0_0)]	[GCC]	[]	[]	[]	AGC	2.0x}
+{[(3-0_0)]	[AGG]	[]	[]	[]	AAG	1.0x}
+{[(3-0_0)]	[]	[GCC]	[]	[AAG]	AGG	1.0x}
diff --git a/genomix/genomix-hyracks/src/test/resources/MidSplitRepeatResult.txt b/genomix/genomix-hyracks/src/test/resources/MidSplitRepeatResult.txt
new file mode 100755
index 0000000..dc4395d
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/MidSplitRepeatResult.txt
@@ -0,0 +1,6 @@
+{[(1-0_0)]	[]	[]	[]	[GCC]	CCA	1.0x}
+{[(2-0_0)]	[GCC]	[]	[]	[]	CGC	1.0x}
+{[(3-0_0)]	[]	[CCG]	[]	[GCC]	CCG	2.0x}
+{[(2-0_0),(3-0_0),(1-0_0)]	[CCG,CCA]	[AGG]	[]	[AGC,CGC]	GCC	3.0x}
+{[(1-0_0)]	[GCC]	[]	[]	[]	AGC	1.0x}
+{[(2-0_0)]	[]	[GCC]	[]	[]	AGG	1.0x}
diff --git a/genomix/genomix-hyracks/src/test/resources/Tips1Result.txt b/genomix/genomix-hyracks/src/test/resources/Tips1Result.txt
new file mode 100755
index 0000000..3f04844
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/Tips1Result.txt
@@ -0,0 +1,7 @@
+{[(1-0_0)]	[]	[]	[]	[GCC]	CCA	1.0x}
+{[(1-0_0)]	[AGC]	[]	[]	[]	CAG	1.0x}
+{[(2-0_0)]	[]	[ACG]	[]	[GCC]	CCG	1.0x}
+{[(2-0_0)]	[]	[]	[ACG]	[]	GTA	1.0x}
+{[(2-0_0),(1-0_0)]	[CCG,CCA]	[]	[]	[AGC]	GCC	2.0x}
+{[(1-0_0)]	[GCC]	[]	[]	[CAG]	AGC	1.0x}
+{[(2-0_0)]	[]	[CCG]	[GTA]	[]	ACG	1.0x}
diff --git a/genomix/genomix-hyracks/src/test/resources/Tips2Result.txt b/genomix/genomix-hyracks/src/test/resources/Tips2Result.txt
new file mode 100755
index 0000000..322cc70
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/Tips2Result.txt
@@ -0,0 +1,7 @@
+{[(2-0_0)]	[GAA]	[]	[CGC]	[]	CGA	1.0x}
+{[(2-0_0),(1-0_0)]	[GCC]	[AGC]	[CGA]	[]	CGC	2.0x}
+{[(1-0_0)]	[AGC]	[]	[]	[ACA]	CAG	1.0x}
+{[(2-0_0)]	[]	[]	[]	[CGA]	GAA	1.0x}
+{[(2-0_0)]	[]	[]	[]	[CGC]	GCC	1.0x}
+{[(1-0_0)]	[CAG]	[]	[]	[]	ACA	1.0x}
+{[(1-0_0)]	[]	[CGC]	[]	[CAG]	AGC	1.0x}
diff --git a/genomix/genomix-hyracks/src/test/resources/Tips3Result.txt b/genomix/genomix-hyracks/src/test/resources/Tips3Result.txt
new file mode 100755
index 0000000..d37d70c
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/Tips3Result.txt
@@ -0,0 +1,5 @@
+{[(2-0_0)]	[]	[]	[]	[GCC]	CCA	1.0x}
+{[(2-0_0),(1-0_0)]	[AGC]	[]	[]	[]	CAG	2.0x}
+{[(2-0_0),(1-0_0)]	[CCA]	[AGG]	[]	[AGC]	GCC	2.0x}
+{[(2-0_0),(1-0_0)]	[GCC]	[]	[]	[CAG]	AGC	2.0x}
+{[(1-0_0)]	[]	[GCC]	[]	[]	AGG	1.0x}
diff --git a/genomix/genomix-hyracks/src/test/resources/Tips4Result.txt b/genomix/genomix-hyracks/src/test/resources/Tips4Result.txt
new file mode 100755
index 0000000..de3a226
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/Tips4Result.txt
@@ -0,0 +1,4 @@
+{[(2-0_0),(1-0_0)]	[AGG]	[]	[]	[]	CAG	2.0x}
+{[(1-0_0)]	[]	[]	[GCC]	[]	GCA	1.0x}
+{[(2-0_0),(1-0_0)]	[]	[AGG]	[GCC,GCA]	[]	GCC	3.0x}
+{[(2-0_0),(1-0_0)]	[]	[GCC]	[]	[CAG]	AGG	2.0x}
diff --git a/genomix/genomix-hyracks/src/test/resources/data/lastesttest/HighSplitRepeat.txt b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/HighSplitRepeat.txt
new file mode 100644
index 0000000..eca0a13
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/HighSplitRepeat.txt
@@ -0,0 +1,3 @@
+1	AGCCACA
+2	GCACTTT
+3	CGCCGTC
diff --git a/genomix/genomix-hyracks/src/test/resources/data/lastesttest/LowSplitRepeat.txt b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/LowSplitRepeat.txt
new file mode 100644
index 0000000..259fd80
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/LowSplitRepeat.txt
@@ -0,0 +1,3 @@
+1	AGCCA
+2	AGCCG
+3	GCCTT
diff --git a/genomix/genomix-hyracks/src/test/resources/data/lastesttest/MidSplitRepeat.txt b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/MidSplitRepeat.txt
new file mode 100644
index 0000000..e934e54
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/MidSplitRepeat.txt
@@ -0,0 +1,3 @@
+1	AGCCA
+2	CGCCT
+3	GCCGG
diff --git a/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips1.txt b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips1.txt
new file mode 100644
index 0000000..1e16d68
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips1.txt
@@ -0,0 +1,2 @@
+1	CAGCCA
+2	GCCGTA
diff --git a/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips2.txt b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips2.txt
new file mode 100644
index 0000000..8109730
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips2.txt
@@ -0,0 +1,2 @@
+1	ACAGCG
+2	GGCGAA
diff --git a/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips3.txt b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips3.txt
new file mode 100644
index 0000000..a672034
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips3.txt
@@ -0,0 +1,2 @@
+1	CAGCCT
+2	CAGCCA
diff --git a/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips4.txt b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips4.txt
new file mode 100644
index 0000000..499e8e6
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/lastesttest/Tips4.txt
@@ -0,0 +1,2 @@
+1	CAGGCA
+2	CAGGCC
diff --git a/genomix/genomix-hyracks/src/test/resources/data/webmap/SplitRepeat.txt b/genomix/genomix-hyracks/src/test/resources/data/webmap/SplitRepeat.txt
new file mode 100644
index 0000000..bb03d70
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/webmap/SplitRepeat.txt
@@ -0,0 +1,2 @@
+1	AATAG
+2	CATAC
diff --git a/genomix/genomix-hyracks/src/test/resources/data/webmap/test1.txt b/genomix/genomix-hyracks/src/test/resources/data/webmap/test1.txt
new file mode 100644
index 0000000..a720dc4
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/webmap/test1.txt
@@ -0,0 +1 @@
+1	AATAGAA
diff --git a/genomix/genomix-hyracks/src/test/resources/data/webmap/text.txt b/genomix/genomix-hyracks/src/test/resources/data/webmap/text.txt
new file mode 100755
index 0000000..01c49e5
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/data/webmap/text.txt
@@ -0,0 +1,6 @@
+1	AATAGAAG
+2	AATAGCTT
+3	AATAGAAG
+4	AATAGCTT
+5	AATAGAAG
+6	AGAAGAAG
diff --git a/genomix/genomix-hyracks/src/test/resources/hadoop/conf/core-site.xml b/genomix/genomix-hyracks/src/test/resources/hadoop/conf/core-site.xml
new file mode 100644
index 0000000..3e5bacb
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/hadoop/conf/core-site.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+	<property>
+		<name>fs.default.name</name>
+		<value>hdfs://127.0.0.1:31888</value>
+	</property>
+	<property>
+		<name>hadoop.tmp.dir</name>
+		<value>/tmp/hadoop</value>
+	</property>
+
+
+</configuration>
diff --git a/genomix/genomix-hyracks/src/test/resources/hadoop/conf/hdfs-site.xml b/genomix/genomix-hyracks/src/test/resources/hadoop/conf/hdfs-site.xml
new file mode 100644
index 0000000..b1b1902
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/hadoop/conf/hdfs-site.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+	<property>
+		<name>dfs.replication</name>
+		<value>1</value>
+	</property>
+
+	<property>
+		<name>dfs.block.size</name>
+		<value>65536</value>
+	</property>
+
+</configuration>
diff --git a/genomix/genomix-hyracks/src/test/resources/hadoop/conf/log4j.properties b/genomix/genomix-hyracks/src/test/resources/hadoop/conf/log4j.properties
new file mode 100755
index 0000000..d5e6004
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/hadoop/conf/log4j.properties
@@ -0,0 +1,94 @@
+# Define some default values that can be overridden by system properties
+hadoop.root.logger=FATAL,console
+hadoop.log.dir=.
+hadoop.log.file=hadoop.log
+
+# Define the root logger to the system property "hadoop.root.logger".
+log4j.rootLogger=${hadoop.root.logger}, EventCounter
+
+# Logging Threshold
+log4j.threshhold=FATAL
+
+#
+# Daily Rolling File Appender
+#
+
+log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Rollver at midnight
+log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
+
+# 30-day backup
+#log4j.appender.DRFA.MaxBackupIndex=30
+log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
+
+# Pattern format: Date LogLevel LoggerName LogMessage
+log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+# Debugging Pattern format
+#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+
+#
+# console
+# Add "console" to rootlogger above if you want to use this 
+#
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.target=System.err
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
+
+#
+# TaskLog Appender
+#
+
+#Default values
+hadoop.tasklog.taskid=null
+hadoop.tasklog.noKeepSplits=4
+hadoop.tasklog.totalLogFileSize=100
+hadoop.tasklog.purgeLogSplits=true
+hadoop.tasklog.logsRetainHours=12
+
+log4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender
+log4j.appender.TLA.taskId=${hadoop.tasklog.taskid}
+log4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}
+
+log4j.appender.TLA.layout=org.apache.log4j.PatternLayout
+log4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+
+#
+# Rolling File Appender
+#
+
+#log4j.appender.RFA=org.apache.log4j.RollingFileAppender
+#log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Logfile size and and 30-day backups
+#log4j.appender.RFA.MaxFileSize=1MB
+#log4j.appender.RFA.MaxBackupIndex=30
+
+#log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+#
+# FSNamesystem Audit logging
+# All audit events are logged at INFO level
+#
+log4j.logger.org.apache.hadoop.fs.FSNamesystem.audit=WARN
+
+# Custom Logging levels
+
+#log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG
+#log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG
+#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
+
+# Jets3t library
+log4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR
+
+#
+# Event Counter Appender
+# Sends counts of logging messages at different severity levels to Hadoop Metrics.
+#
+log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
diff --git a/genomix/genomix-hyracks/src/test/resources/hadoop/conf/mapred-site.xml b/genomix/genomix-hyracks/src/test/resources/hadoop/conf/mapred-site.xml
new file mode 100644
index 0000000..525e7d5
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/resources/hadoop/conf/mapred-site.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+	<property>
+		<name>mapred.job.tracker</name>
+		<value>localhost:29007</value>
+	</property>
+	<property>
+		<name>mapred.tasktracker.map.tasks.maximum</name>
+		<value>20</value>
+	</property>
+	<property>
+		<name>mapred.tasktracker.reduce.tasks.maximum</name>
+		<value>20</value>
+	</property>
+	<property>
+		<name>mapred.max.split.size</name>
+		<value>2048</value>
+	</property>
+
+</configuration>
diff --git a/genomix/genomix-pregelix/data/AddBridge/SimpleTest/part-00000 b/genomix/genomix-pregelix/data/AddBridge/SimpleTest/part-00000
new file mode 100755
index 0000000..22508c2
--- /dev/null
+++ b/genomix/genomix-pregelix/data/AddBridge/SimpleTest/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathMergeTestSet/2/part-00000 b/genomix/genomix-pregelix/data/PathMergeTestSet/2/part-00000
new file mode 100755
index 0000000..dc6250b
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathMergeTestSet/2/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathMergeTestSet/3/part-00000 b/genomix/genomix-pregelix/data/PathMergeTestSet/3/part-00000
new file mode 100755
index 0000000..a672f70
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathMergeTestSet/3/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathMergeTestSet/4/part-00000 b/genomix/genomix-pregelix/data/PathMergeTestSet/4/part-00000
new file mode 100755
index 0000000..b47312f
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathMergeTestSet/4/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathMergeTestSet/5/part-00000 b/genomix/genomix-pregelix/data/PathMergeTestSet/5/part-00000
new file mode 100755
index 0000000..3b06e4c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathMergeTestSet/5/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathMergeTestSet/6/part-00000 b/genomix/genomix-pregelix/data/PathMergeTestSet/6/part-00000
new file mode 100755
index 0000000..330821c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathMergeTestSet/6/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathMergeTestSet/7/part-00000 b/genomix/genomix-pregelix/data/PathMergeTestSet/7/part-00000
new file mode 100755
index 0000000..a7be3db
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathMergeTestSet/7/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathMergeTestSet/8/part-00000 b/genomix/genomix-pregelix/data/PathMergeTestSet/8/part-00000
new file mode 100755
index 0000000..50bf862
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathMergeTestSet/8/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathMergeTestSet/9/part-00000 b/genomix/genomix-pregelix/data/PathMergeTestSet/9/part-00000
new file mode 100755
index 0000000..1b8024d
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathMergeTestSet/9/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/2/part-0 b/genomix/genomix-pregelix/data/PathTestSet/2/part-0
new file mode 100755
index 0000000..f7f0186
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/2/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/2/part-1 b/genomix/genomix-pregelix/data/PathTestSet/2/part-1
new file mode 100755
index 0000000..7b40564
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/2/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/3/part-0 b/genomix/genomix-pregelix/data/PathTestSet/3/part-0
new file mode 100755
index 0000000..055931c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/3/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/3/part-1 b/genomix/genomix-pregelix/data/PathTestSet/3/part-1
new file mode 100755
index 0000000..4487006
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/3/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/4/part-0 b/genomix/genomix-pregelix/data/PathTestSet/4/part-0
new file mode 100755
index 0000000..d3baf9f
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/4/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/4/part-1 b/genomix/genomix-pregelix/data/PathTestSet/4/part-1
new file mode 100755
index 0000000..877d4f3
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/4/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/5/part-0 b/genomix/genomix-pregelix/data/PathTestSet/5/part-0
new file mode 100755
index 0000000..9a38afb
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/5/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/5/part-1 b/genomix/genomix-pregelix/data/PathTestSet/5/part-1
new file mode 100755
index 0000000..36a623e
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/5/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/6/part-0 b/genomix/genomix-pregelix/data/PathTestSet/6/part-0
new file mode 100755
index 0000000..fee737e
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/6/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/6/part-1 b/genomix/genomix-pregelix/data/PathTestSet/6/part-1
new file mode 100755
index 0000000..07f3452
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/6/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/7/part-0 b/genomix/genomix-pregelix/data/PathTestSet/7/part-0
new file mode 100755
index 0000000..3d4cc9b
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/7/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/7/part-1 b/genomix/genomix-pregelix/data/PathTestSet/7/part-1
new file mode 100755
index 0000000..b7fb670
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/7/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/8/part-0 b/genomix/genomix-pregelix/data/PathTestSet/8/part-0
new file mode 100755
index 0000000..778fbe8
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/8/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/8/part-1 b/genomix/genomix-pregelix/data/PathTestSet/8/part-1
new file mode 100755
index 0000000..a045391
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/8/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/9/part-0 b/genomix/genomix-pregelix/data/PathTestSet/9/part-0
new file mode 100755
index 0000000..b2d3f50
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/9/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/9/part-1 b/genomix/genomix-pregelix/data/PathTestSet/9/part-1
new file mode 100755
index 0000000..dacf119
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/9/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/BridgePath/BridgePath b/genomix/genomix-pregelix/data/PathTestSet/BridgePath/BridgePath
new file mode 100755
index 0000000..afb242c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/BridgePath/BridgePath
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/CyclePath/part-0 b/genomix/genomix-pregelix/data/PathTestSet/CyclePath/part-0
new file mode 100755
index 0000000..b986370
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/CyclePath/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/CyclePath/part-1 b/genomix/genomix-pregelix/data/PathTestSet/CyclePath/part-1
new file mode 100755
index 0000000..729417d
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/CyclePath/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/LongPath/LongPath b/genomix/genomix-pregelix/data/PathTestSet/LongPath/LongPath
new file mode 100755
index 0000000..dbbb21a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/LongPath/LongPath
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/Path/Path b/genomix/genomix-pregelix/data/PathTestSet/Path/Path
new file mode 100755
index 0000000..7a3c370
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/Path/Path
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/RingPath/CyclePath b/genomix/genomix-pregelix/data/PathTestSet/RingPath/CyclePath
new file mode 100755
index 0000000..2387139
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/RingPath/CyclePath
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/SimplePath/SimplePath b/genomix/genomix-pregelix/data/PathTestSet/SimplePath/SimplePath
new file mode 100755
index 0000000..bd6b4f0
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/SimplePath/SimplePath
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/SinglePath/SinglePath b/genomix/genomix-pregelix/data/PathTestSet/SinglePath/SinglePath
new file mode 100755
index 0000000..e5fc081
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/SinglePath/SinglePath
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/ThreeKmer/part-0 b/genomix/genomix-pregelix/data/PathTestSet/ThreeKmer/part-0
new file mode 100755
index 0000000..b02d917
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/ThreeKmer/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/ThreeKmer/part-1 b/genomix/genomix-pregelix/data/PathTestSet/ThreeKmer/part-1
new file mode 100755
index 0000000..37e9986
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/ThreeKmer/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/TreePath/TreePath b/genomix/genomix-pregelix/data/PathTestSet/TreePath/TreePath
new file mode 100755
index 0000000..bb83023
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/TreePath/TreePath
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/TwoKmer/part-0 b/genomix/genomix-pregelix/data/PathTestSet/TwoKmer/part-0
new file mode 100755
index 0000000..7973858
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/TwoKmer/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/PathTestSet/TwoKmer/part-1 b/genomix/genomix-pregelix/data/PathTestSet/TwoKmer/part-1
new file mode 100755
index 0000000..02d893d
--- /dev/null
+++ b/genomix/genomix-pregelix/data/PathTestSet/TwoKmer/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/SplitRepeat/AdjSplitRepeat/part-00000 b/genomix/genomix-pregelix/data/SplitRepeat/AdjSplitRepeat/part-00000
new file mode 100755
index 0000000..665db46
--- /dev/null
+++ b/genomix/genomix-pregelix/data/SplitRepeat/AdjSplitRepeat/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/SplitRepeat/SplitOnce/part-00000 b/genomix/genomix-pregelix/data/SplitRepeat/SplitOnce/part-00000
new file mode 100755
index 0000000..cd574bb
--- /dev/null
+++ b/genomix/genomix-pregelix/data/SplitRepeat/SplitOnce/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/SplitRepeat/SplitTwice/part-00000 b/genomix/genomix-pregelix/data/SplitRepeat/SplitTwice/part-00000
new file mode 100755
index 0000000..e56b813
--- /dev/null
+++ b/genomix/genomix-pregelix/data/SplitRepeat/SplitTwice/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/2 b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/2
new file mode 100644
index 0000000..0f501fe
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/2
@@ -0,0 +1 @@
+1	AATA
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/2~ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/2~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/2~
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/3 b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/3
new file mode 100644
index 0000000..b90246c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/3
@@ -0,0 +1 @@
+1	AATAG
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/3~ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/3~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/3~
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/4 b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/4
new file mode 100644
index 0000000..3f1cd5c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/4
@@ -0,0 +1 @@
+1	AATAGA
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/4~ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/4~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/4~
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/5 b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/5
new file mode 100644
index 0000000..a720dc4
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/5
@@ -0,0 +1 @@
+1	AATAGAA
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/5~ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/5~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/5~
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/6 b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/6
new file mode 100644
index 0000000..7a95b7c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/6
@@ -0,0 +1 @@
+1	AATAGAAC
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/6~ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/6~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/6~
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/7 b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/7
new file mode 100644
index 0000000..ce4b8a8
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/7
@@ -0,0 +1 @@
+1	AATAGAACT
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/7~ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/7~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/7~
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/8 b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/8
new file mode 100644
index 0000000..3959d4d
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/8
@@ -0,0 +1 @@
+1	AATAGAACTT
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/8~ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/8~
new file mode 100644
index 0000000..89ead1e
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/8~
@@ -0,0 +1 @@
+1	AATAGAACTTA
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/9 b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/9
new file mode 100644
index 0000000..89ead1e
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/9
@@ -0,0 +1 @@
+1	AATAGAACTTA
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/9~ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/9~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/pathmerge_TestSet/9~
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/tworead3.txt b/genomix/genomix-pregelix/data/graphbuild.test/tworead3.txt
new file mode 100644
index 0000000..0ba6a10
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/tworead3.txt
@@ -0,0 +1,2 @@
+1	AATAGAAC
+2	GCGCATGT
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/tworead3.txt~ b/genomix/genomix-pregelix/data/graphbuild.test/tworead3.txt~
new file mode 100644
index 0000000..ff13d81
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/tworead3.txt~
@@ -0,0 +1,2 @@
+1	AATAGAAC
+2	CCGTATGT
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/tworeads.txt b/genomix/genomix-pregelix/data/graphbuild.test/tworeads.txt
new file mode 100644
index 0000000..55c1c45
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/tworeads.txt
@@ -0,0 +1,2 @@
+1	AATAGAAC
+2	GCCTACTG
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/tworeads.txt~ b/genomix/genomix-pregelix/data/graphbuild.test/tworeads.txt~
new file mode 100644
index 0000000..6e9444d
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/tworeads.txt~
@@ -0,0 +1,2 @@
+1	AATAGAAGC
+2	GCCTACTG
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/tworeads2.txt b/genomix/genomix-pregelix/data/graphbuild.test/tworeads2.txt
new file mode 100644
index 0000000..b35ef52
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/tworeads2.txt
@@ -0,0 +1,2 @@
+1	AATAGAAC
+2	GCCTGTCA
diff --git a/genomix/genomix-pregelix/data/graphbuild.test/tworeads2.txt~ b/genomix/genomix-pregelix/data/graphbuild.test/tworeads2.txt~
new file mode 100644
index 0000000..55c1c45
--- /dev/null
+++ b/genomix/genomix-pregelix/data/graphbuild.test/tworeads2.txt~
@@ -0,0 +1,2 @@
+1	AATAGAAC
+2	GCCTACTG
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles.txt b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles.txt
new file mode 100644
index 0000000..2896107
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles.txt
@@ -0,0 +1,16 @@
+((2,1)	[(3,1),(4,1),(2,2)]	[]	[]	[(1,1)]	CGTCC)	(null)
+((2,2)	[(2,3)]	[]	[]	[(2,1)]	GTCCT)	(null)
+((2,3)	[(2,4)]	[]	[]	[(2,2)]	TCCTT)	(null)
+((2,4)	[(4,4),(3,4)]	[]	[]	[(1,4),(2,3)]	CCTTA)	(null)
+((4,1)	[(4,2)]	[]	[]	[(1,2),(2,1)]	GTCCT)	(null)
+((4,2)	[(4,3)]	[]	[]	[(4,1)]	TCCTT)	(null)
+((4,3)	[(4,4)]	[]	[]	[(1,4),(4,2)]	CCTTA)	(null)
+((4,4)	[]	[]	[]	[(2,4),(4,3)]	CTTAG)	(null)
+((1,1)	[(2,1),(1,2)]	[]	[]	[]	ACGTC)	(null)
+((1,2)	[(3,1),(4,1),(1,3)]	[]	[]	[(1,1)]	CGTCC)	(null)
+((1,3)	[(1,4)]	[]	[]	[(1,2)]	GTCCT)	(null)
+((1,4)	[(3,3),(4,3),(2,4)]	[]	[]	[(1,3)]	TCCTT)	(null)
+((3,1)	[(3,2)]	[]	[]	[(1,2),(2,1)]	GTCCT)	(null)
+((3,2)	[(3,3)]	[]	[]	[(3,1)]	TCCTT)	(null)
+((3,3)	[(3,4)]	[]	[]	[(1,4),(3,2)]	CCTTA)	(null)
+((3,4)	[]	[]	[]	[(2,4),(3,3)]	CTTAG)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles.txt.svg b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles.txt.svg
new file mode 100644
index 0000000..fef64c2
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles.txt.svg
@@ -0,0 +1,449 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: five_ff_bubbles_txt Pages: 1 -->
+<svg width="764pt" height="520pt"
+ viewBox="0.00 0.00 764.00 520.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 516)">
+<title>five_ff_bubbles_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-516 761,-516 761,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 500,-305 500,-217 8,-217"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="274,-416 274,-504 748,-504 748,-416 274,-416"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="150,-313 150,-401 624,-401 624,-313 150,-313"/>
+</g>
+<g id="graph6" class="cluster"><title>cluster_4</title>
+<polygon fill="none" stroke="black" points="274,-121 274,-209 748,-209 748,-121 274,-121"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="43.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ACGTC</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="42.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">GACGT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CGTCC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="183.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">GGACG</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge61" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 2,1 -->
+<g id="node25" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-349 179,-363 224,-363 224,-349 179,-349"/>
+<text text-anchor="start" x="185" y="-353.667" font-family="Times Roman,serif" font-size="10.00">CGTCC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-335 179,-349 224,-349 224,-335 179,-335"/>
+<text text-anchor="start" x="183.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">GGACG</text>
+</g>
+<!-- 1,1&#45;&gt;2,1 -->
+<g id="edge59" class="edge"><title>1,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#dd1e2f" d="M92.652,-283.751C112.403,-297.103 137.544,-314.1 158.635,-328.359"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="156.853,-331.379 167.097,-334.08 160.773,-325.58 156.853,-331.379"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge69" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="310" y="-257.667" font-family="Times Roman,serif" font-size="10.00">GTCCT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="308" y="-243.667" font-family="Times Roman,serif" font-size="10.00">AGGAC</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge67" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 3,1 -->
+<g id="node20" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-460" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-471.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-452 303,-466 348,-466 348,-452 303,-452"/>
+<text text-anchor="start" x="310" y="-456.667" font-family="Times Roman,serif" font-size="10.00">GTCCT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-438 303,-452 348,-452 348,-438 303,-438"/>
+<text text-anchor="start" x="308" y="-442.667" font-family="Times Roman,serif" font-size="10.00">AGGAC</text>
+</g>
+<!-- 1,2&#45;&gt;3,1 -->
+<g id="edge63" class="edge"><title>1,2&#45;&gt;3,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-290.029C236.061,-300.138 244,-309 244,-309 244,-309 274,-405 274,-405 274,-405 282.027,-413.657 291.712,-424.101"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="289.238,-426.58 298.604,-431.533 294.371,-421.821 289.238,-426.58"/>
+</g>
+<!-- 4,1 -->
+<g id="node30" class="node"><title>4,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">4,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-157 303,-171 348,-171 348,-157 303,-157"/>
+<text text-anchor="start" x="310" y="-161.667" font-family="Times Roman,serif" font-size="10.00">GTCCT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-143 303,-157 348,-157 348,-143 303,-143"/>
+<text text-anchor="start" x="308" y="-147.667" font-family="Times Roman,serif" font-size="10.00">AGGAC</text>
+</g>
+<!-- 1,2&#45;&gt;4,1 -->
+<g id="edge65" class="edge"><title>1,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-231.971C236.061,-221.862 244,-213 244,-213 244,-213 262,-184 262,-184 262,-184 267.269,-182.411 274.758,-180.152"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="275.825,-183.486 284.389,-177.248 273.804,-176.784 275.825,-183.486"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge73" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 1,4 -->
+<g id="node18" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-253 427,-267 472,-267 472,-253 427,-253"/>
+<text text-anchor="start" x="435" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TCCTT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-239 427,-253 472,-253 472,-239 427,-239"/>
+<text text-anchor="start" x="431.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">AAGGA</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge71" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-254.562C376.601,-254.258 386.531,-254.176 396.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-257.822 406.443,-254.554 396.527,-250.823 396.364,-257.822"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge81" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M406.443,-267.446C397.158,-267.745 387.225,-267.824 377.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-264.175 367.327,-267.438 377.242,-271.173 377.407,-264.175"/>
+</g>
+<!-- 3,3 -->
+<g id="node22" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-460" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-471.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-452 551,-466 596,-466 596,-452 551,-452"/>
+<text text-anchor="start" x="558.5" y="-456.667" font-family="Times Roman,serif" font-size="10.00">CCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-438 551,-452 596,-452 596,-438 551,-438"/>
+<text text-anchor="start" x="556.5" y="-442.667" font-family="Times Roman,serif" font-size="10.00">TAAGG</text>
+</g>
+<!-- 1,4&#45;&gt;3,3 -->
+<g id="edge75" class="edge"><title>1,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M477.779,-288.086C489.347,-298.974 500,-309 500,-309 500,-309 530,-405 530,-405 530,-405 535.671,-412.254 542.894,-421.492"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="540.32,-423.882 549.236,-429.604 545.834,-419.571 540.32,-423.882"/>
+</g>
+<!-- 2,4 -->
+<g id="node28" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-349 551,-363 596,-363 596,-349 551,-349"/>
+<text text-anchor="start" x="558.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">CCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-335 551,-349 596,-349 596,-335 551,-335"/>
+<text text-anchor="start" x="556.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">TAAGG</text>
+</g>
+<!-- 1,4&#45;&gt;2,4 -->
+<g id="edge79" class="edge"><title>1,4&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M479.857,-286.293C494.987,-298.695 510,-311 510,-311 510,-311 520.107,-318.38 532.225,-327.228"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="530.253,-330.121 540.393,-333.192 534.38,-324.468 530.253,-330.121"/>
+</g>
+<!-- 4,3 -->
+<g id="node32" class="node"><title>4,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">4,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-157 551,-171 596,-171 596,-157 551,-157"/>
+<text text-anchor="start" x="558.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">CCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-143 551,-157 596,-157 596,-143 551,-143"/>
+<text text-anchor="start" x="556.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">TAAGG</text>
+</g>
+<!-- 1,4&#45;&gt;4,3 -->
+<g id="edge77" class="edge"><title>1,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M479.143,-235.305C494.511,-222.204 510,-209 510,-209 510,-209 519.601,-202.295 531.307,-194.119"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="533.461,-196.884 539.655,-188.288 529.453,-191.145 533.461,-196.884"/>
+</g>
+<!-- 3,1&#45;&gt;1,2 -->
+<g id="edge85" class="edge"><title>3,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M298.604,-431.533C286.159,-418.113 274,-405 274,-405 274,-405 262,-384 262,-384 262,-384 244,-309 244,-309 244,-309 239.718,-304.221 233.857,-297.678"/>
+<polygon fill="#218559" stroke="#218559" points="236.285,-295.142 227.005,-290.029 231.071,-299.813 236.285,-295.142"/>
+</g>
+<!-- 3,2 -->
+<g id="node21" class="node"><title>3,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-460" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-471.167" font-family="Times Roman,serif" font-size="10.00">3,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-452 427,-466 472,-466 472,-452 427,-452"/>
+<text text-anchor="start" x="435" y="-456.667" font-family="Times Roman,serif" font-size="10.00">TCCTT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-438 427,-452 472,-452 472,-438 427,-438"/>
+<text text-anchor="start" x="431.5" y="-442.667" font-family="Times Roman,serif" font-size="10.00">AAGGA</text>
+</g>
+<!-- 3,1&#45;&gt;3,2 -->
+<g id="edge83" class="edge"><title>3,1&#45;&gt;3,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-453.562C376.601,-453.258 386.531,-453.176 396.159,-453.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-456.822 406.443,-453.554 396.527,-449.823 396.364,-456.822"/>
+</g>
+<!-- 3,1&#45;&gt;2,1 -->
+<g id="edge87" class="edge"><title>3,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M283.329,-450.078C271.613,-447.289 262,-445 262,-445 262,-445 244.717,-420.067 228.55,-396.744"/>
+<polygon fill="#218559" stroke="#218559" points="231.252,-394.498 222.678,-388.273 225.499,-398.486 231.252,-394.498"/>
+</g>
+<!-- 3,2&#45;&gt;3,1 -->
+<g id="edge91" class="edge"><title>3,2&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-466.446C397.158,-466.745 387.225,-466.824 377.602,-466.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-463.175 367.327,-466.438 377.242,-470.173 377.407,-463.175"/>
+</g>
+<!-- 3,2&#45;&gt;3,3 -->
+<g id="edge89" class="edge"><title>3,2&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-453.562C500.601,-453.258 510.531,-453.176 520.159,-453.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-456.822 530.443,-453.554 520.527,-449.823 520.364,-456.822"/>
+</g>
+<!-- 3,3&#45;&gt;1,4 -->
+<g id="edge95" class="edge"><title>3,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M549.236,-429.604C539.291,-416.884 530,-405 530,-405 530,-405 510,-359 510,-359 510,-359 500,-309 500,-309 500,-309 493.498,-302.881 485.137,-295.012"/>
+<polygon fill="#218559" stroke="#218559" points="487.46,-292.391 477.779,-288.086 482.662,-297.489 487.46,-292.391"/>
+</g>
+<!-- 3,3&#45;&gt;3,2 -->
+<g id="edge97" class="edge"><title>3,3&#45;&gt;3,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-466.446C521.158,-466.745 511.225,-466.824 501.602,-466.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-463.175 491.327,-466.438 501.242,-470.173 501.407,-463.175"/>
+</g>
+<!-- 3,4 -->
+<g id="node23" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-460" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-471.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-452 675,-466 720,-466 720,-452 675,-452"/>
+<text text-anchor="start" x="682" y="-456.667" font-family="Times Roman,serif" font-size="10.00">CTTAG</text>
+<polygon fill="#218559" stroke="#218559" points="675,-438 675,-452 720,-452 720,-438 675,-438"/>
+<text text-anchor="start" x="681" y="-442.667" font-family="Times Roman,serif" font-size="10.00">CTAAG</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge93" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-453.562C624.601,-453.258 634.531,-453.176 644.159,-453.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-456.822 654.443,-453.554 644.527,-449.823 644.364,-456.822"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge101" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M654.443,-466.446C645.158,-466.745 635.225,-466.824 625.602,-466.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-463.175 615.327,-466.438 625.242,-470.173 625.407,-463.175"/>
+</g>
+<!-- 3,4&#45;&gt;2,4 -->
+<g id="edge99" class="edge"><title>3,4&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M667.572,-433.467C651.973,-419.402 636,-405 636,-405 636,-405 625.367,-396.899 612.837,-387.352"/>
+<polygon fill="#218559" stroke="#218559" points="614.945,-384.558 604.869,-381.281 610.702,-390.126 614.945,-384.558"/>
+</g>
+<!-- 2,1&#45;&gt;1,1 -->
+<g id="edge21" class="edge"><title>2,1&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M163.346,-338.87C142.193,-328.685 120,-318 120,-318 120,-318 108.279,-307.047 95.112,-294.744"/>
+<polygon fill="#218559" stroke="#218559" points="97.41,-292.101 87.7138,-287.831 92.6308,-297.216 97.41,-292.101"/>
+</g>
+<!-- 2,1&#45;&gt;3,1 -->
+<g id="edge15" class="edge"><title>2,1&#45;&gt;3,1</title>
+<path fill="none" stroke="#dd1e2f" d="M225.811,-386.692C242.699,-406.902 262,-430 262,-430 262,-430 268.943,-433.306 278.219,-437.723"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="276.728,-440.89 287.262,-442.029 279.738,-434.57 276.728,-440.89"/>
+</g>
+<!-- 2,2 -->
+<g id="node26" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-349 303,-363 348,-363 348,-349 303,-349"/>
+<text text-anchor="start" x="310" y="-353.667" font-family="Times Roman,serif" font-size="10.00">GTCCT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-335 303,-349 348,-349 348,-335 303,-335"/>
+<text text-anchor="start" x="308" y="-339.667" font-family="Times Roman,serif" font-size="10.00">AGGAC</text>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge19" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-350.562C252.601,-350.258 262.531,-350.176 272.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-353.822 282.443,-350.554 272.527,-346.823 272.364,-353.822"/>
+</g>
+<!-- 2,1&#45;&gt;4,1 -->
+<g id="edge17" class="edge"><title>2,1&#45;&gt;4,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-327.971C236.061,-317.862 244,-309 244,-309 244,-309 274,-213 274,-213 274,-213 280.502,-206.881 288.863,-199.012"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="291.338,-201.489 296.221,-192.086 286.54,-196.391 291.338,-201.489"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge25" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M282.443,-363.446C273.158,-363.745 263.225,-363.824 253.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-360.175 243.327,-363.438 253.242,-367.173 253.407,-360.175"/>
+</g>
+<!-- 2,3 -->
+<g id="node27" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-349 427,-363 472,-363 472,-349 427,-349"/>
+<text text-anchor="start" x="435" y="-353.667" font-family="Times Roman,serif" font-size="10.00">TCCTT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-335 427,-349 472,-349 472,-335 427,-335"/>
+<text text-anchor="start" x="431.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">AAGGA</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge23" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-350.562C376.601,-350.258 386.531,-350.176 396.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-353.822 406.443,-350.554 396.527,-346.823 396.364,-353.822"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge29" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M406.443,-363.446C397.158,-363.745 387.225,-363.824 377.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-360.175 367.327,-363.438 377.242,-367.173 377.407,-360.175"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge27" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-350.562C500.601,-350.258 510.531,-350.176 520.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-353.822 530.443,-350.554 520.527,-346.823 520.364,-353.822"/>
+</g>
+<!-- 2,4&#45;&gt;1,4 -->
+<g id="edge35" class="edge"><title>2,4&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M541.015,-332.238C525.051,-319.878 505.587,-304.81 488.68,-291.72"/>
+<polygon fill="#218559" stroke="#218559" points="490.661,-288.827 480.611,-285.473 486.376,-294.363 490.661,-288.827"/>
+</g>
+<!-- 2,4&#45;&gt;3,4 -->
+<g id="edge33" class="edge"><title>2,4&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M603.652,-382.461C620.195,-396.202 640.78,-413.301 658.406,-427.942"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="656.342,-430.778 666.271,-434.475 660.815,-425.393 656.342,-430.778"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge37" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M530.443,-363.446C521.158,-363.745 511.225,-363.824 501.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-360.175 491.327,-363.438 501.242,-367.173 501.407,-360.175"/>
+</g>
+<!-- 4,4 -->
+<g id="node33" class="node"><title>4,4</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">4,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-157 675,-171 720,-171 720,-157 675,-157"/>
+<text text-anchor="start" x="682" y="-161.667" font-family="Times Roman,serif" font-size="10.00">CTTAG</text>
+<polygon fill="#218559" stroke="#218559" points="675,-143 675,-157 720,-157 720,-143 675,-143"/>
+<text text-anchor="start" x="681" y="-147.667" font-family="Times Roman,serif" font-size="10.00">CTAAG</text>
+</g>
+<!-- 2,4&#45;&gt;4,4 -->
+<g id="edge31" class="edge"><title>2,4&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M593.476,-325.295C614.656,-292.5 647.802,-241.178 670.862,-205.472"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="674.008,-207.051 676.494,-196.752 668.128,-203.254 674.008,-207.051"/>
+</g>
+<!-- 4,1&#45;&gt;1,2 -->
+<g id="edge41" class="edge"><title>4,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M285.459,-179.436C272.801,-184.057 262,-188 262,-188 262,-188 244,-213 244,-213 244,-213 239.718,-217.779 233.857,-224.322"/>
+<polygon fill="#218559" stroke="#218559" points="231.071,-222.187 227.005,-231.971 236.285,-226.858 231.071,-222.187"/>
+</g>
+<!-- 4,1&#45;&gt;2,1 -->
+<g id="edge43" class="edge"><title>4,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M296.221,-192.086C284.653,-202.974 274,-213 274,-213 274,-213 262,-243 262,-243 262,-243 244,-309 244,-309 244,-309 239.718,-313.779 233.857,-320.322"/>
+<polygon fill="#218559" stroke="#218559" points="231.071,-318.187 227.005,-327.971 236.285,-322.858 231.071,-318.187"/>
+</g>
+<!-- 4,2 -->
+<g id="node31" class="node"><title>4,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">4,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-157 427,-171 472,-171 472,-157 427,-157"/>
+<text text-anchor="start" x="435" y="-161.667" font-family="Times Roman,serif" font-size="10.00">TCCTT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-143 427,-157 472,-157 472,-143 427,-143"/>
+<text text-anchor="start" x="431.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">AAGGA</text>
+</g>
+<!-- 4,1&#45;&gt;4,2 -->
+<g id="edge39" class="edge"><title>4,1&#45;&gt;4,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-158.562C376.601,-158.258 386.531,-158.176 396.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-161.822 406.443,-158.554 396.527,-154.823 396.364,-161.822"/>
+</g>
+<!-- 4,2&#45;&gt;4,1 -->
+<g id="edge47" class="edge"><title>4,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-171.446C397.158,-171.745 387.225,-171.824 377.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-168.175 367.327,-171.438 377.242,-175.173 377.407,-168.175"/>
+</g>
+<!-- 4,2&#45;&gt;4,3 -->
+<g id="edge45" class="edge"><title>4,2&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-158.562C500.601,-158.258 510.531,-158.176 520.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-161.822 530.443,-158.554 520.527,-154.823 520.364,-161.822"/>
+</g>
+<!-- 4,3&#45;&gt;1,4 -->
+<g id="edge51" class="edge"><title>4,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M541.015,-189.762C525.051,-202.122 505.587,-217.19 488.68,-230.28"/>
+<polygon fill="#218559" stroke="#218559" points="486.376,-227.637 480.611,-236.527 490.661,-233.173 486.376,-227.637"/>
+</g>
+<!-- 4,3&#45;&gt;4,2 -->
+<g id="edge53" class="edge"><title>4,3&#45;&gt;4,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-171.446C521.158,-171.745 511.225,-171.824 501.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-168.175 491.327,-171.438 501.242,-175.173 501.407,-168.175"/>
+</g>
+<!-- 4,3&#45;&gt;4,4 -->
+<g id="edge49" class="edge"><title>4,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-158.562C624.601,-158.258 634.531,-158.176 644.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-161.822 654.443,-158.554 644.527,-154.823 644.364,-161.822"/>
+</g>
+<!-- 4,4&#45;&gt;2,4 -->
+<g id="edge55" class="edge"><title>4,4&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M678.863,-197.706C660.882,-230.131 636,-275 636,-275 636,-275 618.994,-297.135 602.652,-318.405"/>
+<polygon fill="#218559" stroke="#218559" points="599.776,-316.404 596.459,-326.466 605.327,-320.669 599.776,-316.404"/>
+</g>
+<!-- 4,4&#45;&gt;4,3 -->
+<g id="edge57" class="edge"><title>4,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M654.443,-171.446C645.158,-171.745 635.225,-171.824 625.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-168.175 615.327,-171.438 625.242,-175.173 625.407,-168.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/.part-0.crc
new file mode 100644
index 0000000..2085368
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/.part-1.crc
new file mode 100644
index 0000000..69dcf7d
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/part-0 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/part-0
new file mode 100755
index 0000000..36702f5
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/part-1 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/part-1
new file mode 100755
index 0000000..9045432
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_ff_bubbles/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles.txt b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles.txt
new file mode 100644
index 0000000..a41ce56
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles.txt
@@ -0,0 +1,18 @@
+((2,1)	[(2,3)]	[]	[]	[]	AATAGA)	(null)
+((2,3)	[(6,1),(2,4)]	[]	[]	[(2,1)]	TAGAA)	(null)
+((2,4)	[(6,2)]	[]	[]	[(2,3)]	AGAAG)	(null)
+((4,1)	[(4,3)]	[]	[]	[]	AATAGA)	(null)
+((4,3)	[(6,1),(4,4)]	[]	[]	[(4,1)]	TAGAA)	(null)
+((4,4)	[(6,2)]	[]	[]	[(4,3)]	AGAAG)	(null)
+((6,1)	[(6,2)]	[]	[]	[(2,3),(1,3),(3,3),(4,3),(5,3)]	AGAAG)	(null)
+((6,2)	[(6,3)]	[]	[]	[(2,4),(3,4),(1,4),(4,4),(5,4),(6,1)]	GAAGA)	(null)
+((6,3)	[]	[]	[]	[(6,2)]	AAGAAG)	(null)
+((1,1)	[(1,3)]	[]	[]	[]	AATAGA)	(null)
+((1,3)	[(6,1),(1,4)]	[]	[]	[(1,1)]	TAGAA)	(null)
+((1,4)	[(6,2)]	[]	[]	[(1,3)]	AGAAG)	(null)
+((3,1)	[(3,3)]	[]	[]	[]	AATAGA)	(null)
+((3,3)	[(6,1),(3,4)]	[]	[]	[(3,1)]	TAGAA)	(null)
+((3,4)	[(6,2)]	[]	[]	[(3,3)]	AGAAG)	(null)
+((5,1)	[(5,3)]	[]	[]	[]	AATAGA)	(null)
+((5,3)	[(6,1),(5,4)]	[]	[]	[(5,1)]	TAGAA)	(null)
+((5,4)	[(6,2)]	[]	[]	[(5,3)]	AGAAG)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles.txt.svg b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles.txt.svg
new file mode 100644
index 0000000..ff38f7d
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles.txt.svg
@@ -0,0 +1,473 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: five_length1_bubbles_txt Pages: 1 -->
+<svg width="646pt" height="844pt"
+ viewBox="0.00 0.00 646.00 844.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 840)">
+<title>five_length1_bubbles_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-840 643,-840 643,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-548 8,-636 376,-636 376,-548 8,-548"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="8,-320 8,-408 376,-408 376,-320 8,-320"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="8,-740 8,-828 376,-828 376,-740 8,-740"/>
+</g>
+<g id="graph6" class="cluster"><title>cluster_5</title>
+<polygon fill="none" stroke="black" points="8,-644 8,-732 376,-732 376,-644 8,-644"/>
+</g>
+<g id="graph7" class="cluster"><title>cluster_4</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<g id="graph8" class="cluster"><title>cluster_6</title>
+<polygon fill="none" stroke="black" points="274,-426 274,-514 630,-514 630,-426 274,-426"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-592" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-603.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-584 37,-598 82,-598 82,-584 37,-584"/>
+<text text-anchor="start" x="40" y="-588.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-570 37,-584 82,-584 82,-570 37,-570"/>
+<text text-anchor="start" x="43" y="-574.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 1,3 -->
+<g id="node16" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-592" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-603.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-584 179,-598 224,-598 224,-584 179,-584"/>
+<text text-anchor="start" x="185" y="-588.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-570 179,-584 224,-584 224,-570 179,-570"/>
+<text text-anchor="start" x="187.5" y="-574.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 1,1&#45;&gt;1,3 -->
+<g id="edge69" class="edge"><title>1,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-585.755C116.207,-585.208 132.729,-585.105 148.049,-585.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-588.957 158.425,-585.756 148.534,-581.96 148.326,-588.957"/>
+</g>
+<!-- 1,3&#45;&gt;1,1 -->
+<g id="edge75" class="edge"><title>1,3&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-598.244C143.825,-598.792 127.305,-598.895 111.982,-598.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-595.043 101.605,-598.245 111.497,-602.04 111.704,-595.043"/>
+</g>
+<!-- 1,4 -->
+<g id="node17" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-592" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-603.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-584 303,-598 348,-598 348,-584 303,-584"/>
+<text text-anchor="start" x="307.5" y="-588.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-570 303,-584 348,-584 348,-570 303,-570"/>
+<text text-anchor="start" x="311" y="-574.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge73" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-585.562C252.601,-585.258 262.531,-585.176 272.159,-585.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-588.822 282.443,-585.554 272.527,-581.823 272.364,-588.822"/>
+</g>
+<!-- 6,1 -->
+<g id="node35" class="node"><title>6,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-470" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-481.167" font-family="Times Roman,serif" font-size="10.00">6,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-462 303,-476 348,-476 348,-462 303,-462"/>
+<text text-anchor="start" x="307.5" y="-466.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-448 303,-462 348,-462 348,-448 303,-448"/>
+<text text-anchor="start" x="311" y="-452.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;6,1 -->
+<g id="edge71" class="edge"><title>1,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M217.507,-558.714C235.573,-522.287 262,-469 262,-469 262,-469 264,-469 264,-469 264,-469 267.077,-469.05 271.85,-469.129"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="271.916,-472.63 281.972,-469.295 272.031,-465.631 271.916,-472.63"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge79" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-598.446C273.158,-598.745 263.225,-598.824 253.602,-598.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-595.175 243.327,-598.438 253.242,-602.173 253.407,-595.175"/>
+</g>
+<!-- 6,2 -->
+<g id="node36" class="node"><title>6,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-470" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-481.167" font-family="Times Roman,serif" font-size="10.00">6,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-462 427,-476 472,-476 472,-462 427,-462"/>
+<text text-anchor="start" x="431.5" y="-466.667" font-family="Times Roman,serif" font-size="10.00">GAAGA</text>
+<polygon fill="#218559" stroke="#218559" points="427,-448 427,-462 472,-462 472,-448 427,-448"/>
+<text text-anchor="start" x="435.5" y="-452.667" font-family="Times Roman,serif" font-size="10.00">TCTTC</text>
+</g>
+<!-- 1,4&#45;&gt;6,2 -->
+<g id="edge77" class="edge"><title>1,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M353.138,-564.316C371.132,-546.612 394.616,-523.507 413.837,-504.596"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="416.3,-507.082 420.974,-497.574 411.391,-502.093 416.3,-507.082"/>
+</g>
+<!-- 3,1 -->
+<g id="node19" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-364" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-375.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-356 37,-370 82,-370 82,-356 37,-356"/>
+<text text-anchor="start" x="40" y="-360.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-342 37,-356 82,-356 82,-342 37,-342"/>
+<text text-anchor="start" x="43" y="-346.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 3,3 -->
+<g id="node20" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-364" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-375.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-356 179,-370 224,-370 224,-356 179,-356"/>
+<text text-anchor="start" x="185" y="-360.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-342 179,-356 224,-356 224,-342 179,-342"/>
+<text text-anchor="start" x="187.5" y="-346.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 3,1&#45;&gt;3,3 -->
+<g id="edge81" class="edge"><title>3,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-357.755C116.207,-357.208 132.729,-357.105 148.049,-357.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-360.957 158.425,-357.756 148.534,-353.96 148.326,-360.957"/>
+</g>
+<!-- 3,3&#45;&gt;3,1 -->
+<g id="edge87" class="edge"><title>3,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-370.244C143.825,-370.792 127.305,-370.895 111.982,-370.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-367.043 101.605,-370.245 111.497,-374.04 111.704,-367.043"/>
+</g>
+<!-- 3,4 -->
+<g id="node21" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-364" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-375.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-356 303,-370 348,-370 348,-356 303,-356"/>
+<text text-anchor="start" x="307.5" y="-360.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-342 303,-356 348,-356 348,-342 303,-342"/>
+<text text-anchor="start" x="311" y="-346.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge85" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-357.562C252.601,-357.258 262.531,-357.176 272.159,-357.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-360.822 282.443,-357.554 272.527,-353.823 272.364,-360.822"/>
+</g>
+<!-- 3,3&#45;&gt;6,1 -->
+<g id="edge83" class="edge"><title>3,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M231.334,-389.931C247.997,-404.175 268.832,-421.985 286.618,-437.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="284.674,-440.132 294.55,-443.97 289.223,-434.812 284.674,-440.132"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge91" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-370.446C273.158,-370.745 263.225,-370.824 253.602,-370.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-367.175 243.327,-370.438 253.242,-374.173 253.407,-367.175"/>
+</g>
+<!-- 3,4&#45;&gt;6,2 -->
+<g id="edge89" class="edge"><title>3,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M356.869,-388.787C372.495,-400.941 388,-413 388,-413 388,-413 399.721,-423.953 412.888,-436.256"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="410.59,-438.899 420.286,-443.169 415.369,-433.784 410.59,-438.899"/>
+</g>
+<!-- 2,1 -->
+<g id="node23" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-784" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-795.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-776 37,-790 82,-790 82,-776 37,-776"/>
+<text text-anchor="start" x="40" y="-780.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-762 37,-776 82,-776 82,-762 37,-762"/>
+<text text-anchor="start" x="43" y="-766.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 2,3 -->
+<g id="node24" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-784" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-795.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-776 179,-790 224,-790 224,-776 179,-776"/>
+<text text-anchor="start" x="185" y="-780.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-762 179,-776 224,-776 224,-762 179,-762"/>
+<text text-anchor="start" x="187.5" y="-766.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 2,1&#45;&gt;2,3 -->
+<g id="edge17" class="edge"><title>2,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-777.755C116.207,-777.208 132.729,-777.105 148.049,-777.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-780.957 158.425,-777.756 148.534,-773.96 148.326,-780.957"/>
+</g>
+<!-- 2,3&#45;&gt;2,1 -->
+<g id="edge23" class="edge"><title>2,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-790.244C143.825,-790.792 127.305,-790.895 111.982,-790.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-787.043 101.605,-790.245 111.497,-794.04 111.704,-787.043"/>
+</g>
+<!-- 2,4 -->
+<g id="node25" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-784" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-795.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-776 303,-790 348,-790 348,-776 303,-776"/>
+<text text-anchor="start" x="307.5" y="-780.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-762 303,-776 348,-776 348,-762 303,-762"/>
+<text text-anchor="start" x="311" y="-766.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge21" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-777.562C252.601,-777.258 262.531,-777.176 272.159,-777.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-780.822 282.443,-777.554 272.527,-773.823 272.364,-780.822"/>
+</g>
+<!-- 2,3&#45;&gt;6,1 -->
+<g id="edge19" class="edge"><title>2,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-754.971C236.061,-744.862 244,-736 244,-736 244,-736 274,-544 274,-544 274,-544 285.426,-527.421 297.461,-509.958"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="300.579,-511.603 303.371,-501.383 294.815,-507.63 300.579,-511.603"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge27" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-790.446C273.158,-790.745 263.225,-790.824 253.602,-790.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-787.175 243.327,-790.438 253.242,-794.173 253.407,-787.175"/>
+</g>
+<!-- 2,4&#45;&gt;6,2 -->
+<g id="edge25" class="edge"><title>2,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M353.779,-756.914C365.347,-746.026 376,-736 376,-736 376,-736 415.795,-590.993 436.621,-515.107"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="440.035,-515.892 439.306,-505.323 433.284,-514.04 440.035,-515.892"/>
+</g>
+<!-- 5,1 -->
+<g id="node27" class="node"><title>5,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-688" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-699.167" font-family="Times Roman,serif" font-size="10.00">5,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-680 37,-694 82,-694 82,-680 37,-680"/>
+<text text-anchor="start" x="40" y="-684.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-666 37,-680 82,-680 82,-666 37,-666"/>
+<text text-anchor="start" x="43" y="-670.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 5,3 -->
+<g id="node28" class="node"><title>5,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-688" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-699.167" font-family="Times Roman,serif" font-size="10.00">5,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-680 179,-694 224,-694 224,-680 179,-680"/>
+<text text-anchor="start" x="185" y="-684.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-666 179,-680 224,-680 224,-666 179,-666"/>
+<text text-anchor="start" x="187.5" y="-670.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 5,1&#45;&gt;5,3 -->
+<g id="edge93" class="edge"><title>5,1&#45;&gt;5,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-681.755C116.207,-681.208 132.729,-681.105 148.049,-681.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-684.957 158.425,-681.756 148.534,-677.96 148.326,-684.957"/>
+</g>
+<!-- 5,3&#45;&gt;5,1 -->
+<g id="edge99" class="edge"><title>5,3&#45;&gt;5,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-694.244C143.825,-694.792 127.305,-694.895 111.982,-694.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-691.043 101.605,-694.245 111.497,-698.04 111.704,-691.043"/>
+</g>
+<!-- 5,4 -->
+<g id="node29" class="node"><title>5,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-688" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-699.167" font-family="Times Roman,serif" font-size="10.00">5,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-680 303,-694 348,-694 348,-680 303,-680"/>
+<text text-anchor="start" x="307.5" y="-684.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-666 303,-680 348,-680 348,-666 303,-666"/>
+<text text-anchor="start" x="311" y="-670.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 5,3&#45;&gt;5,4 -->
+<g id="edge97" class="edge"><title>5,3&#45;&gt;5,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-681.562C252.601,-681.258 262.531,-681.176 272.159,-681.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-684.822 282.443,-681.554 272.527,-677.823 272.364,-684.822"/>
+</g>
+<!-- 5,3&#45;&gt;6,1 -->
+<g id="edge95" class="edge"><title>5,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M227.005,-658.971C236.061,-648.862 244,-640 244,-640 244,-640 262,-514 262,-514 262,-514 271.601,-507.295 283.307,-499.119"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="285.461,-501.884 291.655,-493.288 281.453,-496.145 285.461,-501.884"/>
+</g>
+<!-- 5,4&#45;&gt;5,3 -->
+<g id="edge103" class="edge"><title>5,4&#45;&gt;5,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-694.446C273.158,-694.745 263.225,-694.824 253.602,-694.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-691.175 243.327,-694.438 253.242,-698.173 253.407,-691.175"/>
+</g>
+<!-- 5,4&#45;&gt;6,2 -->
+<g id="edge101" class="edge"><title>5,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M353.779,-660.914C365.347,-650.026 376,-640 376,-640 376,-640 408.743,-563.749 430.371,-513.382"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="433.673,-514.563 434.403,-503.993 427.241,-511.801 433.673,-514.563"/>
+</g>
+<!-- 4,1 -->
+<g id="node31" class="node"><title>4,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">4,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="40" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="43" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 4,3 -->
+<g id="node32" class="node"><title>4,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">4,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="187.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 4,1&#45;&gt;4,3 -->
+<g id="edge29" class="edge"><title>4,1&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 4,3&#45;&gt;4,1 -->
+<g id="edge35" class="edge"><title>4,3&#45;&gt;4,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 4,4 -->
+<g id="node33" class="node"><title>4,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">4,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="307.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="311" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 4,3&#45;&gt;4,4 -->
+<g id="edge33" class="edge"><title>4,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 4,3&#45;&gt;6,1 -->
+<g id="edge31" class="edge"><title>4,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M238.738,-278.971C252.156,-285.36 264,-291 264,-291 264,-291 274,-412 274,-412 274,-412 282.58,-421.757 292.701,-433.268"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="290.268,-435.801 299.5,-441 295.525,-431.179 290.268,-435.801"/>
+</g>
+<!-- 4,4&#45;&gt;4,3 -->
+<g id="edge39" class="edge"><title>4,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 4,4&#45;&gt;6,2 -->
+<g id="edge37" class="edge"><title>4,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M351.718,-289.414C368.888,-307.675 388,-328 388,-328 388,-328 412.394,-384.787 430.33,-426.538"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427.226,-428.181 434.389,-435.987 433.658,-425.418 427.226,-428.181"/>
+</g>
+<!-- 6,1&#45;&gt;1,3 -->
+<g id="edge45" class="edge"><title>6,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M286.368,-453.534C274.262,-448.374 264,-444 264,-444 264,-444 262,-444 262,-444 262,-444 236.975,-504.716 218.982,-548.371"/>
+<polygon fill="#218559" stroke="#218559" points="215.723,-547.095 215.148,-557.674 222.195,-549.762 215.723,-547.095"/>
+</g>
+<!-- 6,1&#45;&gt;3,3 -->
+<g id="edge47" class="edge"><title>6,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M299.5,-441C286.75,-426.5 274,-412 274,-412 274,-412 264,-394 264,-394 264,-394 257.057,-390.694 247.781,-386.277"/>
+<polygon fill="#218559" stroke="#218559" points="249.272,-383.11 238.738,-381.971 246.262,-389.43 249.272,-383.11"/>
+</g>
+<!-- 6,1&#45;&gt;2,3 -->
+<g id="edge43" class="edge"><title>6,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M303.371,-501.383C289.471,-521.551 274,-544 274,-544 274,-544 264,-629 264,-629 264,-629 244,-736 244,-736 244,-736 239.718,-740.779 233.857,-747.322"/>
+<polygon fill="#218559" stroke="#218559" points="231.071,-745.187 227.005,-754.971 236.285,-749.858 231.071,-745.187"/>
+</g>
+<!-- 6,1&#45;&gt;5,3 -->
+<g id="edge51" class="edge"><title>6,1&#45;&gt;5,3</title>
+<path fill="none" stroke="#218559" d="M293.131,-494.787C277.505,-506.941 262,-519 262,-519 262,-519 244,-640 244,-640 244,-640 239.718,-644.779 233.857,-651.322"/>
+<polygon fill="#218559" stroke="#218559" points="231.071,-649.187 227.005,-658.971 236.285,-653.858 231.071,-649.187"/>
+</g>
+<!-- 6,1&#45;&gt;4,3 -->
+<g id="edge49" class="edge"><title>6,1&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M299.5,-441C286.75,-426.5 274,-412 274,-412 274,-412 264,-316 264,-316 264,-316 252.076,-305.59 238.602,-293.828"/>
+<polygon fill="#218559" stroke="#218559" points="240.859,-291.151 231.024,-287.211 236.255,-296.425 240.859,-291.151"/>
+</g>
+<!-- 6,1&#45;&gt;6,2 -->
+<g id="edge41" class="edge"><title>6,1&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-463.562C376.601,-463.258 386.531,-463.176 396.159,-463.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-466.822 406.443,-463.554 396.527,-459.823 396.364,-466.822"/>
+</g>
+<!-- 6,2&#45;&gt;1,4 -->
+<g id="edge59" class="edge"><title>6,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M423.484,-499.281C406.768,-518.463 388,-540 388,-540 388,-540 376.647,-549.37 363.581,-560.156"/>
+<polygon fill="#218559" stroke="#218559" points="361.246,-557.544 355.762,-566.609 365.702,-562.943 361.246,-557.544"/>
+</g>
+<!-- 6,2&#45;&gt;3,4 -->
+<g id="edge57" class="edge"><title>6,2&#45;&gt;3,4</title>
+<path fill="none" stroke="#218559" d="M418.55,-443.97C401.867,-429.709 381.029,-411.896 363.258,-396.704"/>
+<polygon fill="#218559" stroke="#218559" points="365.209,-393.768 355.334,-389.931 360.661,-399.089 365.209,-393.768"/>
+</g>
+<!-- 6,2&#45;&gt;2,4 -->
+<g id="edge55" class="edge"><title>6,2&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M440.065,-505.448C423.121,-572.666 388,-712 388,-712 388,-712 376,-736 376,-736 376,-736 369.498,-742.119 361.137,-749.988"/>
+<polygon fill="#218559" stroke="#218559" points="358.662,-747.511 353.779,-756.914 363.46,-752.609 358.662,-747.511"/>
+</g>
+<!-- 6,2&#45;&gt;5,4 -->
+<g id="edge63" class="edge"><title>6,2&#45;&gt;5,4</title>
+<path fill="none" stroke="#218559" d="M436.802,-504.593C419.001,-555.079 388,-643 388,-643 388,-643 378.242,-649.97 366.407,-658.423"/>
+<polygon fill="#218559" stroke="#218559" points="364.079,-655.785 357.976,-664.446 368.148,-661.481 364.079,-655.785"/>
+</g>
+<!-- 6,2&#45;&gt;4,4 -->
+<g id="edge61" class="edge"><title>6,2&#45;&gt;4,4</title>
+<path fill="none" stroke="#218559" d="M432.98,-436.204C411.491,-390.872 376,-316 376,-316 376,-316 367.973,-307.343 358.288,-296.899"/>
+<polygon fill="#218559" stroke="#218559" points="360.762,-294.42 351.396,-289.467 355.629,-299.179 360.762,-294.42"/>
+</g>
+<!-- 6,2&#45;&gt;6,1 -->
+<g id="edge65" class="edge"><title>6,2&#45;&gt;6,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-476.446C397.158,-476.745 387.225,-476.824 377.602,-476.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-473.175 367.327,-476.438 377.242,-480.173 377.407,-473.175"/>
+</g>
+<!-- 6,3 -->
+<g id="node37" class="node"><title>6,3</title>
+<ellipse fill="none" stroke="black" cx="576" cy="-470" rx="44.7575" ry="36.0624"/>
+<text text-anchor="start" x="556" y="-481.167" font-family="Times Roman,serif" font-size="10.00">6,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="552,-462 552,-476 600,-476 600,-462 552,-462"/>
+<text text-anchor="start" x="554.5" y="-466.667" font-family="Times Roman,serif" font-size="10.00">AAGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="552,-448 552,-462 600,-462 600,-448 552,-448"/>
+<text text-anchor="start" x="559" y="-452.667" font-family="Times Roman,serif" font-size="10.00">CTTCTT</text>
+</g>
+<!-- 6,2&#45;&gt;6,3 -->
+<g id="edge53" class="edge"><title>6,2&#45;&gt;6,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.642,-463.585C501.055,-463.272 511.156,-463.178 520.981,-463.304"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="521.009,-466.805 531.079,-463.514 521.154,-459.807 521.009,-466.805"/>
+</g>
+<!-- 6,3&#45;&gt;6,2 -->
+<g id="edge67" class="edge"><title>6,3&#45;&gt;6,2</title>
+<path fill="none" stroke="#218559" d="M531.079,-476.486C521.562,-476.764 511.435,-476.822 501.66,-476.662"/>
+<polygon fill="#218559" stroke="#218559" points="501.726,-473.162 491.642,-476.415 501.553,-480.16 501.726,-473.162"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/.part-0.crc
new file mode 100644
index 0000000..53d1b45
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/.part-1.crc
new file mode 100644
index 0000000..e76bd36
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/part-0 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/part-0
new file mode 100755
index 0000000..a9f8b84
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/part-1 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/part-1
new file mode 100755
index 0000000..f1c5899
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/five_length1_bubbles/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble.txt b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble.txt
new file mode 100644
index 0000000..51cc418
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble.txt
@@ -0,0 +1,6 @@
+((2,1)	[(2,3)]	[]	[]	[]	GGAATA)	(null)
+((2,3)	[(2,4)]	[(1,4)]	[]	[(2,1)]	AATAC)	(null)
+((2,4)	[]	[(1,3)]	[]	[(2,3)]	ATACG)	(null)
+((1,1)	[(1,3)]	[]	[]	[]	AAACGT)	(null)
+((1,3)	[(1,4)]	[(2,4)]	[]	[(1,1)]	ACGTA)	(null)
+((1,4)	[]	[(2,3)]	[]	[(1,3)]	CGTAT)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble.txt.svg b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble.txt.svg
new file mode 100644
index 0000000..cb1b291
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble.txt.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: fr_bubble_txt Pages: 1 -->
+<svg width="392pt" height="428pt"
+ viewBox="0.00 0.00 392.00 428.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 424)">
+<title>fr_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-424 389,-424 389,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="8,-324 8,-412 376,-412 376,-324 8,-324"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="39.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AAACGT</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="41.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ACGTTT</text>
+</g>
+<!-- 1,3 -->
+<g id="node16" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="186" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+</g>
+<!-- 1,1&#45;&gt;1,3 -->
+<g id="edge25" class="edge"><title>1,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 1,3&#45;&gt;1,1 -->
+<g id="edge31" class="edge"><title>1,3&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,4 -->
+<g id="node17" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="310.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="309.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge27" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 2,4 -->
+<g id="node21" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-360 303,-374 348,-374 348,-360 303,-360"/>
+<text text-anchor="start" x="309.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-346 303,-360 348,-360 348,-346 303,-346"/>
+<text text-anchor="start" x="310.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 1,3&#45;&gt;2,4 -->
+<g id="edge29" class="edge"><title>1,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#ebb035" d="M231.017,-286.902C247.799,-301.383 268.887,-319.58 286.832,-335.065"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="284.972,-338.083 294.83,-341.966 289.545,-332.783 284.972,-338.083"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge35" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 2,3 -->
+<g id="node20" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-360 179,-374 224,-374 224,-360 179,-360"/>
+<text text-anchor="start" x="186" y="-364.667" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-346 179,-360 224,-360 224,-346 179,-346"/>
+<text text-anchor="start" x="187.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 1,4&#45;&gt;2,3 -->
+<g id="edge33" class="edge"><title>1,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#ebb035" d="M299.131,-289.838C282.505,-308.372 264,-329 264,-329 264,-329 255.356,-334.351 244.471,-341.089"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="242.477,-338.207 235.817,-346.447 246.162,-344.159 242.477,-338.207"/>
+</g>
+<!-- 2,1 -->
+<g id="node19" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-360 37,-374 82,-374 82,-360 37,-360"/>
+<text text-anchor="start" x="39.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">GGAATA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-346 37,-360 82,-360 82,-346 37,-346"/>
+<text text-anchor="start" x="42.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">TATTCC</text>
+</g>
+<!-- 2,1&#45;&gt;2,3 -->
+<g id="edge13" class="edge"><title>2,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-361.755C116.207,-361.208 132.729,-361.105 148.049,-361.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-364.957 158.425,-361.756 148.534,-357.96 148.326,-364.957"/>
+</g>
+<!-- 2,3&#45;&gt;1,4 -->
+<g id="edge17" class="edge"><title>2,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#ebb035" d="M231.017,-342.098C247.799,-327.617 268.887,-309.42 286.832,-293.935"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="289.545,-296.217 294.83,-287.034 284.972,-290.917 289.545,-296.217"/>
+</g>
+<!-- 2,3&#45;&gt;2,1 -->
+<g id="edge19" class="edge"><title>2,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-374.244C143.825,-374.792 127.305,-374.895 111.982,-374.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-371.043 101.605,-374.245 111.497,-378.04 111.704,-371.043"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge15" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-361.562C252.601,-361.258 262.531,-361.176 272.159,-361.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-364.822 282.443,-361.554 272.527,-357.823 272.364,-364.822"/>
+</g>
+<!-- 2,4&#45;&gt;1,3 -->
+<g id="edge21" class="edge"><title>2,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#ebb035" d="M294.83,-341.966C278.021,-327.462 256.93,-309.262 239.004,-293.794"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="240.875,-290.785 231.017,-286.902 236.301,-296.085 240.875,-290.785"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge23" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-374.446C273.158,-374.745 263.225,-374.824 253.602,-374.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-371.175 243.327,-374.438 253.242,-378.173 253.407,-371.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/.part-0.crc
new file mode 100644
index 0000000..d40cb4d
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/.part-1.crc
new file mode 100644
index 0000000..bc50c79
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/part-0 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/part-0
new file mode 100755
index 0000000..f757027
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/part-1 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/part-1
new file mode 100755
index 0000000..96978fb
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt
new file mode 100644
index 0000000..b53f352
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt
@@ -0,0 +1,9 @@
+((2,1)	[(2,2)]	[]	[]	[(1,3)]	CGTAT)	(null)
+((2,2)	[(2,3)]	[]	[]	[(1,4),(2,1)]	GTATT)	(null)
+((2,3)	[]	[]	[]	[(2,2)]	TATTCC)	(null)
+((1,1)	[(1,3)]	[]	[]	[]	AAACGT)	(null)
+((1,3)	[(2,1),(1,4)]	[(3,4)]	[]	[(1,1)]	ACGTA)	(null)
+((1,4)	[(2,2)]	[(3,3)]	[]	[(1,3)]	CGTAT)	(null)
+((3,1)	[(3,3)]	[]	[]	[]	GGAATA)	(null)
+((3,3)	[(3,4)]	[(1,4)]	[]	[(3,1)]	AATAC)	(null)
+((3,4)	[]	[(1,3)]	[]	[(3,3)]	ATACG)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt.svg b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt.svg
new file mode 100644
index 0000000..aaaab66
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble.txt.svg
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: fr_bubble_and_ff_bubble_txt Pages: 1 -->
+<svg width="640pt" height="428pt"
+ viewBox="0.00 0.00 640.00 428.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 424)">
+<title>fr_bubble_and_ff_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-424 637,-424 637,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="8,-324 8,-412 376,-412 376,-324 8,-324"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="274,-121 274,-209 624,-209 624,-121 274,-121"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="39.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AAACGT</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="41.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ACGTTT</text>
+</g>
+<!-- 1,3 -->
+<g id="node16" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="186" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+</g>
+<!-- 1,1&#45;&gt;1,3 -->
+<g id="edge26" class="edge"><title>1,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 1,3&#45;&gt;1,1 -->
+<g id="edge34" class="edge"><title>1,3&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,4 -->
+<g id="node17" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="310.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="309.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge30" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 3,4 -->
+<g id="node21" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-360 303,-374 348,-374 348,-360 303,-360"/>
+<text text-anchor="start" x="309.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-346 303,-360 348,-360 348,-346 303,-346"/>
+<text text-anchor="start" x="310.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 1,3&#45;&gt;3,4 -->
+<g id="edge32" class="edge"><title>1,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#ebb035" d="M231.017,-286.902C247.799,-301.383 268.887,-319.58 286.832,-335.065"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="284.972,-338.083 294.83,-341.966 289.545,-332.783 284.972,-338.083"/>
+</g>
+<!-- 2,1 -->
+<g id="node23" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-157 303,-171 348,-171 348,-157 303,-157"/>
+<text text-anchor="start" x="310.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-143 303,-157 348,-157 348,-143 303,-143"/>
+<text text-anchor="start" x="309.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+</g>
+<!-- 1,3&#45;&gt;2,1 -->
+<g id="edge28" class="edge"><title>1,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#dd1e2f" d="M234.345,-237.712C249.456,-227.157 264,-217 264,-217 264,-217 274.622,-207.945 287.002,-197.392"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="289.518,-199.846 294.857,-190.695 284.977,-194.519 289.518,-199.846"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge40" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 3,3 -->
+<g id="node20" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-360 179,-374 224,-374 224,-360 179,-360"/>
+<text text-anchor="start" x="186" y="-364.667" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-346 179,-360 224,-360 224,-346 179,-346"/>
+<text text-anchor="start" x="187.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 1,4&#45;&gt;3,3 -->
+<g id="edge38" class="edge"><title>1,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#ebb035" d="M294.83,-287.034C278.021,-301.538 256.93,-319.738 239.004,-335.206"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="236.301,-332.915 231.017,-342.098 240.875,-338.215 236.301,-332.915"/>
+</g>
+<!-- 2,2 -->
+<g id="node24" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-157 427,-171 472,-171 472,-157 427,-157"/>
+<text text-anchor="start" x="435.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-143 427,-157 472,-157 472,-143 427,-143"/>
+<text text-anchor="start" x="434" y="-147.667" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+</g>
+<!-- 1,4&#45;&gt;2,2 -->
+<g id="edge36" class="edge"><title>1,4&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M356.611,-236.527C372.521,-224.21 391.976,-209.147 408.924,-196.027"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="411.251,-198.652 417.015,-189.762 406.965,-193.117 411.251,-198.652"/>
+</g>
+<!-- 3,1 -->
+<g id="node19" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-360 37,-374 82,-374 82,-360 37,-360"/>
+<text text-anchor="start" x="39.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">GGAATA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-346 37,-360 82,-360 82,-346 37,-346"/>
+<text text-anchor="start" x="42.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">TATTCC</text>
+</g>
+<!-- 3,1&#45;&gt;3,3 -->
+<g id="edge42" class="edge"><title>3,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-361.755C116.207,-361.208 132.729,-361.105 148.049,-361.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-364.957 158.425,-361.756 148.534,-357.96 148.326,-364.957"/>
+</g>
+<!-- 3,3&#45;&gt;1,4 -->
+<g id="edge46" class="edge"><title>3,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#ebb035" d="M229.714,-341.169C245.535,-326.385 262,-311 262,-311 262,-311 272.801,-302.428 285.459,-292.382"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="287.843,-294.958 293.5,-286 283.491,-289.475 287.843,-294.958"/>
+</g>
+<!-- 3,3&#45;&gt;3,1 -->
+<g id="edge48" class="edge"><title>3,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-374.244C143.825,-374.792 127.305,-374.895 111.982,-374.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-371.043 101.605,-374.245 111.497,-378.04 111.704,-371.043"/>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge44" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-361.562C252.601,-361.258 262.531,-361.176 272.159,-361.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-364.822 282.443,-361.554 272.527,-357.823 272.364,-364.822"/>
+</g>
+<!-- 3,4&#45;&gt;1,3 -->
+<g id="edge50" class="edge"><title>3,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#ebb035" d="M294.83,-341.966C278.021,-327.462 256.93,-309.262 239.004,-293.794"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="240.875,-290.785 231.017,-286.902 236.301,-296.085 240.875,-290.785"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge52" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-374.446C273.158,-374.745 263.225,-374.824 253.602,-374.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-371.175 243.327,-374.438 253.242,-378.173 253.407,-371.175"/>
+</g>
+<!-- 2,1&#45;&gt;1,3 -->
+<g id="edge16" class="edge"><title>2,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M293.015,-189.762C277.051,-202.122 257.587,-217.19 240.68,-230.28"/>
+<polygon fill="#218559" stroke="#218559" points="238.376,-227.637 232.611,-236.527 242.661,-233.173 238.376,-227.637"/>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge14" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-158.562C376.601,-158.258 386.531,-158.176 396.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-161.822 406.443,-158.554 396.527,-154.823 396.364,-161.822"/>
+</g>
+<!-- 2,2&#45;&gt;1,4 -->
+<g id="edge20" class="edge"><title>2,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M420.286,-191.831C404.465,-206.615 388,-222 388,-222 388,-222 379.356,-227.351 368.471,-234.089"/>
+<polygon fill="#218559" stroke="#218559" points="366.477,-231.207 359.817,-239.447 370.162,-237.159 366.477,-231.207"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge22" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-171.446C397.158,-171.745 387.225,-171.824 377.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-168.175 367.327,-171.438 377.242,-175.173 377.407,-168.175"/>
+</g>
+<!-- 2,3 -->
+<g id="node25" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-157 551,-171 596,-171 596,-157 551,-157"/>
+<text text-anchor="start" x="556.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">TATTCC</text>
+<polygon fill="#218559" stroke="#218559" points="551,-143 551,-157 596,-157 596,-143 551,-143"/>
+<text text-anchor="start" x="553.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">GGAATA</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge18" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-158.562C500.601,-158.258 510.531,-158.176 520.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-161.822 530.443,-158.554 520.527,-154.823 520.364,-161.822"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge24" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-171.446C521.158,-171.745 511.225,-171.824 501.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-168.175 491.327,-171.438 501.242,-175.173 501.407,-168.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-0.crc
new file mode 100644
index 0000000..528de91
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-1.crc
new file mode 100644
index 0000000..247ccc7
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-0 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-0
new file mode 100755
index 0000000..795d0c7
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-1 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-1
new file mode 100755
index 0000000..8a0aa72
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/fr_bubble_and_ff_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble.txt b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble.txt
new file mode 100644
index 0000000..8b0bfdc
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble.txt
@@ -0,0 +1,6 @@
+((2,1)	[(2,2)]	[]	[(1,2)]	[]	ACCGT)	(null)
+((2,2)	[(2,3)]	[]	[(1,1)]	[(2,1)]	CCGTG)	(null)
+((2,3)	[]	[]	[]	[(2,2)]	CGTGGT)	(null)
+((1,1)	[(1,2)]	[]	[(2,2)]	[]	ACGGT)	(null)
+((1,2)	[(1,3)]	[]	[(2,1)]	[(1,1)]	CGGTG)	(null)
+((1,3)	[]	[]	[]	[(1,2)]	GGTGTA)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble.txt.svg b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble.txt.svg
new file mode 100644
index 0000000..80a9d65
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble.txt.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: rf_bubble_txt Pages: 1 -->
+<svg width="394pt" height="428pt"
+ viewBox="0.00 0.00 394.00 428.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 424)">
+<title>rf_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-424 391,-424 391,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-324 8,-412 377,-412 377,-324 8,-324"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 378,-305 378,-217 8,-217"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-360 37,-374 82,-374 82,-360 37,-360"/>
+<text text-anchor="start" x="42.5" y="-364.667" font-family="Times Roman,serif" font-size="10.00">ACGGT</text>
+<polygon fill="#218559" stroke="#218559" points="37,-346 37,-360 82,-360 82,-346 37,-346"/>
+<text text-anchor="start" x="43" y="-350.667" font-family="Times Roman,serif" font-size="10.00">ACCGT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-360 179,-374 224,-374 224,-360 179,-360"/>
+<text text-anchor="start" x="184" y="-364.667" font-family="Times Roman,serif" font-size="10.00">CGGTG</text>
+<polygon fill="#218559" stroke="#218559" points="179,-346 179,-360 224,-360 224,-346 179,-346"/>
+<text text-anchor="start" x="184" y="-350.667" font-family="Times Roman,serif" font-size="10.00">CACCG</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge25" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-361.755C116.207,-361.208 132.729,-361.105 148.049,-361.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-364.957 158.425,-361.756 148.534,-357.96 148.326,-364.957"/>
+</g>
+<!-- 2,2 -->
+<g id="node20" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="184.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CCGTG</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="183.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CACGG</text>
+</g>
+<!-- 1,1&#45;&gt;2,2 -->
+<g id="edge27" class="edge"><title>1,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#06a2cb" d="M96.6544,-349.87C117.807,-339.685 140,-329 140,-329 140,-329 153.666,-313.765 168.062,-297.718"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="171.058,-299.619 175.131,-289.838 165.848,-294.945 171.058,-299.619"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge33" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-374.244C143.825,-374.792 127.305,-374.895 111.982,-374.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-371.043 101.605,-374.245 111.497,-378.04 111.704,-371.043"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="326" cy="-368" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="306.5" y="-379.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="304,-360 304,-374 349,-374 349,-360 304,-360"/>
+<text text-anchor="start" x="307" y="-364.667" font-family="Times Roman,serif" font-size="10.00">GGTGTA</text>
+<polygon fill="#218559" stroke="#218559" points="304,-346 304,-360 349,-360 349,-346 304,-346"/>
+<text text-anchor="start" x="307.5" y="-350.667" font-family="Times Roman,serif" font-size="10.00">TACACC</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge29" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.319,-361.573C252.886,-361.256 263.16,-361.173 273.102,-361.321"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="273.22,-364.825 283.299,-361.561 273.384,-357.827 273.22,-364.825"/>
+</g>
+<!-- 2,1 -->
+<g id="node19" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="43" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ACCGT</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="42.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ACGGT</text>
+</g>
+<!-- 1,2&#45;&gt;2,1 -->
+<g id="edge31" class="edge"><title>1,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#06a2cb" d="M167.587,-345.312C145.274,-330.161 120,-313 120,-313 120,-313 109.378,-303.945 96.9983,-293.392"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="99.0233,-290.519 89.1426,-286.695 94.4822,-295.846 99.0233,-290.519"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge35" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M283.299,-374.439C273.713,-374.75 263.434,-374.828 253.502,-374.673"/>
+<polygon fill="#218559" stroke="#218559" points="253.401,-371.169 243.319,-374.427 253.232,-378.167 253.401,-371.169"/>
+</g>
+<!-- 2,1&#45;&gt;1,2 -->
+<g id="edge15" class="edge"><title>2,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#06a2cb" d="M92.4134,-283.688C114.726,-298.839 140,-316 140,-316 140,-316 150.622,-325.055 163.002,-335.608"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="160.977,-338.481 170.857,-342.305 165.518,-333.154 160.977,-338.481"/>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge13" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 2,2&#45;&gt;1,1 -->
+<g id="edge19" class="edge"><title>2,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#06a2cb" d="M168.906,-285.184C148.325,-300.692 121.435,-320.954 99.4042,-337.555"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="97.1022,-334.907 91.222,-343.72 101.315,-340.497 97.1022,-334.907"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge21" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 2,3 -->
+<g id="node21" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="326" cy="-261" rx="43.8406" ry="36.0624"/>
+<text text-anchor="start" x="306" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 349,-267 349,-253 303,-253"/>
+<text text-anchor="start" x="306" y="-257.667" font-family="Times Roman,serif" font-size="10.00">CGTGGT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 349,-253 349,-239 303,-239"/>
+<text text-anchor="start" x="305.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">ACCACG</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge17" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.319,-254.573C252.676,-254.263 262.709,-254.176 272.446,-254.312"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.37,-257.811 282.446,-254.534 272.526,-250.813 272.37,-257.811"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge23" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M282.446,-267.466C273.13,-267.753 263.195,-267.823 253.581,-267.674"/>
+<polygon fill="#218559" stroke="#218559" points="253.401,-264.169 243.319,-267.427 253.232,-271.167 253.401,-264.169"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/.part-0.crc
new file mode 100644
index 0000000..e87ee4f
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/.part-1.crc
new file mode 100644
index 0000000..2c9bb22
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/part-0 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/part-0
new file mode 100755
index 0000000..4388d34
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/part-1 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/part-1
new file mode 100755
index 0000000..fbd0d87
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/rf_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble.txt b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble.txt
new file mode 100644
index 0000000..14cf2e1
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble.txt
@@ -0,0 +1,6 @@
+((2,1)	[(2,2)]	[]	[]	[(1,3)]	AGAAG)	(null)
+((2,2)	[(2,3)]	[]	[]	[(1,4),(2,1)]	GAAGC)	(null)
+((2,3)	[]	[]	[]	[(2,2)]	AAGCCC)	(null)
+((1,1)	[(1,3)]	[]	[]	[]	AATAGA)	(null)
+((1,3)	[(2,1),(1,4)]	[]	[]	[(1,1)]	TAGAA)	(null)
+((1,4)	[(2,2)]	[]	[]	[(1,3)]	AGAAG)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble.txt.svg b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble.txt.svg
new file mode 100644
index 0000000..550660b
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble.txt.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: small_bubble_txt Pages: 1 -->
+<svg width="644pt" height="321pt"
+ viewBox="0.00 0.00 644.00 321.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 317)">
+<title>small_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-317 641,-317 641,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="274,-121 274,-209 628,-209 628,-121 274,-121"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="40" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="43" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TCTATT</text>
+</g>
+<!-- 1,3 -->
+<g id="node16" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="187.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 1,1&#45;&gt;1,3 -->
+<g id="edge25" class="edge"><title>1,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 1,3&#45;&gt;1,1 -->
+<g id="edge31" class="edge"><title>1,3&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,4 -->
+<g id="node17" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="307.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="311" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge29" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 2,1 -->
+<g id="node19" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-157 303,-171 348,-171 348,-157 303,-157"/>
+<text text-anchor="start" x="307.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-143 303,-157 348,-157 348,-143 303,-143"/>
+<text text-anchor="start" x="311" y="-147.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;2,1 -->
+<g id="edge27" class="edge"><title>1,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#dd1e2f" d="M234.345,-237.712C249.456,-227.157 264,-217 264,-217 264,-217 274.622,-207.945 287.002,-197.392"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="289.518,-199.846 294.857,-190.695 284.977,-194.519 289.518,-199.846"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge35" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 2,2 -->
+<g id="node20" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-165" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-157 427,-171 472,-171 472,-157 427,-157"/>
+<text text-anchor="start" x="431.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">GAAGC</text>
+<polygon fill="#218559" stroke="#218559" points="427,-143 427,-157 472,-157 472,-143 427,-143"/>
+<text text-anchor="start" x="434" y="-147.667" font-family="Times Roman,serif" font-size="10.00">GCTTC</text>
+</g>
+<!-- 1,4&#45;&gt;2,2 -->
+<g id="edge33" class="edge"><title>1,4&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M361.282,-241.419C375.287,-233.861 388,-227 388,-227 388,-227 400.484,-214.311 414.157,-200.414"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="416.837,-202.681 421.356,-193.098 411.847,-197.771 416.837,-202.681"/>
+</g>
+<!-- 2,1&#45;&gt;1,3 -->
+<g id="edge15" class="edge"><title>2,1&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M293.015,-189.762C277.051,-202.122 257.587,-217.19 240.68,-230.28"/>
+<polygon fill="#218559" stroke="#218559" points="238.376,-227.637 232.611,-236.527 242.661,-233.173 238.376,-227.637"/>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge13" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-158.562C376.601,-158.258 386.531,-158.176 396.159,-158.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-161.822 406.443,-158.554 396.527,-154.823 396.364,-161.822"/>
+</g>
+<!-- 2,2&#45;&gt;1,4 -->
+<g id="edge19" class="edge"><title>2,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#218559" d="M417.015,-189.762C401.051,-202.122 381.587,-217.19 364.68,-230.28"/>
+<polygon fill="#218559" stroke="#218559" points="362.376,-227.637 356.611,-236.527 366.661,-233.173 362.376,-227.637"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge21" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-171.446C397.158,-171.745 387.225,-171.824 377.602,-171.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-168.175 367.327,-171.438 377.242,-175.173 377.407,-168.175"/>
+</g>
+<!-- 2,3 -->
+<g id="node21" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="575" cy="-165" rx="44.0472" ry="36.0624"/>
+<text text-anchor="start" x="555.5" y="-176.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="552,-157 552,-171 599,-171 599,-157 552,-157"/>
+<text text-anchor="start" x="554.5" y="-161.667" font-family="Times Roman,serif" font-size="10.00">AAGCCC</text>
+<polygon fill="#218559" stroke="#218559" points="552,-143 552,-157 599,-157 599,-143 552,-143"/>
+<text text-anchor="start" x="555.5" y="-147.667" font-family="Times Roman,serif" font-size="10.00">GGGCTT</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge17" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.658,-158.573C501.09,-158.263 511.203,-158.176 521.018,-158.312"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="521.023,-161.813 531.097,-158.534 521.177,-154.814 521.023,-161.813"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge23" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M531.097,-171.466C521.607,-171.756 511.479,-171.824 501.692,-171.669"/>
+<polygon fill="#218559" stroke="#218559" points="501.739,-168.169 491.658,-171.427 501.571,-175.167 501.739,-168.169"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/.part-0.crc
new file mode 100644
index 0000000..fc426bc
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/.part-1.crc
new file mode 100644
index 0000000..611cf9d
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/part-0 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/part-0
new file mode 100755
index 0000000..de5dd64
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/part-1 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/part-1
new file mode 100755
index 0000000..d84c1d2
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/small_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble.txt b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble.txt
new file mode 100644
index 0000000..5fde720
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble.txt
@@ -0,0 +1,9 @@
+((2,1)	[(3,1),(2,2)]	[]	[]	[(1,1)]	ATAGA)	(null)
+((2,2)	[(2,3)]	[]	[]	[(2,1)]	TAGAC)	(null)
+((2,3)	[(2,4)]	[]	[]	[(2,2)]	AGACT)	(null)
+((2,4)	[(3,4)]	[]	[]	[(2,3)]	GACTA)	(null)
+((1,1)	[(2,1),(1,2)]	[]	[]	[]	AATAG)	(null)
+((1,2)	[]	[]	[]	[(1,1)]	ATAGAAG)	(null)
+((3,1)	[(3,3)]	[]	[]	[(2,1)]	TAGACT)	(null)
+((3,3)	[(3,4)]	[]	[]	[(3,1)]	GACTA)	(null)
+((3,4)	[]	[]	[]	[(2,4),(3,3)]	ACTAC)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble.txt.svg b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble.txt.svg
new file mode 100644
index 0000000..1ae4c53
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble.txt.svg
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: tip_and_bubble_txt Pages: 1 -->
+<svg width="650pt" height="417pt"
+ viewBox="0.00 0.00 650.00 417.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 413)">
+<title>tip_and_bubble_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-413 647,-413 647,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 216,-209 216,-8 49,-8"/>
+<text text-anchor="middle" x="132.5" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-313 8,-401 262,-401 262,-313 8,-313"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="284,-109 284,-197 634,-197 634,-109 284,-109"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="155,-217 155,-305 634,-305 634,-217 155,-217"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="206" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.078,-157C75.5476,-157 161.628,-157 193.842,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="194.198,-160.5 204.198,-157 194.198,-153.5 194.198,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="206" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.078,-116C75.5476,-116 161.628,-116 193.842,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="194.198,-119.5 204.198,-116 194.198,-112.5 194.198,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="206" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.078,-75C75.5476,-75 161.628,-75 193.842,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="194.198,-78.5001 204.198,-75 194.198,-71.5001 194.198,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="206" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.078,-34C75.5476,-34 161.628,-34 193.842,-34"/>
+<polygon fill="#218559" stroke="#218559" points="194.198,-37.5001 204.198,-34 194.198,-30.5001 194.198,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-349 37,-363 82,-363 82,-349 37,-349"/>
+<text text-anchor="start" x="43.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">AATAG</text>
+<polygon fill="#218559" stroke="#218559" points="37,-335 37,-349 82,-349 82,-335 37,-335"/>
+<text text-anchor="start" x="45.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">CTATT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="206" cy="-357" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="186.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="181,-349 181,-363 232,-363 232,-349 181,-349"/>
+<text text-anchor="start" x="183.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">ATAGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="181,-335 181,-349 232,-349 232,-335 181,-335"/>
+<text text-anchor="start" x="187" y="-339.667" font-family="Times Roman,serif" font-size="10.00">CTTCTAT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge34" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.518,-350.814C116.334,-350.242 133.206,-350.105 149.005,-350.404"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="149.114,-353.907 159.199,-350.663 149.292,-346.91 149.114,-353.907"/>
+</g>
+<!-- 2,1 -->
+<g id="node22" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="206" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="186.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="184,-253 184,-267 229,-267 229,-253 184,-253"/>
+<text text-anchor="start" x="190.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="184,-239 184,-253 229,-253 229,-239 184,-239"/>
+<text text-anchor="start" x="192.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TCTAT</text>
+</g>
+<!-- 1,1&#45;&gt;2,1 -->
+<g id="edge32" class="edge"><title>1,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#dd1e2f" d="M95.2356,-337.316C116.802,-325.601 140,-313 140,-313 140,-313 152.492,-303.158 166.607,-292.037"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="168.857,-294.72 174.546,-285.782 164.525,-289.221 168.857,-294.72"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge36" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M159.199,-363.337C144.021,-363.827 127.084,-363.881 111.518,-363.499"/>
+<polygon fill="#218559" stroke="#218559" points="111.623,-360.001 101.518,-363.186 111.404,-366.998 111.623,-360.001"/>
+</g>
+<!-- 3,1 -->
+<g id="node18" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="335" cy="-153" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="315.5" y="-164.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="313,-145 313,-159 358,-159 358,-145 313,-145"/>
+<text text-anchor="start" x="316.5" y="-149.667" font-family="Times Roman,serif" font-size="10.00">TAGACT</text>
+<polygon fill="#218559" stroke="#218559" points="313,-131 313,-145 358,-145 358,-131 313,-131"/>
+<text text-anchor="start" x="317" y="-135.667" font-family="Times Roman,serif" font-size="10.00">AGTCTA</text>
+</g>
+<!-- 3,3 -->
+<g id="node19" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="459" cy="-153" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="439.5" y="-164.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="437,-145 437,-159 482,-159 482,-145 437,-145"/>
+<text text-anchor="start" x="443" y="-149.667" font-family="Times Roman,serif" font-size="10.00">GACTA</text>
+<polygon fill="#218559" stroke="#218559" points="437,-131 437,-145 482,-145 482,-131 437,-131"/>
+<text text-anchor="start" x="444.5" y="-135.667" font-family="Times Roman,serif" font-size="10.00">TAGTC</text>
+</g>
+<!-- 3,1&#45;&gt;3,3 -->
+<g id="edge38" class="edge"><title>3,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M377.327,-146.562C386.601,-146.258 396.531,-146.176 406.159,-146.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="406.364,-149.822 416.443,-146.554 406.527,-142.823 406.364,-149.822"/>
+</g>
+<!-- 3,1&#45;&gt;2,1 -->
+<g id="edge40" class="edge"><title>3,1&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M307.356,-180.644C291.216,-196.784 274,-214 274,-214 274,-214 261.746,-222.469 247.643,-232.218"/>
+<polygon fill="#218559" stroke="#218559" points="245.439,-229.486 239.203,-238.051 249.42,-235.244 245.439,-229.486"/>
+</g>
+<!-- 3,3&#45;&gt;3,1 -->
+<g id="edge44" class="edge"><title>3,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M416.443,-159.446C407.158,-159.745 397.225,-159.824 387.602,-159.681"/>
+<polygon fill="#218559" stroke="#218559" points="387.407,-156.175 377.327,-159.438 387.242,-163.173 387.407,-156.175"/>
+</g>
+<!-- 3,4 -->
+<g id="node20" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="583" cy="-153" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="563.5" y="-164.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="561,-145 561,-159 606,-159 606,-145 561,-145"/>
+<text text-anchor="start" x="567.5" y="-149.667" font-family="Times Roman,serif" font-size="10.00">ACTAC</text>
+<polygon fill="#218559" stroke="#218559" points="561,-131 561,-145 606,-145 606,-131 561,-131"/>
+<text text-anchor="start" x="568" y="-135.667" font-family="Times Roman,serif" font-size="10.00">GTAGT</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge42" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M501.327,-146.562C510.601,-146.258 520.531,-146.176 530.159,-146.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="530.364,-149.822 540.443,-146.554 530.527,-142.823 530.364,-149.822"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge48" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M540.443,-159.446C531.158,-159.745 521.225,-159.824 511.602,-159.681"/>
+<polygon fill="#218559" stroke="#218559" points="511.407,-156.175 501.327,-159.438 511.242,-163.173 511.407,-156.175"/>
+</g>
+<!-- 2,4 -->
+<g id="node25" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="583" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="563.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="561,-253 561,-267 606,-267 606,-253 561,-253"/>
+<text text-anchor="start" x="567" y="-257.667" font-family="Times Roman,serif" font-size="10.00">GACTA</text>
+<polygon fill="#218559" stroke="#218559" points="561,-239 561,-253 606,-253 606,-239 561,-239"/>
+<text text-anchor="start" x="568.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TAGTC</text>
+</g>
+<!-- 3,4&#45;&gt;2,4 -->
+<g id="edge46" class="edge"><title>3,4&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M583,-188.897C583,-188.965 583,-189 583,-189 583,-189 583,-204.137 583,-214.808"/>
+<polygon fill="#218559" stroke="#218559" points="579.5,-215.103 583,-225.103 586.5,-215.103 579.5,-215.103"/>
+</g>
+<!-- 2,1&#45;&gt;1,1 -->
+<g id="edge18" class="edge"><title>2,1&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M171.021,-282.15C147.211,-296.547 120,-313 120,-313 120,-313 111.029,-319.471 99.9682,-327.449"/>
+<polygon fill="#218559" stroke="#218559" points="97.7057,-324.766 91.643,-333.454 101.801,-330.443 97.7057,-324.766"/>
+</g>
+<!-- 2,1&#45;&gt;3,1 -->
+<g id="edge14" class="edge"><title>2,1&#45;&gt;3,1</title>
+<path fill="none" stroke="#dd1e2f" d="M236.571,-235.406C254.514,-220.384 277.353,-201.262 296.514,-185.221"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="298.78,-187.888 304.201,-178.785 294.287,-182.521 298.78,-187.888"/>
+</g>
+<!-- 2,2 -->
+<g id="node23" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="335" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="315.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="313,-253 313,-267 358,-267 358,-253 313,-253"/>
+<text text-anchor="start" x="319.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TAGAC</text>
+<polygon fill="#218559" stroke="#218559" points="313,-239 313,-253 358,-253 358,-239 313,-239"/>
+<text text-anchor="start" x="320.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">GTCTA</text>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge16" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M248.597,-254.609C259.385,-254.242 271.101,-254.157 282.322,-254.352"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="282.362,-257.854 292.448,-254.61 282.54,-250.856 282.362,-257.854"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge22" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M292.448,-267.39C281.662,-267.757 269.947,-267.843 258.724,-267.649"/>
+<polygon fill="#218559" stroke="#218559" points="258.683,-264.147 248.597,-267.391 258.505,-271.145 258.683,-264.147"/>
+</g>
+<!-- 2,3 -->
+<g id="node24" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="459" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="439.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="437,-253 437,-267 482,-267 482,-253 437,-253"/>
+<text text-anchor="start" x="443" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AGACT</text>
+<polygon fill="#218559" stroke="#218559" points="437,-239 437,-253 482,-253 482,-239 437,-239"/>
+<text text-anchor="start" x="444" y="-243.667" font-family="Times Roman,serif" font-size="10.00">AGTCT</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge20" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M377.327,-254.562C386.601,-254.258 396.531,-254.176 406.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="406.364,-257.822 416.443,-254.554 406.527,-250.823 406.364,-257.822"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge26" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M416.443,-267.446C407.158,-267.745 397.225,-267.824 387.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="387.407,-264.175 377.327,-267.438 387.242,-271.173 387.407,-264.175"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge24" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M501.327,-254.562C510.601,-254.258 520.531,-254.176 530.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="530.364,-257.822 540.443,-254.554 530.527,-250.823 530.364,-257.822"/>
+</g>
+<!-- 2,4&#45;&gt;3,4 -->
+<g id="edge28" class="edge"><title>2,4&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M583,-225.103C583,-225.035 583,-225 583,-225 583,-225 583,-209.863 583,-199.192"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="586.5,-198.897 583,-188.897 579.5,-198.897 586.5,-198.897"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge30" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M540.443,-267.446C531.158,-267.745 521.225,-267.824 511.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="511.407,-264.175 501.327,-267.438 511.242,-271.173 511.407,-264.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/.part-0.crc
new file mode 100644
index 0000000..3b5cec2
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/.part-1.crc
new file mode 100644
index 0000000..6621cf4
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/part-0 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/part-0
new file mode 100755
index 0000000..a6a5e83
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/part-1 b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/part-1
new file mode 100755
index 0000000..a65fe7e
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/bubblemerge/tip_and_bubble/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread.txt b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread.txt
new file mode 100644
index 0000000..7a3e64f
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread.txt
@@ -0,0 +1,4 @@
+((1,1)	[(1,2)]	[]	[]	[]	AATAG)	(null)
+((1,2)	[(1,3)]	[]	[]	[(1,1)]	ATAGA)	(null)
+((1,3)	[(1,4)]	[]	[]	[(1,2)]	TAGAA)	(null)
+((1,4)	[]	[]	[]	[(1,3)]	AGAAG)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread.txt.svg b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread.txt.svg
new file mode 100644
index 0000000..efaf9e1
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread.txt.svg
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: singleread_txt Pages: 1 -->
+<svg width="516pt" height="321pt"
+ viewBox="0.00 0.00 516.00 321.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 317)">
+<title>singleread_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-317 513,-317 513,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 500,-305 500,-217 8,-217"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="43.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AATAG</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="45.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CTATT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="185.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ATAGA</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="187.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TCTAT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge12" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge16" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="309" y="-257.667" font-family="Times Roman,serif" font-size="10.00">TAGAA</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="311.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TTCTA</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge14" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge20" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+<!-- 1,4 -->
+<g id="node18" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-253 427,-267 472,-267 472,-253 427,-253"/>
+<text text-anchor="start" x="431.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AGAAG</text>
+<polygon fill="#218559" stroke="#218559" points="427,-239 427,-253 472,-253 472,-239 427,-239"/>
+<text text-anchor="start" x="435" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CTTCT</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge18" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-254.562C376.601,-254.258 386.531,-254.176 396.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-257.822 406.443,-254.554 396.527,-250.823 396.364,-257.822"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge22" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M406.443,-267.446C397.158,-267.745 387.225,-267.824 377.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-264.175 367.327,-267.438 377.242,-271.173 377.407,-264.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/.part-0.crc
new file mode 100644
index 0000000..b972cba
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/.part-1.crc
new file mode 100644
index 0000000..23505c8
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/part-0 b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/part-0
new file mode 100755
index 0000000..39d79bc
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/part-1 b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/part-1
new file mode 100755
index 0000000..e49fcdd
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/pathmerge/singleread/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1.txt b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1.txt
new file mode 100644
index 0000000..bdeb586
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1.txt
@@ -0,0 +1,147 @@
+((2,1)	[(2,2)]	[]	[]	[]	CCTCG)	(null)
+((2,2)	[(2,3)]	[(1,4)]	[]	[(2,1)]	CTCGC)	(null)
+((2,3)	[(2,4)]	[]	[]	[(2,2)]	TCGCA)	(null)
+((2,4)	[]	[(1,2)]	[]	[(2,3)]	CGCAC)	(null)
+((4,1)	[(4,2)]	[]	[]	[]	GAGGG)	(null)
+((4,2)	[(4,3)]	[(5,4)]	[]	[(4,1)]	AGGGT)	(null)
+((4,3)	[(4,4)]	[]	[]	[(3,4),(4,2)]	GGGTT)	(null)
+((4,4)	[]	[(5,2)]	[]	[(4,3)]	GGTTG)	(null)
+((6,1)	[(6,2)]	[]	[(5,3)]	[]	GTTGC)	(null)
+((6,2)	[(6,3)]	[(7,4)]	[]	[(6,1)]	TTGCT)	(null)
+((6,3)	[(6,4)]	[]	[(5,1)]	[(6,2)]	TGCTG)	(null)
+((6,4)	[]	[(7,2)]	[]	[(6,3)]	GCTGA)	(null)
+((8,1)	[(24,1),(8,2)]	[]	[(7,3)]	[]	CTGAA)	(null)
+((8,2)	[(8,3)]	[(9,4)]	[]	[(8,1)]	TGAAA)	(null)
+((8,3)	[(8,4)]	[]	[(7,1)]	[(19,4),(8,2)]	GAAAT)	(null)
+((8,4)	[]	[(9,2)]	[]	[(8,3)]	AAATC)	(null)
+((10,1)	[(10,2)]	[]	[]	[(11,2)]	GGCAG)	(null)
+((10,2)	[(9,1),(10,3)]	[]	[]	[(10,1)]	GCAGA)	(null)
+((10,3)	[(10,4)]	[]	[]	[(11,4),(10,2)]	CAGAT)	(null)
+((10,4)	[(9,3)]	[]	[]	[(10,3)]	AGATT)	(null)
+((12,1)	[(12,2)]	[]	[]	[(13,2)]	CTCTG)	(null)
+((12,2)	[(11,1),(12,3)]	[]	[]	[(12,1)]	TCTGG)	(null)
+((12,3)	[(12,4)]	[]	[]	[(13,4),(12,2)]	CTGGC)	(null)
+((12,4)	[(11,3)]	[]	[]	[(12,3)]	TGGCA)	(null)
+((14,1)	[(14,2)]	[]	[]	[(15,2)]	GCATC)	(null)
+((14,2)	[(13,1),(14,3)]	[]	[]	[(14,1)]	CATCT)	(null)
+((14,3)	[(14,4)]	[]	[]	[(15,4),(14,2)]	ATCTC)	(null)
+((14,4)	[(13,3)]	[]	[]	[(14,3)]	TCTCT)	(null)
+((16,1)	[(16,2)]	[]	[]	[(17,2)]	AACGG)	(null)
+((16,2)	[(15,1),(16,3)]	[]	[]	[(16,1)]	ACGGC)	(null)
+((16,3)	[(16,4)]	[]	[]	[(17,4),(16,2)]	CGGCA)	(null)
+((16,4)	[(15,3)]	[]	[]	[(16,3)]	GGCAT)	(null)
+((18,1)	[(23,1),(18,2)]	[]	[(17,3)]	[]	CGTTT)	(null)
+((18,2)	[(7,1),(18,3)]	[(19,4)]	[]	[(18,1)]	GTTTC)	(null)
+((18,3)	[(18,4)]	[]	[(17,1)]	[(18,2)]	TTTCA)	(null)
+((18,4)	[]	[(19,2)]	[(24,1)]	[(18,3)]	TTCAA)	(null)
+((20,1)	[(20,2)]	[]	[(19,3)]	[]	TCAAT)	(null)
+((20,2)	[(21,1),(20,3)]	[]	[]	[(20,1)]	CAATA)	(null)
+((20,3)	[(20,4)]	[]	[(19,1)]	[(20,2)]	AATAC)	(null)
+((20,4)	[(21,3)]	[]	[]	[(20,3)]	ATACG)	(null)
+((22,1)	[(22,2)]	[]	[]	[(28,1),(27,3),(21,2)]	TACGT)	(null)
+((22,2)	[(22,3)]	[(23,4)]	[]	[(27,4),(22,1)]	ACGTG)	(null)
+((22,3)	[(22,4)]	[]	[]	[(21,4),(22,2)]	CGTGA)	(null)
+((22,4)	[]	[(23,2)]	[]	[(22,3)]	GTGAA)	(null)
+((24,1)	[(17,1),(24,2)]	[]	[(23,3),(18,4),(7,2)]	[(8,1),(19,3)]	TGAAA)	(null)
+((24,2)	[(25,1),(24,3)]	[]	[(7,1)]	[(19,4),(24,1)]	GAAAC)	(null)
+((24,3)	[(24,4)]	[]	[(23,1)]	[(24,2)]	AAACT)	(null)
+((24,4)	[(25,3)]	[]	[]	[(24,3)]	AACTA)	(null)
+((26,1)	[(26,2)]	[]	[(27,3)]	[]	GTAAT)	(null)
+((26,2)	[(26,3)]	[(25,4)]	[]	[(26,1)]	TAATA)	(null)
+((26,3)	[(26,4)]	[]	[(27,1)]	[(26,2)]	AATAG)	(null)
+((26,4)	[]	[(25,2)]	[]	[(26,3)]	ATAGT)	(null)
+((28,1)	[(22,1),(28,2)]	[]	[]	[(27,2)]	TTACG)	(null)
+((28,2)	[(28,3)]	[(29,4)]	[]	[(28,1)]	TACGT)	(null)
+((28,3)	[(28,4)]	[]	[]	[(27,4),(28,2)]	ACGTC)	(null)
+((28,4)	[(31,3)]	[(29,2)]	[]	[(28,3)]	CGTCA)	(null)
+((30,1)	[(30,2)]	[]	[(29,3)]	[(31,2)]	GTCAT)	(null)
+((30,2)	[(29,1),(30,3)]	[(31,4)]	[]	[(30,1)]	TCATG)	(null)
+((30,3)	[(30,4)]	[]	[(29,1)]	[(31,4),(30,2)]	CATGA)	(null)
+((30,4)	[(29,3)]	[(31,2)]	[]	[(30,3)]	ATGAC)	(null)
+((32,1)	[(32,2)]	[]	[(33,3),(35,3)]	[]	AAGCG)	(null)
+((32,2)	[(31,1),(32,3)]	[]	[]	[(32,1)]	AGCGT)	(null)
+((32,3)	[(32,4)]	[]	[]	[(32,2)]	GCGTC)	(null)
+((32,4)	[(31,3)]	[(29,2)]	[]	[(32,3)]	CGTCA)	(null)
+((34,1)	[(34,2)]	[]	[]	[(33,2),(35,2)]	GCTTA)	(null)
+((34,2)	[(34,3)]	[(35,4),(33,4)]	[]	[(34,1)]	CTTAA)	(null)
+((34,3)	[(34,4)]	[]	[]	[(35,4),(33,4),(34,2)]	TTAAG)	(null)
+((34,4)	[]	[(33,2),(35,2)]	[]	[(34,3)]	TAAGC)	(null)
+((36,1)	[(36,2)]	[]	[(33,3),(35,3)]	[]	AAGCG)	(null)
+((36,2)	[(36,3)]	[(37,4)]	[]	[(36,1)]	AGCGT)	(null)
+((36,3)	[(36,4)]	[]	[]	[(36,2)]	GCGTG)	(null)
+((36,4)	[]	[(37,2)]	[]	[(36,3)]	CGTGT)	(null)
+((1,1)	[(1,2)]	[]	[]	[]	TAGTG)	(null)
+((1,2)	[(1,3)]	[(2,4)]	[]	[(1,1)]	AGTGC)	(null)
+((1,3)	[(1,4)]	[]	[]	[(1,2)]	GTGCG)	(null)
+((1,4)	[]	[(2,2)]	[]	[(1,3)]	TGCGA)	(null)
+((3,1)	[(3,3)]	[]	[]	[]	GCTAGG)	(null)
+((3,3)	[(3,4)]	[]	[]	[(3,1)]	TAGGG)	(null)
+((3,4)	[(4,3)]	[]	[]	[(3,3)]	AGGGT)	(null)
+((5,1)	[(5,2)]	[]	[(6,3)]	[]	AGCAA)	(null)
+((5,2)	[(5,3)]	[(4,4)]	[]	[(5,1)]	GCAAC)	(null)
+((5,3)	[(5,4)]	[]	[(6,1)]	[(5,2)]	CAACC)	(null)
+((5,4)	[]	[(4,2)]	[]	[(5,3)]	AACCC)	(null)
+((7,1)	[(7,2)]	[]	[(8,3),(24,2)]	[(18,2),(23,1)]	TTTCA)	(null)
+((7,2)	[(7,3)]	[(6,4)]	[(24,1)]	[(7,1)]	TTCAG)	(null)
+((7,3)	[(7,4)]	[]	[(8,1)]	[(7,2)]	TCAGC)	(null)
+((7,4)	[]	[(6,2)]	[]	[(7,3)]	CAGCA)	(null)
+((9,1)	[(9,2)]	[]	[]	[(10,2)]	CAGAT)	(null)
+((9,2)	[(9,3)]	[(8,4)]	[]	[(9,1)]	AGATT)	(null)
+((9,3)	[(9,4)]	[]	[]	[(10,4),(9,2)]	GATTT)	(null)
+((9,4)	[]	[(8,2)]	[]	[(9,3)]	ATTTC)	(null)
+((11,1)	[(11,2)]	[]	[]	[(12,2)]	CTGGC)	(null)
+((11,2)	[(10,1),(11,3)]	[]	[]	[(11,1)]	TGGCA)	(null)
+((11,3)	[(11,4)]	[]	[]	[(12,4),(11,2)]	GGCAG)	(null)
+((11,4)	[(10,3)]	[]	[]	[(11,3)]	GCAGA)	(null)
+((13,1)	[(13,2)]	[]	[]	[(14,2)]	ATCTC)	(null)
+((13,2)	[(12,1),(13,3)]	[]	[]	[(13,1)]	TCTCT)	(null)
+((13,3)	[(13,4)]	[]	[]	[(14,4),(13,2)]	CTCTG)	(null)
+((13,4)	[(12,3)]	[]	[]	[(13,3)]	TCTGG)	(null)
+((15,1)	[(15,2)]	[]	[]	[(16,2)]	CGGCA)	(null)
+((15,2)	[(14,1),(15,3)]	[]	[]	[(15,1)]	GGCAT)	(null)
+((15,3)	[(15,4)]	[]	[]	[(16,4),(15,2)]	GCATC)	(null)
+((15,4)	[(14,3)]	[]	[]	[(15,3)]	CATCT)	(null)
+((17,1)	[(17,2)]	[]	[(23,2),(18,3)]	[(24,1)]	GAAAC)	(null)
+((17,2)	[(16,1),(17,3)]	[]	[(23,1)]	[(17,1)]	AAACG)	(null)
+((17,3)	[(17,4)]	[]	[(18,1)]	[(17,2)]	AACGG)	(null)
+((17,4)	[(16,3)]	[]	[]	[(17,3)]	ACGGC)	(null)
+((19,1)	[(19,2)]	[]	[(20,3)]	[]	TATTG)	(null)
+((19,2)	[(19,3)]	[(18,4)]	[]	[(19,1)]	ATTGA)	(null)
+((19,3)	[(24,1),(19,4)]	[]	[(20,1)]	[(19,2)]	TTGAA)	(null)
+((19,4)	[(8,3),(24,2)]	[(18,2),(23,1)]	[]	[(19,3)]	TGAAA)	(null)
+((21,1)	[(21,2)]	[]	[]	[(20,2)]	AATAC)	(null)
+((21,2)	[(22,1),(21,3)]	[]	[]	[(21,1)]	ATACG)	(null)
+((21,3)	[(21,4)]	[]	[]	[(20,4),(21,2)]	TACGT)	(null)
+((21,4)	[(22,3)]	[]	[]	[(27,4),(21,3)]	ACGTG)	(null)
+((23,1)	[(7,1),(23,2)]	[(19,4)]	[(24,3),(17,2)]	[(18,1)]	GTTTC)	(null)
+((23,2)	[(23,3)]	[(22,4)]	[(17,1)]	[(23,1)]	TTTCA)	(null)
+((23,3)	[(23,4)]	[]	[(24,1)]	[(23,2)]	TTCAC)	(null)
+((23,4)	[]	[(22,2)]	[]	[(23,3)]	TCACG)	(null)
+((25,1)	[(25,2)]	[]	[]	[(24,2)]	AAACT)	(null)
+((25,2)	[(25,3)]	[(26,4)]	[]	[(25,1)]	AACTA)	(null)
+((25,3)	[(25,4)]	[]	[]	[(24,4),(25,2)]	ACTAT)	(null)
+((25,4)	[]	[(26,2)]	[]	[(25,3)]	CTATT)	(null)
+((27,1)	[(27,2)]	[]	[(26,3)]	[]	TATTA)	(null)
+((27,2)	[(28,1),(27,3)]	[]	[]	[(27,1)]	ATTAC)	(null)
+((27,3)	[(22,1),(27,4)]	[]	[(26,1)]	[(27,2)]	TTACG)	(null)
+((27,4)	[(28,3),(21,4),(22,2)]	[]	[]	[(27,3)]	TACGT)	(null)
+((29,1)	[(29,2)]	[]	[(30,3)]	[(30,2)]	CATGA)	(null)
+((29,2)	[(29,3)]	[(32,4),(28,4)]	[]	[(29,1)]	ATGAC)	(null)
+((29,3)	[(29,4)]	[]	[(30,1)]	[(30,4),(29,2)]	TGACG)	(null)
+((29,4)	[]	[(28,2)]	[]	[(29,3)]	GACGT)	(null)
+((31,1)	[(31,2)]	[]	[]	[(32,2)]	GCGTC)	(null)
+((31,2)	[(30,1),(31,3)]	[(30,4)]	[]	[(31,1)]	CGTCA)	(null)
+((31,3)	[(31,4)]	[]	[]	[(32,4),(28,4),(31,2)]	GTCAT)	(null)
+((31,4)	[(30,3)]	[(30,2)]	[]	[(31,3)]	TCATG)	(null)
+((33,1)	[(33,2)]	[]	[]	[]	TCGCT)	(null)
+((33,2)	[(34,1),(33,3)]	[(34,4)]	[]	[(33,1)]	CGCTT)	(null)
+((33,3)	[(33,4)]	[]	[(36,1),(32,1)]	[(33,2)]	GCTTA)	(null)
+((33,4)	[(34,3)]	[(34,2)]	[]	[(33,3)]	CTTAA)	(null)
+((35,1)	[(35,2)]	[]	[]	[]	TCGCT)	(null)
+((35,2)	[(34,1),(35,3)]	[(34,4)]	[]	[(35,1)]	CGCTT)	(null)
+((35,3)	[(35,4)]	[]	[(36,1),(32,1)]	[(35,2)]	GCTTA)	(null)
+((35,4)	[(34,3)]	[(34,2)]	[]	[(35,3)]	CTTAA)	(null)
+((37,1)	[(37,2)]	[]	[]	[]	CCACA)	(null)
+((37,2)	[(37,3)]	[(36,4)]	[]	[(37,1)]	CACAC)	(null)
+((37,3)	[(37,4)]	[]	[]	[(37,2)]	ACACG)	(null)
+((37,4)	[]	[(36,2)]	[]	[(37,3)]	CACGC)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1.txt.svg b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1.txt.svg
new file mode 100644
index 0000000..655df86
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1.txt.svg
@@ -0,0 +1,3577 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: walk_random_seq1_txt Pages: 1 -->
+<svg width="1494pt" height="5501pt"
+ viewBox="0.00 0.00 1494.00 5501.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 5497)">
+<title>walk_random_seq1_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-5497 1491,-5497 1491,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="54,-1935 54,-2136 226,-2136 226,-1935 54,-1935"/>
+<text text-anchor="middle" x="140" y="-2119.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_24</title>
+<polygon fill="none" stroke="black" points="428,-5076 428,-5164 942,-5164 942,-5076 428,-5076"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_25</title>
+<polygon fill="none" stroke="black" points="562,-1126 562,-1214 1076,-1214 1076,-1126 562,-1126"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_26</title>
+<polygon fill="none" stroke="black" points="428,-2358 428,-2446 942,-2446 942,-2358 428,-2358"/>
+</g>
+<g id="graph6" class="cluster"><title>cluster_27</title>
+<polygon fill="none" stroke="black" points="294,-2792 294,-2880 808,-2880 808,-2792 294,-2792"/>
+</g>
+<g id="graph7" class="cluster"><title>cluster_20</title>
+<polygon fill="none" stroke="black" points="160,-4070 160,-4158 674,-4158 674,-4070 160,-4070"/>
+</g>
+<g id="graph8" class="cluster"><title>cluster_21</title>
+<polygon fill="none" stroke="black" points="428,-3605 428,-3693 942,-3693 942,-3605 428,-3605"/>
+</g>
+<g id="graph9" class="cluster"><title>cluster_22</title>
+<polygon fill="none" stroke="black" points="428,-3190 428,-3278 942,-3278 942,-3190 428,-3190"/>
+</g>
+<g id="graph10" class="cluster"><title>cluster_23</title>
+<polygon fill="none" stroke="black" points="294,-4681 294,-4769 808,-4769 808,-4681 294,-4681"/>
+</g>
+<g id="graph11" class="cluster"><title>cluster_28</title>
+<polygon fill="none" stroke="black" points="562,-2696 562,-2784 1076,-2784 1076,-2696 562,-2696"/>
+</g>
+<g id="graph12" class="cluster"><title>cluster_29</title>
+<polygon fill="none" stroke="black" points="696,-2262 696,-2350 1210,-2350 1210,-2262 696,-2262"/>
+</g>
+<g id="graph13" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="13,-5371 13,-5459 535,-5459 535,-5371 13,-5371"/>
+</g>
+<g id="graph14" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="700,-8 700,-96 1071,-96 1071,-8 700,-8"/>
+</g>
+<g id="graph15" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="165,-5275 165,-5363 669,-5363 669,-5275 165,-5275"/>
+</g>
+<g id="graph16" class="cluster"><title>cluster_5</title>
+<polygon fill="none" stroke="black" points="701,-2454 701,-2542 1205,-2542 1205,-2454 701,-2454"/>
+</g>
+<g id="graph17" class="cluster"><title>cluster_4</title>
+<polygon fill="none" stroke="black" points="835,-1400 835,-1488 1339,-1488 1339,-1400 835,-1400"/>
+</g>
+<g id="graph18" class="cluster"><title>cluster_7</title>
+<polygon fill="none" stroke="black" points="433,-4585 433,-4673 937,-4673 937,-4585 433,-4585"/>
+</g>
+<g id="graph19" class="cluster"><title>cluster_6</title>
+<polygon fill="none" stroke="black" points="567,-3087 567,-3175 1071,-3175 1071,-3087 567,-3087"/>
+</g>
+<g id="graph20" class="cluster"><title>cluster_9</title>
+<polygon fill="none" stroke="black" points="433,-3439 433,-3527 937,-3527 937,-3439 433,-3439"/>
+</g>
+<g id="graph21" class="cluster"><title>cluster_8</title>
+<polygon fill="none" stroke="black" points="299,-4980 299,-5068 803,-5068 803,-4980 299,-4980"/>
+</g>
+<g id="graph22" class="cluster"><title>cluster_11</title>
+<polygon fill="none" stroke="black" points="294,-616 294,-704 808,-704 808,-616 294,-616"/>
+</g>
+<g id="graph23" class="cluster"><title>cluster_10</title>
+<polygon fill="none" stroke="black" points="428,-2991 428,-3079 942,-3079 942,-2991 428,-2991"/>
+</g>
+<g id="graph24" class="cluster"><title>cluster_13</title>
+<polygon fill="none" stroke="black" points="294,-424 294,-512 808,-512 808,-424 294,-424"/>
+</g>
+<g id="graph25" class="cluster"><title>cluster_12</title>
+<polygon fill="none" stroke="black" points="294,-520 294,-608 808,-608 808,-520 294,-520"/>
+</g>
+<g id="graph26" class="cluster"><title>cluster_15</title>
+<polygon fill="none" stroke="black" points="294,-232 294,-320 808,-320 808,-232 294,-232"/>
+</g>
+<g id="graph27" class="cluster"><title>cluster_14</title>
+<polygon fill="none" stroke="black" points="294,-328 294,-416 808,-416 808,-328 294,-328"/>
+</g>
+<g id="graph28" class="cluster"><title>cluster_17</title>
+<polygon fill="none" stroke="black" points="294,-3904 294,-3992 808,-3992 808,-3904 294,-3904"/>
+</g>
+<g id="graph29" class="cluster"><title>cluster_16</title>
+<polygon fill="none" stroke="black" points="294,-104 294,-192 808,-192 808,-104 294,-104"/>
+</g>
+<g id="graph30" class="cluster"><title>cluster_19</title>
+<polygon fill="none" stroke="black" points="8,-5172 8,-5260 540,-5260 540,-5172 8,-5172"/>
+</g>
+<g id="graph31" class="cluster"><title>cluster_18</title>
+<polygon fill="none" stroke="black" points="160,-4419 160,-4507 674,-4507 674,-4419 160,-4419"/>
+</g>
+<g id="graph32" class="cluster"><title>cluster_31</title>
+<polygon fill="none" stroke="black" points="562,-1688 562,-1776 1076,-1776 1076,-1688 562,-1688"/>
+</g>
+<g id="graph33" class="cluster"><title>cluster_30</title>
+<polygon fill="none" stroke="black" points="696,-2096 696,-2184 1210,-2184 1210,-2096 696,-2096"/>
+</g>
+<g id="graph34" class="cluster"><title>cluster_37</title>
+<polygon fill="none" stroke="black" points="964,-616 964,-704 1478,-704 1478,-616 964,-616"/>
+</g>
+<g id="graph35" class="cluster"><title>cluster_36</title>
+<polygon fill="none" stroke="black" points="830,-1030 830,-1118 1344,-1118 1344,-1030 830,-1030"/>
+</g>
+<g id="graph36" class="cluster"><title>cluster_35</title>
+<polygon fill="none" stroke="black" points="428,-1592 428,-1680 942,-1680 942,-1592 428,-1592"/>
+</g>
+<g id="graph37" class="cluster"><title>cluster_34</title>
+<polygon fill="none" stroke="black" points="562,-712 562,-800 1076,-800 1076,-712 562,-712"/>
+</g>
+<g id="graph38" class="cluster"><title>cluster_33</title>
+<polygon fill="none" stroke="black" points="428,-1496 428,-1584 942,-1584 942,-1496 428,-1496"/>
+</g>
+<g id="graph39" class="cluster"><title>cluster_32</title>
+<polygon fill="none" stroke="black" points="562,-1930 562,-2018 1076,-2018 1076,-1930 562,-1930"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="64" cy="-2084" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="216" cy="-2084" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M66.1487,-2084C81.1775,-2084 170.918,-2084 203.873,-2084"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="204.136,-2087.5 214.136,-2084 204.136,-2080.5 204.136,-2087.5"/>
+<text text-anchor="middle" x="140" y="-2089.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="64" cy="-2043" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="216" cy="-2043" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M66.1487,-2043C81.1775,-2043 170.918,-2043 203.873,-2043"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="204.136,-2046.5 214.136,-2043 204.136,-2039.5 204.136,-2046.5"/>
+<text text-anchor="middle" x="140" y="-2048.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="64" cy="-2002" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="216" cy="-2002" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M66.1487,-2002C81.1775,-2002 170.918,-2002 203.873,-2002"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="204.136,-2005.5 214.136,-2002 204.136,-1998.5 204.136,-2005.5"/>
+<text text-anchor="middle" x="140" y="-2007.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="64" cy="-1961" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="216" cy="-1961" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M66.1487,-1961C81.1775,-1961 170.918,-1961 203.873,-1961"/>
+<polygon fill="#218559" stroke="#218559" points="204.136,-1964.5 214.136,-1961 204.136,-1957.5 204.136,-1964.5"/>
+<text text-anchor="middle" x="140" y="-1966.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 24,1 -->
+<g id="node15" class="node"><title>24,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5120" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-5131.17" font-family="Times Roman,serif" font-size="10.00">24,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-5112 459,-5126 510,-5126 510,-5112 459,-5112"/>
+<text text-anchor="start" x="467.5" y="-5116.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-5098 459,-5112 510,-5112 510,-5098 459,-5098"/>
+<text text-anchor="start" x="470" y="-5102.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+</g>
+<!-- 24,2 -->
+<g id="node16" class="node"><title>24,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-5120" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-5131.17" font-family="Times Roman,serif" font-size="10.00">24,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-5112 593,-5126 644,-5126 644,-5112 593,-5112"/>
+<text text-anchor="start" x="601" y="-5116.67" font-family="Times Roman,serif" font-size="10.00">GAAAC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-5098 593,-5112 644,-5112 644,-5098 593,-5098"/>
+<text text-anchor="start" x="604" y="-5102.67" font-family="Times Roman,serif" font-size="10.00">GTTTC</text>
+</g>
+<!-- 24,1&#45;&gt;24,2 -->
+<g id="edge280" class="edge"><title>24,1&#45;&gt;24,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-5113.53C540.501,-5113.25 550.748,-5113.18 560.703,-5113.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-5116.82 570.933,-5113.52 561.007,-5109.82 560.864,-5116.82"/>
+</g>
+<!-- 23,3 -->
+<g id="node52" class="node"><title>23,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-4725" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-4736.17" font-family="Times Roman,serif" font-size="10.00">23,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-4717 593,-4731 644,-4731 644,-4717 593,-4717"/>
+<text text-anchor="start" x="603.5" y="-4721.67" font-family="Times Roman,serif" font-size="10.00">TTCAC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-4703 593,-4717 644,-4717 644,-4703 593,-4703"/>
+<text text-anchor="start" x="601.5" y="-4707.67" font-family="Times Roman,serif" font-size="10.00">GTGAA</text>
+</g>
+<!-- 24,1&#45;&gt;23,3 -->
+<g id="edge282" class="edge"><title>24,1&#45;&gt;23,3</title>
+<path fill="none" stroke="#06a2cb" d="M515.6,-5092.91C528.303,-5082.03 540,-5072 540,-5072 540,-5072 586.676,-4864.35 607.814,-4770.32"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="611.241,-4771.03 610.019,-4760.5 604.411,-4769.49 611.241,-4771.03"/>
+</g>
+<!-- 7,2 -->
+<g id="node90" class="node"><title>7,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-4629" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-4640.17" font-family="Times Roman,serif" font-size="10.00">7,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-4621 596,-4635 641,-4635 641,-4621 596,-4621"/>
+<text text-anchor="start" x="603" y="-4625.67" font-family="Times Roman,serif" font-size="10.00">TTCAG</text>
+<polygon fill="#218559" stroke="#218559" points="596,-4607 596,-4621 641,-4621 641,-4607 596,-4607"/>
+<text text-anchor="start" x="601.5" y="-4611.67" font-family="Times Roman,serif" font-size="10.00">CTGAA</text>
+</g>
+<!-- 24,1&#45;&gt;7,2 -->
+<g id="edge286" class="edge"><title>24,1&#45;&gt;7,2</title>
+<path fill="none" stroke="#06a2cb" d="M515.6,-5092.91C528.303,-5082.03 540,-5072 540,-5072 540,-5072 552,-4898 552,-4898 552,-4898 562,-4677 562,-4677 562,-4677 569.944,-4670.19 579.849,-4661.7"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="582.391,-4664.13 587.705,-4654.97 577.835,-4658.82 582.391,-4664.13"/>
+</g>
+<!-- 8,1 -->
+<g id="node104" class="node"><title>8,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-5024" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="330.5" y="-5035.17" font-family="Times Roman,serif" font-size="10.00">8,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="328,-5016 328,-5030 373,-5030 373,-5016 328,-5016"/>
+<text text-anchor="start" x="333.5" y="-5020.67" font-family="Times Roman,serif" font-size="10.00">CTGAA</text>
+<polygon fill="#218559" stroke="#218559" points="328,-5002 328,-5016 373,-5016 373,-5002 328,-5002"/>
+<text text-anchor="start" x="335" y="-5006.67" font-family="Times Roman,serif" font-size="10.00">TTCAG</text>
+</g>
+<!-- 24,1&#45;&gt;8,1 -->
+<g id="edge288" class="edge"><title>24,1&#45;&gt;8,1</title>
+<path fill="none" stroke="#218559" d="M445.233,-5098.91C429.962,-5090.6 416,-5083 416,-5083 416,-5083 402.293,-5070.75 387.372,-5057.41"/>
+<polygon fill="#218559" stroke="#218559" points="389.313,-5054.45 379.525,-5050.39 384.648,-5059.67 389.313,-5054.45"/>
+</g>
+<!-- 17,1 -->
+<g id="node139" class="node"><title>17,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-3948" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-3959.17" font-family="Times Roman,serif" font-size="10.00">17,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-3940 325,-3954 376,-3954 376,-3940 325,-3940"/>
+<text text-anchor="start" x="333" y="-3944.67" font-family="Times Roman,serif" font-size="10.00">GAAAC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-3926 325,-3940 376,-3940 376,-3926 325,-3926"/>
+<text text-anchor="start" x="336" y="-3930.67" font-family="Times Roman,serif" font-size="10.00">GTTTC</text>
+</g>
+<!-- 24,1&#45;&gt;17,1 -->
+<g id="edge278" class="edge"><title>24,1&#45;&gt;17,1</title>
+<path fill="none" stroke="#dd1e2f" d="M452.4,-5092.91C439.697,-5082.03 428,-5072 428,-5072 428,-5072 418,-3850 418,-3850 418,-3850 416,-3850 416,-3850 416,-3850 395.53,-3880.4 377.39,-3907.33"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="374.294,-3905.66 371.611,-3915.91 380.1,-3909.57 374.294,-3905.66"/>
+</g>
+<!-- 19,3 -->
+<g id="node151" class="node"><title>19,3</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-5216" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-5227.17" font-family="Times Roman,serif" font-size="10.00">19,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-5208 325,-5222 376,-5222 376,-5208 325,-5208"/>
+<text text-anchor="start" x="334.5" y="-5212.67" font-family="Times Roman,serif" font-size="10.00">TTGAA</text>
+<polygon fill="#218559" stroke="#218559" points="325,-5194 325,-5208 376,-5208 376,-5194 325,-5194"/>
+<text text-anchor="start" x="335" y="-5198.67" font-family="Times Roman,serif" font-size="10.00">TTCAA</text>
+</g>
+<!-- 24,1&#45;&gt;19,3 -->
+<g id="edge290" class="edge"><title>24,1&#45;&gt;19,3</title>
+<path fill="none" stroke="#218559" d="M449.317,-5144.85C432.127,-5157.16 411.205,-5172.15 393.005,-5185.19"/>
+<polygon fill="#218559" stroke="#218559" points="390.948,-5182.36 384.857,-5191.03 395.025,-5188.05 390.948,-5182.36"/>
+</g>
+<!-- 18,4 -->
+<g id="node157" class="node"><title>18,4</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-4463" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-4474.17" font-family="Times Roman,serif" font-size="10.00">18,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-4455 593,-4469 644,-4469 644,-4455 593,-4455"/>
+<text text-anchor="start" x="603" y="-4459.67" font-family="Times Roman,serif" font-size="10.00">TTCAA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-4441 593,-4455 644,-4455 644,-4441 593,-4441"/>
+<text text-anchor="start" x="602.5" y="-4445.67" font-family="Times Roman,serif" font-size="10.00">TTGAA</text>
+</g>
+<!-- 24,1&#45;&gt;18,4 -->
+<g id="edge284" class="edge"><title>24,1&#45;&gt;18,4</title>
+<path fill="none" stroke="#06a2cb" d="M515.6,-5092.91C528.303,-5082.03 540,-5072 540,-5072 540,-5072 550,-4876 550,-4876 550,-4876 552,-4843 552,-4843 552,-4843 562,-4581 562,-4581 562,-4581 581.437,-4540.04 597.409,-4506.39"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="600.677,-4507.67 601.802,-4497.13 594.353,-4504.66 600.677,-4507.67"/>
+</g>
+<!-- 24,2&#45;&gt;24,1 -->
+<g id="edge300" class="edge"><title>24,2&#45;&gt;24,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-5126.48C561.29,-5126.75 551.041,-5126.82 541.091,-5126.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-5123.18 530.867,-5126.47 540.792,-5130.18 540.937,-5123.18"/>
+</g>
+<!-- 24,3 -->
+<g id="node17" class="node"><title>24,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-5120" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-5131.17" font-family="Times Roman,serif" font-size="10.00">24,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-5112 727,-5126 778,-5126 778,-5112 727,-5112"/>
+<text text-anchor="start" x="736" y="-5116.67" font-family="Times Roman,serif" font-size="10.00">AAACT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-5098 727,-5112 778,-5112 778,-5098 727,-5098"/>
+<text text-anchor="start" x="737.5" y="-5102.67" font-family="Times Roman,serif" font-size="10.00">AGTTT</text>
+</g>
+<!-- 24,2&#45;&gt;24,3 -->
+<g id="edge294" class="edge"><title>24,2&#45;&gt;24,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-5113.53C674.501,-5113.25 684.748,-5113.18 694.703,-5113.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-5116.82 704.933,-5113.52 695.007,-5109.82 694.864,-5116.82"/>
+</g>
+<!-- 25,1 -->
+<g id="node20" class="node"><title>25,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1170" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1181.17" font-family="Times Roman,serif" font-size="10.00">25,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1162 593,-1176 644,-1176 644,-1162 593,-1162"/>
+<text text-anchor="start" x="602" y="-1166.67" font-family="Times Roman,serif" font-size="10.00">AAACT</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1148 593,-1162 644,-1162 644,-1148 593,-1148"/>
+<text text-anchor="start" x="603.5" y="-1152.67" font-family="Times Roman,serif" font-size="10.00">AGTTT</text>
+</g>
+<!-- 24,2&#45;&gt;25,1 -->
+<g id="edge292" class="edge"><title>24,2&#45;&gt;25,1</title>
+<path fill="none" stroke="#dd1e2f" d="M586.07,-5092.84C568.813,-5078.15 551,-5063 551,-5063 551,-5063 551,-1501 551,-1501 551,-1501 590.35,-1306.6 608.737,-1215.76"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="612.213,-1216.23 610.766,-1205.74 605.352,-1214.84 612.213,-1216.23"/>
+</g>
+<!-- 7,1 -->
+<g id="node89" class="node"><title>7,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-4629" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-4640.17" font-family="Times Roman,serif" font-size="10.00">7,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-4621 462,-4635 507,-4635 507,-4621 462,-4621"/>
+<text text-anchor="start" x="470" y="-4625.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+<polygon fill="#218559" stroke="#218559" points="462,-4607 462,-4621 507,-4621 507,-4607 462,-4607"/>
+<text text-anchor="start" x="467.5" y="-4611.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+</g>
+<!-- 24,2&#45;&gt;7,1 -->
+<g id="edge296" class="edge"><title>24,2&#45;&gt;7,1</title>
+<path fill="none" stroke="#06a2cb" d="M586.4,-5092.91C573.697,-5082.03 562,-5072 562,-5072 562,-5072 552,-4365 552,-4365 552,-4365 550,-4365 550,-4365 550,-4365 540,-4579 540,-4579 540,-4579 531.629,-4586.47 521.36,-4595.64"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="518.768,-4593.26 513.64,-4602.54 523.43,-4598.49 518.768,-4593.26"/>
+</g>
+<!-- 19,4 -->
+<g id="node152" class="node"><title>19,4</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5216" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-5227.17" font-family="Times Roman,serif" font-size="10.00">19,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-5208 459,-5222 510,-5222 510,-5208 459,-5208"/>
+<text text-anchor="start" x="467.5" y="-5212.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-5194 459,-5208 510,-5208 510,-5194 459,-5194"/>
+<text text-anchor="start" x="470" y="-5198.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+</g>
+<!-- 24,2&#45;&gt;19,4 -->
+<g id="edge298" class="edge"><title>24,2&#45;&gt;19,4</title>
+<path fill="none" stroke="#218559" d="M599.965,-5153.61C580.424,-5190.03 552,-5243 552,-5243 552,-5243 550,-5243 550,-5243 550,-5243 544,-5240.55 535.618,-5237.12"/>
+<polygon fill="#218559" stroke="#218559" points="536.753,-5233.8 526.172,-5233.25 534.103,-5240.28 536.753,-5233.8"/>
+</g>
+<!-- 24,3&#45;&gt;24,2 -->
+<g id="edge306" class="edge"><title>24,3&#45;&gt;24,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-5126.48C695.29,-5126.75 685.041,-5126.82 675.091,-5126.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-5123.18 664.867,-5126.47 674.792,-5130.18 674.937,-5123.18"/>
+</g>
+<!-- 24,4 -->
+<g id="node18" class="node"><title>24,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-5120" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-5131.17" font-family="Times Roman,serif" font-size="10.00">24,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-5112 861,-5126 912,-5126 912,-5112 861,-5112"/>
+<text text-anchor="start" x="870.5" y="-5116.67" font-family="Times Roman,serif" font-size="10.00">AACTA</text>
+<polygon fill="#218559" stroke="#218559" points="861,-5098 861,-5112 912,-5112 912,-5098 861,-5098"/>
+<text text-anchor="start" x="872" y="-5102.67" font-family="Times Roman,serif" font-size="10.00">TAGTT</text>
+</g>
+<!-- 24,3&#45;&gt;24,4 -->
+<g id="edge302" class="edge"><title>24,3&#45;&gt;24,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-5113.53C808.501,-5113.25 818.748,-5113.18 828.703,-5113.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-5116.82 838.933,-5113.52 829.007,-5109.82 828.864,-5116.82"/>
+</g>
+<!-- 23,1 -->
+<g id="node50" class="node"><title>23,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-4725" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-4736.17" font-family="Times Roman,serif" font-size="10.00">23,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-4717 325,-4731 376,-4731 376,-4717 325,-4717"/>
+<text text-anchor="start" x="336" y="-4721.67" font-family="Times Roman,serif" font-size="10.00">GTTTC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-4703 325,-4717 376,-4717 376,-4703 325,-4703"/>
+<text text-anchor="start" x="333" y="-4707.67" font-family="Times Roman,serif" font-size="10.00">GAAAC</text>
+</g>
+<!-- 24,3&#45;&gt;23,1 -->
+<g id="edge304" class="edge"><title>24,3&#45;&gt;23,1</title>
+<path fill="none" stroke="#06a2cb" d="M720.4,-5092.91C707.697,-5082.03 696,-5072 696,-5072 696,-5072 674,-3900 674,-3900 674,-3900 562,-3900 562,-3900 562,-3900 540,-4026 540,-4026 540,-4026 428,-4066 428,-4066 428,-4066 418,-4240 418,-4240 418,-4240 398,-4511 398,-4511 398,-4511 374.399,-4616.22 360.296,-4679.1"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="356.808,-4678.66 358.034,-4689.18 363.638,-4680.19 356.808,-4678.66"/>
+</g>
+<!-- 24,4&#45;&gt;24,3 -->
+<g id="edge310" class="edge"><title>24,4&#45;&gt;24,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-5126.48C829.29,-5126.75 819.041,-5126.82 809.091,-5126.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-5123.18 798.867,-5126.47 808.792,-5130.18 808.937,-5123.18"/>
+</g>
+<!-- 25,3 -->
+<g id="node22" class="node"><title>25,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1170" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1181.17" font-family="Times Roman,serif" font-size="10.00">25,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1162 861,-1176 912,-1176 912,-1162 861,-1162"/>
+<text text-anchor="start" x="871.5" y="-1166.67" font-family="Times Roman,serif" font-size="10.00">ACTAT</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1148 861,-1162 912,-1162 912,-1148 861,-1148"/>
+<text text-anchor="start" x="871.5" y="-1152.67" font-family="Times Roman,serif" font-size="10.00">ATAGT</text>
+</g>
+<!-- 24,4&#45;&gt;25,3 -->
+<g id="edge308" class="edge"><title>24,4&#45;&gt;25,3</title>
+<path fill="none" stroke="#dd1e2f" d="M880.687,-5084.15C864.84,-4977.25 819,-4668 819,-4668 819,-4668 819,-1405 819,-1405 819,-1405 853.684,-1283.35 873.142,-1215.1"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="876.521,-1216.01 875.897,-1205.44 869.789,-1214.09 876.521,-1216.01"/>
+</g>
+<!-- 25,1&#45;&gt;24,2 -->
+<g id="edge716" class="edge"><title>25,1&#45;&gt;24,2</title>
+<path fill="none" stroke="#218559" d="M610.766,-1205.74C593.441,-1291.33 551,-1501 551,-1501 551,-1501 551,-5063 551,-5063 551,-5063 563.917,-5073.99 578.409,-5086.32"/>
+<polygon fill="#218559" stroke="#218559" points="576.185,-5089.02 586.07,-5092.84 580.721,-5083.69 576.185,-5089.02"/>
+</g>
+<!-- 25,2 -->
+<g id="node21" class="node"><title>25,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1170" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1181.17" font-family="Times Roman,serif" font-size="10.00">25,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1162 727,-1176 778,-1176 778,-1162 727,-1162"/>
+<text text-anchor="start" x="736.5" y="-1166.67" font-family="Times Roman,serif" font-size="10.00">AACTA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1148 727,-1162 778,-1162 778,-1148 727,-1148"/>
+<text text-anchor="start" x="738" y="-1152.67" font-family="Times Roman,serif" font-size="10.00">TAGTT</text>
+</g>
+<!-- 25,1&#45;&gt;25,2 -->
+<g id="edge714" class="edge"><title>25,1&#45;&gt;25,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1163.53C674.501,-1163.25 684.748,-1163.18 694.703,-1163.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1166.82 704.933,-1163.52 695.007,-1159.82 694.864,-1166.82"/>
+</g>
+<!-- 25,2&#45;&gt;25,1 -->
+<g id="edge722" class="edge"><title>25,2&#45;&gt;25,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-1176.48C695.29,-1176.75 685.041,-1176.82 675.091,-1176.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1173.18 664.867,-1176.47 674.792,-1180.18 674.937,-1173.18"/>
+</g>
+<!-- 25,2&#45;&gt;25,3 -->
+<g id="edge718" class="edge"><title>25,2&#45;&gt;25,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1163.53C808.501,-1163.25 818.748,-1163.18 828.703,-1163.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1166.82 838.933,-1163.52 829.007,-1159.82 828.864,-1166.82"/>
+</g>
+<!-- 26,4 -->
+<g id="node28" class="node"><title>26,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2402" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-2413.17" font-family="Times Roman,serif" font-size="10.00">26,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-2394 861,-2408 912,-2408 912,-2394 861,-2394"/>
+<text text-anchor="start" x="871.5" y="-2398.67" font-family="Times Roman,serif" font-size="10.00">ATAGT</text>
+<polygon fill="#218559" stroke="#218559" points="861,-2380 861,-2394 912,-2394 912,-2380 861,-2380"/>
+<text text-anchor="start" x="871.5" y="-2384.67" font-family="Times Roman,serif" font-size="10.00">ACTAT</text>
+</g>
+<!-- 25,2&#45;&gt;26,4 -->
+<g id="edge720" class="edge"><title>25,2&#45;&gt;26,4</title>
+<path fill="none" stroke="#ebb035" d="M758.261,-1206C772.874,-1290.02 808,-1492 808,-1492 808,-1492 820,-1894 820,-1894 820,-1894 830,-2354 830,-2354 830,-2354 837.283,-2360.24 846.596,-2368.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="844.529,-2371.06 854.4,-2374.91 849.085,-2365.75 844.529,-2371.06"/>
+</g>
+<!-- 25,3&#45;&gt;24,4 -->
+<g id="edge726" class="edge"><title>25,3&#45;&gt;24,4</title>
+<path fill="none" stroke="#218559" d="M875.897,-1205.44C857.18,-1271.09 819,-1405 819,-1405 819,-1405 819,-4668 819,-4668 819,-4668 862.193,-4959.39 879.219,-5074.25"/>
+<polygon fill="#218559" stroke="#218559" points="875.758,-5074.78 880.687,-5084.15 882.682,-5073.75 875.758,-5074.78"/>
+</g>
+<!-- 25,3&#45;&gt;25,2 -->
+<g id="edge728" class="edge"><title>25,3&#45;&gt;25,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-1176.48C829.29,-1176.75 819.041,-1176.82 809.091,-1176.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1173.18 798.867,-1176.47 808.792,-1180.18 808.937,-1173.18"/>
+</g>
+<!-- 25,4 -->
+<g id="node23" class="node"><title>25,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1170" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-1181.17" font-family="Times Roman,serif" font-size="10.00">25,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-1162 995,-1176 1046,-1176 1046,-1162 995,-1162"/>
+<text text-anchor="start" x="1006.5" y="-1166.67" font-family="Times Roman,serif" font-size="10.00">CTATT</text>
+<polygon fill="#218559" stroke="#218559" points="995,-1148 995,-1162 1046,-1162 1046,-1148 995,-1148"/>
+<text text-anchor="start" x="1004.5" y="-1152.67" font-family="Times Roman,serif" font-size="10.00">AATAG</text>
+</g>
+<!-- 25,3&#45;&gt;25,4 -->
+<g id="edge724" class="edge"><title>25,3&#45;&gt;25,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-1163.53C942.501,-1163.25 952.748,-1163.18 962.703,-1163.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-1166.82 972.933,-1163.52 963.007,-1159.82 962.864,-1166.82"/>
+</g>
+<!-- 25,4&#45;&gt;25,3 -->
+<g id="edge732" class="edge"><title>25,4&#45;&gt;25,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-1176.48C963.29,-1176.75 953.041,-1176.82 943.091,-1176.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-1173.18 932.867,-1176.47 942.792,-1180.18 942.937,-1173.18"/>
+</g>
+<!-- 26,2 -->
+<g id="node26" class="node"><title>26,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-2402" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-2413.17" font-family="Times Roman,serif" font-size="10.00">26,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-2394 593,-2408 644,-2408 644,-2394 593,-2394"/>
+<text text-anchor="start" x="604" y="-2398.67" font-family="Times Roman,serif" font-size="10.00">TAATA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-2380 593,-2394 644,-2394 644,-2380 593,-2380"/>
+<text text-anchor="start" x="605" y="-2384.67" font-family="Times Roman,serif" font-size="10.00">TATTA</text>
+</g>
+<!-- 25,4&#45;&gt;26,2 -->
+<g id="edge730" class="edge"><title>25,4&#45;&gt;26,2</title>
+<path fill="none" stroke="#ebb035" d="M1007.69,-1205.13C988.09,-1261.04 952,-1364 952,-1364 952,-1364 942,-1814 942,-1814 942,-1814 830,-1848 830,-1848 830,-1848 818,-1892 818,-1892 818,-1892 808,-2054 808,-2054 808,-2054 696,-2092 696,-2092 696,-2092 651.064,-2270.59 629.406,-2356.67"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="625.994,-2355.89 626.948,-2366.44 632.782,-2357.6 625.994,-2355.89"/>
+</g>
+<!-- 26,1 -->
+<g id="node25" class="node"><title>26,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-2402" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-2413.17" font-family="Times Roman,serif" font-size="10.00">26,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-2394 459,-2408 510,-2408 510,-2394 459,-2394"/>
+<text text-anchor="start" x="469.5" y="-2398.67" font-family="Times Roman,serif" font-size="10.00">GTAAT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-2380 459,-2394 510,-2394 510,-2380 459,-2380"/>
+<text text-anchor="start" x="470" y="-2384.67" font-family="Times Roman,serif" font-size="10.00">ATTAC</text>
+</g>
+<!-- 26,1&#45;&gt;26,2 -->
+<g id="edge312" class="edge"><title>26,1&#45;&gt;26,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-2395.53C540.501,-2395.25 550.748,-2395.18 560.703,-2395.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-2398.82 570.933,-2395.52 561.007,-2391.82 560.864,-2398.82"/>
+</g>
+<!-- 27,3 -->
+<g id="node32" class="node"><title>27,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-2836" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-2847.17" font-family="Times Roman,serif" font-size="10.00">27,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-2828 593,-2842 644,-2842 644,-2828 593,-2828"/>
+<text text-anchor="start" x="603" y="-2832.67" font-family="Times Roman,serif" font-size="10.00">TTACG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-2814 593,-2828 644,-2828 644,-2814 593,-2814"/>
+<text text-anchor="start" x="602" y="-2818.67" font-family="Times Roman,serif" font-size="10.00">CGTAA</text>
+</g>
+<!-- 26,1&#45;&gt;27,3 -->
+<g id="edge314" class="edge"><title>26,1&#45;&gt;27,3</title>
+<path fill="none" stroke="#06a2cb" d="M491.198,-2437.62C510.508,-2533.18 562,-2788 562,-2788 562,-2788 569.283,-2794.24 578.596,-2802.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="576.529,-2805.06 586.4,-2808.91 581.085,-2799.75 576.529,-2805.06"/>
+</g>
+<!-- 26,2&#45;&gt;25,4 -->
+<g id="edge318" class="edge"><title>26,2&#45;&gt;25,4</title>
+<path fill="none" stroke="#ebb035" d="M624.938,-2366.26C641.884,-2278.96 684,-2062 684,-2062 684,-2062 808,-2022 808,-2022 808,-2022 818,-1826 818,-1826 818,-1826 830,-1820 830,-1820 830,-1820 942,-1780 942,-1780 942,-1780 952,-1268 952,-1268 952,-1268 973.274,-1237.34 992.023,-1210.32"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="994.909,-1212.3 997.734,-1202.09 989.158,-1208.31 994.909,-1212.3"/>
+</g>
+<!-- 26,2&#45;&gt;26,1 -->
+<g id="edge320" class="edge"><title>26,2&#45;&gt;26,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-2408.48C561.29,-2408.75 551.041,-2408.82 541.091,-2408.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-2405.18 530.867,-2408.47 540.792,-2412.18 540.937,-2405.18"/>
+</g>
+<!-- 26,3 -->
+<g id="node27" class="node"><title>26,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2402" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2413.17" font-family="Times Roman,serif" font-size="10.00">26,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2394 727,-2408 778,-2408 778,-2394 727,-2394"/>
+<text text-anchor="start" x="736.5" y="-2398.67" font-family="Times Roman,serif" font-size="10.00">AATAG</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2380 727,-2394 778,-2394 778,-2380 727,-2380"/>
+<text text-anchor="start" x="738.5" y="-2384.67" font-family="Times Roman,serif" font-size="10.00">CTATT</text>
+</g>
+<!-- 26,2&#45;&gt;26,3 -->
+<g id="edge316" class="edge"><title>26,2&#45;&gt;26,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-2395.53C674.501,-2395.25 684.748,-2395.18 694.703,-2395.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-2398.82 704.933,-2395.52 695.007,-2391.82 694.864,-2398.82"/>
+</g>
+<!-- 26,3&#45;&gt;26,2 -->
+<g id="edge326" class="edge"><title>26,3&#45;&gt;26,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-2408.48C695.29,-2408.75 685.041,-2408.82 675.091,-2408.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-2405.18 664.867,-2408.47 674.792,-2412.18 674.937,-2405.18"/>
+</g>
+<!-- 26,3&#45;&gt;26,4 -->
+<g id="edge322" class="edge"><title>26,3&#45;&gt;26,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-2395.53C808.501,-2395.25 818.748,-2395.18 828.703,-2395.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-2398.82 838.933,-2395.52 829.007,-2391.82 828.864,-2398.82"/>
+</g>
+<!-- 27,1 -->
+<g id="node30" class="node"><title>27,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-2836" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-2847.17" font-family="Times Roman,serif" font-size="10.00">27,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-2828 325,-2842 376,-2842 376,-2828 325,-2828"/>
+<text text-anchor="start" x="337" y="-2832.67" font-family="Times Roman,serif" font-size="10.00">TATTA</text>
+<polygon fill="#218559" stroke="#218559" points="325,-2814 325,-2828 376,-2828 376,-2814 325,-2814"/>
+<text text-anchor="start" x="336" y="-2818.67" font-family="Times Roman,serif" font-size="10.00">TAATA</text>
+</g>
+<!-- 26,3&#45;&gt;27,1 -->
+<g id="edge324" class="edge"><title>26,3&#45;&gt;27,1</title>
+<path fill="none" stroke="#06a2cb" d="M720.4,-2429.09C707.697,-2439.97 696,-2450 696,-2450 696,-2450 686,-2566 686,-2566 686,-2566 480.412,-2731.2 390.866,-2803.16"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="388.432,-2800.63 382.829,-2809.62 392.816,-2806.08 388.432,-2800.63"/>
+</g>
+<!-- 26,4&#45;&gt;25,2 -->
+<g id="edge328" class="edge"><title>26,4&#45;&gt;25,2</title>
+<path fill="none" stroke="#ebb035" d="M854.4,-2374.91C841.697,-2364.03 830,-2354 830,-2354 830,-2354 808,-1492 808,-1492 808,-1492 775.499,-1305.12 760.017,-1216.1"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="763.423,-1215.25 758.261,-1206 756.526,-1216.45 763.423,-1215.25"/>
+</g>
+<!-- 26,4&#45;&gt;26,3 -->
+<g id="edge330" class="edge"><title>26,4&#45;&gt;26,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-2408.48C829.29,-2408.75 819.041,-2408.82 809.091,-2408.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-2405.18 798.867,-2408.47 808.792,-2412.18 808.937,-2405.18"/>
+</g>
+<!-- 27,1&#45;&gt;26,3 -->
+<g id="edge736" class="edge"><title>27,1&#45;&gt;26,3</title>
+<path fill="none" stroke="#06a2cb" d="M366.925,-2802.15C389.865,-2756.27 428,-2680 428,-2680 428,-2680 696,-2450 696,-2450 696,-2450 703.283,-2443.76 712.596,-2435.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="715.085,-2438.25 720.4,-2429.09 710.529,-2432.94 715.085,-2438.25"/>
+</g>
+<!-- 27,2 -->
+<g id="node31" class="node"><title>27,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-2836" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-2847.17" font-family="Times Roman,serif" font-size="10.00">27,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-2828 459,-2842 510,-2842 510,-2828 459,-2828"/>
+<text text-anchor="start" x="470" y="-2832.67" font-family="Times Roman,serif" font-size="10.00">ATTAC</text>
+<polygon fill="#218559" stroke="#218559" points="459,-2814 459,-2828 510,-2828 510,-2814 459,-2814"/>
+<text text-anchor="start" x="469.5" y="-2818.67" font-family="Times Roman,serif" font-size="10.00">GTAAT</text>
+</g>
+<!-- 27,1&#45;&gt;27,2 -->
+<g id="edge734" class="edge"><title>27,1&#45;&gt;27,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-2829.53C406.501,-2829.25 416.748,-2829.18 426.703,-2829.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-2832.82 436.933,-2829.52 427.007,-2825.82 426.864,-2832.82"/>
+</g>
+<!-- 27,2&#45;&gt;27,1 -->
+<g id="edge742" class="edge"><title>27,2&#45;&gt;27,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-2842.48C427.29,-2842.75 417.041,-2842.82 407.091,-2842.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-2839.18 396.867,-2842.47 406.792,-2846.18 406.937,-2839.18"/>
+</g>
+<!-- 27,2&#45;&gt;27,3 -->
+<g id="edge740" class="edge"><title>27,2&#45;&gt;27,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-2829.53C540.501,-2829.25 550.748,-2829.18 560.703,-2829.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-2832.82 570.933,-2829.52 561.007,-2825.82 560.864,-2832.82"/>
+</g>
+<!-- 28,1 -->
+<g id="node55" class="node"><title>28,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-2740" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-2751.17" font-family="Times Roman,serif" font-size="10.00">28,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-2732 593,-2746 644,-2746 644,-2732 593,-2732"/>
+<text text-anchor="start" x="603" y="-2736.67" font-family="Times Roman,serif" font-size="10.00">TTACG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-2718 593,-2732 644,-2732 644,-2718 593,-2718"/>
+<text text-anchor="start" x="602" y="-2722.67" font-family="Times Roman,serif" font-size="10.00">CGTAA</text>
+</g>
+<!-- 27,2&#45;&gt;28,1 -->
+<g id="edge738" class="edge"><title>27,2&#45;&gt;28,1</title>
+<path fill="none" stroke="#dd1e2f" d="M523.949,-2816.03C538.751,-2808.62 552,-2802 552,-2802 552,-2802 562,-2788 562,-2788 562,-2788 569.283,-2781.76 578.596,-2773.78"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="581.085,-2776.25 586.4,-2767.09 576.529,-2770.94 581.085,-2776.25"/>
+</g>
+<!-- 27,3&#45;&gt;26,1 -->
+<g id="edge748" class="edge"><title>27,3&#45;&gt;26,1</title>
+<path fill="none" stroke="#06a2cb" d="M586.4,-2808.91C573.697,-2798.03 562,-2788 562,-2788 562,-2788 550,-2746 550,-2746 550,-2746 510.777,-2541.56 492.805,-2447.89"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="496.198,-2447 490.876,-2437.84 489.323,-2448.32 496.198,-2447"/>
+</g>
+<!-- 27,3&#45;&gt;27,2 -->
+<g id="edge750" class="edge"><title>27,3&#45;&gt;27,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-2842.48C561.29,-2842.75 551.041,-2842.82 541.091,-2842.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-2839.18 530.867,-2842.47 540.792,-2846.18 540.937,-2839.18"/>
+</g>
+<!-- 27,4 -->
+<g id="node33" class="node"><title>27,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2836" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2847.17" font-family="Times Roman,serif" font-size="10.00">27,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2828 727,-2842 778,-2842 778,-2828 727,-2828"/>
+<text text-anchor="start" x="737" y="-2832.67" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2814 727,-2828 778,-2828 778,-2814 727,-2814"/>
+<text text-anchor="start" x="736.5" y="-2818.67" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+</g>
+<!-- 27,3&#45;&gt;27,4 -->
+<g id="edge746" class="edge"><title>27,3&#45;&gt;27,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-2829.53C674.501,-2829.25 684.748,-2829.18 694.703,-2829.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-2832.82 704.933,-2829.52 695.007,-2825.82 694.864,-2832.82"/>
+</g>
+<!-- 22,1 -->
+<g id="node45" class="node"><title>22,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3234" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-3245.17" font-family="Times Roman,serif" font-size="10.00">22,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-3226 459,-3240 510,-3240 510,-3226 459,-3226"/>
+<text text-anchor="start" x="469" y="-3230.67" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-3212 459,-3226 510,-3226 510,-3212 459,-3212"/>
+<text text-anchor="start" x="468.5" y="-3216.67" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+</g>
+<!-- 27,3&#45;&gt;22,1 -->
+<g id="edge744" class="edge"><title>27,3&#45;&gt;22,1</title>
+<path fill="none" stroke="#dd1e2f" d="M605.012,-2871.02C588.469,-2915.63 562,-2987 562,-2987 562,-2987 540,-3083 540,-3083 540,-3083 517.026,-3144.95 500.508,-3189.49"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="497.184,-3188.38 496.988,-3198.98 503.747,-3190.82 497.184,-3188.38"/>
+</g>
+<!-- 27,4&#45;&gt;27,3 -->
+<g id="edge758" class="edge"><title>27,4&#45;&gt;27,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-2842.48C695.29,-2842.75 685.041,-2842.82 675.091,-2842.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-2839.18 664.867,-2842.47 674.792,-2846.18 674.937,-2839.18"/>
+</g>
+<!-- 21,4 -->
+<g id="node43" class="node"><title>21,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3649" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-3660.17" font-family="Times Roman,serif" font-size="10.00">21,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-3641 861,-3655 912,-3655 912,-3641 861,-3641"/>
+<text text-anchor="start" x="869.5" y="-3645.67" font-family="Times Roman,serif" font-size="10.00">ACGTG</text>
+<polygon fill="#218559" stroke="#218559" points="861,-3627 861,-3641 912,-3641 912,-3627 861,-3627"/>
+<text text-anchor="start" x="870" y="-3631.67" font-family="Times Roman,serif" font-size="10.00">CACGT</text>
+</g>
+<!-- 27,4&#45;&gt;21,4 -->
+<g id="edge754" class="edge"><title>27,4&#45;&gt;21,4</title>
+<path fill="none" stroke="#dd1e2f" d="M764.988,-2871.02C781.531,-2915.63 808,-2987 808,-2987 808,-2987 820,-3083 820,-3083 820,-3083 830,-3531 830,-3531 830,-3531 849.437,-3571.96 865.409,-3605.61"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="862.353,-3607.34 869.802,-3614.87 868.677,-3604.33 862.353,-3607.34"/>
+</g>
+<!-- 22,2 -->
+<g id="node46" class="node"><title>22,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3234" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-3245.17" font-family="Times Roman,serif" font-size="10.00">22,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-3226 593,-3240 644,-3240 644,-3226 593,-3226"/>
+<text text-anchor="start" x="601.5" y="-3230.67" font-family="Times Roman,serif" font-size="10.00">ACGTG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-3212 593,-3226 644,-3226 644,-3212 593,-3212"/>
+<text text-anchor="start" x="602" y="-3216.67" font-family="Times Roman,serif" font-size="10.00">CACGT</text>
+</g>
+<!-- 27,4&#45;&gt;22,2 -->
+<g id="edge756" class="edge"><title>27,4&#45;&gt;22,2</title>
+<path fill="none" stroke="#dd1e2f" d="M739.012,-2871.02C722.469,-2915.63 696,-2987 696,-2987 696,-2987 674,-3179 674,-3179 674,-3179 665.159,-3187.68 654.502,-3198.15"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="651.994,-3195.71 647.312,-3205.21 656.899,-3200.7 651.994,-3195.71"/>
+</g>
+<!-- 28,3 -->
+<g id="node57" class="node"><title>28,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2740" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-2751.17" font-family="Times Roman,serif" font-size="10.00">28,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-2732 861,-2746 912,-2746 912,-2732 861,-2732"/>
+<text text-anchor="start" x="870.5" y="-2736.67" font-family="Times Roman,serif" font-size="10.00">ACGTC</text>
+<polygon fill="#218559" stroke="#218559" points="861,-2718 861,-2732 912,-2732 912,-2718 861,-2718"/>
+<text text-anchor="start" x="869.5" y="-2722.67" font-family="Times Roman,serif" font-size="10.00">GACGT</text>
+</g>
+<!-- 27,4&#45;&gt;28,3 -->
+<g id="edge752" class="edge"><title>27,4&#45;&gt;28,3</title>
+<path fill="none" stroke="#dd1e2f" d="M790.767,-2814.91C806.038,-2806.6 820,-2799 820,-2799 820,-2799 832.918,-2787.45 847.324,-2774.57"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="849.81,-2777.05 854.933,-2767.77 845.145,-2771.83 849.81,-2777.05"/>
+</g>
+<!-- 20,1 -->
+<g id="node35" class="node"><title>20,1</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-4114" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="193.5" y="-4125.17" font-family="Times Roman,serif" font-size="10.00">20,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="191,-4106 191,-4120 242,-4120 242,-4106 191,-4106"/>
+<text text-anchor="start" x="201.5" y="-4110.67" font-family="Times Roman,serif" font-size="10.00">TCAAT</text>
+<polygon fill="#218559" stroke="#218559" points="191,-4092 191,-4106 242,-4106 242,-4092 191,-4092"/>
+<text text-anchor="start" x="201" y="-4096.67" font-family="Times Roman,serif" font-size="10.00">ATTGA</text>
+</g>
+<!-- 20,2 -->
+<g id="node36" class="node"><title>20,2</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-4114" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-4125.17" font-family="Times Roman,serif" font-size="10.00">20,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-4106 325,-4120 376,-4120 376,-4106 325,-4106"/>
+<text text-anchor="start" x="335" y="-4110.67" font-family="Times Roman,serif" font-size="10.00">CAATA</text>
+<polygon fill="#218559" stroke="#218559" points="325,-4092 325,-4106 376,-4106 376,-4092 325,-4092"/>
+<text text-anchor="start" x="336" y="-4096.67" font-family="Times Roman,serif" font-size="10.00">TATTG</text>
+</g>
+<!-- 20,1&#45;&gt;20,2 -->
+<g id="edge232" class="edge"><title>20,1&#45;&gt;20,2</title>
+<path fill="none" stroke="#dd1e2f" d="M262.867,-4107.53C272.501,-4107.25 282.748,-4107.18 292.703,-4107.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="292.864,-4110.82 302.933,-4107.52 293.007,-4103.82 292.864,-4110.82"/>
+</g>
+<!-- 20,1&#45;&gt;19,3 -->
+<g id="edge234" class="edge"><title>20,1&#45;&gt;19,3</title>
+<path fill="none" stroke="#06a2cb" d="M237.703,-4146.23C257.603,-4175.79 284,-4215 284,-4215 284,-4215 294,-5072 294,-5072 294,-5072 316.267,-5129.26 332.719,-5171.56"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="329.557,-5173.09 336.444,-5181.14 336.081,-5170.55 329.557,-5173.09"/>
+</g>
+<!-- 20,2&#45;&gt;20,1 -->
+<g id="edge240" class="edge"><title>20,2&#45;&gt;20,1</title>
+<path fill="none" stroke="#218559" d="M302.933,-4120.48C293.29,-4120.75 283.041,-4120.82 273.091,-4120.68"/>
+<polygon fill="#218559" stroke="#218559" points="272.937,-4117.18 262.867,-4120.47 272.792,-4124.18 272.937,-4117.18"/>
+</g>
+<!-- 20,3 -->
+<g id="node37" class="node"><title>20,3</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-4114" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-4125.17" font-family="Times Roman,serif" font-size="10.00">20,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-4106 459,-4120 510,-4120 510,-4106 459,-4106"/>
+<text text-anchor="start" x="469" y="-4110.67" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="459,-4092 459,-4106 510,-4106 510,-4092 459,-4092"/>
+<text text-anchor="start" x="470.5" y="-4096.67" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 20,2&#45;&gt;20,3 -->
+<g id="edge238" class="edge"><title>20,2&#45;&gt;20,3</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-4107.53C406.501,-4107.25 416.748,-4107.18 426.703,-4107.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-4110.82 436.933,-4107.52 427.007,-4103.82 426.864,-4110.82"/>
+</g>
+<!-- 21,1 -->
+<g id="node40" class="node"><title>21,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3649" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-3660.17" font-family="Times Roman,serif" font-size="10.00">21,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-3641 459,-3655 510,-3655 510,-3641 459,-3641"/>
+<text text-anchor="start" x="469" y="-3645.67" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="459,-3627 459,-3641 510,-3641 510,-3627 459,-3627"/>
+<text text-anchor="start" x="470.5" y="-3631.67" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 20,2&#45;&gt;21,1 -->
+<g id="edge236" class="edge"><title>20,2&#45;&gt;21,1</title>
+<path fill="none" stroke="#dd1e2f" d="M364.013,-4079.55C378.18,-4044.72 398,-3996 398,-3996 398,-3996 449.463,-3788.35 472.769,-3694.32"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="476.192,-3695.05 475.201,-3684.5 469.398,-3693.37 476.192,-3695.05"/>
+</g>
+<!-- 20,3&#45;&gt;20,2 -->
+<g id="edge246" class="edge"><title>20,3&#45;&gt;20,2</title>
+<path fill="none" stroke="#218559" d="M436.933,-4120.48C427.29,-4120.75 417.041,-4120.82 407.091,-4120.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-4117.18 396.867,-4120.47 406.792,-4124.18 406.937,-4117.18"/>
+</g>
+<!-- 20,4 -->
+<g id="node38" class="node"><title>20,4</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-4114" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-4125.17" font-family="Times Roman,serif" font-size="10.00">20,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-4106 593,-4120 644,-4120 644,-4106 593,-4106"/>
+<text text-anchor="start" x="602.5" y="-4110.67" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-4092 593,-4106 644,-4106 644,-4092 593,-4092"/>
+<text text-anchor="start" x="603.5" y="-4096.67" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 20,3&#45;&gt;20,4 -->
+<g id="edge242" class="edge"><title>20,3&#45;&gt;20,4</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-4107.53C540.501,-4107.25 550.748,-4107.18 560.703,-4107.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-4110.82 570.933,-4107.52 561.007,-4103.82 560.864,-4110.82"/>
+</g>
+<!-- 19,1 -->
+<g id="node149" class="node"><title>19,1</title>
+<ellipse fill="none" stroke="black" cx="64" cy="-5216" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="41.5" y="-5227.17" font-family="Times Roman,serif" font-size="10.00">19,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="39,-5208 39,-5222 90,-5222 90,-5208 39,-5208"/>
+<text text-anchor="start" x="50" y="-5212.67" font-family="Times Roman,serif" font-size="10.00">TATTG</text>
+<polygon fill="#218559" stroke="#218559" points="39,-5194 39,-5208 90,-5208 90,-5194 39,-5194"/>
+<text text-anchor="start" x="49" y="-5198.67" font-family="Times Roman,serif" font-size="10.00">CAATA</text>
+</g>
+<!-- 20,3&#45;&gt;19,1 -->
+<g id="edge244" class="edge"><title>20,3&#45;&gt;19,1</title>
+<path fill="none" stroke="#06a2cb" d="M476.816,-4149.67C456.146,-4252.3 398,-4541 398,-4541 398,-4541 294,-4677 294,-4677 294,-4677 137.748,-5043.17 82.8196,-5171.9"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="79.4431,-5170.89 78.7374,-5181.46 85.8814,-5173.64 79.4431,-5170.89"/>
+</g>
+<!-- 20,4&#45;&gt;20,3 -->
+<g id="edge250" class="edge"><title>20,4&#45;&gt;20,3</title>
+<path fill="none" stroke="#218559" d="M570.933,-4120.48C561.29,-4120.75 551.041,-4120.82 541.091,-4120.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-4117.18 530.867,-4120.47 540.792,-4124.18 540.937,-4117.18"/>
+</g>
+<!-- 21,3 -->
+<g id="node42" class="node"><title>21,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3649" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-3660.17" font-family="Times Roman,serif" font-size="10.00">21,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-3641 727,-3655 778,-3655 778,-3641 727,-3641"/>
+<text text-anchor="start" x="737" y="-3645.67" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-3627 727,-3641 778,-3641 778,-3627 727,-3627"/>
+<text text-anchor="start" x="736.5" y="-3631.67" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+</g>
+<!-- 20,4&#45;&gt;21,3 -->
+<g id="edge248" class="edge"><title>20,4&#45;&gt;21,3</title>
+<path fill="none" stroke="#dd1e2f" d="M634.198,-4079.87C650.736,-4045.02 674,-3996 674,-3996 674,-3996 684,-3750 684,-3750 684,-3750 705.679,-3717.8 724.556,-3689.76"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727.616,-3691.48 730.297,-3681.23 721.809,-3687.58 727.616,-3691.48"/>
+</g>
+<!-- 21,1&#45;&gt;20,2 -->
+<g id="edge664" class="edge"><title>21,1&#45;&gt;20,2</title>
+<path fill="none" stroke="#218559" d="M475.04,-3684.44C456.575,-3757.49 416,-3918 416,-3918 416,-3918 398,-3996 398,-3996 398,-3996 381.582,-4036.36 367.95,-4069.87"/>
+<polygon fill="#218559" stroke="#218559" points="364.539,-4068.97 364.013,-4079.55 371.023,-4071.61 364.539,-4068.97"/>
+</g>
+<!-- 21,2 -->
+<g id="node41" class="node"><title>21,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3649" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-3660.17" font-family="Times Roman,serif" font-size="10.00">21,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-3641 593,-3655 644,-3655 644,-3641 593,-3641"/>
+<text text-anchor="start" x="602.5" y="-3645.67" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-3627 593,-3641 644,-3641 644,-3627 593,-3627"/>
+<text text-anchor="start" x="603.5" y="-3631.67" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 21,1&#45;&gt;21,2 -->
+<g id="edge662" class="edge"><title>21,1&#45;&gt;21,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-3642.53C540.501,-3642.25 550.748,-3642.18 560.703,-3642.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-3645.82 570.933,-3642.52 561.007,-3638.82 560.864,-3645.82"/>
+</g>
+<!-- 21,2&#45;&gt;21,1 -->
+<g id="edge670" class="edge"><title>21,2&#45;&gt;21,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-3655.48C561.29,-3655.75 551.041,-3655.82 541.091,-3655.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-3652.18 530.867,-3655.47 540.792,-3659.18 540.937,-3652.18"/>
+</g>
+<!-- 21,2&#45;&gt;21,3 -->
+<g id="edge668" class="edge"><title>21,2&#45;&gt;21,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-3642.53C674.501,-3642.25 684.748,-3642.18 694.703,-3642.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-3645.82 704.933,-3642.52 695.007,-3638.82 694.864,-3645.82"/>
+</g>
+<!-- 21,2&#45;&gt;22,1 -->
+<g id="edge666" class="edge"><title>21,2&#45;&gt;22,1</title>
+<path fill="none" stroke="#dd1e2f" d="M601.802,-3614.87C585.264,-3580.02 562,-3531 562,-3531 562,-3531 552,-3362 552,-3362 552,-3362 526.516,-3314.03 506.749,-3276.82"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="509.649,-3274.82 501.866,-3267.63 503.467,-3278.1 509.649,-3274.82"/>
+</g>
+<!-- 21,3&#45;&gt;20,4 -->
+<g id="edge674" class="edge"><title>21,3&#45;&gt;20,4</title>
+<path fill="none" stroke="#218559" d="M733.956,-3682.43C713.81,-3719.76 684,-3775 684,-3775 684,-3775 674,-3996 674,-3996 674,-3996 654.563,-4036.96 638.591,-4070.61"/>
+<polygon fill="#218559" stroke="#218559" points="635.323,-4069.33 634.198,-4079.87 641.647,-4072.34 635.323,-4069.33"/>
+</g>
+<!-- 21,3&#45;&gt;21,2 -->
+<g id="edge676" class="edge"><title>21,3&#45;&gt;21,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-3655.48C695.29,-3655.75 685.041,-3655.82 675.091,-3655.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-3652.18 664.867,-3655.47 674.792,-3659.18 674.937,-3652.18"/>
+</g>
+<!-- 21,3&#45;&gt;21,4 -->
+<g id="edge672" class="edge"><title>21,3&#45;&gt;21,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-3642.53C808.501,-3642.25 818.748,-3642.18 828.703,-3642.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-3645.82 838.933,-3642.52 829.007,-3638.82 828.864,-3645.82"/>
+</g>
+<!-- 21,4&#45;&gt;27,4 -->
+<g id="edge680" class="edge"><title>21,4&#45;&gt;27,4</title>
+<path fill="none" stroke="#218559" d="M869.802,-3614.87C853.264,-3580.02 830,-3531 830,-3531 830,-3531 820,-2915 820,-2915 820,-2915 802.13,-2894.24 784.712,-2874"/>
+<polygon fill="#218559" stroke="#218559" points="787.272,-2871.61 778.096,-2866.32 781.967,-2876.18 787.272,-2871.61"/>
+</g>
+<!-- 21,4&#45;&gt;21,3 -->
+<g id="edge682" class="edge"><title>21,4&#45;&gt;21,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-3655.48C829.29,-3655.75 819.041,-3655.82 809.091,-3655.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-3652.18 798.867,-3655.47 808.792,-3659.18 808.937,-3652.18"/>
+</g>
+<!-- 22,3 -->
+<g id="node47" class="node"><title>22,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3234" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-3245.17" font-family="Times Roman,serif" font-size="10.00">22,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-3226 727,-3240 778,-3240 778,-3226 727,-3226"/>
+<text text-anchor="start" x="735.5" y="-3230.67" font-family="Times Roman,serif" font-size="10.00">CGTGA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-3212 727,-3226 778,-3226 778,-3212 727,-3212"/>
+<text text-anchor="start" x="736" y="-3216.67" font-family="Times Roman,serif" font-size="10.00">TCACG</text>
+</g>
+<!-- 21,4&#45;&gt;22,3 -->
+<g id="edge678" class="edge"><title>21,4&#45;&gt;22,3</title>
+<path fill="none" stroke="#dd1e2f" d="M869.802,-3614.87C853.264,-3580.02 830,-3531 830,-3531 830,-3531 820,-3477 820,-3477 820,-3477 784.341,-3349.57 764.668,-3279.27"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="767.953,-3278.02 761.888,-3269.33 761.212,-3279.91 767.953,-3278.02"/>
+</g>
+<!-- 22,1&#45;&gt;27,3 -->
+<g id="edge256" class="edge"><title>22,1&#45;&gt;27,3</title>
+<path fill="none" stroke="#218559" d="M496.988,-3198.98C513.531,-3154.37 540,-3083 540,-3083 540,-3083 550,-2962 550,-2962 550,-2962 575.335,-2915.06 595.076,-2878.48"/>
+<polygon fill="#218559" stroke="#218559" points="598.286,-2879.9 599.956,-2869.43 592.126,-2876.57 598.286,-2879.9"/>
+</g>
+<!-- 22,1&#45;&gt;21,2 -->
+<g id="edge258" class="edge"><title>22,1&#45;&gt;21,2</title>
+<path fill="none" stroke="#218559" d="M500.984,-3267.72C521.125,-3307.7 552,-3369 552,-3369 552,-3369 562,-3531 562,-3531 562,-3531 581.437,-3571.96 597.409,-3605.61"/>
+<polygon fill="#218559" stroke="#218559" points="594.353,-3607.34 601.802,-3614.87 600.677,-3604.33 594.353,-3607.34"/>
+</g>
+<!-- 22,1&#45;&gt;22,2 -->
+<g id="edge252" class="edge"><title>22,1&#45;&gt;22,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-3227.53C540.501,-3227.25 550.748,-3227.18 560.703,-3227.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-3230.82 570.933,-3227.52 561.007,-3223.82 560.864,-3230.82"/>
+</g>
+<!-- 22,1&#45;&gt;28,1 -->
+<g id="edge254" class="edge"><title>22,1&#45;&gt;28,1</title>
+<path fill="none" stroke="#218559" d="M496.988,-3198.98C513.531,-3154.37 540,-3083 540,-3083 540,-3083 562,-2788 562,-2788 562,-2788 569.283,-2781.76 578.596,-2773.78"/>
+<polygon fill="#218559" stroke="#218559" points="581.085,-2776.25 586.4,-2767.09 576.529,-2770.94 581.085,-2776.25"/>
+</g>
+<!-- 22,2&#45;&gt;27,4 -->
+<g id="edge264" class="edge"><title>22,2&#45;&gt;27,4</title>
+<path fill="none" stroke="#218559" d="M647.312,-3205.21C660.861,-3191.9 674,-3179 674,-3179 674,-3179 684,-2962 684,-2962 684,-2962 709.335,-2915.06 729.076,-2878.48"/>
+<polygon fill="#218559" stroke="#218559" points="732.286,-2879.9 733.956,-2869.43 726.126,-2876.57 732.286,-2879.9"/>
+</g>
+<!-- 22,2&#45;&gt;22,1 -->
+<g id="edge266" class="edge"><title>22,2&#45;&gt;22,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-3240.48C561.29,-3240.75 551.041,-3240.82 541.091,-3240.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-3237.18 530.867,-3240.47 540.792,-3244.18 540.937,-3237.18"/>
+</g>
+<!-- 22,2&#45;&gt;22,3 -->
+<g id="edge260" class="edge"><title>22,2&#45;&gt;22,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-3227.53C674.501,-3227.25 684.748,-3227.18 694.703,-3227.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-3230.82 704.933,-3227.52 695.007,-3223.82 694.864,-3230.82"/>
+</g>
+<!-- 23,4 -->
+<g id="node53" class="node"><title>23,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-4725" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-4736.17" font-family="Times Roman,serif" font-size="10.00">23,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-4717 727,-4731 778,-4731 778,-4717 727,-4717"/>
+<text text-anchor="start" x="736" y="-4721.67" font-family="Times Roman,serif" font-size="10.00">TCACG</text>
+<polygon fill="#218559" stroke="#218559" points="727,-4703 727,-4717 778,-4717 778,-4703 727,-4703"/>
+<text text-anchor="start" x="735.5" y="-4707.67" font-family="Times Roman,serif" font-size="10.00">CGTGA</text>
+</g>
+<!-- 22,2&#45;&gt;23,4 -->
+<g id="edge262" class="edge"><title>22,2&#45;&gt;23,4</title>
+<path fill="none" stroke="#ebb035" d="M627.883,-3269.47C643.959,-3327.18 674,-3435 674,-3435 674,-3435 686,-3516 686,-3516 686,-3516 696,-4677 696,-4677 696,-4677 703.283,-4683.24 712.596,-4691.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="710.529,-4694.06 720.4,-4697.91 715.085,-4688.75 710.529,-4694.06"/>
+</g>
+<!-- 22,3&#45;&gt;21,4 -->
+<g id="edge270" class="edge"><title>22,3&#45;&gt;21,4</title>
+<path fill="none" stroke="#218559" d="M761.883,-3269.47C777.959,-3327.18 808,-3435 808,-3435 808,-3435 830,-3531 830,-3531 830,-3531 849.437,-3571.96 865.409,-3605.61"/>
+<polygon fill="#218559" stroke="#218559" points="862.353,-3607.34 869.802,-3614.87 868.677,-3604.33 862.353,-3607.34"/>
+</g>
+<!-- 22,3&#45;&gt;22,2 -->
+<g id="edge272" class="edge"><title>22,3&#45;&gt;22,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-3240.48C695.29,-3240.75 685.041,-3240.82 675.091,-3240.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-3237.18 664.867,-3240.47 674.792,-3244.18 674.937,-3237.18"/>
+</g>
+<!-- 22,4 -->
+<g id="node48" class="node"><title>22,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3234" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-3245.17" font-family="Times Roman,serif" font-size="10.00">22,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-3226 861,-3240 912,-3240 912,-3226 861,-3226"/>
+<text text-anchor="start" x="869.5" y="-3230.67" font-family="Times Roman,serif" font-size="10.00">GTGAA</text>
+<polygon fill="#218559" stroke="#218559" points="861,-3212 861,-3226 912,-3226 912,-3212 861,-3212"/>
+<text text-anchor="start" x="871.5" y="-3216.67" font-family="Times Roman,serif" font-size="10.00">TTCAC</text>
+</g>
+<!-- 22,3&#45;&gt;22,4 -->
+<g id="edge268" class="edge"><title>22,3&#45;&gt;22,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-3227.53C808.501,-3227.25 818.748,-3227.18 828.703,-3227.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-3230.82 838.933,-3227.52 829.007,-3223.82 828.864,-3230.82"/>
+</g>
+<!-- 22,4&#45;&gt;22,3 -->
+<g id="edge276" class="edge"><title>22,4&#45;&gt;22,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-3240.48C829.29,-3240.75 819.041,-3240.82 809.091,-3240.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-3237.18 798.867,-3240.47 808.792,-3244.18 808.937,-3237.18"/>
+</g>
+<!-- 23,2 -->
+<g id="node51" class="node"><title>23,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-4725" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-4736.17" font-family="Times Roman,serif" font-size="10.00">23,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-4717 459,-4731 510,-4731 510,-4717 459,-4717"/>
+<text text-anchor="start" x="470" y="-4721.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-4703 459,-4717 510,-4717 510,-4703 459,-4703"/>
+<text text-anchor="start" x="467.5" y="-4707.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+</g>
+<!-- 22,4&#45;&gt;23,2 -->
+<g id="edge274" class="edge"><title>22,4&#45;&gt;23,2</title>
+<path fill="none" stroke="#ebb035" d="M876.117,-3269.47C860.041,-3327.18 830,-3435 830,-3435 830,-3435 808,-3561 808,-3561 808,-3561 696,-3601 696,-3601 696,-3601 674,-4192 674,-4192 674,-4192 562,-4415 562,-4415 562,-4415 550,-4546 550,-4546 550,-4546 540,-4677 540,-4677 540,-4677 532.717,-4683.24 523.404,-4691.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="520.915,-4688.75 515.6,-4697.91 525.471,-4694.06 520.915,-4688.75"/>
+</g>
+<!-- 23,1&#45;&gt;24,3 -->
+<g id="edge690" class="edge"><title>23,1&#45;&gt;24,3</title>
+<path fill="none" stroke="#06a2cb" d="M358.034,-4689.18C371.699,-4628.26 398,-4511 398,-4511 398,-4511 416,-4240 416,-4240 416,-4240 418,-4212 418,-4212 418,-4212 428,-4026 428,-4026 428,-4026 540,-3996 540,-3996 540,-3996 562,-3896 562,-3896 562,-3896 674,-3896 674,-3896 674,-3896 686,-4442 686,-4442 686,-4442 696,-5072 696,-5072 696,-5072 703.283,-5078.24 712.596,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="710.529,-5089.06 720.4,-5092.91 715.085,-5083.75 710.529,-5089.06"/>
+</g>
+<!-- 23,1&#45;&gt;23,2 -->
+<g id="edge686" class="edge"><title>23,1&#45;&gt;23,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-4718.53C406.501,-4718.25 416.748,-4718.18 426.703,-4718.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-4721.82 436.933,-4718.52 427.007,-4714.82 426.864,-4721.82"/>
+</g>
+<!-- 23,1&#45;&gt;7,1 -->
+<g id="edge684" class="edge"><title>23,1&#45;&gt;7,1</title>
+<path fill="none" stroke="#dd1e2f" d="M386.389,-4701.45C402.556,-4690.99 418,-4681 418,-4681 418,-4681 430.492,-4671.16 444.607,-4660.04"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="446.857,-4662.72 452.546,-4653.78 442.525,-4657.22 446.857,-4662.72"/>
+</g>
+<!-- 17,2 -->
+<g id="node140" class="node"><title>17,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3948" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-3959.17" font-family="Times Roman,serif" font-size="10.00">17,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-3940 459,-3954 510,-3954 510,-3940 459,-3940"/>
+<text text-anchor="start" x="467" y="-3944.67" font-family="Times Roman,serif" font-size="10.00">AAACG</text>
+<polygon fill="#218559" stroke="#218559" points="459,-3926 459,-3940 510,-3940 510,-3926 459,-3926"/>
+<text text-anchor="start" x="469.5" y="-3930.67" font-family="Times Roman,serif" font-size="10.00">CGTTT</text>
+</g>
+<!-- 23,1&#45;&gt;17,2 -->
+<g id="edge692" class="edge"><title>23,1&#45;&gt;17,2</title>
+<path fill="none" stroke="#06a2cb" d="M358.034,-4689.18C371.699,-4628.26 398,-4511 398,-4511 398,-4511 416,-4215 416,-4215 416,-4215 418,-4187 418,-4187 418,-4187 428,-3998 428,-3998 428,-3998 435.684,-3991.14 445.359,-3982.5"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="447.923,-3984.9 453.052,-3975.63 443.261,-3979.68 447.923,-3984.9"/>
+</g>
+<!-- 23,1&#45;&gt;19,4 -->
+<g id="edge688" class="edge"><title>23,1&#45;&gt;19,4</title>
+<path fill="none" stroke="#ebb035" d="M356.826,-4760.7C370.078,-4829.99 398,-4976 398,-4976 398,-4976 418,-5091 418,-5091 418,-5091 428,-5168 428,-5168 428,-5168 435.283,-5174.24 444.596,-5182.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="442.529,-5185.06 452.4,-5188.91 447.085,-5179.75 442.529,-5185.06"/>
+</g>
+<!-- 18,1 -->
+<g id="node154" class="node"><title>18,1</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-4463" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="193.5" y="-4474.17" font-family="Times Roman,serif" font-size="10.00">18,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="191,-4455 191,-4469 242,-4469 242,-4455 191,-4455"/>
+<text text-anchor="start" x="201.5" y="-4459.67" font-family="Times Roman,serif" font-size="10.00">CGTTT</text>
+<polygon fill="#218559" stroke="#218559" points="191,-4441 191,-4455 242,-4455 242,-4441 191,-4441"/>
+<text text-anchor="start" x="199" y="-4445.67" font-family="Times Roman,serif" font-size="10.00">AAACG</text>
+</g>
+<!-- 23,1&#45;&gt;18,1 -->
+<g id="edge694" class="edge"><title>23,1&#45;&gt;18,1</title>
+<path fill="none" stroke="#218559" d="M333.345,-4690.93C313.793,-4650.94 284,-4590 284,-4590 284,-4590 258.516,-4542.4 238.749,-4505.49"/>
+<polygon fill="#218559" stroke="#218559" points="241.672,-4503.53 233.866,-4496.37 235.501,-4506.84 241.672,-4503.53"/>
+</g>
+<!-- 23,2&#45;&gt;22,4 -->
+<g id="edge698" class="edge"><title>23,2&#45;&gt;22,4</title>
+<path fill="none" stroke="#ebb035" d="M515.6,-4697.91C528.303,-4687.03 540,-4677 540,-4677 540,-4677 562,-4192 562,-4192 562,-4192 674,-4162 674,-4162 674,-4162 684,-3796 684,-3796 684,-3796 696,-3561 696,-3561 696,-3561 808,-3531 808,-3531 808,-3531 830,-3435 830,-3435 830,-3435 856.845,-3338.65 873.362,-3279.36"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="876.805,-3280.04 876.117,-3269.47 870.062,-3278.17 876.805,-3280.04"/>
+</g>
+<!-- 23,2&#45;&gt;23,1 -->
+<g id="edge702" class="edge"><title>23,2&#45;&gt;23,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-4731.48C427.29,-4731.75 417.041,-4731.82 407.091,-4731.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-4728.18 396.867,-4731.47 406.792,-4735.18 406.937,-4728.18"/>
+</g>
+<!-- 23,2&#45;&gt;23,3 -->
+<g id="edge696" class="edge"><title>23,2&#45;&gt;23,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-4718.53C540.501,-4718.25 550.748,-4718.18 560.703,-4718.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-4721.82 570.933,-4718.52 561.007,-4714.82 560.864,-4721.82"/>
+</g>
+<!-- 23,2&#45;&gt;17,1 -->
+<g id="edge700" class="edge"><title>23,2&#45;&gt;17,1</title>
+<path fill="none" stroke="#06a2cb" d="M452.4,-4697.91C439.697,-4687.03 428,-4677 428,-4677 428,-4677 418,-3825 418,-3825 418,-3825 416,-3825 416,-3825 416,-3825 392.048,-3869.64 373.003,-3905.13"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="369.679,-3903.92 368.035,-3914.39 375.847,-3907.23 369.679,-3903.92"/>
+</g>
+<!-- 23,3&#45;&gt;24,1 -->
+<g id="edge706" class="edge"><title>23,3&#45;&gt;24,1</title>
+<path fill="none" stroke="#06a2cb" d="M609.73,-4760.63C591.608,-4838.72 550,-5018 550,-5018 550,-5018 540,-5072 540,-5072 540,-5072 532.717,-5078.24 523.404,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="520.915,-5083.75 515.6,-5092.91 525.471,-5089.06 520.915,-5083.75"/>
+</g>
+<!-- 23,3&#45;&gt;23,2 -->
+<g id="edge708" class="edge"><title>23,3&#45;&gt;23,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-4731.48C561.29,-4731.75 551.041,-4731.82 541.091,-4731.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-4728.18 530.867,-4731.47 540.792,-4735.18 540.937,-4728.18"/>
+</g>
+<!-- 23,3&#45;&gt;23,4 -->
+<g id="edge704" class="edge"><title>23,3&#45;&gt;23,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-4718.53C674.501,-4718.25 684.748,-4718.18 694.703,-4718.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-4721.82 704.933,-4718.52 695.007,-4714.82 694.864,-4721.82"/>
+</g>
+<!-- 23,4&#45;&gt;22,2 -->
+<g id="edge710" class="edge"><title>23,4&#45;&gt;22,2</title>
+<path fill="none" stroke="#ebb035" d="M720.4,-4697.91C707.697,-4687.03 696,-4677 696,-4677 696,-4677 686,-3501 686,-3501 686,-3501 674,-3435 674,-3435 674,-3435 647.155,-3338.65 630.638,-3279.36"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="633.938,-3278.17 627.883,-3269.47 627.195,-3280.04 633.938,-3278.17"/>
+</g>
+<!-- 23,4&#45;&gt;23,3 -->
+<g id="edge712" class="edge"><title>23,4&#45;&gt;23,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-4731.48C695.29,-4731.75 685.041,-4731.82 675.091,-4731.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-4728.18 664.867,-4731.47 674.792,-4735.18 674.937,-4728.18"/>
+</g>
+<!-- 28,1&#45;&gt;27,2 -->
+<g id="edge336" class="edge"><title>28,1&#45;&gt;27,2</title>
+<path fill="none" stroke="#218559" d="M583.317,-2764.85C566.127,-2777.16 545.205,-2792.15 527.005,-2805.19"/>
+<polygon fill="#218559" stroke="#218559" points="524.948,-2802.36 518.857,-2811.03 529.025,-2808.05 524.948,-2802.36"/>
+</g>
+<!-- 28,1&#45;&gt;22,1 -->
+<g id="edge332" class="edge"><title>28,1&#45;&gt;22,1</title>
+<path fill="none" stroke="#dd1e2f" d="M586.4,-2767.09C573.697,-2777.97 562,-2788 562,-2788 562,-2788 550,-2923 550,-2923 550,-2923 540,-3083 540,-3083 540,-3083 517.026,-3144.95 500.508,-3189.49"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="497.184,-3188.38 496.988,-3198.98 503.747,-3190.82 497.184,-3188.38"/>
+</g>
+<!-- 28,2 -->
+<g id="node56" class="node"><title>28,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2740" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2751.17" font-family="Times Roman,serif" font-size="10.00">28,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2732 727,-2746 778,-2746 778,-2732 727,-2732"/>
+<text text-anchor="start" x="737" y="-2736.67" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2718 727,-2732 778,-2732 778,-2718 727,-2718"/>
+<text text-anchor="start" x="736.5" y="-2722.67" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+</g>
+<!-- 28,1&#45;&gt;28,2 -->
+<g id="edge334" class="edge"><title>28,1&#45;&gt;28,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-2733.53C674.501,-2733.25 684.748,-2733.18 694.703,-2733.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-2736.82 704.933,-2733.52 695.007,-2729.82 694.864,-2736.82"/>
+</g>
+<!-- 28,2&#45;&gt;28,1 -->
+<g id="edge342" class="edge"><title>28,2&#45;&gt;28,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-2746.48C695.29,-2746.75 685.041,-2746.82 675.091,-2746.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-2743.18 664.867,-2746.47 674.792,-2750.18 674.937,-2743.18"/>
+</g>
+<!-- 28,2&#45;&gt;28,3 -->
+<g id="edge338" class="edge"><title>28,2&#45;&gt;28,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-2733.53C808.501,-2733.25 818.748,-2733.18 828.703,-2733.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-2736.82 838.933,-2733.52 829.007,-2729.82 828.864,-2736.82"/>
+</g>
+<!-- 29,4 -->
+<g id="node63" class="node"><title>29,4</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-2306" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1131.5" y="-2317.17" font-family="Times Roman,serif" font-size="10.00">29,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1129,-2298 1129,-2312 1180,-2312 1180,-2298 1129,-2298"/>
+<text text-anchor="start" x="1137.5" y="-2302.67" font-family="Times Roman,serif" font-size="10.00">GACGT</text>
+<polygon fill="#218559" stroke="#218559" points="1129,-2284 1129,-2298 1180,-2298 1180,-2284 1129,-2284"/>
+<text text-anchor="start" x="1138.5" y="-2288.67" font-family="Times Roman,serif" font-size="10.00">ACGTC</text>
+</g>
+<!-- 28,2&#45;&gt;29,4 -->
+<g id="edge340" class="edge"><title>28,2&#45;&gt;29,4</title>
+<path fill="none" stroke="#ebb035" d="M790.086,-2718.03C809.886,-2706.6 830,-2695 830,-2695 830,-2695 1076,-2610 1076,-2610 1076,-2610 1106,-2450 1106,-2450 1106,-2450 1124.98,-2393.07 1139.07,-2350.8"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1142.42,-2351.82 1142.26,-2341.23 1135.78,-2349.61 1142.42,-2351.82"/>
+</g>
+<!-- 28,3&#45;&gt;27,4 -->
+<g id="edge346" class="edge"><title>28,3&#45;&gt;27,4</title>
+<path fill="none" stroke="#218559" d="M851.317,-2764.85C834.127,-2777.16 813.205,-2792.15 795.005,-2805.19"/>
+<polygon fill="#218559" stroke="#218559" points="792.948,-2802.36 786.857,-2811.03 797.025,-2808.05 792.948,-2802.36"/>
+</g>
+<!-- 28,3&#45;&gt;28,2 -->
+<g id="edge348" class="edge"><title>28,3&#45;&gt;28,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-2746.48C829.29,-2746.75 819.041,-2746.82 809.091,-2746.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-2743.18 798.867,-2746.47 808.792,-2750.18 808.937,-2743.18"/>
+</g>
+<!-- 28,4 -->
+<g id="node58" class="node"><title>28,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-2740" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-2751.17" font-family="Times Roman,serif" font-size="10.00">28,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-2732 995,-2746 1046,-2746 1046,-2732 995,-2732"/>
+<text text-anchor="start" x="1004" y="-2736.67" font-family="Times Roman,serif" font-size="10.00">CGTCA</text>
+<polygon fill="#218559" stroke="#218559" points="995,-2718 995,-2732 1046,-2732 1046,-2718 995,-2718"/>
+<text text-anchor="start" x="1003.5" y="-2722.67" font-family="Times Roman,serif" font-size="10.00">TGACG</text>
+</g>
+<!-- 28,3&#45;&gt;28,4 -->
+<g id="edge344" class="edge"><title>28,3&#45;&gt;28,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-2733.53C942.501,-2733.25 952.748,-2733.18 962.703,-2733.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-2736.82 972.933,-2733.52 963.007,-2729.82 962.864,-2736.82"/>
+</g>
+<!-- 28,4&#45;&gt;28,3 -->
+<g id="edge354" class="edge"><title>28,4&#45;&gt;28,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-2746.48C963.29,-2746.75 953.041,-2746.82 943.091,-2746.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-2743.18 932.867,-2746.47 942.792,-2750.18 942.937,-2743.18"/>
+</g>
+<!-- 29,2 -->
+<g id="node61" class="node"><title>29,2</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2306" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-2317.17" font-family="Times Roman,serif" font-size="10.00">29,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-2298 861,-2312 912,-2312 912,-2298 861,-2298"/>
+<text text-anchor="start" x="870" y="-2302.67" font-family="Times Roman,serif" font-size="10.00">ATGAC</text>
+<polygon fill="#218559" stroke="#218559" points="861,-2284 861,-2298 912,-2298 912,-2284 861,-2284"/>
+<text text-anchor="start" x="871.5" y="-2288.67" font-family="Times Roman,serif" font-size="10.00">GTCAT</text>
+</g>
+<!-- 28,4&#45;&gt;29,2 -->
+<g id="edge352" class="edge"><title>28,4&#45;&gt;29,2</title>
+<path fill="none" stroke="#ebb035" d="M1009.73,-2704.42C993.562,-2648.41 964,-2546 964,-2546 964,-2546 954,-2407 954,-2407 954,-2407 942,-2354 942,-2354 942,-2354 934.717,-2347.76 925.404,-2339.78"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="927.471,-2336.94 917.6,-2333.09 922.915,-2342.25 927.471,-2336.94"/>
+</g>
+<!-- 31,3 -->
+<g id="node161" class="node"><title>31,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1732" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1743.17" font-family="Times Roman,serif" font-size="10.00">31,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1724 861,-1738 912,-1738 912,-1724 861,-1724"/>
+<text text-anchor="start" x="871.5" y="-1728.67" font-family="Times Roman,serif" font-size="10.00">GTCAT</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1710 861,-1724 912,-1724 912,-1710 861,-1710"/>
+<text text-anchor="start" x="870" y="-1714.67" font-family="Times Roman,serif" font-size="10.00">ATGAC</text>
+</g>
+<!-- 28,4&#45;&gt;31,3 -->
+<g id="edge350" class="edge"><title>28,4&#45;&gt;31,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1009.73,-2704.42C993.562,-2648.41 964,-2546 964,-2546 964,-2546 954,-1346 954,-1346 954,-1346 952,-1346 952,-1346 952,-1346 942,-1684 942,-1684 942,-1684 934.717,-1690.24 925.404,-1698.22"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="922.915,-1695.75 917.6,-1704.91 927.471,-1701.06 922.915,-1695.75"/>
+</g>
+<!-- 29,1 -->
+<g id="node60" class="node"><title>29,1</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2306" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2317.17" font-family="Times Roman,serif" font-size="10.00">29,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2298 727,-2312 778,-2312 778,-2298 727,-2298"/>
+<text text-anchor="start" x="736" y="-2302.67" font-family="Times Roman,serif" font-size="10.00">CATGA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2284 727,-2298 778,-2298 778,-2284 727,-2284"/>
+<text text-anchor="start" x="737" y="-2288.67" font-family="Times Roman,serif" font-size="10.00">TCATG</text>
+</g>
+<!-- 29,1&#45;&gt;29,2 -->
+<g id="edge760" class="edge"><title>29,1&#45;&gt;29,2</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-2299.53C808.501,-2299.25 818.748,-2299.18 828.703,-2299.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-2302.82 838.933,-2299.52 829.007,-2295.82 828.864,-2302.82"/>
+</g>
+<!-- 30,2 -->
+<g id="node165" class="node"><title>30,2</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2140" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-2151.17" font-family="Times Roman,serif" font-size="10.00">30,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-2132 861,-2146 912,-2146 912,-2132 861,-2132"/>
+<text text-anchor="start" x="871" y="-2136.67" font-family="Times Roman,serif" font-size="10.00">TCATG</text>
+<polygon fill="#218559" stroke="#218559" points="861,-2118 861,-2132 912,-2132 912,-2118 861,-2118"/>
+<text text-anchor="start" x="870" y="-2122.67" font-family="Times Roman,serif" font-size="10.00">CATGA</text>
+</g>
+<!-- 29,1&#45;&gt;30,2 -->
+<g id="edge764" class="edge"><title>29,1&#45;&gt;30,2</title>
+<path fill="none" stroke="#218559" d="M780.444,-2277.14C799.078,-2258.23 820,-2237 820,-2237 820,-2237 840.341,-2207.11 858.438,-2180.51"/>
+<polygon fill="#218559" stroke="#218559" points="861.474,-2182.27 864.206,-2172.03 855.687,-2178.33 861.474,-2182.27"/>
+</g>
+<!-- 30,3 -->
+<g id="node166" class="node"><title>30,3</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-2140" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-2151.17" font-family="Times Roman,serif" font-size="10.00">30,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-2132 995,-2146 1046,-2146 1046,-2132 995,-2132"/>
+<text text-anchor="start" x="1004" y="-2136.67" font-family="Times Roman,serif" font-size="10.00">CATGA</text>
+<polygon fill="#218559" stroke="#218559" points="995,-2118 995,-2132 1046,-2132 1046,-2118 995,-2118"/>
+<text text-anchor="start" x="1005" y="-2122.67" font-family="Times Roman,serif" font-size="10.00">TCATG</text>
+</g>
+<!-- 29,1&#45;&gt;30,3 -->
+<g id="edge762" class="edge"><title>29,1&#45;&gt;30,3</title>
+<path fill="none" stroke="#06a2cb" d="M768.198,-2271.87C784.736,-2237.02 808,-2188 808,-2188 808,-2188 820,-2139 820,-2139 820,-2139 830,-2095 830,-2095 830,-2095 942,-2095 942,-2095 942,-2095 956.586,-2103.41 973.143,-2112.97"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="971.503,-2116.06 981.914,-2118.03 975.001,-2110 971.503,-2116.06"/>
+</g>
+<!-- 29,2&#45;&gt;28,4 -->
+<g id="edge770" class="edge"><title>29,2&#45;&gt;28,4</title>
+<path fill="none" stroke="#ebb035" d="M917.6,-2333.09C930.303,-2343.97 942,-2354 942,-2354 942,-2354 964,-2546 964,-2546 964,-2546 990.308,-2637.14 1006.86,-2694.48"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1003.59,-2695.78 1009.73,-2704.42 1010.32,-2693.84 1003.59,-2695.78"/>
+</g>
+<!-- 29,2&#45;&gt;29,1 -->
+<g id="edge772" class="edge"><title>29,2&#45;&gt;29,1</title>
+<path fill="none" stroke="#218559" d="M838.933,-2312.48C829.29,-2312.75 819.041,-2312.82 809.091,-2312.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-2309.18 798.867,-2312.47 808.792,-2316.18 808.937,-2309.18"/>
+</g>
+<!-- 29,3 -->
+<g id="node62" class="node"><title>29,3</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-2306" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-2317.17" font-family="Times Roman,serif" font-size="10.00">29,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-2298 995,-2312 1046,-2312 1046,-2298 995,-2298"/>
+<text text-anchor="start" x="1003.5" y="-2302.67" font-family="Times Roman,serif" font-size="10.00">TGACG</text>
+<polygon fill="#218559" stroke="#218559" points="995,-2284 995,-2298 1046,-2298 1046,-2284 995,-2284"/>
+<text text-anchor="start" x="1004" y="-2288.67" font-family="Times Roman,serif" font-size="10.00">CGTCA</text>
+</g>
+<!-- 29,2&#45;&gt;29,3 -->
+<g id="edge766" class="edge"><title>29,2&#45;&gt;29,3</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-2299.53C942.501,-2299.25 952.748,-2299.18 962.703,-2299.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-2302.82 972.933,-2299.52 963.007,-2295.82 962.864,-2302.82"/>
+</g>
+<!-- 32,4 -->
+<g id="node197" class="node"><title>32,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1974" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-1985.17" font-family="Times Roman,serif" font-size="10.00">32,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-1966 995,-1980 1046,-1980 1046,-1966 995,-1966"/>
+<text text-anchor="start" x="1004" y="-1970.67" font-family="Times Roman,serif" font-size="10.00">CGTCA</text>
+<polygon fill="#218559" stroke="#218559" points="995,-1952 995,-1966 1046,-1966 1046,-1952 995,-1952"/>
+<text text-anchor="start" x="1003.5" y="-1956.67" font-family="Times Roman,serif" font-size="10.00">TGACG</text>
+</g>
+<!-- 29,2&#45;&gt;32,4 -->
+<g id="edge768" class="edge"><title>29,2&#45;&gt;32,4</title>
+<path fill="none" stroke="#ebb035" d="M902.198,-2271.87C918.736,-2237.02 942,-2188 942,-2188 942,-2188 954,-2154 954,-2154 954,-2154 964,-2092 964,-2092 964,-2092 983.437,-2051.04 999.409,-2017.39"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1002.68,-2018.67 1003.8,-2008.13 996.353,-2015.66 1002.68,-2018.67"/>
+</g>
+<!-- 29,3&#45;&gt;29,2 -->
+<g id="edge780" class="edge"><title>29,3&#45;&gt;29,2</title>
+<path fill="none" stroke="#218559" d="M972.933,-2312.48C963.29,-2312.75 953.041,-2312.82 943.091,-2312.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-2309.18 932.867,-2312.47 942.792,-2316.18 942.937,-2309.18"/>
+</g>
+<!-- 29,3&#45;&gt;29,4 -->
+<g id="edge774" class="edge"><title>29,3&#45;&gt;29,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1066.87,-2299.53C1076.5,-2299.25 1086.75,-2299.18 1096.7,-2299.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1096.86,-2302.82 1106.93,-2299.52 1097.01,-2295.82 1096.86,-2302.82"/>
+</g>
+<!-- 30,1 -->
+<g id="node164" class="node"><title>30,1</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2140" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-2151.17" font-family="Times Roman,serif" font-size="10.00">30,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-2132 727,-2146 778,-2146 778,-2132 727,-2132"/>
+<text text-anchor="start" x="737.5" y="-2136.67" font-family="Times Roman,serif" font-size="10.00">GTCAT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-2118 727,-2132 778,-2132 778,-2118 727,-2118"/>
+<text text-anchor="start" x="736" y="-2122.67" font-family="Times Roman,serif" font-size="10.00">ATGAC</text>
+</g>
+<!-- 29,3&#45;&gt;30,1 -->
+<g id="edge776" class="edge"><title>29,3&#45;&gt;30,1</title>
+<path fill="none" stroke="#06a2cb" d="M1003.8,-2271.87C987.264,-2237.02 964,-2188 964,-2188 964,-2188 942,-1926 942,-1926 942,-1926 830,-1926 830,-1926 830,-1926 808,-2090 808,-2090 808,-2090 800.316,-2096.86 790.641,-2105.5"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="788.077,-2103.1 782.948,-2112.37 792.739,-2108.32 788.077,-2103.1"/>
+</g>
+<!-- 30,4 -->
+<g id="node167" class="node"><title>30,4</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-2140" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1131.5" y="-2151.17" font-family="Times Roman,serif" font-size="10.00">30,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1129,-2132 1129,-2146 1180,-2146 1180,-2132 1129,-2132"/>
+<text text-anchor="start" x="1138" y="-2136.67" font-family="Times Roman,serif" font-size="10.00">ATGAC</text>
+<polygon fill="#218559" stroke="#218559" points="1129,-2118 1129,-2132 1180,-2132 1180,-2118 1129,-2118"/>
+<text text-anchor="start" x="1139.5" y="-2122.67" font-family="Times Roman,serif" font-size="10.00">GTCAT</text>
+</g>
+<!-- 29,3&#45;&gt;30,4 -->
+<g id="edge778" class="edge"><title>29,3&#45;&gt;30,4</title>
+<path fill="none" stroke="#218559" d="M1048.44,-2277.14C1067.08,-2258.23 1088,-2237 1088,-2237 1088,-2237 1108.34,-2207.11 1126.44,-2180.51"/>
+<polygon fill="#218559" stroke="#218559" points="1129.47,-2182.27 1132.21,-2172.03 1123.69,-2178.33 1129.47,-2182.27"/>
+</g>
+<!-- 29,4&#45;&gt;28,2 -->
+<g id="edge782" class="edge"><title>29,4&#45;&gt;28,2</title>
+<path fill="none" stroke="#ebb035" d="M1142.26,-2341.23C1128.05,-2383.86 1106,-2450 1106,-2450 1106,-2450 1076,-2546 1076,-2546 1076,-2546 954,-2614 954,-2614 954,-2614 830,-2653 830,-2653 830,-2653 808,-2678 808,-2678 808,-2678 797.753,-2689.34 786.026,-2702.33"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="783.121,-2700.32 779.016,-2710.09 788.316,-2705.01 783.121,-2700.32"/>
+</g>
+<!-- 29,4&#45;&gt;29,3 -->
+<g id="edge784" class="edge"><title>29,4&#45;&gt;29,3</title>
+<path fill="none" stroke="#218559" d="M1106.93,-2312.48C1097.29,-2312.75 1087.04,-2312.82 1077.09,-2312.68"/>
+<polygon fill="#218559" stroke="#218559" points="1076.94,-2309.18 1066.87,-2312.47 1076.79,-2316.18 1076.94,-2309.18"/>
+</g>
+<!-- 1,1 -->
+<g id="node65" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="64" cy="-5415" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="44.5" y="-5426.17" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="42,-5407 42,-5421 87,-5421 87,-5407 42,-5407"/>
+<text text-anchor="start" x="49" y="-5411.67" font-family="Times Roman,serif" font-size="10.00">TAGTG</text>
+<polygon fill="#218559" stroke="#218559" points="42,-5393 42,-5407 87,-5407 87,-5393 42,-5393"/>
+<text text-anchor="start" x="48.5" y="-5397.67" font-family="Times Roman,serif" font-size="10.00">CACTA</text>
+</g>
+<!-- 1,2 -->
+<g id="node66" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-5415" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="196.5" y="-5426.17" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="194,-5407 194,-5421 239,-5421 239,-5407 194,-5407"/>
+<text text-anchor="start" x="199.5" y="-5411.67" font-family="Times Roman,serif" font-size="10.00">AGTGC</text>
+<polygon fill="#218559" stroke="#218559" points="194,-5393 194,-5407 239,-5407 239,-5393 194,-5393"/>
+<text text-anchor="start" x="200" y="-5397.67" font-family="Times Roman,serif" font-size="10.00">GCACT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge454" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M106.745,-5408.86C124.378,-5408.17 144.986,-5408.07 163.523,-5408.55"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="163.467,-5412.05 173.576,-5408.87 163.695,-5405.05 163.467,-5412.05"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge460" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M173.576,-5421.13C155.979,-5421.82 135.377,-5421.94 116.815,-5421.46"/>
+<polygon fill="#218559" stroke="#218559" points="116.852,-5417.96 106.745,-5421.14 116.627,-5424.96 116.852,-5417.96"/>
+</g>
+<!-- 1,3 -->
+<g id="node67" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-5415" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="330.5" y="-5426.17" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="328,-5407 328,-5421 373,-5421 373,-5407 328,-5407"/>
+<text text-anchor="start" x="333" y="-5411.67" font-family="Times Roman,serif" font-size="10.00">GTGCG</text>
+<polygon fill="#218559" stroke="#218559" points="328,-5393 328,-5407 373,-5407 373,-5393 328,-5393"/>
+<text text-anchor="start" x="333" y="-5397.67" font-family="Times Roman,serif" font-size="10.00">CGCAC</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge456" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M258.398,-5408.67C270.741,-5408.23 284.377,-5408.14 297.273,-5408.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="297.326,-5411.89 307.417,-5408.67 297.517,-5404.89 297.326,-5411.89"/>
+</g>
+<!-- 2,4 -->
+<g id="node77" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-5319" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-5330.17" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-5311 596,-5325 641,-5325 641,-5311 596,-5311"/>
+<text text-anchor="start" x="601" y="-5315.67" font-family="Times Roman,serif" font-size="10.00">CGCAC</text>
+<polygon fill="#218559" stroke="#218559" points="596,-5297 596,-5311 641,-5311 641,-5297 596,-5297"/>
+<text text-anchor="start" x="601" y="-5301.67" font-family="Times Roman,serif" font-size="10.00">GTGCG</text>
+</g>
+<!-- 1,2&#45;&gt;2,4 -->
+<g id="edge458" class="edge"><title>1,2&#45;&gt;2,4</title>
+<path fill="none" stroke="#ebb035" d="M251.804,-5435.66C272.309,-5447.49 294,-5460 294,-5460 294,-5460 540,-5460 540,-5460 540,-5460 571.999,-5402.16 595.006,-5360.57"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="598.131,-5362.15 599.909,-5351.7 592.006,-5358.76 598.131,-5362.15"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge464" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M307.417,-5421.33C295.062,-5421.77 281.424,-5421.86 268.535,-5421.61"/>
+<polygon fill="#218559" stroke="#218559" points="268.491,-5418.11 258.398,-5421.33 268.298,-5425.1 268.491,-5418.11"/>
+</g>
+<!-- 1,4 -->
+<g id="node68" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5415" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-5426.17" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-5407 462,-5421 507,-5421 507,-5407 462,-5407"/>
+<text text-anchor="start" x="467.5" y="-5411.67" font-family="Times Roman,serif" font-size="10.00">TGCGA</text>
+<polygon fill="#218559" stroke="#218559" points="462,-5393 462,-5407 507,-5407 507,-5393 462,-5393"/>
+<text text-anchor="start" x="468" y="-5397.67" font-family="Times Roman,serif" font-size="10.00">TCGCA</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge462" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M392.398,-5408.67C404.741,-5408.23 418.377,-5408.14 431.273,-5408.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="431.326,-5411.89 441.417,-5408.67 431.517,-5404.89 431.326,-5411.89"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge468" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M441.417,-5421.33C429.062,-5421.77 415.424,-5421.86 402.535,-5421.61"/>
+<polygon fill="#218559" stroke="#218559" points="402.491,-5418.11 392.398,-5421.33 402.298,-5425.1 402.491,-5418.11"/>
+</g>
+<!-- 2,2 -->
+<g id="node75" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-5319" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="330.5" y="-5330.17" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="328,-5311 328,-5325 373,-5325 373,-5311 328,-5311"/>
+<text text-anchor="start" x="334" y="-5315.67" font-family="Times Roman,serif" font-size="10.00">CTCGC</text>
+<polygon fill="#218559" stroke="#218559" points="328,-5297 328,-5311 373,-5311 373,-5297 328,-5297"/>
+<text text-anchor="start" x="332.5" y="-5301.67" font-family="Times Roman,serif" font-size="10.00">GCGAG</text>
+</g>
+<!-- 1,4&#45;&gt;2,2 -->
+<g id="edge466" class="edge"><title>1,4&#45;&gt;2,2</title>
+<path fill="none" stroke="#ebb035" d="M448.805,-5394.3C432.212,-5384.54 416,-5375 416,-5375 416,-5375 402.69,-5363.71 388.025,-5351.26"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="390.185,-5348.51 380.296,-5344.71 385.656,-5353.84 390.185,-5348.51"/>
+</g>
+<!-- 3,1 -->
+<g id="node70" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-52" rx="43.8406" ry="36.0624"/>
+<text text-anchor="start" x="732" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="729,-44 729,-58 775,-58 775,-44 729,-44"/>
+<text text-anchor="start" x="731.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">GCTAGG</text>
+<polygon fill="#218559" stroke="#218559" points="729,-30 729,-44 775,-44 775,-30 729,-30"/>
+<text text-anchor="start" x="732.5" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">CCTAGC</text>
+</g>
+<!-- 3,3 -->
+<g id="node71" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-44 864,-58 909,-58 909,-44 864,-44"/>
+<text text-anchor="start" x="869.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">TAGGG</text>
+<polygon fill="#218559" stroke="#218559" points="864,-30 864,-44 909,-44 909,-30 864,-30"/>
+<text text-anchor="start" x="870.5" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">CCCTA</text>
+</g>
+<!-- 3,1&#45;&gt;3,3 -->
+<g id="edge470" class="edge"><title>3,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M795.506,-45.6333C807.566,-45.224 820.789,-45.1425 833.312,-45.3888"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.533,-48.8961 843.626,-45.6728 833.726,-41.8988 833.533,-48.8961"/>
+</g>
+<!-- 3,3&#45;&gt;3,1 -->
+<g id="edge474" class="edge"><title>3,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M843.626,-58.3272C831.641,-58.7571 818.434,-58.8591 805.869,-58.6334"/>
+<polygon fill="#218559" stroke="#218559" points="805.593,-55.1253 795.506,-58.3667 805.413,-62.1229 805.593,-55.1253"/>
+</g>
+<!-- 3,4 -->
+<g id="node72" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1000.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="998,-44 998,-58 1043,-58 1043,-44 998,-44"/>
+<text text-anchor="start" x="1003.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">AGGGT</text>
+<polygon fill="#218559" stroke="#218559" points="998,-30 998,-44 1043,-44 1043,-30 998,-30"/>
+<text text-anchor="start" x="1004" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">ACCCT</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge472" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M928.398,-45.6719C940.741,-45.2298 954.377,-45.1351 967.273,-45.388"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="967.326,-48.8907 977.417,-45.6653 967.517,-41.8933 967.326,-48.8907"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge478" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M977.417,-58.3347C965.062,-58.7734 951.424,-58.8645 938.535,-58.6082"/>
+<polygon fill="#218559" stroke="#218559" points="938.491,-55.1057 928.398,-58.3281 938.298,-62.1031 938.491,-55.1057"/>
+</g>
+<!-- 4,3 -->
+<g id="node86" class="node"><title>4,3</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-1444" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1134.5" y="-1455.17" font-family="Times Roman,serif" font-size="10.00">4,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1132,-1436 1132,-1450 1177,-1450 1177,-1436 1132,-1436"/>
+<text text-anchor="start" x="1138" y="-1440.67" font-family="Times Roman,serif" font-size="10.00">GGGTT</text>
+<polygon fill="#218559" stroke="#218559" points="1132,-1422 1132,-1436 1177,-1436 1177,-1422 1132,-1422"/>
+<text text-anchor="start" x="1137.5" y="-1426.67" font-family="Times Roman,serif" font-size="10.00">AACCC</text>
+</g>
+<!-- 3,4&#45;&gt;4,3 -->
+<g id="edge476" class="edge"><title>3,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1023.59,-87.8824C1035.95,-211.48 1076,-612 1076,-612 1076,-612 1106,-1122 1106,-1122 1106,-1122 1133.86,-1308.88 1147.13,-1397.9"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1143.7,-1398.63 1148.63,-1408 1150.62,-1397.59 1143.7,-1398.63"/>
+</g>
+<!-- 2,1 -->
+<g id="node74" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-5319" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="196.5" y="-5330.17" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="194,-5311 194,-5325 239,-5325 239,-5311 194,-5311"/>
+<text text-anchor="start" x="200" y="-5315.67" font-family="Times Roman,serif" font-size="10.00">CCTCG</text>
+<polygon fill="#218559" stroke="#218559" points="194,-5297 194,-5311 239,-5311 239,-5297 194,-5297"/>
+<text text-anchor="start" x="198.5" y="-5301.67" font-family="Times Roman,serif" font-size="10.00">CGAGG</text>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge48" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M258.398,-5312.67C270.741,-5312.23 284.377,-5312.14 297.273,-5312.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="297.326,-5315.89 307.417,-5312.67 297.517,-5308.89 297.326,-5315.89"/>
+</g>
+<!-- 2,2&#45;&gt;1,4 -->
+<g id="edge52" class="edge"><title>2,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#ebb035" d="M382.78,-5342.48C400.868,-5355.44 423.505,-5371.66 442.782,-5385.47"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="440.926,-5388.45 451.094,-5391.43 445.003,-5382.76 440.926,-5388.45"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge54" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M307.417,-5325.33C295.062,-5325.77 281.424,-5325.86 268.535,-5325.61"/>
+<polygon fill="#218559" stroke="#218559" points="268.491,-5322.11 258.398,-5325.33 268.298,-5329.1 268.491,-5322.11"/>
+</g>
+<!-- 2,3 -->
+<g id="node76" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5319" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-5330.17" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-5311 462,-5325 507,-5325 507,-5311 462,-5311"/>
+<text text-anchor="start" x="468" y="-5315.67" font-family="Times Roman,serif" font-size="10.00">TCGCA</text>
+<polygon fill="#218559" stroke="#218559" points="462,-5297 462,-5311 507,-5311 507,-5297 462,-5297"/>
+<text text-anchor="start" x="467.5" y="-5301.67" font-family="Times Roman,serif" font-size="10.00">TGCGA</text>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge50" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M392.398,-5312.67C404.741,-5312.23 418.377,-5312.14 431.273,-5312.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="431.326,-5315.89 441.417,-5312.67 431.517,-5308.89 431.326,-5315.89"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge58" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M441.417,-5325.33C429.062,-5325.77 415.424,-5325.86 402.535,-5325.61"/>
+<polygon fill="#218559" stroke="#218559" points="402.491,-5322.11 392.398,-5325.33 402.298,-5329.1 402.491,-5322.11"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge56" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M526.398,-5312.67C538.741,-5312.23 552.377,-5312.14 565.273,-5312.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="565.326,-5315.89 575.417,-5312.67 565.517,-5308.89 565.326,-5315.89"/>
+</g>
+<!-- 2,4&#45;&gt;1,2 -->
+<g id="edge60" class="edge"><title>2,4&#45;&gt;1,2</title>
+<path fill="none" stroke="#ebb035" d="M604.961,-5353.38C585.726,-5404.09 552,-5493 552,-5493 552,-5493 282,-5493 282,-5493 282,-5493 264.575,-5472.41 247.632,-5452.38"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="250.083,-5449.86 240.952,-5444.49 244.739,-5454.38 250.083,-5449.86"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge62" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M575.417,-5325.33C563.062,-5325.77 549.424,-5325.86 536.535,-5325.61"/>
+<polygon fill="#218559" stroke="#218559" points="536.491,-5322.11 526.398,-5325.33 536.298,-5329.1 536.491,-5322.11"/>
+</g>
+<!-- 5,1 -->
+<g id="node79" class="node"><title>5,1</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-2498" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-2509.17" font-family="Times Roman,serif" font-size="10.00">5,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-2490 730,-2504 775,-2504 775,-2490 730,-2490"/>
+<text text-anchor="start" x="735" y="-2494.67" font-family="Times Roman,serif" font-size="10.00">AGCAA</text>
+<polygon fill="#218559" stroke="#218559" points="730,-2476 730,-2490 775,-2490 775,-2476 730,-2476"/>
+<text text-anchor="start" x="737.5" y="-2480.67" font-family="Times Roman,serif" font-size="10.00">TTGCT</text>
+</g>
+<!-- 5,2 -->
+<g id="node80" class="node"><title>5,2</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-2498" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-2509.17" font-family="Times Roman,serif" font-size="10.00">5,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-2490 864,-2504 909,-2504 909,-2490 864,-2490"/>
+<text text-anchor="start" x="869" y="-2494.67" font-family="Times Roman,serif" font-size="10.00">GCAAC</text>
+<polygon fill="#218559" stroke="#218559" points="864,-2476 864,-2490 909,-2490 909,-2476 864,-2476"/>
+<text text-anchor="start" x="870.5" y="-2480.67" font-family="Times Roman,serif" font-size="10.00">GTTGC</text>
+</g>
+<!-- 5,1&#45;&gt;5,2 -->
+<g id="edge480" class="edge"><title>5,1&#45;&gt;5,2</title>
+<path fill="none" stroke="#dd1e2f" d="M794.398,-2491.67C806.741,-2491.23 820.377,-2491.14 833.273,-2491.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.326,-2494.89 843.417,-2491.67 833.517,-2487.89 833.326,-2494.89"/>
+</g>
+<!-- 6,3 -->
+<g id="node96" class="node"><title>6,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3131" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-3142.17" font-family="Times Roman,serif" font-size="10.00">6,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-3123 864,-3137 909,-3137 909,-3123 864,-3123"/>
+<text text-anchor="start" x="870" y="-3127.67" font-family="Times Roman,serif" font-size="10.00">TGCTG</text>
+<polygon fill="#218559" stroke="#218559" points="864,-3109 864,-3123 909,-3123 909,-3109 864,-3109"/>
+<text text-anchor="start" x="869" y="-3113.67" font-family="Times Roman,serif" font-size="10.00">CAGCA</text>
+</g>
+<!-- 5,1&#45;&gt;6,3 -->
+<g id="edge482" class="edge"><title>5,1&#45;&gt;6,3</title>
+<path fill="none" stroke="#06a2cb" d="M762.141,-2533.13C778.279,-2589.04 808,-2692 808,-2692 808,-2692 820,-2810 820,-2810 820,-2810 830,-3083 830,-3083 830,-3083 837.944,-3089.81 847.849,-3098.3"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="845.835,-3101.18 855.705,-3105.03 850.391,-3095.87 845.835,-3101.18"/>
+</g>
+<!-- 5,2&#45;&gt;5,1 -->
+<g id="edge488" class="edge"><title>5,2&#45;&gt;5,1</title>
+<path fill="none" stroke="#218559" d="M843.417,-2504.33C831.062,-2504.77 817.424,-2504.86 804.535,-2504.61"/>
+<polygon fill="#218559" stroke="#218559" points="804.491,-2501.11 794.398,-2504.33 804.298,-2508.1 804.491,-2501.11"/>
+</g>
+<!-- 5,3 -->
+<g id="node81" class="node"><title>5,3</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-2498" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1000.5" y="-2509.17" font-family="Times Roman,serif" font-size="10.00">5,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="998,-2490 998,-2504 1043,-2504 1043,-2490 998,-2490"/>
+<text text-anchor="start" x="1003.5" y="-2494.67" font-family="Times Roman,serif" font-size="10.00">CAACC</text>
+<polygon fill="#218559" stroke="#218559" points="998,-2476 998,-2490 1043,-2490 1043,-2476 998,-2476"/>
+<text text-anchor="start" x="1004" y="-2480.67" font-family="Times Roman,serif" font-size="10.00">GGTTG</text>
+</g>
+<!-- 5,2&#45;&gt;5,3 -->
+<g id="edge484" class="edge"><title>5,2&#45;&gt;5,3</title>
+<path fill="none" stroke="#dd1e2f" d="M928.398,-2491.67C940.741,-2491.23 954.377,-2491.14 967.273,-2491.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="967.326,-2494.89 977.417,-2491.67 967.517,-2487.89 967.326,-2494.89"/>
+</g>
+<!-- 4,4 -->
+<g id="node87" class="node"><title>4,4</title>
+<ellipse fill="none" stroke="black" cx="1288" cy="-1444" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1268.5" y="-1455.17" font-family="Times Roman,serif" font-size="10.00">4,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1266,-1436 1266,-1450 1311,-1450 1311,-1436 1266,-1436"/>
+<text text-anchor="start" x="1272" y="-1440.67" font-family="Times Roman,serif" font-size="10.00">GGTTG</text>
+<polygon fill="#218559" stroke="#218559" points="1266,-1422 1266,-1436 1311,-1436 1311,-1422 1266,-1422"/>
+<text text-anchor="start" x="1271.5" y="-1426.67" font-family="Times Roman,serif" font-size="10.00">CAACC</text>
+</g>
+<!-- 5,2&#45;&gt;4,4 -->
+<g id="edge486" class="edge"><title>5,2&#45;&gt;4,4</title>
+<path fill="none" stroke="#ebb035" d="M916.295,-2472.03C929.489,-2460.72 942,-2450 942,-2450 942,-2450 954,-2353 954,-2353 954,-2353 964,-2258 964,-2258 964,-2258 1210,-2211 1210,-2211 1210,-2211 1222,-2096 1222,-2096 1222,-2096 1268.27,-1638.87 1283.33,-1490.15"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1286.83,-1490.28 1284.36,-1479.98 1279.87,-1489.58 1286.83,-1490.28"/>
+</g>
+<!-- 5,3&#45;&gt;5,2 -->
+<g id="edge494" class="edge"><title>5,3&#45;&gt;5,2</title>
+<path fill="none" stroke="#218559" d="M977.417,-2504.33C965.062,-2504.77 951.424,-2504.86 938.535,-2504.61"/>
+<polygon fill="#218559" stroke="#218559" points="938.491,-2501.11 928.398,-2504.33 938.298,-2508.1 938.491,-2501.11"/>
+</g>
+<!-- 5,4 -->
+<g id="node82" class="node"><title>5,4</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-2498" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1134.5" y="-2509.17" font-family="Times Roman,serif" font-size="10.00">5,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1132,-2490 1132,-2504 1177,-2504 1177,-2490 1132,-2490"/>
+<text text-anchor="start" x="1137.5" y="-2494.67" font-family="Times Roman,serif" font-size="10.00">AACCC</text>
+<polygon fill="#218559" stroke="#218559" points="1132,-2476 1132,-2490 1177,-2490 1177,-2476 1132,-2476"/>
+<text text-anchor="start" x="1138" y="-2480.67" font-family="Times Roman,serif" font-size="10.00">GGGTT</text>
+</g>
+<!-- 5,3&#45;&gt;5,4 -->
+<g id="edge490" class="edge"><title>5,3&#45;&gt;5,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1062.4,-2491.67C1074.74,-2491.23 1088.38,-2491.14 1101.27,-2491.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1101.33,-2494.89 1111.42,-2491.67 1101.52,-2487.89 1101.33,-2494.89"/>
+</g>
+<!-- 6,1 -->
+<g id="node94" class="node"><title>6,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3131" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-3142.17" font-family="Times Roman,serif" font-size="10.00">6,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-3123 596,-3137 641,-3137 641,-3123 596,-3123"/>
+<text text-anchor="start" x="602.5" y="-3127.67" font-family="Times Roman,serif" font-size="10.00">GTTGC</text>
+<polygon fill="#218559" stroke="#218559" points="596,-3109 596,-3123 641,-3123 641,-3109 596,-3109"/>
+<text text-anchor="start" x="601" y="-3113.67" font-family="Times Roman,serif" font-size="10.00">GCAAC</text>
+</g>
+<!-- 5,3&#45;&gt;6,1 -->
+<g id="edge492" class="edge"><title>5,3&#45;&gt;6,1</title>
+<path fill="none" stroke="#06a2cb" d="M988.4,-2522.83C975.697,-2532.81 964,-2542 964,-2542 964,-2542 942,-2577 942,-2577 942,-2577 830,-2615 830,-2615 830,-2615 808,-2636 808,-2636 808,-2636 696,-2692 696,-2692 696,-2692 686,-2881 686,-2881 686,-2881 674,-3083 674,-3083 674,-3083 666.056,-3089.81 656.151,-3098.3"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="653.609,-3095.87 648.295,-3105.03 658.165,-3101.18 653.609,-3095.87"/>
+</g>
+<!-- 5,4&#45;&gt;5,3 -->
+<g id="edge498" class="edge"><title>5,4&#45;&gt;5,3</title>
+<path fill="none" stroke="#218559" d="M1111.42,-2504.33C1099.06,-2504.77 1085.42,-2504.86 1072.54,-2504.61"/>
+<polygon fill="#218559" stroke="#218559" points="1072.49,-2501.11 1062.4,-2504.33 1072.3,-2508.1 1072.49,-2501.11"/>
+</g>
+<!-- 4,2 -->
+<g id="node85" class="node"><title>4,2</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1444" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1000.5" y="-1455.17" font-family="Times Roman,serif" font-size="10.00">4,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="998,-1436 998,-1450 1043,-1450 1043,-1436 998,-1436"/>
+<text text-anchor="start" x="1003.5" y="-1440.67" font-family="Times Roman,serif" font-size="10.00">AGGGT</text>
+<polygon fill="#218559" stroke="#218559" points="998,-1422 998,-1436 1043,-1436 1043,-1422 998,-1422"/>
+<text text-anchor="start" x="1004" y="-1426.67" font-family="Times Roman,serif" font-size="10.00">ACCCT</text>
+</g>
+<!-- 5,4&#45;&gt;4,2 -->
+<g id="edge496" class="edge"><title>5,4&#45;&gt;4,2</title>
+<path fill="none" stroke="#ebb035" d="M1142.38,-2463.14C1128.17,-2420.52 1106,-2354 1106,-2354 1106,-2354 1086,-1913 1086,-1913 1086,-1913 1076,-1684 1076,-1684 1076,-1684 1046.78,-1558.79 1030.56,-1489.25"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1033.94,-1488.36 1028.26,-1479.41 1027.13,-1489.95 1033.94,-1488.36"/>
+</g>
+<!-- 4,1 -->
+<g id="node84" class="node"><title>4,1</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1444" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-1455.17" font-family="Times Roman,serif" font-size="10.00">4,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-1436 864,-1450 909,-1450 909,-1436 864,-1436"/>
+<text text-anchor="start" x="868" y="-1440.67" font-family="Times Roman,serif" font-size="10.00">GAGGG</text>
+<polygon fill="#218559" stroke="#218559" points="864,-1422 864,-1436 909,-1436 909,-1422 864,-1422"/>
+<text text-anchor="start" x="870.5" y="-1426.67" font-family="Times Roman,serif" font-size="10.00">CCCTC</text>
+</g>
+<!-- 4,1&#45;&gt;4,2 -->
+<g id="edge64" class="edge"><title>4,1&#45;&gt;4,2</title>
+<path fill="none" stroke="#dd1e2f" d="M928.398,-1437.67C940.741,-1437.23 954.377,-1437.14 967.273,-1437.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="967.326,-1440.89 977.417,-1437.67 967.517,-1433.89 967.326,-1440.89"/>
+</g>
+<!-- 4,2&#45;&gt;5,4 -->
+<g id="edge68" class="edge"><title>4,2&#45;&gt;5,4</title>
+<path fill="none" stroke="#ebb035" d="M1028.26,-1479.41C1043.84,-1546.17 1076,-1684 1076,-1684 1076,-1684 1088,-1915 1088,-1915 1088,-1915 1106,-2354 1106,-2354 1106,-2354 1125.09,-2411.26 1139.19,-2453.56"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1135.9,-2454.76 1142.38,-2463.14 1142.54,-2452.55 1135.9,-2454.76"/>
+</g>
+<!-- 4,2&#45;&gt;4,1 -->
+<g id="edge70" class="edge"><title>4,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#218559" d="M977.417,-1450.33C965.062,-1450.77 951.424,-1450.86 938.535,-1450.61"/>
+<polygon fill="#218559" stroke="#218559" points="938.491,-1447.11 928.398,-1450.33 938.298,-1454.1 938.491,-1447.11"/>
+</g>
+<!-- 4,2&#45;&gt;4,3 -->
+<g id="edge66" class="edge"><title>4,2&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1062.4,-1437.67C1074.74,-1437.23 1088.38,-1437.14 1101.27,-1437.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1101.33,-1440.89 1111.42,-1437.67 1101.52,-1433.89 1101.33,-1440.89"/>
+</g>
+<!-- 4,3&#45;&gt;3,4 -->
+<g id="edge74" class="edge"><title>4,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#218559" d="M1148.63,-1408C1136.11,-1323.98 1106,-1122 1106,-1122 1106,-1122 1088,-453 1088,-453 1088,-453 1045.65,-203.273 1027.79,-97.9643"/>
+<polygon fill="#218559" stroke="#218559" points="1031.22,-97.213 1026.09,-87.939 1024.32,-98.3834 1031.22,-97.213"/>
+</g>
+<!-- 4,3&#45;&gt;4,2 -->
+<g id="edge76" class="edge"><title>4,3&#45;&gt;4,2</title>
+<path fill="none" stroke="#218559" d="M1111.42,-1450.33C1099.06,-1450.77 1085.42,-1450.86 1072.54,-1450.61"/>
+<polygon fill="#218559" stroke="#218559" points="1072.49,-1447.11 1062.4,-1450.33 1072.3,-1454.1 1072.49,-1447.11"/>
+</g>
+<!-- 4,3&#45;&gt;4,4 -->
+<g id="edge72" class="edge"><title>4,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1196.4,-1437.67C1208.74,-1437.23 1222.38,-1437.14 1235.27,-1437.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1235.33,-1440.89 1245.42,-1437.67 1235.52,-1433.89 1235.33,-1440.89"/>
+</g>
+<!-- 4,4&#45;&gt;5,2 -->
+<g id="edge78" class="edge"><title>4,4&#45;&gt;5,2</title>
+<path fill="none" stroke="#ebb035" d="M1284.24,-1479.88C1268.66,-1628.5 1210,-2188 1210,-2188 1210,-2188 964,-2228 964,-2228 964,-2228 942,-2450 942,-2450 942,-2450 934.056,-2456.81 924.151,-2465.3"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="921.609,-2462.87 916.295,-2472.03 926.165,-2468.18 921.609,-2462.87"/>
+</g>
+<!-- 4,4&#45;&gt;4,3 -->
+<g id="edge80" class="edge"><title>4,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M1245.42,-1450.33C1233.06,-1450.77 1219.42,-1450.86 1206.54,-1450.61"/>
+<polygon fill="#218559" stroke="#218559" points="1206.49,-1447.11 1196.4,-1450.33 1206.3,-1454.1 1206.49,-1447.11"/>
+</g>
+<!-- 7,1&#45;&gt;24,2 -->
+<g id="edge504" class="edge"><title>7,1&#45;&gt;24,2</title>
+<path fill="none" stroke="#06a2cb" d="M514.295,-4654.97C527.489,-4666.28 540,-4677 540,-4677 540,-4677 562,-5072 562,-5072 562,-5072 569.283,-5078.24 578.596,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="576.529,-5089.06 586.4,-5092.91 581.085,-5083.75 576.529,-5089.06"/>
+</g>
+<!-- 7,1&#45;&gt;23,1 -->
+<g id="edge508" class="edge"><title>7,1&#45;&gt;23,1</title>
+<path fill="none" stroke="#218559" d="M451.161,-4652.53C433.641,-4665.08 411.867,-4680.68 393.012,-4694.19"/>
+<polygon fill="#218559" stroke="#218559" points="390.948,-4691.36 384.857,-4700.03 395.025,-4697.05 390.948,-4691.36"/>
+</g>
+<!-- 7,1&#45;&gt;7,2 -->
+<g id="edge500" class="edge"><title>7,1&#45;&gt;7,2</title>
+<path fill="none" stroke="#dd1e2f" d="M526.398,-4622.67C538.741,-4622.23 552.377,-4622.14 565.273,-4622.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="565.326,-4625.89 575.417,-4622.67 565.517,-4618.89 565.326,-4625.89"/>
+</g>
+<!-- 8,3 -->
+<g id="node106" class="node"><title>8,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-5024" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-5035.17" font-family="Times Roman,serif" font-size="10.00">8,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-5016 596,-5030 641,-5030 641,-5016 596,-5016"/>
+<text text-anchor="start" x="602" y="-5020.67" font-family="Times Roman,serif" font-size="10.00">GAAAT</text>
+<polygon fill="#218559" stroke="#218559" points="596,-5002 596,-5016 641,-5016 641,-5002 596,-5002"/>
+<text text-anchor="start" x="604.5" y="-5006.67" font-family="Times Roman,serif" font-size="10.00">ATTTC</text>
+</g>
+<!-- 7,1&#45;&gt;8,3 -->
+<g id="edge502" class="edge"><title>7,1&#45;&gt;8,3</title>
+<path fill="none" stroke="#06a2cb" d="M513.64,-4602.54C527.072,-4590.54 540,-4579 540,-4579 540,-4579 550,-4340 550,-4340 550,-4340 552,-4340 552,-4340 552,-4340 562,-4773 562,-4773 562,-4773 591.791,-4906.53 607.915,-4978.8"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="604.502,-4979.57 610.095,-4988.57 611.334,-4978.05 604.502,-4979.57"/>
+</g>
+<!-- 18,2 -->
+<g id="node155" class="node"><title>18,2</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-4463" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-4474.17" font-family="Times Roman,serif" font-size="10.00">18,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-4455 325,-4469 376,-4469 376,-4455 325,-4455"/>
+<text text-anchor="start" x="336" y="-4459.67" font-family="Times Roman,serif" font-size="10.00">GTTTC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-4441 325,-4455 376,-4455 376,-4441 325,-4441"/>
+<text text-anchor="start" x="333" y="-4445.67" font-family="Times Roman,serif" font-size="10.00">GAAAC</text>
+</g>
+<!-- 7,1&#45;&gt;18,2 -->
+<g id="edge506" class="edge"><title>7,1&#45;&gt;18,2</title>
+<path fill="none" stroke="#218559" d="M468.102,-4595.5C451.546,-4560.62 428,-4511 428,-4511 428,-4511 418,-4336 418,-4336 418,-4336 416,-4336 416,-4336 416,-4336 391.411,-4383.32 372.25,-4420.19"/>
+<polygon fill="#218559" stroke="#218559" points="369.019,-4418.81 367.514,-4429.3 375.231,-4422.04 369.019,-4418.81"/>
+</g>
+<!-- 7,2&#45;&gt;24,1 -->
+<g id="edge514" class="edge"><title>7,2&#45;&gt;24,1</title>
+<path fill="none" stroke="#06a2cb" d="M587.705,-4654.97C574.511,-4666.28 562,-4677 562,-4677 562,-4677 552,-4873 552,-4873 552,-4873 550,-4901 550,-4901 550,-4901 540,-5072 540,-5072 540,-5072 532.717,-5078.24 523.404,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="520.915,-5083.75 515.6,-5092.91 525.471,-5089.06 520.915,-5083.75"/>
+</g>
+<!-- 7,2&#45;&gt;7,1 -->
+<g id="edge516" class="edge"><title>7,2&#45;&gt;7,1</title>
+<path fill="none" stroke="#218559" d="M575.417,-4635.33C563.062,-4635.77 549.424,-4635.86 536.535,-4635.61"/>
+<polygon fill="#218559" stroke="#218559" points="536.491,-4632.11 526.398,-4635.33 536.298,-4639.1 536.491,-4632.11"/>
+</g>
+<!-- 7,3 -->
+<g id="node91" class="node"><title>7,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-4629" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-4640.17" font-family="Times Roman,serif" font-size="10.00">7,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-4621 730,-4635 775,-4635 775,-4621 730,-4621"/>
+<text text-anchor="start" x="736" y="-4625.67" font-family="Times Roman,serif" font-size="10.00">TCAGC</text>
+<polygon fill="#218559" stroke="#218559" points="730,-4607 730,-4621 775,-4621 775,-4607 730,-4607"/>
+<text text-anchor="start" x="735.5" y="-4611.67" font-family="Times Roman,serif" font-size="10.00">GCTGA</text>
+</g>
+<!-- 7,2&#45;&gt;7,3 -->
+<g id="edge510" class="edge"><title>7,2&#45;&gt;7,3</title>
+<path fill="none" stroke="#dd1e2f" d="M660.398,-4622.67C672.741,-4622.23 686.377,-4622.14 699.273,-4622.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="699.326,-4625.89 709.417,-4622.67 699.517,-4618.89 699.326,-4625.89"/>
+</g>
+<!-- 6,4 -->
+<g id="node97" class="node"><title>6,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-3131" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1000.5" y="-3142.17" font-family="Times Roman,serif" font-size="10.00">6,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="998,-3123 998,-3137 1043,-3137 1043,-3123 998,-3123"/>
+<text text-anchor="start" x="1003.5" y="-3127.67" font-family="Times Roman,serif" font-size="10.00">GCTGA</text>
+<polygon fill="#218559" stroke="#218559" points="998,-3109 998,-3123 1043,-3123 1043,-3109 998,-3109"/>
+<text text-anchor="start" x="1004" y="-3113.67" font-family="Times Roman,serif" font-size="10.00">TCAGC</text>
+</g>
+<!-- 7,2&#45;&gt;6,4 -->
+<g id="edge512" class="edge"><title>7,2&#45;&gt;6,4</title>
+<path fill="none" stroke="#ebb035" d="M653.804,-4608.34C674.309,-4596.51 696,-4584 696,-4584 696,-4584 808,-4541 808,-4541 808,-4541 820,-4518 820,-4518 820,-4518 942,-4081 942,-4081 942,-4081 1000.55,-3367.83 1016.2,-3177.32"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1019.71,-3177.33 1017.04,-3167.08 1012.73,-3176.76 1019.71,-3177.33"/>
+</g>
+<!-- 7,3&#45;&gt;7,2 -->
+<g id="edge522" class="edge"><title>7,3&#45;&gt;7,2</title>
+<path fill="none" stroke="#218559" d="M709.417,-4635.33C697.062,-4635.77 683.424,-4635.86 670.535,-4635.61"/>
+<polygon fill="#218559" stroke="#218559" points="670.491,-4632.11 660.398,-4635.33 670.298,-4639.1 670.491,-4632.11"/>
+</g>
+<!-- 7,4 -->
+<g id="node92" class="node"><title>7,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-4629" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-4640.17" font-family="Times Roman,serif" font-size="10.00">7,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-4621 864,-4635 909,-4635 909,-4621 864,-4621"/>
+<text text-anchor="start" x="869" y="-4625.67" font-family="Times Roman,serif" font-size="10.00">CAGCA</text>
+<polygon fill="#218559" stroke="#218559" points="864,-4607 864,-4621 909,-4621 909,-4607 864,-4607"/>
+<text text-anchor="start" x="870" y="-4611.67" font-family="Times Roman,serif" font-size="10.00">TGCTG</text>
+</g>
+<!-- 7,3&#45;&gt;7,4 -->
+<g id="edge518" class="edge"><title>7,3&#45;&gt;7,4</title>
+<path fill="none" stroke="#dd1e2f" d="M794.398,-4622.67C806.741,-4622.23 820.377,-4622.14 833.273,-4622.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.326,-4625.89 843.417,-4622.67 833.517,-4618.89 833.326,-4625.89"/>
+</g>
+<!-- 7,3&#45;&gt;8,1 -->
+<g id="edge520" class="edge"><title>7,3&#45;&gt;8,1</title>
+<path fill="none" stroke="#06a2cb" d="M739.294,-4594.14C717.192,-4533.5 674,-4415 674,-4415 674,-4415 552,-4311 552,-4311 552,-4311 550,-4311 550,-4311 550,-4311 540,-4545 540,-4545 540,-4545 428,-4584 428,-4584 428,-4584 398,-4773 398,-4773 398,-4773 372.635,-4905.64 358.782,-4978.08"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="355.267,-4977.82 356.826,-4988.3 362.142,-4979.14 355.267,-4977.82"/>
+</g>
+<!-- 7,4&#45;&gt;7,3 -->
+<g id="edge526" class="edge"><title>7,4&#45;&gt;7,3</title>
+<path fill="none" stroke="#218559" d="M843.417,-4635.33C831.062,-4635.77 817.424,-4635.86 804.535,-4635.61"/>
+<polygon fill="#218559" stroke="#218559" points="804.491,-4632.11 794.398,-4635.33 804.298,-4639.1 804.491,-4632.11"/>
+</g>
+<!-- 6,2 -->
+<g id="node95" class="node"><title>6,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3131" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-3142.17" font-family="Times Roman,serif" font-size="10.00">6,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-3123 730,-3137 775,-3137 775,-3123 730,-3123"/>
+<text text-anchor="start" x="737.5" y="-3127.67" font-family="Times Roman,serif" font-size="10.00">TTGCT</text>
+<polygon fill="#218559" stroke="#218559" points="730,-3109 730,-3123 775,-3123 775,-3109 730,-3109"/>
+<text text-anchor="start" x="735" y="-3113.67" font-family="Times Roman,serif" font-size="10.00">AGCAA</text>
+</g>
+<!-- 7,4&#45;&gt;6,2 -->
+<g id="edge524" class="edge"><title>7,4&#45;&gt;6,2</title>
+<path fill="none" stroke="#ebb035" d="M883.839,-4593.04C873.548,-4421.76 830,-3697 830,-3697 830,-3697 808,-3186 808,-3186 808,-3186 798.399,-3176.57 787.148,-3165.52"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="789.587,-3163.01 780,-3158.5 784.682,-3168 789.587,-3163.01"/>
+</g>
+<!-- 6,1&#45;&gt;5,3 -->
+<g id="edge84" class="edge"><title>6,1&#45;&gt;5,3</title>
+<path fill="none" stroke="#06a2cb" d="M648.295,-3105.03C661.489,-3093.72 674,-3083 674,-3083 674,-3083 696,-2650 696,-2650 696,-2650 818,-2587 818,-2587 818,-2587 942,-2543 942,-2543 942,-2543 957.73,-2533.93 975.061,-2523.93"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="977.283,-2526.69 984.196,-2518.66 973.785,-2520.62 977.283,-2526.69"/>
+</g>
+<!-- 6,1&#45;&gt;6,2 -->
+<g id="edge82" class="edge"><title>6,1&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M660.398,-3124.67C672.741,-3124.23 686.377,-3124.14 699.273,-3124.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="699.326,-3127.89 709.417,-3124.67 699.517,-3120.89 699.326,-3127.89"/>
+</g>
+<!-- 6,2&#45;&gt;7,4 -->
+<g id="edge88" class="edge"><title>6,2&#45;&gt;7,4</title>
+<path fill="none" stroke="#ebb035" d="M790.372,-3147.93C805.796,-3154.73 820,-3161 820,-3161 820,-3161 830,-3697 830,-3697 830,-3697 871.947,-4395.11 883.232,-4582.94"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="879.745,-4583.26 883.839,-4593.04 886.733,-4582.84 879.745,-4583.26"/>
+</g>
+<!-- 6,2&#45;&gt;6,1 -->
+<g id="edge90" class="edge"><title>6,2&#45;&gt;6,1</title>
+<path fill="none" stroke="#218559" d="M709.417,-3137.33C697.062,-3137.77 683.424,-3137.86 670.535,-3137.61"/>
+<polygon fill="#218559" stroke="#218559" points="670.491,-3134.11 660.398,-3137.33 670.298,-3141.1 670.491,-3134.11"/>
+</g>
+<!-- 6,2&#45;&gt;6,3 -->
+<g id="edge86" class="edge"><title>6,2&#45;&gt;6,3</title>
+<path fill="none" stroke="#dd1e2f" d="M794.398,-3124.67C806.741,-3124.23 820.377,-3124.14 833.273,-3124.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.326,-3127.89 843.417,-3124.67 833.517,-3120.89 833.326,-3127.89"/>
+</g>
+<!-- 6,3&#45;&gt;5,1 -->
+<g id="edge94" class="edge"><title>6,3&#45;&gt;5,1</title>
+<path fill="none" stroke="#06a2cb" d="M855.705,-3105.03C842.511,-3093.72 830,-3083 830,-3083 830,-3083 820,-2834 820,-2834 820,-2834 808,-2692 808,-2692 808,-2692 781.55,-2600.37 765.006,-2543.06"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="768.277,-2541.77 762.141,-2533.13 761.552,-2543.71 768.277,-2541.77"/>
+</g>
+<!-- 6,3&#45;&gt;6,2 -->
+<g id="edge96" class="edge"><title>6,3&#45;&gt;6,2</title>
+<path fill="none" stroke="#218559" d="M843.417,-3137.33C831.062,-3137.77 817.424,-3137.86 804.535,-3137.61"/>
+<polygon fill="#218559" stroke="#218559" points="804.491,-3134.11 794.398,-3137.33 804.298,-3141.1 804.491,-3134.11"/>
+</g>
+<!-- 6,3&#45;&gt;6,4 -->
+<g id="edge92" class="edge"><title>6,3&#45;&gt;6,4</title>
+<path fill="none" stroke="#dd1e2f" d="M928.398,-3124.67C940.741,-3124.23 954.377,-3124.14 967.273,-3124.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="967.326,-3127.89 977.417,-3124.67 967.517,-3120.89 967.326,-3127.89"/>
+</g>
+<!-- 6,4&#45;&gt;7,2 -->
+<g id="edge98" class="edge"><title>6,4&#45;&gt;7,2</title>
+<path fill="none" stroke="#ebb035" d="M1015.06,-3166.84C997.916,-3291.25 942,-3697 942,-3697 942,-3697 820,-4503 820,-4503 820,-4503 684,-4551 684,-4551 684,-4551 674,-4579 674,-4579 674,-4579 665.629,-4586.47 655.36,-4595.64"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="652.768,-4593.26 647.64,-4602.54 657.43,-4598.49 652.768,-4593.26"/>
+</g>
+<!-- 6,4&#45;&gt;6,3 -->
+<g id="edge100" class="edge"><title>6,4&#45;&gt;6,3</title>
+<path fill="none" stroke="#218559" d="M977.417,-3137.33C965.062,-3137.77 951.424,-3137.86 938.535,-3137.61"/>
+<polygon fill="#218559" stroke="#218559" points="938.491,-3134.11 928.398,-3137.33 938.298,-3141.1 938.491,-3134.11"/>
+</g>
+<!-- 9,1 -->
+<g id="node99" class="node"><title>9,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3483" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-3494.17" font-family="Times Roman,serif" font-size="10.00">9,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-3475 462,-3489 507,-3489 507,-3475 462,-3475"/>
+<text text-anchor="start" x="468" y="-3479.67" font-family="Times Roman,serif" font-size="10.00">CAGAT</text>
+<polygon fill="#218559" stroke="#218559" points="462,-3461 462,-3475 507,-3475 507,-3461 462,-3461"/>
+<text text-anchor="start" x="469" y="-3465.67" font-family="Times Roman,serif" font-size="10.00">ATCTG</text>
+</g>
+<!-- 9,2 -->
+<g id="node100" class="node"><title>9,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3483" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="598.5" y="-3494.17" font-family="Times Roman,serif" font-size="10.00">9,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="596,-3475 596,-3489 641,-3489 641,-3475 596,-3475"/>
+<text text-anchor="start" x="603" y="-3479.67" font-family="Times Roman,serif" font-size="10.00">AGATT</text>
+<polygon fill="#218559" stroke="#218559" points="596,-3461 596,-3475 641,-3475 641,-3461 596,-3461"/>
+<text text-anchor="start" x="603.5" y="-3465.67" font-family="Times Roman,serif" font-size="10.00">AATCT</text>
+</g>
+<!-- 9,1&#45;&gt;9,2 -->
+<g id="edge528" class="edge"><title>9,1&#45;&gt;9,2</title>
+<path fill="none" stroke="#dd1e2f" d="M526.398,-3476.67C538.741,-3476.23 552.377,-3476.14 565.273,-3476.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="565.326,-3479.89 575.417,-3476.67 565.517,-3472.89 565.326,-3479.89"/>
+</g>
+<!-- 10,2 -->
+<g id="node115" class="node"><title>10,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3035" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-3046.17" font-family="Times Roman,serif" font-size="10.00">10,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-3027 593,-3041 644,-3041 644,-3027 593,-3027"/>
+<text text-anchor="start" x="600.5" y="-3031.67" font-family="Times Roman,serif" font-size="10.00">GCAGA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-3013 593,-3027 644,-3027 644,-3013 593,-3013"/>
+<text text-anchor="start" x="603" y="-3017.67" font-family="Times Roman,serif" font-size="10.00">TCTGC</text>
+</g>
+<!-- 9,1&#45;&gt;10,2 -->
+<g id="edge530" class="edge"><title>9,1&#45;&gt;10,2</title>
+<path fill="none" stroke="#218559" d="M493.883,-3447.53C509.959,-3389.82 540,-3282 540,-3282 540,-3282 552,-3197 552,-3197 552,-3197 562,-3083 562,-3083 562,-3083 569.283,-3076.76 578.596,-3068.78"/>
+<polygon fill="#218559" stroke="#218559" points="581.085,-3071.25 586.4,-3062.09 576.529,-3065.94 581.085,-3071.25"/>
+</g>
+<!-- 9,2&#45;&gt;9,1 -->
+<g id="edge536" class="edge"><title>9,2&#45;&gt;9,1</title>
+<path fill="none" stroke="#218559" d="M575.417,-3489.33C563.062,-3489.77 549.424,-3489.86 536.535,-3489.61"/>
+<polygon fill="#218559" stroke="#218559" points="536.491,-3486.11 526.398,-3489.33 536.298,-3493.1 536.491,-3486.11"/>
+</g>
+<!-- 9,3 -->
+<g id="node101" class="node"><title>9,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3483" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-3494.17" font-family="Times Roman,serif" font-size="10.00">9,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-3475 730,-3489 775,-3489 775,-3475 730,-3475"/>
+<text text-anchor="start" x="738" y="-3479.67" font-family="Times Roman,serif" font-size="10.00">GATTT</text>
+<polygon fill="#218559" stroke="#218559" points="730,-3461 730,-3475 775,-3475 775,-3461 730,-3461"/>
+<text text-anchor="start" x="736.5" y="-3465.67" font-family="Times Roman,serif" font-size="10.00">AAATC</text>
+</g>
+<!-- 9,2&#45;&gt;9,3 -->
+<g id="edge532" class="edge"><title>9,2&#45;&gt;9,3</title>
+<path fill="none" stroke="#dd1e2f" d="M660.398,-3476.67C672.741,-3476.23 686.377,-3476.14 699.273,-3476.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="699.326,-3479.89 709.417,-3476.67 699.517,-3472.89 699.326,-3479.89"/>
+</g>
+<!-- 8,4 -->
+<g id="node107" class="node"><title>8,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-5024" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="732.5" y="-5035.17" font-family="Times Roman,serif" font-size="10.00">8,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730,-5016 730,-5030 775,-5030 775,-5016 730,-5016"/>
+<text text-anchor="start" x="736.5" y="-5020.67" font-family="Times Roman,serif" font-size="10.00">AAATC</text>
+<polygon fill="#218559" stroke="#218559" points="730,-5002 730,-5016 775,-5016 775,-5002 730,-5002"/>
+<text text-anchor="start" x="738" y="-5006.67" font-family="Times Roman,serif" font-size="10.00">GATTT</text>
+</g>
+<!-- 9,2&#45;&gt;8,4 -->
+<g id="edge534" class="edge"><title>9,2&#45;&gt;8,4</title>
+<path fill="none" stroke="#ebb035" d="M633.898,-3516.5C650.454,-3551.38 674,-3601 674,-3601 674,-3601 686,-3822 686,-3822 686,-3822 696,-4773 696,-4773 696,-4773 725.791,-4906.53 741.915,-4978.8"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="738.502,-4979.57 744.095,-4988.57 745.334,-4978.05 738.502,-4979.57"/>
+</g>
+<!-- 9,3&#45;&gt;9,2 -->
+<g id="edge542" class="edge"><title>9,3&#45;&gt;9,2</title>
+<path fill="none" stroke="#218559" d="M709.417,-3489.33C697.062,-3489.77 683.424,-3489.86 670.535,-3489.61"/>
+<polygon fill="#218559" stroke="#218559" points="670.491,-3486.11 660.398,-3489.33 670.298,-3493.1 670.491,-3486.11"/>
+</g>
+<!-- 9,4 -->
+<g id="node102" class="node"><title>9,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3483" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="866.5" y="-3494.17" font-family="Times Roman,serif" font-size="10.00">9,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="864,-3475 864,-3489 909,-3489 909,-3475 864,-3475"/>
+<text text-anchor="start" x="872.5" y="-3479.67" font-family="Times Roman,serif" font-size="10.00">ATTTC</text>
+<polygon fill="#218559" stroke="#218559" points="864,-3461 864,-3475 909,-3475 909,-3461 864,-3461"/>
+<text text-anchor="start" x="870" y="-3465.67" font-family="Times Roman,serif" font-size="10.00">GAAAT</text>
+</g>
+<!-- 9,3&#45;&gt;9,4 -->
+<g id="edge538" class="edge"><title>9,3&#45;&gt;9,4</title>
+<path fill="none" stroke="#dd1e2f" d="M794.398,-3476.67C806.741,-3476.23 820.377,-3476.14 833.273,-3476.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="833.326,-3479.89 843.417,-3476.67 833.517,-3472.89 833.326,-3479.89"/>
+</g>
+<!-- 10,4 -->
+<g id="node117" class="node"><title>10,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-3035" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-3046.17" font-family="Times Roman,serif" font-size="10.00">10,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-3027 861,-3041 912,-3041 912,-3027 861,-3027"/>
+<text text-anchor="start" x="871" y="-3031.67" font-family="Times Roman,serif" font-size="10.00">AGATT</text>
+<polygon fill="#218559" stroke="#218559" points="861,-3013 861,-3027 912,-3027 912,-3013 861,-3013"/>
+<text text-anchor="start" x="871.5" y="-3017.67" font-family="Times Roman,serif" font-size="10.00">AATCT</text>
+</g>
+<!-- 9,3&#45;&gt;10,4 -->
+<g id="edge540" class="edge"><title>9,3&#45;&gt;10,4</title>
+<path fill="none" stroke="#218559" d="M761.883,-3447.53C777.959,-3389.82 808,-3282 808,-3282 808,-3282 820,-3197 820,-3197 820,-3197 830,-3083 830,-3083 830,-3083 837.283,-3076.76 846.596,-3068.78"/>
+<polygon fill="#218559" stroke="#218559" points="849.085,-3071.25 854.4,-3062.09 844.529,-3065.94 849.085,-3071.25"/>
+</g>
+<!-- 9,4&#45;&gt;9,3 -->
+<g id="edge546" class="edge"><title>9,4&#45;&gt;9,3</title>
+<path fill="none" stroke="#218559" d="M843.417,-3489.33C831.062,-3489.77 817.424,-3489.86 804.535,-3489.61"/>
+<polygon fill="#218559" stroke="#218559" points="804.491,-3486.11 794.398,-3489.33 804.298,-3493.1 804.491,-3486.11"/>
+</g>
+<!-- 8,2 -->
+<g id="node105" class="node"><title>8,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-5024" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="464.5" y="-5035.17" font-family="Times Roman,serif" font-size="10.00">8,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="462,-5016 462,-5030 507,-5030 507,-5016 462,-5016"/>
+<text text-anchor="start" x="467.5" y="-5020.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+<polygon fill="#218559" stroke="#218559" points="462,-5002 462,-5016 507,-5016 507,-5002 462,-5002"/>
+<text text-anchor="start" x="470" y="-5006.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+</g>
+<!-- 9,4&#45;&gt;8,2 -->
+<g id="edge544" class="edge"><title>9,4&#45;&gt;8,2</title>
+<path fill="none" stroke="#ebb035" d="M870.102,-3516.5C853.546,-3551.38 830,-3601 830,-3601 830,-3601 808,-3996 808,-3996 808,-3996 674,-4511 674,-4511 674,-4511 562,-4541 562,-4541 562,-4541 540,-4855 540,-4855 540,-4855 515.396,-4929.25 498.805,-4979.32"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="495.426,-4978.39 495.603,-4988.98 502.071,-4980.59 495.426,-4978.39"/>
+</g>
+<!-- 8,1&#45;&gt;24,1 -->
+<g id="edge102" class="edge"><title>8,1&#45;&gt;24,1</title>
+<path fill="none" stroke="#dd1e2f" d="M382.78,-5047.48C400.328,-5060.06 422.158,-5075.7 441.047,-5089.23"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="439.049,-5092.1 449.217,-5095.08 443.126,-5086.41 439.049,-5092.1"/>
+</g>
+<!-- 8,1&#45;&gt;7,3 -->
+<g id="edge106" class="edge"><title>8,1&#45;&gt;7,3</title>
+<path fill="none" stroke="#06a2cb" d="M356.826,-4988.3C370.078,-4919.01 398,-4773 398,-4773 398,-4773 428,-4551 428,-4551 428,-4551 540,-4511 540,-4511 540,-4511 550,-4259 550,-4259 550,-4259 562,-4248 562,-4248 562,-4248 674,-4162 674,-4162 674,-4162 684,-3800 684,-3800 684,-3800 686,-3800 686,-3800 686,-3800 696,-3996 696,-3996 696,-3996 734.995,-4436.78 747.905,-4582.71"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="744.42,-4583.04 748.788,-4592.69 751.393,-4582.42 744.42,-4583.04"/>
+</g>
+<!-- 8,1&#45;&gt;8,2 -->
+<g id="edge104" class="edge"><title>8,1&#45;&gt;8,2</title>
+<path fill="none" stroke="#dd1e2f" d="M392.398,-5017.67C404.741,-5017.23 418.377,-5017.14 431.273,-5017.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="431.326,-5020.89 441.417,-5017.67 431.517,-5013.89 431.326,-5020.89"/>
+</g>
+<!-- 8,2&#45;&gt;9,4 -->
+<g id="edge110" class="edge"><title>8,2&#45;&gt;9,4</title>
+<path fill="none" stroke="#ebb035" d="M495.845,-4988.99C515.327,-4931.4 552,-4823 552,-4823 552,-4823 562,-4581 562,-4581 562,-4581 674,-4541 674,-4541 674,-4541 696,-4504 696,-4504 696,-4504 820,-4465 820,-4465 820,-4465 830,-3601 830,-3601 830,-3601 849.673,-3559.55 865.699,-3525.78"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="868.977,-3527.03 870.102,-3516.5 862.653,-3524.03 868.977,-3527.03"/>
+</g>
+<!-- 8,2&#45;&gt;8,1 -->
+<g id="edge112" class="edge"><title>8,2&#45;&gt;8,1</title>
+<path fill="none" stroke="#218559" d="M441.417,-5030.33C429.062,-5030.77 415.424,-5030.86 402.535,-5030.61"/>
+<polygon fill="#218559" stroke="#218559" points="402.491,-5027.11 392.398,-5030.33 402.298,-5034.1 402.491,-5027.11"/>
+</g>
+<!-- 8,2&#45;&gt;8,3 -->
+<g id="edge108" class="edge"><title>8,2&#45;&gt;8,3</title>
+<path fill="none" stroke="#dd1e2f" d="M526.398,-5017.67C538.741,-5017.23 552.377,-5017.14 565.273,-5017.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="565.326,-5020.89 575.417,-5017.67 565.517,-5013.89 565.326,-5020.89"/>
+</g>
+<!-- 8,3&#45;&gt;7,1 -->
+<g id="edge116" class="edge"><title>8,3&#45;&gt;7,1</title>
+<path fill="none" stroke="#06a2cb" d="M610.095,-4988.57C594.659,-4919.38 562,-4773 562,-4773 562,-4773 552,-4315 552,-4315 552,-4315 550,-4315 550,-4315 550,-4315 540,-4579 540,-4579 540,-4579 531.629,-4586.47 521.36,-4595.64"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="518.768,-4593.26 513.64,-4602.54 523.43,-4598.49 518.768,-4593.26"/>
+</g>
+<!-- 8,3&#45;&gt;8,2 -->
+<g id="edge120" class="edge"><title>8,3&#45;&gt;8,2</title>
+<path fill="none" stroke="#218559" d="M575.417,-5030.33C563.062,-5030.77 549.424,-5030.86 536.535,-5030.61"/>
+<polygon fill="#218559" stroke="#218559" points="536.491,-5027.11 526.398,-5030.33 536.298,-5034.1 536.491,-5027.11"/>
+</g>
+<!-- 8,3&#45;&gt;8,4 -->
+<g id="edge114" class="edge"><title>8,3&#45;&gt;8,4</title>
+<path fill="none" stroke="#dd1e2f" d="M660.398,-5017.67C672.741,-5017.23 686.377,-5017.14 699.273,-5017.39"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="699.326,-5020.89 709.417,-5017.67 699.517,-5013.89 699.326,-5020.89"/>
+</g>
+<!-- 8,3&#45;&gt;19,4 -->
+<g id="edge118" class="edge"><title>8,3&#45;&gt;19,4</title>
+<path fill="none" stroke="#218559" d="M587.705,-5049.97C574.511,-5061.28 562,-5072 562,-5072 562,-5072 552,-5193 552,-5193 552,-5193 545.818,-5195.09 537.182,-5198.01"/>
+<polygon fill="#218559" stroke="#218559" points="535.802,-5194.78 527.45,-5201.3 538.045,-5201.41 535.802,-5194.78"/>
+</g>
+<!-- 8,4&#45;&gt;9,2 -->
+<g id="edge122" class="edge"><title>8,4&#45;&gt;9,2</title>
+<path fill="none" stroke="#ebb035" d="M744.095,-4988.57C728.659,-4919.38 696,-4773 696,-4773 696,-4773 686,-3557 686,-3557 686,-3557 668.526,-3537.98 651.293,-3519.23"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="653.829,-3516.82 644.485,-3511.82 648.674,-3521.55 653.829,-3516.82"/>
+</g>
+<!-- 8,4&#45;&gt;8,3 -->
+<g id="edge124" class="edge"><title>8,4&#45;&gt;8,3</title>
+<path fill="none" stroke="#218559" d="M709.417,-5030.33C697.062,-5030.77 683.424,-5030.86 670.535,-5030.61"/>
+<polygon fill="#218559" stroke="#218559" points="670.491,-5027.11 660.398,-5030.33 670.298,-5034.1 670.491,-5027.11"/>
+</g>
+<!-- 11,1 -->
+<g id="node109" class="node"><title>11,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">11,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-652 325,-666 376,-666 376,-652 325,-652"/>
+<text text-anchor="start" x="333.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">CTGGC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-638 325,-652 376,-652 376,-638 325,-638"/>
+<text text-anchor="start" x="332.5" y="-642.667" font-family="Times Roman,serif" font-size="10.00">GCCAG</text>
+</g>
+<!-- 11,2 -->
+<g id="node110" class="node"><title>11,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">11,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-652 459,-666 510,-666 510,-652 459,-652"/>
+<text text-anchor="start" x="467.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">TGGCA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-638 459,-652 510,-652 510,-638 459,-638"/>
+<text text-anchor="start" x="467.5" y="-642.667" font-family="Times Roman,serif" font-size="10.00">TGCCA</text>
+</g>
+<!-- 11,1&#45;&gt;11,2 -->
+<g id="edge548" class="edge"><title>11,1&#45;&gt;11,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-653.529C406.501,-653.254 416.748,-653.183 426.703,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-656.817 436.933,-653.523 427.007,-649.819 426.864,-656.817"/>
+</g>
+<!-- 12,2 -->
+<g id="node125" class="node"><title>12,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-564" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-575.167" font-family="Times Roman,serif" font-size="10.00">12,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-556 459,-570 510,-570 510,-556 459,-556"/>
+<text text-anchor="start" x="468.5" y="-560.667" font-family="Times Roman,serif" font-size="10.00">TCTGG</text>
+<polygon fill="#218559" stroke="#218559" points="459,-542 459,-556 510,-556 510,-542 459,-542"/>
+<text text-anchor="start" x="467" y="-546.667" font-family="Times Roman,serif" font-size="10.00">CCAGA</text>
+</g>
+<!-- 11,1&#45;&gt;12,2 -->
+<g id="edge550" class="edge"><title>11,1&#45;&gt;12,2</title>
+<path fill="none" stroke="#218559" d="M387.58,-637.894C403.307,-628.643 418,-620 418,-620 418,-620 430.304,-609.561 444.286,-597.696"/>
+<polygon fill="#218559" stroke="#218559" points="446.799,-600.154 452.16,-591.016 442.27,-594.817 446.799,-600.154"/>
+</g>
+<!-- 11,2&#45;&gt;11,1 -->
+<g id="edge556" class="edge"><title>11,2&#45;&gt;11,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-666.477C427.29,-666.749 417.041,-666.817 407.091,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-663.18 396.867,-666.471 406.792,-670.179 406.937,-663.18"/>
+</g>
+<!-- 11,3 -->
+<g id="node111" class="node"><title>11,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">11,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-652 593,-666 644,-666 644,-652 593,-652"/>
+<text text-anchor="start" x="600.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">GGCAG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-638 593,-652 644,-652 644,-638 593,-638"/>
+<text text-anchor="start" x="601.5" y="-642.667" font-family="Times Roman,serif" font-size="10.00">CTGCC</text>
+</g>
+<!-- 11,2&#45;&gt;11,3 -->
+<g id="edge554" class="edge"><title>11,2&#45;&gt;11,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-653.529C540.501,-653.254 550.748,-653.183 560.703,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-656.817 570.933,-653.523 561.007,-649.819 560.864,-656.817"/>
+</g>
+<!-- 10,1 -->
+<g id="node114" class="node"><title>10,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-3035" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-3046.17" font-family="Times Roman,serif" font-size="10.00">10,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-3027 459,-3041 510,-3041 510,-3027 459,-3027"/>
+<text text-anchor="start" x="466.5" y="-3031.67" font-family="Times Roman,serif" font-size="10.00">GGCAG</text>
+<polygon fill="#218559" stroke="#218559" points="459,-3013 459,-3027 510,-3027 510,-3013 459,-3013"/>
+<text text-anchor="start" x="467.5" y="-3017.67" font-family="Times Roman,serif" font-size="10.00">CTGCC</text>
+</g>
+<!-- 11,2&#45;&gt;10,1 -->
+<g id="edge552" class="edge"><title>11,2&#45;&gt;10,1</title>
+<path fill="none" stroke="#dd1e2f" d="M480.949,-696.137C467.359,-857.109 413,-1501 413,-1501 413,-1501 413,-2875 413,-2875 413,-2875 443.68,-2944.14 464.704,-2991.52"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="461.513,-2992.96 468.769,-3000.68 467.912,-2990.12 461.513,-2992.96"/>
+</g>
+<!-- 11,3&#45;&gt;11,2 -->
+<g id="edge562" class="edge"><title>11,3&#45;&gt;11,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-666.477C561.29,-666.749 551.041,-666.817 541.091,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-663.18 530.867,-666.471 540.792,-670.179 540.937,-663.18"/>
+</g>
+<!-- 11,4 -->
+<g id="node112" class="node"><title>11,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">11,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-652 727,-666 778,-666 778,-652 727,-652"/>
+<text text-anchor="start" x="734.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">GCAGA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-638 727,-652 778,-652 778,-638 727,-638"/>
+<text text-anchor="start" x="737" y="-642.667" font-family="Times Roman,serif" font-size="10.00">TCTGC</text>
+</g>
+<!-- 11,3&#45;&gt;11,4 -->
+<g id="edge558" class="edge"><title>11,3&#45;&gt;11,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-653.529C674.501,-653.254 684.748,-653.183 694.703,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-656.817 704.933,-653.523 695.007,-649.819 694.864,-656.817"/>
+</g>
+<!-- 12,4 -->
+<g id="node127" class="node"><title>12,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-564" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-575.167" font-family="Times Roman,serif" font-size="10.00">12,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-556 727,-570 778,-570 778,-556 727,-556"/>
+<text text-anchor="start" x="735.5" y="-560.667" font-family="Times Roman,serif" font-size="10.00">TGGCA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-542 727,-556 778,-556 778,-542 727,-542"/>
+<text text-anchor="start" x="735.5" y="-546.667" font-family="Times Roman,serif" font-size="10.00">TGCCA</text>
+</g>
+<!-- 11,3&#45;&gt;12,4 -->
+<g id="edge560" class="edge"><title>11,3&#45;&gt;12,4</title>
+<path fill="none" stroke="#218559" d="M655.58,-637.894C671.307,-628.643 686,-620 686,-620 686,-620 698.304,-609.561 712.286,-597.696"/>
+<polygon fill="#218559" stroke="#218559" points="714.799,-600.154 720.16,-591.016 710.27,-594.817 714.799,-600.154"/>
+</g>
+<!-- 11,4&#45;&gt;11,3 -->
+<g id="edge566" class="edge"><title>11,4&#45;&gt;11,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-666.477C695.29,-666.749 685.041,-666.817 675.091,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-663.18 664.867,-666.471 674.792,-670.179 674.937,-663.18"/>
+</g>
+<!-- 10,3 -->
+<g id="node116" class="node"><title>10,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3035" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-3046.17" font-family="Times Roman,serif" font-size="10.00">10,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-3027 727,-3041 778,-3041 778,-3027 727,-3027"/>
+<text text-anchor="start" x="736" y="-3031.67" font-family="Times Roman,serif" font-size="10.00">CAGAT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-3013 727,-3027 778,-3027 778,-3013 727,-3013"/>
+<text text-anchor="start" x="737" y="-3017.67" font-family="Times Roman,serif" font-size="10.00">ATCTG</text>
+</g>
+<!-- 11,4&#45;&gt;10,3 -->
+<g id="edge564" class="edge"><title>11,4&#45;&gt;10,3</title>
+<path fill="none" stroke="#dd1e2f" d="M720.07,-687.164C702.813,-701.845 685,-717 685,-717 685,-717 685,-2875 685,-2875 685,-2875 713.831,-2943.85 733.667,-2991.22"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="730.536,-2992.8 737.627,-3000.68 736.993,-2990.1 730.536,-2992.8"/>
+</g>
+<!-- 10,1&#45;&gt;11,2 -->
+<g id="edge128" class="edge"><title>10,1&#45;&gt;11,2</title>
+<path fill="none" stroke="#218559" d="M468.769,-3000.68C447.907,-2953.66 413,-2875 413,-2875 413,-2875 413,-1501 413,-1501 413,-1501 465.257,-882.016 480.107,-706.113"/>
+<polygon fill="#218559" stroke="#218559" points="483.595,-706.396 480.949,-696.137 476.62,-705.807 483.595,-706.396"/>
+</g>
+<!-- 10,1&#45;&gt;10,2 -->
+<g id="edge126" class="edge"><title>10,1&#45;&gt;10,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-3028.53C540.501,-3028.25 550.748,-3028.18 560.703,-3028.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-3031.82 570.933,-3028.52 561.007,-3024.82 560.864,-3031.82"/>
+</g>
+<!-- 10,2&#45;&gt;9,1 -->
+<g id="edge130" class="edge"><title>10,2&#45;&gt;9,1</title>
+<path fill="none" stroke="#dd1e2f" d="M586.4,-3062.09C573.697,-3072.97 562,-3083 562,-3083 562,-3083 540,-3282 540,-3282 540,-3282 513.155,-3378.35 496.638,-3437.64"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="493.195,-3436.96 493.883,-3447.53 499.938,-3438.83 493.195,-3436.96"/>
+</g>
+<!-- 10,2&#45;&gt;10,1 -->
+<g id="edge134" class="edge"><title>10,2&#45;&gt;10,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-3041.48C561.29,-3041.75 551.041,-3041.82 541.091,-3041.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-3038.18 530.867,-3041.47 540.792,-3045.18 540.937,-3038.18"/>
+</g>
+<!-- 10,2&#45;&gt;10,3 -->
+<g id="edge132" class="edge"><title>10,2&#45;&gt;10,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-3028.53C674.501,-3028.25 684.748,-3028.18 694.703,-3028.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-3031.82 704.933,-3028.52 695.007,-3024.82 694.864,-3031.82"/>
+</g>
+<!-- 10,3&#45;&gt;11,4 -->
+<g id="edge138" class="edge"><title>10,3&#45;&gt;11,4</title>
+<path fill="none" stroke="#218559" d="M737.627,-3000.68C717.94,-2953.66 685,-2875 685,-2875 685,-2875 685,-717 685,-717 685,-717 697.917,-706.011 712.409,-693.682"/>
+<polygon fill="#218559" stroke="#218559" points="714.721,-696.31 720.07,-687.164 710.185,-690.979 714.721,-696.31"/>
+</g>
+<!-- 10,3&#45;&gt;10,2 -->
+<g id="edge140" class="edge"><title>10,3&#45;&gt;10,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-3041.48C695.29,-3041.75 685.041,-3041.82 675.091,-3041.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-3038.18 664.867,-3041.47 674.792,-3045.18 674.937,-3038.18"/>
+</g>
+<!-- 10,3&#45;&gt;10,4 -->
+<g id="edge136" class="edge"><title>10,3&#45;&gt;10,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-3028.53C808.501,-3028.25 818.748,-3028.18 828.703,-3028.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-3031.82 838.933,-3028.52 829.007,-3024.82 828.864,-3031.82"/>
+</g>
+<!-- 10,4&#45;&gt;9,3 -->
+<g id="edge142" class="edge"><title>10,4&#45;&gt;9,3</title>
+<path fill="none" stroke="#dd1e2f" d="M854.4,-3062.09C841.697,-3072.97 830,-3083 830,-3083 830,-3083 808,-3282 808,-3282 808,-3282 781.155,-3378.35 764.638,-3437.64"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="761.195,-3436.96 761.883,-3447.53 767.938,-3438.83 761.195,-3436.96"/>
+</g>
+<!-- 10,4&#45;&gt;10,3 -->
+<g id="edge144" class="edge"><title>10,4&#45;&gt;10,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-3041.48C829.29,-3041.75 819.041,-3041.82 809.091,-3041.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-3038.18 798.867,-3041.47 808.792,-3045.18 808.937,-3038.18"/>
+</g>
+<!-- 13,1 -->
+<g id="node119" class="node"><title>13,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-468" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-479.167" font-family="Times Roman,serif" font-size="10.00">13,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-460 325,-474 376,-474 376,-460 325,-460"/>
+<text text-anchor="start" x="336" y="-464.667" font-family="Times Roman,serif" font-size="10.00">ATCTC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-446 325,-460 376,-460 376,-446 325,-446"/>
+<text text-anchor="start" x="334" y="-450.667" font-family="Times Roman,serif" font-size="10.00">GAGAT</text>
+</g>
+<!-- 13,2 -->
+<g id="node120" class="node"><title>13,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-468" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-479.167" font-family="Times Roman,serif" font-size="10.00">13,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-460 459,-474 510,-474 510,-460 459,-460"/>
+<text text-anchor="start" x="470" y="-464.667" font-family="Times Roman,serif" font-size="10.00">TCTCT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-446 459,-460 510,-460 510,-446 459,-446"/>
+<text text-anchor="start" x="467" y="-450.667" font-family="Times Roman,serif" font-size="10.00">AGAGA</text>
+</g>
+<!-- 13,1&#45;&gt;13,2 -->
+<g id="edge568" class="edge"><title>13,1&#45;&gt;13,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-461.529C406.501,-461.254 416.748,-461.183 426.703,-461.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-464.817 436.933,-461.523 427.007,-457.819 426.864,-464.817"/>
+</g>
+<!-- 14,2 -->
+<g id="node135" class="node"><title>14,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-372" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-383.167" font-family="Times Roman,serif" font-size="10.00">14,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-364 459,-378 510,-378 510,-364 459,-364"/>
+<text text-anchor="start" x="469.5" y="-368.667" font-family="Times Roman,serif" font-size="10.00">CATCT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-350 459,-364 510,-364 510,-350 459,-350"/>
+<text text-anchor="start" x="468" y="-354.667" font-family="Times Roman,serif" font-size="10.00">AGATG</text>
+</g>
+<!-- 13,1&#45;&gt;14,2 -->
+<g id="edge570" class="edge"><title>13,1&#45;&gt;14,2</title>
+<path fill="none" stroke="#218559" d="M387.58,-445.894C403.307,-436.643 418,-428 418,-428 418,-428 430.304,-417.561 444.286,-405.696"/>
+<polygon fill="#218559" stroke="#218559" points="446.799,-408.154 452.16,-399.016 442.27,-402.817 446.799,-408.154"/>
+</g>
+<!-- 13,2&#45;&gt;13,1 -->
+<g id="edge576" class="edge"><title>13,2&#45;&gt;13,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-474.477C427.29,-474.749 417.041,-474.817 407.091,-474.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-471.18 396.867,-474.471 406.792,-478.179 406.937,-471.18"/>
+</g>
+<!-- 13,3 -->
+<g id="node121" class="node"><title>13,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-468" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-479.167" font-family="Times Roman,serif" font-size="10.00">13,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-460 593,-474 644,-474 644,-460 593,-460"/>
+<text text-anchor="start" x="603" y="-464.667" font-family="Times Roman,serif" font-size="10.00">CTCTG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-446 593,-460 644,-460 644,-446 593,-446"/>
+<text text-anchor="start" x="601" y="-450.667" font-family="Times Roman,serif" font-size="10.00">CAGAG</text>
+</g>
+<!-- 13,2&#45;&gt;13,3 -->
+<g id="edge574" class="edge"><title>13,2&#45;&gt;13,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-461.529C540.501,-461.254 550.748,-461.183 560.703,-461.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-464.817 570.933,-461.523 561.007,-457.819 560.864,-464.817"/>
+</g>
+<!-- 12,1 -->
+<g id="node124" class="node"><title>12,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-564" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-575.167" font-family="Times Roman,serif" font-size="10.00">12,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-556 325,-570 376,-570 376,-556 325,-556"/>
+<text text-anchor="start" x="335" y="-560.667" font-family="Times Roman,serif" font-size="10.00">CTCTG</text>
+<polygon fill="#218559" stroke="#218559" points="325,-542 325,-556 376,-556 376,-542 325,-542"/>
+<text text-anchor="start" x="333" y="-546.667" font-family="Times Roman,serif" font-size="10.00">CAGAG</text>
+</g>
+<!-- 13,2&#45;&gt;12,1 -->
+<g id="edge572" class="edge"><title>13,2&#45;&gt;12,1</title>
+<path fill="none" stroke="#dd1e2f" d="M452.16,-495.016C435.283,-509.336 418,-524 418,-524 418,-524 408.3,-529.706 396.227,-536.808"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="394.425,-533.807 387.58,-541.894 397.974,-539.841 394.425,-533.807"/>
+</g>
+<!-- 13,3&#45;&gt;13,2 -->
+<g id="edge582" class="edge"><title>13,3&#45;&gt;13,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-474.477C561.29,-474.749 551.041,-474.817 541.091,-474.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-471.18 530.867,-474.471 540.792,-478.179 540.937,-471.18"/>
+</g>
+<!-- 13,4 -->
+<g id="node122" class="node"><title>13,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-468" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-479.167" font-family="Times Roman,serif" font-size="10.00">13,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-460 727,-474 778,-474 778,-460 727,-460"/>
+<text text-anchor="start" x="736.5" y="-464.667" font-family="Times Roman,serif" font-size="10.00">TCTGG</text>
+<polygon fill="#218559" stroke="#218559" points="727,-446 727,-460 778,-460 778,-446 727,-446"/>
+<text text-anchor="start" x="735" y="-450.667" font-family="Times Roman,serif" font-size="10.00">CCAGA</text>
+</g>
+<!-- 13,3&#45;&gt;13,4 -->
+<g id="edge578" class="edge"><title>13,3&#45;&gt;13,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-461.529C674.501,-461.254 684.748,-461.183 694.703,-461.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-464.817 704.933,-461.523 695.007,-457.819 694.864,-464.817"/>
+</g>
+<!-- 14,4 -->
+<g id="node137" class="node"><title>14,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-372" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-383.167" font-family="Times Roman,serif" font-size="10.00">14,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-364 727,-378 778,-378 778,-364 727,-364"/>
+<text text-anchor="start" x="738" y="-368.667" font-family="Times Roman,serif" font-size="10.00">TCTCT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-350 727,-364 778,-364 778,-350 727,-350"/>
+<text text-anchor="start" x="735" y="-354.667" font-family="Times Roman,serif" font-size="10.00">AGAGA</text>
+</g>
+<!-- 13,3&#45;&gt;14,4 -->
+<g id="edge580" class="edge"><title>13,3&#45;&gt;14,4</title>
+<path fill="none" stroke="#218559" d="M655.58,-445.894C671.307,-436.643 686,-428 686,-428 686,-428 698.304,-417.561 712.286,-405.696"/>
+<polygon fill="#218559" stroke="#218559" points="714.799,-408.154 720.16,-399.016 710.27,-402.817 714.799,-408.154"/>
+</g>
+<!-- 13,4&#45;&gt;13,3 -->
+<g id="edge586" class="edge"><title>13,4&#45;&gt;13,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-474.477C695.29,-474.749 685.041,-474.817 675.091,-474.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-471.18 664.867,-474.471 674.792,-478.179 674.937,-471.18"/>
+</g>
+<!-- 12,3 -->
+<g id="node126" class="node"><title>12,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-564" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-575.167" font-family="Times Roman,serif" font-size="10.00">12,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-556 593,-570 644,-570 644,-556 593,-556"/>
+<text text-anchor="start" x="601.5" y="-560.667" font-family="Times Roman,serif" font-size="10.00">CTGGC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-542 593,-556 644,-556 644,-542 593,-542"/>
+<text text-anchor="start" x="600.5" y="-546.667" font-family="Times Roman,serif" font-size="10.00">GCCAG</text>
+</g>
+<!-- 13,4&#45;&gt;12,3 -->
+<g id="edge584" class="edge"><title>13,4&#45;&gt;12,3</title>
+<path fill="none" stroke="#dd1e2f" d="M720.16,-495.016C703.283,-509.336 686,-524 686,-524 686,-524 676.3,-529.706 664.227,-536.808"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="662.425,-533.807 655.58,-541.894 665.974,-539.841 662.425,-533.807"/>
+</g>
+<!-- 12,1&#45;&gt;13,2 -->
+<g id="edge148" class="edge"><title>12,1&#45;&gt;13,2</title>
+<path fill="none" stroke="#218559" d="M384.857,-539.028C402.072,-526.694 422.998,-511.703 441.18,-498.677"/>
+<polygon fill="#218559" stroke="#218559" points="443.227,-501.516 449.317,-492.847 439.15,-495.826 443.227,-501.516"/>
+</g>
+<!-- 12,1&#45;&gt;12,2 -->
+<g id="edge146" class="edge"><title>12,1&#45;&gt;12,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-557.529C406.501,-557.254 416.748,-557.183 426.703,-557.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-560.817 436.933,-557.523 427.007,-553.819 426.864,-560.817"/>
+</g>
+<!-- 12,2&#45;&gt;11,1 -->
+<g id="edge150" class="edge"><title>12,2&#45;&gt;11,1</title>
+<path fill="none" stroke="#dd1e2f" d="M449.317,-588.847C432.127,-601.162 411.205,-616.152 393.005,-629.191"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="390.948,-626.359 384.857,-635.028 395.025,-632.049 390.948,-626.359"/>
+</g>
+<!-- 12,2&#45;&gt;12,1 -->
+<g id="edge154" class="edge"><title>12,2&#45;&gt;12,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-570.477C427.29,-570.749 417.041,-570.817 407.091,-570.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-567.18 396.867,-570.471 406.792,-574.179 406.937,-567.18"/>
+</g>
+<!-- 12,2&#45;&gt;12,3 -->
+<g id="edge152" class="edge"><title>12,2&#45;&gt;12,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-557.529C540.501,-557.254 550.748,-557.183 560.703,-557.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-560.817 570.933,-557.523 561.007,-553.819 560.864,-560.817"/>
+</g>
+<!-- 12,3&#45;&gt;13,4 -->
+<g id="edge158" class="edge"><title>12,3&#45;&gt;13,4</title>
+<path fill="none" stroke="#218559" d="M652.857,-539.028C670.072,-526.694 690.998,-511.703 709.18,-498.677"/>
+<polygon fill="#218559" stroke="#218559" points="711.227,-501.516 717.317,-492.847 707.15,-495.826 711.227,-501.516"/>
+</g>
+<!-- 12,3&#45;&gt;12,2 -->
+<g id="edge160" class="edge"><title>12,3&#45;&gt;12,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-570.477C561.29,-570.749 551.041,-570.817 541.091,-570.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-567.18 530.867,-570.471 540.792,-574.179 540.937,-567.18"/>
+</g>
+<!-- 12,3&#45;&gt;12,4 -->
+<g id="edge156" class="edge"><title>12,3&#45;&gt;12,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-557.529C674.501,-557.254 684.748,-557.183 694.703,-557.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-560.817 704.933,-557.523 695.007,-553.819 694.864,-560.817"/>
+</g>
+<!-- 12,4&#45;&gt;11,3 -->
+<g id="edge162" class="edge"><title>12,4&#45;&gt;11,3</title>
+<path fill="none" stroke="#dd1e2f" d="M717.317,-588.847C700.127,-601.162 679.205,-616.152 661.005,-629.191"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="658.948,-626.359 652.857,-635.028 663.025,-632.049 658.948,-626.359"/>
+</g>
+<!-- 12,4&#45;&gt;12,3 -->
+<g id="edge164" class="edge"><title>12,4&#45;&gt;12,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-570.477C695.29,-570.749 685.041,-570.817 675.091,-570.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-567.18 664.867,-570.471 674.792,-574.179 674.937,-567.18"/>
+</g>
+<!-- 15,1 -->
+<g id="node129" class="node"><title>15,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-276" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-287.167" font-family="Times Roman,serif" font-size="10.00">15,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-268 325,-282 376,-282 376,-268 325,-268"/>
+<text text-anchor="start" x="332.5" y="-272.667" font-family="Times Roman,serif" font-size="10.00">CGGCA</text>
+<polygon fill="#218559" stroke="#218559" points="325,-254 325,-268 376,-268 376,-254 325,-254"/>
+<text text-anchor="start" x="333.5" y="-258.667" font-family="Times Roman,serif" font-size="10.00">TGCCG</text>
+</g>
+<!-- 15,2 -->
+<g id="node130" class="node"><title>15,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-276" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-287.167" font-family="Times Roman,serif" font-size="10.00">15,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-268 459,-282 510,-282 510,-268 459,-268"/>
+<text text-anchor="start" x="468" y="-272.667" font-family="Times Roman,serif" font-size="10.00">GGCAT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-254 459,-268 510,-268 510,-254 459,-254"/>
+<text text-anchor="start" x="468" y="-258.667" font-family="Times Roman,serif" font-size="10.00">ATGCC</text>
+</g>
+<!-- 15,1&#45;&gt;15,2 -->
+<g id="edge588" class="edge"><title>15,1&#45;&gt;15,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-269.529C406.501,-269.254 416.748,-269.183 426.703,-269.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-272.817 436.933,-269.523 427.007,-265.819 426.864,-272.817"/>
+</g>
+<!-- 16,2 -->
+<g id="node145" class="node"><title>16,2</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-148" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">16,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-140 459,-154 510,-154 510,-140 459,-140"/>
+<text text-anchor="start" x="466.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">ACGGC</text>
+<polygon fill="#218559" stroke="#218559" points="459,-126 459,-140 510,-140 510,-126 459,-126"/>
+<text text-anchor="start" x="467.5" y="-130.667" font-family="Times Roman,serif" font-size="10.00">GCCGT</text>
+</g>
+<!-- 15,1&#45;&gt;16,2 -->
+<g id="edge590" class="edge"><title>15,1&#45;&gt;16,2</title>
+<path fill="none" stroke="#218559" d="M384.398,-250.707C401.265,-238.305 418,-226 418,-226 418,-226 434.96,-205.956 451.686,-186.19"/>
+<polygon fill="#218559" stroke="#218559" points="454.506,-188.275 458.294,-178.38 449.162,-183.753 454.506,-188.275"/>
+</g>
+<!-- 15,2&#45;&gt;15,1 -->
+<g id="edge596" class="edge"><title>15,2&#45;&gt;15,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-282.477C427.29,-282.749 417.041,-282.817 407.091,-282.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-279.18 396.867,-282.471 406.792,-286.179 406.937,-279.18"/>
+</g>
+<!-- 15,3 -->
+<g id="node131" class="node"><title>15,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-276" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-287.167" font-family="Times Roman,serif" font-size="10.00">15,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-268 593,-282 644,-282 644,-268 593,-268"/>
+<text text-anchor="start" x="602.5" y="-272.667" font-family="Times Roman,serif" font-size="10.00">GCATC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-254 593,-268 644,-268 644,-254 593,-254"/>
+<text text-anchor="start" x="602" y="-258.667" font-family="Times Roman,serif" font-size="10.00">GATGC</text>
+</g>
+<!-- 15,2&#45;&gt;15,3 -->
+<g id="edge594" class="edge"><title>15,2&#45;&gt;15,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-269.529C540.501,-269.254 550.748,-269.183 560.703,-269.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-272.817 570.933,-269.523 561.007,-265.819 560.864,-272.817"/>
+</g>
+<!-- 14,1 -->
+<g id="node134" class="node"><title>14,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-372" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-383.167" font-family="Times Roman,serif" font-size="10.00">14,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-364 325,-378 376,-378 376,-364 325,-364"/>
+<text text-anchor="start" x="334.5" y="-368.667" font-family="Times Roman,serif" font-size="10.00">GCATC</text>
+<polygon fill="#218559" stroke="#218559" points="325,-350 325,-364 376,-364 376,-350 325,-350"/>
+<text text-anchor="start" x="334" y="-354.667" font-family="Times Roman,serif" font-size="10.00">GATGC</text>
+</g>
+<!-- 15,2&#45;&gt;14,1 -->
+<g id="edge592" class="edge"><title>15,2&#45;&gt;14,1</title>
+<path fill="none" stroke="#dd1e2f" d="M452.16,-303.016C435.283,-317.336 418,-332 418,-332 418,-332 408.3,-337.706 396.227,-344.808"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="394.425,-341.807 387.58,-349.894 397.974,-347.841 394.425,-341.807"/>
+</g>
+<!-- 15,3&#45;&gt;15,2 -->
+<g id="edge602" class="edge"><title>15,3&#45;&gt;15,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-282.477C561.29,-282.749 551.041,-282.817 541.091,-282.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-279.18 530.867,-282.471 540.792,-286.179 540.937,-279.18"/>
+</g>
+<!-- 15,4 -->
+<g id="node132" class="node"><title>15,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-276" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-287.167" font-family="Times Roman,serif" font-size="10.00">15,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-268 727,-282 778,-282 778,-268 727,-268"/>
+<text text-anchor="start" x="737.5" y="-272.667" font-family="Times Roman,serif" font-size="10.00">CATCT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-254 727,-268 778,-268 778,-254 727,-254"/>
+<text text-anchor="start" x="736" y="-258.667" font-family="Times Roman,serif" font-size="10.00">AGATG</text>
+</g>
+<!-- 15,3&#45;&gt;15,4 -->
+<g id="edge598" class="edge"><title>15,3&#45;&gt;15,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-269.529C674.501,-269.254 684.748,-269.183 694.703,-269.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-272.817 704.933,-269.523 695.007,-265.819 694.864,-272.817"/>
+</g>
+<!-- 16,4 -->
+<g id="node147" class="node"><title>16,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-148" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">16,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-140 727,-154 778,-154 778,-140 727,-140"/>
+<text text-anchor="start" x="736" y="-144.667" font-family="Times Roman,serif" font-size="10.00">GGCAT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-126 727,-140 778,-140 778,-126 727,-126"/>
+<text text-anchor="start" x="736" y="-130.667" font-family="Times Roman,serif" font-size="10.00">ATGCC</text>
+</g>
+<!-- 15,3&#45;&gt;16,4 -->
+<g id="edge600" class="edge"><title>15,3&#45;&gt;16,4</title>
+<path fill="none" stroke="#218559" d="M652.398,-250.707C669.265,-238.305 686,-226 686,-226 686,-226 702.96,-205.956 719.686,-186.19"/>
+<polygon fill="#218559" stroke="#218559" points="722.506,-188.275 726.294,-178.38 717.162,-183.753 722.506,-188.275"/>
+</g>
+<!-- 15,4&#45;&gt;15,3 -->
+<g id="edge606" class="edge"><title>15,4&#45;&gt;15,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-282.477C695.29,-282.749 685.041,-282.817 675.091,-282.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-279.18 664.867,-282.471 674.792,-286.179 674.937,-279.18"/>
+</g>
+<!-- 14,3 -->
+<g id="node136" class="node"><title>14,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-372" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-383.167" font-family="Times Roman,serif" font-size="10.00">14,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-364 593,-378 644,-378 644,-364 593,-364"/>
+<text text-anchor="start" x="604" y="-368.667" font-family="Times Roman,serif" font-size="10.00">ATCTC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-350 593,-364 644,-364 644,-350 593,-350"/>
+<text text-anchor="start" x="602" y="-354.667" font-family="Times Roman,serif" font-size="10.00">GAGAT</text>
+</g>
+<!-- 15,4&#45;&gt;14,3 -->
+<g id="edge604" class="edge"><title>15,4&#45;&gt;14,3</title>
+<path fill="none" stroke="#dd1e2f" d="M720.16,-303.016C703.283,-317.336 686,-332 686,-332 686,-332 676.3,-337.706 664.227,-344.808"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="662.425,-341.807 655.58,-349.894 665.974,-347.841 662.425,-341.807"/>
+</g>
+<!-- 14,1&#45;&gt;15,2 -->
+<g id="edge168" class="edge"><title>14,1&#45;&gt;15,2</title>
+<path fill="none" stroke="#218559" d="M384.857,-347.028C402.072,-334.694 422.998,-319.703 441.18,-306.677"/>
+<polygon fill="#218559" stroke="#218559" points="443.227,-309.516 449.317,-300.847 439.15,-303.826 443.227,-309.516"/>
+</g>
+<!-- 14,1&#45;&gt;14,2 -->
+<g id="edge166" class="edge"><title>14,1&#45;&gt;14,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-365.529C406.501,-365.254 416.748,-365.183 426.703,-365.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-368.817 436.933,-365.523 427.007,-361.819 426.864,-368.817"/>
+</g>
+<!-- 14,2&#45;&gt;13,1 -->
+<g id="edge170" class="edge"><title>14,2&#45;&gt;13,1</title>
+<path fill="none" stroke="#dd1e2f" d="M449.317,-396.847C432.127,-409.162 411.205,-424.152 393.005,-437.191"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="390.948,-434.359 384.857,-443.028 395.025,-440.049 390.948,-434.359"/>
+</g>
+<!-- 14,2&#45;&gt;14,1 -->
+<g id="edge174" class="edge"><title>14,2&#45;&gt;14,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-378.477C427.29,-378.749 417.041,-378.817 407.091,-378.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-375.18 396.867,-378.471 406.792,-382.179 406.937,-375.18"/>
+</g>
+<!-- 14,2&#45;&gt;14,3 -->
+<g id="edge172" class="edge"><title>14,2&#45;&gt;14,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-365.529C540.501,-365.254 550.748,-365.183 560.703,-365.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-368.817 570.933,-365.523 561.007,-361.819 560.864,-368.817"/>
+</g>
+<!-- 14,3&#45;&gt;15,4 -->
+<g id="edge178" class="edge"><title>14,3&#45;&gt;15,4</title>
+<path fill="none" stroke="#218559" d="M652.857,-347.028C670.072,-334.694 690.998,-319.703 709.18,-306.677"/>
+<polygon fill="#218559" stroke="#218559" points="711.227,-309.516 717.317,-300.847 707.15,-303.826 711.227,-309.516"/>
+</g>
+<!-- 14,3&#45;&gt;14,2 -->
+<g id="edge180" class="edge"><title>14,3&#45;&gt;14,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-378.477C561.29,-378.749 551.041,-378.817 541.091,-378.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-375.18 530.867,-378.471 540.792,-382.179 540.937,-375.18"/>
+</g>
+<!-- 14,3&#45;&gt;14,4 -->
+<g id="edge176" class="edge"><title>14,3&#45;&gt;14,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-365.529C674.501,-365.254 684.748,-365.183 694.703,-365.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-368.817 704.933,-365.523 695.007,-361.819 694.864,-368.817"/>
+</g>
+<!-- 14,4&#45;&gt;13,3 -->
+<g id="edge182" class="edge"><title>14,4&#45;&gt;13,3</title>
+<path fill="none" stroke="#dd1e2f" d="M717.317,-396.847C700.127,-409.162 679.205,-424.152 661.005,-437.191"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="658.948,-434.359 652.857,-443.028 663.025,-440.049 658.948,-434.359"/>
+</g>
+<!-- 14,4&#45;&gt;14,3 -->
+<g id="edge184" class="edge"><title>14,4&#45;&gt;14,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-378.477C695.29,-378.749 685.041,-378.817 675.091,-378.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-375.18 664.867,-378.471 674.792,-382.179 674.937,-375.18"/>
+</g>
+<!-- 17,1&#45;&gt;24,1 -->
+<g id="edge614" class="edge"><title>17,1&#45;&gt;24,1</title>
+<path fill="none" stroke="#218559" d="M364.013,-3982.45C378.18,-4017.28 398,-4066 398,-4066 398,-4066 418,-4361 418,-4361 418,-4361 428,-5072 428,-5072 428,-5072 435.283,-5078.24 444.596,-5086.22"/>
+<polygon fill="#218559" stroke="#218559" points="442.529,-5089.06 452.4,-5092.91 447.085,-5083.75 442.529,-5089.06"/>
+</g>
+<!-- 17,1&#45;&gt;23,2 -->
+<g id="edge610" class="edge"><title>17,1&#45;&gt;23,2</title>
+<path fill="none" stroke="#06a2cb" d="M365.308,-3913.67C384.805,-3869.95 416,-3800 416,-3800 416,-3800 418,-3800 418,-3800 418,-3800 428,-4677 428,-4677 428,-4677 435.283,-4683.24 444.596,-4691.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="442.529,-4694.06 452.4,-4697.91 447.085,-4688.75 442.529,-4694.06"/>
+</g>
+<!-- 17,1&#45;&gt;17,2 -->
+<g id="edge608" class="edge"><title>17,1&#45;&gt;17,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-3941.53C406.501,-3941.25 416.748,-3941.18 426.703,-3941.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-3944.82 436.933,-3941.52 427.007,-3937.82 426.864,-3944.82"/>
+</g>
+<!-- 18,3 -->
+<g id="node156" class="node"><title>18,3</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-4463" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-4474.17" font-family="Times Roman,serif" font-size="10.00">18,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-4455 459,-4469 510,-4469 510,-4455 459,-4455"/>
+<text text-anchor="start" x="470" y="-4459.67" font-family="Times Roman,serif" font-size="10.00">TTTCA</text>
+<polygon fill="#218559" stroke="#218559" points="459,-4441 459,-4455 510,-4455 510,-4441 459,-4441"/>
+<text text-anchor="start" x="467.5" y="-4445.67" font-family="Times Roman,serif" font-size="10.00">TGAAA</text>
+</g>
+<!-- 17,1&#45;&gt;18,3 -->
+<g id="edge612" class="edge"><title>17,1&#45;&gt;18,3</title>
+<path fill="none" stroke="#06a2cb" d="M365.188,-3913.83C379.25,-3882.19 398,-3840 398,-3840 398,-3840 416,-3775 416,-3775 416,-3775 418,-3775 418,-3775 418,-3775 428,-4162 428,-4162 428,-4162 459.813,-4333 475.483,-4417.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="472.086,-4418.1 477.356,-4427.29 478.968,-4416.82 472.086,-4418.1"/>
+</g>
+<!-- 17,2&#45;&gt;23,1 -->
+<g id="edge620" class="edge"><title>17,2&#45;&gt;23,1</title>
+<path fill="none" stroke="#06a2cb" d="M453.052,-3975.63C440.1,-3987.2 428,-3998 428,-3998 428,-3998 416,-4190 416,-4190 416,-4190 398,-4511 398,-4511 398,-4511 374.399,-4616.22 360.296,-4679.1"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="356.808,-4678.66 358.034,-4689.18 363.638,-4680.19 356.808,-4678.66"/>
+</g>
+<!-- 17,2&#45;&gt;17,1 -->
+<g id="edge622" class="edge"><title>17,2&#45;&gt;17,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-3954.48C427.29,-3954.75 417.041,-3954.82 407.091,-3954.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-3951.18 396.867,-3954.47 406.792,-3958.18 406.937,-3951.18"/>
+</g>
+<!-- 17,3 -->
+<g id="node141" class="node"><title>17,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-3948" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-3959.17" font-family="Times Roman,serif" font-size="10.00">17,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-3940 593,-3954 644,-3954 644,-3940 593,-3940"/>
+<text text-anchor="start" x="600.5" y="-3944.67" font-family="Times Roman,serif" font-size="10.00">AACGG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-3926 593,-3940 644,-3940 644,-3926 593,-3926"/>
+<text text-anchor="start" x="603" y="-3930.67" font-family="Times Roman,serif" font-size="10.00">CCGTT</text>
+</g>
+<!-- 17,2&#45;&gt;17,3 -->
+<g id="edge618" class="edge"><title>17,2&#45;&gt;17,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-3941.53C540.501,-3941.25 550.748,-3941.18 560.703,-3941.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-3944.82 570.933,-3941.52 561.007,-3937.82 560.864,-3944.82"/>
+</g>
+<!-- 16,1 -->
+<g id="node144" class="node"><title>16,1</title>
+<ellipse fill="none" stroke="black" cx="350" cy="-148" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="327.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">16,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325,-140 325,-154 376,-154 376,-140 325,-140"/>
+<text text-anchor="start" x="332.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">AACGG</text>
+<polygon fill="#218559" stroke="#218559" points="325,-126 325,-140 376,-140 376,-126 325,-126"/>
+<text text-anchor="start" x="335" y="-130.667" font-family="Times Roman,serif" font-size="10.00">CCGTT</text>
+</g>
+<!-- 17,2&#45;&gt;16,1 -->
+<g id="edge616" class="edge"><title>17,2&#45;&gt;16,1</title>
+<path fill="none" stroke="#dd1e2f" d="M476.036,-3912.3C460.575,-3843.01 428,-3697 428,-3697 428,-3697 418,-2372 418,-2372 418,-2372 398,-228 398,-228 398,-228 386.635,-209.059 374.965,-189.609"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="377.947,-187.775 369.801,-181.001 371.944,-191.377 377.947,-187.775"/>
+</g>
+<!-- 17,3&#45;&gt;17,2 -->
+<g id="edge628" class="edge"><title>17,3&#45;&gt;17,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-3954.48C561.29,-3954.75 551.041,-3954.82 541.091,-3954.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-3951.18 530.867,-3954.47 540.792,-3958.18 540.937,-3951.18"/>
+</g>
+<!-- 17,4 -->
+<g id="node142" class="node"><title>17,4</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-3948" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-3959.17" font-family="Times Roman,serif" font-size="10.00">17,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-3940 727,-3954 778,-3954 778,-3940 727,-3940"/>
+<text text-anchor="start" x="734.5" y="-3944.67" font-family="Times Roman,serif" font-size="10.00">ACGGC</text>
+<polygon fill="#218559" stroke="#218559" points="727,-3926 727,-3940 778,-3940 778,-3926 727,-3926"/>
+<text text-anchor="start" x="735.5" y="-3930.67" font-family="Times Roman,serif" font-size="10.00">GCCGT</text>
+</g>
+<!-- 17,3&#45;&gt;17,4 -->
+<g id="edge624" class="edge"><title>17,3&#45;&gt;17,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-3941.53C674.501,-3941.25 684.748,-3941.18 694.703,-3941.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-3944.82 704.933,-3941.52 695.007,-3937.82 694.864,-3944.82"/>
+</g>
+<!-- 17,3&#45;&gt;18,1 -->
+<g id="edge626" class="edge"><title>17,3&#45;&gt;18,1</title>
+<path fill="none" stroke="#06a2cb" d="M610.036,-3912.3C594.575,-3843.01 562,-3697 562,-3697 562,-3697 540,-3435 540,-3435 540,-3435 428,-3435 428,-3435 428,-3435 398,-3669 398,-3669 398,-3669 294,-3903 294,-3903 294,-3903 264,-4162 264,-4162 264,-4162 236.799,-4332.57 223.35,-4416.91"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="219.861,-4416.56 221.742,-4426.99 226.773,-4417.67 219.861,-4416.56"/>
+</g>
+<!-- 17,4&#45;&gt;17,3 -->
+<g id="edge632" class="edge"><title>17,4&#45;&gt;17,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-3954.48C695.29,-3954.75 685.041,-3954.82 675.091,-3954.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-3951.18 664.867,-3954.47 674.792,-3958.18 674.937,-3951.18"/>
+</g>
+<!-- 16,3 -->
+<g id="node146" class="node"><title>16,3</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-148" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">16,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-140 593,-154 644,-154 644,-140 593,-140"/>
+<text text-anchor="start" x="600.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">CGGCA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-126 593,-140 644,-140 644,-126 593,-126"/>
+<text text-anchor="start" x="601.5" y="-130.667" font-family="Times Roman,serif" font-size="10.00">TGCCG</text>
+</g>
+<!-- 17,4&#45;&gt;16,3 -->
+<g id="edge630" class="edge"><title>17,4&#45;&gt;16,3</title>
+<path fill="none" stroke="#dd1e2f" d="M744.036,-3912.3C728.575,-3843.01 696,-3697 696,-3697 696,-3697 686,-1855 686,-1855 686,-1855 674,-228 674,-228 674,-228 660.245,-208.35 646.369,-188.527"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="649.057,-186.263 640.455,-180.078 643.322,-190.278 649.057,-186.263"/>
+</g>
+<!-- 16,1&#45;&gt;17,2 -->
+<g id="edge188" class="edge"><title>16,1&#45;&gt;17,2</title>
+<path fill="none" stroke="#218559" d="M369.801,-181.001C383.023,-203.038 398,-228 398,-228 398,-228 428,-3697 428,-3697 428,-3697 457.714,-3830.18 473.853,-3902.52"/>
+<polygon fill="#218559" stroke="#218559" points="470.442,-3903.31 476.036,-3912.3 477.274,-3901.78 470.442,-3903.31"/>
+</g>
+<!-- 16,1&#45;&gt;16,2 -->
+<g id="edge186" class="edge"><title>16,1&#45;&gt;16,2</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-141.529C406.501,-141.254 416.748,-141.183 426.703,-141.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-144.817 436.933,-141.523 427.007,-137.819 426.864,-144.817"/>
+</g>
+<!-- 16,2&#45;&gt;15,1 -->
+<g id="edge190" class="edge"><title>16,2&#45;&gt;15,1</title>
+<path fill="none" stroke="#dd1e2f" d="M454.344,-176.328C434.498,-195.285 408.229,-220.378 387.013,-240.644"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="384.553,-238.154 379.739,-247.593 389.388,-243.216 384.553,-238.154"/>
+</g>
+<!-- 16,2&#45;&gt;16,1 -->
+<g id="edge194" class="edge"><title>16,2&#45;&gt;16,1</title>
+<path fill="none" stroke="#218559" d="M436.933,-154.477C427.29,-154.749 417.041,-154.817 407.091,-154.684"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-151.18 396.867,-154.471 406.792,-158.179 406.937,-151.18"/>
+</g>
+<!-- 16,2&#45;&gt;16,3 -->
+<g id="edge192" class="edge"><title>16,2&#45;&gt;16,3</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-141.529C540.501,-141.254 550.748,-141.183 560.703,-141.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-144.817 570.933,-141.523 561.007,-137.819 560.864,-144.817"/>
+</g>
+<!-- 16,3&#45;&gt;17,4 -->
+<g id="edge198" class="edge"><title>16,3&#45;&gt;17,4</title>
+<path fill="none" stroke="#218559" d="M640.455,-180.078C656.034,-202.335 674,-228 674,-228 674,-228 696,-3697 696,-3697 696,-3697 725.714,-3830.18 741.853,-3902.52"/>
+<polygon fill="#218559" stroke="#218559" points="738.442,-3903.31 744.036,-3912.3 745.274,-3901.78 738.442,-3903.31"/>
+</g>
+<!-- 16,3&#45;&gt;16,2 -->
+<g id="edge200" class="edge"><title>16,3&#45;&gt;16,2</title>
+<path fill="none" stroke="#218559" d="M570.933,-154.477C561.29,-154.749 551.041,-154.817 541.091,-154.684"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-151.18 530.867,-154.471 540.792,-158.179 540.937,-151.18"/>
+</g>
+<!-- 16,3&#45;&gt;16,4 -->
+<g id="edge196" class="edge"><title>16,3&#45;&gt;16,4</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-141.529C674.501,-141.254 684.748,-141.183 694.703,-141.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-144.817 704.933,-141.523 695.007,-137.819 694.864,-144.817"/>
+</g>
+<!-- 16,4&#45;&gt;15,3 -->
+<g id="edge202" class="edge"><title>16,4&#45;&gt;15,3</title>
+<path fill="none" stroke="#dd1e2f" d="M722.344,-176.328C702.498,-195.285 676.229,-220.378 655.013,-240.644"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="652.553,-238.154 647.739,-247.593 657.388,-243.216 652.553,-238.154"/>
+</g>
+<!-- 16,4&#45;&gt;16,3 -->
+<g id="edge204" class="edge"><title>16,4&#45;&gt;16,3</title>
+<path fill="none" stroke="#218559" d="M704.933,-154.477C695.29,-154.749 685.041,-154.817 675.091,-154.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-151.18 664.867,-154.471 674.792,-158.179 674.937,-151.18"/>
+</g>
+<!-- 19,1&#45;&gt;20,3 -->
+<g id="edge636" class="edge"><title>19,1&#45;&gt;20,3</title>
+<path fill="none" stroke="#06a2cb" d="M71.2944,-5180.29C93.6974,-5070.61 160,-4746 160,-4746 160,-4746 294,-4541 294,-4541 294,-4541 398,-4511 398,-4511 398,-4511 451.557,-4263.76 474.142,-4159.51"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="477.596,-4160.09 476.292,-4149.58 470.755,-4158.61 477.596,-4160.09"/>
+</g>
+<!-- 19,2 -->
+<g id="node150" class="node"><title>19,2</title>
+<ellipse fill="none" stroke="black" cx="216" cy="-5216" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="193.5" y="-5227.17" font-family="Times Roman,serif" font-size="10.00">19,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="191,-5208 191,-5222 242,-5222 242,-5208 191,-5208"/>
+<text text-anchor="start" x="201" y="-5212.67" font-family="Times Roman,serif" font-size="10.00">ATTGA</text>
+<polygon fill="#218559" stroke="#218559" points="191,-5194 191,-5208 242,-5208 242,-5194 191,-5194"/>
+<text text-anchor="start" x="201.5" y="-5198.67" font-family="Times Roman,serif" font-size="10.00">TCAAT</text>
+</g>
+<!-- 19,1&#45;&gt;19,2 -->
+<g id="edge634" class="edge"><title>19,1&#45;&gt;19,2</title>
+<path fill="none" stroke="#dd1e2f" d="M110.845,-5209.71C126.015,-5209.21 143.011,-5209.12 158.843,-5209.44"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="158.958,-5212.94 169.048,-5209.71 159.144,-5205.94 158.958,-5212.94"/>
+</g>
+<!-- 19,2&#45;&gt;19,1 -->
+<g id="edge642" class="edge"><title>19,2&#45;&gt;19,1</title>
+<path fill="none" stroke="#218559" d="M169.048,-5222.29C153.87,-5222.79 136.872,-5222.88 121.045,-5222.56"/>
+<polygon fill="#218559" stroke="#218559" points="120.935,-5219.06 110.845,-5222.29 120.748,-5226.05 120.935,-5219.06"/>
+</g>
+<!-- 19,2&#45;&gt;19,3 -->
+<g id="edge638" class="edge"><title>19,2&#45;&gt;19,3</title>
+<path fill="none" stroke="#dd1e2f" d="M262.867,-5209.53C272.501,-5209.25 282.748,-5209.18 292.703,-5209.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="292.864,-5212.82 302.933,-5209.52 293.007,-5205.82 292.864,-5212.82"/>
+</g>
+<!-- 19,2&#45;&gt;18,4 -->
+<g id="edge640" class="edge"><title>19,2&#45;&gt;18,4</title>
+<path fill="none" stroke="#ebb035" d="M227.425,-5180.84C249.091,-5114.18 294,-4976 294,-4976 294,-4976 540,-4801 540,-4801 540,-4801 562,-4513 562,-4513 562,-4513 569.684,-4506.14 579.359,-4497.5"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="581.923,-4499.9 587.052,-4490.63 577.261,-4494.68 581.923,-4499.9"/>
+</g>
+<!-- 19,3&#45;&gt;24,1 -->
+<g id="edge644" class="edge"><title>19,3&#45;&gt;24,1</title>
+<path fill="none" stroke="#dd1e2f" d="M383,-5190C399.5,-5177 416,-5164 416,-5164 416,-5164 426.392,-5157.28 439.051,-5149.08"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="441.117,-5151.92 447.611,-5143.55 437.314,-5146.04 441.117,-5151.92"/>
+</g>
+<!-- 19,3&#45;&gt;20,1 -->
+<g id="edge648" class="edge"><title>19,3&#45;&gt;20,1</title>
+<path fill="none" stroke="#06a2cb" d="M336.444,-5181.14C319.871,-5138.52 294,-5072 294,-5072 294,-5072 264,-4415 264,-4415 264,-4415 236.799,-4244.43 223.35,-4160.09"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="226.773,-4159.33 221.742,-4150.01 219.861,-4160.44 226.773,-4159.33"/>
+</g>
+<!-- 19,3&#45;&gt;19,2 -->
+<g id="edge650" class="edge"><title>19,3&#45;&gt;19,2</title>
+<path fill="none" stroke="#218559" d="M302.933,-5222.48C293.29,-5222.75 283.041,-5222.82 273.091,-5222.68"/>
+<polygon fill="#218559" stroke="#218559" points="272.937,-5219.18 262.867,-5222.47 272.792,-5226.18 272.937,-5219.18"/>
+</g>
+<!-- 19,3&#45;&gt;19,4 -->
+<g id="edge646" class="edge"><title>19,3&#45;&gt;19,4</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-5209.53C406.501,-5209.25 416.748,-5209.18 426.703,-5209.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-5212.82 436.933,-5209.52 427.007,-5205.82 426.864,-5212.82"/>
+</g>
+<!-- 19,4&#45;&gt;24,2 -->
+<g id="edge654" class="edge"><title>19,4&#45;&gt;24,2</title>
+<path fill="none" stroke="#dd1e2f" d="M531.615,-5217.44C542.023,-5217.76 550,-5218 550,-5218 550,-5218 552,-5218 552,-5218 552,-5218 572.47,-5187.6 590.61,-5160.67"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593.706,-5162.34 596.389,-5152.09 587.9,-5158.43 593.706,-5162.34"/>
+</g>
+<!-- 19,4&#45;&gt;23,1 -->
+<g id="edge658" class="edge"><title>19,4&#45;&gt;23,1</title>
+<path fill="none" stroke="#ebb035" d="M452.4,-5188.91C439.697,-5178.03 428,-5168 428,-5168 428,-5168 398,-4976 398,-4976 398,-4976 372.635,-4843.36 358.782,-4770.92"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="362.142,-4769.86 356.826,-4760.7 355.267,-4771.18 362.142,-4769.86"/>
+</g>
+<!-- 19,4&#45;&gt;8,3 -->
+<g id="edge652" class="edge"><title>19,4&#45;&gt;8,3</title>
+<path fill="none" stroke="#dd1e2f" d="M515.6,-5188.91C528.303,-5178.03 540,-5168 540,-5168 540,-5168 562,-5072 562,-5072 562,-5072 569.944,-5065.19 579.849,-5056.7"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="582.391,-5059.13 587.705,-5049.97 577.835,-5053.82 582.391,-5059.13"/>
+</g>
+<!-- 19,4&#45;&gt;19,3 -->
+<g id="edge660" class="edge"><title>19,4&#45;&gt;19,3</title>
+<path fill="none" stroke="#218559" d="M436.933,-5222.48C427.29,-5222.75 417.041,-5222.82 407.091,-5222.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-5219.18 396.867,-5222.47 406.792,-5226.18 406.937,-5219.18"/>
+</g>
+<!-- 19,4&#45;&gt;18,2 -->
+<g id="edge656" class="edge"><title>19,4&#45;&gt;18,2</title>
+<path fill="none" stroke="#ebb035" d="M452.4,-5188.91C439.697,-5178.03 428,-5168 428,-5168 428,-5168 398,-4677 398,-4677 398,-4677 374.399,-4571.78 360.296,-4508.9"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="363.638,-4507.81 358.034,-4498.82 356.808,-4509.34 363.638,-4507.81"/>
+</g>
+<!-- 18,1&#45;&gt;23,1 -->
+<g id="edge206" class="edge"><title>18,1&#45;&gt;23,1</title>
+<path fill="none" stroke="#dd1e2f" d="M233.244,-4496.72C257.516,-4544.17 301.748,-4630.66 328.249,-4682.47"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="325.153,-4684.1 332.822,-4691.41 331.385,-4680.92 325.153,-4684.1"/>
+</g>
+<!-- 18,1&#45;&gt;17,3 -->
+<g id="edge210" class="edge"><title>18,1&#45;&gt;17,3</title>
+<path fill="none" stroke="#06a2cb" d="M221.742,-4426.99C234.483,-4347.1 264,-4162 264,-4162 264,-4162 294,-3812 294,-3812 294,-3812 428,-3405 428,-3405 428,-3405 552,-3405 552,-3405 552,-3405 562,-3697 562,-3697 562,-3697 591.714,-3830.18 607.853,-3902.52"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="604.442,-3903.31 610.036,-3912.3 611.274,-3901.78 604.442,-3903.31"/>
+</g>
+<!-- 18,1&#45;&gt;18,2 -->
+<g id="edge208" class="edge"><title>18,1&#45;&gt;18,2</title>
+<path fill="none" stroke="#dd1e2f" d="M262.867,-4456.53C272.501,-4456.25 282.748,-4456.18 292.703,-4456.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="292.864,-4459.82 302.933,-4456.52 293.007,-4452.82 292.864,-4459.82"/>
+</g>
+<!-- 18,2&#45;&gt;7,1 -->
+<g id="edge212" class="edge"><title>18,2&#45;&gt;7,1</title>
+<path fill="none" stroke="#dd1e2f" d="M368.035,-4429.39C387.576,-4392.97 416,-4340 416,-4340 416,-4340 418,-4340 418,-4340 418,-4340 428,-4511 428,-4511 428,-4511 447.673,-4552.45 463.699,-4586.22"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="460.653,-4587.97 468.102,-4595.5 466.977,-4584.97 460.653,-4587.97"/>
+</g>
+<!-- 18,2&#45;&gt;19,4 -->
+<g id="edge216" class="edge"><title>18,2&#45;&gt;19,4</title>
+<path fill="none" stroke="#ebb035" d="M371.611,-4430.91C390.859,-4402.33 416,-4365 416,-4365 416,-4365 418,-4365 418,-4365 418,-4365 428,-5168 428,-5168 428,-5168 435.283,-5174.24 444.596,-5182.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="442.529,-5185.06 452.4,-5188.91 447.085,-5179.75 442.529,-5185.06"/>
+</g>
+<!-- 18,2&#45;&gt;18,1 -->
+<g id="edge218" class="edge"><title>18,2&#45;&gt;18,1</title>
+<path fill="none" stroke="#218559" d="M302.933,-4469.48C293.29,-4469.75 283.041,-4469.82 273.091,-4469.68"/>
+<polygon fill="#218559" stroke="#218559" points="272.937,-4466.18 262.867,-4469.47 272.792,-4473.18 272.937,-4466.18"/>
+</g>
+<!-- 18,2&#45;&gt;18,3 -->
+<g id="edge214" class="edge"><title>18,2&#45;&gt;18,3</title>
+<path fill="none" stroke="#dd1e2f" d="M396.867,-4456.53C406.501,-4456.25 416.748,-4456.18 426.703,-4456.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="426.864,-4459.82 436.933,-4456.52 427.007,-4452.82 426.864,-4459.82"/>
+</g>
+<!-- 18,3&#45;&gt;17,1 -->
+<g id="edge222" class="edge"><title>18,3&#45;&gt;17,1</title>
+<path fill="none" stroke="#06a2cb" d="M477.356,-4427.29C462.522,-4347.56 428,-4162 428,-4162 428,-4162 418,-3750 418,-3750 418,-3750 416,-3750 416,-3750 416,-3750 398,-3840 398,-3840 398,-3840 382.733,-3874.35 369.42,-3904.31"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="366.051,-3903.27 365.188,-3913.83 372.447,-3906.11 366.051,-3903.27"/>
+</g>
+<!-- 18,3&#45;&gt;18,2 -->
+<g id="edge224" class="edge"><title>18,3&#45;&gt;18,2</title>
+<path fill="none" stroke="#218559" d="M436.933,-4469.48C427.29,-4469.75 417.041,-4469.82 407.091,-4469.68"/>
+<polygon fill="#218559" stroke="#218559" points="406.937,-4466.18 396.867,-4469.47 406.792,-4473.18 406.937,-4466.18"/>
+</g>
+<!-- 18,3&#45;&gt;18,4 -->
+<g id="edge220" class="edge"><title>18,3&#45;&gt;18,4</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-4456.53C540.501,-4456.25 550.748,-4456.18 560.703,-4456.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-4459.82 570.933,-4456.52 561.007,-4452.82 560.864,-4459.82"/>
+</g>
+<!-- 18,4&#45;&gt;24,1 -->
+<g id="edge228" class="edge"><title>18,4&#45;&gt;24,1</title>
+<path fill="none" stroke="#06a2cb" d="M601.802,-4497.13C585.264,-4531.98 562,-4581 562,-4581 562,-4581 550,-4848 550,-4848 550,-4848 540,-5072 540,-5072 540,-5072 532.717,-5078.24 523.404,-5086.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="520.915,-5083.75 515.6,-5092.91 525.471,-5089.06 520.915,-5083.75"/>
+</g>
+<!-- 18,4&#45;&gt;19,2 -->
+<g id="edge226" class="edge"><title>18,4&#45;&gt;19,2</title>
+<path fill="none" stroke="#ebb035" d="M587.052,-4490.63C574.1,-4502.2 562,-4513 562,-4513 562,-4513 550,-4556 550,-4556 550,-4556 540,-4773 540,-4773 540,-4773 282,-4836 282,-4836 282,-4836 241.471,-5069.35 223.932,-5170.33"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="220.472,-5169.8 222.209,-5180.25 227.369,-5171 220.472,-5169.8"/>
+</g>
+<!-- 18,4&#45;&gt;18,3 -->
+<g id="edge230" class="edge"><title>18,4&#45;&gt;18,3</title>
+<path fill="none" stroke="#218559" d="M570.933,-4469.48C561.29,-4469.75 551.041,-4469.82 541.091,-4469.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-4466.18 530.867,-4469.47 540.792,-4473.18 540.937,-4466.18"/>
+</g>
+<!-- 31,1 -->
+<g id="node159" class="node"><title>31,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1732" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1743.17" font-family="Times Roman,serif" font-size="10.00">31,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1724 593,-1738 644,-1738 644,-1724 593,-1724"/>
+<text text-anchor="start" x="602" y="-1728.67" font-family="Times Roman,serif" font-size="10.00">GCGTC</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1710 593,-1724 644,-1724 644,-1710 593,-1710"/>
+<text text-anchor="start" x="600.5" y="-1714.67" font-family="Times Roman,serif" font-size="10.00">GACGC</text>
+</g>
+<!-- 31,2 -->
+<g id="node160" class="node"><title>31,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1732" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1743.17" font-family="Times Roman,serif" font-size="10.00">31,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1724 727,-1738 778,-1738 778,-1724 727,-1724"/>
+<text text-anchor="start" x="736" y="-1728.67" font-family="Times Roman,serif" font-size="10.00">CGTCA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1710 727,-1724 778,-1724 778,-1710 727,-1710"/>
+<text text-anchor="start" x="735.5" y="-1714.67" font-family="Times Roman,serif" font-size="10.00">TGACG</text>
+</g>
+<!-- 31,1&#45;&gt;31,2 -->
+<g id="edge786" class="edge"><title>31,1&#45;&gt;31,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1725.53C674.501,-1725.25 684.748,-1725.18 694.703,-1725.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1728.82 704.933,-1725.52 695.007,-1721.82 694.864,-1728.82"/>
+</g>
+<!-- 32,2 -->
+<g id="node195" class="node"><title>32,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1974" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1985.17" font-family="Times Roman,serif" font-size="10.00">32,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1966 727,-1980 778,-1980 778,-1966 727,-1966"/>
+<text text-anchor="start" x="735.5" y="-1970.67" font-family="Times Roman,serif" font-size="10.00">AGCGT</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1952 727,-1966 778,-1966 778,-1952 727,-1952"/>
+<text text-anchor="start" x="736" y="-1956.67" font-family="Times Roman,serif" font-size="10.00">ACGCT</text>
+</g>
+<!-- 31,1&#45;&gt;32,2 -->
+<g id="edge788" class="edge"><title>31,1&#45;&gt;32,2</title>
+<path fill="none" stroke="#218559" d="M636.491,-1765.39C660.503,-1808.76 702.432,-1884.48 728.624,-1931.78"/>
+<polygon fill="#218559" stroke="#218559" points="725.577,-1933.51 733.483,-1940.56 731.701,-1930.12 725.577,-1933.51"/>
+</g>
+<!-- 31,2&#45;&gt;31,1 -->
+<g id="edge796" class="edge"><title>31,2&#45;&gt;31,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-1738.48C695.29,-1738.75 685.041,-1738.82 675.091,-1738.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1735.18 664.867,-1738.47 674.792,-1742.18 674.937,-1735.18"/>
+</g>
+<!-- 31,2&#45;&gt;31,3 -->
+<g id="edge792" class="edge"><title>31,2&#45;&gt;31,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1725.53C808.501,-1725.25 818.748,-1725.18 828.703,-1725.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1728.82 838.933,-1725.52 829.007,-1721.82 828.864,-1728.82"/>
+</g>
+<!-- 31,2&#45;&gt;30,1 -->
+<g id="edge790" class="edge"><title>31,2&#45;&gt;30,1</title>
+<path fill="none" stroke="#dd1e2f" d="M740.329,-1767.36C721.134,-1825.52 685,-1935 685,-1935 685,-1935 685,-2013 685,-2013 685,-2013 709.962,-2060.32 729.413,-2097.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="726.459,-2099.09 734.221,-2106.3 732.651,-2095.82 726.459,-2099.09"/>
+</g>
+<!-- 31,2&#45;&gt;30,4 -->
+<g id="edge794" class="edge"><title>31,2&#45;&gt;30,4</title>
+<path fill="none" stroke="#ebb035" d="M783.6,-1704.91C796.303,-1694.03 808,-1684 808,-1684 808,-1684 820,-1354 820,-1354 820,-1354 830,-1026 830,-1026 830,-1026 1076,-1026 1076,-1026 1076,-1026 1106,-1492 1106,-1492 1106,-1492 1139.58,-1945.29 1150.57,-2093.63"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1147.09,-2094.06 1151.32,-2103.77 1154.07,-2093.54 1147.09,-2094.06"/>
+</g>
+<!-- 31,3&#45;&gt;28,4 -->
+<g id="edge802" class="edge"><title>31,3&#45;&gt;28,4</title>
+<path fill="none" stroke="#218559" d="M896.271,-1767.58C912.438,-1823.59 942,-1926 942,-1926 942,-1926 964,-2546 964,-2546 964,-2546 990.308,-2637.14 1006.86,-2694.48"/>
+<polygon fill="#218559" stroke="#218559" points="1003.59,-2695.78 1009.73,-2704.42 1010.32,-2693.84 1003.59,-2695.78"/>
+</g>
+<!-- 31,3&#45;&gt;31,2 -->
+<g id="edge804" class="edge"><title>31,3&#45;&gt;31,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-1738.48C829.29,-1738.75 819.041,-1738.82 809.091,-1738.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1735.18 798.867,-1738.47 808.792,-1742.18 808.937,-1735.18"/>
+</g>
+<!-- 31,4 -->
+<g id="node162" class="node"><title>31,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1732" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-1743.17" font-family="Times Roman,serif" font-size="10.00">31,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-1724 995,-1738 1046,-1738 1046,-1724 995,-1724"/>
+<text text-anchor="start" x="1005" y="-1728.67" font-family="Times Roman,serif" font-size="10.00">TCATG</text>
+<polygon fill="#218559" stroke="#218559" points="995,-1710 995,-1724 1046,-1724 1046,-1710 995,-1710"/>
+<text text-anchor="start" x="1004" y="-1714.67" font-family="Times Roman,serif" font-size="10.00">CATGA</text>
+</g>
+<!-- 31,3&#45;&gt;31,4 -->
+<g id="edge798" class="edge"><title>31,3&#45;&gt;31,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-1725.53C942.501,-1725.25 952.748,-1725.18 962.703,-1725.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-1728.82 972.933,-1725.52 963.007,-1721.82 962.864,-1728.82"/>
+</g>
+<!-- 31,3&#45;&gt;32,4 -->
+<g id="edge800" class="edge"><title>31,3&#45;&gt;32,4</title>
+<path fill="none" stroke="#218559" d="M917.6,-1704.91C930.303,-1694.03 942,-1684 942,-1684 942,-1684 952,-1293 952,-1293 952,-1293 954,-1293 954,-1293 954,-1293 964,-1780 964,-1780 964,-1780 990.308,-1871.14 1006.86,-1928.48"/>
+<polygon fill="#218559" stroke="#218559" points="1003.59,-1929.78 1009.73,-1938.42 1010.32,-1927.84 1003.59,-1929.78"/>
+</g>
+<!-- 31,4&#45;&gt;31,3 -->
+<g id="edge810" class="edge"><title>31,4&#45;&gt;31,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-1738.48C963.29,-1738.75 953.041,-1738.82 943.091,-1738.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-1735.18 932.867,-1738.47 942.792,-1742.18 942.937,-1735.18"/>
+</g>
+<!-- 31,4&#45;&gt;30,2 -->
+<g id="edge808" class="edge"><title>31,4&#45;&gt;30,2</title>
+<path fill="none" stroke="#ebb035" d="M1009.73,-1767.58C993.562,-1823.59 964,-1926 964,-1926 964,-1926 942,-2022 942,-2022 942,-2022 922.563,-2062.96 906.591,-2096.61"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="903.323,-2095.33 902.198,-2105.87 909.647,-2098.34 903.323,-2095.33"/>
+</g>
+<!-- 31,4&#45;&gt;30,3 -->
+<g id="edge806" class="edge"><title>31,4&#45;&gt;30,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1008.33,-1767.36C989.134,-1825.52 953,-1935 953,-1935 953,-1935 953,-2013 953,-2013 953,-2013 977.962,-2060.32 997.413,-2097.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="994.459,-2099.09 1002.22,-2106.3 1000.65,-2095.82 994.459,-2099.09"/>
+</g>
+<!-- 30,1&#45;&gt;29,3 -->
+<g id="edge358" class="edge"><title>30,1&#45;&gt;29,3</title>
+<path fill="none" stroke="#06a2cb" d="M782.948,-2112.37C795.9,-2100.8 808,-2090 808,-2090 808,-2090 818,-1896 818,-1896 818,-1896 942,-1848 942,-1848 942,-1848 952,-1368 952,-1368 952,-1368 954,-1368 954,-1368 954,-1368 964,-2188 964,-2188 964,-2188 983.437,-2228.96 999.409,-2262.61"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="996.353,-2264.34 1003.8,-2271.87 1002.68,-2261.33 996.353,-2264.34"/>
+</g>
+<!-- 30,1&#45;&gt;31,2 -->
+<g id="edge360" class="edge"><title>30,1&#45;&gt;31,2</title>
+<path fill="none" stroke="#218559" d="M734.221,-2106.3C714.372,-2068.68 685,-2013 685,-2013 685,-2013 685,-1935 685,-1935 685,-1935 717.423,-1836.76 737.159,-1776.97"/>
+<polygon fill="#218559" stroke="#218559" points="740.519,-1777.95 740.329,-1767.36 733.872,-1775.76 740.519,-1777.95"/>
+</g>
+<!-- 30,1&#45;&gt;30,2 -->
+<g id="edge356" class="edge"><title>30,1&#45;&gt;30,2</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-2133.53C808.501,-2133.25 818.748,-2133.18 828.703,-2133.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-2136.82 838.933,-2133.52 829.007,-2129.82 828.864,-2136.82"/>
+</g>
+<!-- 30,2&#45;&gt;29,1 -->
+<g id="edge362" class="edge"><title>30,2&#45;&gt;29,1</title>
+<path fill="none" stroke="#dd1e2f" d="M861.016,-2170.95C839.056,-2198.15 807,-2237.87 783.329,-2267.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="780.448,-2265.19 776.89,-2275.17 785.895,-2269.58 780.448,-2265.19"/>
+</g>
+<!-- 30,2&#45;&gt;31,4 -->
+<g id="edge366" class="edge"><title>30,2&#45;&gt;31,4</title>
+<path fill="none" stroke="#ebb035" d="M902.198,-2105.87C918.736,-2071.02 942,-2022 942,-2022 942,-2022 952,-1898 952,-1898 952,-1898 981.876,-1825.07 1002.02,-1775.89"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1005.36,-1776.98 1005.91,-1766.4 998.881,-1774.32 1005.36,-1776.98"/>
+</g>
+<!-- 30,2&#45;&gt;30,1 -->
+<g id="edge368" class="edge"><title>30,2&#45;&gt;30,1</title>
+<path fill="none" stroke="#218559" d="M838.933,-2146.48C829.29,-2146.75 819.041,-2146.82 809.091,-2146.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-2143.18 798.867,-2146.47 808.792,-2150.18 808.937,-2143.18"/>
+</g>
+<!-- 30,2&#45;&gt;30,3 -->
+<g id="edge364" class="edge"><title>30,2&#45;&gt;30,3</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-2133.53C942.501,-2133.25 952.748,-2133.18 962.703,-2133.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-2136.82 972.933,-2133.52 963.007,-2129.82 962.864,-2136.82"/>
+</g>
+<!-- 30,3&#45;&gt;29,1 -->
+<g id="edge372" class="edge"><title>30,3&#45;&gt;29,1</title>
+<path fill="none" stroke="#06a2cb" d="M1003.8,-2105.87C987.264,-2071.02 964,-2022 964,-2022 964,-2022 954,-1876 954,-1876 954,-1876 952,-1876 952,-1876 952,-1876 942,-2022 942,-2022 942,-2022 830,-2062 830,-2062 830,-2062 808,-2188 808,-2188 808,-2188 788.563,-2228.96 772.591,-2262.61"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="769.323,-2261.33 768.198,-2271.87 775.647,-2264.34 769.323,-2261.33"/>
+</g>
+<!-- 30,3&#45;&gt;31,4 -->
+<g id="edge374" class="edge"><title>30,3&#45;&gt;31,4</title>
+<path fill="none" stroke="#218559" d="M1002.22,-2106.3C982.372,-2068.68 953,-2013 953,-2013 953,-2013 953,-1935 953,-1935 953,-1935 985.423,-1836.76 1005.16,-1776.97"/>
+<polygon fill="#218559" stroke="#218559" points="1008.52,-1777.95 1008.33,-1767.36 1001.87,-1775.76 1008.52,-1777.95"/>
+</g>
+<!-- 30,3&#45;&gt;30,2 -->
+<g id="edge376" class="edge"><title>30,3&#45;&gt;30,2</title>
+<path fill="none" stroke="#218559" d="M972.933,-2146.48C963.29,-2146.75 953.041,-2146.82 943.091,-2146.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-2143.18 932.867,-2146.47 942.792,-2150.18 942.937,-2143.18"/>
+</g>
+<!-- 30,3&#45;&gt;30,4 -->
+<g id="edge370" class="edge"><title>30,3&#45;&gt;30,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1066.87,-2133.53C1076.5,-2133.25 1086.75,-2133.18 1096.7,-2133.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1096.86,-2136.82 1106.93,-2133.52 1097.01,-2129.82 1096.86,-2136.82"/>
+</g>
+<!-- 30,4&#45;&gt;29,3 -->
+<g id="edge378" class="edge"><title>30,4&#45;&gt;29,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1129.02,-2170.95C1107.06,-2198.15 1075,-2237.87 1051.33,-2267.19"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1048.45,-2265.19 1044.89,-2275.17 1053.89,-2269.58 1048.45,-2265.19"/>
+</g>
+<!-- 30,4&#45;&gt;31,2 -->
+<g id="edge380" class="edge"><title>30,4&#45;&gt;31,2</title>
+<path fill="none" stroke="#ebb035" d="M1151.32,-2103.77C1141.21,-1967.31 1106,-1492 1106,-1492 1106,-1492 1088,-996 1088,-996 1088,-996 830,-996 830,-996 830,-996 808,-1684 808,-1684 808,-1684 800.717,-1690.24 791.404,-1698.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="788.915,-1695.75 783.6,-1704.91 793.471,-1701.06 788.915,-1695.75"/>
+</g>
+<!-- 30,4&#45;&gt;30,3 -->
+<g id="edge382" class="edge"><title>30,4&#45;&gt;30,3</title>
+<path fill="none" stroke="#218559" d="M1106.93,-2146.48C1097.29,-2146.75 1087.04,-2146.82 1077.09,-2146.68"/>
+<polygon fill="#218559" stroke="#218559" points="1076.94,-2143.18 1066.87,-2146.47 1076.79,-2150.18 1076.94,-2143.18"/>
+</g>
+<!-- 37,1 -->
+<g id="node169" class="node"><title>37,1</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">37,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-652 995,-666 1046,-666 1046,-652 995,-652"/>
+<text text-anchor="start" x="1003.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">CCACA</text>
+<polygon fill="#218559" stroke="#218559" points="995,-638 995,-652 1046,-652 1046,-638 995,-638"/>
+<text text-anchor="start" x="1004" y="-642.667" font-family="Times Roman,serif" font-size="10.00">TGTGG</text>
+</g>
+<!-- 37,2 -->
+<g id="node170" class="node"><title>37,2</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1131.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">37,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1129,-652 1129,-666 1180,-666 1180,-652 1129,-652"/>
+<text text-anchor="start" x="1137.5" y="-656.667" font-family="Times Roman,serif" font-size="10.00">CACAC</text>
+<polygon fill="#218559" stroke="#218559" points="1129,-638 1129,-652 1180,-652 1180,-638 1129,-638"/>
+<text text-anchor="start" x="1138" y="-642.667" font-family="Times Roman,serif" font-size="10.00">GTGTG</text>
+</g>
+<!-- 37,1&#45;&gt;37,2 -->
+<g id="edge860" class="edge"><title>37,1&#45;&gt;37,2</title>
+<path fill="none" stroke="#dd1e2f" d="M1066.87,-653.529C1076.5,-653.254 1086.75,-653.183 1096.7,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1096.86,-656.817 1106.93,-653.523 1097.01,-649.819 1096.86,-656.817"/>
+</g>
+<!-- 37,2&#45;&gt;37,1 -->
+<g id="edge866" class="edge"><title>37,2&#45;&gt;37,1</title>
+<path fill="none" stroke="#218559" d="M1106.93,-666.477C1097.29,-666.749 1087.04,-666.817 1077.09,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="1076.94,-663.18 1066.87,-666.471 1076.79,-670.179 1076.94,-663.18"/>
+</g>
+<!-- 37,3 -->
+<g id="node171" class="node"><title>37,3</title>
+<ellipse fill="none" stroke="black" cx="1288" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1265.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">37,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1263,-652 1263,-666 1314,-666 1314,-652 1263,-652"/>
+<text text-anchor="start" x="1271" y="-656.667" font-family="Times Roman,serif" font-size="10.00">ACACG</text>
+<polygon fill="#218559" stroke="#218559" points="1263,-638 1263,-652 1314,-652 1314,-638 1263,-638"/>
+<text text-anchor="start" x="1272.5" y="-642.667" font-family="Times Roman,serif" font-size="10.00">CGTGT</text>
+</g>
+<!-- 37,2&#45;&gt;37,3 -->
+<g id="edge862" class="edge"><title>37,2&#45;&gt;37,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1200.87,-653.529C1210.5,-653.254 1220.75,-653.183 1230.7,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1230.86,-656.817 1240.93,-653.523 1231.01,-649.819 1230.86,-656.817"/>
+</g>
+<!-- 36,4 -->
+<g id="node177" class="node"><title>36,4</title>
+<ellipse fill="none" stroke="black" cx="1288" cy="-1074" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1265.5" y="-1085.17" font-family="Times Roman,serif" font-size="10.00">36,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1263,-1066 1263,-1080 1314,-1080 1314,-1066 1263,-1066"/>
+<text text-anchor="start" x="1272.5" y="-1070.67" font-family="Times Roman,serif" font-size="10.00">CGTGT</text>
+<polygon fill="#218559" stroke="#218559" points="1263,-1052 1263,-1066 1314,-1066 1314,-1052 1263,-1052"/>
+<text text-anchor="start" x="1271" y="-1056.67" font-family="Times Roman,serif" font-size="10.00">ACACG</text>
+</g>
+<!-- 37,2&#45;&gt;36,4 -->
+<g id="edge864" class="edge"><title>37,2&#45;&gt;36,4</title>
+<path fill="none" stroke="#ebb035" d="M1165.42,-695.297C1189.75,-770.458 1246.64,-946.204 1273.48,-1029.15"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1270.19,-1030.36 1276.6,-1038.79 1276.85,-1028.2 1270.19,-1030.36"/>
+</g>
+<!-- 37,3&#45;&gt;37,2 -->
+<g id="edge870" class="edge"><title>37,3&#45;&gt;37,2</title>
+<path fill="none" stroke="#218559" d="M1240.93,-666.477C1231.29,-666.749 1221.04,-666.817 1211.09,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="1210.94,-663.18 1200.87,-666.471 1210.79,-670.179 1210.94,-663.18"/>
+</g>
+<!-- 37,4 -->
+<g id="node172" class="node"><title>37,4</title>
+<ellipse fill="none" stroke="black" cx="1422" cy="-660" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1399.5" y="-671.167" font-family="Times Roman,serif" font-size="10.00">37,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1397,-652 1397,-666 1448,-666 1448,-652 1397,-652"/>
+<text text-anchor="start" x="1405" y="-656.667" font-family="Times Roman,serif" font-size="10.00">CACGC</text>
+<polygon fill="#218559" stroke="#218559" points="1397,-638 1397,-652 1448,-652 1448,-638 1397,-638"/>
+<text text-anchor="start" x="1405" y="-642.667" font-family="Times Roman,serif" font-size="10.00">GCGTG</text>
+</g>
+<!-- 37,3&#45;&gt;37,4 -->
+<g id="edge868" class="edge"><title>37,3&#45;&gt;37,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1334.87,-653.529C1344.5,-653.254 1354.75,-653.183 1364.7,-653.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1364.86,-656.817 1374.93,-653.523 1365.01,-649.819 1364.86,-656.817"/>
+</g>
+<!-- 37,4&#45;&gt;37,3 -->
+<g id="edge874" class="edge"><title>37,4&#45;&gt;37,3</title>
+<path fill="none" stroke="#218559" d="M1374.93,-666.477C1365.29,-666.749 1355.04,-666.817 1345.09,-666.684"/>
+<polygon fill="#218559" stroke="#218559" points="1344.94,-663.18 1334.87,-666.471 1344.79,-670.179 1344.94,-663.18"/>
+</g>
+<!-- 36,2 -->
+<g id="node175" class="node"><title>36,2</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-1074" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-1085.17" font-family="Times Roman,serif" font-size="10.00">36,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-1066 995,-1080 1046,-1080 1046,-1066 995,-1066"/>
+<text text-anchor="start" x="1003.5" y="-1070.67" font-family="Times Roman,serif" font-size="10.00">AGCGT</text>
+<polygon fill="#218559" stroke="#218559" points="995,-1052 995,-1066 1046,-1066 1046,-1052 995,-1052"/>
+<text text-anchor="start" x="1004" y="-1056.67" font-family="Times Roman,serif" font-size="10.00">ACGCT</text>
+</g>
+<!-- 37,4&#45;&gt;36,2 -->
+<g id="edge872" class="edge"><title>37,4&#45;&gt;36,2</title>
+<path fill="none" stroke="#ebb035" d="M1404.3,-693.583C1381.29,-737.25 1344,-808 1344,-808 1344,-808 1210,-946 1210,-946 1210,-946 1120.23,-1006.48 1064.1,-1044.29"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1062.08,-1041.43 1055.74,-1049.92 1065.99,-1047.24 1062.08,-1041.43"/>
+</g>
+<!-- 36,1 -->
+<g id="node174" class="node"><title>36,1</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1074" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1085.17" font-family="Times Roman,serif" font-size="10.00">36,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1066 861,-1080 912,-1080 912,-1066 861,-1066"/>
+<text text-anchor="start" x="868.5" y="-1070.67" font-family="Times Roman,serif" font-size="10.00">AAGCG</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1052 861,-1066 912,-1066 912,-1052 861,-1052"/>
+<text text-anchor="start" x="870.5" y="-1056.67" font-family="Times Roman,serif" font-size="10.00">CGCTT</text>
+</g>
+<!-- 36,1&#45;&gt;36,2 -->
+<g id="edge434" class="edge"><title>36,1&#45;&gt;36,2</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-1067.53C942.501,-1067.25 952.748,-1067.18 962.703,-1067.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-1070.82 972.933,-1067.52 963.007,-1063.82 962.864,-1070.82"/>
+</g>
+<!-- 35,3 -->
+<g id="node181" class="node"><title>35,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1636" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1647.17" font-family="Times Roman,serif" font-size="10.00">35,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1628 727,-1642 778,-1642 778,-1628 727,-1628"/>
+<text text-anchor="start" x="737" y="-1632.67" font-family="Times Roman,serif" font-size="10.00">GCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1614 727,-1628 778,-1628 778,-1614 727,-1614"/>
+<text text-anchor="start" x="736" y="-1618.67" font-family="Times Roman,serif" font-size="10.00">TAAGC</text>
+</g>
+<!-- 36,1&#45;&gt;35,3 -->
+<g id="edge438" class="edge"><title>36,1&#45;&gt;35,3</title>
+<path fill="none" stroke="#06a2cb" d="M854.4,-1101.09C841.697,-1111.97 830,-1122 830,-1122 830,-1122 818,-1321 818,-1321 818,-1321 808,-1588 808,-1588 808,-1588 800.717,-1594.24 791.404,-1602.22"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="788.915,-1599.75 783.6,-1608.91 793.471,-1605.06 788.915,-1599.75"/>
+</g>
+<!-- 33,3 -->
+<g id="node191" class="node"><title>33,3</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-1540" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-1551.17" font-family="Times Roman,serif" font-size="10.00">33,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-1532 727,-1546 778,-1546 778,-1532 727,-1532"/>
+<text text-anchor="start" x="737" y="-1536.67" font-family="Times Roman,serif" font-size="10.00">GCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-1518 727,-1532 778,-1532 778,-1518 727,-1518"/>
+<text text-anchor="start" x="736" y="-1522.67" font-family="Times Roman,serif" font-size="10.00">TAAGC</text>
+</g>
+<!-- 36,1&#45;&gt;33,3 -->
+<g id="edge436" class="edge"><title>36,1&#45;&gt;33,3</title>
+<path fill="none" stroke="#06a2cb" d="M854.4,-1101.09C841.697,-1111.97 830,-1122 830,-1122 830,-1122 780.859,-1385.34 760.587,-1493.98"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="757.112,-1493.53 758.718,-1504 763.993,-1494.81 757.112,-1493.53"/>
+</g>
+<!-- 36,2&#45;&gt;37,4 -->
+<g id="edge442" class="edge"><title>36,2&#45;&gt;37,4</title>
+<path fill="none" stroke="#ebb035" d="M1048.27,-1044.89C1119.77,-971.25 1307.74,-777.671 1386.49,-696.569"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1389.31,-698.692 1393.76,-689.08 1384.29,-693.816 1389.31,-698.692"/>
+</g>
+<!-- 36,2&#45;&gt;36,1 -->
+<g id="edge444" class="edge"><title>36,2&#45;&gt;36,1</title>
+<path fill="none" stroke="#218559" d="M972.933,-1080.48C963.29,-1080.75 953.041,-1080.82 943.091,-1080.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-1077.18 932.867,-1080.47 942.792,-1084.18 942.937,-1077.18"/>
+</g>
+<!-- 36,3 -->
+<g id="node176" class="node"><title>36,3</title>
+<ellipse fill="none" stroke="black" cx="1154" cy="-1074" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="1131.5" y="-1085.17" font-family="Times Roman,serif" font-size="10.00">36,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1129,-1066 1129,-1080 1180,-1080 1180,-1066 1129,-1066"/>
+<text text-anchor="start" x="1137" y="-1070.67" font-family="Times Roman,serif" font-size="10.00">GCGTG</text>
+<polygon fill="#218559" stroke="#218559" points="1129,-1052 1129,-1066 1180,-1066 1180,-1052 1129,-1052"/>
+<text text-anchor="start" x="1137" y="-1056.67" font-family="Times Roman,serif" font-size="10.00">CACGC</text>
+</g>
+<!-- 36,2&#45;&gt;36,3 -->
+<g id="edge440" class="edge"><title>36,2&#45;&gt;36,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1066.87,-1067.53C1076.5,-1067.25 1086.75,-1067.18 1096.7,-1067.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1096.86,-1070.82 1106.93,-1067.52 1097.01,-1063.82 1096.86,-1070.82"/>
+</g>
+<!-- 36,3&#45;&gt;36,2 -->
+<g id="edge448" class="edge"><title>36,3&#45;&gt;36,2</title>
+<path fill="none" stroke="#218559" d="M1106.93,-1080.48C1097.29,-1080.75 1087.04,-1080.82 1077.09,-1080.68"/>
+<polygon fill="#218559" stroke="#218559" points="1076.94,-1077.18 1066.87,-1080.47 1076.79,-1084.18 1076.94,-1077.18"/>
+</g>
+<!-- 36,3&#45;&gt;36,4 -->
+<g id="edge446" class="edge"><title>36,3&#45;&gt;36,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1200.87,-1067.53C1210.5,-1067.25 1220.75,-1067.18 1230.7,-1067.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1230.86,-1070.82 1240.93,-1067.52 1231.01,-1063.82 1230.86,-1070.82"/>
+</g>
+<!-- 36,4&#45;&gt;37,2 -->
+<g id="edge450" class="edge"><title>36,4&#45;&gt;37,2</title>
+<path fill="none" stroke="#ebb035" d="M1274.73,-1039.06C1254.94,-986.97 1220,-895 1220,-895 1220,-895 1185.83,-773.346 1166.67,-705.097"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1170.03,-704.117 1163.95,-695.436 1163.29,-706.01 1170.03,-704.117"/>
+</g>
+<!-- 36,4&#45;&gt;36,3 -->
+<g id="edge452" class="edge"><title>36,4&#45;&gt;36,3</title>
+<path fill="none" stroke="#218559" d="M1240.93,-1080.48C1231.29,-1080.75 1221.04,-1080.82 1211.09,-1080.68"/>
+<polygon fill="#218559" stroke="#218559" points="1210.94,-1077.18 1200.87,-1080.47 1210.79,-1084.18 1210.94,-1077.18"/>
+</g>
+<!-- 35,1 -->
+<g id="node179" class="node"><title>35,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-1636" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-1647.17" font-family="Times Roman,serif" font-size="10.00">35,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-1628 459,-1642 510,-1642 510,-1628 459,-1628"/>
+<text text-anchor="start" x="469" y="-1632.67" font-family="Times Roman,serif" font-size="10.00">TCGCT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-1614 459,-1628 510,-1628 510,-1614 459,-1614"/>
+<text text-anchor="start" x="466.5" y="-1618.67" font-family="Times Roman,serif" font-size="10.00">AGCGA</text>
+</g>
+<!-- 35,2 -->
+<g id="node180" class="node"><title>35,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1636" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1647.17" font-family="Times Roman,serif" font-size="10.00">35,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1628 593,-1642 644,-1642 644,-1628 593,-1628"/>
+<text text-anchor="start" x="602.5" y="-1632.67" font-family="Times Roman,serif" font-size="10.00">CGCTT</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1614 593,-1628 644,-1628 644,-1614 593,-1614"/>
+<text text-anchor="start" x="600.5" y="-1618.67" font-family="Times Roman,serif" font-size="10.00">AAGCG</text>
+</g>
+<!-- 35,1&#45;&gt;35,2 -->
+<g id="edge836" class="edge"><title>35,1&#45;&gt;35,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-1629.53C540.501,-1629.25 550.748,-1629.18 560.703,-1629.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-1632.82 570.933,-1629.52 561.007,-1625.82 560.864,-1632.82"/>
+</g>
+<!-- 35,2&#45;&gt;35,1 -->
+<g id="edge844" class="edge"><title>35,2&#45;&gt;35,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-1642.48C561.29,-1642.75 551.041,-1642.82 541.091,-1642.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-1639.18 530.867,-1642.47 540.792,-1646.18 540.937,-1639.18"/>
+</g>
+<!-- 35,2&#45;&gt;35,3 -->
+<g id="edge840" class="edge"><title>35,2&#45;&gt;35,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1629.53C674.501,-1629.25 684.748,-1629.18 694.703,-1629.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1632.82 704.933,-1629.52 695.007,-1625.82 694.864,-1632.82"/>
+</g>
+<!-- 34,1 -->
+<g id="node184" class="node"><title>34,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-756" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-767.167" font-family="Times Roman,serif" font-size="10.00">34,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-748 593,-762 644,-762 644,-748 593,-748"/>
+<text text-anchor="start" x="603" y="-752.667" font-family="Times Roman,serif" font-size="10.00">GCTTA</text>
+<polygon fill="#218559" stroke="#218559" points="593,-734 593,-748 644,-748 644,-734 593,-734"/>
+<text text-anchor="start" x="602" y="-738.667" font-family="Times Roman,serif" font-size="10.00">TAAGC</text>
+</g>
+<!-- 35,2&#45;&gt;34,1 -->
+<g id="edge838" class="edge"><title>35,2&#45;&gt;34,1</title>
+<path fill="none" stroke="#dd1e2f" d="M586.07,-1608.84C568.813,-1594.15 551,-1579 551,-1579 551,-1579 551,-1131 551,-1131 551,-1131 591.863,-902.29 609.764,-802.095"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="613.262,-802.416 611.576,-791.957 606.371,-801.185 613.262,-802.416"/>
+</g>
+<!-- 34,4 -->
+<g id="node187" class="node"><title>34,4</title>
+<ellipse fill="none" stroke="black" cx="1020" cy="-756" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="997.5" y="-767.167" font-family="Times Roman,serif" font-size="10.00">34,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="995,-748 995,-762 1046,-762 1046,-748 995,-748"/>
+<text text-anchor="start" x="1004" y="-752.667" font-family="Times Roman,serif" font-size="10.00">TAAGC</text>
+<polygon fill="#218559" stroke="#218559" points="995,-734 995,-748 1046,-748 1046,-734 995,-734"/>
+<text text-anchor="start" x="1005" y="-738.667" font-family="Times Roman,serif" font-size="10.00">GCTTA</text>
+</g>
+<!-- 35,2&#45;&gt;34,4 -->
+<g id="edge842" class="edge"><title>35,2&#45;&gt;34,4</title>
+<path fill="none" stroke="#ebb035" d="M649.6,-1608.91C662.303,-1598.03 674,-1588 674,-1588 674,-1588 696,-1122 696,-1122 696,-1122 808,-1060 808,-1060 808,-1060 830,-992 830,-992 830,-992 942,-911 942,-911 942,-911 975.191,-845.043 998.271,-799.18"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="1001.51,-800.521 1002.88,-790.015 995.261,-797.375 1001.51,-800.521"/>
+</g>
+<!-- 35,3&#45;&gt;36,1 -->
+<g id="edge848" class="edge"><title>35,3&#45;&gt;36,1</title>
+<path fill="none" stroke="#06a2cb" d="M783.6,-1608.91C796.303,-1598.03 808,-1588 808,-1588 808,-1588 830,-1122 830,-1122 830,-1122 837.283,-1115.76 846.596,-1107.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="849.085,-1110.25 854.4,-1101.09 844.529,-1104.94 849.085,-1110.25"/>
+</g>
+<!-- 35,3&#45;&gt;35,2 -->
+<g id="edge852" class="edge"><title>35,3&#45;&gt;35,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-1642.48C695.29,-1642.75 685.041,-1642.82 675.091,-1642.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1639.18 664.867,-1642.47 674.792,-1646.18 674.937,-1639.18"/>
+</g>
+<!-- 35,4 -->
+<g id="node182" class="node"><title>35,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1636" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1647.17" font-family="Times Roman,serif" font-size="10.00">35,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1628 861,-1642 912,-1642 912,-1628 861,-1628"/>
+<text text-anchor="start" x="871" y="-1632.67" font-family="Times Roman,serif" font-size="10.00">CTTAA</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1614 861,-1628 912,-1628 912,-1614 861,-1614"/>
+<text text-anchor="start" x="871" y="-1618.67" font-family="Times Roman,serif" font-size="10.00">TTAAG</text>
+</g>
+<!-- 35,3&#45;&gt;35,4 -->
+<g id="edge846" class="edge"><title>35,3&#45;&gt;35,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1629.53C808.501,-1629.25 818.748,-1629.18 828.703,-1629.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1632.82 838.933,-1629.52 829.007,-1625.82 828.864,-1632.82"/>
+</g>
+<!-- 32,1 -->
+<g id="node194" class="node"><title>32,1</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1974" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1985.17" font-family="Times Roman,serif" font-size="10.00">32,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1966 593,-1980 644,-1980 644,-1966 593,-1966"/>
+<text text-anchor="start" x="600.5" y="-1970.67" font-family="Times Roman,serif" font-size="10.00">AAGCG</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1952 593,-1966 644,-1966 644,-1952 593,-1952"/>
+<text text-anchor="start" x="602.5" y="-1956.67" font-family="Times Roman,serif" font-size="10.00">CGCTT</text>
+</g>
+<!-- 35,3&#45;&gt;32,1 -->
+<g id="edge850" class="edge"><title>35,3&#45;&gt;32,1</title>
+<path fill="none" stroke="#06a2cb" d="M720.4,-1663.09C707.697,-1673.97 696,-1684 696,-1684 696,-1684 686,-1878 686,-1878 686,-1878 665.176,-1907.4 646.575,-1933.66"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="643.567,-1931.85 640.643,-1942.03 649.279,-1935.9 643.567,-1931.85"/>
+</g>
+<!-- 35,4&#45;&gt;35,3 -->
+<g id="edge858" class="edge"><title>35,4&#45;&gt;35,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-1642.48C829.29,-1642.75 819.041,-1642.82 809.091,-1642.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1639.18 798.867,-1642.47 808.792,-1646.18 808.937,-1639.18"/>
+</g>
+<!-- 34,2 -->
+<g id="node185" class="node"><title>34,2</title>
+<ellipse fill="none" stroke="black" cx="752" cy="-756" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="729.5" y="-767.167" font-family="Times Roman,serif" font-size="10.00">34,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="727,-748 727,-762 778,-762 778,-748 727,-748"/>
+<text text-anchor="start" x="737" y="-752.667" font-family="Times Roman,serif" font-size="10.00">CTTAA</text>
+<polygon fill="#218559" stroke="#218559" points="727,-734 727,-748 778,-748 778,-734 727,-734"/>
+<text text-anchor="start" x="737" y="-738.667" font-family="Times Roman,serif" font-size="10.00">TTAAG</text>
+</g>
+<!-- 35,4&#45;&gt;34,2 -->
+<g id="edge856" class="edge"><title>35,4&#45;&gt;34,2</title>
+<path fill="none" stroke="#ebb035" d="M854.4,-1608.91C841.697,-1598.03 830,-1588 830,-1588 830,-1588 820,-1343 820,-1343 820,-1343 808,-1122 808,-1122 808,-1122 774.093,-900.394 759.047,-802.057"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="762.495,-801.451 757.523,-792.095 755.576,-802.509 762.495,-801.451"/>
+</g>
+<!-- 34,3 -->
+<g id="node186" class="node"><title>34,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-756" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-767.167" font-family="Times Roman,serif" font-size="10.00">34,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-748 861,-762 912,-762 912,-748 861,-748"/>
+<text text-anchor="start" x="871" y="-752.667" font-family="Times Roman,serif" font-size="10.00">TTAAG</text>
+<polygon fill="#218559" stroke="#218559" points="861,-734 861,-748 912,-748 912,-734 861,-734"/>
+<text text-anchor="start" x="871" y="-738.667" font-family="Times Roman,serif" font-size="10.00">CTTAA</text>
+</g>
+<!-- 35,4&#45;&gt;34,3 -->
+<g id="edge854" class="edge"><title>35,4&#45;&gt;34,3</title>
+<path fill="none" stroke="#dd1e2f" d="M854.07,-1608.84C836.813,-1594.15 819,-1579 819,-1579 819,-1579 819,-1035 819,-1035 819,-1035 855.988,-880.975 874.999,-801.809"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="878.514,-802.16 877.446,-791.619 871.708,-800.525 878.514,-802.16"/>
+</g>
+<!-- 34,1&#45;&gt;35,2 -->
+<g id="edge410" class="edge"><title>34,1&#45;&gt;35,2</title>
+<path fill="none" stroke="#218559" d="M611.576,-791.957C594.806,-885.816 551,-1131 551,-1131 551,-1131 551,-1579 551,-1579 551,-1579 563.917,-1589.99 578.409,-1602.32"/>
+<polygon fill="#218559" stroke="#218559" points="576.185,-1605.02 586.07,-1608.84 580.721,-1599.69 576.185,-1605.02"/>
+</g>
+<!-- 34,1&#45;&gt;34,2 -->
+<g id="edge406" class="edge"><title>34,1&#45;&gt;34,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-749.529C674.501,-749.254 684.748,-749.183 694.703,-749.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-752.817 704.933,-749.523 695.007,-745.819 694.864,-752.817"/>
+</g>
+<!-- 33,2 -->
+<g id="node190" class="node"><title>33,2</title>
+<ellipse fill="none" stroke="black" cx="618" cy="-1540" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="595.5" y="-1551.17" font-family="Times Roman,serif" font-size="10.00">33,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="593,-1532 593,-1546 644,-1546 644,-1532 593,-1532"/>
+<text text-anchor="start" x="602.5" y="-1536.67" font-family="Times Roman,serif" font-size="10.00">CGCTT</text>
+<polygon fill="#218559" stroke="#218559" points="593,-1518 593,-1532 644,-1532 644,-1518 593,-1518"/>
+<text text-anchor="start" x="600.5" y="-1522.67" font-family="Times Roman,serif" font-size="10.00">AAGCG</text>
+</g>
+<!-- 34,1&#45;&gt;33,2 -->
+<g id="edge408" class="edge"><title>34,1&#45;&gt;33,2</title>
+<path fill="none" stroke="#218559" d="M611.576,-791.957C594.806,-885.816 551,-1131 551,-1131 551,-1131 551,-1209 551,-1209 551,-1209 590.35,-1403.4 608.737,-1494.24"/>
+<polygon fill="#218559" stroke="#218559" points="605.352,-1495.16 610.766,-1504.26 612.213,-1493.77 605.352,-1495.16"/>
+</g>
+<!-- 34,2&#45;&gt;35,4 -->
+<g id="edge414" class="edge"><title>34,2&#45;&gt;35,4</title>
+<path fill="none" stroke="#ebb035" d="M759.934,-791.701C777.871,-872.42 820,-1062 820,-1062 820,-1062 830,-1588 830,-1588 830,-1588 837.283,-1594.24 846.596,-1602.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="844.529,-1605.06 854.4,-1608.91 849.085,-1599.75 844.529,-1605.06"/>
+</g>
+<!-- 34,2&#45;&gt;34,1 -->
+<g id="edge418" class="edge"><title>34,2&#45;&gt;34,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-762.477C695.29,-762.749 685.041,-762.817 675.091,-762.684"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-759.18 664.867,-762.471 674.792,-766.179 674.937,-759.18"/>
+</g>
+<!-- 34,2&#45;&gt;34,3 -->
+<g id="edge412" class="edge"><title>34,2&#45;&gt;34,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-749.529C808.501,-749.254 818.748,-749.183 828.703,-749.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-752.817 838.933,-749.523 829.007,-745.819 828.864,-752.817"/>
+</g>
+<!-- 33,4 -->
+<g id="node192" class="node"><title>33,4</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1540" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1551.17" font-family="Times Roman,serif" font-size="10.00">33,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1532 861,-1546 912,-1546 912,-1532 861,-1532"/>
+<text text-anchor="start" x="871" y="-1536.67" font-family="Times Roman,serif" font-size="10.00">CTTAA</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1518 861,-1532 912,-1532 912,-1518 861,-1518"/>
+<text text-anchor="start" x="871" y="-1522.67" font-family="Times Roman,serif" font-size="10.00">TTAAG</text>
+</g>
+<!-- 34,2&#45;&gt;33,4 -->
+<g id="edge416" class="edge"><title>34,2&#45;&gt;33,4</title>
+<path fill="none" stroke="#ebb035" d="M762.034,-791.413C780.949,-858.173 820,-996 820,-996 820,-996 830,-1492 830,-1492 830,-1492 837.283,-1498.24 846.596,-1506.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="844.529,-1509.06 854.4,-1512.91 849.085,-1503.75 844.529,-1509.06"/>
+</g>
+<!-- 34,3&#45;&gt;35,4 -->
+<g id="edge422" class="edge"><title>34,3&#45;&gt;35,4</title>
+<path fill="none" stroke="#218559" d="M877.446,-791.619C859.384,-866.834 819,-1035 819,-1035 819,-1035 819,-1579 819,-1579 819,-1579 831.917,-1589.99 846.409,-1602.32"/>
+<polygon fill="#218559" stroke="#218559" points="844.185,-1605.02 854.07,-1608.84 848.721,-1599.69 844.185,-1605.02"/>
+</g>
+<!-- 34,3&#45;&gt;34,2 -->
+<g id="edge426" class="edge"><title>34,3&#45;&gt;34,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-762.477C829.29,-762.749 819.041,-762.817 809.091,-762.684"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-759.18 798.867,-762.471 808.792,-766.179 808.937,-759.18"/>
+</g>
+<!-- 34,3&#45;&gt;34,4 -->
+<g id="edge420" class="edge"><title>34,3&#45;&gt;34,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-749.529C942.501,-749.254 952.748,-749.183 962.703,-749.313"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-752.817 972.933,-749.523 963.007,-745.819 962.864,-752.817"/>
+</g>
+<!-- 34,3&#45;&gt;33,4 -->
+<g id="edge424" class="edge"><title>34,3&#45;&gt;33,4</title>
+<path fill="none" stroke="#218559" d="M877.446,-791.619C859.384,-866.834 819,-1035 819,-1035 819,-1035 819,-1483 819,-1483 819,-1483 831.917,-1493.99 846.409,-1506.32"/>
+<polygon fill="#218559" stroke="#218559" points="844.185,-1509.02 854.07,-1512.84 848.721,-1503.69 844.185,-1509.02"/>
+</g>
+<!-- 34,4&#45;&gt;35,2 -->
+<g id="edge430" class="edge"><title>34,4&#45;&gt;35,2</title>
+<path fill="none" stroke="#ebb035" d="M998.48,-788.28C975.392,-822.912 942,-873 942,-873 942,-873 830,-920 830,-920 830,-920 808,-1000 808,-1000 808,-1000 696,-1091 696,-1091 696,-1091 686,-1262 686,-1262 686,-1262 684,-1296 684,-1296 684,-1296 674,-1588 674,-1588 674,-1588 666.717,-1594.24 657.404,-1602.22"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="654.915,-1599.75 649.6,-1608.91 659.471,-1605.06 654.915,-1599.75"/>
+</g>
+<!-- 34,4&#45;&gt;34,3 -->
+<g id="edge432" class="edge"><title>34,4&#45;&gt;34,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-762.477C963.29,-762.749 953.041,-762.817 943.091,-762.684"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-759.18 932.867,-762.471 942.792,-766.179 942.937,-759.18"/>
+</g>
+<!-- 34,4&#45;&gt;33,2 -->
+<g id="edge428" class="edge"><title>34,4&#45;&gt;33,2</title>
+<path fill="none" stroke="#ebb035" d="M994.294,-786.38C975.762,-808.281 954,-834 954,-834 954,-834 818,-883 818,-883 818,-883 808,-929 808,-929 808,-929 696,-1042 696,-1042 696,-1042 686,-1243 686,-1243 686,-1243 647.466,-1411.3 628.413,-1494.52"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="624.955,-1493.94 626.135,-1504.47 631.778,-1495.5 624.955,-1493.94"/>
+</g>
+<!-- 33,1 -->
+<g id="node189" class="node"><title>33,1</title>
+<ellipse fill="none" stroke="black" cx="484" cy="-1540" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="461.5" y="-1551.17" font-family="Times Roman,serif" font-size="10.00">33,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="459,-1532 459,-1546 510,-1546 510,-1532 459,-1532"/>
+<text text-anchor="start" x="469" y="-1536.67" font-family="Times Roman,serif" font-size="10.00">TCGCT</text>
+<polygon fill="#218559" stroke="#218559" points="459,-1518 459,-1532 510,-1532 510,-1518 459,-1518"/>
+<text text-anchor="start" x="466.5" y="-1522.67" font-family="Times Roman,serif" font-size="10.00">AGCGA</text>
+</g>
+<!-- 33,1&#45;&gt;33,2 -->
+<g id="edge812" class="edge"><title>33,1&#45;&gt;33,2</title>
+<path fill="none" stroke="#dd1e2f" d="M530.867,-1533.53C540.501,-1533.25 550.748,-1533.18 560.703,-1533.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="560.864,-1536.82 570.933,-1533.52 561.007,-1529.82 560.864,-1536.82"/>
+</g>
+<!-- 33,2&#45;&gt;34,1 -->
+<g id="edge814" class="edge"><title>33,2&#45;&gt;34,1</title>
+<path fill="none" stroke="#dd1e2f" d="M610.766,-1504.26C593.441,-1418.67 551,-1209 551,-1209 551,-1209 551,-1131 551,-1131 551,-1131 591.863,-902.29 609.764,-802.095"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="613.262,-802.416 611.576,-791.957 606.371,-801.185 613.262,-802.416"/>
+</g>
+<!-- 33,2&#45;&gt;34,4 -->
+<g id="edge818" class="edge"><title>33,2&#45;&gt;34,4</title>
+<path fill="none" stroke="#ebb035" d="M624.261,-1504C638.874,-1419.98 674,-1218 674,-1218 674,-1218 696,-929 696,-929 696,-929 830,-835 830,-835 830,-835 942,-801 942,-801 942,-801 956.586,-792.585 973.143,-783.033"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="975.001,-786.002 981.914,-777.973 971.503,-779.938 975.001,-786.002"/>
+</g>
+<!-- 33,2&#45;&gt;33,1 -->
+<g id="edge820" class="edge"><title>33,2&#45;&gt;33,1</title>
+<path fill="none" stroke="#218559" d="M570.933,-1546.48C561.29,-1546.75 551.041,-1546.82 541.091,-1546.68"/>
+<polygon fill="#218559" stroke="#218559" points="540.937,-1543.18 530.867,-1546.47 540.792,-1550.18 540.937,-1543.18"/>
+</g>
+<!-- 33,2&#45;&gt;33,3 -->
+<g id="edge816" class="edge"><title>33,2&#45;&gt;33,3</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1533.53C674.501,-1533.25 684.748,-1533.18 694.703,-1533.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1536.82 704.933,-1533.52 695.007,-1529.82 694.864,-1536.82"/>
+</g>
+<!-- 33,3&#45;&gt;36,1 -->
+<g id="edge824" class="edge"><title>33,3&#45;&gt;36,1</title>
+<path fill="none" stroke="#06a2cb" d="M759.085,-1504.26C776.501,-1416.41 820,-1197 820,-1197 820,-1197 830,-1122 830,-1122 830,-1122 837.283,-1115.76 846.596,-1107.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="849.085,-1110.25 854.4,-1101.09 844.529,-1104.94 849.085,-1110.25"/>
+</g>
+<!-- 33,3&#45;&gt;33,2 -->
+<g id="edge828" class="edge"><title>33,3&#45;&gt;33,2</title>
+<path fill="none" stroke="#218559" d="M704.933,-1546.48C695.29,-1546.75 685.041,-1546.82 675.091,-1546.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1543.18 664.867,-1546.47 674.792,-1550.18 674.937,-1543.18"/>
+</g>
+<!-- 33,3&#45;&gt;33,4 -->
+<g id="edge822" class="edge"><title>33,3&#45;&gt;33,4</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1533.53C808.501,-1533.25 818.748,-1533.18 828.703,-1533.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1536.82 838.933,-1533.52 829.007,-1529.82 828.864,-1536.82"/>
+</g>
+<!-- 33,3&#45;&gt;32,1 -->
+<g id="edge826" class="edge"><title>33,3&#45;&gt;32,1</title>
+<path fill="none" stroke="#06a2cb" d="M720.4,-1567.09C707.697,-1577.97 696,-1588 696,-1588 696,-1588 686,-1698 686,-1698 686,-1698 674,-1780 674,-1780 674,-1780 647.692,-1871.14 631.139,-1928.48"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="627.682,-1927.84 628.271,-1938.42 634.407,-1929.78 627.682,-1927.84"/>
+</g>
+<!-- 33,4&#45;&gt;34,2 -->
+<g id="edge832" class="edge"><title>33,4&#45;&gt;34,2</title>
+<path fill="none" stroke="#ebb035" d="M854.4,-1512.91C841.697,-1502.03 830,-1492 830,-1492 830,-1492 820,-1032 820,-1032 820,-1032 782.554,-880.014 763.238,-801.612"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="766.541,-800.389 760.751,-791.517 759.745,-802.064 766.541,-800.389"/>
+</g>
+<!-- 33,4&#45;&gt;34,3 -->
+<g id="edge830" class="edge"><title>33,4&#45;&gt;34,3</title>
+<path fill="none" stroke="#dd1e2f" d="M854.07,-1512.84C836.813,-1498.15 819,-1483 819,-1483 819,-1483 819,-1035 819,-1035 819,-1035 855.988,-880.975 874.999,-801.809"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="878.514,-802.16 877.446,-791.619 871.708,-800.525 878.514,-802.16"/>
+</g>
+<!-- 33,4&#45;&gt;33,3 -->
+<g id="edge834" class="edge"><title>33,4&#45;&gt;33,3</title>
+<path fill="none" stroke="#218559" d="M838.933,-1546.48C829.29,-1546.75 819.041,-1546.82 809.091,-1546.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1543.18 798.867,-1546.47 808.792,-1550.18 808.937,-1543.18"/>
+</g>
+<!-- 32,1&#45;&gt;35,3 -->
+<g id="edge388" class="edge"><title>32,1&#45;&gt;35,3</title>
+<path fill="none" stroke="#06a2cb" d="M638.034,-1941C658.093,-1907.96 686,-1862 686,-1862 686,-1862 696,-1684 696,-1684 696,-1684 703.283,-1677.76 712.596,-1669.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="715.085,-1672.25 720.4,-1663.09 710.529,-1666.94 715.085,-1672.25"/>
+</g>
+<!-- 32,1&#45;&gt;33,3 -->
+<g id="edge386" class="edge"><title>32,1&#45;&gt;33,3</title>
+<path fill="none" stroke="#06a2cb" d="M628.271,-1938.42C644.438,-1882.41 674,-1780 674,-1780 674,-1780 696,-1588 696,-1588 696,-1588 703.283,-1581.76 712.596,-1573.78"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="715.085,-1576.25 720.4,-1567.09 710.529,-1570.94 715.085,-1576.25"/>
+</g>
+<!-- 32,1&#45;&gt;32,2 -->
+<g id="edge384" class="edge"><title>32,1&#45;&gt;32,2</title>
+<path fill="none" stroke="#dd1e2f" d="M664.867,-1967.53C674.501,-1967.25 684.748,-1967.18 694.703,-1967.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="694.864,-1970.82 704.933,-1967.52 695.007,-1963.82 694.864,-1970.82"/>
+</g>
+<!-- 32,2&#45;&gt;31,1 -->
+<g id="edge390" class="edge"><title>32,2&#45;&gt;31,1</title>
+<path fill="none" stroke="#dd1e2f" d="M719.991,-1947.17C702.354,-1932.39 684,-1917 684,-1917 684,-1917 653.327,-1831.02 633.801,-1776.29"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="637.071,-1775.04 630.414,-1766.8 630.478,-1777.39 637.071,-1775.04"/>
+</g>
+<!-- 32,2&#45;&gt;32,1 -->
+<g id="edge394" class="edge"><title>32,2&#45;&gt;32,1</title>
+<path fill="none" stroke="#218559" d="M704.933,-1980.48C695.29,-1980.75 685.041,-1980.82 675.091,-1980.68"/>
+<polygon fill="#218559" stroke="#218559" points="674.937,-1977.18 664.867,-1980.47 674.792,-1984.18 674.937,-1977.18"/>
+</g>
+<!-- 32,3 -->
+<g id="node196" class="node"><title>32,3</title>
+<ellipse fill="none" stroke="black" cx="886" cy="-1974" rx="46.8775" ry="36.0624"/>
+<text text-anchor="start" x="863.5" y="-1985.17" font-family="Times Roman,serif" font-size="10.00">32,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="861,-1966 861,-1980 912,-1980 912,-1966 861,-1966"/>
+<text text-anchor="start" x="870" y="-1970.67" font-family="Times Roman,serif" font-size="10.00">GCGTC</text>
+<polygon fill="#218559" stroke="#218559" points="861,-1952 861,-1966 912,-1966 912,-1952 861,-1952"/>
+<text text-anchor="start" x="868.5" y="-1956.67" font-family="Times Roman,serif" font-size="10.00">GACGC</text>
+</g>
+<!-- 32,2&#45;&gt;32,3 -->
+<g id="edge392" class="edge"><title>32,2&#45;&gt;32,3</title>
+<path fill="none" stroke="#dd1e2f" d="M798.867,-1967.53C808.501,-1967.25 818.748,-1967.18 828.703,-1967.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="828.864,-1970.82 838.933,-1967.52 829.007,-1963.82 828.864,-1970.82"/>
+</g>
+<!-- 32,3&#45;&gt;32,2 -->
+<g id="edge398" class="edge"><title>32,3&#45;&gt;32,2</title>
+<path fill="none" stroke="#218559" d="M838.933,-1980.48C829.29,-1980.75 819.041,-1980.82 809.091,-1980.68"/>
+<polygon fill="#218559" stroke="#218559" points="808.937,-1977.18 798.867,-1980.47 808.792,-1984.18 808.937,-1977.18"/>
+</g>
+<!-- 32,3&#45;&gt;32,4 -->
+<g id="edge396" class="edge"><title>32,3&#45;&gt;32,4</title>
+<path fill="none" stroke="#dd1e2f" d="M932.867,-1967.53C942.501,-1967.25 952.748,-1967.18 962.703,-1967.31"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="962.864,-1970.82 972.933,-1967.52 963.007,-1963.82 962.864,-1970.82"/>
+</g>
+<!-- 32,4&#45;&gt;29,2 -->
+<g id="edge402" class="edge"><title>32,4&#45;&gt;29,2</title>
+<path fill="none" stroke="#ebb035" d="M1003.8,-2008.13C987.264,-2042.98 964,-2092 964,-2092 964,-2092 942,-2188 942,-2188 942,-2188 922.563,-2228.96 906.591,-2262.61"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="903.323,-2261.33 902.198,-2271.87 909.647,-2264.34 903.323,-2261.33"/>
+</g>
+<!-- 32,4&#45;&gt;31,3 -->
+<g id="edge400" class="edge"><title>32,4&#45;&gt;31,3</title>
+<path fill="none" stroke="#dd1e2f" d="M1009.73,-1938.42C993.562,-1882.41 964,-1780 964,-1780 964,-1780 954,-1246 954,-1246 954,-1246 952,-1246 952,-1246 952,-1246 942,-1684 942,-1684 942,-1684 934.717,-1690.24 925.404,-1698.22"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="922.915,-1695.75 917.6,-1704.91 927.471,-1701.06 922.915,-1695.75"/>
+</g>
+<!-- 32,4&#45;&gt;32,3 -->
+<g id="edge404" class="edge"><title>32,4&#45;&gt;32,3</title>
+<path fill="none" stroke="#218559" d="M972.933,-1980.48C963.29,-1980.75 953.041,-1980.82 943.091,-1980.68"/>
+<polygon fill="#218559" stroke="#218559" points="942.937,-1977.18 932.867,-1980.47 942.792,-1984.18 942.937,-1977.18"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/.part-0.crc
new file mode 100644
index 0000000..32c39ff
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/.part-1.crc
new file mode 100644
index 0000000..72c5a6b
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/part-0 b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/part-0
new file mode 100755
index 0000000..7db79d9
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/part-1 b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/part-1
new file mode 100755
index 0000000..54cde64
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq1/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2.txt b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2.txt
new file mode 100644
index 0000000..474c862
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2.txt
@@ -0,0 +1,24 @@
+((2,1)	[(2,2)]	[]	[(3,3)]	[]	CTAGC)	(null)
+((2,2)	[(6,1),(2,3)]	[(1,4)]	[]	[(2,1)]	TAGCG)	(null)
+((2,3)	[(2,4)]	[]	[(3,1)]	[(2,2)]	AGCGC)	(null)
+((2,4)	[(6,3)]	[(1,2)]	[]	[(2,3)]	GCGCA)	(null)
+((4,1)	[(4,2)]	[]	[]	[(3,2)]	CTAGG)	(null)
+((4,2)	[(5,1),(4,3)]	[]	[]	[(4,1)]	TAGGA)	(null)
+((4,3)	[(4,4)]	[]	[]	[(3,4),(4,2)]	AGGAG)	(null)
+((4,4)	[(5,3)]	[]	[]	[(4,3)]	GGAGT)	(null)
+((6,1)	[(6,2)]	[]	[]	[(2,2)]	AGCGC)	(null)
+((6,2)	[(6,3)]	[]	[]	[(6,1)]	GCGCA)	(null)
+((6,3)	[(6,4)]	[]	[]	[(2,4),(6,2)]	CGCAT)	(null)
+((6,4)	[]	[]	[]	[(6,3)]	GCATT)	(null)
+((1,1)	[(1,2)]	[]	[]	[]	AATGC)	(null)
+((1,2)	[(1,3)]	[(2,4)]	[]	[(1,1)]	ATGCG)	(null)
+((1,3)	[(1,4)]	[]	[]	[(1,2)]	TGCGC)	(null)
+((1,4)	[]	[(2,2)]	[]	[(1,3)]	GCGCT)	(null)
+((3,1)	[(3,2)]	[]	[(2,3)]	[]	CGCTA)	(null)
+((3,2)	[(4,1),(3,3)]	[]	[]	[(3,1)]	GCTAG)	(null)
+((3,3)	[(3,4)]	[]	[(2,1)]	[(3,2)]	CTAGG)	(null)
+((3,4)	[(4,3)]	[]	[]	[(3,3)]	TAGGA)	(null)
+((5,1)	[(5,2)]	[]	[]	[(4,2)]	AGGAG)	(null)
+((5,2)	[(5,3)]	[]	[]	[(5,1)]	GGAGT)	(null)
+((5,3)	[(5,4)]	[]	[]	[(4,4),(5,2)]	GAGTT)	(null)
+((5,4)	[]	[]	[]	[(5,3)]	AGTTG)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2.txt.svg b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2.txt.svg
new file mode 100644
index 0000000..70ffb5c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2.txt.svg
@@ -0,0 +1,587 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: walk_random_seq2_txt Pages: 1 -->
+<svg width="1260pt" height="669pt"
+ viewBox="0.00 0.00 1260.00 669.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 665)">
+<title>walk_random_seq2_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-665 1257,-665 1257,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-130 49,-331 211,-331 211,-130 49,-130"/>
+<text text-anchor="middle" x="130" y="-314.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="8,-558 8,-646 500,-646 500,-558 8,-558"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_3</title>
+<polygon fill="none" stroke="black" points="274,-200 274,-288 748,-288 748,-200 274,-200"/>
+</g>
+<g id="graph5" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="150,-462 150,-550 624,-550 624,-462 150,-462"/>
+</g>
+<g id="graph6" class="cluster"><title>cluster_5</title>
+<polygon fill="none" stroke="black" points="770,-8 770,-96 1244,-96 1244,-8 770,-8"/>
+</g>
+<g id="graph7" class="cluster"><title>cluster_4</title>
+<polygon fill="none" stroke="black" points="522,-104 522,-192 996,-192 996,-104 522,-104"/>
+</g>
+<g id="graph8" class="cluster"><title>cluster_6</title>
+<polygon fill="none" stroke="black" points="398,-366 398,-454 872,-454 872,-366 398,-366"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-279" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-279" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-279C74.8673,-279 156.744,-279 188.46,-279"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-282.5 198.862,-279 188.861,-275.5 188.862,-282.5"/>
+<text text-anchor="middle" x="130" y="-284.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-238" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-238" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-238C74.8673,-238 156.744,-238 188.46,-238"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-241.5 198.862,-238 188.861,-234.5 188.862,-241.5"/>
+<text text-anchor="middle" x="130" y="-243.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-197" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-197" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-197C74.8673,-197 156.744,-197 188.46,-197"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-200.5 198.862,-197 188.861,-193.5 188.862,-200.5"/>
+<text text-anchor="middle" x="130" y="-202.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-156" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-156" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-156C74.8673,-156 156.744,-156 188.46,-156"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-159.5 198.862,-156 188.861,-152.5 188.862,-159.5"/>
+<text text-anchor="middle" x="130" y="-161.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-602" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-613.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-594 37,-608 82,-608 82,-594 37,-594"/>
+<text text-anchor="start" x="43" y="-598.667" font-family="Times Roman,serif" font-size="10.00">AATGC</text>
+<polygon fill="#218559" stroke="#218559" points="37,-580 37,-594 82,-594 82,-580 37,-580"/>
+<text text-anchor="start" x="44" y="-584.667" font-family="Times Roman,serif" font-size="10.00">GCATT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-602" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-613.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-594 179,-608 224,-608 224,-594 179,-594"/>
+<text text-anchor="start" x="185" y="-598.667" font-family="Times Roman,serif" font-size="10.00">ATGCG</text>
+<polygon fill="#218559" stroke="#218559" points="179,-580 179,-594 224,-594 224,-580 179,-580"/>
+<text text-anchor="start" x="185" y="-584.667" font-family="Times Roman,serif" font-size="10.00">CGCAT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge77" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-595.755C116.207,-595.208 132.729,-595.105 148.049,-595.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-598.957 158.425,-595.756 148.534,-591.96 148.326,-598.957"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge83" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-608.244C143.825,-608.792 127.305,-608.895 111.982,-608.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-605.043 101.605,-608.245 111.497,-612.04 111.704,-605.043"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-602" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-613.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-594 303,-608 348,-608 348,-594 303,-594"/>
+<text text-anchor="start" x="308.5" y="-598.667" font-family="Times Roman,serif" font-size="10.00">TGCGC</text>
+<polygon fill="#218559" stroke="#218559" points="303,-580 303,-594 348,-594 348,-580 303,-580"/>
+<text text-anchor="start" x="307.5" y="-584.667" font-family="Times Roman,serif" font-size="10.00">GCGCA</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge79" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-595.562C252.601,-595.258 262.531,-595.176 272.159,-595.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-598.822 282.443,-595.554 272.527,-591.823 272.364,-598.822"/>
+</g>
+<!-- 2,4 -->
+<g id="node28" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-506" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-517.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-498 551,-512 596,-512 596,-498 551,-498"/>
+<text text-anchor="start" x="555.5" y="-502.667" font-family="Times Roman,serif" font-size="10.00">GCGCA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-484 551,-498 596,-498 596,-484 551,-484"/>
+<text text-anchor="start" x="556.5" y="-488.667" font-family="Times Roman,serif" font-size="10.00">TGCGC</text>
+</g>
+<!-- 1,2&#45;&gt;2,4 -->
+<g id="edge81" class="edge"><title>1,2&#45;&gt;2,4</title>
+<path fill="none" stroke="#ebb035" d="M231.143,-627.695C246.511,-640.796 262,-654 262,-654 262,-654 274,-661 274,-661 274,-661 500,-661 500,-661 500,-661 512,-639 512,-639 512,-639 535.266,-588.272 553.061,-549.474"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="556.462,-550.454 557.449,-539.906 550.099,-547.536 556.462,-550.454"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge87" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M282.443,-608.446C273.158,-608.745 263.225,-608.824 253.602,-608.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-605.175 243.327,-608.438 253.242,-612.173 253.407,-605.175"/>
+</g>
+<!-- 1,4 -->
+<g id="node18" class="node"><title>1,4</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-602" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-613.167" font-family="Times Roman,serif" font-size="10.00">1,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-594 427,-608 472,-608 472,-594 427,-594"/>
+<text text-anchor="start" x="432.5" y="-598.667" font-family="Times Roman,serif" font-size="10.00">GCGCT</text>
+<polygon fill="#218559" stroke="#218559" points="427,-580 427,-594 472,-594 472,-580 427,-580"/>
+<text text-anchor="start" x="431.5" y="-584.667" font-family="Times Roman,serif" font-size="10.00">AGCGC</text>
+</g>
+<!-- 1,3&#45;&gt;1,4 -->
+<g id="edge85" class="edge"><title>1,3&#45;&gt;1,4</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-595.562C376.601,-595.258 386.531,-595.176 396.159,-595.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-598.822 406.443,-595.554 396.527,-591.823 396.364,-598.822"/>
+</g>
+<!-- 1,4&#45;&gt;1,3 -->
+<g id="edge91" class="edge"><title>1,4&#45;&gt;1,3</title>
+<path fill="none" stroke="#218559" d="M406.443,-608.446C397.158,-608.745 387.225,-608.824 377.602,-608.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-605.175 367.327,-608.438 377.242,-612.173 377.407,-605.175"/>
+</g>
+<!-- 2,2 -->
+<g id="node26" class="node"><title>2,2</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-506" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-517.167" font-family="Times Roman,serif" font-size="10.00">2,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-498 303,-512 348,-512 348,-498 303,-498"/>
+<text text-anchor="start" x="309" y="-502.667" font-family="Times Roman,serif" font-size="10.00">TAGCG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-484 303,-498 348,-498 348,-484 303,-484"/>
+<text text-anchor="start" x="309" y="-488.667" font-family="Times Roman,serif" font-size="10.00">CGCTA</text>
+</g>
+<!-- 1,4&#45;&gt;2,2 -->
+<g id="edge89" class="edge"><title>1,4&#45;&gt;2,2</title>
+<path fill="none" stroke="#ebb035" d="M414.551,-580.127C399.843,-570.789 386,-562 386,-562 386,-562 374.667,-551.596 361.771,-539.757"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="363.804,-536.872 354.071,-532.688 359.07,-542.029 363.804,-536.872"/>
+</g>
+<!-- 3,1 -->
+<g id="node20" class="node"><title>3,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-244" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-255.167" font-family="Times Roman,serif" font-size="10.00">3,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-236 303,-250 348,-250 348,-236 303,-236"/>
+<text text-anchor="start" x="309" y="-240.667" font-family="Times Roman,serif" font-size="10.00">CGCTA</text>
+<polygon fill="#218559" stroke="#218559" points="303,-222 303,-236 348,-236 348,-222 303,-222"/>
+<text text-anchor="start" x="309" y="-226.667" font-family="Times Roman,serif" font-size="10.00">TAGCG</text>
+</g>
+<!-- 3,2 -->
+<g id="node21" class="node"><title>3,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-244" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-255.167" font-family="Times Roman,serif" font-size="10.00">3,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-236 427,-250 472,-250 472,-236 427,-236"/>
+<text text-anchor="start" x="433" y="-240.667" font-family="Times Roman,serif" font-size="10.00">GCTAG</text>
+<polygon fill="#218559" stroke="#218559" points="427,-222 427,-236 472,-236 472,-222 427,-222"/>
+<text text-anchor="start" x="433" y="-226.667" font-family="Times Roman,serif" font-size="10.00">CTAGC</text>
+</g>
+<!-- 3,1&#45;&gt;3,2 -->
+<g id="edge93" class="edge"><title>3,1&#45;&gt;3,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-237.562C376.601,-237.258 386.531,-237.176 396.159,-237.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-240.822 406.443,-237.554 396.527,-233.823 396.364,-240.822"/>
+</g>
+<!-- 2,3 -->
+<g id="node27" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-506" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-517.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-498 427,-512 472,-512 472,-498 427,-498"/>
+<text text-anchor="start" x="431.5" y="-502.667" font-family="Times Roman,serif" font-size="10.00">AGCGC</text>
+<polygon fill="#218559" stroke="#218559" points="427,-484 427,-498 472,-498 472,-484 427,-484"/>
+<text text-anchor="start" x="432.5" y="-488.667" font-family="Times Roman,serif" font-size="10.00">GCGCT</text>
+</g>
+<!-- 3,1&#45;&gt;2,3 -->
+<g id="edge95" class="edge"><title>3,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#06a2cb" d="M336.891,-278.859C357.577,-339.499 398,-458 398,-458 398,-458 404.502,-464.119 412.863,-471.988"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="410.54,-474.609 420.221,-478.914 415.338,-469.511 410.54,-474.609"/>
+</g>
+<!-- 3,2&#45;&gt;3,1 -->
+<g id="edge101" class="edge"><title>3,2&#45;&gt;3,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-250.446C397.158,-250.745 387.225,-250.824 377.602,-250.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-247.175 367.327,-250.438 377.242,-254.173 377.407,-247.175"/>
+</g>
+<!-- 3,3 -->
+<g id="node22" class="node"><title>3,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-244" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-255.167" font-family="Times Roman,serif" font-size="10.00">3,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-236 551,-250 596,-250 596,-236 551,-236"/>
+<text text-anchor="start" x="557" y="-240.667" font-family="Times Roman,serif" font-size="10.00">CTAGG</text>
+<polygon fill="#218559" stroke="#218559" points="551,-222 551,-236 596,-236 596,-222 551,-222"/>
+<text text-anchor="start" x="557" y="-226.667" font-family="Times Roman,serif" font-size="10.00">CCTAG</text>
+</g>
+<!-- 3,2&#45;&gt;3,3 -->
+<g id="edge99" class="edge"><title>3,2&#45;&gt;3,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-237.562C500.601,-237.258 510.531,-237.176 520.159,-237.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-240.822 530.443,-237.554 520.527,-233.823 520.364,-240.822"/>
+</g>
+<!-- 4,1 -->
+<g id="node35" class="node"><title>4,1</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-148" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">4,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-140 551,-154 596,-154 596,-140 551,-140"/>
+<text text-anchor="start" x="557" y="-144.667" font-family="Times Roman,serif" font-size="10.00">CTAGG</text>
+<polygon fill="#218559" stroke="#218559" points="551,-126 551,-140 596,-140 596,-126 551,-126"/>
+<text text-anchor="start" x="557" y="-130.667" font-family="Times Roman,serif" font-size="10.00">CCTAG</text>
+</g>
+<!-- 3,2&#45;&gt;4,1 -->
+<g id="edge97" class="edge"><title>3,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#dd1e2f" d="M479.143,-218.305C494.511,-205.204 510,-192 510,-192 510,-192 519.601,-185.295 531.307,-177.119"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="533.461,-179.884 539.655,-171.288 529.453,-174.145 533.461,-179.884"/>
+</g>
+<!-- 3,3&#45;&gt;3,2 -->
+<g id="edge107" class="edge"><title>3,3&#45;&gt;3,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-250.446C521.158,-250.745 511.225,-250.824 501.602,-250.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-247.175 491.327,-250.438 501.242,-254.173 501.407,-247.175"/>
+</g>
+<!-- 3,4 -->
+<g id="node23" class="node"><title>3,4</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-244" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-255.167" font-family="Times Roman,serif" font-size="10.00">3,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-236 675,-250 720,-250 720,-236 675,-236"/>
+<text text-anchor="start" x="681" y="-240.667" font-family="Times Roman,serif" font-size="10.00">TAGGA</text>
+<polygon fill="#218559" stroke="#218559" points="675,-222 675,-236 720,-236 720,-222 675,-222"/>
+<text text-anchor="start" x="682.5" y="-226.667" font-family="Times Roman,serif" font-size="10.00">TCCTA</text>
+</g>
+<!-- 3,3&#45;&gt;3,4 -->
+<g id="edge103" class="edge"><title>3,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-237.562C624.601,-237.258 634.531,-237.176 644.159,-237.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-240.822 654.443,-237.554 644.527,-233.823 644.364,-240.822"/>
+</g>
+<!-- 2,1 -->
+<g id="node25" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-506" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-517.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-498 179,-512 224,-512 224,-498 179,-498"/>
+<text text-anchor="start" x="185" y="-502.667" font-family="Times Roman,serif" font-size="10.00">CTAGC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-484 179,-498 224,-498 224,-484 179,-484"/>
+<text text-anchor="start" x="185" y="-488.667" font-family="Times Roman,serif" font-size="10.00">GCTAG</text>
+</g>
+<!-- 3,3&#45;&gt;2,1 -->
+<g id="edge105" class="edge"><title>3,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#06a2cb" d="M544.148,-271.271C523.744,-290.557 500,-313 500,-313 500,-313 398,-362 398,-362 398,-362 299.419,-434.059 241.729,-476.229"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="239.538,-473.494 233.531,-482.221 243.669,-479.146 239.538,-473.494"/>
+</g>
+<!-- 3,4&#45;&gt;3,3 -->
+<g id="edge111" class="edge"><title>3,4&#45;&gt;3,3</title>
+<path fill="none" stroke="#218559" d="M654.443,-250.446C645.158,-250.745 635.225,-250.824 625.602,-250.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-247.175 615.327,-250.438 625.242,-254.173 625.407,-247.175"/>
+</g>
+<!-- 4,3 -->
+<g id="node37" class="node"><title>4,3</title>
+<ellipse fill="none" stroke="black" cx="821" cy="-148" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="801.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">4,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="799,-140 799,-154 844,-154 844,-140 799,-140"/>
+<text text-anchor="start" x="803.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">AGGAG</text>
+<polygon fill="#218559" stroke="#218559" points="799,-126 799,-140 844,-140 844,-126 799,-126"/>
+<text text-anchor="start" x="806" y="-130.667" font-family="Times Roman,serif" font-size="10.00">CTCCT</text>
+</g>
+<!-- 3,4&#45;&gt;4,3 -->
+<g id="edge109" class="edge"><title>3,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M733.282,-224.419C747.287,-216.861 760,-210 760,-210 760,-210 772.484,-197.311 786.157,-183.414"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="788.837,-185.681 793.356,-176.098 783.847,-180.771 788.837,-185.681"/>
+</g>
+<!-- 2,1&#45;&gt;3,3 -->
+<g id="edge19" class="edge"><title>2,1&#45;&gt;3,3</title>
+<path fill="none" stroke="#06a2cb" d="M213.198,-471.207C230.999,-420.429 262,-332 262,-332 262,-332 500,-289 500,-289 500,-289 513.817,-280.483 529.429,-270.859"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="531.534,-273.673 538.21,-265.446 527.861,-267.714 531.534,-273.673"/>
+</g>
+<!-- 2,1&#45;&gt;2,2 -->
+<g id="edge17" class="edge"><title>2,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-499.562C252.601,-499.258 262.531,-499.176 272.159,-499.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-502.822 282.443,-499.554 272.527,-495.823 272.364,-502.822"/>
+</g>
+<!-- 2,2&#45;&gt;1,4 -->
+<g id="edge25" class="edge"><title>2,2&#45;&gt;1,4</title>
+<path fill="none" stroke="#ebb035" d="M356.611,-530.473C372.521,-542.79 391.976,-557.853 408.924,-570.973"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="406.965,-573.883 417.015,-577.238 411.251,-568.348 406.965,-573.883"/>
+</g>
+<!-- 2,2&#45;&gt;2,1 -->
+<g id="edge27" class="edge"><title>2,2&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M282.443,-512.446C273.158,-512.745 263.225,-512.824 253.602,-512.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-509.175 243.327,-512.438 253.242,-516.173 253.407,-509.175"/>
+</g>
+<!-- 2,2&#45;&gt;2,3 -->
+<g id="edge23" class="edge"><title>2,2&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-499.562C376.601,-499.258 386.531,-499.176 396.159,-499.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-502.822 406.443,-499.554 396.527,-495.823 396.364,-502.822"/>
+</g>
+<!-- 6,1 -->
+<g id="node40" class="node"><title>6,1</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-410" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-421.167" font-family="Times Roman,serif" font-size="10.00">6,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-402 427,-416 472,-416 472,-402 427,-402"/>
+<text text-anchor="start" x="431.5" y="-406.667" font-family="Times Roman,serif" font-size="10.00">AGCGC</text>
+<polygon fill="#218559" stroke="#218559" points="427,-388 427,-402 472,-402 472,-388 427,-388"/>
+<text text-anchor="start" x="432.5" y="-392.667" font-family="Times Roman,serif" font-size="10.00">GCGCT</text>
+</g>
+<!-- 2,2&#45;&gt;6,1 -->
+<g id="edge21" class="edge"><title>2,2&#45;&gt;6,1</title>
+<path fill="none" stroke="#dd1e2f" d="M356.611,-481.527C372.521,-469.21 391.976,-454.147 408.924,-441.027"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="411.251,-443.652 417.015,-434.762 406.965,-438.117 411.251,-443.652"/>
+</g>
+<!-- 2,3&#45;&gt;3,1 -->
+<g id="edge31" class="edge"><title>2,3&#45;&gt;3,1</title>
+<path fill="none" stroke="#06a2cb" d="M419.713,-479.502C403.261,-464.617 386,-449 386,-449 386,-449 356.323,-349.267 338.369,-288.928"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="341.693,-287.827 335.486,-279.241 334.984,-289.824 341.693,-287.827"/>
+</g>
+<!-- 2,3&#45;&gt;2,2 -->
+<g id="edge33" class="edge"><title>2,3&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M406.443,-512.446C397.158,-512.745 387.225,-512.824 377.602,-512.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-509.175 367.327,-512.438 377.242,-516.173 377.407,-509.175"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge29" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-499.562C500.601,-499.258 510.531,-499.176 520.159,-499.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-502.822 530.443,-499.554 520.527,-495.823 520.364,-502.822"/>
+</g>
+<!-- 2,4&#45;&gt;1,2 -->
+<g id="edge37" class="edge"><title>2,4&#45;&gt;1,2</title>
+<path fill="none" stroke="#ebb035" d="M555.885,-539.058C534.308,-580.734 500,-647 500,-647 500,-647 274,-647 274,-647 274,-647 260.183,-638.483 244.571,-628.859"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="246.139,-625.714 235.79,-623.446 242.466,-631.673 246.139,-625.714"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge39" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M530.443,-512.446C521.158,-512.745 511.225,-512.824 501.602,-512.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-509.175 491.327,-512.438 501.242,-516.173 501.407,-509.175"/>
+</g>
+<!-- 6,3 -->
+<g id="node42" class="node"><title>6,3</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-410" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-421.167" font-family="Times Roman,serif" font-size="10.00">6,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-402 675,-416 720,-416 720,-402 675,-402"/>
+<text text-anchor="start" x="681" y="-406.667" font-family="Times Roman,serif" font-size="10.00">CGCAT</text>
+<polygon fill="#218559" stroke="#218559" points="675,-388 675,-402 720,-402 720,-388 675,-388"/>
+<text text-anchor="start" x="681" y="-392.667" font-family="Times Roman,serif" font-size="10.00">ATGCG</text>
+</g>
+<!-- 2,4&#45;&gt;6,3 -->
+<g id="edge35" class="edge"><title>2,4&#45;&gt;6,3</title>
+<path fill="none" stroke="#dd1e2f" d="M607.817,-484.447C622.387,-475.427 636,-467 636,-467 636,-467 647.721,-456.047 660.888,-443.744"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="663.369,-446.216 668.286,-436.831 658.59,-441.101 663.369,-446.216"/>
+</g>
+<!-- 5,1 -->
+<g id="node30" class="node"><title>5,1</title>
+<ellipse fill="none" stroke="black" cx="821" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="801.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">5,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="799,-44 799,-58 844,-58 844,-44 799,-44"/>
+<text text-anchor="start" x="803.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">AGGAG</text>
+<polygon fill="#218559" stroke="#218559" points="799,-30 799,-44 844,-44 844,-30 799,-30"/>
+<text text-anchor="start" x="806" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">CTCCT</text>
+</g>
+<!-- 5,2 -->
+<g id="node31" class="node"><title>5,2</title>
+<ellipse fill="none" stroke="black" cx="945" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="925.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">5,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="923,-44 923,-58 968,-58 968,-44 923,-44"/>
+<text text-anchor="start" x="928.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">GGAGT</text>
+<polygon fill="#218559" stroke="#218559" points="923,-30 923,-44 968,-44 968,-30 923,-30"/>
+<text text-anchor="start" x="929.5" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">ACTCC</text>
+</g>
+<!-- 5,1&#45;&gt;5,2 -->
+<g id="edge113" class="edge"><title>5,1&#45;&gt;5,2</title>
+<path fill="none" stroke="#dd1e2f" d="M863.327,-45.5616C872.601,-45.2583 882.531,-45.1764 892.159,-45.3159"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="892.364,-48.8215 902.443,-45.5541 892.527,-41.8234 892.364,-48.8215"/>
+</g>
+<!-- 4,2 -->
+<g id="node36" class="node"><title>4,2</title>
+<ellipse fill="none" stroke="black" cx="697" cy="-148" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="677.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">4,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="675,-140 675,-154 720,-154 720,-140 675,-140"/>
+<text text-anchor="start" x="681" y="-144.667" font-family="Times Roman,serif" font-size="10.00">TAGGA</text>
+<polygon fill="#218559" stroke="#218559" points="675,-126 675,-140 720,-140 720,-126 675,-126"/>
+<text text-anchor="start" x="682.5" y="-130.667" font-family="Times Roman,serif" font-size="10.00">TCCTA</text>
+</g>
+<!-- 5,1&#45;&gt;4,2 -->
+<g id="edge115" class="edge"><title>5,1&#45;&gt;4,2</title>
+<path fill="none" stroke="#218559" d="M790.857,-77.6953C775.489,-90.7961 760,-104 760,-104 760,-104 750.399,-110.705 738.693,-118.881"/>
+<polygon fill="#218559" stroke="#218559" points="736.539,-116.116 730.345,-124.712 740.547,-121.855 736.539,-116.116"/>
+</g>
+<!-- 5,2&#45;&gt;5,1 -->
+<g id="edge119" class="edge"><title>5,2&#45;&gt;5,1</title>
+<path fill="none" stroke="#218559" d="M902.443,-58.4459C893.158,-58.7455 883.225,-58.8237 873.602,-58.6806"/>
+<polygon fill="#218559" stroke="#218559" points="873.407,-55.1751 863.327,-58.4384 873.242,-62.1732 873.407,-55.1751"/>
+</g>
+<!-- 5,3 -->
+<g id="node32" class="node"><title>5,3</title>
+<ellipse fill="none" stroke="black" cx="1069" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1049.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">5,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1047,-44 1047,-58 1092,-58 1092,-44 1047,-44"/>
+<text text-anchor="start" x="1053.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">GAGTT</text>
+<polygon fill="#218559" stroke="#218559" points="1047,-30 1047,-44 1092,-44 1092,-30 1047,-30"/>
+<text text-anchor="start" x="1053.5" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">AACTC</text>
+</g>
+<!-- 5,2&#45;&gt;5,3 -->
+<g id="edge117" class="edge"><title>5,2&#45;&gt;5,3</title>
+<path fill="none" stroke="#dd1e2f" d="M987.327,-45.5616C996.601,-45.2583 1006.53,-45.1764 1016.16,-45.3159"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1016.36,-48.8215 1026.44,-45.5541 1016.53,-41.8234 1016.36,-48.8215"/>
+</g>
+<!-- 5,3&#45;&gt;5,2 -->
+<g id="edge125" class="edge"><title>5,3&#45;&gt;5,2</title>
+<path fill="none" stroke="#218559" d="M1026.44,-58.4459C1017.16,-58.7455 1007.23,-58.8237 997.602,-58.6806"/>
+<polygon fill="#218559" stroke="#218559" points="997.407,-55.1751 987.327,-58.4384 997.242,-62.1732 997.407,-55.1751"/>
+</g>
+<!-- 5,4 -->
+<g id="node33" class="node"><title>5,4</title>
+<ellipse fill="none" stroke="black" cx="1193" cy="-52" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="1173.5" y="-63.1667" font-family="Times Roman,serif" font-size="10.00">5,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1171,-44 1171,-58 1216,-58 1216,-44 1171,-44"/>
+<text text-anchor="start" x="1177.5" y="-48.6667" font-family="Times Roman,serif" font-size="10.00">AGTTG</text>
+<polygon fill="#218559" stroke="#218559" points="1171,-30 1171,-44 1216,-44 1216,-30 1171,-30"/>
+<text text-anchor="start" x="1177" y="-34.6667" font-family="Times Roman,serif" font-size="10.00">CAACT</text>
+</g>
+<!-- 5,3&#45;&gt;5,4 -->
+<g id="edge121" class="edge"><title>5,3&#45;&gt;5,4</title>
+<path fill="none" stroke="#dd1e2f" d="M1111.33,-45.5616C1120.6,-45.2583 1130.53,-45.1764 1140.16,-45.3159"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1140.36,-48.8215 1150.44,-45.5541 1140.53,-41.8234 1140.36,-48.8215"/>
+</g>
+<!-- 4,4 -->
+<g id="node38" class="node"><title>4,4</title>
+<ellipse fill="none" stroke="black" cx="945" cy="-148" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="925.5" y="-159.167" font-family="Times Roman,serif" font-size="10.00">4,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="923,-140 923,-154 968,-154 968,-140 923,-140"/>
+<text text-anchor="start" x="928.5" y="-144.667" font-family="Times Roman,serif" font-size="10.00">GGAGT</text>
+<polygon fill="#218559" stroke="#218559" points="923,-126 923,-140 968,-140 968,-126 923,-126"/>
+<text text-anchor="start" x="929.5" y="-130.667" font-family="Times Roman,serif" font-size="10.00">ACTCC</text>
+</g>
+<!-- 5,3&#45;&gt;4,4 -->
+<g id="edge123" class="edge"><title>5,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#218559" d="M1041.36,-80.0975C1025.22,-96.502 1008,-114 1008,-114 1008,-114 1000.24,-118.188 990.168,-123.624"/>
+<polygon fill="#218559" stroke="#218559" points="988.42,-120.59 981.282,-128.419 991.745,-126.75 988.42,-120.59"/>
+</g>
+<!-- 5,4&#45;&gt;5,3 -->
+<g id="edge127" class="edge"><title>5,4&#45;&gt;5,3</title>
+<path fill="none" stroke="#218559" d="M1150.44,-58.4459C1141.16,-58.7455 1131.23,-58.8237 1121.6,-58.6806"/>
+<polygon fill="#218559" stroke="#218559" points="1121.41,-55.1751 1111.33,-58.4384 1121.24,-62.1732 1121.41,-55.1751"/>
+</g>
+<!-- 4,1&#45;&gt;3,2 -->
+<g id="edge43" class="edge"><title>4,1&#45;&gt;3,2</title>
+<path fill="none" stroke="#218559" d="M541.015,-172.762C525.051,-185.122 505.587,-200.19 488.68,-213.28"/>
+<polygon fill="#218559" stroke="#218559" points="486.376,-210.637 480.611,-219.527 490.661,-216.173 486.376,-210.637"/>
+</g>
+<!-- 4,1&#45;&gt;4,2 -->
+<g id="edge41" class="edge"><title>4,1&#45;&gt;4,2</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-141.562C624.601,-141.258 634.531,-141.176 644.159,-141.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-144.822 654.443,-141.554 644.527,-137.823 644.364,-144.822"/>
+</g>
+<!-- 4,2&#45;&gt;5,1 -->
+<g id="edge45" class="edge"><title>4,2&#45;&gt;5,1</title>
+<path fill="none" stroke="#dd1e2f" d="M728.611,-123.527C744.521,-111.21 763.976,-96.1473 780.924,-83.0268"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="783.251,-85.6517 789.015,-76.7624 778.965,-80.1166 783.251,-85.6517"/>
+</g>
+<!-- 4,2&#45;&gt;4,1 -->
+<g id="edge49" class="edge"><title>4,2&#45;&gt;4,1</title>
+<path fill="none" stroke="#218559" d="M654.443,-154.446C645.158,-154.745 635.225,-154.824 625.602,-154.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-151.175 615.327,-154.438 625.242,-158.173 625.407,-151.175"/>
+</g>
+<!-- 4,2&#45;&gt;4,3 -->
+<g id="edge47" class="edge"><title>4,2&#45;&gt;4,3</title>
+<path fill="none" stroke="#dd1e2f" d="M739.327,-141.562C748.601,-141.258 758.531,-141.176 768.159,-141.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="768.364,-144.822 778.443,-141.554 768.527,-137.823 768.364,-144.822"/>
+</g>
+<!-- 4,3&#45;&gt;3,4 -->
+<g id="edge53" class="edge"><title>4,3&#45;&gt;3,4</title>
+<path fill="none" stroke="#218559" d="M789.015,-172.762C773.051,-185.122 753.587,-200.19 736.68,-213.28"/>
+<polygon fill="#218559" stroke="#218559" points="734.376,-210.637 728.611,-219.527 738.661,-216.173 734.376,-210.637"/>
+</g>
+<!-- 4,3&#45;&gt;4,2 -->
+<g id="edge55" class="edge"><title>4,3&#45;&gt;4,2</title>
+<path fill="none" stroke="#218559" d="M778.443,-154.446C769.158,-154.745 759.225,-154.824 749.602,-154.681"/>
+<polygon fill="#218559" stroke="#218559" points="749.407,-151.175 739.327,-154.438 749.242,-158.173 749.407,-151.175"/>
+</g>
+<!-- 4,3&#45;&gt;4,4 -->
+<g id="edge51" class="edge"><title>4,3&#45;&gt;4,4</title>
+<path fill="none" stroke="#dd1e2f" d="M863.327,-141.562C872.601,-141.258 882.531,-141.176 892.159,-141.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="892.364,-144.822 902.443,-141.554 892.527,-137.823 892.364,-144.822"/>
+</g>
+<!-- 4,4&#45;&gt;5,3 -->
+<g id="edge57" class="edge"><title>4,4&#45;&gt;5,3</title>
+<path fill="none" stroke="#dd1e2f" d="M976.611,-123.527C992.521,-111.21 1011.98,-96.1473 1028.92,-83.0268"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="1031.25,-85.6517 1037.02,-76.7624 1026.97,-80.1166 1031.25,-85.6517"/>
+</g>
+<!-- 4,4&#45;&gt;4,3 -->
+<g id="edge59" class="edge"><title>4,4&#45;&gt;4,3</title>
+<path fill="none" stroke="#218559" d="M902.443,-154.446C893.158,-154.745 883.225,-154.824 873.602,-154.681"/>
+<polygon fill="#218559" stroke="#218559" points="873.407,-151.175 863.327,-154.438 873.242,-158.173 873.407,-151.175"/>
+</g>
+<!-- 6,1&#45;&gt;2,2 -->
+<g id="edge63" class="edge"><title>6,1&#45;&gt;2,2</title>
+<path fill="none" stroke="#218559" d="M415.655,-433.288C400.544,-443.843 386,-454 386,-454 386,-454 375.378,-463.055 362.998,-473.608"/>
+<polygon fill="#218559" stroke="#218559" points="360.482,-471.154 355.143,-480.305 365.023,-476.481 360.482,-471.154"/>
+</g>
+<!-- 6,2 -->
+<g id="node41" class="node"><title>6,2</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-410" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-421.167" font-family="Times Roman,serif" font-size="10.00">6,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-402 551,-416 596,-416 596,-402 551,-402"/>
+<text text-anchor="start" x="555.5" y="-406.667" font-family="Times Roman,serif" font-size="10.00">GCGCA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-388 551,-402 596,-402 596,-388 551,-388"/>
+<text text-anchor="start" x="556.5" y="-392.667" font-family="Times Roman,serif" font-size="10.00">TGCGC</text>
+</g>
+<!-- 6,1&#45;&gt;6,2 -->
+<g id="edge61" class="edge"><title>6,1&#45;&gt;6,2</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-403.562C500.601,-403.258 510.531,-403.176 520.159,-403.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-406.822 530.443,-403.554 520.527,-399.823 520.364,-406.822"/>
+</g>
+<!-- 6,2&#45;&gt;6,1 -->
+<g id="edge67" class="edge"><title>6,2&#45;&gt;6,1</title>
+<path fill="none" stroke="#218559" d="M530.443,-416.446C521.158,-416.745 511.225,-416.824 501.602,-416.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-413.175 491.327,-416.438 501.242,-420.173 501.407,-413.175"/>
+</g>
+<!-- 6,2&#45;&gt;6,3 -->
+<g id="edge65" class="edge"><title>6,2&#45;&gt;6,3</title>
+<path fill="none" stroke="#dd1e2f" d="M615.327,-403.562C624.601,-403.258 634.531,-403.176 644.159,-403.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="644.364,-406.822 654.443,-403.554 644.527,-399.823 644.364,-406.822"/>
+</g>
+<!-- 6,3&#45;&gt;2,4 -->
+<g id="edge71" class="edge"><title>6,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#218559" d="M665.015,-434.762C649.051,-447.122 629.587,-462.19 612.68,-475.28"/>
+<polygon fill="#218559" stroke="#218559" points="610.376,-472.637 604.611,-481.527 614.661,-478.173 610.376,-472.637"/>
+</g>
+<!-- 6,3&#45;&gt;6,2 -->
+<g id="edge73" class="edge"><title>6,3&#45;&gt;6,2</title>
+<path fill="none" stroke="#218559" d="M654.443,-416.446C645.158,-416.745 635.225,-416.824 625.602,-416.681"/>
+<polygon fill="#218559" stroke="#218559" points="625.407,-413.175 615.327,-416.438 625.242,-420.173 625.407,-413.175"/>
+</g>
+<!-- 6,4 -->
+<g id="node43" class="node"><title>6,4</title>
+<ellipse fill="none" stroke="black" cx="821" cy="-410" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="801.5" y="-421.167" font-family="Times Roman,serif" font-size="10.00">6,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="799,-402 799,-416 844,-416 844,-402 799,-402"/>
+<text text-anchor="start" x="806" y="-406.667" font-family="Times Roman,serif" font-size="10.00">GCATT</text>
+<polygon fill="#218559" stroke="#218559" points="799,-388 799,-402 844,-402 844,-388 799,-388"/>
+<text text-anchor="start" x="805" y="-392.667" font-family="Times Roman,serif" font-size="10.00">AATGC</text>
+</g>
+<!-- 6,3&#45;&gt;6,4 -->
+<g id="edge69" class="edge"><title>6,3&#45;&gt;6,4</title>
+<path fill="none" stroke="#dd1e2f" d="M739.327,-403.562C748.601,-403.258 758.531,-403.176 768.159,-403.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="768.364,-406.822 778.443,-403.554 768.527,-399.823 768.364,-406.822"/>
+</g>
+<!-- 6,4&#45;&gt;6,3 -->
+<g id="edge75" class="edge"><title>6,4&#45;&gt;6,3</title>
+<path fill="none" stroke="#218559" d="M778.443,-416.446C769.158,-416.745 759.225,-416.824 749.602,-416.681"/>
+<polygon fill="#218559" stroke="#218559" points="749.407,-413.175 739.327,-416.438 749.242,-420.173 749.407,-413.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/.part-0.crc
new file mode 100644
index 0000000..2372965
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/.part-1.crc
new file mode 100644
index 0000000..dc540d5
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/part-0 b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/part-0
new file mode 100755
index 0000000..f05a165
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/part-1 b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/part-1
new file mode 100755
index 0000000..54201ec
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/synthetic/walk_random_seq2/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip.txt b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip.txt
new file mode 100644
index 0000000..84f6828
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip.txt
@@ -0,0 +1,6 @@
+((2,1)	[(2,3)]	[]	[]	[]	GGAATA)	(null)
+((2,3)	[(2,4)]	[]	[]	[(2,1)]	AATAC)	(null)
+((2,4)	[]	[(1,2)]	[]	[(2,3)]	ATACG)	(null)
+((1,1)	[(1,2)]	[]	[]	[]	AACGT)	(null)
+((1,2)	[(1,3)]	[(2,4)]	[]	[(1,1)]	ACGTA)	(null)
+((1,3)	[]	[]	[]	[(1,2)]	CGTATA)	(null)
diff --git a/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip.txt.svg b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip.txt.svg
new file mode 100644
index 0000000..9f13c3f
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip.txt.svg
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+<!-- Title: fr_with_tip_txt Pages: 1 -->
+<svg width="640pt" height="417pt"
+ viewBox="0.00 0.00 640.00 417.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 413)">
+<title>fr_with_tip_txt</title>
+<polygon fill="white" stroke="white" points="-4,5 -4,-413 637,-413 637,5 -4,5"/>
+<g id="graph2" class="cluster"><title>cluster_legend</title>
+<polygon fill="none" stroke="black" points="49,-8 49,-209 211,-209 211,-8 49,-8"/>
+<text text-anchor="middle" x="130" y="-192.4" font-family="Times Roman,serif" font-size="14.00">legend</text>
+</g>
+<g id="graph3" class="cluster"><title>cluster_1</title>
+<polygon fill="none" stroke="black" points="274,-313 274,-401 624,-401 624,-313 274,-313"/>
+</g>
+<g id="graph4" class="cluster"><title>cluster_2</title>
+<polygon fill="none" stroke="black" points="8,-217 8,-305 376,-305 376,-217 8,-217"/>
+</g>
+<!-- legend_0_0 -->
+<g id="node2" class="node"><title>legend_0_0</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_0 -->
+<g id="node3" class="node"><title>legend_1_0</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-157" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_0&#45;&gt;legend_1_0 -->
+<g id="edge3" class="edge"><title>legend_0_0&#45;&gt;legend_1_0</title>
+<path fill="none" stroke="#dd1e2f" d="M61.0074,-157C74.8673,-157 156.744,-157 188.46,-157"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="188.862,-160.5 198.862,-157 188.861,-153.5 188.862,-160.5"/>
+<text text-anchor="middle" x="130" y="-162.4" font-family="Times Roman,serif" font-size="14.00">FF</text>
+</g>
+<!-- legend_0_1 -->
+<g id="node5" class="node"><title>legend_0_1</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_1 -->
+<g id="node6" class="node"><title>legend_1_1</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-116" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_1&#45;&gt;legend_1_1 -->
+<g id="edge5" class="edge"><title>legend_0_1&#45;&gt;legend_1_1</title>
+<path fill="none" stroke="#ebb035" d="M61.0074,-116C74.8673,-116 156.744,-116 188.46,-116"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="188.862,-119.5 198.862,-116 188.861,-112.5 188.862,-119.5"/>
+<text text-anchor="middle" x="130" y="-121.4" font-family="Times Roman,serif" font-size="14.00">FR</text>
+</g>
+<!-- legend_0_2 -->
+<g id="node8" class="node"><title>legend_0_2</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_2 -->
+<g id="node9" class="node"><title>legend_1_2</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-75" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_2&#45;&gt;legend_1_2 -->
+<g id="edge7" class="edge"><title>legend_0_2&#45;&gt;legend_1_2</title>
+<path fill="none" stroke="#06a2cb" d="M61.0074,-75C74.8673,-75 156.744,-75 188.46,-75"/>
+<polygon fill="#06a2cb" stroke="#06a2cb" points="188.862,-78.5001 198.862,-75 188.861,-71.5001 188.862,-78.5001"/>
+<text text-anchor="middle" x="130" y="-80.4" font-family="Times Roman,serif" font-size="14.00">RF</text>
+</g>
+<!-- legend_0_3 -->
+<g id="node11" class="node"><title>legend_0_3</title>
+<ellipse fill="black" stroke="black" cx="59" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_1_3 -->
+<g id="node12" class="node"><title>legend_1_3</title>
+<ellipse fill="black" stroke="black" cx="201" cy="-34" rx="1.8" ry="1.8"/>
+</g>
+<!-- legend_0_3&#45;&gt;legend_1_3 -->
+<g id="edge9" class="edge"><title>legend_0_3&#45;&gt;legend_1_3</title>
+<path fill="none" stroke="#218559" d="M61.0074,-34C74.8673,-34 156.744,-34 188.46,-34"/>
+<polygon fill="#218559" stroke="#218559" points="188.862,-37.5001 198.862,-34 188.861,-30.5001 188.862,-37.5001"/>
+<text text-anchor="middle" x="130" y="-39.4" font-family="Times Roman,serif" font-size="14.00">RR</text>
+</g>
+<!-- 1,1 -->
+<g id="node15" class="node"><title>1,1</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-349 303,-363 348,-363 348,-349 303,-349"/>
+<text text-anchor="start" x="309" y="-353.667" font-family="Times Roman,serif" font-size="10.00">AACGT</text>
+<polygon fill="#218559" stroke="#218559" points="303,-335 303,-349 348,-349 348,-335 303,-335"/>
+<text text-anchor="start" x="310" y="-339.667" font-family="Times Roman,serif" font-size="10.00">ACGTT</text>
+</g>
+<!-- 1,2 -->
+<g id="node16" class="node"><title>1,2</title>
+<ellipse fill="none" stroke="black" cx="449" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="429.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,2&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="427,-349 427,-363 472,-363 472,-349 427,-349"/>
+<text text-anchor="start" x="433.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">ACGTA</text>
+<polygon fill="#218559" stroke="#218559" points="427,-335 427,-349 472,-349 472,-335 427,-335"/>
+<text text-anchor="start" x="434" y="-339.667" font-family="Times Roman,serif" font-size="10.00">TACGT</text>
+</g>
+<!-- 1,1&#45;&gt;1,2 -->
+<g id="edge23" class="edge"><title>1,1&#45;&gt;1,2</title>
+<path fill="none" stroke="#dd1e2f" d="M367.327,-350.562C376.601,-350.258 386.531,-350.176 396.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="396.364,-353.822 406.443,-350.554 396.527,-346.823 396.364,-353.822"/>
+</g>
+<!-- 1,2&#45;&gt;1,1 -->
+<g id="edge29" class="edge"><title>1,2&#45;&gt;1,1</title>
+<path fill="none" stroke="#218559" d="M406.443,-363.446C397.158,-363.745 387.225,-363.824 377.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="377.407,-360.175 367.327,-363.438 377.242,-367.173 377.407,-360.175"/>
+</g>
+<!-- 1,3 -->
+<g id="node17" class="node"><title>1,3</title>
+<ellipse fill="none" stroke="black" cx="573" cy="-357" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="553.5" y="-368.167" font-family="Times Roman,serif" font-size="10.00">1,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="551,-349 551,-363 596,-363 596,-349 551,-349"/>
+<text text-anchor="start" x="555.5" y="-353.667" font-family="Times Roman,serif" font-size="10.00">CGTATA</text>
+<polygon fill="#218559" stroke="#218559" points="551,-335 551,-349 596,-349 596,-335 551,-335"/>
+<text text-anchor="start" x="555.5" y="-339.667" font-family="Times Roman,serif" font-size="10.00">TATACG</text>
+</g>
+<!-- 1,2&#45;&gt;1,3 -->
+<g id="edge25" class="edge"><title>1,2&#45;&gt;1,3</title>
+<path fill="none" stroke="#dd1e2f" d="M491.327,-350.562C500.601,-350.258 510.531,-350.176 520.159,-350.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="520.364,-353.822 530.443,-350.554 520.527,-346.823 520.364,-353.822"/>
+</g>
+<!-- 2,4 -->
+<g id="node21" class="node"><title>2,4</title>
+<ellipse fill="none" stroke="black" cx="325" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="305.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,4&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="303,-253 303,-267 348,-267 348,-253 303,-253"/>
+<text text-anchor="start" x="309.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">ATACG</text>
+<polygon fill="#218559" stroke="#218559" points="303,-239 303,-253 348,-253 348,-239 303,-239"/>
+<text text-anchor="start" x="310.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">CGTAT</text>
+</g>
+<!-- 1,2&#45;&gt;2,4 -->
+<g id="edge27" class="edge"><title>1,2&#45;&gt;2,4</title>
+<path fill="none" stroke="#ebb035" d="M415.655,-333.712C400.544,-323.157 386,-313 386,-313 386,-313 375.378,-303.945 362.998,-293.392"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="365.023,-290.519 355.143,-286.695 360.482,-295.846 365.023,-290.519"/>
+</g>
+<!-- 1,3&#45;&gt;1,2 -->
+<g id="edge31" class="edge"><title>1,3&#45;&gt;1,2</title>
+<path fill="none" stroke="#218559" d="M530.443,-363.446C521.158,-363.745 511.225,-363.824 501.602,-363.681"/>
+<polygon fill="#218559" stroke="#218559" points="501.407,-360.175 491.327,-363.438 501.242,-367.173 501.407,-360.175"/>
+</g>
+<!-- 2,1 -->
+<g id="node19" class="node"><title>2,1</title>
+<ellipse fill="none" stroke="black" cx="59" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="39.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,1&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="37,-253 37,-267 82,-267 82,-253 37,-253"/>
+<text text-anchor="start" x="39.5" y="-257.667" font-family="Times Roman,serif" font-size="10.00">GGAATA</text>
+<polygon fill="#218559" stroke="#218559" points="37,-239 37,-253 82,-253 82,-239 37,-239"/>
+<text text-anchor="start" x="42.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">TATTCC</text>
+</g>
+<!-- 2,3 -->
+<g id="node20" class="node"><title>2,3</title>
+<ellipse fill="none" stroke="black" cx="201" cy="-261" rx="43.1335" ry="36.0624"/>
+<text text-anchor="start" x="181.5" y="-272.167" font-family="Times Roman,serif" font-size="10.00">2,3&#45;&#45;null</text>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="179,-253 179,-267 224,-267 224,-253 179,-253"/>
+<text text-anchor="start" x="186" y="-257.667" font-family="Times Roman,serif" font-size="10.00">AATAC</text>
+<polygon fill="#218559" stroke="#218559" points="179,-239 179,-253 224,-253 224,-239 179,-239"/>
+<text text-anchor="start" x="187.5" y="-243.667" font-family="Times Roman,serif" font-size="10.00">GTATT</text>
+</g>
+<!-- 2,1&#45;&gt;2,3 -->
+<g id="edge13" class="edge"><title>2,1&#45;&gt;2,3</title>
+<path fill="none" stroke="#dd1e2f" d="M101.605,-254.755C116.207,-254.208 132.729,-254.105 148.049,-254.448"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="148.326,-257.957 158.425,-254.756 148.534,-250.96 148.326,-257.957"/>
+</g>
+<!-- 2,3&#45;&gt;2,1 -->
+<g id="edge17" class="edge"><title>2,3&#45;&gt;2,1</title>
+<path fill="none" stroke="#218559" d="M158.425,-267.244C143.825,-267.792 127.305,-267.895 111.982,-267.553"/>
+<polygon fill="#218559" stroke="#218559" points="111.704,-264.043 101.605,-267.245 111.497,-271.04 111.704,-264.043"/>
+</g>
+<!-- 2,3&#45;&gt;2,4 -->
+<g id="edge15" class="edge"><title>2,3&#45;&gt;2,4</title>
+<path fill="none" stroke="#dd1e2f" d="M243.327,-254.562C252.601,-254.258 262.531,-254.176 272.159,-254.316"/>
+<polygon fill="#dd1e2f" stroke="#dd1e2f" points="272.364,-257.822 282.443,-254.554 272.527,-250.823 272.364,-257.822"/>
+</g>
+<!-- 2,4&#45;&gt;1,2 -->
+<g id="edge19" class="edge"><title>2,4&#45;&gt;1,2</title>
+<path fill="none" stroke="#ebb035" d="M356.611,-285.473C372.521,-297.79 391.976,-312.853 408.924,-325.973"/>
+<polygon fill="#ebb035" stroke="#ebb035" points="406.965,-328.883 417.015,-332.238 411.251,-323.348 406.965,-328.883"/>
+</g>
+<!-- 2,4&#45;&gt;2,3 -->
+<g id="edge21" class="edge"><title>2,4&#45;&gt;2,3</title>
+<path fill="none" stroke="#218559" d="M282.443,-267.446C273.158,-267.745 263.225,-267.824 253.602,-267.681"/>
+<polygon fill="#218559" stroke="#218559" points="253.407,-264.175 243.327,-267.438 253.242,-271.173 253.407,-264.175"/>
+</g>
+</g>
+</svg>
diff --git a/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/.part-0.crc b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/.part-0.crc
new file mode 100644
index 0000000..35486b9
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/.part-0.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/.part-1.crc b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/.part-1.crc
new file mode 100644
index 0000000..53a0483
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/.part-1.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/part-0 b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/part-0
new file mode 100755
index 0000000..6077d6e
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/part-1 b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/part-1
new file mode 100755
index 0000000..5e8d3f9
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/graphs/tipremove/fr_with_tip/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input/reads/bubblemerge/five_ff_bubbles.txt b/genomix/genomix-pregelix/data/input/reads/bubblemerge/five_ff_bubbles.txt
new file mode 100644
index 0000000..63a8e55
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/bubblemerge/five_ff_bubbles.txt
@@ -0,0 +1,4 @@
+1	ACGTCCTT
+2	CGTCCTTA
+3	GTCCTTAG
+4	GTCCTTAG
diff --git a/genomix/genomix-pregelix/data/input/reads/bubblemerge/five_length1_bubbles.txt b/genomix/genomix-pregelix/data/input/reads/bubblemerge/five_length1_bubbles.txt
new file mode 100644
index 0000000..13190dd
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/bubblemerge/five_length1_bubbles.txt
@@ -0,0 +1,6 @@
+1	AATAGAAG
+2	AATAGAAG
+3	AATAGAAG
+4	AATAGAAG
+5	AATAGAAG
+6	AGAAGAAG
diff --git a/genomix/genomix-pregelix/data/input/reads/bubblemerge/fr_bubble.txt b/genomix/genomix-pregelix/data/input/reads/bubblemerge/fr_bubble.txt
new file mode 100644
index 0000000..4026c2c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/bubblemerge/fr_bubble.txt
@@ -0,0 +1,2 @@
+1	AAACGTAT
+2	GGAATACG
diff --git a/genomix/genomix-pregelix/data/input/reads/bubblemerge/fr_bubble_and_ff_bubble.txt b/genomix/genomix-pregelix/data/input/reads/bubblemerge/fr_bubble_and_ff_bubble.txt
new file mode 100644
index 0000000..e166418
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/bubblemerge/fr_bubble_and_ff_bubble.txt
@@ -0,0 +1,3 @@
+1	AAACGTAT
+2	CGTATTCC
+3	GGAATACG
diff --git a/genomix/genomix-pregelix/data/input/reads/bubblemerge/rf_bubble.txt b/genomix/genomix-pregelix/data/input/reads/bubblemerge/rf_bubble.txt
new file mode 100644
index 0000000..154dc8c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/bubblemerge/rf_bubble.txt
@@ -0,0 +1,3 @@
+1	ACGGTGTA
+2	ACCGTGGT
+
diff --git a/genomix/genomix-pregelix/data/input/reads/bubblemerge/small_bubble.txt b/genomix/genomix-pregelix/data/input/reads/bubblemerge/small_bubble.txt
new file mode 100644
index 0000000..3e3bf7b
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/bubblemerge/small_bubble.txt
@@ -0,0 +1,2 @@
+1	AATAGAAG
+2	AGAAGCCC
diff --git a/genomix/genomix-pregelix/data/input/reads/bubblemerge/tip_and_bubble.txt b/genomix/genomix-pregelix/data/input/reads/bubblemerge/tip_and_bubble.txt
new file mode 100644
index 0000000..958ccff
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/bubblemerge/tip_and_bubble.txt
@@ -0,0 +1,3 @@
+1	AATAGAAG
+2	ATAGACTA
+3	TAGACTAC
diff --git a/genomix/genomix-pregelix/data/input/reads/pathmerge/singleread.txt b/genomix/genomix-pregelix/data/input/reads/pathmerge/singleread.txt
new file mode 100644
index 0000000..63a95ad
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/pathmerge/singleread.txt
@@ -0,0 +1 @@
+1	AATAGAAG
diff --git a/genomix/genomix-pregelix/data/input/reads/synthetic/walk_random_seq1.txt b/genomix/genomix-pregelix/data/input/reads/synthetic/walk_random_seq1.txt
new file mode 100644
index 0000000..35f1c49
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/synthetic/walk_random_seq1.txt
@@ -0,0 +1,37 @@
+1	TAGTGCGA
+2	CCTCGCAC
+3	GCTAGGGT
+4	GAGGGTTG
+5	AGCAACCC
+6	GTTGCTGA
+7	TTTCAGCA
+8	CTGAAATC
+9	CAGATTTC
+10	GGCAGATT
+11	CTGGCAGA
+12	CTCTGGCA
+13	ATCTCTGG
+14	GCATCTCT
+15	CGGCATCT
+16	AACGGCAT
+17	GAAACGGC
+18	CGTTTCAA
+19	TATTGAAA
+20	TCAATACG
+21	AATACGTG
+22	TACGTGAA
+23	GTTTCACG
+24	TGAAACTA
+25	AAACTATT
+26	GTAATAGT
+27	TATTACGT
+28	TTACGTCA
+29	CATGACGT
+30	GTCATGAC
+31	GCGTCATG
+32	AAGCGTCA
+33	TCGCTTAA
+34	GCTTAAGC
+35	TCGCTTAA
+36	AAGCGTGT
+37	CCACACGC
diff --git a/genomix/genomix-pregelix/data/input/reads/synthetic/walk_random_seq2.txt b/genomix/genomix-pregelix/data/input/reads/synthetic/walk_random_seq2.txt
new file mode 100644
index 0000000..d65f7c0
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/synthetic/walk_random_seq2.txt
@@ -0,0 +1,6 @@
+1	AATGCGCT
+2	CTAGCGCA
+3	CGCTAGGA
+4	CTAGGAGT
+5	AGGAGTTG
+6	AGCGCATT
diff --git a/genomix/genomix-pregelix/data/input/reads/tipremove/fr_with_tip.txt b/genomix/genomix-pregelix/data/input/reads/tipremove/fr_with_tip.txt
new file mode 100644
index 0000000..b6e1640
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input/reads/tipremove/fr_with_tip.txt
@@ -0,0 +1,2 @@
+1	AACGTATA
+2	GGAATACG
diff --git a/genomix/genomix-pregelix/data/input2/.out.crc b/genomix/genomix-pregelix/data/input2/.out.crc
new file mode 100644
index 0000000..422fddb
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/.out.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/read/part-0 b/genomix/genomix-pregelix/data/input2/read/part-0
new file mode 100755
index 0000000..d702695
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/read/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/read/part-1 b/genomix/genomix-pregelix/data/input2/read/part-1
new file mode 100755
index 0000000..5bc30e8
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/read/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/read/part-2 b/genomix/genomix-pregelix/data/input2/read/part-2
new file mode 100755
index 0000000..474af09
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/read/part-2
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/read/part-3 b/genomix/genomix-pregelix/data/input2/read/part-3
new file mode 100755
index 0000000..98326a6
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/read/part-3
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/read2/part-0 b/genomix/genomix-pregelix/data/input2/read2/part-0
new file mode 100755
index 0000000..1620187
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/read2/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/read2/part-1 b/genomix/genomix-pregelix/data/input2/read2/part-1
new file mode 100755
index 0000000..d2e2476
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/read2/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/read2/part-2 b/genomix/genomix-pregelix/data/input2/read2/part-2
new file mode 100755
index 0000000..7f3575e
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/read2/part-2
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/read2/part-3 b/genomix/genomix-pregelix/data/input2/read2/part-3
new file mode 100755
index 0000000..03e23e1
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/read2/part-3
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/singleread b/genomix/genomix-pregelix/data/input2/singleread
new file mode 100644
index 0000000..f99f2a9
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/singleread
@@ -0,0 +1 @@
+1	CCGTACGC
diff --git a/genomix/genomix-pregelix/data/input2/tworeads/part-0 b/genomix/genomix-pregelix/data/input2/tworeads/part-0
new file mode 100755
index 0000000..b9cd4fb
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/tworeads/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/tworeads/part-1 b/genomix/genomix-pregelix/data/input2/tworeads/part-1
new file mode 100755
index 0000000..69638f9
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/tworeads/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/tworeads/part-2 b/genomix/genomix-pregelix/data/input2/tworeads/part-2
new file mode 100755
index 0000000..e69ce75
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/tworeads/part-2
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/tworeads/part-3 b/genomix/genomix-pregelix/data/input2/tworeads/part-3
new file mode 100755
index 0000000..77f352b
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/tworeads/part-3
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/tworeads_6 b/genomix/genomix-pregelix/data/input2/tworeads_6
new file mode 100644
index 0000000..6cea299
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/tworeads_6
@@ -0,0 +1,2 @@
+1	AATAGAAC
+2	CCGTACGC
diff --git a/genomix/genomix-pregelix/data/input2/unmerge_read/part-0 b/genomix/genomix-pregelix/data/input2/unmerge_read/part-0
new file mode 100755
index 0000000..aab2f64
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/unmerge_read/part-0
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/unmerge_read/part-1 b/genomix/genomix-pregelix/data/input2/unmerge_read/part-1
new file mode 100755
index 0000000..d7b24b3
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/unmerge_read/part-1
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/unmerge_read/part-2 b/genomix/genomix-pregelix/data/input2/unmerge_read/part-2
new file mode 100755
index 0000000..f82775c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/unmerge_read/part-2
Binary files differ
diff --git a/genomix/genomix-pregelix/data/input2/unmerge_read/part-3 b/genomix/genomix-pregelix/data/input2/unmerge_read/part-3
new file mode 100755
index 0000000..b7a3925
--- /dev/null
+++ b/genomix/genomix-pregelix/data/input2/unmerge_read/part-3
Binary files differ
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/2/result.ps b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/2/result.ps
new file mode 100644
index 0000000..19f638a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/2/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 108 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 72 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+32 19 31.82 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 29 (AAT) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 108 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/3/result.ps b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/3/result.ps
new file mode 100644
index 0000000..aa8e89c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/3/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 106 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 70 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% ATA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+31 19 31.11 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17 15.4 moveto 28 (ATA) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 106 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/4/result.ps b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/4/result.ps
new file mode 100644
index 0000000..aa8e89c
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/4/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 106 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 70 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% ATA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+31 19 31.11 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17 15.4 moveto 28 (ATA) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 106 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/5/result.ps b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/5/result.ps
new file mode 100644
index 0000000..f22a610
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/5/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 110 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 74 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AGA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+33 19 33.23 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 31 (AGA) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 110 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/6/result.ps b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/6/result.ps
new file mode 100644
index 0000000..c293727
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/6/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 106 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 70 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% CTA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+31 19 31.11 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17 15.4 moveto 28 (CTA) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 106 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/7/result.ps b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/7/result.ps
new file mode 100644
index 0000000..f22a610
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/7/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 110 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 74 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AGA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+33 19 33.23 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 31 (AGA) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 110 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/8/result.ps b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/8/result.ps
new file mode 100644
index 0000000..f22a610
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/8/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 110 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 74 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AGA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+33 19 33.23 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 31 (AGA) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 110 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/9/result.ps b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/9/result.ps
new file mode 100644
index 0000000..f22a610
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/graphviz/9/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 110 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 74 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AGA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+33 19 33.23 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 31 (AGA) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 110 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.2.crc b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.2.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.2.crc
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.3.crc b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.3.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.3.crc
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.4.crc b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.4.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.4.crc
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.5.crc b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.5.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.5.crc
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.6.crc b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.6.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.6.crc
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.7.crc b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.7.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.7.crc
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.8.crc b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.8.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.8.crc
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.9.crc b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.9.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/.9.crc
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/2 b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/2
new file mode 100755
index 0000000..f00dc00
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/2
@@ -0,0 +1 @@
+AAT	{[(1-1_0)]	[]	[]	[]	[]	AATA}
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/3 b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/3
new file mode 100755
index 0000000..b32ce12
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/3
@@ -0,0 +1 @@
+ATA	{[(1-2_0)]	[]	[]	[]	[]	AATAG}
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/4 b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/4
new file mode 100755
index 0000000..7d695cd
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/4
@@ -0,0 +1 @@
+ATA	{[(1-2_0)]	[]	[]	[]	[]	AATAGA}
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/5 b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/5
new file mode 100755
index 0000000..dd2c522
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/5
@@ -0,0 +1 @@
+AGA	{[(1-4_0)]	[]	[]	[]	[]	AATAGAA}
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/6 b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/6
new file mode 100755
index 0000000..9daadca
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/6
@@ -0,0 +1 @@
+CTA	{[(1-3_0)]	[]	[]	[]	[]	GTTCTATT}
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/7 b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/7
new file mode 100755
index 0000000..72c2cd5
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/7
@@ -0,0 +1 @@
+AGA	{[(1-4_0)]	[]	[]	[]	[]	AATAGAACT}
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/8 b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/8
new file mode 100755
index 0000000..6ee8b4f
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/8
@@ -0,0 +1 @@
+AGA	{[(1-4_0)]	[]	[]	[]	[]	AATAGAACTT}
diff --git a/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/9 b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/9
new file mode 100755
index 0000000..1225238
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/LogAlgorithmForMergeGraph/txt/9
@@ -0,0 +1 @@
+AGA	{[(1-4_0)]	[]	[]	[]	[]	AATAGAACTTA}
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/2/result.ps b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/2/result.ps
new file mode 100644
index 0000000..19f638a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/2/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 108 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 72 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+32 19 31.82 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 29 (AAT) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 108 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/3/result.ps b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/3/result.ps
new file mode 100644
index 0000000..19f638a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/3/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 108 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 72 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+32 19 31.82 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 29 (AAT) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 108 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/4/result.ps b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/4/result.ps
new file mode 100644
index 0000000..19f638a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/4/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 108 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 72 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+32 19 31.82 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 29 (AAT) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 108 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/5/result.ps b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/5/result.ps
new file mode 100644
index 0000000..19f638a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/5/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 108 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 72 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+32 19 31.82 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 29 (AAT) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 108 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/6/result.ps b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/6/result.ps
new file mode 100644
index 0000000..19f638a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/6/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 108 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 72 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+32 19 31.82 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 29 (AAT) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 108 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/7/result.ps b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/7/result.ps
new file mode 100644
index 0000000..19f638a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/7/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 108 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 72 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+32 19 31.82 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 29 (AAT) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 108 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/8/result.ps b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/8/result.ps
new file mode 100644
index 0000000..19f638a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/8/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 108 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 72 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+32 19 31.82 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 29 (AAT) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 108 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/9/result.ps b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/9/result.ps
new file mode 100644
index 0000000..19f638a
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/graphviz/9/result.ps
@@ -0,0 +1,206 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 108 82
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 72 46 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+32 19 31.82 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 15.4 moveto 29 (AAT) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 108 82
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.2.crc b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.2.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.2.crc
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.3.crc b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.3.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.3.crc
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.4.crc b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.4.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.4.crc
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.5.crc b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.5.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.5.crc
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.6.crc b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.6.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.6.crc
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.7.crc b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.7.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.7.crc
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.8.crc b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.8.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.8.crc
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.9.crc b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.9.crc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/.9.crc
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/2 b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/2
new file mode 100755
index 0000000..f00dc00
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/2
@@ -0,0 +1 @@
+AAT	{[(1-1_0)]	[]	[]	[]	[]	AATA}
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/3 b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/3
new file mode 100755
index 0000000..588691b
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/3
@@ -0,0 +1 @@
+AAT	{[(1-1_0)]	[]	[]	[]	[]	AATAG}
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/4 b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/4
new file mode 100755
index 0000000..15476c2
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/4
@@ -0,0 +1 @@
+AAT	{[(1-1_0)]	[]	[]	[]	[]	AATAGA}
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/5 b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/5
new file mode 100755
index 0000000..33b2666
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/5
@@ -0,0 +1 @@
+AAT	{[(1-1_0)]	[]	[]	[]	[]	AATAGAA}
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/6 b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/6
new file mode 100755
index 0000000..c6ca9b5
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/6
@@ -0,0 +1 @@
+AAT	{[(1-1_0)]	[]	[]	[]	[]	AATAGAAC}
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/7 b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/7
new file mode 100755
index 0000000..bc487c7
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/7
@@ -0,0 +1 @@
+AAT	{[(1-1_0)]	[]	[]	[]	[]	AATAGAACT}
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/8 b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/8
new file mode 100755
index 0000000..f85f319
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/8
@@ -0,0 +1 @@
+AAT	{[(1-1_0)]	[]	[]	[]	[]	AATAGAACTT}
diff --git a/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/9 b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/9
new file mode 100755
index 0000000..30986e1
--- /dev/null
+++ b/genomix/genomix-pregelix/data/result/P4ForMergeGraph/txt/9
@@ -0,0 +1 @@
+AAT	{[(1-1_0)]	[]	[]	[]	[]	AATAGAACTTA}
diff --git a/genomix/genomix-pregelix/graph/BridgePath b/genomix/genomix-pregelix/graph/BridgePath
new file mode 100644
index 0000000..c10ea60
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/BridgePath
@@ -0,0 +1,14 @@
+ACCCC	C|G	1
+CCCCG	A|T	1
+CTCCG	A|T	1
+TTCCA	T|C	2
+ACTCC	C|G	1
+CCGTG	CT|	2
+TCCAC	T|CT	2
+CCACC	T|C	1
+CCACT	T|C	1
+CACCC	C|C	1
+TTTCC	|A	2
+CCCGT	C|G	1
+TCCGT	C|G	1
+CACTC	C|C	1
diff --git a/genomix/genomix-pregelix/graph/BridgePath_out.ps b/genomix/genomix-pregelix/graph/BridgePath_out.ps
new file mode 100644
index 0000000..9f66e44
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/BridgePath_out.ps
@@ -0,0 +1,603 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 248 674
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 212 638 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% ACCCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 241 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 237.4 moveto 49 (ACCCC) alignedtext
+grestore
+% CCCCG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 167 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+21.5 163.4 moveto 51 (CCCCG) alignedtext
+grestore
+% ACCCC->CCCCG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47 222.33 moveto
+47 214.26 47 204.65 47 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 50.5 195.67 moveto
+47 185.67 lineto
+43.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 50.5 195.67 moveto
+47 185.67 lineto
+43.5 195.67 lineto
+closepath stroke
+grestore
+% CCCGT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 93 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 89.4 moveto 49 (CCCGT) alignedtext
+grestore
+% CCCCG->CCCGT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47.25 148.33 moveto
+47.36 140.26 47.49 130.65 47.61 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.11 121.71 moveto
+47.75 111.67 lineto
+44.11 121.62 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.11 121.71 moveto
+47.75 111.67 lineto
+44.11 121.62 lineto
+closepath stroke
+grestore
+% CCGTG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+102 19 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+76.5 15.4 moveto 51 (CCGTG) alignedtext
+grestore
+% CCCGT->CCGTG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 61.07 75.09 moveto
+67.59 66.15 75.6 55.18 82.8 45.31 curveto
+stroke
+0 0 0 edgecolor
+newpath 85.79 47.15 moveto
+88.86 37 lineto
+80.14 43.02 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 85.79 47.15 moveto
+88.86 37 lineto
+80.14 43.02 lineto
+closepath stroke
+grestore
+% CTCCG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+158 167 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+133.5 163.4 moveto 49 (CTCCG) alignedtext
+grestore
+% TCCGT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+157 93 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+133 89.4 moveto 48 (TCCGT) alignedtext
+grestore
+% CTCCG->TCCGT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 157.75 148.33 moveto
+157.64 140.26 157.51 130.65 157.39 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 160.89 121.62 moveto
+157.25 111.67 lineto
+153.89 121.71 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 160.89 121.62 moveto
+157.25 111.67 lineto
+153.89 121.71 lineto
+closepath stroke
+grestore
+% TCCGT->CCGTG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 143.69 75.09 moveto
+137.05 66.15 128.89 55.18 121.56 45.31 curveto
+stroke
+0 0 0 edgecolor
+newpath 124.16 42.94 moveto
+115.38 37 lineto
+118.54 47.12 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 124.16 42.94 moveto
+115.38 37 lineto
+118.54 47.12 lineto
+closepath stroke
+grestore
+% TTCCA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+102 537 44.05 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+78.5 533.4 moveto 47 (TTCCA) alignedtext
+grestore
+% TCCAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+102 463 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+78 459.4 moveto 48 (TCCAC) alignedtext
+grestore
+% TTCCA->TCCAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 102 518.33 moveto
+102 510.26 102 500.65 102 491.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 105.5 491.67 moveto
+102 481.67 lineto
+98.5 491.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 105.5 491.67 moveto
+102 481.67 lineto
+98.5 491.67 lineto
+closepath stroke
+grestore
+% CCACC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 389 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 385.4 moveto 49 (CCACC) alignedtext
+grestore
+% TCCAC->CCACC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 88.69 445.09 moveto
+81.93 436 73.6 424.79 66.17 414.79 curveto
+stroke
+0 0 0 edgecolor
+newpath 68.97 412.69 moveto
+60.19 406.75 lineto
+63.35 416.86 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 68.97 412.69 moveto
+60.19 406.75 lineto
+63.35 416.86 lineto
+closepath stroke
+grestore
+% CCACT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+157 389 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+132.5 385.4 moveto 49 (CCACT) alignedtext
+grestore
+% TCCAC->CCACT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 115.31 445.09 moveto
+122.07 436 130.4 424.79 137.83 414.79 curveto
+stroke
+0 0 0 edgecolor
+newpath 140.65 416.86 moveto
+143.81 406.75 lineto
+135.03 412.69 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 140.65 416.86 moveto
+143.81 406.75 lineto
+135.03 412.69 lineto
+closepath stroke
+grestore
+% ACTCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+157 241 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+133 237.4 moveto 48 (ACTCC) alignedtext
+grestore
+% ACTCC->CTCCG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 157.25 222.33 moveto
+157.36 214.26 157.49 204.65 157.61 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 161.11 195.71 moveto
+157.75 185.67 lineto
+154.11 195.62 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 161.11 195.71 moveto
+157.75 185.67 lineto
+154.11 195.62 lineto
+closepath stroke
+grestore
+% CACCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 315 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 311.4 moveto 49 (CACCC) alignedtext
+grestore
+% CCACC->CACCC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47 370.33 moveto
+47 362.26 47 352.65 47 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 50.5 343.67 moveto
+47 333.67 lineto
+43.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 50.5 343.67 moveto
+47 333.67 lineto
+43.5 343.67 lineto
+closepath stroke
+grestore
+% CACTC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+157 315 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+133 311.4 moveto 48 (CACTC) alignedtext
+grestore
+% CCACT->CACTC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 157 370.33 moveto
+157 362.26 157 352.65 157 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 160.5 343.67 moveto
+157 333.67 lineto
+153.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 160.5 343.67 moveto
+157 333.67 lineto
+153.5 343.67 lineto
+closepath stroke
+grestore
+% CACCC->ACCCC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47 296.33 moveto
+47 288.26 47 278.65 47 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 50.5 269.67 moveto
+47 259.67 lineto
+43.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 50.5 269.67 moveto
+47 259.67 lineto
+43.5 269.67 lineto
+closepath stroke
+grestore
+% CACTC->ACTCC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 157 296.33 moveto
+157 288.26 157 278.65 157 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 160.5 269.67 moveto
+157 259.67 lineto
+153.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 160.5 269.67 moveto
+157 259.67 lineto
+153.5 269.67 lineto
+closepath stroke
+grestore
+% TTTCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+102 611 43.84 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+79 607.4 moveto 46 (TTTCC) alignedtext
+grestore
+% TTTCC->TTCCA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 102 592.33 moveto
+102 584.26 102 574.65 102 565.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 105.5 565.67 moveto
+102 555.67 lineto
+98.5 565.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 105.5 565.67 moveto
+102 555.67 lineto
+98.5 565.67 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 248 674
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/graph/CyclePath b/genomix/genomix-pregelix/graph/CyclePath
new file mode 100644
index 0000000..db30e3a
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/CyclePath
@@ -0,0 +1,10 @@
+GCAAC	|T	1
+CATCA	T|A	1
+CTTCA	A|T	1
+AACTT	C|C	1
+ACTTC	A|A	1
+TCAAC	A|T	1
+ATCAA	C|C	1
+TTCAT	C|C	1
+CAACT	GT|T	2
+TCATC	T|A	1
diff --git a/genomix/genomix-pregelix/graph/CyclePath_out.ps b/genomix/genomix-pregelix/graph/CyclePath_out.ps
new file mode 100644
index 0000000..1b13ecb
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/CyclePath_out.ps
@@ -0,0 +1,489 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 175 748
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 139 712 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% GCAAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+83 685 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+57 681.4 moveto 52 (GCAAC) alignedtext
+grestore
+% CAACT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+83 611 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+58.5 607.4 moveto 49 (CAACT) alignedtext
+grestore
+% GCAAC->CAACT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 83 666.33 moveto
+83 658.26 83 648.65 83 639.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 86.5 639.67 moveto
+83 629.67 lineto
+79.5 639.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 86.5 639.67 moveto
+83 629.67 lineto
+79.5 639.67 lineto
+closepath stroke
+grestore
+% AACTT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+46 537 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+21.5 533.4 moveto 49 (AACTT) alignedtext
+grestore
+% CAACT->AACTT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 73.85 592.71 moveto
+69.58 584.17 64.41 573.83 59.69 564.38 curveto
+stroke
+0 0 0 edgecolor
+newpath 62.77 562.72 moveto
+55.17 555.34 lineto
+56.51 565.85 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 62.77 562.72 moveto
+55.17 555.34 lineto
+56.51 565.85 lineto
+closepath stroke
+grestore
+% CATCA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 167 44.05 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 163.4 moveto 47 (CATCA) alignedtext
+grestore
+% ATCAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 93 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23 89.4 moveto 48 (ATCAA) alignedtext
+grestore
+% CATCA->ATCAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47 148.33 moveto
+47 140.26 47 130.65 47 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 50.5 121.67 moveto
+47 111.67 lineto
+43.5 121.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 50.5 121.67 moveto
+47 111.67 lineto
+43.5 121.67 lineto
+closepath stroke
+grestore
+% TCAAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+83 19 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+58.5 15.4 moveto 49 (TCAAC) alignedtext
+grestore
+% ATCAA->TCAAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 55.9 74.71 moveto
+60.05 66.17 65.08 55.83 69.68 46.38 curveto
+stroke
+0 0 0 edgecolor
+newpath 72.85 47.86 moveto
+74.08 37.34 lineto
+66.56 44.8 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 72.85 47.86 moveto
+74.08 37.34 lineto
+66.56 44.8 lineto
+closepath stroke
+grestore
+% CTTCA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 389 44.05 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 385.4 moveto 47 (CTTCA) alignedtext
+grestore
+% TTCAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 315 43.84 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+24 311.4 moveto 46 (TTCAT) alignedtext
+grestore
+% CTTCA->TTCAT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47 370.33 moveto
+47 362.26 47 352.65 47 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 50.5 343.67 moveto
+47 333.67 lineto
+43.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 50.5 343.67 moveto
+47 333.67 lineto
+43.5 343.67 lineto
+closepath stroke
+grestore
+% TCATC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 241 43.84 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+24 237.4 moveto 46 (TCATC) alignedtext
+grestore
+% TTCAT->TCATC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47 296.33 moveto
+47 288.26 47 278.65 47 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 50.5 269.67 moveto
+47 259.67 lineto
+43.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 50.5 269.67 moveto
+47 259.67 lineto
+43.5 269.67 lineto
+closepath stroke
+grestore
+% ACTTC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+47 463 44.05 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 459.4 moveto 47 (ACTTC) alignedtext
+grestore
+% AACTT->ACTTC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 46.25 518.33 moveto
+46.36 510.26 46.49 500.65 46.61 491.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 50.11 491.71 moveto
+46.75 481.67 lineto
+43.11 491.62 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 50.11 491.71 moveto
+46.75 481.67 lineto
+43.11 491.62 lineto
+closepath stroke
+grestore
+% ACTTC->CTTCA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47 444.33 moveto
+47 436.26 47 426.65 47 417.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 50.5 417.67 moveto
+47 407.67 lineto
+43.5 417.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 50.5 417.67 moveto
+47 407.67 lineto
+43.5 417.67 lineto
+closepath stroke
+grestore
+% TCAAC->CAACT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 90.67 37.32 moveto
+101.5 64.93 120 119.06 120 167 curveto
+120 463 120 463 120 463 curveto
+120 505.88 105.2 553.72 94.32 583.1 curveto
+stroke
+0 0 0 edgecolor
+newpath 90.96 582.09 moveto
+90.67 592.68 lineto
+97.5 584.58 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 90.96 582.09 moveto
+90.67 592.68 lineto
+97.5 584.58 lineto
+closepath stroke
+grestore
+% TCATC->CATCA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47 222.33 moveto
+47 214.26 47 204.65 47 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 50.5 195.67 moveto
+47 185.67 lineto
+43.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 50.5 195.67 moveto
+47 185.67 lineto
+43.5 195.67 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 175 748
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/graph/LongPath b/genomix/genomix-pregelix/graph/LongPath
new file mode 100644
index 0000000..82c0298
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/LongPath
@@ -0,0 +1,13 @@
+CTCAG	C|T	1
+AGTAC	C|G	1
+GGCCT	|C	1
+ACGCC	T|C	1
+CCTCA	G|G	1
+CCCGG	G|	1
+GCCTC	G|A	1
+CAGTA	T|C	1
+GTACG	A|C	1
+GCCCG	C|G	1
+CGCCC	A|G	1
+TCAGT	C|A	1
+TACGC	G|C	1
diff --git a/genomix/genomix-pregelix/graph/LongPath_out.ps b/genomix/genomix-pregelix/graph/LongPath_out.ps
new file mode 100644
index 0000000..1bef623
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/LongPath_out.ps
@@ -0,0 +1,554 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 140 970
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 104 934 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% CTCAG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 685 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 681.4 moveto 49 (CTCAG) alignedtext
+grestore
+% TCAGT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 611 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+24 607.4 moveto 48 (TCAGT) alignedtext
+grestore
+% CTCAG->TCAGT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 666.33 moveto
+48 658.26 48 648.65 48 639.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 639.67 moveto
+48 629.67 lineto
+44.5 639.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 639.67 moveto
+48 629.67 lineto
+44.5 639.67 lineto
+closepath stroke
+grestore
+% CAGTA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 537 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 533.4 moveto 49 (CAGTA) alignedtext
+grestore
+% TCAGT->CAGTA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 592.33 moveto
+48 584.26 48 574.65 48 565.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 565.67 moveto
+48 555.67 lineto
+44.5 565.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 565.67 moveto
+48 555.67 lineto
+44.5 565.67 lineto
+closepath stroke
+grestore
+% AGTAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 463 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 459.4 moveto 49 (AGTAC) alignedtext
+grestore
+% GTACG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 389 46.17 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23 385.4 moveto 50 (GTACG) alignedtext
+grestore
+% AGTAC->GTACG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 444.33 moveto
+48 436.26 48 426.65 48 417.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 417.67 moveto
+48 407.67 lineto
+44.5 417.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 417.67 moveto
+48 407.67 lineto
+44.5 417.67 lineto
+closepath stroke
+grestore
+% TACGC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 315 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 311.4 moveto 49 (TACGC) alignedtext
+grestore
+% GTACG->TACGC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 370.33 moveto
+48 362.26 48 352.65 48 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath stroke
+grestore
+% GGCCT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 907 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 903.4 moveto 52 (GGCCT) alignedtext
+grestore
+% GCCTC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 833 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 829.4 moveto 49 (GCCTC) alignedtext
+grestore
+% GGCCT->GCCTC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 888.33 moveto
+48 880.26 48 870.65 48 861.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 861.67 moveto
+48 851.67 lineto
+44.5 861.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 861.67 moveto
+48 851.67 lineto
+44.5 861.67 lineto
+closepath stroke
+grestore
+% CCTCA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 759 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+24 755.4 moveto 48 (CCTCA) alignedtext
+grestore
+% GCCTC->CCTCA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 814.33 moveto
+48 806.26 48 796.65 48 787.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 787.67 moveto
+48 777.67 lineto
+44.5 787.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 787.67 moveto
+48 777.67 lineto
+44.5 787.67 lineto
+closepath stroke
+grestore
+% ACGCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 241 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 237.4 moveto 51 (ACGCC) alignedtext
+grestore
+% CGCCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 167 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 163.4 moveto 51 (CGCCC) alignedtext
+grestore
+% ACGCC->CGCCC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 222.33 moveto
+48 214.26 48 204.65 48 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath stroke
+grestore
+% GCCCG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 93 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 89.4 moveto 52 (GCCCG) alignedtext
+grestore
+% CGCCC->GCCCG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 148.33 moveto
+48 140.26 48 130.65 48 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath stroke
+grestore
+% CCTCA->CTCAG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 740.33 moveto
+48 732.26 48 722.65 48 713.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 713.67 moveto
+48 703.67 lineto
+44.5 713.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 713.67 moveto
+48 703.67 lineto
+44.5 713.67 lineto
+closepath stroke
+grestore
+% CAGTA->AGTAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 518.33 moveto
+48 510.26 48 500.65 48 491.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 491.67 moveto
+48 481.67 lineto
+44.5 491.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 491.67 moveto
+48 481.67 lineto
+44.5 491.67 lineto
+closepath stroke
+grestore
+% TACGC->ACGCC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 296.33 moveto
+48 288.26 48 278.65 48 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath stroke
+grestore
+% CCCGG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 19 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 15.4 moveto 52 (CCCGG) alignedtext
+grestore
+% GCCCG->CCCGG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 74.33 moveto
+48 66.26 48 56.65 48 47.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 140 970
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/graph/Path b/genomix/genomix-pregelix/graph/Path
new file mode 100644
index 0000000..67d55ca
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/Path
@@ -0,0 +1,8 @@
+CTCAG	C|T	1
+AGTAC	C|G	1
+GGCCT	|C	1
+CCTCA	G|G	1
+GCCTC	G|A	1
+CAGTA	T|C	1
+GTACG	A|	1
+TCAGT	C|A	1
diff --git a/genomix/genomix-pregelix/graph/Path_out.ps b/genomix/genomix-pregelix/graph/Path_out.ps
new file mode 100644
index 0000000..43f733f
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/Path_out.ps
@@ -0,0 +1,409 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 140 600
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 104 564 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% CTCAG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 315 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 311.4 moveto 49 (CTCAG) alignedtext
+grestore
+% TCAGT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 241 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+24 237.4 moveto 48 (TCAGT) alignedtext
+grestore
+% CTCAG->TCAGT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 296.33 moveto
+48 288.26 48 278.65 48 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath stroke
+grestore
+% CAGTA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 167 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 163.4 moveto 49 (CAGTA) alignedtext
+grestore
+% TCAGT->CAGTA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 222.33 moveto
+48 214.26 48 204.65 48 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath stroke
+grestore
+% AGTAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 93 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 89.4 moveto 49 (AGTAC) alignedtext
+grestore
+% GTACG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 19 46.17 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23 15.4 moveto 50 (GTACG) alignedtext
+grestore
+% AGTAC->GTACG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 74.33 moveto
+48 66.26 48 56.65 48 47.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath stroke
+grestore
+% GGCCT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 537 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 533.4 moveto 52 (GGCCT) alignedtext
+grestore
+% GCCTC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 463 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 459.4 moveto 49 (GCCTC) alignedtext
+grestore
+% GGCCT->GCCTC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 518.33 moveto
+48 510.26 48 500.65 48 491.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 491.67 moveto
+48 481.67 lineto
+44.5 491.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 491.67 moveto
+48 481.67 lineto
+44.5 491.67 lineto
+closepath stroke
+grestore
+% CCTCA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 389 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+24 385.4 moveto 48 (CCTCA) alignedtext
+grestore
+% GCCTC->CCTCA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 444.33 moveto
+48 436.26 48 426.65 48 417.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 417.67 moveto
+48 407.67 lineto
+44.5 417.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 417.67 moveto
+48 407.67 lineto
+44.5 417.67 lineto
+closepath stroke
+grestore
+% CCTCA->CTCAG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 370.33 moveto
+48 362.26 48 352.65 48 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath stroke
+grestore
+% CAGTA->AGTAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 148.33 moveto
+48 140.26 48 130.65 48 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 140 600
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/graph/SimplePath b/genomix/genomix-pregelix/graph/SimplePath
new file mode 100644
index 0000000..2e0667e
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/SimplePath
@@ -0,0 +1,18 @@
+AGCAC	C|	1
+AAGAC	|A	1
+CAGCA	A|C	1
+TCGCA	A|T	1
+CGGCA	G|A	1
+TATCG	A|C	1
+CAAGA	G|A	1
+ACAGC	G|A	1
+ATCGC	T|A	1
+GCGGC	|A	1
+GCATC	C|	1
+ATATC	|G	1
+GCAAG	G|A	1
+GACAG	A|C	1
+CGCAT	T|C	1
+GGCAA	C|G	1
+AAGAA	C|	1
+AGACA	A|G	1
diff --git a/genomix/genomix-pregelix/graph/SimplePath_out.ps b/genomix/genomix-pregelix/graph/SimplePath_out.ps
new file mode 100644
index 0000000..3b3bf39
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/SimplePath_out.ps
@@ -0,0 +1,659 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 366 452
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 330 416 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAGAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 389 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 385.4 moveto 52 (AAGAC) alignedtext
+grestore
+% AGACA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 315 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 311.4 moveto 51 (AGACA) alignedtext
+grestore
+% AAGAC->AGACA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 370.33 moveto
+48 362.26 48 352.65 48 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath stroke
+grestore
+% GACAG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 241 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 237.4 moveto 52 (GACAG) alignedtext
+grestore
+% AGACA->GACAG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 296.33 moveto
+48 288.26 48 278.65 48 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath stroke
+grestore
+% CAGCA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 93 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 89.4 moveto 51 (CAGCA) alignedtext
+grestore
+% AGCAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 19 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 15.4 moveto 51 (AGCAC) alignedtext
+grestore
+% CAGCA->AGCAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 74.33 moveto
+48 66.26 48 56.65 48 47.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath stroke
+grestore
+% TCGCA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+160 167 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+135.5 163.4 moveto 49 (TCGCA) alignedtext
+grestore
+% CGCAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+160 93 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+135.5 89.4 moveto 49 (CGCAT) alignedtext
+grestore
+% TCGCA->CGCAT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 160 148.33 moveto
+160 140.26 160 130.65 160 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 163.5 121.67 moveto
+160 111.67 lineto
+156.5 121.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 163.5 121.67 moveto
+160 111.67 lineto
+156.5 121.67 lineto
+closepath stroke
+grestore
+% GCATC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+160 19 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+135.5 15.4 moveto 49 (GCATC) alignedtext
+grestore
+% CGCAT->GCATC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 160 74.33 moveto
+160 66.26 160 56.65 160 47.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 163.5 47.67 moveto
+160 37.67 lineto
+156.5 47.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 163.5 47.67 moveto
+160 37.67 lineto
+156.5 47.67 lineto
+closepath stroke
+grestore
+% CGGCA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+273 315 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+247 311.4 moveto 52 (CGGCA) alignedtext
+grestore
+% GGCAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+273 241 48.79 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+246.5 237.4 moveto 53 (GGCAA) alignedtext
+grestore
+% CGGCA->GGCAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 273 296.33 moveto
+273 288.26 273 278.65 273 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 276.5 269.67 moveto
+273 259.67 lineto
+269.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 276.5 269.67 moveto
+273 259.67 lineto
+269.5 269.67 lineto
+closepath stroke
+grestore
+% GCAAG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+273 167 48.79 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+246.5 163.4 moveto 53 (GCAAG) alignedtext
+grestore
+% GGCAA->GCAAG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 273 222.33 moveto
+273 214.26 273 204.65 273 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 276.5 195.67 moveto
+273 185.67 lineto
+269.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 276.5 195.67 moveto
+273 185.67 lineto
+269.5 195.67 lineto
+closepath stroke
+grestore
+% TATCG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+160 315 44.05 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+136.5 311.4 moveto 47 (TATCG) alignedtext
+grestore
+% ATCGC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+160 241 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+135.5 237.4 moveto 49 (ATCGC) alignedtext
+grestore
+% TATCG->ATCGC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 160 296.33 moveto
+160 288.26 160 278.65 160 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 163.5 269.67 moveto
+160 259.67 lineto
+156.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 163.5 269.67 moveto
+160 259.67 lineto
+156.5 269.67 lineto
+closepath stroke
+grestore
+% ATCGC->TCGCA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 160 222.33 moveto
+160 214.26 160 204.65 160 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 163.5 195.67 moveto
+160 185.67 lineto
+156.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 163.5 195.67 moveto
+160 185.67 lineto
+156.5 195.67 lineto
+closepath stroke
+grestore
+% CAAGA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+273 93 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+247 89.4 moveto 52 (CAAGA) alignedtext
+grestore
+% AAGAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+273 19 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+247 15.4 moveto 52 (AAGAA) alignedtext
+grestore
+% CAAGA->AAGAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 273 74.33 moveto
+273 66.26 273 56.65 273 47.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 276.5 47.67 moveto
+273 37.67 lineto
+269.5 47.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 276.5 47.67 moveto
+273 37.67 lineto
+269.5 47.67 lineto
+closepath stroke
+grestore
+% ACAGC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 167 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 163.4 moveto 51 (ACAGC) alignedtext
+grestore
+% ACAGC->CAGCA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 148.33 moveto
+48 140.26 48 130.65 48 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath stroke
+grestore
+% GCGGC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+273 389 49 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+246 385.4 moveto 54 (GCGGC) alignedtext
+grestore
+% GCGGC->CGGCA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 273 370.33 moveto
+273 362.26 273 352.65 273 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 276.5 343.67 moveto
+273 333.67 lineto
+269.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 276.5 343.67 moveto
+273 333.67 lineto
+269.5 343.67 lineto
+closepath stroke
+grestore
+% ATATC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+160 389 43.13 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+137.5 385.4 moveto 45 (ATATC) alignedtext
+grestore
+% ATATC->TATCG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 160 370.33 moveto
+160 362.26 160 352.65 160 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 163.5 343.67 moveto
+160 333.67 lineto
+156.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 163.5 343.67 moveto
+160 333.67 lineto
+156.5 343.67 lineto
+closepath stroke
+grestore
+% GCAAG->CAAGA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 273 148.33 moveto
+273 140.26 273 130.65 273 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 276.5 121.67 moveto
+273 111.67 lineto
+269.5 121.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 276.5 121.67 moveto
+273 111.67 lineto
+269.5 121.67 lineto
+closepath stroke
+grestore
+% GACAG->ACAGC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 222.33 moveto
+48 214.26 48 204.65 48 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 366 452
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/graph/SinglePath b/genomix/genomix-pregelix/graph/SinglePath
new file mode 100644
index 0000000..02f42ba
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/SinglePath
@@ -0,0 +1,6 @@
+ACAAC	G|A	1
+CAACA	A|G	1
+ACAGT	A|	1
+AACAG	C|T	1
+GACAA	A|C	1
+AGACA	|A	1
diff --git a/genomix/genomix-pregelix/graph/SinglePath_out.ps b/genomix/genomix-pregelix/graph/SinglePath_out.ps
new file mode 100644
index 0000000..8371636
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/SinglePath_out.ps
@@ -0,0 +1,351 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 140 452
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 104 416 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% ACAAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 241 46.17 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23 237.4 moveto 50 (ACAAC) alignedtext
+grestore
+% CAACA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 167 46.17 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23 163.4 moveto 50 (CAACA) alignedtext
+grestore
+% ACAAC->CAACA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 222.33 moveto
+48 214.26 48 204.65 48 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath stroke
+grestore
+% AACAG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 93 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 89.4 moveto 52 (AACAG) alignedtext
+grestore
+% CAACA->AACAG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 148.33 moveto
+48 140.26 48 130.65 48 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath stroke
+grestore
+% ACAGT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 19 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 15.4 moveto 49 (ACAGT) alignedtext
+grestore
+% AACAG->ACAGT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 74.33 moveto
+48 66.26 48 56.65 48 47.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath stroke
+grestore
+% GACAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 315 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 311.4 moveto 52 (GACAA) alignedtext
+grestore
+% GACAA->ACAAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 296.33 moveto
+48 288.26 48 278.65 48 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath stroke
+grestore
+% AGACA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 389 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 385.4 moveto 51 (AGACA) alignedtext
+grestore
+% AGACA->GACAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 370.33 moveto
+48 362.26 48 352.65 48 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 140 452
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/graph/ThreeKmer b/genomix/genomix-pregelix/graph/ThreeKmer
new file mode 100644
index 0000000..7ce9890
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/ThreeKmer
@@ -0,0 +1,3 @@
+CTCGG	A|T	1
+ACTCG	|G	1
+TCGGT	C|	1
diff --git a/genomix/genomix-pregelix/graph/TreePath b/genomix/genomix-pregelix/graph/TreePath
new file mode 100644
index 0000000..0a3d5c6
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/TreePath
@@ -0,0 +1,29 @@
+CTAAA	A|C	1
+GTAAC	A|T	1
+CTCAG	C|T	2
+GCTAT	G|C	1
+AGTAC	C|G	1
+GGCCT	|CG	3
+ATCCC	T|	1
+ACGCC	T|C	1
+CCTCA	G|G	2
+CCCGG	G|	1
+CCTGG	G|C	1
+GCCTC	G|A	2
+CAGTA	T|AC	2
+TAAAC	C|	1
+ACTAA	A|A	1
+AGTAA	C|C	1
+TAACT	G|A	1
+GTACG	A|C	1
+GCCCG	C|G	1
+CGCCC	A|G	1
+TGGCT	C|A	1
+TATCC	C|C	1
+TCAGT	C|A	2
+TACGC	G|C	1
+CTGGC	C|T	1
+CTATC	G|C	1
+AACTA	T|A	1
+GCCTG	G|G	1
+GGCTA	T|T	1
diff --git a/genomix/genomix-pregelix/graph/TreePath_out.ps b/genomix/genomix-pregelix/graph/TreePath_out.ps
new file mode 100644
index 0000000..a1e7da1
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/TreePath_out.ps
@@ -0,0 +1,1018 @@
+%!PS-Adobe-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: G
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {	% i j npages
+	/npages exch def
+	/j exch def
+	/i exch def
+	/str 10 string def
+	npages 1 gt {
+		gsave
+			coordfont setfont
+			0 0 moveto
+			(\() show i str cvs show (,) show j str cvs show (\)) show
+		grestore
+	} if
+} bind def
+
+/set_font {
+	findfont exch
+	scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {			% width text
+	/text exch def
+	/width exch def
+	gsave
+		width 0 gt {
+			[] 0 setdash
+			text stringwidth pop width exch sub text length div 0 text ashow
+		} if
+	grestore
+} def
+
+/boxprim {				% xcorner ycorner xsize ysize
+		4 2 roll
+		moveto
+		2 copy
+		exch 0 rlineto
+		0 exch rlineto
+		pop neg 0 rlineto
+		closepath
+} bind def
+
+/ellipse_path {
+	/ry exch def
+	/rx exch def
+	/y exch def
+	/x exch def
+	matrix currentmatrix
+	newpath
+	x y translate
+	rx ry scale
+	0 0 1 0 360 arc
+	setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+	[	% layer color sequence - darkest to lightest
+		[0 0 0]
+		[.2 .8 .8]
+		[.4 .8 .8]
+		[.6 .8 .8]
+		[.8 .8 .8]
+	]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+	layercolorseq curlayer 1 sub layerlen mod get
+	aload pop sethsbcolor
+	/nodecolor {nopcolor} def
+	/edgecolor {nopcolor} def
+	/graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+	/myupper exch def
+	/mylower exch def
+	curlayer mylower lt
+	curlayer myupper gt
+	or
+	{invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 359 970
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 323 934 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% CTAAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+160 93 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+135.5 89.4 moveto 49 (CTAAA) alignedtext
+grestore
+% TAAAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+160 19 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+135.5 15.4 moveto 49 (TAAAC) alignedtext
+grestore
+% CTAAA->TAAAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 160 74.33 moveto
+160 66.26 160 56.65 160 47.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 163.5 47.67 moveto
+160 37.67 lineto
+156.5 47.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 163.5 47.67 moveto
+160 37.67 lineto
+156.5 47.67 lineto
+closepath stroke
+grestore
+% GTAAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+158 389 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+133.5 385.4 moveto 49 (GTAAC) alignedtext
+grestore
+% TAACT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+158 315 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+134 311.4 moveto 48 (TAACT) alignedtext
+grestore
+% GTAAC->TAACT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 158 370.33 moveto
+158 362.26 158 352.65 158 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 161.5 343.67 moveto
+158 333.67 lineto
+154.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 161.5 343.67 moveto
+158 333.67 lineto
+154.5 343.67 lineto
+closepath stroke
+grestore
+% AACTA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+159 241 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+134.5 237.4 moveto 49 (AACTA) alignedtext
+grestore
+% TAACT->AACTA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 158.25 296.33 moveto
+158.36 288.26 158.49 278.65 158.61 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 162.11 269.71 moveto
+158.75 259.67 lineto
+155.11 269.62 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 162.11 269.71 moveto
+158.75 259.67 lineto
+155.11 269.62 lineto
+closepath stroke
+grestore
+% CTCAG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+155 685 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+130.5 681.4 moveto 49 (CTCAG) alignedtext
+grestore
+% TCAGT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+155 611 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+131 607.4 moveto 48 (TCAGT) alignedtext
+grestore
+% CTCAG->TCAGT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 155 666.33 moveto
+155 658.26 155 648.65 155 639.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 158.5 639.67 moveto
+155 629.67 lineto
+151.5 639.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 158.5 639.67 moveto
+155 629.67 lineto
+151.5 639.67 lineto
+closepath stroke
+grestore
+% CAGTA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+155 537 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+130.5 533.4 moveto 49 (CAGTA) alignedtext
+grestore
+% TCAGT->CAGTA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 155 592.33 moveto
+155 584.26 155 574.65 155 565.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 158.5 565.67 moveto
+155 555.67 lineto
+151.5 565.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 158.5 565.67 moveto
+155 555.67 lineto
+151.5 565.67 lineto
+closepath stroke
+grestore
+% GCTAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+267 463 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+243 459.4 moveto 48 (GCTAT) alignedtext
+grestore
+% CTATC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+267 389 43.84 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+244 385.4 moveto 46 (CTATC) alignedtext
+grestore
+% GCTAT->CTATC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 267 444.33 moveto
+267 436.26 267 426.65 267 417.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 270.5 417.67 moveto
+267 407.67 lineto
+263.5 417.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 270.5 417.67 moveto
+267 407.67 lineto
+263.5 417.67 lineto
+closepath stroke
+grestore
+% TATCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+267 315 43.84 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+244 311.4 moveto 46 (TATCC) alignedtext
+grestore
+% CTATC->TATCC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 267 370.33 moveto
+267 362.26 267 352.65 267 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 270.5 343.67 moveto
+267 333.67 lineto
+263.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 270.5 343.67 moveto
+267 333.67 lineto
+263.5 343.67 lineto
+closepath stroke
+grestore
+% AGTAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 463 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 459.4 moveto 49 (AGTAC) alignedtext
+grestore
+% GTACG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 389 46.17 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23 385.4 moveto 50 (GTACG) alignedtext
+grestore
+% AGTAC->GTACG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 444.33 moveto
+48 436.26 48 426.65 48 417.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 417.67 moveto
+48 407.67 lineto
+44.5 417.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 417.67 moveto
+48 407.67 lineto
+44.5 417.67 lineto
+closepath stroke
+grestore
+% TACGC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 315 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+23.5 311.4 moveto 49 (TACGC) alignedtext
+grestore
+% GTACG->TACGC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 370.33 moveto
+48 362.26 48 352.65 48 343.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 343.67 moveto
+48 333.67 lineto
+44.5 343.67 lineto
+closepath stroke
+grestore
+% GGCCT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+211 907 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+185 903.4 moveto 52 (GGCCT) alignedtext
+grestore
+% GCCTC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+155 833 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+130.5 829.4 moveto 49 (GCCTC) alignedtext
+grestore
+% GGCCT->GCCTC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 197.44 889.09 moveto
+190.57 880 182.09 868.79 174.52 858.79 curveto
+stroke
+0 0 0 edgecolor
+newpath 177.26 856.61 moveto
+168.43 850.75 lineto
+171.67 860.83 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 177.26 856.61 moveto
+168.43 850.75 lineto
+171.67 860.83 lineto
+closepath stroke
+grestore
+% GCCTG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+267 833 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+241 829.4 moveto 52 (GCCTG) alignedtext
+grestore
+% GGCCT->GCCTG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 224.56 889.09 moveto
+231.38 880.06 239.79 868.96 247.32 859.01 curveto
+stroke
+0 0 0 edgecolor
+newpath 250.13 861.09 moveto
+253.37 851 lineto
+244.55 856.87 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 250.13 861.09 moveto
+253.37 851 lineto
+244.55 856.87 lineto
+closepath stroke
+grestore
+% CCTCA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+155 759 44.76 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+131 755.4 moveto 48 (CCTCA) alignedtext
+grestore
+% GCCTC->CCTCA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 155 814.33 moveto
+155 806.26 155 796.65 155 787.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 158.5 787.67 moveto
+155 777.67 lineto
+151.5 787.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 158.5 787.67 moveto
+155 777.67 lineto
+151.5 787.67 lineto
+closepath stroke
+grestore
+% CCTGG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+267 759 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+241 755.4 moveto 52 (CCTGG) alignedtext
+grestore
+% GCCTG->CCTGG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 267 814.33 moveto
+267 806.26 267 796.65 267 787.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 270.5 787.67 moveto
+267 777.67 lineto
+263.5 787.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 270.5 787.67 moveto
+267 777.67 lineto
+263.5 787.67 lineto
+closepath stroke
+grestore
+% ACGCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 241 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 237.4 moveto 51 (ACGCC) alignedtext
+grestore
+% CGCCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 167 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22.5 163.4 moveto 51 (CGCCC) alignedtext
+grestore
+% ACGCC->CGCCC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 222.33 moveto
+48 214.26 48 204.65 48 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 195.67 moveto
+48 185.67 lineto
+44.5 195.67 lineto
+closepath stroke
+grestore
+% GCCCG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 93 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 89.4 moveto 52 (GCCCG) alignedtext
+grestore
+% CGCCC->GCCCG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 148.33 moveto
+48 140.26 48 130.65 48 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 121.67 moveto
+48 111.67 lineto
+44.5 121.67 lineto
+closepath stroke
+grestore
+% CCTCA->CTCAG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 155 740.33 moveto
+155 732.26 155 722.65 155 713.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 158.5 713.67 moveto
+155 703.67 lineto
+151.5 713.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 158.5 713.67 moveto
+155 703.67 lineto
+151.5 713.67 lineto
+closepath stroke
+grestore
+% CTGGC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+267 685 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+241 681.4 moveto 52 (CTGGC) alignedtext
+grestore
+% CCTGG->CTGGC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 267 740.33 moveto
+267 732.26 267 722.65 267 713.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 270.5 713.67 moveto
+267 703.67 lineto
+263.5 713.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 270.5 713.67 moveto
+267 703.67 lineto
+263.5 713.67 lineto
+closepath stroke
+grestore
+% TGGCT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+267 611 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+241.5 607.4 moveto 51 (TGGCT) alignedtext
+grestore
+% CTGGC->TGGCT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 267 666.33 moveto
+267 658.26 267 648.65 267 639.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 270.5 639.67 moveto
+267 629.67 lineto
+263.5 639.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 270.5 639.67 moveto
+267 629.67 lineto
+263.5 639.67 lineto
+closepath stroke
+grestore
+% CAGTA->AGTAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 131.78 520.94 moveto
+116.5 510.37 96.3 496.4 79.56 484.83 curveto
+stroke
+0 0 0 edgecolor
+newpath 81.39 481.84 moveto
+71.17 479.03 lineto
+77.41 487.59 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 81.39 481.84 moveto
+71.17 479.03 lineto
+77.41 487.59 lineto
+closepath stroke
+grestore
+% AGTAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+158 463 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+133.5 459.4 moveto 49 (AGTAA) alignedtext
+grestore
+% CAGTA->AGTAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 155.76 518.33 moveto
+156.08 510.26 156.47 500.65 156.84 491.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 160.34 491.8 moveto
+157.24 481.67 lineto
+153.34 491.52 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 160.34 491.8 moveto
+157.24 481.67 lineto
+153.34 491.52 lineto
+closepath stroke
+grestore
+% AGTAA->GTAAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 158 444.33 moveto
+158 436.26 158 426.65 158 417.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 161.5 417.67 moveto
+158 407.67 lineto
+154.5 417.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 161.5 417.67 moveto
+158 407.67 lineto
+154.5 417.67 lineto
+closepath stroke
+grestore
+% ACTAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+159 167 45.96 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+134.5 163.4 moveto 49 (ACTAA) alignedtext
+grestore
+% ACTAA->CTAAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 159.25 148.33 moveto
+159.36 140.26 159.49 130.65 159.61 121.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 163.11 121.71 moveto
+159.75 111.67 lineto
+156.11 121.62 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 163.11 121.71 moveto
+159.75 111.67 lineto
+156.11 121.62 lineto
+closepath stroke
+grestore
+% AACTA->ACTAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 159 222.33 moveto
+159 214.26 159 204.65 159 195.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 162.5 195.67 moveto
+159 185.67 lineto
+155.5 195.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 162.5 195.67 moveto
+159 185.67 lineto
+155.5 195.67 lineto
+closepath stroke
+grestore
+% TACGC->ACGCC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 296.33 moveto
+48 288.26 48 278.65 48 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 269.67 moveto
+48 259.67 lineto
+44.5 269.67 lineto
+closepath stroke
+grestore
+% CCCGG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+48 19 48.08 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+22 15.4 moveto 52 (CCCGG) alignedtext
+grestore
+% GCCCG->CCCGG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 48 74.33 moveto
+48 66.26 48 56.65 48 47.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 51.5 47.67 moveto
+48 37.67 lineto
+44.5 47.67 lineto
+closepath stroke
+grestore
+% GGCTA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+267 537 46.88 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+241.5 533.4 moveto 51 (GGCTA) alignedtext
+grestore
+% TGGCT->GGCTA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 267 592.33 moveto
+267 584.26 267 574.65 267 565.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 270.5 565.67 moveto
+267 555.67 lineto
+263.5 565.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 270.5 565.67 moveto
+267 555.67 lineto
+263.5 565.67 lineto
+closepath stroke
+grestore
+% GGCTA->GCTAT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 267 518.33 moveto
+267 510.26 267 500.65 267 491.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 270.5 491.67 moveto
+267 481.67 lineto
+263.5 491.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 270.5 491.67 moveto
+267 481.67 lineto
+263.5 491.67 lineto
+closepath stroke
+grestore
+% ATCCC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+267 241 44.05 18.38 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+243.5 237.4 moveto 47 (ATCCC) alignedtext
+grestore
+% TATCC->ATCCC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 267 296.33 moveto
+267 288.26 267 278.65 267 269.71 curveto
+stroke
+0 0 0 edgecolor
+newpath 270.5 269.67 moveto
+267 259.67 lineto
+263.5 269.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 270.5 269.67 moveto
+267 259.67 lineto
+263.5 269.67 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 359 970
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/graph/mergeTest/BridgePath b/genomix/genomix-pregelix/graph/mergeTest/BridgePath
new file mode 100644
index 0000000..0717611
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/mergeTest/BridgePath
@@ -0,0 +1,2 @@
+TTTCCACTCCGTG
+TTTCCACCCCGTG
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/graph/mergeTest/CyclePath b/genomix/genomix-pregelix/graph/mergeTest/CyclePath
new file mode 100644
index 0000000..04080f4
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/mergeTest/CyclePath
@@ -0,0 +1 @@
+GCAACTTCATCAACT
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/graph/mergeTest/LongPath b/genomix/genomix-pregelix/graph/mergeTest/LongPath
new file mode 100644
index 0000000..acd3c1a
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/mergeTest/LongPath
@@ -0,0 +1 @@
+GGCCTCAGTACGCCCGG
diff --git a/genomix/genomix-pregelix/graph/mergeTest/Path b/genomix/genomix-pregelix/graph/mergeTest/Path
new file mode 100644
index 0000000..f63bbcf
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/mergeTest/Path
@@ -0,0 +1 @@
+GGCCTCAGTACG
diff --git a/genomix/genomix-pregelix/graph/mergeTest/SimplePath b/genomix/genomix-pregelix/graph/mergeTest/SimplePath
new file mode 100644
index 0000000..80c03af
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/mergeTest/SimplePath
@@ -0,0 +1,3 @@
+ATATCGCATC
+AAGACAGCAC
+GCGGCAAGAA
diff --git a/genomix/genomix-pregelix/graph/mergeTest/SinglePath b/genomix/genomix-pregelix/graph/mergeTest/SinglePath
new file mode 100644
index 0000000..56ef5f8
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/mergeTest/SinglePath
@@ -0,0 +1 @@
+AGACAACAGT
diff --git a/genomix/genomix-pregelix/graph/mergeTest/ThreeKmer b/genomix/genomix-pregelix/graph/mergeTest/ThreeKmer
new file mode 100644
index 0000000..ec004fa
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/mergeTest/ThreeKmer
@@ -0,0 +1 @@
+ACTCGGT
diff --git a/genomix/genomix-pregelix/graph/mergeTest/TreePath b/genomix/genomix-pregelix/graph/mergeTest/TreePath
new file mode 100644
index 0000000..f3c13ce
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/mergeTest/TreePath
@@ -0,0 +1,3 @@
+GGCCTGGCTATCCC
+GGCCTCAGTAACTAAAC
+GGCCTCAGTACGCCCGG
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/graph/mergeTest/TwoKmer b/genomix/genomix-pregelix/graph/mergeTest/TwoKmer
new file mode 100644
index 0000000..8c2a74b
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/mergeTest/TwoKmer
@@ -0,0 +1 @@
+ACACTG
diff --git a/genomix/genomix-pregelix/pom.xml b/genomix/genomix-pregelix/pom.xml
new file mode 100644
index 0000000..95227c5
--- /dev/null
+++ b/genomix/genomix-pregelix/pom.xml
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>edu.uci.ics.pregelix</groupId>
+	<artifactId>genomix-pregelix</artifactId>
+	<packaging>jar</packaging>
+	<version>0.2.6-SNAPSHOT</version>
+	<name>genomix-pregelix</name>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
+	<profiles>
+		<profile>
+			<id>macosx</id>
+			<activation>
+				<os>
+					<name>mac os x</name>
+				</os>
+				<jdk>1.7</jdk>
+			</activation>
+			<properties>
+				<jvm.extraargs>-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.KQueueSelectorProvider</jvm.extraargs>
+			</properties>
+		</profile>
+	</profiles>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.0.2</version>
+				<configuration>
+					<source>1.7</source>
+					<target>1.7</target>
+					<fork>true</fork>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<configuration>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+				<executions>
+					<execution>
+						<id>make-my-jar-with-dependencies</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>appassembler-maven-plugin</artifactId>
+				<version>1.3</version>
+				<executions>
+					<execution>
+						<configuration>
+							<programs>
+								<program>
+									<mainClass>edu.uci.ics.genomix.pregelix.example.Client</mainClass>
+									<name>pregelix</name>
+								</program>
+							</programs>
+							<repositoryLayout>flat</repositoryLayout>
+							<repositoryName>lib</repositoryName>
+						</configuration>
+						<phase>package</phase>
+						<goals>
+							<goal>assemble</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>2.7.2</version>
+				<configuration>
+					<forkMode>pertest</forkMode>
+					<argLine>-enableassertions -Xmx2047m -Dfile.encoding=UTF-8
+						-Djava.util.logging.config.file=src/test/resources/logging.properties</argLine>
+					<includes>
+						<include>**/*TestSuite.java</include>
+						<include>**/*Test.java</include>
+					</includes>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-clean-plugin</artifactId>
+				<configuration>
+					<filesets>
+						<fileset>
+							<directory>.</directory>
+							<includes>
+								<include>teststore*</include>
+								<include>edu*</include>
+								<include>actual*</include>
+								<include>build*</include>
+								<include>expect*</include>
+								<include>ClusterController*</include>
+								<include>edu.uci.*</include>
+							</includes>
+						</fileset>
+					</filesets>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.8.1</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>pregelix-core</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>genomix-data</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-dataflow-std</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-api</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-dataflow-common</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-data-std</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-control-cc</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-control-nc</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.kenai.nbpwr</groupId>
+			<artifactId>org-apache-commons-io</artifactId>
+			<version>1.3.1-201002241208</version>
+			<type>nbm</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks.examples</groupId>
+			<artifactId>hyracks-integration-tests</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-ipc</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.hadoop</groupId>
+			<artifactId>hadoop-core</artifactId>
+			<version>0.20.2</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.hadoop</groupId>
+			<artifactId>hadoop-test</artifactId>
+			<version>0.20.2</version>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-hdfs-core</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>hyracks-hdfs-core</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>genomix-hyracks</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>edu.uci.ics.hyracks</groupId>
+			<artifactId>genomix-hadoop</artifactId>
+			<version>0.2.6-SNAPSHOT</version>
+			<type>jar</type>
+			<scope>compile</scope>
+		</dependency>
+	</dependencies>
+
+	<scm>
+		<connection>scm:svn:https://hyracks.googlecode.com/svn/trunk/fullstack/pregelix</connection>
+		<developerConnection>scm:svn:https://hyracks.googlecode.com/svn/trunk/fullstack/pregelix</developerConnection>
+		<url>http://code.google.com/p/hyracks/source/browse/#svn/trunk/fullstack/pregelix</url>
+	</scm>
+
+	<distributionManagement>
+		<repository>
+			<id>hyracks-releases</id>
+			<url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-releases/</url>
+		</repository>
+		<snapshotRepository>
+			<id>hyracks-snapshots</id>
+			<url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-snapshots/</url>
+		</snapshotRepository>
+	</distributionManagement>
+
+	<reporting>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-changelog-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</reporting>
+
+	<repositories>
+		<repository>
+			<id>hyracks-public</id>
+			<url>http://obelix.ics.uci.edu/nexus/content/groups/hyracks-public/</url>
+		</repository>
+		<repository>
+			<id>jboss-public</id>
+			<url>https://repository.jboss.org/nexus/content/groups/public/</url>
+		</repository>
+	</repositories>
+
+	<pluginRepositories>
+		<pluginRepository>
+			<id>hyracks-public</id>
+			<url>http://obelix.ics.uci.edu/nexus/content/groups/hyracks-public/</url>
+			<releases>
+				<updatePolicy>always</updatePolicy>
+			</releases>
+		</pluginRepository>
+	</pluginRepositories>
+</project>
+
+
diff --git a/genomix/genomix-pregelix/src/main/assembly/binary-assembly.xml b/genomix/genomix-pregelix/src/main/assembly/binary-assembly.xml
new file mode 100755
index 0000000..0500499
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/assembly/binary-assembly.xml
@@ -0,0 +1,19 @@
+<assembly>
+  <id>binary-assembly</id>
+  <formats>
+    <format>zip</format>
+    <format>dir</format>
+  </formats>
+  <includeBaseDirectory>false</includeBaseDirectory>
+  <fileSets>
+    <fileSet>
+      <directory>target/appassembler/bin</directory>
+      <outputDirectory>bin</outputDirectory>
+      <fileMode>0755</fileMode>
+    </fileSet>
+    <fileSet>
+      <directory>target/appassembler/lib</directory>
+      <outputDirectory>lib</outputDirectory>
+    </fileSet>
+  </fileSets>
+</assembly>
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryDataCleanVertexInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryDataCleanVertexInputFormat.java
new file mode 100644
index 0000000..e4f0cde
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryDataCleanVertexInputFormat.java
@@ -0,0 +1,104 @@
+package edu.uci.ics.genomix.pregelix.api.io.binary;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.io.WritableComparable;
+import org.apache.hadoop.mapreduce.InputSplit;
+import org.apache.hadoop.mapreduce.JobContext;
+import org.apache.hadoop.mapreduce.RecordReader;
+import org.apache.hadoop.mapreduce.TaskAttemptContext;
+import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
+
+import edu.uci.ics.pregelix.api.io.VertexInputFormat;
+import edu.uci.ics.pregelix.api.io.VertexReader;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class BinaryDataCleanVertexInputFormat<I extends WritableComparable<?>, V extends Writable, E extends Writable, M extends Writable>
+        extends VertexInputFormat<I, V, E, M> {
+
+    /** Uses the SequenceFileInputFormat to do everything */
+    @SuppressWarnings("rawtypes")
+    protected SequenceFileInputFormat binaryInputFormat = new SequenceFileInputFormat();
+
+    /**
+     * Abstract class to be implemented by the user based on their specific
+     * vertex input. Easiest to ignore the key value separator and only use key
+     * instead.
+     * 
+     * @param <I>
+     *            Vertex index value
+     * @param <V>
+     *            Vertex value
+     * @param <E>
+     *            Edge value
+     */
+    public static abstract class BinaryDataCleanVertexReader<I extends WritableComparable<?>, V extends Writable, E extends Writable, M extends Writable>
+            implements VertexReader<I, V, E, M> {
+        /** Internal line record reader */
+        private final RecordReader<VKmerBytesWritable, VertexValueWritable> lineRecordReader;
+        /** Context passed to initialize */
+        private TaskAttemptContext context;
+
+        /**
+         * Initialize with the LineRecordReader.
+         * 
+         * @param recordReader
+         *            Line record reader from SequenceFileInputFormat
+         */
+        public BinaryDataCleanVertexReader(RecordReader<VKmerBytesWritable, VertexValueWritable> recordReader) {
+            this.lineRecordReader = recordReader;
+        }
+
+        @Override
+        public void initialize(InputSplit inputSplit, TaskAttemptContext context) throws IOException,
+                InterruptedException {
+            lineRecordReader.initialize(inputSplit, context);
+            this.context = context;
+        }
+
+        @Override
+        public void close() throws IOException {
+            lineRecordReader.close();
+        }
+
+        @Override
+        public float getProgress() throws IOException, InterruptedException {
+            return lineRecordReader.getProgress();
+        }
+
+        /**
+         * Get the line record reader.
+         * 
+         * @return Record reader to be used for reading.
+         */
+        protected RecordReader<VKmerBytesWritable, VertexValueWritable> getRecordReader() {
+            return lineRecordReader;
+        }
+
+        /**
+         * Get the context.
+         * 
+         * @return Context passed to initialize.
+         */
+        protected TaskAttemptContext getContext() {
+            return context;
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public List<InputSplit> getSplits(JobContext context, int numWorkers) throws IOException, InterruptedException {
+        // Ignore the hint of numWorkers here since we are using SequenceFileInputFormat
+        // to do this for us
+        return binaryInputFormat.getSplits(context);
+    }
+
+    @Override
+    public VertexReader<I, V, E, M> createVertexReader(InputSplit split, TaskAttemptContext context) throws IOException {
+        return null;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryDataCleanVertexOutputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryDataCleanVertexOutputFormat.java
new file mode 100644
index 0000000..30510a3
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryDataCleanVertexOutputFormat.java
@@ -0,0 +1,102 @@
+package edu.uci.ics.genomix.pregelix.api.io.binary;
+
+import java.io.IOException;
+
+import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.io.WritableComparable;
+import org.apache.hadoop.mapreduce.JobContext;
+import org.apache.hadoop.mapreduce.OutputCommitter;
+import org.apache.hadoop.mapreduce.RecordWriter;
+import org.apache.hadoop.mapreduce.TaskAttemptContext;
+import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;
+
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.pregelix.api.io.VertexOutputFormat;
+import edu.uci.ics.pregelix.api.io.VertexWriter;
+
+/**
+ * Abstract class that users should subclass to use their own text based vertex
+ * output format.
+ * 
+ * @param <I>
+ *            Vertex index value
+ * @param <V>
+ *            Vertex value
+ * @param <E>
+ *            Edge value
+ */
+@SuppressWarnings("rawtypes")
+public abstract class BinaryDataCleanVertexOutputFormat<I extends WritableComparable, V extends Writable, E extends Writable>
+        extends VertexOutputFormat<I, V, E> {
+    /** Uses the SequenceFileOutputFormat to do everything */
+    protected SequenceFileOutputFormat binaryOutputFormat = new SequenceFileOutputFormat();
+
+    /**
+     * Abstract class to be implemented by the user based on their specific
+     * vertex output. Easiest to ignore the key value separator and only use key
+     * instead.
+     * 
+     * @param <I>
+     *            Vertex index value
+     * @param <V>
+     *            Vertex value
+     * @param <E>
+     *            Edge value
+     */
+    public static abstract class BinaryVertexWriter<I extends WritableComparable, V extends Writable, E extends Writable>
+            implements VertexWriter<I, V, E> {
+        /** Context passed to initialize */
+        private TaskAttemptContext context;
+        /** Internal line record writer */
+        private final RecordWriter<VKmerBytesWritable, VertexValueWritable> lineRecordWriter;
+
+        /**
+         * Initialize with the LineRecordWriter.
+         * 
+         * @param lineRecordWriter
+         *            Line record writer from SequenceFileOutputFormat
+         */
+        public BinaryVertexWriter(RecordWriter<VKmerBytesWritable, VertexValueWritable> lineRecordWriter) {
+            this.lineRecordWriter = lineRecordWriter;
+        }
+
+        @Override
+        public void initialize(TaskAttemptContext context) throws IOException {
+            this.context = context;
+        }
+
+        @Override
+        public void close(TaskAttemptContext context) throws IOException, InterruptedException {
+            lineRecordWriter.close(context);
+        }
+
+        /**
+         * Get the line record writer.
+         * 
+         * @return Record writer to be used for writing.
+         */
+        public RecordWriter<VKmerBytesWritable, VertexValueWritable> getRecordWriter() {
+            return lineRecordWriter;
+        }
+
+        /**
+         * Get the context.
+         * 
+         * @return Context passed to initialize.
+         */
+        public TaskAttemptContext getContext() {
+            return context;
+        }
+    }
+
+    @Override
+    public void checkOutputSpecs(JobContext context) throws IOException, InterruptedException {
+        binaryOutputFormat.checkOutputSpecs(context);
+    }
+
+    @Override
+    public OutputCommitter getOutputCommitter(TaskAttemptContext context) throws IOException, InterruptedException {
+        return binaryOutputFormat.getOutputCommitter(context);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/InitialGraphCleanVertexInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/InitialGraphCleanVertexInputFormat.java
new file mode 100644
index 0000000..4221865
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/InitialGraphCleanVertexInputFormat.java
@@ -0,0 +1,104 @@
+package edu.uci.ics.genomix.pregelix.api.io.binary;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.io.WritableComparable;
+import org.apache.hadoop.mapreduce.InputSplit;
+import org.apache.hadoop.mapreduce.JobContext;
+import org.apache.hadoop.mapreduce.RecordReader;
+import org.apache.hadoop.mapreduce.TaskAttemptContext;
+import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
+
+import edu.uci.ics.pregelix.api.io.VertexInputFormat;
+import edu.uci.ics.pregelix.api.io.VertexReader;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class InitialGraphCleanVertexInputFormat<I extends WritableComparable<?>, V extends Writable, E extends Writable, M extends Writable>
+        extends VertexInputFormat<I, V, E, M> {
+
+    /** Uses the SequenceFileInputFormat to do everything */
+    @SuppressWarnings("rawtypes")
+    protected SequenceFileInputFormat binaryInputFormat = new SequenceFileInputFormat();
+
+    /**
+     * Abstract class to be implemented by the user based on their specific
+     * vertex input. Easiest to ignore the key value separator and only use key
+     * instead.
+     * 
+     * @param <I>
+     *            Vertex index value
+     * @param <V>
+     *            Vertex value
+     * @param <E>
+     *            Edge value
+     */
+    public static abstract class BinaryVertexReader<I extends WritableComparable<?>, V extends Writable, E extends Writable, M extends Writable>
+            implements VertexReader<I, V, E, M> {
+        /** Internal line record reader */
+        private final RecordReader<VKmerBytesWritable, NodeWritable> lineRecordReader;
+        /** Context passed to initialize */
+        private TaskAttemptContext context;
+
+        /**
+         * Initialize with the LineRecordReader.
+         * 
+         * @param recordReader
+         *            Line record reader from SequenceFileInputFormat
+         */
+        public BinaryVertexReader(RecordReader<VKmerBytesWritable, NodeWritable> recordReader) {
+            this.lineRecordReader = recordReader;
+        }
+
+        @Override
+        public void initialize(InputSplit inputSplit, TaskAttemptContext context) throws IOException,
+                InterruptedException {
+            lineRecordReader.initialize(inputSplit, context);
+            this.context = context;
+        }
+
+        @Override
+        public void close() throws IOException {
+            lineRecordReader.close();
+        }
+
+        @Override
+        public float getProgress() throws IOException, InterruptedException {
+            return lineRecordReader.getProgress();
+        }
+
+        /**
+         * Get the line record reader.
+         * 
+         * @return Record reader to be used for reading.
+         */
+        protected RecordReader<VKmerBytesWritable, NodeWritable> getRecordReader() {
+            return lineRecordReader;
+        }
+
+        /**
+         * Get the context.
+         * 
+         * @return Context passed to initialize.
+         */
+        protected TaskAttemptContext getContext() {
+            return context;
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public List<InputSplit> getSplits(JobContext context, int numWorkers) throws IOException, InterruptedException {
+        // Ignore the hint of numWorkers here since we are using SequenceFileInputFormat
+        // to do this for us
+        return binaryInputFormat.getSplits(context);
+    }
+
+    @Override
+    public VertexReader<I, V, E, M> createVertexReader(InputSplit split, TaskAttemptContext context) throws IOException {
+        return null;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/client/Client.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/client/Client.java
new file mode 100644
index 0000000..73a8648
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/client/Client.java
@@ -0,0 +1,79 @@
+package edu.uci.ics.genomix.pregelix.client;
+
+import java.io.IOException;
+
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
+import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
+import org.kohsuke.args4j.CmdLineException;
+import org.kohsuke.args4j.CmdLineParser;
+import org.kohsuke.args4j.Option;
+
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.BasicGraphCleanVertex;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.core.base.IDriver.Plan;
+import edu.uci.ics.pregelix.core.driver.Driver;
+
+public class Client {
+	//test rebase
+    private static class Options {
+        @Option(name = "-inputpaths", usage = "comma seprated input paths", required = true)
+        public String inputPaths;
+
+        @Option(name = "-outputpath", usage = "output path", required = true)
+        public String outputPath;
+
+        @Option(name = "-ip", usage = "ip address of cluster controller", required = true)
+        public String ipAddress;
+
+        @Option(name = "-port", usage = "port of cluster controller", required = false)
+        public int port;
+
+        @Option(name = "-plan", usage = "query plan choice", required = false)
+        public Plan planChoice = Plan.OUTER_JOIN;
+
+        @Option(name = "-tmpKmer-kmerByteSize", usage = "the kmerByteSize of tmpKmer", required = false)
+        public int sizeKmer;
+
+        @Option(name = "-num-iteration", usage = "max number of iterations, for pagerank job only", required = false)
+        public int numIteration = -1;
+
+        @Option(name = "-runtime-profiling", usage = "whether to do runtime profifling", required = false)
+        public String profiling = "false";
+        
+//        @Option(name = "-pseudo-rate", usage = "the rate of pseduHead", required = false)
+//        public float pseudoRate = -1;
+//        
+//        @Option(name = "-max-patitionround", usage = "max rounds in partition phase", required = false)
+//        public int maxRound = -1;
+    }
+
+    public static void run(String[] args, PregelixJob job) throws Exception {
+        Options options = prepareJob(args, job);
+        Driver driver = new Driver(Client.class);
+        driver.runJob(job, options.planChoice, options.ipAddress, options.port, Boolean.parseBoolean(options.profiling));
+    }
+
+    private static Options prepareJob(String[] args, PregelixJob job) throws CmdLineException, IOException {
+        Options options = new Options();
+        CmdLineParser parser = new CmdLineParser(options);
+        parser.parseArgument(args);
+
+        String[] inputs = options.inputPaths.split(";");
+        FileInputFormat.setInputPaths(job, inputs[0]);
+        for (int i = 1; i < inputs.length; i++)
+            FileInputFormat.addInputPaths(job, inputs[0]);
+        FileOutputFormat.setOutputPath(job, new Path(options.outputPath));
+        job.getConfiguration().setInt(BasicGraphCleanVertex.KMER_SIZE, options.sizeKmer);
+        if (options.numIteration > 0) {
+            job.getConfiguration().setInt(BasicGraphCleanVertex.ITERATIONS, options.numIteration);
+        }
+        
+//        if (options.pseudoRate > 0 && options.pseudoRate <= 1)
+//           job.getConfiguration().setFloat(P3ForPathMergeVertex.PSEUDORATE, options.pseudoRate);
+//        if (options.maxRound > 0)
+//            job.getConfiguration().setInt(P3ForPathMergeVertex.MAXROUND, options.maxRound);
+        return options;
+        
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanInputFormat.java
new file mode 100644
index 0000000..e0c8fa5
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanInputFormat.java
@@ -0,0 +1,74 @@
+package edu.uci.ics.genomix.pregelix.format;
+
+import java.io.IOException;
+
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.mapreduce.InputSplit;
+import org.apache.hadoop.mapreduce.RecordReader;
+import org.apache.hadoop.mapreduce.TaskAttemptContext;
+
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.io.VertexReader;
+import edu.uci.ics.pregelix.api.util.BspUtils;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryDataCleanVertexInputFormat;
+import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryDataCleanVertexInputFormat.BinaryDataCleanVertexReader;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class GraphCleanInputFormat extends
+    BinaryDataCleanVertexInputFormat<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> {
+    /**
+     * Format INPUT
+     */
+    @SuppressWarnings("unchecked")
+    @Override
+    public VertexReader<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> createVertexReader(
+            InputSplit split, TaskAttemptContext context) throws IOException {
+        return new BinaryDataCleanLoadGraphReader(binaryInputFormat.createRecordReader(split, context));
+    }
+}
+
+@SuppressWarnings("rawtypes")
+class BinaryDataCleanLoadGraphReader extends
+    BinaryDataCleanVertexReader<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> {
+    private Vertex vertex;
+    private VKmerBytesWritable vertexId = new VKmerBytesWritable();
+    private VertexValueWritable vertexValue = new VertexValueWritable();
+
+    public BinaryDataCleanLoadGraphReader(RecordReader<VKmerBytesWritable, VertexValueWritable> recordReader) {
+        super(recordReader);
+    }
+
+    @Override
+    public boolean nextVertex() throws IOException, InterruptedException {
+        return getRecordReader().nextKeyValue();
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public Vertex<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> getCurrentVertex()
+            throws IOException, InterruptedException {
+        if (vertex == null)
+            vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
+
+        vertex.getMsgList().clear();
+        vertex.getEdges().clear();
+
+        vertex.reset();
+        if (getRecordReader() != null) {
+            /**
+             * set the src vertex id
+             */
+            vertexId.setAsCopy(getRecordReader().getCurrentKey());
+            vertex.setVertexId(vertexId);
+            /**
+             * set the vertex value
+             */
+            vertexValue.set(getRecordReader().getCurrentValue());
+            vertex.setVertexValue(vertexValue);
+        }
+
+        return vertex;
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanOutputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanOutputFormat.java
new file mode 100644
index 0000000..77960ba
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanOutputFormat.java
@@ -0,0 +1,41 @@
+package edu.uci.ics.genomix.pregelix.format;
+
+import java.io.IOException;
+
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.mapreduce.RecordWriter;
+import org.apache.hadoop.mapreduce.TaskAttemptContext;
+
+import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryDataCleanVertexOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.io.VertexWriter;
+
+public class GraphCleanOutputFormat extends
+    BinaryDataCleanVertexOutputFormat<VKmerBytesWritable, VertexValueWritable, NullWritable> {
+
+    @Override
+    public VertexWriter<VKmerBytesWritable, VertexValueWritable, NullWritable> createVertexWriter(
+            TaskAttemptContext context) throws IOException, InterruptedException {
+        @SuppressWarnings("unchecked")
+        RecordWriter<VKmerBytesWritable, VertexValueWritable> recordWriter = binaryOutputFormat.getRecordWriter(context);
+        return new BinaryLoadGraphVertexWriter(recordWriter);
+    }
+
+    /**
+     * Simple VertexWriter that supports {@link BinaryLoadGraphVertex}
+     */
+    public static class BinaryLoadGraphVertexWriter extends
+            BinaryVertexWriter<VKmerBytesWritable, VertexValueWritable, NullWritable> {
+        public BinaryLoadGraphVertexWriter(RecordWriter<VKmerBytesWritable, VertexValueWritable> lineRecordWriter) {
+            super(lineRecordWriter);
+        }
+
+        @Override
+        public void writeVertex(Vertex<VKmerBytesWritable, VertexValueWritable, NullWritable, ?> vertex)
+                throws IOException, InterruptedException {
+            getRecordWriter().write(vertex.getVertexId(), vertex.getVertexValue());
+        }
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java
new file mode 100644
index 0000000..edb305f
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java
@@ -0,0 +1,86 @@
+package edu.uci.ics.genomix.pregelix.format;
+
+import java.io.IOException;
+
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.mapreduce.InputSplit;
+import org.apache.hadoop.mapreduce.RecordReader;
+import org.apache.hadoop.mapreduce.TaskAttemptContext;
+
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.io.VertexReader;
+import edu.uci.ics.pregelix.api.util.BspUtils;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+import edu.uci.ics.genomix.pregelix.api.io.binary.InitialGraphCleanVertexInputFormat;
+import edu.uci.ics.genomix.pregelix.api.io.binary.InitialGraphCleanVertexInputFormat.BinaryVertexReader;
+
+public class InitialGraphCleanInputFormat extends
+        InitialGraphCleanVertexInputFormat<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> {
+    /**
+     * Format INPUT
+     */
+    @SuppressWarnings("unchecked")
+    @Override
+    public VertexReader<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> createVertexReader(
+            InputSplit split, TaskAttemptContext context) throws IOException {
+        return new BinaryLoadGraphReader(binaryInputFormat.createRecordReader(split, context));
+    }
+}
+
+@SuppressWarnings("rawtypes")
+class BinaryLoadGraphReader extends
+        BinaryVertexReader<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> {
+    
+    private Vertex vertex;
+    private VKmerBytesWritable vertexId = new VKmerBytesWritable();
+    private NodeWritable node = new NodeWritable();
+    private VertexValueWritable vertexValue = new VertexValueWritable();
+
+    public BinaryLoadGraphReader(RecordReader<VKmerBytesWritable, NodeWritable> recordReader) {
+        super(recordReader);
+    }
+
+    @Override
+    public boolean nextVertex() throws IOException, InterruptedException {
+        return getRecordReader().nextKeyValue();
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public Vertex<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> getCurrentVertex()
+            throws IOException, InterruptedException {
+        if (vertex == null)
+            vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
+    
+        vertex.getMsgList().clear();
+        vertex.getEdges().clear();
+    
+        vertex.reset();
+        if (getRecordReader() != null) {
+            /**
+             * set the src vertex id
+             */
+            vertexId.setAsCopy(getRecordReader().getCurrentKey());
+            vertex.setVertexId(vertexId);
+            /**
+             * set the vertex value
+             */
+            node.set(getRecordReader().getCurrentValue());
+            vertexValue.setNodeIdList(node.getNodeIdList());
+            vertexValue.setFFList(node.getFFList());
+            vertexValue.setFRList(node.getFRList());
+            vertexValue.setRFList(node.getRFList());
+            vertexValue.setRRList(node.getRRList());
+            // TODO make this more efficient (don't use toString)
+            vertexValue.setActualKmer(new VKmerBytesWritable(vertexId));
+            vertexValue.setState(State.IS_NON);
+            vertex.setVertexValue(vertexValue);
+        }
+    
+        return vertex;
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/P2PathMergeOutputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/P2PathMergeOutputFormat.java
new file mode 100644
index 0000000..b4c0aee
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/P2PathMergeOutputFormat.java
@@ -0,0 +1,46 @@
+package edu.uci.ics.genomix.pregelix.format;
+
+import java.io.IOException;
+
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.mapreduce.RecordWriter;
+import org.apache.hadoop.mapreduce.TaskAttemptContext;
+
+import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryDataCleanVertexOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.P2ForPathMergeVertex;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.io.VertexWriter;
+
+public class P2PathMergeOutputFormat extends
+    BinaryDataCleanVertexOutputFormat<VKmerBytesWritable, VertexValueWritable, NullWritable> {
+
+    @Override
+    public VertexWriter<VKmerBytesWritable, VertexValueWritable, NullWritable> createVertexWriter(
+            TaskAttemptContext context) throws IOException, InterruptedException {
+        @SuppressWarnings("unchecked")
+        RecordWriter<VKmerBytesWritable, VertexValueWritable> recordWriter = binaryOutputFormat.getRecordWriter(context);
+        return new BinaryLoadGraphVertexWriter(recordWriter);
+    }
+
+    /**
+     * Simple VertexWriter that supports {@link BinaryLoadGraphVertex}
+     */
+    public static class BinaryLoadGraphVertexWriter extends
+            BinaryVertexWriter<VKmerBytesWritable, VertexValueWritable, NullWritable> {
+        public BinaryLoadGraphVertexWriter(RecordWriter<VKmerBytesWritable, VertexValueWritable> lineRecordWriter) {
+            super(lineRecordWriter);
+        }
+
+        @Override
+        public void writeVertex(Vertex<VKmerBytesWritable, VertexValueWritable, NullWritable, ?> vertex)
+                throws IOException, InterruptedException {
+            byte selfFlag = (byte)(vertex.getVertexValue().getState() & State.VERTEX_MASK);
+            if(selfFlag == State.IS_FINAL)
+                getRecordWriter().write(vertex.getVertexId(), vertex.getVertexValue());
+            P2ForPathMergeVertex.fakeVertexExist = false;
+        }
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/GenerateGraphViz.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/GenerateGraphViz.java
new file mode 100644
index 0000000..89abdc2
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/GenerateGraphViz.java
@@ -0,0 +1,188 @@
+package edu.uci.ics.genomix.pregelix.graph;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.Iterator;
+
+import org.apache.commons.io.filefilter.WildcardFileFilter;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.io.SequenceFile;
+
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class GenerateGraphViz {
+
+	/**
+     * Construct a DOT graph in memory, convert it
+     * to image and store the image in the file system.
+     */
+    public static void convertGraphBuildingOutputToGraphViz(String srcDir, String destDir) throws Exception {
+        GraphViz gv = new GraphViz();
+        gv.addln(gv.start_graph());
+        
+        Configuration conf = new Configuration();
+        FileSystem fileSys = FileSystem.getLocal(conf);
+        File srcPath = new File(srcDir);
+
+        String outputNode = "";
+        String outputEdge = "";
+        for (File f : srcPath.listFiles((FilenameFilter) (new WildcardFileFilter("part*")))) {
+            SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, new Path(f.getAbsolutePath()), conf);
+            VKmerBytesWritable key = new VKmerBytesWritable();
+            NodeWritable value = new NodeWritable();
+            
+            gv.addln("rankdir=LR\n");
+            
+            while (reader.next(key, value)) {
+                outputNode = "";
+                outputEdge = "";
+                if (key == null) {
+                    break;
+                }
+                outputNode += key.toString();
+                /** convert edge to graph **/
+                outputEdge = convertEdgeToGraph(outputNode, value);
+                gv.addln(outputEdge);
+                /** add readIdSet **/
+                outputNode += " [shape=record, label = \"<f0> " + key.toString() 
+                        + "|<f1> " + value.getNodeIdList().printReadIdSet()
+                        + "\"]\n";
+                gv.addln(outputNode);
+            }
+            reader.close();
+        }
+        
+        gv.addln(gv.end_graph());
+        System.out.println(gv.getDotSource());
+
+        String type = "ps";
+        File folder = new File(destDir);
+        folder.mkdirs();
+        File out = new File(destDir + "/result." + type); // Linux
+        gv.writeGraphToFile(gv.getGraph(gv.getDotSource(), type), out);
+    }
+    
+    public static void convertGraphCleanOutputToGraphViz(String srcDir, String destDir) throws Exception {
+        GraphViz gv = new GraphViz();
+        gv.addln(gv.start_graph());
+        
+        Configuration conf = new Configuration();
+        FileSystem fileSys = FileSystem.getLocal(conf);
+        File srcPath = new File(srcDir);
+
+        String outputNode = "";
+        String outputEdge = "";
+        for (File f : srcPath.listFiles((FilenameFilter) (new WildcardFileFilter("part*")))) {
+            SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, new Path(f.getAbsolutePath()), conf);
+            VKmerBytesWritable key = new VKmerBytesWritable();
+            VertexValueWritable value = new VertexValueWritable();
+            
+            gv.addln("rankdir=LR\n");
+            
+            while (reader.next(key, value)) {
+                outputNode = "";
+                outputEdge = "";
+                if (key == null) {
+                    break;
+                }
+                outputNode += key.toString();
+                /** convert edge to graph **/
+                outputEdge = convertEdgeToGraph(outputNode, value);
+                gv.addln(outputEdge);
+                /** add readIdSet **/
+                outputNode += " [shape=record, label = \"<f0> " + key.toString() 
+                        + "|<f1> " + value.getNodeIdList().printReadIdSet()
+                        + "\"]\n";
+                gv.addln(outputNode);
+            }
+            reader.close();
+        }
+        
+        gv.addln(gv.end_graph());
+        System.out.println(gv.getDotSource());
+
+        String type = "ps";
+        File folder = new File(destDir);
+        folder.mkdirs();
+        File out = new File(destDir + "/result." + type); // Linux
+        gv.writeGraphToFile(gv.getGraph(gv.getDotSource(), type), out);
+    }
+    
+    /**
+     * For graph building
+     * @param outputNode
+     * @param value
+     * @return
+     */
+    public static String convertEdgeToGraph(String outputNode, NodeWritable value){
+        String outputEdge = "";
+        Iterator<VKmerBytesWritable> kmerIterator;
+        kmerIterator = value.getFFList().iterator();
+        while(kmerIterator.hasNext()){
+            VKmerBytesWritable edge = kmerIterator.next(); 
+            outputEdge += outputNode + " -> " + edge.toString() + "[color = \"black\" label =\"FF\"]\n";
+        }
+        kmerIterator = value.getFRList().iterator();
+        while(kmerIterator.hasNext()){
+            VKmerBytesWritable edge = kmerIterator.next();
+            outputEdge += outputNode + " -> " + edge.toString() + "[color = \"blue\" label =\"FR\"]\n";
+        }
+        kmerIterator = value.getRFList().iterator();
+        while(kmerIterator.hasNext()){
+            VKmerBytesWritable edge = kmerIterator.next();
+            outputEdge += outputNode + " -> " + edge.toString() + "[color = \"green\" label =\"RF\"]\n";
+        }
+        kmerIterator = value.getRRList().iterator();
+        while(kmerIterator.hasNext()){
+            VKmerBytesWritable edge = kmerIterator.next();
+            outputEdge += outputNode + " -> " + edge.toString() + "[color = \"red\" label =\"RR\"]\n";
+        }
+        //TODO should output actualKmer instead of kmer
+        if(outputEdge == "")
+            outputEdge += outputNode;
+        return outputEdge;
+    }
+    
+    /**
+     * For graph clean
+     * @param outputNode
+     * @param value
+     * @return
+     */
+    public static String convertEdgeToGraph(String outputNode, VertexValueWritable value){
+        String outputEdge = "";
+        Iterator<VKmerBytesWritable> kmerIterator;
+        kmerIterator = value.getFFList().iterator();
+        while(kmerIterator.hasNext()){
+            VKmerBytesWritable edge = kmerIterator.next(); 
+            outputEdge += outputNode + " -> " + edge.toString() + "[color = \"black\" label =\"FF\"]\n";
+        }
+        kmerIterator = value.getFRList().iterator();
+        while(kmerIterator.hasNext()){
+            VKmerBytesWritable edge = kmerIterator.next();
+            outputEdge += outputNode + " -> " + edge.toString() + "[color = \"blue\" label =\"FR\"]\n";
+        }
+        kmerIterator = value.getRFList().iterator();
+        while(kmerIterator.hasNext()){
+            VKmerBytesWritable edge = kmerIterator.next();
+            outputEdge += outputNode + " -> " + edge.toString() + "[color = \"green\" label =\"RF\"]\n";
+        }
+        kmerIterator = value.getRRList().iterator();
+        while(kmerIterator.hasNext()){
+            VKmerBytesWritable edge = kmerIterator.next();
+            outputEdge += outputNode + " -> " + edge.toString() + "[color = \"red\" label =\"RR\"]\n";
+        }
+        //TODO should output actualKmer instead of kmer
+        if(outputEdge == "")
+            outputEdge += outputNode;
+        return outputEdge;
+    }
+
+    public static void main(String[] args) throws Exception {
+        GenerateGraphViz.convertGraphCleanOutputToGraphViz("data/actual/bubbleadd/BubbleAddGraph/bin/5", "graphtest");
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/GraphViz.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/GraphViz.java
new file mode 100644
index 0000000..4175595
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/GraphViz.java
@@ -0,0 +1,297 @@
+package edu.uci.ics.genomix.pregelix.graph;
+
+// GraphViz.java - a simple API to call dot from Java programs
+
+/*$Id$*/
+/*
+ ******************************************************************************
+ *                                                                            *
+ *              (c) Copyright 2003 Laszlo Szathmary                           *
+ *                                                                            *
+ * This program is free software; you can redistribute it and/or modify it    *
+ * under the terms of the GNU Lesser General Public License as published by   *
+ * the Free Software Foundation; either version 2.1 of the License, or        *
+ * (at your option) any later version.                                        *
+ *                                                                            *
+ * This program is distributed in the hope that it will be useful, but        *
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public    *
+ * License for more details.                                                  *
+ *                                                                            *
+ * You should have received a copy of the GNU Lesser General Public License   *
+ * along with this program; if not, write to the Free Software Foundation,    *
+ * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                              *
+ *                                                                            *
+ ******************************************************************************
+ */
+
+import java.io.BufferedReader;
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.InputStreamReader;
+
+/**
+ * <dl>
+ * <dt>Purpose: GraphViz Java API
+ * <dd>
+ * <dt>Description:
+ * <dd>With this Java class you can simply call dot from your Java programs
+ * <dt>Example usage:
+ * <dd>
+ * 
+ * <pre>
+ * GraphViz gv = new GraphViz();
+ * gv.addln(gv.start_graph());
+ * gv.addln(&quot;A -&gt; B;&quot;);
+ * gv.addln(&quot;A -&gt; C;&quot;);
+ * gv.addln(gv.end_graph());
+ * System.out.println(gv.getDotSource());
+ * 
+ * String type = &quot;gif&quot;;
+ * File out = new File(&quot;out.&quot; + type); // out.gif in this example
+ * gv.writeGraphToFile(gv.getGraph(gv.getDotSource(), type), out);
+ * </pre>
+ * 
+ * </dd>
+ * </dl>
+ * 
+ * @version v0.4, 2011/02/05 (February) -- Patch of Keheliya Gallaba is added. Now you
+ *          can specify the type of the output file: gif, dot, fig, pdf, ps, svg, png, etc.
+ * @version v0.3, 2010/11/29 (November) -- Windows support + ability
+ *          to read the graph from a text file
+ * @version v0.2, 2010/07/22 (July) -- bug fix
+ * @version v0.1, 2003/12/04 (December) -- first release
+ * @author Laszlo Szathmary (<a href="jabba.laci@gmail.com">jabba.laci@gmail.com</a>)
+ */
+public class GraphViz {
+    /**
+     * The dir. where temporary files will be created.
+     */
+    private static String TEMP_DIR = "/tmp"; // Linux
+    //  private static String TEMP_DIR = "c:/temp";	// Windows
+
+    /**
+     * Where is your dot program located? It will be called externally.
+     */
+    private static String DOT = "/usr/bin/dot"; // Linux
+    //   private static String DOT = "c:/Program Files/Graphviz2.26.3/bin/dot.exe";	// Windows
+
+    /**
+     * The source of the graph written in dot language.
+     */
+    private StringBuilder graph = new StringBuilder();
+
+    /**
+     * Constructor: creates a new GraphViz object that will contain
+     * a graph.
+     */
+    public GraphViz() {
+    }
+
+    /**
+     * Returns the graph's source description in dot language.
+     * 
+     * @return Source of the graph in dot language.
+     */
+    public String getDotSource() {
+        return graph.toString();
+    }
+
+    /**
+     * Adds a string to the graph's source (without newline).
+     */
+    public void add(String line) {
+        graph.append(line);
+    }
+
+    /**
+     * Adds a string to the graph's source (with newline).
+     */
+    public void addln(String line) {
+        graph.append(line + "\n");
+    }
+
+    /**
+     * Adds a newline to the graph's source.
+     */
+    public void addln() {
+        graph.append('\n');
+    }
+
+    /**
+     * Returns the graph as an image in binary format.
+     * 
+     * @param dot_source
+     *            Source of the graph to be drawn.
+     * @param type
+     *            Type of the output image to be produced, e.g.: gif, dot, fig, pdf, ps, svg, png.
+     * @return A byte array containing the image of the graph.
+     */
+    public byte[] getGraph(String dot_source, String type) {
+        File dot;
+        byte[] img_stream = null;
+
+        try {
+            dot = writeDotSourceToFile(dot_source);
+            if (dot != null) {
+                img_stream = get_img_stream(dot, type);
+                if (dot.delete() == false)
+                    System.err.println("Warning: " + dot.getAbsolutePath() + " could not be deleted!");
+                return img_stream;
+            }
+            return null;
+        } catch (java.io.IOException ioe) {
+            return null;
+        }
+    }
+
+    /**
+     * Writes the graph's image in a file.
+     * 
+     * @param img
+     *            A byte array containing the image of the graph.
+     * @param file
+     *            Name of the file to where we want to write.
+     * @return Success: 1, Failure: -1
+     */
+    public int writeGraphToFile(byte[] img, String file) {
+        File to = new File(file);
+        return writeGraphToFile(img, to);
+    }
+
+    /**
+     * Writes the graph's image in a file.
+     * 
+     * @param img
+     *            A byte array containing the image of the graph.
+     * @param to
+     *            A File object to where we want to write.
+     * @return Success: 1, Failure: -1
+     */
+    public int writeGraphToFile(byte[] img, File to) {
+        try {
+            FileOutputStream fos = new FileOutputStream(to);
+            fos.write(img);
+            fos.close();
+        } catch (java.io.IOException ioe) {
+            return -1;
+        }
+        return 1;
+    }
+
+    /**
+     * It will call the external dot program, and return the image in
+     * binary format.
+     * 
+     * @param dot
+     *            Source of the graph (in dot language).
+     * @param type
+     *            Type of the output image to be produced, e.g.: gif, dot, fig, pdf, ps, svg, png.
+     * @return The image of the graph in .gif format.
+     */
+    private byte[] get_img_stream(File dot, String type) {
+        File img;
+        byte[] img_stream = null;
+
+        try {
+            img = File.createTempFile("graph_", "." + type, new File(GraphViz.TEMP_DIR));
+            Runtime rt = Runtime.getRuntime();
+
+            // patch by Mike Chenault
+            String[] args = { DOT, "-T" + type, dot.getAbsolutePath(), "-o", img.getAbsolutePath() };
+            Process p = rt.exec(args);
+
+            p.waitFor();
+
+            FileInputStream in = new FileInputStream(img.getAbsolutePath());
+            img_stream = new byte[in.available()];
+            in.read(img_stream);
+            // Close it if we need to
+            if (in != null)
+                in.close();
+
+            if (img.delete() == false)
+                System.err.println("Warning: " + img.getAbsolutePath() + " could not be deleted!");
+        } catch (java.io.IOException ioe) {
+            System.err.println("Error:    in I/O processing of tempfile in dir " + GraphViz.TEMP_DIR + "\n");
+            System.err.println("       or in calling external command");
+            ioe.printStackTrace();
+        } catch (java.lang.InterruptedException ie) {
+            System.err.println("Error: the execution of the external program was interrupted");
+            ie.printStackTrace();
+        }
+
+        return img_stream;
+    }
+
+    /**
+     * Writes the source of the graph in a file, and returns the written file
+     * as a File object.
+     * 
+     * @param str
+     *            Source of the graph (in dot language).
+     * @return The file (as a File object) that contains the source of the graph.
+     */
+    private File writeDotSourceToFile(String str) throws java.io.IOException {
+        File temp;
+        try {
+            temp = File.createTempFile("graph_", ".dot.tmp", new File(GraphViz.TEMP_DIR));
+            FileWriter fout = new FileWriter(temp);
+            fout.write(str);
+            fout.close();
+        } catch (Exception e) {
+            System.err.println("Error: I/O error while writing the dot source to temp file!");
+            return null;
+        }
+        return temp;
+    }
+
+    /**
+     * Returns a string that is used to start a graph.
+     * 
+     * @return A string to open a graph.
+     */
+    public String start_graph() {
+        return "digraph G {";
+    }
+
+    /**
+     * Returns a string that is used to end a graph.
+     * 
+     * @return A string to close a graph.
+     */
+    public String end_graph() {
+        return "}";
+    }
+
+    /**
+     * Read a DOT graph from a text file.
+     * 
+     * @param input
+     *            Input text file containing the DOT graph
+     *            source.
+     */
+    public void readSource(String input) {
+        StringBuilder sb = new StringBuilder();
+
+        try {
+            FileInputStream fis = new FileInputStream(input);
+            DataInputStream dis = new DataInputStream(fis);
+            BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+            String line;
+            while ((line = br.readLine()) != null) {
+                sb.append(line);
+            }
+            dis.close();
+        } catch (Exception e) {
+            System.err.println("Error: " + e.getMessage());
+        }
+
+        this.graph = sb;
+    }
+
+} // end of class GraphViz
+
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/AdjacencyListWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/AdjacencyListWritable.java
new file mode 100644
index 0000000..44fa444
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/AdjacencyListWritable.java
@@ -0,0 +1,76 @@
+package edu.uci.ics.genomix.pregelix.io;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.hadoop.io.WritableComparable;
+
+import edu.uci.ics.genomix.type.VKmerListWritable;
+
+public class AdjacencyListWritable implements WritableComparable<AdjacencyListWritable>{
+    private VKmerListWritable forwardList;
+    private VKmerListWritable reverseList;
+    
+    public AdjacencyListWritable(){
+        forwardList = new VKmerListWritable();
+        reverseList = new VKmerListWritable();
+    }
+    
+    public AdjacencyListWritable(int kmerSize){
+        forwardList = new VKmerListWritable();
+        reverseList = new VKmerListWritable();
+    }
+
+    public void set(AdjacencyListWritable adjacencyList){
+        forwardList.setCopy(adjacencyList.getForwardList());
+        reverseList.setCopy(adjacencyList.getReverseList());
+    }
+    
+    public void reset(){
+        forwardList.reset();
+        reverseList.reset();
+    }
+    
+    public void reset(int kmerSize){
+        forwardList.reset();
+        reverseList.reset();
+    }
+    
+    public int getCountOfPosition(){
+    	return forwardList.getCountOfPosition() + reverseList.getCountOfPosition();
+    }
+
+    public VKmerListWritable getForwardList() {
+        return forwardList;
+    }
+
+    public void setForwardList(VKmerListWritable forwardList) {
+        this.forwardList = forwardList;
+    }
+
+    public VKmerListWritable getReverseList() {
+        return reverseList;
+    }
+
+    public void setReverseList(VKmerListWritable reverseList) {
+        this.reverseList = reverseList;
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        forwardList.readFields(in);
+        reverseList.readFields(in);
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        forwardList.write(out);
+        reverseList.write(out);
+    }
+
+    @Override
+    public int compareTo(AdjacencyListWritable o) {
+        return 0;
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/HashMapWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/HashMapWritable.java
new file mode 100644
index 0000000..c4556c7
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/HashMapWritable.java
@@ -0,0 +1,102 @@
+package edu.uci.ics.genomix.pregelix.io;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.Map;
+import java.util.Set;
+import java.util.HashMap;
+
+import org.apache.hadoop.io.Writable;
+@SuppressWarnings("unchecked") 
+public class HashMapWritable<K extends Writable, V extends Writable> extends HashMap<K, V> implements
+        Writable {
+
+	/**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+	 * Creates a HashMapWritable object.
+	 */
+	public HashMapWritable() {
+		super();
+	}
+	
+	/**
+	 * Creates a HashMapWritable object from a regular HashMap.
+	 */
+	public HashMapWritable(HashMap<K, V> map) {
+		super(map);
+	}
+
+	/**
+	 * Deserializes the array.
+	 * 
+	 * @param in
+	 *            source for raw byte representation
+	 */
+
+	@SuppressWarnings("rawtypes")
+    public void readFields(DataInput in) throws IOException {
+		
+		this.clear();
+
+		int numEntries = in.readInt();
+		if(numEntries==0) return;
+		
+		String keyClassName = in.readUTF();
+		String valueClassName = in.readUTF();
+		
+		K objK;
+		V objV;
+		try {
+			Class keyClass = Class.forName(keyClassName);
+			Class valueClass = Class.forName(valueClassName);
+			for (int i = 0; i < numEntries; i++) {
+				objK = (K) keyClass.newInstance();
+				objK.readFields(in);
+				objV = (V) valueClass.newInstance();
+				objV.readFields(in);
+				put(objK, objV);
+			}
+
+		} catch (ClassNotFoundException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		} catch (InstantiationException e) {
+			e.printStackTrace();
+		}
+		
+	}
+
+	/**
+	 * Serializes this array.
+	 * 
+	 * @param out
+	 *            where to write the raw byte representation
+	 */
+	public void write(DataOutput out) throws IOException {
+		// Write out the number of entries in the map
+	    out.writeInt(size());
+	    if(size()==0) return;
+	    
+	    // Write out the class names for keys and values
+	    // assuming that data is homogeneuos (i.e., all entries have same types)
+	    Set<Map.Entry<K, V>> entries = entrySet();
+	    Map.Entry<K, V> first = entries.iterator().next();
+	    K objK = first.getKey();
+	    V objV = first.getValue();
+	    out.writeUTF(objK.getClass().getCanonicalName());
+	    out.writeUTF(objV.getClass().getCanonicalName());
+
+	    // Then write out each key/value pair
+	    for (Map.Entry<K, V> e: entrySet()) {
+	      e.getKey().write(out);
+	      e.getValue().write(out);
+	    }
+	}
+
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/IncomingListWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/IncomingListWritable.java
new file mode 100644
index 0000000..8dec857
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/IncomingListWritable.java
@@ -0,0 +1,56 @@
+package edu.uci.ics.genomix.pregelix.io;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.hadoop.io.WritableComparable;
+
+import edu.uci.ics.genomix.type.PositionListWritable;
+
+public class IncomingListWritable implements WritableComparable<IncomingListWritable>{
+    private PositionListWritable reverseForwardList;
+    private PositionListWritable reverseReverseList;
+    
+    public IncomingListWritable(){
+        reverseForwardList = new PositionListWritable();
+        reverseReverseList = new PositionListWritable();
+    }
+
+    public PositionListWritable getReverseForwardList() {
+        return reverseForwardList;
+    }
+
+    public void setReverseForwardList(PositionListWritable reverseForwardList) {
+        this.reverseForwardList = reverseForwardList;
+    }
+
+    public PositionListWritable getReverseReverseList() {
+        return reverseReverseList;
+    }
+
+    public void setReverseReverseList(PositionListWritable reverseReverseList) {
+        this.reverseReverseList = reverseReverseList;
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        reverseForwardList.readFields(in);
+        reverseReverseList.readFields(in);
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        reverseForwardList.write(out);
+        reverseReverseList.write(out);
+    }
+
+    @Override
+    public int compareTo(IncomingListWritable o) {
+        return 0;
+    }
+    
+    public int inDegree(){
+        return reverseReverseList.getCountOfPosition() + reverseForwardList.getCountOfPosition();
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MergeBubbleMessageWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MergeBubbleMessageWritable.java
new file mode 100644
index 0000000..c42bf32
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MergeBubbleMessageWritable.java
@@ -0,0 +1,196 @@
+package edu.uci.ics.genomix.pregelix.io;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.hadoop.io.WritableComparable;
+
+import edu.uci.ics.genomix.type.PositionWritable;
+import edu.uci.ics.genomix.pregelix.type.CheckMessage;
+import edu.uci.ics.genomix.pregelix.type.Message;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+
+public class MergeBubbleMessageWritable implements WritableComparable<MergeBubbleMessageWritable> {
+    /**
+     * sourceVertexId stores source vertexId when headVertex sends the message
+     * stores neighber vertexValue when pathVertex sends the message
+     * file stores the point to the file that stores the chains of connected DNA
+     */
+    private PositionWritable sourceVertexId;
+    private KmerBytesWritable chainVertexId;
+    private AdjacencyListWritable neighberNode; //incoming or outgoing
+    private byte message;
+    private PositionWritable startVertexId;
+
+    private byte checkMessage;
+
+    public MergeBubbleMessageWritable() {
+        sourceVertexId = new PositionWritable();
+        chainVertexId = new KmerBytesWritable();
+        neighberNode = new AdjacencyListWritable();
+        startVertexId = new PositionWritable();
+        message = Message.NON;
+        checkMessage = (byte) 0;
+    }
+    
+    public void set(MergeBubbleMessageWritable msg) {
+        checkMessage = 0;
+        if (sourceVertexId != null) {
+            checkMessage |= CheckMessage.SOURCE;
+            this.sourceVertexId.set(msg.getSourceVertexId());
+        }
+        if (chainVertexId != null) {
+            checkMessage |= CheckMessage.ACUTUALKMER;
+            this.chainVertexId.setAsCopy(msg.getChainVertexId());
+        }
+        if (neighberNode != null) {
+            checkMessage |= CheckMessage.NEIGHBER;
+            this.neighberNode.set(msg.getNeighberNode());
+        }
+        if (startVertexId != null) {
+            checkMessage |= CheckMessage.START;
+            this.startVertexId.set(msg.getStartVertexId());
+        }
+        this.message = msg.getMessage();
+    }
+
+    public void set(PositionWritable sourceVertexId, KmerBytesWritable chainVertexId, AdjacencyListWritable neighberNode, PositionWritable startVertexId, byte message) {
+        checkMessage = 0;
+        if (sourceVertexId != null) {
+            checkMessage |= CheckMessage.SOURCE;
+            
+            this.sourceVertexId.set((byte)0, sourceVertexId.getReadId(),sourceVertexId.getPosId());
+        }
+        if (chainVertexId != null) {
+            checkMessage |= CheckMessage.ACUTUALKMER;
+            this.chainVertexId.setAsCopy(chainVertexId);
+
+        }
+        if (neighberNode != null) {
+            checkMessage |= CheckMessage.NEIGHBER;
+            this.neighberNode.set(neighberNode);
+        }
+        if (startVertexId != null) {
+            checkMessage |= CheckMessage.START;
+            this.startVertexId.set(startVertexId);
+        }
+        this.message = message;
+    }
+
+    public void reset() {
+        checkMessage = 0;
+//        chainVertexId.reset();
+        neighberNode.reset();
+        message = Message.NON;
+    }
+
+    public PositionWritable getSourceVertexId() {
+        return sourceVertexId;
+    }
+
+    public void setSourceVertexId(PositionWritable sourceVertexId) {
+        if (sourceVertexId != null) {
+            checkMessage |= CheckMessage.SOURCE;
+            this.sourceVertexId.set((byte)0, sourceVertexId.getReadId(),sourceVertexId.getPosId());
+        }
+    }
+    
+    public KmerBytesWritable getChainVertexId() {
+        return chainVertexId;
+    }
+
+    public void setChainVertexId(KmerBytesWritable chainVertexId) {
+        if (chainVertexId != null) {
+            checkMessage |= CheckMessage.ACUTUALKMER;
+            this.chainVertexId.setAsCopy(chainVertexId);
+
+        }
+    }
+    
+    public AdjacencyListWritable getNeighberNode() {
+        return neighberNode;
+    }
+
+    public void setNeighberNode(AdjacencyListWritable neighberNode) {
+        if(neighberNode != null){
+            checkMessage |= CheckMessage.NEIGHBER;
+            this.neighberNode.set(neighberNode);
+        }
+    }
+    
+    public int getLengthOfChain() {
+        return KmerBytesWritable.getKmerLength();
+    }
+
+    public PositionWritable getStartVertexId() {
+        return startVertexId;
+    }
+
+    public void setStartVertexId(PositionWritable startVertexId) {
+        if(startVertexId != null){
+            checkMessage |= CheckMessage.START;
+            this.startVertexId.set(startVertexId);
+        }
+    }
+
+    public byte getMessage() {
+        return message;
+    }
+
+    public void setMessage(byte message) {
+        this.message = message;
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        out.writeByte(checkMessage);
+        if ((checkMessage & CheckMessage.SOURCE) != 0)
+            sourceVertexId.write(out);
+        if ((checkMessage & CheckMessage.ACUTUALKMER) != 0)
+            chainVertexId.write(out);
+        if ((checkMessage & CheckMessage.NEIGHBER) != 0)
+            neighberNode.write(out);
+        if ((checkMessage & CheckMessage.START) != 0)
+            startVertexId.write(out);
+        out.write(message);
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        this.reset();
+        checkMessage = in.readByte();
+        if ((checkMessage & CheckMessage.SOURCE) != 0)
+            sourceVertexId.readFields(in);
+        if ((checkMessage & CheckMessage.ACUTUALKMER) != 0)
+            chainVertexId.readFields(in);
+        if ((checkMessage & CheckMessage.NEIGHBER) != 0)
+            neighberNode.readFields(in);
+        if ((checkMessage & CheckMessage.START) != 0)
+            startVertexId.readFields(in);
+        message = in.readByte();
+    }
+
+    @Override
+    public int hashCode() {
+        return sourceVertexId.hashCode();
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o instanceof MergeBubbleMessageWritable) {
+            MergeBubbleMessageWritable tp = (MergeBubbleMessageWritable) o;
+            return sourceVertexId.equals(tp.sourceVertexId);
+        }
+        return false;
+    }
+
+    @Override
+    public String toString() {
+        return sourceVertexId.toString();
+    }
+
+    public int compareTo(MergeBubbleMessageWritable tp) {
+        return sourceVertexId.compareTo(tp.sourceVertexId);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java
new file mode 100644
index 0000000..822d136
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java
@@ -0,0 +1,318 @@
+package edu.uci.ics.genomix.pregelix.io;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.Comparator;
+
+import org.apache.hadoop.io.WritableComparable;
+
+import edu.uci.ics.genomix.pregelix.type.CheckMessage;
+import edu.uci.ics.genomix.pregelix.type.Message;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.PositionListWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class MessageWritable implements WritableComparable<MessageWritable> {
+    /**
+     * sourceVertexId stores source vertexId when headVertex sends the message
+     * stores neighber vertexValue when pathVertex sends the message
+     * file stores the point to the file that stores the chains of connected DNA
+     */
+    private VKmerBytesWritable sourceVertexId;
+    private VKmerBytesWritable actualKmer;
+    private AdjacencyListWritable neighberNode; //incoming or outgoing
+    private PositionListWritable nodeIdList = new PositionListWritable();
+    private float averageCoverage;
+    private byte flag;
+    private boolean isFlip;
+    private int kmerlength = 0;
+    private boolean updateMsg = false;
+    private VKmerBytesWritable startVertexId;
+    
+    private byte checkMessage;
+
+    public MessageWritable() {
+        sourceVertexId = new VKmerBytesWritable();
+        actualKmer = new VKmerBytesWritable();
+        neighberNode = new AdjacencyListWritable();
+        startVertexId = new VKmerBytesWritable();
+        averageCoverage = 0;
+        flag = Message.NON;
+        isFlip = false;
+        checkMessage = (byte) 0;
+    }
+    
+    public MessageWritable(int kmerSize) {
+        kmerlength = kmerSize;
+        sourceVertexId = new VKmerBytesWritable(kmerSize);
+        actualKmer = new VKmerBytesWritable(0);
+
+        neighberNode = new AdjacencyListWritable(kmerSize);
+        startVertexId = new VKmerBytesWritable(kmerSize);
+        averageCoverage = 0;
+        flag = Message.NON;
+        isFlip = false;
+        checkMessage = (byte) 0;
+    }
+    
+    public void set(MessageWritable msg) {
+        this.kmerlength = msg.kmerlength;
+        checkMessage = 0;
+        if (sourceVertexId != null) {
+            checkMessage |= CheckMessage.SOURCE;
+            this.sourceVertexId.setAsCopy(msg.getSourceVertexId());
+        }
+        if (actualKmer != null) {
+            checkMessage |= CheckMessage.ACUTUALKMER;
+            this.actualKmer.setAsCopy(msg.getActualKmer());
+
+        }
+        if (neighberNode != null) {
+            checkMessage |= CheckMessage.NEIGHBER;
+            this.neighberNode.set(msg.getNeighberNode());
+        }
+        if (startVertexId != null) {
+            checkMessage |= CheckMessage.START;
+            this.startVertexId.setAsCopy(msg.getStartVertexId());
+        }
+        checkMessage |= CheckMessage.ADJMSG;
+        this.flag = msg.getFlag();
+        updateMsg = msg.isUpdateMsg();
+    }
+
+    public void set(int kmerlength, VKmerBytesWritable sourceVertexId, VKmerBytesWritable chainVertexId, AdjacencyListWritable neighberNode, byte message) {
+        this.kmerlength = kmerlength;
+        checkMessage = 0;
+        if (sourceVertexId != null) {
+            checkMessage |= CheckMessage.SOURCE;
+            this.sourceVertexId.setAsCopy(sourceVertexId);
+        }
+        if (chainVertexId != null) {
+            checkMessage |= CheckMessage.ACUTUALKMER;
+            this.actualKmer.setAsCopy(chainVertexId);
+
+        }
+        if (neighberNode != null) {
+            checkMessage |= CheckMessage.NEIGHBER;
+            this.neighberNode.set(neighberNode);
+        }
+        this.flag = message;
+    }
+
+    public void reset() {
+        reset(0);
+    }
+    
+    public void reset(int kmerSize) {
+        checkMessage = (byte) 0;
+        kmerlength = kmerSize;
+//        actualKmer.reset();
+        neighberNode.reset(kmerSize);
+        startVertexId.reset(kmerSize);
+        averageCoverage = 0;
+        flag = Message.NON;
+        isFlip = false;
+    }
+
+    public VKmerBytesWritable getSourceVertexId() {
+        return sourceVertexId;
+    }
+
+    public void setSourceVertexId(VKmerBytesWritable sourceVertexId) {
+        if (sourceVertexId != null) {
+            checkMessage |= CheckMessage.SOURCE;
+            this.sourceVertexId.setAsCopy(sourceVertexId);
+        }
+    }
+    
+    public VKmerBytesWritable getActualKmer() {
+        return actualKmer;
+    }
+
+    public void setActualKmer(VKmerBytesWritable actualKmer) {
+        if (actualKmer != null) {
+            checkMessage |= CheckMessage.ACUTUALKMER;
+            this.actualKmer.setAsCopy(actualKmer);
+
+        }
+    }
+    
+    public VKmerBytesWritable getCreatedVertexId() {
+        return actualKmer;
+    }
+
+    public void setCreatedVertexId(VKmerBytesWritable actualKmer) {
+        if (actualKmer != null) {
+            checkMessage |= CheckMessage.ACUTUALKMER;
+            this.actualKmer.setAsCopy(actualKmer);
+
+        }
+    }
+    
+    public AdjacencyListWritable getNeighberNode() {
+        return neighberNode;
+    }
+
+    public void setNeighberNode(AdjacencyListWritable neighberNode) {
+        if(neighberNode != null){
+            checkMessage |= CheckMessage.NEIGHBER;
+            this.neighberNode.set(neighberNode);
+        }
+    }
+    
+    public VKmerBytesWritable getStartVertexId() {
+        return startVertexId;
+    }
+
+    public void setStartVertexId(VKmerBytesWritable startVertexId) {
+        if(startVertexId != null){
+            checkMessage |= CheckMessage.START;
+            this.startVertexId.setAsCopy(startVertexId);
+        }
+    }
+    
+    /** for Scaffolding, startVertexId is used as seekedVertexId **/  
+    public VKmerBytesWritable getSeekedVertexId() {
+        return startVertexId;
+    }
+
+    public void setSeekedVertexId(VKmerBytesWritable startVertexId) {
+        if(startVertexId != null){
+            checkMessage |= CheckMessage.START;
+            this.startVertexId.setAsCopy(startVertexId);
+        }
+    }
+    
+    public float getAverageCoverage() {
+        return averageCoverage;
+    }
+
+    public void setAverageCoverage(float averageCoverage) {
+        this.averageCoverage = averageCoverage;
+    }
+
+    public int getLengthOfChain() {
+        return actualKmer.getKmerLetterLength();
+    }
+
+    public byte getFlag() {
+        return flag;
+    }
+
+    public void setFlag(byte message) {
+        this.flag = message;
+    }
+    
+    public boolean isFlip() {
+        return isFlip;
+    }
+
+    public void setFlip(boolean isFlip) {
+        this.isFlip = isFlip;
+    }
+
+    
+    public boolean isUpdateMsg() {
+        return updateMsg;
+    }
+
+    public void setUpdateMsg(boolean updateMsg) {
+        this.updateMsg = updateMsg;
+    }
+
+    public PositionListWritable getNodeIdList() {
+        return nodeIdList;
+    }
+
+    public void setNodeIdList(PositionListWritable nodeIdList) {
+        if(nodeIdList != null){
+            checkMessage |= CheckMessage.NODEIDLIST;
+            this.nodeIdList.set(nodeIdList);
+        }
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        out.writeInt(kmerlength);
+        out.writeByte(checkMessage);
+        if ((checkMessage & CheckMessage.SOURCE) != 0)
+            sourceVertexId.write(out);
+        if ((checkMessage & CheckMessage.ACUTUALKMER) != 0)
+            actualKmer.write(out);
+        if ((checkMessage & CheckMessage.NEIGHBER) != 0)
+            neighberNode.write(out);
+        if ((checkMessage & CheckMessage.NODEIDLIST) != 0)
+            nodeIdList.write(out);
+        if ((checkMessage & CheckMessage.START) != 0)
+            startVertexId.write(out);
+        out.writeFloat(averageCoverage);
+        out.writeBoolean(isFlip);
+        out.writeByte(flag); 
+        out.writeBoolean(updateMsg);
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        kmerlength = in.readInt();
+        this.reset(kmerlength);
+        checkMessage = in.readByte();
+        if ((checkMessage & CheckMessage.SOURCE) != 0)
+            sourceVertexId.readFields(in);
+        if ((checkMessage & CheckMessage.ACUTUALKMER) != 0)
+            actualKmer.readFields(in);
+        if ((checkMessage & CheckMessage.NEIGHBER) != 0)
+            neighberNode.readFields(in);
+        if ((checkMessage & CheckMessage.NODEIDLIST) != 0)
+            nodeIdList.readFields(in);
+        if ((checkMessage & CheckMessage.START) != 0)
+            startVertexId.readFields(in);
+        averageCoverage = in.readFloat();
+        isFlip = in.readBoolean();
+        flag = in.readByte();
+        updateMsg = in.readBoolean();
+    }
+
+    @Override
+    public int hashCode() {
+        return sourceVertexId.hashCode();
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o instanceof MessageWritable) {
+            MessageWritable tp = (MessageWritable) o;
+            return sourceVertexId.equals(tp.sourceVertexId);
+        }
+        return false;
+    }
+
+    @Override
+    public String toString() {
+        return sourceVertexId.toString();
+    }
+
+    @Override
+    public int compareTo(MessageWritable tp) {
+        return sourceVertexId.compareTo(tp.sourceVertexId);
+    }
+    
+    public static final class SortByCoverage implements Comparator<MessageWritable> {
+        @Override
+        public int compare(MessageWritable left, MessageWritable right) {
+            return Float.compare(left.averageCoverage, right.averageCoverage);
+        }
+    }
+    
+    /**
+     * Update my coverage to be the average of this and other. Used when merging paths.
+     */
+    public void mergeCoverage(MessageWritable other) {
+        // sequence considered in the average doesn't include anything overlapping with other kmers
+        float adjustedLength = actualKmer.getKmerLetterLength() + other.actualKmer.getKmerLetterLength() - (KmerBytesWritable.getKmerLength() - 1) * 2;
+        
+        float myCount = (actualKmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1) * averageCoverage;
+        float otherCount = (other.actualKmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1) * other.averageCoverage;
+        averageCoverage = (myCount + otherCount) / adjustedLength;
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/OutgoingListWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/OutgoingListWritable.java
new file mode 100644
index 0000000..275954d
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/OutgoingListWritable.java
@@ -0,0 +1,56 @@
+package edu.uci.ics.genomix.pregelix.io;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.hadoop.io.WritableComparable;
+
+import edu.uci.ics.genomix.type.PositionListWritable;
+
+public class OutgoingListWritable implements WritableComparable<OutgoingListWritable>{
+    private PositionListWritable forwardForwardList;
+    private PositionListWritable forwardReverseList;
+    
+    public OutgoingListWritable(){
+        forwardForwardList = new PositionListWritable();
+        forwardReverseList = new PositionListWritable();
+    }
+
+    public PositionListWritable getForwardForwardList() {
+        return forwardForwardList;
+    }
+
+    public void setForwardForwardList(PositionListWritable forwardForwardList) {
+        this.forwardForwardList = forwardForwardList;
+    }
+
+    public PositionListWritable getForwardReverseList() {
+        return forwardReverseList;
+    }
+
+    public void setForwardReverseList(PositionListWritable forwardReverseList) {
+        this.forwardReverseList = forwardReverseList;
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        forwardForwardList.readFields(in);
+        forwardReverseList.readFields(in);
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        forwardForwardList.write(out);
+        forwardReverseList.write(out);   
+    }
+
+    @Override
+    public int compareTo(OutgoingListWritable o) {
+        return 0;
+    }
+    
+    public int outDegree(){
+        return forwardForwardList.getCountOfPosition() + forwardReverseList.getCountOfPosition();
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
new file mode 100644
index 0000000..237d9ce
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
@@ -0,0 +1,379 @@
+package edu.uci.ics.genomix.pregelix.io;
+
+import java.io.*;
+import org.apache.hadoop.io.WritableComparable;
+
+import edu.uci.ics.genomix.type.PositionListWritable;
+import edu.uci.ics.genomix.pregelix.type.MessageFlag;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+
+public class VertexValueWritable implements WritableComparable<VertexValueWritable>, Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    public static class State extends VertexStateFlag{            
+        public static final byte NO_MERGE = 0b00 << 3;
+        public static final byte SHOULD_MERGEWITHNEXT = 0b01 << 3;
+        public static final byte SHOULD_MERGEWITHPREV = 0b10 << 3;
+        public static final byte SHOULD_MERGE_MASK = 0b11 << 3;
+        public static final byte SHOULD_MERGE_CLEAR = 0b1100111;
+        
+        public static final byte UNCHANGE = 0b0 << 3;
+        public static final byte KILL = 0b1 << 3;
+        public static final byte KILL_MASK = 0b1 << 3;
+        
+        public static final byte DIR_FROM_DEADVERTEX = 0b10 << 3;
+        public static final byte DEAD_MASK = 0b10 << 3;
+    }
+    
+    public static class VertexStateFlag extends FakeFlag {
+        public static final byte IS_NON = 0b00 << 5;
+        public static final byte IS_RANDOMTAIL = 0b00 << 5;
+        public static final byte IS_HEAD = 0b01 << 5;
+        public static final byte IS_FINAL = 0b10 << 5;
+        public static final byte IS_RANDOMHEAD = 0b11 << 5;
+        public static final byte IS_OLDHEAD = 0b11 << 5;
+
+        public static final byte VERTEX_MASK = 0b11 << 5;
+        public static final byte VERTEX_CLEAR = (byte) 11001111;
+    }
+    
+    public static class FakeFlag{
+        public static final byte IS_NONFAKE = 0 << 0;
+        public static final byte IS_FAKE = 1 << 0;
+        
+        public static final byte FAKEFLAG_MASK = (byte) 00000001;
+    }
+    
+    private PositionListWritable nodeIdList;
+    private AdjacencyListWritable incomingList;
+    private AdjacencyListWritable outgoingList;
+    private VKmerBytesWritable actualKmer;
+    private float averageCoverage;
+    private byte state;
+    private boolean isFakeVertex = false;
+    private HashMapWritable<VKmerBytesWritable, VKmerListWritable> traverseMap = new HashMapWritable<VKmerBytesWritable, VKmerListWritable>();
+
+    public VertexValueWritable() {
+        this(0);
+    }
+    
+    public VertexValueWritable(int kmerSize){
+        nodeIdList = new PositionListWritable();
+        incomingList = new AdjacencyListWritable();
+        outgoingList = new AdjacencyListWritable();
+        actualKmer = new VKmerBytesWritable();
+        state = State.IS_NON;
+        averageCoverage = 0;
+    }
+
+    public VertexValueWritable(PositionListWritable nodeIdList, VKmerListWritable forwardForwardList, VKmerListWritable forwardReverseList,
+            VKmerListWritable reverseForwardList, VKmerListWritable reverseReverseList, VKmerBytesWritable actualKmer,
+            float averageCoverage, byte state) {
+        set(nodeIdList, forwardForwardList, forwardReverseList, 
+                reverseForwardList, reverseReverseList, actualKmer,
+                averageCoverage, state);
+    }
+    
+    public void set(PositionListWritable nodeIdList, VKmerListWritable forwardForwardList, VKmerListWritable forwardReverseList,
+            VKmerListWritable reverseForwardList, VKmerListWritable reverseReverseList, VKmerBytesWritable actualKmer,
+            float averageCoverage, byte state) {
+        this.incomingList.setForwardList(reverseForwardList);
+        this.incomingList.setReverseList(reverseReverseList);
+        this.outgoingList.setForwardList(forwardForwardList);
+        this.outgoingList.setReverseList(forwardReverseList);
+        this.actualKmer.setAsCopy(actualKmer);
+        this.averageCoverage = averageCoverage;
+        this.state = state;
+    }
+    
+    public void set(VertexValueWritable value) {
+        set(value.getNodeIdList(), value.getFFList(),value.getFRList(),value.getRFList(),value.getRRList(),
+                value.getActualKmer(), value.getAverageCoverage(), value.getState());
+    }
+    
+    
+    public PositionListWritable getNodeIdList() {
+        return nodeIdList;
+    }
+    
+    //for testing 
+    public long getHeadReadId(){
+        return 1;
+    }
+
+    public void setNodeIdList(PositionListWritable nodeIdList) {
+        this.nodeIdList.set(nodeIdList);
+    }
+
+    public VKmerListWritable getFFList() {
+        return outgoingList.getForwardList();
+    }
+
+    public VKmerListWritable getFRList() {
+        return outgoingList.getReverseList();
+    }
+
+    public VKmerListWritable getRFList() {
+        return incomingList.getForwardList();
+    }
+
+    public VKmerListWritable getRRList() {
+        return incomingList.getReverseList();
+    }
+    
+    public void setFFList(VKmerListWritable forwardForwardList){
+        outgoingList.setForwardList(forwardForwardList);
+    }
+    
+    public void setFRList(VKmerListWritable forwardReverseList){
+        outgoingList.setReverseList(forwardReverseList);
+    }
+    
+    public void setRFList(VKmerListWritable reverseForwardList){
+        incomingList.setForwardList(reverseForwardList);
+    }
+
+    public void setRRList(VKmerListWritable reverseReverseList){
+        incomingList.setReverseList(reverseReverseList);
+    }
+    
+    public AdjacencyListWritable getIncomingList() {
+        return incomingList;
+    }
+
+    public void setIncomingList(AdjacencyListWritable incomingList) {
+        this.incomingList.set(incomingList);
+    }
+
+    public AdjacencyListWritable getOutgoingList() {
+        return outgoingList;
+    }
+
+    public void setOutgoingList(AdjacencyListWritable outgoingList) {
+        this.outgoingList.set(outgoingList);
+    }
+
+    public byte getState() {
+        return state;
+    }
+    
+    public VKmerBytesWritable getActualKmer() {
+        return actualKmer;
+    }
+
+    public void setActualKmer(VKmerBytesWritable kmer) {
+        this.actualKmer.setAsCopy(kmer);
+    }
+
+    public float getAverageCoverage() {
+        return averageCoverage;
+    }
+
+    public void setAverageCoverage(float averageCoverage) {
+        this.averageCoverage = averageCoverage;
+    }
+
+    public boolean isFakeVertex() {
+        return isFakeVertex;
+    }
+
+    public void setFakeVertex(boolean isFakeVertex) {
+        this.isFakeVertex = isFakeVertex;
+    }
+
+    public void setState(byte state) {
+        this.state = state;
+    }
+
+    public int getLengthOfKmer() {
+        return actualKmer.getKmerLetterLength();
+    }
+    
+    
+    public HashMapWritable<VKmerBytesWritable, VKmerListWritable> getTraverseMap() {
+        return traverseMap;
+    }
+
+    public void setTraverseMap(HashMapWritable<VKmerBytesWritable, VKmerListWritable> traverseMap) {
+        this.traverseMap = traverseMap;
+    }
+
+    public void reset() {
+        this.reset(0);
+    }
+    
+    public void reset(int kmerSize) {
+        this.nodeIdList.reset();
+        this.incomingList.getForwardList().reset();
+        this.incomingList.getReverseList().reset();
+        this.outgoingList.getForwardList().reset();
+        this.outgoingList.getReverseList().reset();
+        this.actualKmer.reset(0);
+        averageCoverage = 0;
+    }
+    
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        reset();
+        this.nodeIdList.readFields(in);
+        this.outgoingList.getForwardList().readFields(in);
+        this.outgoingList.getReverseList().readFields(in);
+        this.incomingList.getForwardList().readFields(in);
+        this.incomingList.getReverseList().readFields(in);
+        this.actualKmer.readFields(in);
+        averageCoverage = in.readFloat();
+        this.state = in.readByte();
+        this.isFakeVertex = in.readBoolean();
+        this.traverseMap.readFields(in);
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        this.nodeIdList.write(out);
+        this.outgoingList.getForwardList().write(out);
+        this.outgoingList.getReverseList().write(out);
+        this.incomingList.getForwardList().write(out);
+        this.incomingList.getReverseList().write(out);
+        this.actualKmer.write(out);
+        out.writeFloat(averageCoverage);
+        out.writeByte(this.state);
+        out.writeBoolean(this.isFakeVertex);
+        this.traverseMap.write(out);
+    }
+
+    @Override
+    public int compareTo(VertexValueWritable o) {
+        return 0;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sbuilder = new StringBuilder();
+        sbuilder.append('{');
+        sbuilder.append(nodeIdList.toString()).append('\t');
+        sbuilder.append(outgoingList.getForwardList().toString()).append('\t');
+        sbuilder.append(outgoingList.getReverseList().toString()).append('\t');
+        sbuilder.append(incomingList.getForwardList().toString()).append('\t');
+        sbuilder.append(incomingList.getReverseList().toString()).append('\t');
+        sbuilder.append(actualKmer.toString()).append('}');
+        return sbuilder.toString();
+    }
+    
+    public int inDegree(){
+        return incomingList.getForwardList().getCountOfPosition() + incomingList.getReverseList().getCountOfPosition();
+    }
+    
+    public int outDegree(){
+        return outgoingList.getForwardList().getCountOfPosition() + outgoingList.getReverseList().getCountOfPosition();
+    }
+    
+    public int getDegree(){
+        return inDegree() + outDegree();
+    }
+    
+    /*
+     * Delete the corresponding edge
+     */
+    public void processDelete(byte neighborToDeleteDir, VKmerBytesWritable nodeToDelete){
+        switch (neighborToDeleteDir & MessageFlag.DIR_MASK) {
+            case MessageFlag.DIR_FF:
+                this.getFFList().remove(nodeToDelete);
+                break;
+            case MessageFlag.DIR_FR:
+                this.getFRList().remove(nodeToDelete);
+                break;
+            case MessageFlag.DIR_RF:
+                this.getRFList().remove(nodeToDelete);
+                break;
+            case MessageFlag.DIR_RR:
+                this.getRRList().remove(nodeToDelete);
+                break;
+        }
+    }
+    
+    /*
+     * Process any changes to value.  This is for edge updates
+     */
+    public void processUpdates(byte neighborToDeleteDir, VKmerBytesWritable nodeToDelete,
+            byte neighborToMergeDir, VKmerBytesWritable nodeToAdd){
+//        TODO
+//        this.getListFromDir(neighborToDeleteDir).remove(nodeToDelete);
+//        this.getListFromDir(neighborToMergeDir).append(nodeToDelete);
+        
+        switch (neighborToDeleteDir & MessageFlag.DIR_MASK) {
+            case MessageFlag.DIR_FF:
+                this.getFFList().remove(nodeToDelete);
+                break;
+            case MessageFlag.DIR_FR:
+                this.getFRList().remove(nodeToDelete);
+                break;
+            case MessageFlag.DIR_RF:
+                this.getRFList().remove(nodeToDelete);
+                break;
+            case MessageFlag.DIR_RR:
+                this.getRRList().remove(nodeToDelete);
+                break;
+        }
+        switch (neighborToMergeDir & MessageFlag.DIR_MASK) {
+            case MessageFlag.DIR_FF:
+                this.getFFList().append(nodeToAdd);
+                break;
+            case MessageFlag.DIR_FR:
+                this.getFRList().append(nodeToAdd);
+                break;
+            case MessageFlag.DIR_RF:
+                this.getRFList().append(nodeToAdd);
+                break;
+            case MessageFlag.DIR_RR:
+                this.getRRList().append(nodeToAdd);
+                break;
+        }
+    }
+    
+    /*
+     * Process any changes to value.  This is for merging
+     */
+    public void processMerges(byte neighborToDeleteDir, VKmerBytesWritable nodeToDelete,
+            byte neighborToMergeDir, VKmerBytesWritable nodeToAdd, 
+            int kmerSize, VKmerBytesWritable kmer){
+        switch (neighborToDeleteDir & MessageFlag.DIR_MASK) {
+            case MessageFlag.DIR_FF:
+                this.getFFList().remove(nodeToDelete); //set(null);
+                this.getActualKmer().mergeWithFFKmer(kmerSize, kmer);
+                break;
+            case MessageFlag.DIR_FR:
+                this.getFRList().remove(nodeToDelete);
+                this.getActualKmer().mergeWithFRKmer(kmerSize, kmer);
+                break;
+            case MessageFlag.DIR_RF:
+                this.getRFList().remove(nodeToDelete);
+                this.getActualKmer().mergeWithRFKmer(kmerSize, kmer);
+                break;
+            case MessageFlag.DIR_RR:
+                this.getRRList().remove(nodeToDelete);
+                this.getActualKmer().mergeWithRRKmer(kmerSize, kmer);
+                break;
+        }
+        // TODO: remove switch below and replace with general direction merge
+//        this.getKmer().mergeWithDirKmer(neighborToMergeDir);
+        if(nodeToAdd != null){ //if null, nodeToAdd is empty and so another node may be head or tail
+            switch (neighborToMergeDir & MessageFlag.DIR_MASK) {
+                case MessageFlag.DIR_FF:
+                    this.getFFList().append(nodeToAdd);
+                    break;
+                case MessageFlag.DIR_FR:
+                    this.getFRList().append(nodeToAdd);
+                    break;
+                case MessageFlag.DIR_RF:
+                    this.getRFList().append(nodeToAdd);
+                    break;
+                case MessageFlag.DIR_RR:
+                    this.getRRList().append(nodeToAdd);
+                    break;
+            }
+        }
+    }
+    
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/DataLoadLogFormatter.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/DataLoadLogFormatter.java
new file mode 100644
index 0000000..95e070f
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/DataLoadLogFormatter.java
@@ -0,0 +1,33 @@
+package edu.uci.ics.genomix.pregelix.log;
+
+import java.util.logging.Formatter;
+import java.util.logging.Handler;
+import java.util.logging.LogRecord;
+
+import edu.uci.ics.genomix.type.NodeWritable;
+
+public class DataLoadLogFormatter extends Formatter {
+    private NodeWritable key;
+
+    public void set(NodeWritable key) {
+        this.key.set(key);
+    }
+
+    public String format(LogRecord record) {
+        StringBuilder builder = new StringBuilder(1000);
+
+        builder.append(key.toString() + "\r\n");
+
+        if (!formatMessage(record).equals(""))
+            builder.append(formatMessage(record) + "\r\n");
+        return builder.toString();
+    }
+
+    public String getHead(Handler h) {
+        return super.getHead(h);
+    }
+
+    public String getTail(Handler h) {
+        return super.getTail(h);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/LogAlgorithmLogFormatter.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/LogAlgorithmLogFormatter.java
new file mode 100644
index 0000000..90eefa1
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/LogAlgorithmLogFormatter.java
@@ -0,0 +1,116 @@
+package edu.uci.ics.genomix.pregelix.log;
+
+import java.util.logging.*;
+
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.type.Message;
+import edu.uci.ics.genomix.pregelix.type.State2;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+
+public class LogAlgorithmLogFormatter extends Formatter {
+    //
+    // Create a DateFormat to format the logger timestamp.
+    //
+    private long step;
+    private KmerBytesWritable sourceVertexId = new KmerBytesWritable();
+    private KmerBytesWritable destVertexId = new KmerBytesWritable();
+    private MessageWritable msg = new MessageWritable();
+    private byte state;
+    private KmerBytesWritable mergeChain = new KmerBytesWritable();
+    //private boolean testDelete = false;
+    /**
+     * 0: general operation
+     * 1: testDelete
+     * 2: testMergeChain
+     * 3: testVoteToHalt
+     */
+    private int operation;
+
+    public LogAlgorithmLogFormatter() {
+    }
+
+    public void set(long step, KmerBytesWritable sourceVertexId, KmerBytesWritable destVertexId,
+            MessageWritable msg, byte state) {
+        this.step = step;
+        this.sourceVertexId.setAsCopy(sourceVertexId);
+        this.destVertexId.setAsCopy(destVertexId);
+        this.msg = msg;
+        this.state = state;
+        this.operation = 0;
+    }
+
+    public void setMergeChain(long step, KmerBytesWritable sourceVertexId, KmerBytesWritable mergeChain) {
+        this.reset();
+        this.step = step;
+        this.sourceVertexId.setAsCopy(sourceVertexId);
+        this.mergeChain.setAsCopy(mergeChain);
+        this.operation = 2;
+    }
+
+    public void setVotoToHalt(long step, KmerBytesWritable sourceVertexId) {
+        this.reset();
+        this.step = step;
+        this.sourceVertexId.setAsCopy(sourceVertexId);
+        this.operation = 3;
+    }
+
+    public void reset() {
+        this.sourceVertexId = new KmerBytesWritable();
+        this.destVertexId = new KmerBytesWritable();
+        this.msg = new MessageWritable();
+        this.state = 0;
+        this.mergeChain = new KmerBytesWritable();
+    }
+
+    public String format(LogRecord record) {
+        StringBuilder builder = new StringBuilder(1000);
+        String source = sourceVertexId.toString();
+        String chain = "";
+
+        builder.append("Step: " + step + "\r\n");
+        builder.append("Source Code: " + source + "\r\n");
+        if (operation == 0) {
+            if (KmerBytesWritable.getKmerLength() != -1) {
+                String dest = destVertexId.toString();
+                builder.append("Send message to " + "\r\n");
+                builder.append("Destination Code: " + dest + "\r\n");
+            }
+            builder.append("Message is: " + Message.MESSAGE_CONTENT.getContentFromCode(msg.getFlag()) + "\r\n");
+
+            if (msg.getLengthOfChain() != -1) {
+                chain = msg.getActualKmer().toString();
+                builder.append("Chain Message: " + chain + "\r\n");
+                builder.append("Chain Length: " + msg.getLengthOfChain() + "\r\n");
+            }
+
+            builder.append("State is: " + State2.STATE_CONTENT.getContentFromCode(state) + "\r\n");
+        }
+        if (operation == 2) {
+            chain = mergeChain.toString();
+            builder.append("Merge Chain: " + chain + "\r\n");
+            builder.append("Merge Chain Length: " + KmerBytesWritable.getKmerLength() + "\r\n");
+        }
+        if (operation == 3)
+            builder.append("Vote to halt!");
+        if (!formatMessage(record).equals(""))
+            builder.append(formatMessage(record) + "\r\n");
+        builder.append("\n");
+        return builder.toString();
+    }
+
+    public String getHead(Handler h) {
+        return super.getHead(h);
+    }
+
+    public String getTail(Handler h) {
+        return super.getTail(h);
+    }
+
+    public int getOperation() {
+        return operation;
+    }
+
+    public void setOperation(int operation) {
+        this.operation = operation;
+    }
+}
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/NaiveAlgorithmLogFormatter.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/NaiveAlgorithmLogFormatter.java
new file mode 100644
index 0000000..6b23074
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/NaiveAlgorithmLogFormatter.java
@@ -0,0 +1,47 @@
+package edu.uci.ics.genomix.pregelix.log;
+
+import java.util.logging.*;
+
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+
+public class NaiveAlgorithmLogFormatter extends Formatter {
+    //
+    // Create a DateFormat to format the logger timestamp.
+    //
+    //private static final DateFormat df = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");
+    private long step;
+    private KmerBytesWritable sourceVertexId;
+    private KmerBytesWritable destVertexId;
+
+    public void set(long step, KmerBytesWritable sourceVertexId, KmerBytesWritable destVertexId) {
+        this.step = step;
+        this.sourceVertexId.setAsCopy(sourceVertexId);
+        this.destVertexId.setAsCopy(destVertexId);
+    }
+
+    public String format(LogRecord record) {
+        StringBuilder builder = new StringBuilder(1000);
+        String source = sourceVertexId.toString();
+
+        builder.append("Step: " + step + "\r\n");
+        builder.append("Source Code: " + source + "\r\n");
+
+        if (destVertexId != null) {
+            builder.append("Send message to " + "\r\n");
+            String dest = destVertexId.toString();
+            builder.append("Destination Code: " + dest + "\r\n");
+        }
+        if (!formatMessage(record).equals(""))
+            builder.append(formatMessage(record) + "\r\n");
+        builder.append("\n");
+        return builder.toString();
+    }
+
+    public String getHead(Handler h) {
+        return super.getHead(h);
+    }
+
+    public String getTail(Handler h) {
+        return super.getTail(h);
+    }
+}
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeAddVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeAddVertex.java
new file mode 100644
index 0000000..13a6223
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeAddVertex.java
@@ -0,0 +1,128 @@
+package edu.uci.ics.genomix.pregelix.operator.bridgeremove;
+
+import java.util.Iterator;
+import org.apache.hadoop.io.NullWritable;
+
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.api.util.BspUtils;
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+
+/*
+ * vertexId: BytesWritable
+ * vertexValue: ByteWritable
+ * edgeValue: NullWritable
+ * message: MessageWritable
+ * 
+ * DNA:
+ * A: 00
+ * C: 01
+ * G: 10
+ * T: 11
+ * 
+ * succeed node
+ *  A 00000001 1
+ *  G 00000010 2
+ *  C 00000100 4
+ *  T 00001000 8
+ * precursor node
+ *  A 00010000 16
+ *  G 00100000 32
+ *  C 01000000 64
+ *  T 10000000 128
+ *  
+ * For example, ONE LINE in input file: 00,01,10    0001,0010,
+ * That means that vertexId is ACG, its succeed node is A and its precursor node is C.
+ * The succeed node and precursor node will be stored in vertexValue and we don't use edgeValue.
+ * The details about message are in edu.uci.ics.pregelix.example.io.MessageWritable. 
+ */
+/**
+ * Naive Algorithm for path merge graph
+ */
+public class BridgeAddVertex extends
+        Vertex<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> {
+    public static final String KMER_SIZE = "BridgeRemoveVertex.kmerSize"; // TODO consolidate config options
+    public static final String LENGTH = "BridgeRemoveVertex.length";
+    public static int kmerSize = -1;
+    private int length = -1;
+    
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+        if (kmerSize == -1) {
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+            KmerBytesWritable.setGlobalKmerLength(kmerSize);
+        }
+        if (length == -1)
+            length = getContext().getConfiguration().getInt(LENGTH, kmerSize + 5); // TODO fail on parse
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex();
+        if(getSuperstep() == 1){
+            if(getVertexId().toString().equals("ATA")){
+            	VKmerBytesWritable vertexId = new VKmerBytesWritable(kmerSize);
+                vertexId.setByRead(kmerSize, "GTA".getBytes(), 0);
+                getVertexValue().getFRList().append(vertexId);
+                
+                //add bridge vertex
+                @SuppressWarnings("rawtypes")
+                Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
+                vertex.getMsgList().clear();
+                vertex.getEdges().clear();
+                VertexValueWritable vertexValue = new VertexValueWritable(kmerSize);
+                /**
+                 * set the src vertex id
+                 */
+                vertex.setVertexId(vertexId);
+                /**
+                 * set the vertex value
+                 */
+                VKmerListWritable kmerFRList = new VKmerListWritable();
+
+                kmerFRList.append(getVertexId());
+                vertexValue.setFRList(kmerFRList);
+                VKmerBytesWritable otherVertexId = new VKmerBytesWritable(kmerSize);
+                otherVertexId.setByRead(kmerSize, "ACG".getBytes(), 0);
+                VKmerListWritable kmerRFList = new VKmerListWritable();
+                kmerRFList.append(otherVertexId);
+                vertexValue.setRFList(kmerRFList);
+                vertexValue.setActualKmer(vertexId);
+                vertex.setVertexValue(vertexValue);
+                
+                addVertex(vertexId, vertex);
+            } 
+            else if(getVertexId().toString().equals("ACG")){
+                VKmerBytesWritable brdgeVertexId = new VKmerBytesWritable(kmerSize);
+                brdgeVertexId.setByRead(kmerSize, "GTA".getBytes(), 0);
+                getVertexValue().getRFList().append(brdgeVertexId);
+            }
+        }
+        voteToHalt();
+    }
+
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(BridgeAddVertex.class.getSimpleName());
+        job.setVertexClass(BridgeAddVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(KmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeRemoveVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeRemoveVertex.java
new file mode 100644
index 0000000..50b1518
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeRemoveVertex.java
@@ -0,0 +1,122 @@
+package edu.uci.ics.genomix.pregelix.operator.bridgeremove;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.genomix.type.PositionWritable;
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.BasicGraphCleanVertex;
+import edu.uci.ics.genomix.pregelix.util.VertexUtil;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+/*
+ * vertexId: BytesWritable
+ * vertexValue: ByteWritable
+ * edgeValue: NullWritable
+ * message: MessageWritable
+ * 
+ * DNA:
+ * A: 00
+ * C: 01
+ * G: 10
+ * T: 11
+ * 
+ * succeed node
+ *  A 00000001 1
+ *  G 00000010 2
+ *  C 00000100 4
+ *  T 00001000 8
+ * precursor node
+ *  A 00010000 16
+ *  G 00100000 32
+ *  C 01000000 64
+ *  T 10000000 128
+ *  
+ * For example, ONE LINE in input file: 00,01,10    0001,0010,
+ * That means that vertexId is ACG, its succeed node is A and its precursor node is C.
+ * The succeed node and precursor node will be stored in vertexValue and we don't use edgeValue.
+ * The details about message are in edu.uci.ics.pregelix.example.io.MessageWritable. 
+ */
+/**
+ * Naive Algorithm for path merge graph
+ */
+public class BridgeRemoveVertex extends
+    BasicGraphCleanVertex {
+    public static final String LENGTH = "BridgeRemoveVertex.length";
+    private int length = -1;
+
+    private ArrayList<MessageWritable> receivedMsgList = new ArrayList<MessageWritable>();
+   
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if(length == -1)
+            length = getContext().getConfiguration().getInt(LENGTH, kmerSize);
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable(kmerSize);
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable(kmerSize);
+        else
+            outgoingMsg.reset(kmerSize);
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable(kmerSize);
+        receivedMsgList.clear();
+    }
+
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex();
+        if (getSuperstep() == 1) {
+            if(VertexUtil.isUpBridgeVertex(getVertexValue())){
+                sendSettledMsgToAllNextNodes(getVertexValue());
+            }
+            else if(VertexUtil.isDownBridgeVertex(getVertexValue())){
+                sendSettledMsgToAllPreviousNodes(getVertexValue());
+            }
+        }
+        else if (getSuperstep() == 2){
+            int i = 0;
+            while (msgIterator.hasNext()) {
+                if(i == 3)
+                    break;
+                receivedMsgList.add(msgIterator.next());
+                i++;
+            }
+            if(receivedMsgList.size() == 2){
+                if(getVertexValue().getLengthOfKmer() <= length 
+                        && getVertexValue().getDegree() == 2){
+                    broadcaseKillself();
+                }
+            }
+        }
+        else if(getSuperstep() == 3){
+            while(msgIterator.hasNext()){
+                incomingMsg = msgIterator.next();
+                responseToDeadVertex();
+            }
+        }
+        voteToHalt();
+    }
+
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(BridgeRemoveVertex.class.getSimpleName());
+        job.setVertexClass(BridgeRemoveVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(PositionWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleAddVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleAddVertex.java
new file mode 100644
index 0000000..aca9d95
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleAddVertex.java
@@ -0,0 +1,122 @@
+package edu.uci.ics.genomix.pregelix.operator.bubblemerge;
+
+import java.util.Iterator;
+import org.apache.hadoop.io.NullWritable;
+
+import edu.uci.ics.genomix.type.VKmerListWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.api.util.BspUtils;
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+
+/*
+ * vertexId: BytesWritable
+ * vertexValue: ByteWritable
+ * edgeValue: NullWritable
+ * message: MessageWritable
+ * 
+ * DNA:
+ * A: 00
+ * C: 01
+ * G: 10
+ * T: 11
+ * 
+ * succeed node
+ *  A 00000001 1
+ *  G 00000010 2
+ *  C 00000100 4
+ *  T 00001000 8
+ * precursor node
+ *  A 00010000 16
+ *  G 00100000 32
+ *  C 01000000 64
+ *  T 10000000 128
+ *  
+ * For example, ONE LINE in input file: 00,01,10    0001,0010,
+ * That means that vertexId is ACG, its succeed node is A and its precursor node is C.
+ * The succeed node and precursor node will be stored in vertexValue and we don't use edgeValue.
+ * The details about message are in edu.uci.ics.pregelix.example.io.MessageWritable. 
+ */
+/**
+ *  Remove tip or single node when l > constant
+ */
+public class BubbleAddVertex extends
+        Vertex<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> {
+    public static final String KMER_SIZE = "BubbleAddVertex.kmerSize";
+    public static int kmerSize = -1;
+   
+    /**
+     * initiate kmerSize, length
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex(); 
+        if(getSuperstep() == 1){
+            if(getVertexId().toString().equals("ATA")){
+                VKmerBytesWritable vertexId = new VKmerBytesWritable();
+                vertexId.setByRead(kmerSize, "GTA".getBytes(), 0);
+                getVertexValue().getFRList().append(vertexId);
+                
+                //add bridge vertex
+                @SuppressWarnings("rawtypes")
+                Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
+                vertex.getMsgList().clear();
+                vertex.getEdges().clear();
+                VertexValueWritable vertexValue = new VertexValueWritable(kmerSize);
+                /**
+                 * set the src vertex id
+                 */
+                vertex.setVertexId(vertexId);
+                /**
+                 * set the vertex value
+                 */
+                VKmerListWritable kmerFRList = new VKmerListWritable();
+
+                kmerFRList.append(getVertexId());
+                vertexValue.setFRList(kmerFRList);
+                VKmerBytesWritable otherVertexId = new VKmerBytesWritable();
+                otherVertexId.setByRead(kmerSize, "AGA".getBytes(), 0);
+                VKmerListWritable kmerRFList = new VKmerListWritable();
+                kmerRFList.append(otherVertexId);
+                vertexValue.setRFList(kmerRFList);
+                vertexValue.setActualKmer(vertexId);
+
+                vertex.setVertexValue(vertexValue);
+                
+                addVertex(vertexId, vertex);
+            } 
+            else if(getVertexId().toString().equals("AGA")){
+                VKmerBytesWritable brdgeVertexId = new VKmerBytesWritable();
+                brdgeVertexId.setByRead(kmerSize, "GTA".getBytes(), 0);
+                getVertexValue().getRFList().append(brdgeVertexId);
+            }
+        }
+        voteToHalt();
+    }
+
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(BubbleAddVertex.class.getSimpleName());
+        job.setVertexClass(BubbleAddVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java
new file mode 100644
index 0000000..c97244a
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java
@@ -0,0 +1,212 @@
+package edu.uci.ics.genomix.pregelix.operator.bubblemerge;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.BasicGraphCleanVertex;
+import edu.uci.ics.genomix.pregelix.type.MessageFlag;
+import edu.uci.ics.genomix.pregelix.util.VertexUtil;
+
+/**
+ * Naive Algorithm for path merge graph
+ */
+public class BubbleMergeVertex extends
+    BasicGraphCleanVertex {
+    public static final String DISSIMILARITY_THRESHOLD = "BubbleMergeVertex.dissimilarThreshold";
+    private float dissimilarThreshold = -1;
+    
+    private Map<VKmerBytesWritable, ArrayList<MessageWritable>> receivedMsgMap = new HashMap<VKmerBytesWritable, ArrayList<MessageWritable>>();
+    private ArrayList<MessageWritable> receivedMsgList = new ArrayList<MessageWritable>();
+    private Set<MessageWritable> unchangedSet = new HashSet<MessageWritable>();
+    private Set<MessageWritable> deletedSet = new HashSet<MessageWritable>();
+
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if (maxIteration < 0)
+            maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
+        if(dissimilarThreshold == -1)
+            dissimilarThreshold = getContext().getConfiguration().getFloat(DISSIMILARITY_THRESHOLD, (float) 0.05);
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable();
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable();
+        else
+            outgoingMsg.reset(kmerSize);
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable();
+        outFlag = 0;
+    }
+    
+    public void sendBubbleAndMajorVertexMsgToMinorVertex(){
+        byte meToNeighborDir = (byte) (incomingMsg.getFlag() & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+        switch(neighborToMeDir){
+            case MessageFlag.DIR_RF:
+            case MessageFlag.DIR_RR:
+                if(hasNextDest(getVertexValue())){
+                    outgoingMsg.setStartVertexId(incomingMsg.getSourceVertexId());
+                    outgoingMsg.setSourceVertexId(getVertexId());
+                    outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+                    destVertexId.setAsCopy(getNextDestVertexId(getVertexValue()));
+                    sendMsg(destVertexId, outgoingMsg);
+                }
+                break;
+            case MessageFlag.DIR_FF:
+            case MessageFlag.DIR_FR:
+                if(hasPrevDest(getVertexValue())){
+                    outgoingMsg.setStartVertexId(incomingMsg.getSourceVertexId());
+                    outgoingMsg.setSourceVertexId(getVertexId());
+                    outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+                    destVertexId.setAsCopy(getPrevDestVertexId(getVertexValue()));
+                    sendMsg(destVertexId, outgoingMsg);
+                }
+                break;
+        }
+    }
+    
+    @SuppressWarnings({ "unchecked" })
+    public void aggregateBubbleNodesByMajorNode(Iterator<MessageWritable> msgIterator){
+        while (msgIterator.hasNext()) {
+            incomingMsg = msgIterator.next();
+            if(!receivedMsgMap.containsKey(incomingMsg.getStartVertexId())){
+                receivedMsgList.clear();
+                receivedMsgList.add(incomingMsg);
+                receivedMsgMap.put(incomingMsg.getStartVertexId(), (ArrayList<MessageWritable>)receivedMsgList.clone());
+            }
+            else{
+                receivedMsgList.clear();
+                receivedMsgList.addAll(receivedMsgMap.get(incomingMsg.getStartVertexId()));
+                receivedMsgList.add(incomingMsg);
+                receivedMsgMap.put(incomingMsg.getStartVertexId(), (ArrayList<MessageWritable>)receivedMsgList.clone());
+            }
+        }
+    }
+    
+    public void processSimilarSetToUnchangeSetAndDeletedSet(){
+        unchangedSet.clear();
+        deletedSet.clear();
+        MessageWritable topCoverageMessage = new MessageWritable();
+        MessageWritable tmpMessage = new MessageWritable();
+        Iterator<MessageWritable> it;
+        while(!receivedMsgList.isEmpty()){
+            it = receivedMsgList.iterator();
+            topCoverageMessage.set(it.next());
+            it.remove(); //delete topCoverage node
+            while(it.hasNext()){
+                tmpMessage.set(it.next());
+                //compute the similarity  
+                float fracDissimilar = topCoverageMessage.getSourceVertexId().fracDissimilar(tmpMessage.getSourceVertexId());
+                if(fracDissimilar < dissimilarThreshold){ //If similar with top node, delete this node and put it in deletedSet 
+                    //add coverage to top node
+                    topCoverageMessage.mergeCoverage(tmpMessage);
+                    deletedSet.add(tmpMessage);
+                    it.remove();
+                }
+            }
+            unchangedSet.add(topCoverageMessage);
+        }
+    }
+    
+    public void processUnchangedSet(){
+        for(MessageWritable msg : unchangedSet){
+            outFlag = MessageFlag.UNCHANGE;
+            outgoingMsg.setFlag(outFlag);
+            outgoingMsg.setAverageCoverage(msg.getAverageCoverage());
+            sendMsg(msg.getSourceVertexId(), outgoingMsg);
+        }
+    }
+    
+    public void processDeletedSet(){
+        for(MessageWritable msg : deletedSet){
+            outFlag = MessageFlag.KILL;
+            outgoingMsg.setFlag(outFlag);
+            sendMsg(msg.getSourceVertexId(), outgoingMsg);
+        }
+    }
+    
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex();
+        if (getSuperstep() == 1) {
+            if(VertexUtil.isHeadVertexWithIndegree(getVertexValue())
+                    || VertexUtil.isHeadWithoutIndegree(getVertexValue())){
+                sendSettledMsgToAllNextNodes(getVertexValue());
+            }
+        } else if (getSuperstep() == 2){
+            while (msgIterator.hasNext()) {
+                incomingMsg = msgIterator.next();
+                if(VertexUtil.isPathVertex(getVertexValue())){
+                    /** send bubble and major vertex msg to minor vertex **/
+                    sendBubbleAndMajorVertexMsgToMinorVertex();
+                }
+            }
+        } else if (getSuperstep() == 3){
+            /** aggregate bubble nodes and grouped by major vertex **/ 
+            aggregateBubbleNodesByMajorNode(msgIterator);
+            
+            
+            for(VKmerBytesWritable prevId : receivedMsgMap.keySet()){
+                if(receivedMsgList.size() > 1){ // filter bubble
+                    /** for each startVertex, sort the node by decreasing order of coverage **/
+                    receivedMsgList = receivedMsgMap.get(prevId);
+                    Collections.sort(receivedMsgList, new MessageWritable.SortByCoverage());
+                    
+                    /** process similarSet, keep the unchanged set and deleted set & add coverage to unchange node **/
+                    processSimilarSetToUnchangeSetAndDeletedSet();
+                    
+                    /** send message to the unchanged set for updating coverage & send kill message to the deleted set **/ 
+                    processUnchangedSet();
+                    processDeletedSet();
+                }
+            }
+        } else if (getSuperstep() == 4){
+            if(msgIterator.hasNext()) {
+                incomingMsg = msgIterator.next();
+                if(incomingMsg.getFlag() == MessageFlag.KILL){
+                    broadcaseKillself();
+                } else if(incomingMsg.getFlag() == MessageFlag.UNCHANGE){
+                    /** update average coverage **/
+                    getVertexValue().setAverageCoverage(incomingMsg.getAverageCoverage());
+                }
+            }
+        } else if(getSuperstep() == 5){
+            if(msgIterator.hasNext()) {
+                incomingMsg = msgIterator.next();
+                if(isResponseKillMsg()){
+                    responseToDeadVertex();
+                }
+            }
+        }
+        voteToHalt();
+    }
+
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(BubbleMergeVertex.class.getSimpleName());
+        job.setVertexClass(BubbleMergeVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java
new file mode 100644
index 0000000..4936d17
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java
@@ -0,0 +1,832 @@
+package edu.uci.ics.genomix.pregelix.operator.pathmerge;
+
+import java.io.IOException;
+import java.util.Iterator;
+
+import org.apache.hadoop.io.NullWritable;
+
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+import edu.uci.ics.genomix.pregelix.type.MessageFlag;
+import edu.uci.ics.genomix.pregelix.util.VertexUtil;
+import edu.uci.ics.genomix.type.GeneCode;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+/**
+ * Naive Algorithm for path merge graph
+ */
+public class BasicGraphCleanVertex extends
+        Vertex<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> {
+    public static final String KMER_SIZE = "BasicGraphCleanVertex.kmerSize";
+    public static final String ITERATIONS = "BasicGraphCleanVertex.iteration";
+    public static int kmerSize = -1;
+    public static int maxIteration = -1;
+    
+    protected MessageWritable incomingMsg = null; 
+    protected MessageWritable outgoingMsg = null; 
+    protected VKmerBytesWritable destVertexId = null;
+    protected Iterator<VKmerBytesWritable> kmerIterator;
+    protected VKmerBytesWritable tmpKmer = null;
+    protected byte headFlag;
+    protected byte outFlag;
+    protected byte inFlag;
+    protected byte selfFlag;
+    
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+    }
+    
+    /**
+     * reset headFlag
+     */
+    public void resetHeadFlag(){
+        headFlag = (byte)(getVertexValue().getState() & State.IS_HEAD);
+    }
+    
+    public byte getHeadFlag(){
+        return (byte)(getVertexValue().getState() & State.IS_HEAD);
+    }
+    
+    /**
+     * check if prev/next destination exists
+     */
+    public boolean hasNextDest(VertexValueWritable value){
+        return value.getFFList().getCountOfPosition() > 0 || value.getFRList().getCountOfPosition() > 0;
+    }
+    
+    public boolean hasPrevDest(VertexValueWritable value){
+        return value.getRFList().getCountOfPosition() > 0 || value.getRRList().getCountOfPosition() > 0;
+    }
+    
+    /**
+     * get destination vertex
+     */
+    public VKmerBytesWritable getNextDestVertexId(VertexValueWritable value) {
+        if (value.getFFList().getCountOfPosition() > 0){ //#FFList() > 0
+            kmerIterator = value.getFFList().iterator();
+            return kmerIterator.next();
+        } else if (value.getFRList().getCountOfPosition() > 0){ //#FRList() > 0
+            kmerIterator = value.getFRList().iterator();
+            return kmerIterator.next();
+        } else {
+            return null;  
+        }
+    }
+
+    public VKmerBytesWritable getPrevDestVertexId(VertexValueWritable value) {
+        if (value.getRFList().getCountOfPosition() > 0){ //#RFList() > 0
+            kmerIterator = value.getRFList().iterator();
+            return kmerIterator.next();
+        } else if (value.getRRList().getCountOfPosition() > 0){ //#RRList() > 0
+            kmerIterator = value.getRRList().iterator();
+            return kmerIterator.next();
+        } else {
+            return null;
+        }
+    }
+    
+    /**
+     * get destination vertex
+     */
+    public VKmerBytesWritable getNextDestVertexIdAndSetFlag(VertexValueWritable value) {
+        if (value.getFFList().getCountOfPosition() > 0){ // #FFList() > 0
+            kmerIterator = value.getFFList().iterator();
+            outFlag &= MessageFlag.DIR_CLEAR;
+            outFlag |= MessageFlag.DIR_FF;
+            return kmerIterator.next();
+        } else if (value.getFRList().getCountOfPosition() > 0){ // #FRList() > 0
+            kmerIterator = value.getFRList().iterator();
+            outFlag &= MessageFlag.DIR_CLEAR;
+            outFlag |= MessageFlag.DIR_FR;
+            return kmerIterator.next();
+        } else {
+          return null;  
+        }
+        
+    }
+
+    public VKmerBytesWritable getPrevDestVertexIdAndSetFlag(VertexValueWritable value) {
+        if (value.getRFList().getCountOfPosition() > 0){ // #RFList() > 0
+            kmerIterator = value.getRFList().iterator();
+            outFlag &= MessageFlag.DIR_CLEAR;
+            outFlag |= MessageFlag.DIR_RF;
+            return kmerIterator.next();
+        } else if (value.getRRList().getCountOfPosition() > 0){ // #RRList() > 0
+            kmerIterator = value.getRRList().iterator();
+            outFlag &= MessageFlag.DIR_CLEAR;
+            outFlag |= MessageFlag.DIR_RR;
+            return kmerIterator.next();
+        } else {
+            return null;
+        }
+    }
+    
+    /**
+     * head send message to all previous nodes
+     */
+    public void sendMsgToAllPreviousNodes(VertexValueWritable value) {
+        kmerIterator = value.getRFList().iterator(); // RFList
+        while(kmerIterator.hasNext()){
+            destVertexId.setAsCopy(kmerIterator.next());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+        kmerIterator = value.getRRList().iterator(); // RRList
+        while(kmerIterator.hasNext()){
+            destVertexId.setAsCopy(kmerIterator.next());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+    }
+    
+    /**
+     * head send message to all next nodes
+     */
+    public void sendMsgToAllNextNodes(VertexValueWritable value) {
+        kmerIterator = value.getFFList().iterator(); // FFList
+        while(kmerIterator.hasNext()){
+            destVertexId.setAsCopy(kmerIterator.next());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+        kmerIterator = value.getFRList().iterator(); // FRList
+        while(kmerIterator.hasNext()){
+            destVertexId.setAsCopy(kmerIterator.next());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+    }
+
+    /**
+     * one vertex send message to previous and next vertices (neighbor)
+     */
+    public void sendMsgToAllNeighborNodes(VertexValueWritable value){
+        sendMsgToAllNextNodes(value);
+        sendMsgToAllPreviousNodes(value);
+    }
+    
+    /**
+     * tip send message with sourceId and dir to previous node 
+     * tip only has one incoming
+     */
+    public void sendSettledMsgToPreviousNode(){
+    	if(getVertexValue().getFFList().getCountOfPosition() > 0)
+			outgoingMsg.setFlag(MessageFlag.DIR_FF);
+		else if(getVertexValue().getFRList().getCountOfPosition() > 0)
+			outgoingMsg.setFlag(MessageFlag.DIR_FR);
+		outgoingMsg.setSourceVertexId(getVertexId());
+		destVertexId.setAsCopy(getNextDestVertexId(getVertexValue()));
+		sendMsg(destVertexId, outgoingMsg);
+    }
+    
+    /**
+     * tip send message with sourceId and dir to next node 
+     * tip only has one outgoing
+     */
+    public void sendSettledMsgToNextNode(){
+    	if(getVertexValue().getRFList().getCountOfPosition() > 0)
+            outgoingMsg.setFlag(MessageFlag.DIR_RF);
+        else if(getVertexValue().getRRList().getCountOfPosition() > 0)
+            outgoingMsg.setFlag(MessageFlag.DIR_RR);
+        outgoingMsg.setSourceVertexId(getVertexId());
+        destVertexId.setAsCopy(getPrevDestVertexId(getVertexValue()));
+        sendMsg(destVertexId, outgoingMsg);
+    }
+    
+    /**
+     * head send message to all previous nodes
+     */
+    public void sendSettledMsgToAllPreviousNodes(VertexValueWritable value) {
+        kmerIterator = value.getRFList().iterator(); // RFList
+        while(kmerIterator.hasNext()){
+            outgoingMsg.setFlag(MessageFlag.DIR_RF);
+            outgoingMsg.setSourceVertexId(getVertexId());
+            destVertexId.setAsCopy(kmerIterator.next());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+        kmerIterator = value.getRRList().iterator(); // RRList
+        while(kmerIterator.hasNext()){
+            outgoingMsg.setFlag(MessageFlag.DIR_RR);
+            outgoingMsg.setSourceVertexId(getVertexId());
+            destVertexId.setAsCopy(kmerIterator.next());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+    }
+    
+    /**
+     * head send message to all next nodes
+     */
+    public void sendSettledMsgToAllNextNodes(VertexValueWritable value) {
+        kmerIterator = value.getFFList().iterator(); // FFList
+        while(kmerIterator.hasNext()){
+            outgoingMsg.setFlag(MessageFlag.DIR_FF);
+            outgoingMsg.setSourceVertexId(getVertexId());
+            destVertexId.setAsCopy(kmerIterator.next());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+        kmerIterator = value.getFRList().iterator(); // FRList
+        while(kmerIterator.hasNext()){
+            outgoingMsg.setFlag(MessageFlag.DIR_FR);
+            outgoingMsg.setSourceVertexId(getVertexId());
+            destVertexId.setAsCopy(kmerIterator.next());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+    }
+    
+    /**
+     * start sending message
+     */
+    public void startSendMsg() {
+        if (VertexUtil.isHeadVertexWithIndegree(getVertexValue())) {
+            outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));//| MessageFlag.HEAD_SHOULD_MERGEWITHNEXT
+            sendMsgToAllNextNodes(getVertexValue());
+            voteToHalt();
+        }
+        if (VertexUtil.isRearVertexWithOutdegree(getVertexValue())) {
+            outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));//| MessageFlag.HEAD_SHOULD_MERGEWITHPREV
+            sendMsgToAllPreviousNodes(getVertexValue());
+            voteToHalt();
+        }
+        if (VertexUtil.isHeadWithoutIndegree(getVertexValue())){
+            outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));//| MessageFlag.HEAD_SHOULD_MERGEWITHNEXT
+            sendMsg(getVertexId(), outgoingMsg); //send to itself
+            voteToHalt();
+        }
+        if (VertexUtil.isRearWithoutOutdegree(getVertexValue())){
+            outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));//| MessageFlag.HEAD_SHOULD_MERGEWITHPREV
+            sendMsg(getVertexId(), outgoingMsg); //send to itself
+            voteToHalt();
+        }
+    }
+
+    /**
+     * initiate head, rear and path node
+     */
+    public void initState(Iterator<MessageWritable> msgIterator) {
+        while (msgIterator.hasNext()) {
+            if (!VertexUtil.isPathVertex(getVertexValue())
+                    && !VertexUtil.isHeadWithoutIndegree(getVertexValue())
+                    && !VertexUtil.isRearWithoutOutdegree(getVertexValue())) {
+                msgIterator.next();
+                voteToHalt();
+            } else {
+                incomingMsg = msgIterator.next();
+                if(getHeadFlag() > 0)
+                    voteToHalt();
+                else 
+                    getVertexValue().setState(incomingMsg.getFlag());
+            }
+        }
+    }
+    
+    /**
+     * check if A need to be flipped with successor
+     */
+    public boolean ifFilpWithSuccessor(){
+        if(getVertexValue().getFRList().getCountOfPosition() > 0)
+            return true;
+        else
+            return false;
+    }
+    
+    /**
+     * check if A need to be filpped with predecessor
+     */
+    public boolean ifFlipWithPredecessor(){
+        if(getVertexValue().getRFList().getCountOfPosition() > 0)
+            return true;
+        else
+            return false;
+    }
+    
+    /**
+     * set adjMessage to successor(from predecessor)
+     */
+    public void setSuccessorAdjMsg(){
+        outFlag &= MessageFlag.DIR_CLEAR;
+        if(getVertexValue().getFFList().getCountOfPosition() > 0)
+            outFlag |= MessageFlag.DIR_FF;
+        else if(getVertexValue().getFRList().getCountOfPosition() > 0)
+            outFlag |= MessageFlag.DIR_FR;
+        else
+            outFlag |= MessageFlag.DIR_NO;
+    }
+    
+    /**
+     * set adjMessage to predecessor(from successor)
+     */
+    public void setPredecessorAdjMsg(){
+        outFlag &= MessageFlag.DIR_CLEAR;
+        if(getVertexValue().getRFList().getCountOfPosition() > 0)
+            outFlag |= MessageFlag.DIR_RF;
+        else if(getVertexValue().getRRList().getCountOfPosition() > 0)
+            outFlag |= MessageFlag.DIR_RR;
+        else
+            outFlag |= MessageFlag.DIR_NO;
+    }
+    
+    /**
+     * send update message to neighber
+     * @throws IOException 
+     */
+    public void broadcastUpdateMsg(){
+        if((getVertexValue().getState() & State.IS_HEAD) > 0)
+            outFlag |= MessageFlag.IS_HEAD;
+        switch(getVertexValue().getState() & State.SHOULD_MERGE_MASK){
+            case State.SHOULD_MERGEWITHPREV:
+                setSuccessorAdjMsg();
+                if(ifFlipWithPredecessor())
+                    outgoingMsg.setFlip(true);
+                outgoingMsg.setFlag(outFlag);
+                outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
+                outgoingMsg.setSourceVertexId(getVertexId());
+                if(getNextDestVertexId(getVertexValue()) != null)
+                    sendMsg(getNextDestVertexId(getVertexValue()), outgoingMsg);
+                break;
+            case State.SHOULD_MERGEWITHNEXT:
+                setPredecessorAdjMsg();
+                if(ifFilpWithSuccessor())
+                    outgoingMsg.setFlip(true);
+                outgoingMsg.setFlag(outFlag);
+                outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
+                outgoingMsg.setSourceVertexId(getVertexId());
+                if(getPrevDestVertexId(getVertexValue()) != null)
+                    sendMsg(getPrevDestVertexId(getVertexValue()), outgoingMsg);
+                break; 
+        }
+    }
+    
+    /**
+     * send update message to neighber for P2
+     * @throws IOException 
+     */
+    public void sendUpdateMsg(){
+        outgoingMsg.setUpdateMsg(true);
+        byte meToNeighborDir = (byte) (incomingMsg.getFlag() & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+        switch(neighborToMeDir){
+            case MessageFlag.DIR_FF:
+            case MessageFlag.DIR_FR:
+                sendUpdateMsgToPredecessor();
+                break;
+            case MessageFlag.DIR_RF:
+            case MessageFlag.DIR_RR: 
+                sendUpdateMsgToSuccessor();
+                break;
+        }
+    }
+    
+    /**
+     * send merge message to neighber for P2
+     * @throws IOException 
+     */
+    public void sendMergeMsg(){
+        outgoingMsg.setUpdateMsg(false);
+        if(selfFlag == State.IS_HEAD){
+            byte newState = getVertexValue().getState(); 
+            newState &= ~State.IS_HEAD;
+            newState |= State.IS_OLDHEAD;
+            getVertexValue().setState(newState);
+            resetSelfFlag();
+            outFlag |= MessageFlag.IS_HEAD;  
+        } else if(selfFlag == State.IS_OLDHEAD){
+            outFlag |= MessageFlag.IS_OLDHEAD;
+            voteToHalt();
+        }
+        byte meToNeighborDir = (byte) (incomingMsg.getFlag() & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+        switch(neighborToMeDir){
+            case MessageFlag.DIR_FF:
+            case MessageFlag.DIR_FR:
+                setSuccessorAdjMsg();
+                if(ifFlipWithPredecessor())
+                    outgoingMsg.setFlip(true);
+                else
+                    outgoingMsg.setFlip(false);
+                outgoingMsg.setFlag(outFlag);
+                outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
+                outgoingMsg.setSourceVertexId(getVertexId());
+                outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+                sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getNextDestVertexId(getVertexValue())
+                break;
+            case MessageFlag.DIR_RF:
+            case MessageFlag.DIR_RR:
+                setPredecessorAdjMsg();
+                if(ifFilpWithSuccessor())
+                    outgoingMsg.setFlip(true);
+                else
+                    outgoingMsg.setFlip(false);
+                outgoingMsg.setFlag(outFlag);
+                outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
+                outgoingMsg.setSourceVertexId(getVertexId());
+                outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+                sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getPreDestVertexId(getVertexValue())
+                break; 
+        }
+    }
+    
+    /**
+     * send final merge message to neighber for P2
+     * @throws IOException 
+     */
+    public void sendFinalMergeMsg(){
+        outFlag |= MessageFlag.IS_FINAL;
+        byte meToNeighborDir = (byte) (incomingMsg.getFlag() & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+        switch(neighborToMeDir){
+            case MessageFlag.DIR_FF:
+            case MessageFlag.DIR_FR:
+                setSuccessorAdjMsg();
+                if(ifFlipWithPredecessor())
+                    outgoingMsg.setFlip(true);
+                else
+                    outgoingMsg.setFlip(false);
+                outgoingMsg.setFlag(outFlag);
+                outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
+                outgoingMsg.setSourceVertexId(getVertexId());
+                outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+                sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getNextDestVertexId(getVertexValue())
+                break;
+            case MessageFlag.DIR_RF:
+            case MessageFlag.DIR_RR:
+                setPredecessorAdjMsg();
+                if(ifFilpWithSuccessor())
+                    outgoingMsg.setFlip(true);
+                else
+                    outgoingMsg.setFlip(false);
+                outgoingMsg.setFlag(outFlag);
+                outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
+                outgoingMsg.setSourceVertexId(getVertexId());
+                outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+                sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getPreDestVertexId(getVertexValue())
+                break; 
+        }
+    }
+    
+    /**
+     * send merge message to neighber for P4
+     * @throws IOException 
+     */
+    public void broadcastMergeMsg(){
+        if(headFlag > 0)
+            outFlag |= MessageFlag.IS_HEAD;
+        switch(getVertexValue().getState() & State.SHOULD_MERGE_MASK) {
+            case State.SHOULD_MERGEWITHNEXT:
+                setSuccessorAdjMsg();
+                if(ifFlipWithPredecessor())
+                    outgoingMsg.setFlip(true);
+                else
+                    outgoingMsg.setFlip(false);
+                outgoingMsg.setFlag(outFlag);
+                outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
+                outgoingMsg.setSourceVertexId(getVertexId());
+                outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+                sendMsg(getNextDestVertexId(getVertexValue()), outgoingMsg);
+                deleteVertex(getVertexId());
+                break;
+            case State.SHOULD_MERGEWITHPREV:
+                setPredecessorAdjMsg();
+                if(ifFilpWithSuccessor())
+                    outgoingMsg.setFlip(true);
+                else
+                    outgoingMsg.setFlip(false);
+                outgoingMsg.setFlag(outFlag);
+                outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
+                outgoingMsg.setSourceVertexId(getVertexId());
+                outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+                sendMsg(getPrevDestVertexId(getVertexValue()), outgoingMsg);
+                deleteVertex(getVertexId());
+                break; 
+        }
+    }
+    
+    public void setStateAsMergeWithNext(){
+    	byte state = getVertexValue().getState();
+    	state &= State.SHOULD_MERGE_CLEAR;
+        state |= State.SHOULD_MERGEWITHNEXT;
+        getVertexValue().setState(state);
+    }
+    
+    /**
+     * This vertex tries to merge with next vertex and send update msg to neighber
+     * @throws IOException 
+     */
+    public void sendUpdateMsgToPredecessor(){
+    	if(hasNextDest(getVertexValue())){
+    	    setStateAsMergeWithNext();
+		    broadcastUpdateMsg();
+    	}
+    }
+    
+    public void setStateAsMergeWithPrev(){
+        byte state = getVertexValue().getState();
+        state &= State.SHOULD_MERGE_CLEAR;
+        state |= State.SHOULD_MERGEWITHPREV;
+        getVertexValue().setState(state);
+    }
+    
+    /**
+     * This vertex tries to merge with next vertex and send update msg to neighber
+     * @throws IOException 
+     */
+    public void sendUpdateMsgToSuccessor(){
+    	if(hasPrevDest(getVertexValue())){
+    	    setStateAsMergeWithPrev();
+		    broadcastUpdateMsg();
+    	}
+    }
+    
+    /**
+     * set state as no_merge
+     */
+    public void setStateAsNoMerge(){
+    	byte state = getVertexValue().getState();
+    	//state |= State.SHOULD_MERGE_CLEAR;
+        state |= State.NO_MERGE;
+        getVertexValue().setState(state);
+    }
+    
+    /**
+     * Returns the edge dir for B->A when the A->B edge is type @dir
+     */
+    public byte mirrorDirection(byte dir) {
+        switch (dir) {
+            case MessageFlag.DIR_FF:
+                return MessageFlag.DIR_RR;
+            case MessageFlag.DIR_FR:
+                return MessageFlag.DIR_FR;
+            case MessageFlag.DIR_RF:
+                return MessageFlag.DIR_RF;
+            case MessageFlag.DIR_RR:
+                return MessageFlag.DIR_FF;
+            default:
+                throw new RuntimeException("Unrecognized direction in flipDirection: " + dir);
+        }
+    }
+    
+    /**
+     * check if need filp
+     */
+    public byte flipDirection(byte neighborDir, boolean flip){
+        if(flip){
+            switch (neighborDir) {
+                case MessageFlag.DIR_FF:
+                    return MessageFlag.DIR_FR;
+                case MessageFlag.DIR_FR:
+                    return MessageFlag.DIR_FF;
+                case MessageFlag.DIR_RF:
+                    return MessageFlag.DIR_RR;
+                case MessageFlag.DIR_RR:
+                    return MessageFlag.DIR_RF;
+                default:
+                    throw new RuntimeException("Unrecognized direction for neighborDir: " + neighborDir);
+            }
+        } else 
+            return neighborDir;
+    }
+    
+    /**
+     * updateAdjList
+     */
+    public void processUpdate(){
+        inFlag = incomingMsg.getFlag();
+        byte meToNeighborDir = (byte) (inFlag & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+        
+        byte neighborToMergeDir = flipDirection(neighborToMeDir, incomingMsg.isFlip());
+        
+        getVertexValue().processUpdates(neighborToMeDir, incomingMsg.getSourceVertexId(), 
+                neighborToMergeDir, VertexUtil.getNodeIdFromAdjacencyList(incomingMsg.getNeighberNode()));
+    }
+    
+    /**
+     * merge and updateAdjList merge with one neighbor
+     */
+    public void processMerge(){
+        inFlag = incomingMsg.getFlag();
+        byte meToNeighborDir = (byte) (inFlag & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+        
+        if((inFlag & MessageFlag.IS_HEAD) > 0){
+            byte state = getVertexValue().getState();
+            state |= State.IS_HEAD;
+            getVertexValue().setState(state);
+        }
+        
+        byte neighborToMergeDir = flipDirection(neighborToMeDir, incomingMsg.isFlip());
+        
+        getVertexValue().processMerges(neighborToMeDir, incomingMsg.getSourceVertexId(), 
+                neighborToMergeDir, VertexUtil.getNodeIdFromAdjacencyList(incomingMsg.getNeighberNode()),
+                kmerSize, incomingMsg.getActualKmer());
+    }
+    
+    /**
+     * merge and updateAdjList  having parameter
+     */
+    public void processMerge(MessageWritable msg){
+        byte meToNeighborDir = (byte) (msg.getFlag() & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+
+        byte neighborToMergeDir = flipDirection(neighborToMeDir, msg.isFlip());
+        
+        getVertexValue().processMerges(neighborToMeDir, msg.getSourceVertexId(), 
+                neighborToMergeDir, VertexUtil.getNodeIdFromAdjacencyList(msg.getNeighberNode()),
+                kmerSize, msg.getActualKmer());
+    }
+    
+    /**
+     * final merge and updateAdjList  having parameter for p2
+     */
+    public void processFinalMerge(MessageWritable msg){
+        byte meToNeighborDir = (byte) (msg.getFlag() & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+
+        byte neighborToMergeDir = flipDirection(neighborToMeDir, msg.isFlip());
+        
+        String selfString;
+        String match;
+        String msgString;
+        int index;
+        switch(neighborToMeDir){
+            case MessageFlag.DIR_FF:
+                selfString = getVertexValue().getActualKmer().toString();
+                match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
+                msgString = msg.getActualKmer().toString();
+                index = msgString.indexOf(match);
+                tmpKmer.setByRead(msgString.length() - index, msgString.substring(index).getBytes(), 0);
+                break;
+            case MessageFlag.DIR_FR:
+                selfString = getVertexValue().getActualKmer().toString();
+                match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
+                msgString = GeneCode.reverseComplement(msg.getActualKmer().toString());
+                index = msgString.indexOf(match);
+                tmpKmer.setByReadReverse(msgString.length() - index, msgString.substring(index).getBytes(), 0);
+                break;
+            case MessageFlag.DIR_RF:
+                selfString = getVertexValue().getActualKmer().toString();
+                match = selfString.substring(0, kmerSize - 1); 
+                msgString = GeneCode.reverseComplement(msg.getActualKmer().toString());
+                index = msgString.lastIndexOf(match) + kmerSize - 2;
+                tmpKmer.setByReadReverse(index + 1, msgString.substring(0, index + 1).getBytes(), 0);
+                break;
+            case MessageFlag.DIR_RR:
+                selfString = getVertexValue().getActualKmer().toString();
+                match = selfString.substring(0, kmerSize - 1); 
+                msgString = msg.getActualKmer().toString();
+                index = msgString.lastIndexOf(match) + kmerSize - 2;
+                tmpKmer.setByRead(index + 1, msgString.substring(0, index + 1).getBytes(), 0);
+                break;
+        }
+       
+        getVertexValue().processMerges(neighborToMeDir, msg.getSourceVertexId(), 
+                neighborToMergeDir, VertexUtil.getNodeIdFromAdjacencyList(msg.getNeighberNode()),
+                kmerSize, tmpKmer);
+    }
+    
+    /**
+     * set head state
+     */
+    public void setHeadState(){
+        byte state = getVertexValue().getState();
+        state &= State.VERTEX_CLEAR;
+        state |= State.IS_HEAD;
+        getVertexValue().setState(state);
+    }
+    
+    /**
+     * set final state
+     */
+    public void setFinalState(){
+        byte state = getVertexValue().getState();
+        state &= State.VERTEX_CLEAR;
+        state |= State.IS_FINAL;
+        getVertexValue().setState(state);
+    }
+    
+    /**
+     * set stop flag
+     */
+    public void setStopFlag(){
+        byte state = getVertexValue().getState();
+        state &= State.VERTEX_CLEAR;
+        state |= State.IS_FINAL;
+        getVertexValue().setState(state);
+    }
+    
+    /**
+     * get Vertex state
+     */
+    public byte getMsgFlag(){
+        return (byte)(incomingMsg.getFlag() & MessageFlag.VERTEX_MASK);
+    }
+    
+    /**
+     * reset selfFlag
+     */
+    public void resetSelfFlag(){
+        selfFlag =(byte)(getVertexValue().getState() & MessageFlag.VERTEX_MASK);
+    }
+    
+    /**
+     * broadcast kill self to all neighbers  Pre-condition: vertex is a path vertex 
+     */
+    public void broadcaseKillself(){
+        outFlag = 0;
+        outFlag |= MessageFlag.KILL;
+        outFlag |= MessageFlag.DIR_FROM_DEADVERTEX;
+        outgoingMsg.setSourceVertexId(getVertexId());
+        
+        if(getVertexValue().getFFList().getCountOfPosition() > 0){//#FFList() > 0
+            outFlag |= MessageFlag.DIR_FF;
+            outgoingMsg.setFlag(outFlag);
+            sendMsg(getVertexValue().getFFList().getPosition(0), outgoingMsg);
+        }
+        else if(getVertexValue().getFRList().getCountOfPosition() > 0){//#FRList() > 0
+            outFlag |= MessageFlag.DIR_FR;
+            outgoingMsg.setFlag(outFlag);
+            sendMsg(getVertexValue().getFRList().getPosition(0), outgoingMsg);
+        }
+        
+        
+        if(getVertexValue().getRFList().getCountOfPosition() > 0){//#RFList() > 0
+            outFlag |= MessageFlag.DIR_RF;
+            outgoingMsg.setFlag(outFlag);
+            sendMsg(getVertexValue().getRFList().getPosition(0), outgoingMsg);
+        }
+        else if(getVertexValue().getRRList().getCountOfPosition() > 0){//#RRList() > 0
+            outFlag |= MessageFlag.DIR_RR;
+            outgoingMsg.setFlag(outFlag);
+            sendMsg(getVertexValue().getRRList().getPosition(0), outgoingMsg);
+        }
+        
+        deleteVertex(getVertexId());
+    }
+    
+    /**
+     * do some remove operations on adjMap after receiving the info about dead Vertex
+     */
+    public void responseToDeadVertex(){
+        switch(incomingMsg.getFlag() & MessageFlag.DIR_MASK){
+            case MessageFlag.DIR_FF:
+                //remove incomingMsg.getSourceId from RR positionList
+                kmerIterator = getVertexValue().getRRList().iterator();
+                while(kmerIterator.hasNext()){
+                    tmpKmer = kmerIterator.next();
+                    if(tmpKmer.equals(incomingMsg.getSourceVertexId())){
+                        kmerIterator.remove();
+                        break;
+                    }
+                }
+                break;
+            case MessageFlag.DIR_FR:
+                //remove incomingMsg.getSourceId from FR positionList
+                kmerIterator = getVertexValue().getFRList().iterator();
+                while(kmerIterator.hasNext()){
+                    tmpKmer = kmerIterator.next();
+                    if(tmpKmer.equals(incomingMsg.getSourceVertexId())){
+                        kmerIterator.remove();
+                        break;
+                    }
+                }
+                break;
+            case MessageFlag.DIR_RF:
+                //remove incomingMsg.getSourceId from RF positionList
+                kmerIterator = getVertexValue().getRFList().iterator();
+                while(kmerIterator.hasNext()){
+                    tmpKmer = kmerIterator.next();
+                    if(tmpKmer.equals(incomingMsg.getSourceVertexId())){
+                        kmerIterator.remove();
+                        break;
+                    }
+                }
+                break;
+            case MessageFlag.DIR_RR:
+                //remove incomingMsg.getSourceId from FF positionList
+                kmerIterator = getVertexValue().getFFList().iterator();
+                while(kmerIterator.hasNext()){
+                    tmpKmer = kmerIterator.next();
+                    if(tmpKmer.equals(incomingMsg.getSourceVertexId())){
+                        kmerIterator.remove();
+                        break;
+                    }
+                }
+                break;
+        }
+    }
+    
+    public boolean isReceiveKillMsg(){
+        byte killFlag = (byte) (incomingMsg.getFlag() & MessageFlag.KILL_MASK);
+        byte deadFlag = (byte) (incomingMsg.getFlag() & MessageFlag.DEAD_MASK);
+        return killFlag == MessageFlag.KILL & deadFlag != MessageFlag.DIR_FROM_DEADVERTEX;
+    }
+    
+    public boolean isResponseKillMsg(){
+        byte killFlag = (byte) (incomingMsg.getFlag() & MessageFlag.KILL_MASK);
+        byte deadFlag = (byte) (incomingMsg.getFlag() & MessageFlag.DEAD_MASK);
+        return killFlag == MessageFlag.KILL & deadFlag == MessageFlag.DIR_FROM_DEADVERTEX; 
+    }
+    
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+    }
+}
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/MapReduceVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/MapReduceVertex.java
new file mode 100644
index 0000000..5baf492
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/MapReduceVertex.java
@@ -0,0 +1,193 @@
+package edu.uci.ics.genomix.pregelix.operator.pathmerge;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Random;
+
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.P2PathMergeOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+import edu.uci.ics.genomix.pregelix.type.MessageFlag;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.api.util.BspUtils;
+
+public class MapReduceVertex extends
+    BasicGraphCleanVertex {
+    
+    public static boolean fakeVertexExist = false;
+    protected static VKmerBytesWritable fakeVertex = null;
+    
+    protected VKmerBytesWritable reverseKmer;
+    protected VKmerListWritable kmerList = null;
+    protected Map<VKmerBytesWritable, VKmerListWritable> kmerMapper = new HashMap<VKmerBytesWritable, VKmerListWritable>();
+
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if (maxIteration < 0)
+            maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable(kmerSize);
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable(kmerSize);
+        else
+            outgoingMsg.reset(kmerSize);
+        if(reverseKmer == null)
+            reverseKmer = new VKmerBytesWritable();
+        if(kmerList == null)
+            kmerList = new VKmerListWritable();
+        else
+            kmerList.reset();
+        if(fakeVertex == null){
+            fakeVertex = new VKmerBytesWritable();
+            String random = generaterRandomString(kmerSize + 1);
+            fakeVertex.setByRead(kmerSize + 1, random.getBytes(), 0); 
+        }
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable(kmerSize);
+    }
+    
+    /**
+     * Generate random string from [ACGT]
+     */
+    public String generaterRandomString(int n){
+        char[] chars = "ACGT".toCharArray();
+        StringBuilder sb = new StringBuilder();
+        Random random = new Random();
+        for (int i = 0; i < n; i++) {
+            char c = chars[random.nextInt(chars.length)];
+            sb.append(c);
+        }
+        return sb.toString();
+    }
+    
+    /**
+     * add fake vertex
+     */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    public void addFakeVertex(){
+        if(!fakeVertexExist){
+            //add a fake vertex
+            Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
+            vertex.getMsgList().clear();
+            vertex.getEdges().clear();
+            VertexValueWritable vertexValue = new VertexValueWritable(kmerSize + 1);
+            vertexValue.setState(State.IS_FAKE);
+            vertexValue.setFakeVertex(true);
+            
+            vertex.setVertexId(fakeVertex);
+            vertex.setVertexValue(vertexValue);
+            
+            addVertex(fakeVertex, vertex);
+            fakeVertexExist = true;
+        }
+    }
+    
+    public void sendMsgToFakeVertex(){
+        if(!getVertexValue().isFakeVertex()){
+            outgoingMsg.setSourceVertexId(getVertexId());
+            outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+            sendMsg(fakeVertex, outgoingMsg);
+            voteToHalt();
+        }
+    }
+    
+    public void mapKeyByActualKmer(Iterator<MessageWritable> msgIterator){
+        while(msgIterator.hasNext()){
+            incomingMsg = msgIterator.next();
+            String kmerString = incomingMsg.getActualKmer().toString();
+            tmpKmer.reset(kmerString.length());
+            tmpKmer.setByRead(kmerString.length(), kmerString.getBytes(), 0);
+            reverseKmer.setByReadReverse(kmerString.length(), kmerString.getBytes(), 0);
+
+            if(reverseKmer.compareTo(tmpKmer) < 0)
+                tmpKmer.setAsCopy(reverseKmer);
+            if(!kmerMapper.containsKey(tmpKmer)){
+                kmerList.reset();
+                kmerList.append(incomingMsg.getSourceVertexId());
+                kmerMapper.put(tmpKmer, kmerList);
+            } else{
+                kmerList.setCopy(kmerMapper.get(tmpKmer));
+                kmerList.append(incomingMsg.getSourceVertexId());
+                kmerMapper.put(tmpKmer, kmerList);
+            }
+        }
+    }
+    
+    public void reduceKeyByActualKmer(){
+        for(VKmerBytesWritable key : kmerMapper.keySet()){
+            kmerList = kmerMapper.get(key);
+            for(int i = 1; i < kmerList.getCountOfPosition(); i++){
+                //send kill message
+                outgoingMsg.setFlag(MessageFlag.KILL);
+                destVertexId.setAsCopy(kmerList.getPosition(i));
+                sendMsg(destVertexId, outgoingMsg);
+            }
+        }
+    }
+    
+    public void finalVertexResponseToFakeVertex(Iterator<MessageWritable> msgIterator){
+        while(msgIterator.hasNext()){
+            incomingMsg = msgIterator.next();
+            inFlag = incomingMsg.getFlag();
+            if(inFlag == MessageFlag.KILL){
+                broadcaseKillself();
+            }
+        }
+    }
+    
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex();
+        if(getSuperstep() == 1){
+            addFakeVertex();
+        }
+        else if(getSuperstep() == 2){
+            /** NON-FAKE and Final vertice send msg to FAKE vertex **/
+            sendMsgToFakeVertex();
+        } else if(getSuperstep() == 3){
+            kmerMapper.clear();
+            /** Mapper **/
+            mapKeyByActualKmer(msgIterator);
+            /** Reducer **/
+            reduceKeyByActualKmer();
+        } else if(getSuperstep() == 4){
+            /** only for test single MapReduce job**/
+            if(!msgIterator.hasNext() && getVertexValue().getState() == State.IS_FAKE){
+                fakeVertexExist = false;
+                deleteVertex(fakeVertex);
+            }
+            finalVertexResponseToFakeVertex(msgIterator);
+        } else if(getSuperstep() == 5){
+            while (msgIterator.hasNext()) {
+                incomingMsg = msgIterator.next();
+                if(isReceiveKillMsg())
+                    responseToDeadVertex();
+            }
+        }
+    }
+    
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(MapReduceVertex.class.getSimpleName());
+        job.setVertexClass(MapReduceVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(P2PathMergeOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P2ForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P2ForPathMergeVertex.java
new file mode 100644
index 0000000..d16e6d5
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P2ForPathMergeVertex.java
@@ -0,0 +1,308 @@
+package edu.uci.ics.genomix.pregelix.operator.pathmerge;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.InitialGraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.P2PathMergeOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+import edu.uci.ics.genomix.pregelix.type.MessageFlag;
+import edu.uci.ics.genomix.pregelix.type.MessageFromHead;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+/*
+ * vertexId: BytesWritable
+ * vertexValue: VertexValueWritable
+ * edgeValue: NullWritable
+ * message: MessageWritable
+ * 
+ * DNA:
+ * A: 00
+ * C: 01
+ * G: 10
+ * T: 11
+ * 
+ * succeed node
+ *  A 00000001 1
+ *  G 00000010 2
+ *  C 00000100 4
+ *  T 00001000 8
+ * precursor node
+ *  A 00010000 16
+ *  G 00100000 32
+ *  C 01000000 64
+ *  T 10000000 128
+ *  
+ * For example, ONE LINE in input file: 00,01,10	0001,0010,
+ * That means that vertexId is ACG, its succeed node is A and its precursor node is C.
+ * The succeed node and precursor node will be stored in vertexValue and we don't use edgeValue.
+ * The details about message are in edu.uci.ics.pregelix.example.io.MessageWritable. 
+ */
+public class P2ForPathMergeVertex extends
+    MapReduceVertex {
+
+    private ArrayList<MessageWritable> receivedMsgList = new ArrayList<MessageWritable>();
+    
+    private boolean isFakeVertex = false;
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if (maxIteration < 0)
+            maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
+        headFlag = (byte)(getVertexValue().getState() & State.IS_HEAD);
+        selfFlag = (byte)(getVertexValue().getState() & State.VERTEX_MASK);
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable();
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable();
+        else
+            outgoingMsg.reset();
+        receivedMsgList.clear();
+        if(reverseKmer == null)
+            reverseKmer = new VKmerBytesWritable();
+        if(kmerList == null)
+            kmerList = new VKmerListWritable();
+        else
+            kmerList.reset();
+        if(fakeVertex == null){
+//            fakeVertex = new KmerBytesWritable(kmerSize + 1);
+            fakeVertex = new VKmerBytesWritable();
+            String random = generaterRandomString(kmerSize + 1);
+            fakeVertex.setByRead(kmerSize + 1, random.getBytes(), 0); 
+        }
+        isFakeVertex = ((byte)getVertexValue().getState() & State.FAKEFLAG_MASK) > 0 ? true : false;
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable();
+        if(tmpKmer == null)
+            tmpKmer = new VKmerBytesWritable();
+    }
+
+    /**
+     * head send message to path
+     */
+    public void sendOutMsg() {
+        //send wantToMerge to next
+        tmpKmer = getNextDestVertexIdAndSetFlag(getVertexValue());
+        if(tmpKmer != null){
+            destVertexId.setAsCopy(tmpKmer);
+            outgoingMsg.setFlag(outFlag);
+            outgoingMsg.setSourceVertexId(getVertexId());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+        
+        //send wantToMerge to prev
+        tmpKmer = getPrevDestVertexIdAndSetFlag(getVertexValue());
+        if(tmpKmer != null){
+            destVertexId.setAsCopy(tmpKmer);
+            outgoingMsg.setFlag(outFlag);
+            outgoingMsg.setSourceVertexId(getVertexId());
+            sendMsg(destVertexId, outgoingMsg);
+        }
+    }
+    
+    /**
+     * check received message
+     */
+    public byte checkNumOfMsgsFromHead(){
+        int countHead = 0;
+        int countOldHead = 0;
+        for(int i = 0; i < receivedMsgList.size(); i++){
+            inFlag = receivedMsgList.get(i).getFlag();
+            switch(inFlag & MessageFlag.VERTEX_MASK){
+                case MessageFlag.IS_HEAD:
+                    countHead++;
+                    break;
+                case MessageFlag.IS_OLDHEAD:
+                    countOldHead++;
+                    break;
+            }
+        }
+        if(countHead == 2)
+            return MessageFromHead.BothMsgsFromHead;
+        else if(countHead == 1 && countOldHead == 1)
+            return MessageFromHead.OneMsgFromOldHeadAndOneFromHead;
+        else if(countHead == 1 && countOldHead == 0)
+            return MessageFromHead.OneMsgFromHeadAndOneFromNonHead;
+        else if(countHead == 0 && countOldHead == 0)
+            return MessageFromHead.BothMsgsFromNonHead;
+        else
+            return MessageFromHead.NO_MSG;
+    }
+
+    /**
+     * head send message to path
+     */
+    public void sendMsgToPathVertex(Iterator<MessageWritable> msgIterator) {
+        //send out wantToMerge msg
+        if(selfFlag != State.IS_HEAD && selfFlag != State.IS_OLDHEAD){
+                sendOutMsg();
+        }
+    }
+
+    /**
+     * path response message to head
+     */
+    public void responseMsgToHeadVertex(Iterator<MessageWritable> msgIterator) {
+        if(!msgIterator.hasNext() && selfFlag == State.IS_HEAD){
+            outFlag |= MessageFlag.IS_FINAL;
+            sendOutMsg();
+        }
+        while (msgIterator.hasNext()) {
+            incomingMsg = msgIterator.next();
+            /** final Vertex Responses To FakeVertex **/
+            if((byte)(incomingMsg.getFlag() & MessageFlag.KILL_MASK) == MessageFlag.KILL){
+                if((byte)(incomingMsg.getFlag() & MessageFlag.DIR_MASK) == MessageFlag.DIR_FROM_DEADVERTEX){
+                    responseToDeadVertex();
+                } else{
+                    broadcaseKillself();
+                }
+            }else if(getMsgFlag() == MessageFlag.IS_FINAL){
+                processMerge(incomingMsg);
+                getVertexValue().setState(State.IS_FINAL);
+            }else{
+                sendUpdateMsg();
+                outFlag = 0;
+                sendMergeMsg();
+            }
+        }
+    }
+
+    /**
+     * head vertex process merge
+     */
+    public void processMergeInHeadVertex(Iterator<MessageWritable> msgIterator){
+      //process merge when receiving msg
+        while (msgIterator.hasNext()) {
+            incomingMsg = msgIterator.next();
+            /** final Vertex Responses To FakeVertex **/
+            if((byte)(incomingMsg.getFlag() & MessageFlag.KILL_MASK) == MessageFlag.KILL){
+                if((byte)(incomingMsg.getFlag() & MessageFlag.DEAD_MASK) == MessageFlag.DIR_FROM_DEADVERTEX){
+                    responseToDeadVertex();
+                } else{
+                    broadcaseKillself();
+                }
+            } else {
+                /** for final processing (2) **/
+                if(getMsgFlag() == MessageFlag.IS_FINAL){
+                    sendFinalMergeMsg();
+                    break;
+                }
+                if(incomingMsg.isUpdateMsg() && selfFlag == State.IS_OLDHEAD)
+                    processUpdate();
+                else if(!incomingMsg.isUpdateMsg())
+                    receivedMsgList.add(incomingMsg);
+            }
+        }
+        if(receivedMsgList.size() != 0){
+            byte numOfMsgsFromHead = checkNumOfMsgsFromHead();
+             switch(numOfMsgsFromHead){
+                case MessageFromHead.BothMsgsFromHead:
+                case MessageFromHead.OneMsgFromOldHeadAndOneFromHead:
+                    for(int i = 0; i < 2; i++)
+                        processFinalMerge(receivedMsgList.get(i)); //processMerge()
+                    getVertexValue().setState(State.IS_FINAL);
+                    /** NON-FAKE and Final vertice send msg to FAKE vertex **/
+                    sendMsgToFakeVertex();
+                    voteToHalt();
+                    break;
+                case MessageFromHead.OneMsgFromHeadAndOneFromNonHead:
+                    for(int i = 0; i < 2; i++)
+                        processFinalMerge(receivedMsgList.get(i));
+                    setHeadState();
+                    break;
+                case MessageFromHead.BothMsgsFromNonHead:
+                    for(int i = 0; i < 2; i++)
+                        processFinalMerge(receivedMsgList.get(i));
+                    break;
+                case MessageFromHead.NO_MSG:
+                    //halt
+                    voteToHalt(); //deleteVertex(getVertexId());
+                    break;
+            }
+        }
+    }
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex();
+        if (getSuperstep() == 1){
+            addFakeVertex();
+            startSendMsg();
+        }
+        else if (getSuperstep() == 2){
+            if(!msgIterator.hasNext() && isFakeVertex)
+                voteToHalt();
+            initState(msgIterator);
+        }
+        else if (getSuperstep() % 3 == 0 && getSuperstep() <= maxIteration) {
+            if(!isFakeVertex){
+                /** for processing final merge (1) **/
+                if(msgIterator.hasNext()){
+                    incomingMsg = msgIterator.next();
+                    if(getMsgFlag() == MessageFlag.IS_FINAL){
+                        setFinalState();
+                        processFinalMerge(incomingMsg);
+                        /** NON-FAKE and Final vertice send msg to FAKE vertex **/
+                        sendMsgToFakeVertex();
+                    } else if(isReceiveKillMsg()){
+                        responseToDeadVertex();
+                    }
+                }
+                /** processing general case **/
+                else{
+                    sendMsgToPathVertex(msgIterator);
+                    if(selfFlag != State.IS_HEAD)
+                        voteToHalt();
+                }
+            }
+            /** Fake vertex agregates message and group them by actual kmer (2) **/
+            else{
+                kmerMapper.clear();
+                /** Mapper **/
+                mapKeyByActualKmer(msgIterator);
+                /** Reducer **/
+                reduceKeyByActualKmer();
+                voteToHalt();
+            }
+        } else if (getSuperstep() % 3 == 1 && getSuperstep() <= maxIteration) {
+            if(!isFakeVertex){
+                responseMsgToHeadVertex(msgIterator);
+                if(selfFlag != State.IS_HEAD)
+                    voteToHalt();
+            } 
+            /** Fake vertex agregates message and group them by actual kmer (1) **/
+            else{
+                kmerMapper.clear();
+                /** Mapper **/
+                mapKeyByActualKmer(msgIterator);
+                /** Reducer **/
+                reduceKeyByActualKmer();
+                voteToHalt();
+            }
+        } else if (getSuperstep() % 3 == 2 && getSuperstep() <= maxIteration){
+            if(!isFakeVertex)
+                processMergeInHeadVertex(msgIterator);
+        }else
+            voteToHalt();
+    }
+
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(P2ForPathMergeVertex.class.getSimpleName());
+        job.setVertexClass(P2ForPathMergeVertex.class);
+        /**
+         * BinaryInput and BinaryOutput~/
+         */
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(P2PathMergeOutputFormat.class);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.setDynamicVertexValueSize(true);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java
new file mode 100644
index 0000000..28d0563
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java
@@ -0,0 +1,240 @@
+package edu.uci.ics.genomix.pregelix.operator.pathmerge;
+
+import java.util.Iterator;
+import java.util.Random;
+
+
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.format.InitialGraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+import edu.uci.ics.genomix.pregelix.type.MessageFlag;
+import edu.uci.ics.genomix.pregelix.util.VertexUtil;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+/*
+ * vertexId: BytesWritable
+ * vertexValue: ByteWritable
+ * edgeValue: NullWritable
+ * message: MessageWritable
+ * 
+ * DNA:
+ * A: 00
+ * C: 01
+ * G: 10
+ * T: 11
+ * 
+ * succeed node
+ *  A 00000001 1
+ *  G 00000010 2
+ *  C 00000100 4
+ *  T 00001000 8
+ * precursor node
+ *  A 00010000 16
+ *  G 00100000 32
+ *  C 01000000 64
+ *  T 10000000 128
+ *  
+ * For example, ONE LINE in input file: 00,01,10    0001,0010,
+ * That means that vertexId is ACG, its succeed node is A and its precursor node is C.
+ * The succeed node and precursor node will be stored in vertexValue and we don't use edgeValue.
+ * The details about message are in edu.uci.ics.pregelix.example.io.MessageWritable. 
+ */
+/**
+ * Naive Algorithm for path merge graph
+ */
+public class P4ForPathMergeVertex extends
+    BasicGraphCleanVertex {
+    public static final String RANDSEED = "P4ForPathMergeVertex.randSeed";
+    public static final String PROBBEINGRANDOMHEAD = "P4ForPathMergeVertex.probBeingRandomHead";
+
+    private static long randSeed = 1;
+    private float probBeingRandomHead = -1;
+    private Random randGenerator;
+    
+    private VKmerBytesWritable curKmer = new VKmerBytesWritable();
+    private VKmerBytesWritable nextKmer = new VKmerBytesWritable();
+    private VKmerBytesWritable prevKmer = new VKmerBytesWritable();
+    private boolean hasNext;
+    private boolean hasPrev;
+    private boolean curHead;
+    private boolean nextHead;
+    private boolean prevHead;
+    private byte selfFlag;
+    
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if (maxIteration < 0)
+            maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable(kmerSize);
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable(kmerSize);
+        else
+            outgoingMsg.reset(kmerSize);
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable(kmerSize);
+        randSeed = getSuperstep();
+        randGenerator = new Random(randSeed);
+        if (probBeingRandomHead < 0)
+            probBeingRandomHead = getContext().getConfiguration().getFloat("probBeingRandomHead", 0.5f);
+        hasNext = false;
+        hasPrev = false;
+        curHead = false;
+        nextHead = false;
+        prevHead = false;
+        outFlag = (byte)0;
+        inFlag = (byte)0;
+        // Node may be marked as head b/c it's a real head or a real tail
+        headFlag = (byte) (State.IS_HEAD & getVertexValue().getState());
+    }
+
+    protected boolean isNodeRandomHead(VKmerBytesWritable nodeKmer) {
+        // "deterministically random", based on node id
+        //randGenerator.setSeed(randSeed);
+        //randSeed = randGenerator.nextInt();
+        randGenerator.setSeed((randSeed ^ nodeKmer.hashCode()) * 100000 * getSuperstep());//randSeed + nodeID.hashCode()
+        for(int i = 0; i < 500; i++)
+            randGenerator.nextFloat();
+        return randGenerator.nextFloat() < probBeingRandomHead;
+    }
+    
+    /**
+     * set nextKmer to the element that's next (in the node's FF or FR list), returning true when there is a next neighbor
+     */
+    protected boolean setNextInfo(VertexValueWritable value) {
+        if (value.getFFList().getCountOfPosition() > 0) {
+            nextKmer.setAsCopy(value.getFFList().getPosition(0));
+            nextHead = isNodeRandomHead(nextKmer);
+            return true;
+        }
+        if (value.getFRList().getCountOfPosition() > 0) {
+            nextKmer.setAsCopy(value.getFRList().getPosition(0));
+            nextHead = isNodeRandomHead(nextKmer);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * set prevKmer to the element that's previous (in the node's RR or RF list), returning true when there is a previous neighbor
+     */
+    protected boolean setPrevInfo(VertexValueWritable value) {
+        if (value.getRRList().getCountOfPosition() > 0) {
+            prevKmer.setAsCopy(value.getRRList().getPosition(0));
+            prevHead = isNodeRandomHead(prevKmer);
+            return true;
+        }
+        if (value.getRFList().getCountOfPosition() > 0) {
+            prevKmer.setAsCopy(value.getRFList().getPosition(0));
+            prevHead = isNodeRandomHead(prevKmer);
+            return true;
+        }
+        return false;
+    }
+    
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex();
+        if (getSuperstep() == 1)
+            startSendMsg();
+        else if (getSuperstep() == 2)
+            initState(msgIterator);
+        else if (getSuperstep() % 4 == 3){
+            //tailFlag = (byte) (MessageFlag.IS_TAIL & getVertexValue().getState());
+            //outFlag = (byte) (headFlag | tailFlag);
+            outFlag |= headFlag;
+            
+            outFlag |= MessageFlag.NO_MERGE;
+            setStateAsNoMerge();
+            
+            // only PATH vertices are present. Find the ID's for my neighbors
+            curKmer.setAsCopy(getVertexId());
+            
+            curHead = isNodeRandomHead(curKmer);
+            
+            
+            // the headFlag and tailFlag's indicate if the node is at the beginning or end of a simple path. 
+            // We prevent merging towards non-path nodes
+            hasNext = setNextInfo(getVertexValue());//&& headFlag == 0;
+            hasPrev = setPrevInfo(getVertexValue());//&& headFlag == 0;
+            if (hasNext || hasPrev) {
+                if (curHead) {
+                    if (hasNext && !nextHead) {
+                        // compress this head to the forward tail
+                		sendUpdateMsgToPredecessor(); 
+                    } else if (hasPrev && !prevHead) {
+                        // compress this head to the reverse tail
+                        sendUpdateMsgToSuccessor();
+                    } 
+                }
+                else {
+                    // I'm a tail
+                    if (hasNext && hasPrev) {
+                         if ((!nextHead && !prevHead) && (curKmer.compareTo(nextKmer) < 0 && curKmer.compareTo(prevKmer) < 0)) {
+                            // tails on both sides, and I'm the "local minimum"
+                            // compress me towards the tail in forward dir
+                            sendUpdateMsgToPredecessor();
+                        }
+                    } else if (!hasPrev) {
+                        // no previous node
+                        if (!nextHead && curKmer.compareTo(nextKmer) < 0) {
+                            // merge towards tail in forward dir
+                            sendUpdateMsgToPredecessor();
+                        }
+                    } else if (!hasNext) {
+                        // no next node
+                        if (!prevHead && curKmer.compareTo(prevKmer) < 0) {
+                            // merge towards tail in reverse dir
+                            sendUpdateMsgToSuccessor();
+                        }
+                    }
+                }
+            }
+        }
+        else if (getSuperstep() % 4 == 0){
+            //update neighber
+            while (msgIterator.hasNext()) {
+                incomingMsg = msgIterator.next();
+                processUpdate();
+                if(VertexUtil.isHeadOrRearVertexWithDegree(getVertexValue()))
+                    voteToHalt();
+            }
+        } else if (getSuperstep() % 4 == 1){
+            //send message to the merge object and kill self
+            broadcastMergeMsg();
+        } else if (getSuperstep() % 4 == 2){
+            //merge tmpKmer
+            while (msgIterator.hasNext()) {
+                incomingMsg = msgIterator.next();
+                selfFlag = (byte) (State.VERTEX_MASK & getVertexValue().getState());
+                processMerge();
+                
+                //head meets head, stop
+                if(getMsgFlag() == MessageFlag.IS_HEAD && selfFlag == MessageFlag.IS_HEAD)
+                    voteToHalt();
+            }
+        }
+    }
+
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(P4ForPathMergeVertex.class.getSimpleName());
+        job.setVertexClass(P4ForPathMergeVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java
new file mode 100644
index 0000000..3e822e4
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java
@@ -0,0 +1,55 @@
+package edu.uci.ics.genomix.pregelix.operator.removelowcoverage;
+
+import java.util.Iterator;
+
+import org.apache.hadoop.io.NullWritable;
+
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+
+public class RemoveLowCoverageVertex extends
+    Vertex<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> {
+    public static final String KMER_SIZE = "RemoveLowCoverageVertex.kmerSize";
+    public static final String MIN_AVERAGECOVERAGE = "RemoveLowCoverageVertex.minAverageCoverage";
+    public static int kmerSize = -1;
+    private static float minAverageCoverage = -1;
+    
+    /**
+     * initiate kmerSize, length
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if(minAverageCoverage == -1)
+            minAverageCoverage = getContext().getConfiguration().getFloat(MIN_AVERAGECOVERAGE, 5);
+    }
+    
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex(); 
+        if(getVertexValue().getAverageCoverage() < minAverageCoverage)
+            deleteVertex(getVertexId());
+        else
+            voteToHalt();
+    }
+    
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(RemoveLowCoverageVertex.class.getSimpleName());
+        job.setVertexClass(RemoveLowCoverageVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java
new file mode 100644
index 0000000..be43658
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java
@@ -0,0 +1,89 @@
+package edu.uci.ics.genomix.pregelix.operator.scaffolding;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import edu.uci.ics.genomix.pregelix.io.HashMapWritable;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.MapReduceVertex;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+
+public class ScaffoldingVertex extends 
+    MapReduceVertex{
+
+    public static Map<Long, VKmerListWritable> scaffoldingMap = new HashMap<Long, VKmerListWritable>();
+    
+    private HashMapWritable<VKmerBytesWritable, VKmerListWritable> traverseMap = new HashMapWritable<VKmerBytesWritable, VKmerListWritable>();
+    
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if (maxIteration < 0)
+            maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable(kmerSize);
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable(kmerSize);
+        else
+            outgoingMsg.reset(kmerSize);
+        if(fakeVertex == null){
+            fakeVertex = new VKmerBytesWritable();
+            String random = generaterRandomString(kmerSize + 1);
+            fakeVertex.setByRead(kmerSize + 1, random.getBytes(), 0); 
+        }
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable(kmerSize);
+        if(kmerList == null)
+            kmerList = new VKmerListWritable();
+    }
+    
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex();
+        if(getSuperstep() == 1){
+            /** add a fake vertex **/
+            addFakeVertex();
+            /** grouped by 5' readId **/
+            long mainReadId = getVertexValue().getHeadReadId();
+            if(mainReadId != 0){ //empty or not
+                if(scaffoldingMap.containsKey(mainReadId)){
+                    kmerList.setCopy(scaffoldingMap.get(mainReadId));
+                    kmerList.append(getVertexId());
+                } else{
+                    kmerList.reset();
+                    kmerList.append(getVertexId());
+                }
+                scaffoldingMap.put(mainReadId, kmerList);
+            }
+            voteToHalt();
+        } else if(getSuperstep() == 2){
+            /** process scaffoldingMap **/
+            for(Long readId : scaffoldingMap.keySet()){
+                kmerList.setCopy(scaffoldingMap.get(readId));
+                if(kmerList.getCountOfPosition() == 2){
+                    outgoingMsg.setSeekedVertexId(kmerList.getPosition(1));
+                    sendMsg(kmerList.getPosition(0), outgoingMsg);
+                    outgoingMsg.setSeekedVertexId(kmerList.getPosition(0));
+                    sendMsg(kmerList.getPosition(1), outgoingMsg);
+                }
+            }
+            deleteVertex(getVertexId());
+        } else if(getSuperstep() == 3){
+            if(msgIterator.hasNext()){
+                incomingMsg = msgIterator.next();
+                
+                /** initiate the traverseMap in vertexValue **/
+                kmerList.reset();
+                kmerList.append(incomingMsg.getSeekedVertexId());
+                traverseMap.clear();
+                traverseMap.put(incomingMsg.getSeekedVertexId(), kmerList);
+                getVertexValue().setTraverseMap(traverseMap);
+                
+                /** begin to traverse **/
+                
+            }
+        }
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java
new file mode 100644
index 0000000..ee493f9
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java
@@ -0,0 +1,397 @@
+package edu.uci.ics.genomix.pregelix.operator.splitrepeat;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.format.InitialGraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.BasicGraphCleanVertex;
+import edu.uci.ics.genomix.pregelix.type.MessageFlag;
+import edu.uci.ics.genomix.type.PositionWritable;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.api.util.BspUtils;
+
+public class SplitRepeatVertex extends 
+    BasicGraphCleanVertex{
+    
+    public class EdgeDir{
+        public static final byte DIR_FF = 0 << 0;
+        public static final byte DIR_FR = 1 << 0;
+        public static final byte DIR_RF = 2 << 0;
+        public static final byte DIR_RR = 3 << 0;
+    }
+    
+    public class DeletedEdge{
+        private byte dir;
+        private VKmerBytesWritable edge;
+        
+        public DeletedEdge(){
+            dir = 0;
+            edge = new VKmerBytesWritable(kmerSize);
+        }
+
+        public byte getDir() {
+            return dir;
+        }
+
+        public void setDir(byte dir) {
+            this.dir = dir;
+        }
+
+        public VKmerBytesWritable getEdge() {
+            return edge;
+        }
+
+        public void setEdge(VKmerBytesWritable edge) {
+            this.edge.setAsCopy(edge);
+        }
+    }
+    
+    private byte[][] connectedTable = new byte[][]{
+            {EdgeDir.DIR_RF, EdgeDir.DIR_FF},
+            {EdgeDir.DIR_RF, EdgeDir.DIR_FR},
+            {EdgeDir.DIR_RR, EdgeDir.DIR_FF},
+            {EdgeDir.DIR_RR, EdgeDir.DIR_FR}
+    };
+    public static Set<String> existKmerString = new HashSet<String>();
+    private Set<Long> readIdSet;
+    private Set<Long> incomingReadIdSet = new HashSet<Long>();
+    private Set<Long> outgoingReadIdSet = new HashSet<Long>();
+    private Set<Long> selfReadIdSet = new HashSet<Long>();
+    private Set<Long> neighborEdgeIntersection = new HashSet<Long>();
+    private Map<VKmerBytesWritable, Set<Long>> kmerMap = new HashMap<VKmerBytesWritable, Set<Long>>();
+    private VKmerListWritable incomingEdgeList = null; 
+    private VKmerListWritable outgoingEdgeList = null; 
+    private byte incomingEdgeDir = 0;
+    private byte outgoingEdgeDir = 0;
+    
+    protected VKmerBytesWritable createdVertexId = null;  
+    
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if (maxIteration < 0)
+            maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable(kmerSize);
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable(kmerSize);
+        else
+            outgoingMsg.reset(kmerSize);
+        if(incomingEdgeList == null)
+            incomingEdgeList = new VKmerListWritable();
+        if(outgoingEdgeList == null)
+            outgoingEdgeList = new VKmerListWritable();
+        if(createdVertexId == null)
+            createdVertexId = new VKmerBytesWritable(kmerSize + 1);
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable(kmerSize);
+        if(tmpKmer == null)
+            tmpKmer = new VKmerBytesWritable();
+    }
+    
+    /**
+     * Generate random string from [ACGT]
+     */
+    public String generaterRandomString(int n){
+        char[] chars = "ACGT".toCharArray();
+        StringBuilder sb = new StringBuilder();
+        Random random = new Random();
+        while(true){
+            for (int i = 0; i < n; i++) {
+                char c = chars[random.nextInt(chars.length)];
+                sb.append(c);
+            }
+            if(!existKmerString.contains(sb.toString()))
+                break;
+        }
+        existKmerString.add(sb.toString());
+        return sb.toString();
+    }
+    
+    /**
+     * GenerateString only for test
+     */
+    public String generateString(){
+        if(existKmerString.isEmpty()){
+            existKmerString.add("AAA");
+            return "AAA";
+        }
+        else
+            return "GGG";
+    }
+    
+    public void randomGenerateVertexId(int numOfSuffix){
+        String newVertexId = getVertexId().toString() + generaterRandomString(numOfSuffix);;
+        createdVertexId.setByRead(kmerSize + numOfSuffix, newVertexId.getBytes(), 0);
+    }
+    
+    public void generateKmerMap(Iterator<MessageWritable> msgIterator){
+        kmerMap.clear();
+        while(msgIterator.hasNext()){
+            incomingMsg = msgIterator.next();
+            readIdSet = new HashSet<Long>();
+            for(PositionWritable nodeId : incomingMsg.getNodeIdList()){
+                readIdSet.add(nodeId.getReadId());
+            }
+            kmerMap.put(incomingMsg.getSourceVertexId(), readIdSet);
+        }
+    }
+    
+    public void setSelfReadIdSet(){
+        selfReadIdSet.clear();
+        for(PositionWritable nodeId : getVertexValue().getNodeIdList()){
+            selfReadIdSet.add(nodeId.getReadId());
+        }    
+    }
+    
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    public void createNewVertex(int i, VKmerBytesWritable incomingEdge, VKmerBytesWritable outgoingEdge){
+        Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
+        vertex.getMsgList().clear();
+        vertex.getEdges().clear();
+        VKmerBytesWritable vertexId = new VKmerBytesWritable(kmerSize);
+        VertexValueWritable vertexValue = new VertexValueWritable(kmerSize);
+        //add the corresponding edge to new vertex
+        switch(connectedTable[i][0]){
+            case EdgeDir.DIR_RF:
+                vertexValue.getRFList().append(incomingEdge);
+                break;
+            case EdgeDir.DIR_RR:
+                vertexValue.getRRList().append(incomingEdge);
+                break;
+        }
+        switch(connectedTable[i][1]){
+            case EdgeDir.DIR_FF:
+                vertexValue.getFFList().append(outgoingEdge);
+                break;
+            case EdgeDir.DIR_FR:
+                vertexValue.getFRList().append(outgoingEdge);
+                break;
+        }
+        vertexId.setAsCopy(createdVertexId);
+        vertex.setVertexId(vertexId);
+        vertex.setVertexValue(vertexValue);
+        
+        addVertex(vertexId, vertex);
+    }
+    
+    public void sendMsgToUpdateEdge(VKmerBytesWritable incomingEdge, VKmerBytesWritable outgoingEdge){
+        outgoingMsg.setCreatedVertexId(createdVertexId);
+        outgoingMsg.setSourceVertexId(getVertexId());
+        
+        outgoingMsg.setFlag(incomingEdgeDir);
+        destVertexId.setAsCopy(incomingEdge);
+        sendMsg(destVertexId, outgoingMsg);
+        
+        outgoingMsg.setFlag(outgoingEdgeDir);
+        destVertexId.setAsCopy(outgoingEdge);
+        sendMsg(destVertexId, outgoingMsg);
+    }
+    
+    public void storeDeletedEdge(Set<DeletedEdge> deletedEdges, int i, VKmerBytesWritable incomingEdge, VKmerBytesWritable outgoingEdge){
+        DeletedEdge deletedIncomingEdge = new DeletedEdge();
+        DeletedEdge deletedOutgoingEdge = new DeletedEdge();
+        switch(connectedTable[i][0]){
+            case EdgeDir.DIR_RF:
+                deletedIncomingEdge.setDir(EdgeDir.DIR_RF);
+                deletedIncomingEdge.setEdge(incomingEdge);
+                break;
+            case EdgeDir.DIR_RR:
+                deletedIncomingEdge.setDir(EdgeDir.DIR_RR);
+                deletedIncomingEdge.setEdge(incomingEdge);
+                break;
+        }
+        switch(connectedTable[i][1]){
+            case EdgeDir.DIR_FF:
+                deletedOutgoingEdge.setDir(EdgeDir.DIR_FF);
+                deletedOutgoingEdge.setEdge(outgoingEdge);
+                break;
+            case EdgeDir.DIR_FR:
+                deletedOutgoingEdge.setDir(EdgeDir.DIR_FR);
+                deletedOutgoingEdge.setEdge(outgoingEdge);
+                break;
+        }
+        deletedEdges.add(deletedIncomingEdge);
+        deletedEdges.add(deletedOutgoingEdge);
+    }
+    public void deleteEdgeFromOldVertex(DeletedEdge deleteEdge){
+        switch(deleteEdge.dir){
+            case EdgeDir.DIR_RF:
+                getVertexValue().getRFList().remove(deleteEdge.getEdge());
+                break;
+            case EdgeDir.DIR_RR:
+                getVertexValue().getRRList().remove(deleteEdge.getEdge());
+                break;
+            case EdgeDir.DIR_FF:
+                getVertexValue().getFFList().remove(deleteEdge.getEdge());
+                break;
+            case EdgeDir.DIR_FR:
+                getVertexValue().getFRList().remove(deleteEdge.getEdge());
+                break;
+        }
+    }
+    
+    public void setEdgeListAndEdgeDir(int i){
+        switch(connectedTable[i][0]){
+            case EdgeDir.DIR_RF:
+                incomingEdgeList.setCopy(getVertexValue().getRFList());
+                incomingEdgeDir = MessageFlag.DIR_RF;
+                break;
+            case EdgeDir.DIR_RR:
+                incomingEdgeList.setCopy(getVertexValue().getRRList());
+                incomingEdgeDir = MessageFlag.DIR_RR;
+                break;
+        }
+        switch(connectedTable[i][1]){
+            case EdgeDir.DIR_FF:
+                outgoingEdgeList.setCopy(getVertexValue().getFFList());
+                outgoingEdgeDir = MessageFlag.DIR_FF;
+                break;
+            case EdgeDir.DIR_FR:
+                outgoingEdgeList.setCopy(getVertexValue().getFRList());
+                outgoingEdgeDir = MessageFlag.DIR_FR;
+                break;
+        }
+    }
+    
+    public void setNeighborEdgeIntersection(VKmerBytesWritable incomingEdge, VKmerBytesWritable outgoingEdge){
+        outgoingReadIdSet.clear(); 
+        incomingReadIdSet.clear();
+        tmpKmer.setAsCopy(incomingEdge);
+        incomingReadIdSet.addAll(kmerMap.get(tmpKmer));
+        tmpKmer.setAsCopy(outgoingEdge);
+        outgoingReadIdSet.addAll(kmerMap.get(tmpKmer));
+        
+        //set all neighberEdge readId intersection
+        neighborEdgeIntersection.addAll(selfReadIdSet);
+        neighborEdgeIntersection.retainAll(incomingReadIdSet);
+        neighborEdgeIntersection.retainAll(outgoingReadIdSet);
+    }
+    
+    public void updateEdgeListPointToNewVertex(){
+        byte meToNeighborDir = incomingMsg.getFlag();
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+        switch(neighborToMeDir){
+            case MessageFlag.DIR_FF:
+                getVertexValue().getFFList().remove(incomingMsg.getSourceVertexId());
+                getVertexValue().getFFList().append(incomingMsg.getCreatedVertexId());
+                break;
+            case MessageFlag.DIR_FR:
+                getVertexValue().getFRList().remove(incomingMsg.getSourceVertexId());
+                getVertexValue().getFRList().append(incomingMsg.getCreatedVertexId());
+                break;
+            case MessageFlag.DIR_RF:
+                getVertexValue().getRFList().remove(incomingMsg.getSourceVertexId());
+                getVertexValue().getRFList().append(incomingMsg.getCreatedVertexId());
+                break;
+            case MessageFlag.DIR_RR:
+                getVertexValue().getRRList().remove(incomingMsg.getSourceVertexId());
+                getVertexValue().getRRList().append(incomingMsg.getCreatedVertexId());
+                break;
+        }
+    }
+    
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex();
+        if(getSuperstep() == 1){
+            if(getVertexValue().getDegree() > 2){
+                outgoingMsg.setSourceVertexId(getVertexId());
+                sendMsgToAllNeighborNodes(getVertexValue());
+            }
+            voteToHalt();
+        } else if(getSuperstep() == 2){
+            while(msgIterator.hasNext()){
+                incomingMsg = msgIterator.next();
+                outgoingMsg.setNodeIdList(getVertexValue().getNodeIdList());
+                outgoingMsg.setSourceVertexId(getVertexId());
+                sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg);
+            }
+            voteToHalt();
+        } else if(getSuperstep() == 3){
+            /** generate KmerMap map kmer(key) to readIdSet(value) **/
+            generateKmerMap(msgIterator);
+            
+            /** set self readId set **/
+            setSelfReadIdSet();
+            
+            //A set storing deleted edges
+            Set<DeletedEdge> deletedEdges = new HashSet<DeletedEdge>();
+            /** process connectedTable **/
+            for(int i = 0; i < 4; i++){
+                /** set edgeList and edgeDir based on connectedTable **/
+                setEdgeListAndEdgeDir(i);
+                
+                VKmerBytesWritable incomingEdge = new VKmerBytesWritable();
+                VKmerBytesWritable outgoingEdge = new VKmerBytesWritable();
+                for(int x = 0; x < incomingEdgeList.getCountOfPosition(); x++){
+                    for(int y = 0; y < outgoingEdgeList.getCountOfPosition(); y++){
+                        incomingEdge.setAsCopy(incomingEdgeList.getPosition(x));
+                        outgoingEdge.setAsCopy(outgoingEdgeList.getPosition(y));
+                        /** set neighborEdge readId intersection **/
+                        setNeighborEdgeIntersection(incomingEdge, outgoingEdge);
+                        
+                        if(!neighborEdgeIntersection.isEmpty()){
+                            /** random generate vertexId of new vertex **/
+                            randomGenerateVertexId(3);
+                            
+                            /** create new/created vertex **/
+                            createNewVertex(i, incomingEdge, outgoingEdge);
+                            
+                            /** send msg to neighbors to update their edges to new vertex **/
+                            sendMsgToUpdateEdge(incomingEdge, outgoingEdge);
+                            
+                            /** store deleted edge **/
+                            storeDeletedEdge(deletedEdges, i, incomingEdge, outgoingEdge);
+                        }
+                    }
+                }                
+            }
+            /** delete extra edges from old vertex **/
+            for(DeletedEdge deletedEdge : deletedEdges){
+                deleteEdgeFromOldVertex(deletedEdge);
+            }
+            
+            /** Old vertex delete or voteToHalt **/
+            if(getVertexValue().getDegree() == 0)//if no any edge, delete
+                deleteVertex(getVertexId());
+            else
+                voteToHalt();
+        } else if(getSuperstep() == 4){
+            while(msgIterator.hasNext()){
+                incomingMsg = msgIterator.next();
+                /** update edgelist to new/created vertex **/
+                updateEdgeListPointToNewVertex();
+            }
+            voteToHalt();
+        }
+    }
+    
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(SplitRepeatVertex.class.getSimpleName());
+        job.setVertexClass(SplitRepeatVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipAddVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipAddVertex.java
new file mode 100644
index 0000000..0738208
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipAddVertex.java
@@ -0,0 +1,114 @@
+package edu.uci.ics.genomix.pregelix.operator.tipremove;
+
+import java.util.Iterator;
+import org.apache.hadoop.io.NullWritable;
+
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+import edu.uci.ics.pregelix.api.graph.Vertex;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.api.util.BspUtils;
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+
+/*
+ * vertexId: BytesWritable
+ * vertexValue: ByteWritable
+ * edgeValue: NullWritable
+ * message: MessageWritable
+ * 
+ * DNA:
+ * A: 00
+ * C: 01
+ * G: 10
+ * T: 11
+ * 
+ * succeed node
+ *  A 00000001 1
+ *  G 00000010 2
+ *  C 00000100 4
+ *  T 00001000 8
+ * precursor node
+ *  A 00010000 16
+ *  G 00100000 32
+ *  C 01000000 64
+ *  T 10000000 128
+ *  
+ * For example, ONE LINE in input file: 00,01,10    0001,0010,
+ * That means that vertexId is ACG, its succeed node is A and its precursor node is C.
+ * The succeed node and precursor node will be stored in vertexValue and we don't use edgeValue.
+ * The details about message are in edu.uci.ics.pregelix.example.io.MessageWritable. 
+ */
+/**
+ *  Remove tip or single node when l > constant
+ */
+public class TipAddVertex extends
+        Vertex<VKmerBytesWritable, VertexValueWritable, NullWritable, MessageWritable> {
+    public static final String KMER_SIZE = "TipAddVertex.kmerSize";
+    public static int kmerSize = -1;
+   
+    /**
+     * initiate kmerSize, length
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+    }
+    
+    /**
+     * create a new vertex point to split node
+     */
+    
+    @SuppressWarnings("unchecked")
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex(); 
+        if(getSuperstep() == 1){
+            if(getVertexId().toString().equals("CTA")){
+                VKmerBytesWritable vertexId = new VKmerBytesWritable(kmerSize);
+                vertexId.setByRead(kmerSize, "AGC".getBytes(), 0);
+                getVertexValue().getRFList().append(vertexId);
+                
+                //add tip vertex
+                @SuppressWarnings("rawtypes")
+                Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
+                vertex.getMsgList().clear();
+                vertex.getEdges().clear();
+                
+                VertexValueWritable vertexValue = new VertexValueWritable(kmerSize);
+                /**
+                 * set the src vertex id
+                 */
+                vertex.setVertexId(vertexId);
+                /**
+                 * set the vertex value
+                 */
+                VKmerListWritable kmerList = new VKmerListWritable();
+                kmerList.append(getVertexId());
+                vertexValue.setRFList(kmerList);
+                vertexValue.setActualKmer(vertexId);
+                vertex.setVertexValue(vertexValue);
+                
+                addVertex(vertexId, vertex);
+            }
+        }
+        voteToHalt();
+    }
+
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(TipAddVertex.class.getSimpleName());
+        job.setVertexClass(TipAddVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
new file mode 100644
index 0000000..527fb66
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
@@ -0,0 +1,112 @@
+package edu.uci.ics.genomix.pregelix.operator.tipremove;
+
+import java.util.Iterator;
+
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.BasicGraphCleanVertex;
+import edu.uci.ics.genomix.pregelix.util.VertexUtil;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+/*
+ * vertexId: BytesWritable
+ * vertexValue: ByteWritable
+ * edgeValue: NullWritable
+ * message: MessageWritable
+ * 
+ * DNA:
+ * A: 00
+ * C: 01
+ * G: 10
+ * T: 11
+ * 
+ * succeed node
+ *  A 00000001 1
+ *  G 00000010 2
+ *  C 00000100 4
+ *  T 00001000 8
+ * precursor node
+ *  A 00010000 16
+ *  G 00100000 32
+ *  C 01000000 64
+ *  T 10000000 128
+ *  
+ * For example, ONE LINE in input file: 00,01,10    0001,0010,
+ * That means that vertexId is ACG, its succeed node is A and its precursor node is C.
+ * The succeed node and precursor node will be stored in vertexValue and we don't use edgeValue.
+ * The details about message are in edu.uci.ics.pregelix.example.io.MessageWritable. 
+ */
+/**
+ *  Remove tip or single node when l > constant
+ */
+public class TipRemoveVertex extends
+        BasicGraphCleanVertex {
+    public static final String LENGTH = "TipRemoveVertex.length";
+    private int length = -1;
+    
+    /**
+     * initiate kmerSize, length
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if(length == -1)
+            length = getContext().getConfiguration().getInt(LENGTH, kmerSize); //kmerSize + 5
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable(kmerSize);
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable(kmerSize);
+        else
+            outgoingMsg.reset(kmerSize);
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable(kmerSize);
+    }
+
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex(); 
+        if(getSuperstep() == 1){
+            if(VertexUtil.isIncomingTipVertex(getVertexValue())){
+            	if(getVertexValue().getLengthOfKmer() <= length){
+            		sendSettledMsgToPreviousNode();
+            		deleteVertex(getVertexId());
+            	}
+            }
+            else if(VertexUtil.isOutgoingTipVertex(getVertexValue())){
+                if(getVertexValue().getLengthOfKmer() <= length){
+                	sendSettledMsgToNextNode();
+                    deleteVertex(getVertexId());
+                }
+            }
+            else if(VertexUtil.isSingleVertex(getVertexValue())){
+                if(getVertexValue().getLengthOfKmer() <= length)
+                    deleteVertex(getVertexId());
+            }
+        }
+        else if(getSuperstep() == 2){
+        	while(msgIterator.hasNext()){
+        		incomingMsg = msgIterator.next();
+        		responseToDeadVertex();
+        	}
+        }
+        voteToHalt();
+    }
+
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(TipRemoveVertex.class.getSimpleName());
+        job.setVertexClass(TipRemoveVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java
new file mode 100644
index 0000000..b3a3d37
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java
@@ -0,0 +1,125 @@
+package edu.uci.ics.genomix.pregelix.sequencefile;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.FilenameFilter;
+import java.io.IOException;
+
+import org.apache.commons.io.filefilter.WildcardFileFilter;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.io.SequenceFile;
+
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class GenerateTextFile {
+
+    public static void generateFromPathmergeResult(int kmerSize, String strSrcDir, String outPutDir) throws IOException {
+        Configuration conf = new Configuration();
+        FileSystem fileSys = FileSystem.getLocal(conf);
+
+        fileSys.create(new Path(outPutDir));
+        BufferedWriter bw = new BufferedWriter(new FileWriter(outPutDir));
+        File srcPath = new File(strSrcDir);
+        for (File f : srcPath.listFiles((FilenameFilter) (new WildcardFileFilter("part*")))) {
+            SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, new Path(f.getAbsolutePath()), conf);
+            VKmerBytesWritable key = new VKmerBytesWritable();
+            VertexValueWritable value = new VertexValueWritable();
+
+            while (reader.next(key, value)) {
+                if (key == null) {
+                    break;
+                }
+                bw.write(key.toString() + "\t" + value.toString());
+                System.out.println(key.toString());
+                bw.newLine();
+            }
+            reader.close();
+        }
+        bw.close();
+    }
+
+    public static void generateSpecificLengthChainFromNaivePathmergeResult(int maxLength) throws IOException {
+        BufferedWriter bw = new BufferedWriter(new FileWriter("naive_text_" + maxLength));
+        Configuration conf = new Configuration();
+        FileSystem fileSys = FileSystem.get(conf);
+        for (int i = 0; i < 2; i++) {
+            Path path = new Path("/home/anbangx/genomix_result/final_naive/part-" + i);
+            SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, path, conf);
+            VKmerBytesWritable key = new VKmerBytesWritable();
+            VertexValueWritable value = new VertexValueWritable();
+
+            while (reader.next(key, value)) {
+                if (key == null || value == null) {
+                    break;
+                }
+                if (value.getLengthOfKmer() != -1 && value.getLengthOfKmer() <= maxLength) {
+                    bw.write(value.toString());
+                    bw.newLine();
+                }
+            }
+            reader.close();
+        }
+        bw.close();
+    }
+
+    public static void generateSpecificLengthChainFromLogPathmergeResult(int maxLength) throws IOException {
+        BufferedWriter bw = new BufferedWriter(new FileWriter("log_text_" + maxLength));
+        Configuration conf = new Configuration();
+        FileSystem fileSys = FileSystem.get(conf);
+        for (int i = 0; i < 2; i++) {
+            Path path = new Path("/home/anbangx/genomix_result/improvelog2/part-" + i);
+            SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, path, conf);
+            VKmerBytesWritable key = new VKmerBytesWritable();
+            VertexValueWritable value = new VertexValueWritable();
+
+            while (reader.next(key, value)) {
+                if (key == null || value == null) {
+                    break;
+                }
+                if (value.getLengthOfKmer() != -1 && value.getLengthOfKmer() <= maxLength
+                        && value.getState() == State.IS_FINAL) {
+                    bw.write(key.toString() + "\t" + value.toString());
+                    bw.newLine();
+                }
+            }
+            reader.close();
+        }
+        bw.close();
+    }
+
+    public static void generateFromGraphbuildResult() throws IOException {
+        BufferedWriter bw = new BufferedWriter(new FileWriter("textfile"));
+        Configuration conf = new Configuration();
+        FileSystem fileSys = FileSystem.get(conf);
+        Path path = new Path("data/input/part-0-out-3000000");
+        SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, path, conf);
+        VKmerBytesWritable key = new VKmerBytesWritable();
+
+        while (reader.next(key, null)) {
+            if (key == null) {
+                break;
+            }
+            bw.write(key.toString());
+            bw.newLine();
+        }
+        reader.close();
+        bw.close();
+    }
+
+    /**
+     * @param args
+     * @throws IOException
+     */
+    public static void main(String[] args) throws IOException {
+        //generateFromPathmergeResult();
+        //generateFromGraphbuildResult();
+        //generateSpecificLengthChainFromPathmergeResult(68);
+        //generateSpecificLengthChainFromLogPathmergeResult(68);
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java
new file mode 100644
index 0000000..f30512c
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java
@@ -0,0 +1,80 @@
+package edu.uci.ics.genomix.pregelix.testcase;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+
+public class GenerateTestInput {
+
+    /**
+     * Simple Path
+     */
+    public static String simplePath(int k, int length, int numLines) {
+        RandomString rs = new RandomString(k, length);
+        String output = "";
+        for (int i = 0; i < numLines; i++)
+            output += rs.nextString(0) + "\r\n";
+        return output;
+    }
+
+    /**
+     * Tree Path
+     */
+    public static String treePath(int k, int x, int y, int z) {
+        RandomString rs = new RandomString(k, x + y + k - 1);
+        String s1 = rs.nextString(0);
+        rs.setLength(x + y + z + k - 1);
+        rs.addString(s1.substring(0, x));
+        String s2 = rs.nextString(x);
+        rs.setLength(x + y + z + k - 1);
+        rs.addString(s2.substring(0, x + y));
+        String s3 = rs.nextString(x + y);
+        return s1 + "\r\n" + s2 + "\r\n" + s3;
+    }
+
+    /**
+     * Cycle Path
+     */
+    public static String cyclePath(int k, int length) {
+        RandomString rs = new RandomString(k, length);
+        String s1 = rs.nextString(0);
+        String s2 = s1 + s1.substring(1, k + 1);
+        return s2;
+    }
+
+    /**
+     * Bridge Path
+     */
+    public static String bridgePath(int k, int x) {
+        RandomString rs = new RandomString(k, x + k + 2 + k - 1);
+        String s1 = rs.nextString(0);
+        rs.setLength(x + k + 2);
+        rs.addString(s1.substring(0, k + 2));
+        String s2 = rs.nextString(k + 2) + s1.substring(x + k + 2, x + k + 2 + k - 1);
+        return s1 + "\r\n" + s2;
+    }
+
+    public static void main(String[] args) {
+        // TODO Auto-generated method stub
+        OutputStreamWriter writer;
+        try {
+            writer = new OutputStreamWriter(new FileOutputStream("graph/7/SinglePath"));
+            writer.write(simplePath(7, 10, 1));
+            writer.close();
+            writer = new OutputStreamWriter(new FileOutputStream("graph/7/SimplePath"));
+            writer.write(simplePath(7, 10, 3));
+            writer.close();
+            writer = new OutputStreamWriter(new FileOutputStream("graph/7/TreePath"));
+            writer.write(treePath(7, 7, 7, 7));
+            writer.close();
+            writer = new OutputStreamWriter(new FileOutputStream("graph/7/CyclePath"));
+            writer.write(cyclePath(7, 10));
+            writer.close();
+            writer = new OutputStreamWriter(new FileOutputStream("graph/7/BridgePath"));
+            writer.write(bridgePath(7, 2));
+            writer.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/RandomString.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/RandomString.java
new file mode 100644
index 0000000..cd83171
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/RandomString.java
@@ -0,0 +1,59 @@
+package edu.uci.ics.genomix.pregelix.testcase;
+
+import java.util.ArrayList;
+import java.util.Random;
+
+public class RandomString {
+
+    private static final char[] symbols = new char[4];
+
+    static {
+        symbols[0] = 'A';
+        symbols[1] = 'C';
+        symbols[2] = 'G';
+        symbols[3] = 'T';
+    }
+
+    private final Random random = new Random();
+
+    private char[] buf;
+
+    private ArrayList<String> existKmer = new ArrayList<String>();;
+
+    private int k;
+
+    public RandomString(int k, int length) {
+        if (length < 1)
+            throw new IllegalArgumentException("length < 1: " + length);
+        buf = new char[length];
+        this.k = k;
+    }
+
+    public String nextString(int startIdx) {
+        String tmp = "";
+        for (int idx = startIdx; idx < buf.length;) {
+            buf[idx] = symbols[random.nextInt(4)];
+            if (idx >= k - 1) {
+                tmp = new String(buf, idx - k + 1, k);
+                if (!existKmer.contains(tmp)) {
+                    existKmer.add(tmp);
+                    idx++;
+                }
+            } else
+                idx++;
+        }
+
+        return new String(buf);
+    }
+
+    public void setLength(int length) {
+        buf = new char[length];
+    }
+
+    public void addString(String s) {
+        char[] tmp = s.toCharArray();
+        for (int i = 0; i < tmp.length; i++)
+            buf[i] = tmp[i];
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/AdjMessage.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/AdjMessage.java
new file mode 100644
index 0000000..ca8d795
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/AdjMessage.java
@@ -0,0 +1,45 @@
+package edu.uci.ics.genomix.pregelix.type;
+
+public class AdjMessage {
+    public static final byte FROMFF = 0;
+    public static final byte FROMFR = 1;
+    public static final byte FROMRF = 2;
+    public static final byte FROMRR = 3;
+    public static final byte NON = 4;
+    public static final byte UNCHANGE = 5;
+    public static final byte MERGE = 6;
+    public static final byte KILL = 7;
+    
+    public final static class ADJMESSAGE_CONTENT {
+        public static String getContentFromCode(byte code) {
+            String r = "";
+            switch (code) {
+                case FROMFF:
+                    r = "FROMFF";
+                    break;
+                case FROMFR:
+                    r = "FROMFR";
+                    break;
+                case FROMRF:
+                    r = "FROMRF";
+                    break;
+                case FROMRR:
+                    r = "FROMRR";
+                    break;
+                case NON:
+                    r = "NON";
+                    break;
+                case UNCHANGE:
+                    r = "UNCHANGE";
+                    break;
+                case MERGE:
+                    r = "MERGE";
+                    break;
+                case KILL:
+                    r = "KILL";
+                    break;
+            }
+            return r;
+        }
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java
new file mode 100644
index 0000000..4b32a51
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java
@@ -0,0 +1,43 @@
+package edu.uci.ics.genomix.pregelix.type;
+
+public class CheckMessage {
+
+    public static final byte SOURCE = 1 << 0;
+    public static final byte ACUTUALKMER = 1 << 1;
+    public static final byte NEIGHBER = 1 << 2;
+    public static final byte MESSAGE = 1 << 3;
+    public static final byte NODEIDLIST = 1 << 4;
+    public static final byte ADJMSG = 1 << 5;
+    public static final byte START = 1 << 6;
+
+    public final static class CheckMessage_CONTENT {
+
+        public static String getContentFromCode(byte code) {
+            String r = "";
+            switch (code) {
+                case SOURCE:
+                    r = "SOURCE";
+                    break;
+                case ACUTUALKMER:
+                    r = "ACUTUALKMER";
+                    break;
+                case NEIGHBER:
+                    r = "NEIGHBER";
+                    break;
+                case MESSAGE:
+                    r = "MESSAGE";
+                    break;
+                case NODEIDLIST:
+                    r = "READID";
+                    break;
+                case ADJMSG:
+                    r = "ADJMSG";
+                    break;
+                case START:
+                    r = "START";
+                    break;
+            }
+            return r;
+        }
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/DirectionFlag.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/DirectionFlag.java
new file mode 100644
index 0000000..51a73f1
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/DirectionFlag.java
@@ -0,0 +1,15 @@
+package edu.uci.ics.genomix.pregelix.type;
+
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+
+public class DirectionFlag extends State {
+    public static final byte DIR_NO = 0b000 << 0;
+    public static final byte DIR_FF = 0b001 << 0;
+    public static final byte DIR_FR = 0b010 << 0;
+    public static final byte DIR_RF = 0b011 << 0;
+    public static final byte DIR_RR = 0b100 << 0;
+    public static final byte DIR_MASK = 0b111 << 0;
+    public static final byte DIR_CLEAR = 0b1111000 << 0;
+    
+//    public static final byte DIR_FROM_DEADVERTEX = 0b101 << 0;
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/Message.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/Message.java
new file mode 100644
index 0000000..4644383
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/Message.java
@@ -0,0 +1,47 @@
+package edu.uci.ics.genomix.pregelix.type;
+
+public class Message {
+
+    public static final byte NON = 0;
+    public static final byte START = 1;
+    public static final byte END = 2;
+    public static final byte STOP = 3;
+    public static final byte FROMPSEUDOHEAD = 4;
+    public static final byte FROMPSEUDOREAR = 5;
+    public static final byte IN = 6;
+    public static final byte OUT = 7;
+
+    public final static class MESSAGE_CONTENT {
+
+        public static String getContentFromCode(byte code) {
+            String r = "";
+            switch (code) {
+                case NON:
+                    r = "NON";
+                    break;
+                case START:
+                    r = "START";
+                    break;
+                case END:
+                    r = "END";
+                    break;
+                case STOP:
+                    r = "STOP";
+                    break;
+                case FROMPSEUDOHEAD:
+                    r = "FROMPSEUDOHEAD";
+                    break;
+                case FROMPSEUDOREAR:
+                    r = "FROMPSEUDOREAR";
+                    break;
+                case IN:
+                    r = "IN";
+                    break;
+                case OUT:
+                    r = "OUT";
+                    break;
+            }
+            return r;
+        }
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFlag.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFlag.java
new file mode 100644
index 0000000..3ce6c5a
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFlag.java
@@ -0,0 +1,11 @@
+package edu.uci.ics.genomix.pregelix.type;
+
+public class MessageFlag extends DirectionFlag {
+    
+    public static String getFlagAsString(byte code) {
+        // TODO: allow multiple flags to be set
+        return "ERROR_BAD_MESSAGE";
+    }
+}
+
+
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFromHead.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFromHead.java
new file mode 100644
index 0000000..05a2f95
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFromHead.java
@@ -0,0 +1,17 @@
+package edu.uci.ics.genomix.pregelix.type;
+
+public class MessageFromHead {
+    public static final byte BothMsgsFromHead = 0b0000 << 1;
+    public static final byte BothMsgsFromNonHead = 0b0001 << 1;
+    public static final byte BothMsgsFromOldHead = 0b0010 << 1;
+    public static final byte OneMsgFromHead = 0b0011 << 1;
+    public static final byte OneMsgFromNonHead = 0b0100 << 1;
+    public static final byte OneMsgFromHeadAndOneFromNonHead = 0b0101 << 1;
+    public static final byte OneMsgFromHeadToHead = 0b0110 << 1;
+    public static final byte OneMsgFromOldHeadToNonHead = 0b0111 << 1;
+    public static final byte OneMsgFromOldHeadToHead = 0b1000 << 1;
+    public static final byte OneMsgFromOldHeadAndOneFromHead = 0b1001 << 1;
+    public static final byte NO_MSG = 0b1010 << 1;
+    
+    public static final byte NO_INFO = 0 << 0;
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State2.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State2.java
new file mode 100644
index 0000000..aa22972
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State2.java
@@ -0,0 +1,47 @@
+package edu.uci.ics.genomix.pregelix.type;
+
+public class State2 {
+
+    public static final byte NON_VERTEX = 0;
+    public static final byte START_VERTEX = 1;
+    public static final byte END_VERTEX = 2;
+    public static final byte START_HALT = 3;
+    public static final byte PSEUDOHEAD = 4;
+    public static final byte PSEUDOREAR = 5;
+    public static final byte FINAL_VERTEX = 6;
+    public static final byte CYCLE = 7;
+
+    public final static class STATE_CONTENT {
+
+        public static String getContentFromCode(byte code) {
+            String r = "";
+            switch (code) {
+                case NON_VERTEX:
+                    r = "NON_VERTEX";
+                    break;
+                case START_VERTEX:
+                    r = "START_VERTEX";
+                    break;
+                case END_VERTEX:
+                    r = "END_VERTEX";
+                    break;
+                case START_HALT:
+                    r = "START_HALT";
+                    break;
+                case PSEUDOHEAD:
+                    r = "PSEUDOHEAD";
+                    break;
+                case PSEUDOREAR:
+                    r = "PSEUDOREAR";
+                    break;
+                case FINAL_VERTEX:
+                    r = "FINAL_VERTEX";
+                    break;
+                case CYCLE:
+                    r = "CYCLE";
+                    break;
+            }
+            return r;
+        }
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/util/VertexUtil.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/util/VertexUtil.java
new file mode 100644
index 0000000..e2e7dfb
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/util/VertexUtil.java
@@ -0,0 +1,129 @@
+package edu.uci.ics.genomix.pregelix.util;
+
+import edu.uci.ics.genomix.pregelix.io.AdjacencyListWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class VertexUtil {
+    /**
+     * Single Vertex: in-degree = out-degree = 1
+     * 
+     * @param vertexValue
+     */
+    public static boolean isPathVertex(VertexValueWritable value) {
+        return value.inDegree() == 1 && value.outDegree() == 1;
+    }
+
+    /**
+     * Head Vertex: out-degree > 0
+     */
+    public static boolean isHead(VertexValueWritable value){
+        return value.outDegree() > 0 && !isPathVertex(value);
+    }
+    
+    public static boolean isHeadOrRearVertexWithDegree(VertexValueWritable value){
+        return isHeadVertexWithIndegree(value) || isRearVertexWithOutdegree(value);
+    }
+    /**
+     * Head Vertex: out-degree > 0, and has indegress
+     * 
+     * @param vertexValue
+     */
+    public static boolean isHeadVertexWithIndegree(VertexValueWritable value) {
+        return isHead(value) && !isHeadWithoutIndegree(value);
+    }
+
+    /**
+     * Head Vertex without indegree: indegree = 0, outdegree = 1
+     */
+    public static boolean isHeadWithoutIndegree(VertexValueWritable value){
+        return value.inDegree() == 0 && value.outDegree() == 1;
+    }
+    
+    /**
+     * Head Vertex: out-degree > 0
+     */
+    public static boolean isRear(VertexValueWritable value){
+        return value.inDegree() > 0 && !isPathVertex(value);
+    }
+    
+    /**
+     * Rear Vertex: in-degree > 0, and has outdegree
+     * 
+     * @param vertexValue
+     */
+    public static boolean isRearVertexWithOutdegree(VertexValueWritable value) {
+        return isRear(value) && !isRearWithoutOutdegree(value);
+    }
+
+    
+    /**
+     * Rear Vertex without outdegree: indegree = 1, outdegree = 0
+     */
+    public static boolean isRearWithoutOutdegree(VertexValueWritable value){
+        return value.inDegree() == 1 && value.outDegree() == 0;
+    }
+    
+    /**
+     * check if mergeChain is cycle
+     */
+    public static boolean isCycle(VKmerBytesWritable kmer, VKmerBytesWritable mergeChain, int kmerSize) {
+        String chain = mergeChain.toString().substring(1);
+        return chain.contains(kmer.toString());
+
+        /*subKmer.set(vertexId);
+        for(int istart = 1; istart < mergeChain.getKmerLength() - kmerSize + 1; istart++){
+        	byte nextgene = mergeChain.getGeneCodeAtPosition(istart+kmerSize);
+        	subKmer.shiftKmerWithNextCode(nextgene);
+        	if(subKmer.equals(vertexId))
+            	return true;
+        }
+        return false;*/
+    }
+    
+    /**
+     * check if vertex is a tip
+     */
+    public static boolean isIncomingTipVertex(VertexValueWritable value){
+    	return value.inDegree() == 0 && value.outDegree() == 1;
+    }
+    
+    public static boolean isOutgoingTipVertex(VertexValueWritable value){
+    	return value.inDegree() == 1 && value.outDegree() == 0;
+    }
+    
+    /**
+     * check if vertex is single
+     */
+    public static boolean isSingleVertex(VertexValueWritable value){
+        return value.inDegree() == 0 && value.outDegree() == 0;
+    }
+    
+    /**
+     * check if vertex is upbridge
+     */
+    public static boolean isUpBridgeVertex(VertexValueWritable value){
+        return value.inDegree() == 1 && value.outDegree() > 1;
+    }
+    
+    /**
+     * check if vertex is downbridge
+     */
+    public static boolean isDownBridgeVertex(VertexValueWritable value){
+        return value.inDegree() > 1 && value.outDegree() == 1;
+    }
+    
+    /**
+     * get nodeId from Ad
+     */
+    public static VKmerBytesWritable getNodeIdFromAdjacencyList(AdjacencyListWritable adj){
+        if(adj.getForwardList().getCountOfPosition() > 0)
+            return adj.getForwardList().getPosition(0);
+        else if(adj.getReverseList().getCountOfPosition() > 0)
+            return adj.getReverseList().getPosition(0);
+        else
+            return null;
+    }
+    
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java
new file mode 100644
index 0000000..98219d7
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java
@@ -0,0 +1,284 @@
+package edu.uci.ics.genomix.pregelix.JobGen;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.format.InitialGraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.P2PathMergeOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.operator.bridgeremove.BridgeAddVertex;
+import edu.uci.ics.genomix.pregelix.operator.bridgeremove.BridgeRemoveVertex;
+import edu.uci.ics.genomix.pregelix.operator.bubblemerge.BubbleAddVertex;
+import edu.uci.ics.genomix.pregelix.operator.bubblemerge.BubbleMergeVertex;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.P2ForPathMergeVertex;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.MapReduceVertex;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.P4ForPathMergeVertex;
+import edu.uci.ics.genomix.pregelix.operator.removelowcoverage.RemoveLowCoverageVertex;
+import edu.uci.ics.genomix.pregelix.operator.scaffolding.ScaffoldingVertex;
+import edu.uci.ics.genomix.pregelix.operator.splitrepeat.SplitRepeatVertex;
+import edu.uci.ics.genomix.pregelix.operator.tipremove.TipAddVertex;
+import edu.uci.ics.genomix.pregelix.operator.tipremove.TipRemoveVertex;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+
+public class JobGenerator {
+
+    public static String outputBase = "src/test/resources/jobs/";
+    
+    private static void generateMapReduceGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(MapReduceVertex.class);
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(P2PathMergeOutputFormat.class); 
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(MapReduceVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genMapReduceGraph() throws IOException {
+        generateMapReduceGraphJob("MapReduceGraph", outputBase + "MapReduceGraph.xml");
+    }
+    
+//    private static void generateNaiveAlgorithmForMergeGraphJob(String jobName, String outputPath) throws IOException {
+//        PregelixJob job = new PregelixJob(jobName);
+//        job.setVertexClass(P1ForPathMergeVertex.class);
+//        job.setVertexInputFormatClass(NaiveAlgorithmForPathMergeInputFormat.class); //GraphCleanInputFormat
+//        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+//        job.setDynamicVertexValueSize(true);
+//        job.setOutputKeyClass(PositionWritable.class);
+//        job.setOutputValueClass(VertexValueWritable.class);
+//        job.getConfiguration().setInt(P1ForPathMergeVertex.KMER_SIZE, 3);
+//        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+//    }
+//
+//    private static void genNaiveAlgorithmForMergeGraph() throws IOException {
+//        generateNaiveAlgorithmForMergeGraphJob("NaiveAlgorithmForMergeGraph", outputBase
+//                + "NaiveAlgorithmForMergeGraph.xml");
+//    }
+
+    private static void generateLogAlgorithmForMergeGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(P2ForPathMergeVertex.class);
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(P2PathMergeOutputFormat.class); 
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(P2ForPathMergeVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genLogAlgorithmForMergeGraph() throws IOException {
+        generateLogAlgorithmForMergeGraphJob("LogAlgorithmForMergeGraph", outputBase + "LogAlgorithmForMergeGraph.xml");
+    }
+//    
+//    private static void generateP3ForMergeGraphJob(String jobName, String outputPath) throws IOException {
+//        PregelixJob job = new PregelixJob(jobName);
+//        job.setVertexClass(P3ForPathMergeVertex.class);
+//        job.setVertexInputFormatClass(NaiveAlgorithmForPathMergeInputFormat.class);
+//        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+//        job.setDynamicVertexValueSize(true);
+//        job.setOutputKeyClass(PositionWritable.class);
+//        job.setOutputValueClass(VertexValueWritable.class);
+//        job.getConfiguration().setInt(P3ForPathMergeVertex.KMER_SIZE, 3);
+//        job.getConfiguration().setFloat(P3ForPathMergeVertex.PSEUDORATE, 0.3f);
+//        job.getConfiguration().setInt(P3ForPathMergeVertex.MAXROUND, 2);
+//        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+//    }
+//
+//    private static void genP3ForMergeGraph() throws IOException {
+//        generateP3ForMergeGraphJob("P3ForMergeGraph", outputBase
+//                + "P3ForMergeGraph.xml");
+//    }
+    
+    private static void generateP4ForMergeGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(P4ForPathMergeVertex.class);
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(P4ForPathMergeVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genP4ForMergeGraph() throws IOException {
+        generateP4ForMergeGraphJob("P4ForMergeGraph", outputBase
+                + "P4ForMergeGraph.xml");
+    }
+    
+    private static void generateRemoveLowCoverageGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(RemoveLowCoverageVertex.class);
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(RemoveLowCoverageVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genRemoveLowCoverageGraph() throws IOException {
+        generateRemoveLowCoverageGraphJob("RemoveLowCoverageGraph", outputBase
+                + "RemoveLowCoverageGraph.xml");
+    }
+    
+    private static void generateTipAddGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(TipAddVertex.class);
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(TipAddVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genTipAddGraph() throws IOException {
+        generateTipAddGraphJob("TipAddGraph", outputBase
+                + "TipAddGraph.xml");
+    }
+    
+    private static void generateTipRemoveGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(TipRemoveVertex.class);
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(TipRemoveVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genTipRemoveGraph() throws IOException {
+        generateTipRemoveGraphJob("TipRemoveGraph", outputBase
+                + "TipRemoveGraph.xml");
+    }
+    
+    private static void generateSplitRepeatGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(SplitRepeatVertex.class);
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class); 
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(SplitRepeatVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genSplitRepeatGraph() throws IOException {
+        generateSplitRepeatGraphJob("SplitRepeatGraph", outputBase + "SplitRepeatGraph.xml");
+    }
+    
+    
+    private static void generateBridgeAddGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(BridgeAddVertex.class);
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(BridgeAddVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genBridgeAddGraph() throws IOException {
+        generateBridgeAddGraphJob("BridgeAddGraph", outputBase
+                + "BridgeAddGraph.xml");
+    }
+
+    private static void generateBridgeRemoveGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(BridgeRemoveVertex.class);
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(TipRemoveVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genBridgeRemoveGraph() throws IOException {
+        generateBridgeRemoveGraphJob("BridgeRemoveGraph", outputBase
+                + "BridgeRemoveGraph.xml");
+    }
+    
+    private static void generateBubbleAddGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(BubbleAddVertex.class);
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(BubbleAddVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genBubbleAddGraph() throws IOException {
+        generateBubbleAddGraphJob("BubbleAddGraph", outputBase
+                + "BubbleAddGraph.xml");
+    }
+    
+    private static void generateBubbleMergeGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(BubbleMergeVertex.class);
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(BubbleMergeVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genBubbleMergeGraph() throws IOException {
+        generateBubbleMergeGraphJob("BubbleMergeGraph", outputBase
+                + "BubbleMergeGraph.xml");
+    }
+    
+    private static void generateScaffoldingGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(ScaffoldingVertex.class);
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(ScaffoldingVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genScaffoldingGraph() throws IOException {
+        generateScaffoldingGraphJob("ScaffoldingGraph", outputBase
+                + "ScaffoldingGraph.xml");
+    }
+    
+    public static void main(String[] args) throws IOException {
+        genMapReduceGraph();
+        genLogAlgorithmForMergeGraph();
+        genP4ForMergeGraph();
+        genRemoveLowCoverageGraph();
+        genTipAddGraph();
+        genTipRemoveGraph();
+        genBridgeAddGraph();
+        genBridgeRemoveGraph();
+        genBubbleAddGraph();
+        genBubbleMergeGraph();
+        genSplitRepeatGraph();
+        genScaffoldingGraph();
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BasicSmallTestCase.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BasicSmallTestCase.java
new file mode 100644
index 0000000..70ac94f
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BasicSmallTestCase.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import junit.framework.TestCase;
+
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
+import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
+import org.junit.Test;
+
+import edu.uci.ics.genomix.pregelix.graph.GenerateGraphViz;
+import edu.uci.ics.genomix.pregelix.sequencefile.GenerateTextFile;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+import edu.uci.ics.pregelix.core.base.IDriver.Plan;
+import edu.uci.ics.pregelix.core.driver.Driver;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+public class BasicSmallTestCase extends TestCase {
+    private final PregelixJob job;
+    private final String resultFileDir;
+    private final String textFileDir;
+    private final String graphvizFileDir;
+    private final String jobFile;
+    private final Driver driver = new Driver(this.getClass());
+    private final FileSystem dfs;
+
+    public BasicSmallTestCase(String hadoopConfPath, String jobName, String jobFile, FileSystem dfs,
+            String hdfsInput, String resultFile, String textFile, String graphvizFile) throws Exception {
+        super("test");
+        this.jobFile = jobFile;
+        this.job = new PregelixJob("test");
+        this.job.getConfiguration().addResource(new Path(jobFile));
+        this.job.getConfiguration().addResource(new Path(hadoopConfPath));
+        FileInputFormat.setInputPaths(job, hdfsInput);
+        FileOutputFormat.setOutputPath(job, new Path(hdfsInput + "_result"));
+        job.setJobName(jobName);
+        this.resultFileDir = resultFile;
+        this.textFileDir = textFile;
+        this.graphvizFileDir = graphvizFile;
+
+        this.dfs = dfs;
+    }
+
+    private void waitawhile() throws InterruptedException {
+        synchronized (this) {
+            this.wait(20);
+        }
+    }
+
+    @Test
+    public void test() throws Exception {
+        setUp();
+        Plan[] plans = new Plan[] { Plan.OUTER_JOIN };
+        for (Plan plan : plans) {
+            driver.runJob(job, plan, PregelixHyracksIntegrationUtil.CC_HOST,
+                    PregelixHyracksIntegrationUtil.TEST_HYRACKS_CC_CLIENT_PORT, false);
+        }
+        compareResults();
+        tearDown();
+        waitawhile();
+    }
+
+    private void compareResults() throws Exception {
+        dfs.copyToLocalFile(FileOutputFormat.getOutputPath(job), new Path(resultFileDir));
+        GenerateTextFile.generateFromPathmergeResult(3, resultFileDir, textFileDir);
+        GenerateGraphViz.convertGraphCleanOutputToGraphViz(resultFileDir, graphvizFileDir);
+    }
+
+    public String toString() {
+        return jobFile;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BridgeAddSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BridgeAddSmallTestSuite.java
new file mode 100644
index 0000000..c492d1e
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BridgeAddSmallTestSuite.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class BridgeAddSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(BridgeAddSmallTestSuite.class.getName());
+
+    public static final String PreFix = "data/AddBridge"; 
+    public static final String[] TestDir = { PreFix + File.separator
+    + "SimpleTest"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/bridgeadd";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_bridgeadd.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 2;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        BridgeAddSmallTestSuite testSuite = new BridgeAddSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BridgeRemoveSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BridgeRemoveSmallTestSuite.java
new file mode 100644
index 0000000..8d22e9a
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BridgeRemoveSmallTestSuite.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class BridgeRemoveSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(BridgeRemoveSmallTestSuite.class.getName());
+
+    public static final String PreFix = "data/actual/bridgeadd/BridgeAddGraph/bin"; 
+    public static final String[] TestDir = { PreFix + File.separator
+    + "SimpleTest"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/bridgeremove";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_bridgeremove.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 2;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        BridgeRemoveSmallTestSuite testSuite = new BridgeRemoveSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BubbleAddSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BubbleAddSmallTestSuite.java
new file mode 100644
index 0000000..1e5df13
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BubbleAddSmallTestSuite.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class BubbleAddSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(BubbleAddSmallTestSuite.class.getName());
+
+    public static final String PreFix = "data/PathMergeTestSet"; 
+    public static final String[] TestDir = { PreFix + File.separator
+    + "5"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/bubbleadd";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_bubbleadd.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 2;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        BubbleAddSmallTestSuite testSuite = new BubbleAddSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BubbleMergeSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BubbleMergeSmallTestSuite.java
new file mode 100644
index 0000000..21020ce
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BubbleMergeSmallTestSuite.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class BubbleMergeSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(BubbleMergeSmallTestSuite.class.getName());
+
+    public static final String PreFix = "data/actual/bubbleadd/BubbleAddGraph/bin"; 
+    public static final String[] TestDir = { PreFix + File.separator
+    + "5"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/bubblemerge";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_bubblemerge.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 2;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        BubbleMergeSmallTestSuite testSuite = new BubbleMergeSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeSmallTestSuite.java
new file mode 100644
index 0000000..7b937c8
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeSmallTestSuite.java
@@ -0,0 +1,208 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class PathMergeSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(PathMergeSmallTestSuite.class.getName());
+
+    public static final String PreFix = "data/PathMergeTestSet"; //"graphbuildresult";
+    public static final String[] TestDir = { PreFix + File.separator
+    + "2", PreFix + File.separator
+    + "3", PreFix + File.separator
+    + "4", PreFix + File.separator
+    + "5", PreFix + File.separator
+    + "6", PreFix + File.separator
+    + "7", PreFix + File.separator
+    + "8", PreFix + File.separator
+    + "9"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/pathmerge";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_pathmerge.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 2;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        PathMergeSmallTestSuite testSuite = new PathMergeSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/RemoveLowCoverageSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/RemoveLowCoverageSmallTestSuite.java
new file mode 100644
index 0000000..9a7d99e
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/RemoveLowCoverageSmallTestSuite.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class RemoveLowCoverageSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(RemoveLowCoverageSmallTestSuite.class.getName());
+
+    public static final String PreFix = "data/PathMergeTestSet"; //"graphbuildresult";
+    public static final String[] TestDir = { PreFix + File.separator
+    + "5"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/removelowcoverage";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_removelowcoverage.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 2;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        RemoveLowCoverageSmallTestSuite testSuite = new RemoveLowCoverageSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/ScaffoldingSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/ScaffoldingSmallTestSuite.java
new file mode 100644
index 0000000..c8d12dc
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/ScaffoldingSmallTestSuite.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class ScaffoldingSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(ScaffoldingSmallTestSuite.class.getName());
+    //P4ForMergeGraph/bin/read
+    public static final String PreFix = "data/actual/pathmerge/P4ForMergeGraph/bin"; 
+    public static final String[] TestDir = { PreFix + File.separator
+    + "2"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/scaffolding";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_scaffolding.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 1;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        ScaffoldingSmallTestSuite testSuite = new ScaffoldingSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/SplitRepeatSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/SplitRepeatSmallTestSuite.java
new file mode 100644
index 0000000..e3a33fa
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/SplitRepeatSmallTestSuite.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class SplitRepeatSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(SplitRepeatSmallTestSuite.class.getName());
+    //P4ForMergeGraph/bin/read
+    public static final String PreFix = "data/SplitRepeat"; 
+    public static final String[] TestDir = { PreFix + File.separator
+    + "SplitOnce", PreFix + File.separator
+    + "SplitTwice"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/splitrepeat";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_splitrepeat.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 1;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        SplitRepeatSmallTestSuite testSuite = new SplitRepeatSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/TipAddSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/TipAddSmallTestSuite.java
new file mode 100644
index 0000000..b2d02c8
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/TipAddSmallTestSuite.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class TipAddSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(TipAddSmallTestSuite.class.getName());
+
+    public static final String PreFix = "data/PathMergeTestSet"; //"graphbuildresult";
+    public static final String[] TestDir = { PreFix + File.separator
+    + "5"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/tipadd";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_tipadd.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 2;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        TipAddSmallTestSuite testSuite = new TipAddSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/TipRemoveSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/TipRemoveSmallTestSuite.java
new file mode 100644
index 0000000..b4514d6
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/TipRemoveSmallTestSuite.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class TipRemoveSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(TipRemoveSmallTestSuite.class.getName());
+    //P4ForMergeGraph/bin/read
+    public static final String PreFix = "data/actual/tipadd/TipAddGraph/bin";
+    public static final String[] TestDir = { PreFix + File.separator
+    + "5"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/tipremove";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_tipremove.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 2;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        TipRemoveSmallTestSuite testSuite = new TipRemoveSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/ResultGen/ReportGenerator.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/ResultGen/ReportGenerator.java
new file mode 100644
index 0000000..f5f42fc
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/ResultGen/ReportGenerator.java
@@ -0,0 +1,53 @@
+package edu.uci.ics.genomix.pregelix.ResultGen;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.text.DecimalFormat;
+
+import org.apache.commons.io.FileUtils;
+
+public class ReportGenerator {
+    public static final String PATH_TO_REPORT = "report";
+    public static final String PATH_TO_LOGINFO = "log";
+
+    public static void generateReportFromLoginfo(String fileName) throws Exception {
+        DecimalFormat df = new DecimalFormat("0.0000");
+        BufferedReader br = new BufferedReader(new FileReader(PATH_TO_LOGINFO + "/" + fileName));
+        BufferedWriter bw = new BufferedWriter(new FileWriter(new File(PATH_TO_REPORT + "/" + fileName)));
+        String line;
+        int i = 0;
+        double totalTime = 0;
+        line = br.readLine();
+        do {
+            line = br.readLine();
+            String[] tokens = line.split(" ");
+            for (i = 1; i < tokens.length - 1; i++) {
+                bw.write(tokens[i] + " ");
+            }
+            String subString = tokens[i].substring(0, tokens[i].length() - 2);
+            double ms = Double.parseDouble(subString) / 60000;
+            totalTime += ms;
+            bw.write(df.format(ms) + "m");
+            bw.newLine();
+        } while ((line = br.readLine()) != null);
+        bw.write("The total time is " + df.format(totalTime) + "m");
+        bw.close();
+        br.close();
+    }
+
+    public static void main(String[] args) throws Exception {
+        FileUtils.forceMkdir(new File(PATH_TO_REPORT));
+        FileUtils.cleanDirectory(new File(PATH_TO_REPORT));
+        generateReportFromLoginfo("log_nc4");
+        generateReportFromLoginfo("log_nc8");
+        generateReportFromLoginfo("naive_nc4");
+        generateReportFromLoginfo("naive_nc4_vertex16");
+        generateReportFromLoginfo("log_nc4_vertex16");
+        generateReportFromLoginfo("naive_nc8_outerjoin");
+        generateReportFromLoginfo("naive_nc8_outerjoin_2");
+        generateReportFromLoginfo("naive_nc8_innerjoin");
+    }
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/example/util/TestUtils.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/example/util/TestUtils.java
new file mode 100644
index 0000000..8ac1b09
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/example/util/TestUtils.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.example.util;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+
+public class TestUtils {
+
+    public static void compareWithResultDir(File expectedFileDir, File actualFileDir) throws Exception {
+        String[] fileNames = expectedFileDir.list();
+        for (String fileName : fileNames) {
+            compareWithResult(new File(expectedFileDir, fileName), new File(actualFileDir, fileName));
+        }
+    }
+
+    public static void compareWithResult(File expectedFile, File actualFile) throws Exception {
+        BufferedReader readerExpected = new BufferedReader(new FileReader(expectedFile));
+        BufferedReader readerActual = new BufferedReader(new FileReader(actualFile));
+        String lineExpected, lineActual;
+        int num = 1;
+        try {
+            while ((lineExpected = readerExpected.readLine()) != null) {
+                lineActual = readerActual.readLine();
+                if (lineActual == null) {
+                    throw new Exception("Actual result changed at line " + num + ":\n< " + lineExpected + "\n> ");
+                }
+                if (!equalStrings(lineExpected, lineActual)) {
+                    throw new Exception("Result for changed at line " + num + ":\n< " + lineExpected + "\n> "
+                            + lineActual);
+                }
+                ++num;
+            }
+            lineActual = readerActual.readLine();
+            if (lineActual != null) {
+                throw new Exception("Actual result changed at line " + num + ":\n< \n> " + lineActual);
+            }
+        } finally {
+            readerExpected.close();
+            readerActual.close();
+        }
+    }
+
+    private static boolean equalStrings(String s1, String s2) {
+        String[] rowsOne = s1.split("\n");
+        String[] rowsTwo = s2.split("\n");
+
+        if (rowsOne.length != rowsTwo.length)
+            return false;
+
+        for (int i = 0; i < rowsOne.length; i++) {
+            String row1 = rowsOne[i];
+            String row2 = rowsTwo[i];
+
+            if (row1.equals(row2))
+                continue;
+
+            boolean spaceOrTab = false;
+            spaceOrTab = row1.contains(" ");
+            String[] fields1 = spaceOrTab ? row1.split(" ") : row1.split("\t");
+            String[] fields2 = spaceOrTab ? row2.split(" ") : row2.split("\t");
+
+            for (int j = 0; j < fields1.length; j++) {
+                if (fields1[j].equals(fields2[j])) {
+                    continue;
+                } else if (fields1[j].indexOf('.') < 0) {
+                    return false;
+                } else {
+                    Double double1 = Double.parseDouble(fields1[j]);
+                    Double double2 = Double.parseDouble(fields2[j]);
+                    float float1 = (float) double1.doubleValue();
+                    float float2 = (float) double2.doubleValue();
+
+                    if (Math.abs(float1 - float2) < 1.0e-7)
+                        continue;
+                    else {
+                        return false;
+                    }
+                }
+            }
+        }
+        return true;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/CompareTest.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/CompareTest.java
new file mode 100644
index 0000000..0a2ae92
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/CompareTest.java
@@ -0,0 +1,19 @@
+package edu.uci.ics.genomix.pregelix.pathmerge;
+
+import java.io.File;
+
+import org.junit.Test;
+
+import edu.uci.ics.genomix.pregelix.example.util.TestUtils;
+
+public class CompareTest {
+    public static final String PATH_TO_TESTSTORE = "testcase/pathmerge";
+    public static final String CHAIN_OUTPUT = PATH_TO_TESTSTORE + "chain";
+
+    @Test
+    public void test() throws Exception {
+        File naive = new File(CHAIN_OUTPUT + "/naive-sort");
+        File log = new File(CHAIN_OUTPUT + "/log-sort");
+        TestUtils.compareWithResult(naive, log);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/MergePathTest.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/MergePathTest.java
new file mode 100644
index 0000000..9daeaa3
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/MergePathTest.java
@@ -0,0 +1,134 @@
+package edu.uci.ics.genomix.pregelix.pathmerge;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.io.SequenceFile;
+import org.junit.Test;
+
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.type.State2;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class MergePathTest {
+    public static final String PATH_TO_TESTSTORE = "testcase/pathmerge/";
+    public static final String NAIVE_DATA_INPUT = "genomix_result/p1_nc4_16vertex";
+    public static final String LOG_DATA_INPUT = "genomix_result/p2_nc4_16vertex";
+    public static final String TEXT_OUTPUT = PATH_TO_TESTSTORE + "textfile";
+    public static final String CHAIN_OUTPUT = PATH_TO_TESTSTORE + "chain";
+
+    private static int nc = 4;
+    private static int kmerSize = 55;
+
+    //private static int maxLength = 102; 
+
+    @Test
+    public void test() throws Exception {
+        FileUtils.forceMkdir(new File(PATH_TO_TESTSTORE));
+        FileUtils.cleanDirectory(new File(PATH_TO_TESTSTORE));
+        FileUtils.forceMkdir(new File(TEXT_OUTPUT));
+        FileUtils.cleanDirectory(new File(TEXT_OUTPUT));
+        FileUtils.forceMkdir(new File(CHAIN_OUTPUT));
+        FileUtils.cleanDirectory(new File(CHAIN_OUTPUT));
+        generateTextFromPathmergeResult(NAIVE_DATA_INPUT, TEXT_OUTPUT, "/naive");
+        generateTextFromPathmergeResult(LOG_DATA_INPUT, TEXT_OUTPUT, "/log");
+        //generateSpecificLengthChainFromNaivePathmergeResult(NAIVE_DATA_INPUT, CHAIN_OUTPUT, maxLength);
+        //generateSpecificLengthChainFromLogPathmergeResult(LOG_DATA_INPUT, CHAIN_OUTPUT, maxLength);
+    }
+
+    public static void generateTextFromPathmergeResult(String input, String outputDir, String fileName)
+            throws IOException {
+        BufferedWriter bw = new BufferedWriter(new FileWriter(new File(outputDir + fileName)));
+        Configuration conf = new Configuration();
+        FileSystem fileSys = FileSystem.get(conf);
+        for (int i = 0; i < nc; i++) {
+            Path path = new Path(input + "/part-" + i);
+            SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, path, conf);
+            VKmerBytesWritable key = new VKmerBytesWritable(kmerSize);
+            VertexValueWritable value = new VertexValueWritable();
+
+            while (reader.next(key, value)) {
+                if (key == null || value == null) {
+                    break;
+                }
+                if (value.getState() == State2.FINAL_VERTEX) {
+                    /*bw.write(value.getMergeChain().toString()
+                    		+ "\t" + GeneCode.getSymbolFromBitMap(value.getAdjMap()));
+                    bw.newLine();*/
+                    bw.write(key.toString() + "\t" + value.toString());
+                    bw.newLine();
+                }
+                //if(value.getLengthOfMergeChain() != 0
+                //		&& value.getLengthOfMergeChain() != -1
+                //		&& value.getState() == State.FINAL_VERTEX){
+                //bw.write(key.toString() + "\t" + 
+                //	value.toString());
+                //bw.write(value.getLengthOfMergeChain() + "\t" +
+                //		value.getMergeChain().toString() + "\t" +
+                //		GeneCode.getSymbolFromBitMap(value.getAdjMap()) + "\t" +
+                //		key.toString());
+                //value.getState());
+
+                //}
+            }
+            reader.close();
+        }
+        bw.close();
+    }
+
+    public static void generateSpecificLengthChainFromNaivePathmergeResult(String input, String output, int maxLength)
+            throws IOException {
+        BufferedWriter bw = new BufferedWriter(new FileWriter(new File(output + "/naive")));
+        Configuration conf = new Configuration();
+        FileSystem fileSys = FileSystem.get(conf);
+        for (int i = 0; i < nc; i++) {
+            Path path = new Path(input + "/part-" + i);
+            SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, path, conf);
+            VKmerBytesWritable key = new VKmerBytesWritable(kmerSize);
+            VertexValueWritable value = new VertexValueWritable();
+
+            while (reader.next(key, value)) {
+                if (key == null || value == null) {
+                    break;
+                }
+                /*if (value.getLengthOfMergeChain() <= maxLength && value.getLengthOfMergeChain() != kmerSize) {
+                    bw.write(value.getLengthOfMergeChain() + "\t" + value.getMergeChain().toString());
+                    bw.newLine();
+                }*/
+            }
+            reader.close();
+        }
+        bw.close();
+    }
+
+    public static void generateSpecificLengthChainFromLogPathmergeResult(String input, String output, int maxLength)
+            throws IOException {
+        BufferedWriter bw = new BufferedWriter(new FileWriter(new File(output + "/log")));
+        Configuration conf = new Configuration();
+        FileSystem fileSys = FileSystem.get(conf);
+        for (int i = 0; i < nc; i++) {
+            Path path = new Path(input + "/part-" + i);
+            SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, path, conf);
+            VKmerBytesWritable key = new VKmerBytesWritable(kmerSize);
+            VertexValueWritable value = new VertexValueWritable();
+
+            while (reader.next(key, value)) {
+                if (key == null || value == null) {
+                    break;
+                }
+               /* if (value.getLengthOfMergeChain() <= maxLength && value.getState() == State.FINAL_VERTEX) {
+                    bw.write(value.getLengthOfMergeChain() + "\t" + value.getMergeChain().toString());
+                    bw.newLine();
+                }*/
+            }
+            reader.close();
+        }
+        bw.close();
+    }
+}
diff --git a/genomix/genomix-pregelix/src/test/resources/cluster/cluster.properties b/genomix/genomix-pregelix/src/test/resources/cluster/cluster.properties
new file mode 100644
index 0000000..0c6abd1
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/cluster/cluster.properties
@@ -0,0 +1,37 @@
+#The CC port for Hyracks clients
+CC_CLIENTPORT=3099
+
+#The CC port for Hyracks cluster management
+CC_CLUSTERPORT=1099
+
+#The directory of hyracks binaries
+HYRACKS_HOME=../../../../hyracks
+
+#The tmp directory for cc to install jars
+CCTMP_DIR=/tmp/t1
+
+#The tmp directory for nc to install jars
+NCTMP_DIR=/tmp/t2
+
+#The directory to put cc logs
+CCLOGS_DIR=$CCTMP_DIR/logs
+
+#The directory to put nc logs
+NCLOGS_DIR=$NCTMP_DIR/logs
+
+#Comma separated I/O directories for the spilling of external sort
+IO_DIRS="/tmp/t3,/tmp/t4,/tmp/t5,/tmp/t6"
+
+#The JAVA_HOME
+JAVA_HOME=$JAVA_HOME
+
+#The frame size of the internal dataflow engine
+FRAME_SIZE=131072
+
+#CC JAVA_OPTS
+CCJAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7001,server=y,suspend=n -Xmx3g -Djava.util.logging.config.file=logging.properties"
+# Yourkit option: -agentpath:/grid/0/dev/vborkar/tools/yjp-10.0.4/bin/linux-x86-64/libyjpagent.so=port=20001"
+
+#NC JAVA_OPTS
+NCJAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7002,server=y,suspend=n -Xmx3g -Djava.util.logging.config.file=genomix-pregelix/src/test/resources/logging.properties"
+
diff --git a/genomix/genomix-pregelix/src/test/resources/cluster/stores.properties b/genomix/genomix-pregelix/src/test/resources/cluster/stores.properties
new file mode 100644
index 0000000..2daf1ee
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/cluster/stores.properties
@@ -0,0 +1 @@
+store=teststore1,teststore2,teststore3,teststore4,
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/src/test/resources/data/webmap/text.txt b/genomix/genomix-pregelix/src/test/resources/data/webmap/text.txt
new file mode 100755
index 0000000..01c49e5
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/data/webmap/text.txt
@@ -0,0 +1,6 @@
+1	AATAGAAG
+2	AATAGCTT
+3	AATAGAAG
+4	AATAGCTT
+5	AATAGAAG
+6	AGAAGAAG
diff --git a/genomix/genomix-pregelix/src/test/resources/hadoop/conf/core-site.xml b/genomix/genomix-pregelix/src/test/resources/hadoop/conf/core-site.xml
new file mode 100644
index 0000000..47dfac5
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/hadoop/conf/core-site.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+<property>
+    <name>fs.default.name</name>
+    <value>hdfs://127.0.0.1:31888</value>
+</property>
+<property>
+    <name>hadoop.tmp.dir</name>
+    <value>/tmp/hadoop</value>
+</property>
+
+
+</configuration>
diff --git a/genomix/genomix-pregelix/src/test/resources/hadoop/conf/hdfs-site.xml b/genomix/genomix-pregelix/src/test/resources/hadoop/conf/hdfs-site.xml
new file mode 100644
index 0000000..a36b6d7
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/hadoop/conf/hdfs-site.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+<property>
+   <name>dfs.replication</name>
+   <value>1</value>
+</property>
+
+<property>
+	<name>dfs.block.size</name>
+	<value>655360</value>
+</property>
+
+</configuration>
diff --git a/genomix/genomix-pregelix/src/test/resources/hadoop/conf/log4j.properties b/genomix/genomix-pregelix/src/test/resources/hadoop/conf/log4j.properties
new file mode 100755
index 0000000..d5e6004
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/hadoop/conf/log4j.properties
@@ -0,0 +1,94 @@
+# Define some default values that can be overridden by system properties
+hadoop.root.logger=FATAL,console
+hadoop.log.dir=.
+hadoop.log.file=hadoop.log
+
+# Define the root logger to the system property "hadoop.root.logger".
+log4j.rootLogger=${hadoop.root.logger}, EventCounter
+
+# Logging Threshold
+log4j.threshhold=FATAL
+
+#
+# Daily Rolling File Appender
+#
+
+log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Rollver at midnight
+log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
+
+# 30-day backup
+#log4j.appender.DRFA.MaxBackupIndex=30
+log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
+
+# Pattern format: Date LogLevel LoggerName LogMessage
+log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+# Debugging Pattern format
+#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+
+#
+# console
+# Add "console" to rootlogger above if you want to use this 
+#
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.target=System.err
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
+
+#
+# TaskLog Appender
+#
+
+#Default values
+hadoop.tasklog.taskid=null
+hadoop.tasklog.noKeepSplits=4
+hadoop.tasklog.totalLogFileSize=100
+hadoop.tasklog.purgeLogSplits=true
+hadoop.tasklog.logsRetainHours=12
+
+log4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender
+log4j.appender.TLA.taskId=${hadoop.tasklog.taskid}
+log4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}
+
+log4j.appender.TLA.layout=org.apache.log4j.PatternLayout
+log4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+
+#
+# Rolling File Appender
+#
+
+#log4j.appender.RFA=org.apache.log4j.RollingFileAppender
+#log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Logfile size and and 30-day backups
+#log4j.appender.RFA.MaxFileSize=1MB
+#log4j.appender.RFA.MaxBackupIndex=30
+
+#log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+#
+# FSNamesystem Audit logging
+# All audit events are logged at INFO level
+#
+log4j.logger.org.apache.hadoop.fs.FSNamesystem.audit=WARN
+
+# Custom Logging levels
+
+#log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG
+#log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG
+#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
+
+# Jets3t library
+log4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR
+
+#
+# Event Counter Appender
+# Sends counts of logging messages at different severity levels to Hadoop Metrics.
+#
+log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
diff --git a/genomix/genomix-pregelix/src/test/resources/hadoop/conf/mapred-site.xml b/genomix/genomix-pregelix/src/test/resources/hadoop/conf/mapred-site.xml
new file mode 100644
index 0000000..f75b072
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/hadoop/conf/mapred-site.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+  <property>
+    <name>mapred.job.tracker</name>
+    <value>localhost:29007</value>
+  </property>
+  <property>
+     <name>mapred.tasktracker.map.tasks.maximum</name>
+     <value>20</value>
+  </property>
+   <property>
+      <name>mapred.tasktracker.reduce.tasks.maximum</name>
+      <value>20</value>
+   </property>
+   <property>
+      <name>mapred.max.split.size</name>
+      <value>128000</value>
+   </property>
+
+</configuration>
diff --git a/genomix/genomix-pregelix/src/test/resources/hyracks-deployment.properties b/genomix/genomix-pregelix/src/test/resources/hyracks-deployment.properties
new file mode 100644
index 0000000..9c42b89
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/hyracks-deployment.properties
@@ -0,0 +1,2 @@
+#cc.bootstrap.class=edu.uci.ics.asterix.hyracks.bootstrap.CCBootstrapImpl
+nc.bootstrap.class=edu.uci.ics.pregelix.runtime.bootstrap.NCBootstrapImpl
diff --git a/genomix/genomix-pregelix/src/test/resources/ignore.txt b/genomix/genomix-pregelix/src/test/resources/ignore.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/ignore.txt
diff --git a/genomix/genomix-pregelix/src/test/resources/log4j.properties b/genomix/genomix-pregelix/src/test/resources/log4j.properties
new file mode 100755
index 0000000..d5e6004
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/log4j.properties
@@ -0,0 +1,94 @@
+# Define some default values that can be overridden by system properties
+hadoop.root.logger=FATAL,console
+hadoop.log.dir=.
+hadoop.log.file=hadoop.log
+
+# Define the root logger to the system property "hadoop.root.logger".
+log4j.rootLogger=${hadoop.root.logger}, EventCounter
+
+# Logging Threshold
+log4j.threshhold=FATAL
+
+#
+# Daily Rolling File Appender
+#
+
+log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Rollver at midnight
+log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
+
+# 30-day backup
+#log4j.appender.DRFA.MaxBackupIndex=30
+log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
+
+# Pattern format: Date LogLevel LoggerName LogMessage
+log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+# Debugging Pattern format
+#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+
+#
+# console
+# Add "console" to rootlogger above if you want to use this 
+#
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.target=System.err
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
+
+#
+# TaskLog Appender
+#
+
+#Default values
+hadoop.tasklog.taskid=null
+hadoop.tasklog.noKeepSplits=4
+hadoop.tasklog.totalLogFileSize=100
+hadoop.tasklog.purgeLogSplits=true
+hadoop.tasklog.logsRetainHours=12
+
+log4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender
+log4j.appender.TLA.taskId=${hadoop.tasklog.taskid}
+log4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}
+
+log4j.appender.TLA.layout=org.apache.log4j.PatternLayout
+log4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+
+#
+# Rolling File Appender
+#
+
+#log4j.appender.RFA=org.apache.log4j.RollingFileAppender
+#log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Logfile size and and 30-day backups
+#log4j.appender.RFA.MaxFileSize=1MB
+#log4j.appender.RFA.MaxBackupIndex=30
+
+#log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+#
+# FSNamesystem Audit logging
+# All audit events are logged at INFO level
+#
+log4j.logger.org.apache.hadoop.fs.FSNamesystem.audit=WARN
+
+# Custom Logging levels
+
+#log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG
+#log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG
+#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
+
+# Jets3t library
+log4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR
+
+#
+# Event Counter Appender
+# Sends counts of logging messages at different severity levels to Hadoop Metrics.
+#
+log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
diff --git a/genomix/genomix-pregelix/src/test/resources/logging.properties b/genomix/genomix-pregelix/src/test/resources/logging.properties
new file mode 100644
index 0000000..0ed3dfc
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/logging.properties
@@ -0,0 +1,67 @@
+############################################################
+#  	Default Logging Configuration File
+#
+# You can use a different file by specifying a filename
+# with the java.util.logging.config.file system property.  
+# For example java -Djava.util.logging.config.file=myfile
+############################################################
+
+############################################################
+#  	Global properties
+############################################################
+
+# "handlers" specifies a comma separated list of log Handler 
+# classes.  These handlers will be installed during VM startup.
+# Note that these classes must be on the system classpath.
+# By default we only configure a ConsoleHandler, which will only
+# show messages at the INFO and above levels.
+
+handlers= java.util.logging.ConsoleHandler
+
+# To also add the FileHandler, use the following line instead.
+
+# handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
+
+# Default global logging level.
+# This specifies which kinds of events are logged across
+# all loggers.  For any given facility this global level
+# can be overriden by a facility specific level
+# Note that the ConsoleHandler also has a separate level
+# setting to limit messages printed to the console.
+
+.level= SEVERE
+# .level= INFO
+# .level= FINE
+# .level = FINEST
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+# default file output is in user's home directory.
+
+# java.util.logging.FileHandler.pattern = %h/java%u.log
+# java.util.logging.FileHandler.limit = 50000
+# java.util.logging.FileHandler.count = 1
+# java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
+
+# Limit the message that are printed on the console to FINE and above.
+
+java.util.logging.ConsoleHandler.level = FINEST
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages:
+
+edu.uci.ics.genomix.pregelix = INFO
+#edu.uci.ics.asterix.level = FINE
+#edu.uci.ics.algebricks.level = FINE
+edu.uci.ics.hyracks.level = SEVERE
+#edu.uci.ics.hyracks.control.nc.net.level = FINE
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/src/test/resources/only.txt b/genomix/genomix-pregelix/src/test/resources/only.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only.txt
diff --git a/genomix/genomix-pregelix/src/test/resources/only_bridgeadd.txt b/genomix/genomix-pregelix/src/test/resources/only_bridgeadd.txt
new file mode 100644
index 0000000..f172e3c
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_bridgeadd.txt
@@ -0,0 +1 @@
+BridgeAddGraph.xml
diff --git a/genomix/genomix-pregelix/src/test/resources/only_bridgeremove.txt b/genomix/genomix-pregelix/src/test/resources/only_bridgeremove.txt
new file mode 100644
index 0000000..53537cb
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_bridgeremove.txt
@@ -0,0 +1 @@
+BridgeRemoveGraph.xml
diff --git a/genomix/genomix-pregelix/src/test/resources/only_bubbleadd.txt b/genomix/genomix-pregelix/src/test/resources/only_bubbleadd.txt
new file mode 100644
index 0000000..a4c7fc8
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_bubbleadd.txt
@@ -0,0 +1 @@
+BubbleAddGraph.xml
diff --git a/genomix/genomix-pregelix/src/test/resources/only_bubblemerge.txt b/genomix/genomix-pregelix/src/test/resources/only_bubblemerge.txt
new file mode 100644
index 0000000..417161c
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_bubblemerge.txt
@@ -0,0 +1 @@
+BubbleMergeGraph.xml
diff --git a/genomix/genomix-pregelix/src/test/resources/only_pathmerge.txt b/genomix/genomix-pregelix/src/test/resources/only_pathmerge.txt
new file mode 100644
index 0000000..3d007d2
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_pathmerge.txt
@@ -0,0 +1 @@
+P4ForMergeGraph.xml
diff --git a/genomix/genomix-pregelix/src/test/resources/only_removelowcoverage.txt b/genomix/genomix-pregelix/src/test/resources/only_removelowcoverage.txt
new file mode 100644
index 0000000..77ff8f0
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_removelowcoverage.txt
@@ -0,0 +1 @@
+RemoveLowCoverageGraph.xml
diff --git a/genomix/genomix-pregelix/src/test/resources/only_scaffolding.txt b/genomix/genomix-pregelix/src/test/resources/only_scaffolding.txt
new file mode 100644
index 0000000..fed8efd
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_scaffolding.txt
@@ -0,0 +1 @@
+ScaffoldingGraph.xml
diff --git a/genomix/genomix-pregelix/src/test/resources/only_splitrepeat.txt b/genomix/genomix-pregelix/src/test/resources/only_splitrepeat.txt
new file mode 100644
index 0000000..41cba34
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_splitrepeat.txt
@@ -0,0 +1 @@
+SplitRepeatGraph.xml
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/src/test/resources/only_tipadd.txt b/genomix/genomix-pregelix/src/test/resources/only_tipadd.txt
new file mode 100644
index 0000000..53eecdd
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_tipadd.txt
@@ -0,0 +1 @@
+TipAddGraph.xml
diff --git a/genomix/genomix-pregelix/src/test/resources/only_tipremove.txt b/genomix/genomix-pregelix/src/test/resources/only_tipremove.txt
new file mode 100644
index 0000000..7392b4e
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_tipremove.txt
@@ -0,0 +1 @@
+TipRemoveGraph.xml
diff --git a/genomix/genomix-pregelix/src/test/resources/topology.xml b/genomix/genomix-pregelix/src/test/resources/topology.xml
new file mode 100755
index 0000000..2a6c380
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/topology.xml
@@ -0,0 +1,7 @@
+<cluster-topology>
+    <network-switch name="Global">
+        <network-switch name="local">
+            <terminal name="127.1.0.1"/>
+        </network-switch>
+    </network-switch>
+</cluster-topology>
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/text/BridgePath/log_BridgePath b/genomix/genomix-pregelix/text/BridgePath/log_BridgePath
new file mode 100644
index 0000000..cab1281
--- /dev/null
+++ b/genomix/genomix-pregelix/text/BridgePath/log_BridgePath
@@ -0,0 +1,6 @@
+TTCCA	T|C
+CCGTG	CT|
+TCCAC	T|CT
+CCACC	T|G	9	CCACCCCGT	5
+TTTCC	|A
+CCACT	T|G	9	CCACTCCGT	5
diff --git a/genomix/genomix-pregelix/text/BridgePath/naive_BridgePath b/genomix/genomix-pregelix/text/BridgePath/naive_BridgePath
new file mode 100644
index 0000000..c669dba
--- /dev/null
+++ b/genomix/genomix-pregelix/text/BridgePath/naive_BridgePath
@@ -0,0 +1,6 @@
+TTCCA	T|C	5	TTCCA	1
+CCGTG	CT|
+TCCAC	T|CT
+CCACC	T|G	9	CCACCCCGT	1
+TTTCC	|A
+CCACT	T|C
diff --git a/genomix/genomix-pregelix/text/CyclePath/log_CyclePath b/genomix/genomix-pregelix/text/CyclePath/log_CyclePath
new file mode 100644
index 0000000..d0ee84f
--- /dev/null
+++ b/genomix/genomix-pregelix/text/CyclePath/log_CyclePath
@@ -0,0 +1,3 @@
+GCAAC	|T
+AACTT	C|T	12	AACTTCATCAAC	5
+CAACT	GT|T
diff --git a/genomix/genomix-pregelix/text/CyclePath/naive_CyclePath b/genomix/genomix-pregelix/text/CyclePath/naive_CyclePath
new file mode 100644
index 0000000..5cdb7c2
--- /dev/null
+++ b/genomix/genomix-pregelix/text/CyclePath/naive_CyclePath
@@ -0,0 +1,3 @@
+GCAAC	|T
+AACTT	C|T	12	AACTTCATCAAC	1
+CAACT	GT|T
diff --git a/genomix/genomix-pregelix/text/LongPath/log_LongPath b/genomix/genomix-pregelix/text/LongPath/log_LongPath
new file mode 100644
index 0000000..98cb21e
--- /dev/null
+++ b/genomix/genomix-pregelix/text/LongPath/log_LongPath
@@ -0,0 +1,3 @@
+GCCTC	G|G	15	GCCTCAGTACGCCCG	5
+CCCGG	G|
+GGCCT	|C
diff --git a/genomix/genomix-pregelix/text/LongPath/naive_LongPath b/genomix/genomix-pregelix/text/LongPath/naive_LongPath
new file mode 100644
index 0000000..c1a472e
--- /dev/null
+++ b/genomix/genomix-pregelix/text/LongPath/naive_LongPath
@@ -0,0 +1,3 @@
+GCCTC	G|G	15	GCCTCAGTACGCCCG	1
+CCCGG	G|
+GGCCT	|C
diff --git a/genomix/genomix-pregelix/text/Path/log_Path b/genomix/genomix-pregelix/text/Path/log_Path
new file mode 100644
index 0000000..3a46528
--- /dev/null
+++ b/genomix/genomix-pregelix/text/Path/log_Path
@@ -0,0 +1,3 @@
+GCCTC	G|G	10	GCCTCAGTAC	5
+GGCCT	|C
+GTACG	A|
diff --git a/genomix/genomix-pregelix/text/Path/naive_Path b/genomix/genomix-pregelix/text/Path/naive_Path
new file mode 100644
index 0000000..b8d2aeb
--- /dev/null
+++ b/genomix/genomix-pregelix/text/Path/naive_Path
@@ -0,0 +1,3 @@
+GCCTC	G|G	10	GCCTCAGTAC	1
+GGCCT	|C
+GTACG	A|
diff --git a/genomix/genomix-pregelix/text/SimplePath/log_SimplePath b/genomix/genomix-pregelix/text/SimplePath/log_SimplePath
new file mode 100644
index 0000000..5c149ac
--- /dev/null
+++ b/genomix/genomix-pregelix/text/SimplePath/log_SimplePath
@@ -0,0 +1,9 @@
+CGGCA	G|A	8	CGGCAAGA	5
+AGCAC	C|
+AAGAC	|A
+GCGGC	|A
+GCATC	C|
+ATATC	|G
+TATCG	A|C	8	TATCGCAT	5
+AAGAA	C|
+AGACA	A|C	8	AGACAGCA	5
diff --git a/genomix/genomix-pregelix/text/SimplePath/naive_SimplePath b/genomix/genomix-pregelix/text/SimplePath/naive_SimplePath
new file mode 100644
index 0000000..cf53cc8
--- /dev/null
+++ b/genomix/genomix-pregelix/text/SimplePath/naive_SimplePath
@@ -0,0 +1,9 @@
+CGGCA	G|A	8	CGGCAAGA	1
+AGCAC	C|
+AAGAC	|A
+GCGGC	|A
+GCATC	C|
+ATATC	|G
+TATCG	A|C	8	TATCGCAT	1
+AAGAA	C|
+AGACA	A|C	8	AGACAGCA	1
diff --git a/genomix/genomix-pregelix/text/SinglePath/log_SinglePath b/genomix/genomix-pregelix/text/SinglePath/log_SinglePath
new file mode 100644
index 0000000..f1371ec
--- /dev/null
+++ b/genomix/genomix-pregelix/text/SinglePath/log_SinglePath
@@ -0,0 +1,3 @@
+ACAGT	A|
+GACAA	A|T	8	GACAACAG	5
+AGACA	|A
diff --git a/genomix/genomix-pregelix/text/SinglePath/naive_SinglePath b/genomix/genomix-pregelix/text/SinglePath/naive_SinglePath
new file mode 100644
index 0000000..b736667
--- /dev/null
+++ b/genomix/genomix-pregelix/text/SinglePath/naive_SinglePath
@@ -0,0 +1,3 @@
+ACAGT	A|
+GACAA	A|T	8	GACAACAG	1
+AGACA	|A
diff --git a/genomix/genomix-pregelix/text/TreePath/log_TreePath b/genomix/genomix-pregelix/text/TreePath/log_TreePath
new file mode 100644
index 0000000..0b9f198
--- /dev/null
+++ b/genomix/genomix-pregelix/text/TreePath/log_TreePath
@@ -0,0 +1,9 @@
+CAGTA	T|AC
+AGTAC	C|G	10	AGTACGCCCG	5
+ATCCC	T|
+GCCTC	G|A	8	GCCTCAGT	5
+CCCGG	G|
+GGCCT	|CG
+AGTAA	C|C	10	AGTAACTAAA	5
+TAAAC	C|
+GCCTG	G|C	12	GCCTGGCTATCC	5
diff --git a/genomix/genomix-pregelix/text/TreePath/naive_TreePath b/genomix/genomix-pregelix/text/TreePath/naive_TreePath
new file mode 100644
index 0000000..39dcbaa
--- /dev/null
+++ b/genomix/genomix-pregelix/text/TreePath/naive_TreePath
@@ -0,0 +1,9 @@
+CAGTA	T|AC
+AGTAC	C|G	10	AGTACGCCCG	1
+ATCCC	T|
+GCCTC	G|A	8	GCCTCAGT	1
+CCCGG	G|
+GGCCT	|CG
+AGTAA	C|C	10	AGTAACTAAA	1
+TAAAC	C|
+GCCTG	G|C	12	GCCTGGCTATCC	1
diff --git a/genomix/pom.xml b/genomix/pom.xml
new file mode 100644
index 0000000..7876c8e
--- /dev/null
+++ b/genomix/pom.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>edu.uci.ics.hyracks</groupId>
+	<artifactId>genomix</artifactId>
+	<version>0.2.6-SNAPSHOT</version>
+    <packaging>pom</packaging>
+	<name>genomix</name>
+
+    <distributionManagement>
+		<repository>
+			<id>hyracks-releases</id>
+			<url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-releases/</url>
+		</repository>
+		<snapshotRepository>
+			<id>hyracks-snapshots</id>
+			<url>http://obelix.ics.uci.edu/nexus/content/repositories/hyracks-snapshots/</url>
+		</snapshotRepository>
+	</distributionManagement>
+
+	<repositories>
+		<repository>
+			<id>hyracks-public</id>
+			<url>http://obelix.ics.uci.edu/nexus/content/groups/hyracks-public/</url>
+		</repository>
+		<repository>
+			<id>jboss-public</id>
+			<url>https://repository.jboss.org/nexus/content/groups/public/</url>
+		</repository>
+	</repositories>
+
+	<pluginRepositories>
+		<pluginRepository>
+			<id>hyracks-public</id>
+			<url>http://obelix.ics.uci.edu/nexus/content/groups/hyracks-public/</url>
+			<releases>
+				<updatePolicy>always</updatePolicy>
+			</releases>
+		</pluginRepository>
+	</pluginRepositories>
+
+    <modules>
+        <module>genomix-data</module>
+        <module>genomix-hyracks</module>
+        <module>genomix-hadoop</module>
+	<module>genomix-pregelix</module>
+    </modules>
+</project>
diff --git a/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/partitions/MaterializingPipelinedPartition.java b/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/partitions/MaterializingPipelinedPartition.java
index 15db1fe..7c16be0 100644
--- a/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/partitions/MaterializingPipelinedPartition.java
+++ b/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/partitions/MaterializingPipelinedPartition.java
@@ -139,7 +139,7 @@
         if (LOGGER.isLoggable(Level.INFO)) {
             LOGGER.info("open(" + pid + " by " + taId);
         }
-        fRef = manager.getFileFactory().createUnmanagedWorkspaceFile(pid.toString());
+        fRef = manager.getFileFactory().createUnmanagedWorkspaceFile(pid.toString().replace(':', '_'));
         handle = ctx.getIOManager().open(fRef, IIOManager.FileReadWriteMode.READ_WRITE,
                 IIOManager.FileSyncMode.METADATA_ASYNC_DATA_ASYNC);
         size = 0;
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/GroupRunMergingFrameReader.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/GroupRunMergingFrameReader.java
new file mode 100644
index 0000000..d63609e
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/GroupRunMergingFrameReader.java
@@ -0,0 +1,377 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hashsort;
+
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
+import edu.uci.ics.hyracks.api.comm.IFrameReader;
+import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAppender;
+import edu.uci.ics.hyracks.dataflow.std.group.AggregateState;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptor;
+
+public class GroupRunMergingFrameReader implements IFrameReader {
+
+    private static final int INT_SIZE = 4;
+
+    private final IHyracksTaskContext ctx;
+    private final IFrameReader[] runCursors;
+    private final List<ByteBuffer> inFrames;
+    private final int[] keyFields;
+    private final int framesLimit;
+    private final int tableSize;
+    private final IBinaryComparator[] comparators;
+    private final RecordDescriptor recordDesc;
+    private final FrameTupleAppender outFrameAppender;
+    private final ITuplePartitionComputer tpc;
+    private ReferencedPriorityQueue topTuples;
+    private int[] tupleIndexes;
+    private int[] currentFrameIndexForRuns, bufferedFramesForRuns;
+    private FrameTupleAccessor[] tupleAccessors;
+    private int framesBuffered;
+
+    private final IAggregatorDescriptor grouper;
+    private final AggregateState groupState;
+
+    private final boolean isLoadBuffered;
+
+    private final boolean isFinalPhase;
+
+    private final ArrayTupleBuilder groupTupleBuilder, outputTupleBuilder;
+
+    private byte[] groupResultCache;
+    private ByteBuffer groupResultCacheBuffer;
+    private IFrameTupleAccessor groupResultCacheAccessor;
+    private FrameTupleAppender groupResultCacheAppender;
+
+    // FIXME
+    long queueCompCounter = 0, mergeCompCounter = 0;
+
+    public GroupRunMergingFrameReader(IHyracksTaskContext ctx, IFrameReader[] runCursors, int framesLimit,
+            int tableSize, int[] keyFields, ITuplePartitionComputer tpc, IBinaryComparator[] comparators,
+            IAggregatorDescriptor grouper, RecordDescriptor recordDesc, boolean isFinalPhase) {
+        this(ctx, runCursors, framesLimit, tableSize, keyFields, tpc, comparators, grouper, recordDesc, isFinalPhase,
+                false);
+    }
+
+    public GroupRunMergingFrameReader(IHyracksTaskContext ctx, IFrameReader[] runCursors, int framesLimit,
+            int tableSize, int[] keyFields, ITuplePartitionComputer tpc, IBinaryComparator[] comparators,
+            IAggregatorDescriptor grouper, RecordDescriptor recordDesc, boolean isFinalPhase, boolean isLoadBuffered) {
+        this.ctx = ctx;
+        this.runCursors = runCursors;
+        this.inFrames = new ArrayList<ByteBuffer>();
+        this.keyFields = keyFields;
+        this.tableSize = tableSize;
+        this.comparators = comparators;
+        this.recordDesc = recordDesc;
+        this.grouper = grouper;
+        this.groupState = grouper.createAggregateStates();
+        this.outFrameAppender = new FrameTupleAppender(ctx.getFrameSize());
+        this.isLoadBuffered = isLoadBuffered;
+        this.isFinalPhase = isFinalPhase;
+        this.framesLimit = framesLimit;
+        this.tpc = tpc;
+
+        this.groupTupleBuilder = new ArrayTupleBuilder(recordDesc.getFieldCount());
+        this.outputTupleBuilder = new ArrayTupleBuilder(recordDesc.getFieldCount());
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameReader#open()
+     */
+    @Override
+    public void open() throws HyracksDataException {
+        if (isLoadBuffered) {
+            while (inFrames.size() + 1 < framesLimit) {
+                inFrames.add(ctx.allocateFrame());
+            }
+            framesBuffered = inFrames.size() / runCursors.length;
+        } else {
+            while (inFrames.size() < framesLimit - 1 && inFrames.size() < runCursors.length) {
+                inFrames.add(ctx.allocateFrame());
+            }
+            framesBuffered = 1;
+        }
+        tupleAccessors = new FrameTupleAccessor[runCursors.length];
+        currentFrameIndexForRuns = new int[runCursors.length];
+        bufferedFramesForRuns = new int[runCursors.length];
+        Comparator<ReferenceEntryWithBucketID> comparator = createEntryComparator(comparators);
+        topTuples = new ReferencedPriorityQueue(ctx.getFrameSize(), recordDesc, runCursors.length, comparator);
+        tupleIndexes = new int[runCursors.length];
+
+        for (int i = 0; i < runCursors.length; i++) {
+            int runIndex = topTuples.peek().getRunid();
+            tupleIndexes[runIndex] = 0;
+            runCursors[runIndex].open();
+            for (int j = 0; j < framesBuffered; j++) {
+
+                if (runCursors[runIndex].nextFrame(inFrames.get(runIndex * framesBuffered + j))) {
+
+                    bufferedFramesForRuns[runIndex]++;
+                    if (j == 0) {
+                        tupleAccessors[runIndex] = new FrameTupleAccessor(ctx.getFrameSize(), recordDesc);
+                        tupleAccessors[runIndex].reset(inFrames.get(runIndex * framesBuffered + j));
+                        setNextTopTuple(runIndex, tupleIndexes, runCursors, tupleAccessors, topTuples);
+                        currentFrameIndexForRuns[runIndex] = runIndex * framesBuffered;
+                    }
+                } else {
+                    break;
+                }
+            }
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameReader#nextFrame(java.nio.ByteBuffer)
+     */
+    @Override
+    public boolean nextFrame(ByteBuffer buffer) throws HyracksDataException {
+        outFrameAppender.reset(buffer, true);
+
+        while (!topTuples.areRunsExhausted()) {
+            ReferenceEntryWithBucketID top = topTuples.peek();
+            int runIndex = top.getRunid();
+            FrameTupleAccessor fta = top.getAccessor();
+            int tupleIndex = top.getTupleIndex();
+
+            // check whether we can do aggregation
+            boolean needInsert = true;
+            if (groupResultCache != null && groupResultCacheAccessor.getTupleCount() > 0) {
+                groupResultCacheAccessor.reset(ByteBuffer.wrap(groupResultCache));
+                if (compareFrameTuples(fta, tupleIndex, groupResultCacheAccessor, 0) == 0) {
+                    needInsert = false;
+                }
+            }
+
+            if (needInsert) {
+
+                // try to flush the group cache into the output buffer, if any
+                if (groupResultCacheAccessor != null && groupResultCacheAccessor.getFieldCount() > 0) {
+                    outputTupleBuilder.reset();
+                    for (int k = 0; k < keyFields.length; k++) {
+                        outputTupleBuilder.addField(groupResultCacheAccessor, 0, k);
+                    }
+                    if (isFinalPhase) {
+                        grouper.outputFinalResult(outputTupleBuilder, groupResultCacheAccessor, 0, groupState);
+                    } else {
+                        grouper.outputPartialResult(outputTupleBuilder, groupResultCacheAccessor, 0, groupState);
+                    }
+
+                    // return if the buffer is full
+                    if (!outFrameAppender.append(outputTupleBuilder.getFieldEndOffsets(),
+                            outputTupleBuilder.getByteArray(), 0, outputTupleBuilder.getSize())) {
+                        return true;
+                    }
+                    groupResultCacheBuffer.putInt(groupResultCache.length - 4, 0);
+                }
+
+                groupTupleBuilder.reset();
+                for (int k : keyFields) {
+                    groupTupleBuilder.addField(fta, tupleIndex, k);
+                }
+                grouper.init(groupTupleBuilder, fta, tupleIndex, groupState);
+
+                // enlarge the cache buffer if necessary
+                int requiredSize = groupTupleBuilder.getSize() + groupTupleBuilder.getFieldEndOffsets().length
+                        * INT_SIZE + 2 * INT_SIZE;
+
+                if (groupResultCache == null || groupResultCache.length < requiredSize) {
+                    groupResultCache = new byte[requiredSize];
+                    groupResultCacheAppender = new FrameTupleAppender(groupResultCache.length);
+                    groupResultCacheBuffer = ByteBuffer.wrap(groupResultCache);
+                    groupResultCacheAccessor = new FrameTupleAccessor(groupResultCache.length, recordDesc);
+                }
+
+                // always reset the group cache
+                groupResultCacheAppender.reset(groupResultCacheBuffer, true);
+                if (!groupResultCacheAppender.append(groupTupleBuilder.getFieldEndOffsets(),
+                        groupTupleBuilder.getByteArray(), 0, groupTupleBuilder.getSize())) {
+                    throw new HyracksDataException("The partial result is too large to be initialized in a frame.");
+                }
+
+                groupResultCacheAccessor.reset(groupResultCacheBuffer);
+
+            } else {
+                grouper.aggregate(fta, tupleIndex, groupResultCacheAccessor, 0, groupState);
+            }
+
+            ++tupleIndexes[runIndex];
+            setNextTopTuple(runIndex, tupleIndexes, runCursors, tupleAccessors, topTuples);
+        }
+
+        if (groupResultCacheAccessor != null && groupResultCacheAccessor.getTupleCount() > 0) {
+            outputTupleBuilder.reset();
+            for (int k = 0; k < keyFields.length; k++) {
+                outputTupleBuilder.addField(groupResultCacheAccessor, 0, k);
+            }
+            if (isFinalPhase) {
+                grouper.outputFinalResult(outputTupleBuilder, groupResultCacheAccessor, 0, groupState);
+            } else {
+                grouper.outputPartialResult(outputTupleBuilder, groupResultCacheAccessor, 0, groupState);
+            }
+
+            // return if the buffer is full
+            if (!outFrameAppender.append(outputTupleBuilder.getFieldEndOffsets(), outputTupleBuilder.getByteArray(), 0,
+                    outputTupleBuilder.getSize())) {
+                return true;
+            }
+
+            groupResultCacheAccessor = null;
+            groupResultCache = null;
+            groupResultCacheBuffer = null;
+            groupResultCacheAppender = null;
+        }
+
+        if (outFrameAppender.getTupleCount() > 0) {
+            return true;
+        }
+
+        return false;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameReader#close()
+     */
+    @Override
+    public void close() throws HyracksDataException {
+        for (int i = 0; i < runCursors.length; ++i) {
+            closeRun(i, runCursors, tupleAccessors);
+        }
+    }
+
+    private void setNextTopTuple(int runIndex, int[] tupleIndexes, IFrameReader[] runCursors,
+            FrameTupleAccessor[] tupleAccessors, ReferencedPriorityQueue topTuples) throws HyracksDataException {
+        boolean exists = hasNextTuple(runIndex, tupleIndexes, runCursors, tupleAccessors);
+        if (exists) {
+            int h = tpc.partition(tupleAccessors[runIndex], tupleIndexes[runIndex], tableSize);
+            topTuples.popAndReplace(tupleAccessors[runIndex], tupleIndexes[runIndex], h);
+        } else {
+            topTuples.pop();
+            closeRun(runIndex, runCursors, tupleAccessors);
+        }
+    }
+
+    private boolean hasNextTuple(int runIndex, int[] tupleIndexes, IFrameReader[] runCursors,
+            FrameTupleAccessor[] tupleAccessors) throws HyracksDataException {
+        if (tupleAccessors[runIndex] == null || runCursors[runIndex] == null) {
+            return false;
+        } else if (tupleIndexes[runIndex] >= tupleAccessors[runIndex].getTupleCount()) {
+            if (currentFrameIndexForRuns[runIndex] - runIndex * framesBuffered < bufferedFramesForRuns[runIndex] - 1) {
+                currentFrameIndexForRuns[runIndex]++;
+            } else {
+                bufferedFramesForRuns[runIndex] = 0;
+                for (int j = 0; j < framesBuffered; j++) {
+                    if (runCursors[runIndex].nextFrame(inFrames.get(runIndex * framesBuffered + j))) {
+                        bufferedFramesForRuns[runIndex]++;
+                    } else {
+                        break;
+                    }
+                }
+                currentFrameIndexForRuns[runIndex] = runIndex * framesBuffered;
+            }
+            if (bufferedFramesForRuns[runIndex] > 0) {
+                tupleAccessors[runIndex].reset(inFrames.get(currentFrameIndexForRuns[runIndex]));
+                tupleIndexes[runIndex] = 0;
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return true;
+        }
+    }
+
+    private void closeRun(int index, IFrameReader[] runCursors, IFrameTupleAccessor[] tupleAccessors)
+            throws HyracksDataException {
+        if (runCursors[index] != null) {
+            runCursors[index].close();
+            runCursors[index] = null;
+            tupleAccessors[index] = null;
+        }
+    }
+
+    private int compareFrameTuples(IFrameTupleAccessor fta1, int j1, IFrameTupleAccessor fta2, int j2) {
+        mergeCompCounter++;
+        byte[] b1 = fta1.getBuffer().array();
+        byte[] b2 = fta2.getBuffer().array();
+        for (int f = 0; f < keyFields.length; ++f) {
+            int fIdx = f;
+            int s1 = fta1.getTupleStartOffset(j1) + fta1.getFieldSlotsLength() + fta1.getFieldStartOffset(j1, fIdx);
+            int l1 = fta1.getFieldLength(j1, fIdx);
+            int s2 = fta2.getTupleStartOffset(j2) + fta2.getFieldSlotsLength() + fta2.getFieldStartOffset(j2, fIdx);
+            int l2_start = fta2.getFieldStartOffset(j2, fIdx);
+            int l2_end = fta2.getFieldEndOffset(j2, fIdx);
+            int l2 = l2_end - l2_start;
+            int c = comparators[f].compare(b1, s1, l1, b2, s2, l2);
+            if (c != 0) {
+                return c;
+            }
+        }
+        return 0;
+    }
+
+    private Comparator<ReferenceEntryWithBucketID> createEntryComparator(final IBinaryComparator[] comparators) {
+        return new Comparator<ReferenceEntryWithBucketID>() {
+            public int compare(ReferenceEntryWithBucketID tp1, ReferenceEntryWithBucketID tp2) {
+
+                queueCompCounter++;
+
+                int cmp = tp1.getBucketID() - tp2.getBucketID();
+
+                if (cmp != 0) {
+                    return cmp;
+                }
+
+                FrameTupleAccessor fta1 = (FrameTupleAccessor) tp1.getAccessor();
+                FrameTupleAccessor fta2 = (FrameTupleAccessor) tp2.getAccessor();
+                int j1 = tp1.getTupleIndex();
+                int j2 = tp2.getTupleIndex();
+                byte[] b1 = fta1.getBuffer().array();
+                byte[] b2 = fta2.getBuffer().array();
+                for (int f = 0; f < keyFields.length; ++f) {
+                    int fIdx = keyFields[f];
+                    int s1 = fta1.getTupleStartOffset(j1) + fta1.getFieldSlotsLength()
+                            + fta1.getFieldStartOffset(j1, fIdx);
+                    int l1 = fta1.getFieldEndOffset(j1, fIdx) - fta1.getFieldStartOffset(j1, fIdx);
+                    int s2 = fta2.getTupleStartOffset(j2) + fta2.getFieldSlotsLength()
+                            + fta2.getFieldStartOffset(j2, fIdx);
+                    int l2 = fta2.getFieldEndOffset(j2, fIdx) - fta2.getFieldStartOffset(j2, fIdx);
+                    int c = comparators[f].compare(b1, s1, l1, b2, s2, l2);
+                    if (c != 0) {
+                        return c;
+                    }
+                }
+
+                return cmp;
+            }
+        };
+    }
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortGroupHashTable.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortGroupHashTable.java
new file mode 100644
index 0000000..6e85cff
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortGroupHashTable.java
@@ -0,0 +1,686 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hashsort;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.LinkedList;
+
+import edu.uci.ics.hyracks.api.comm.FrameHelper;
+import edu.uci.ics.hyracks.api.comm.IFrameWriter;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
+import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.api.io.FileReference;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAppender;
+import edu.uci.ics.hyracks.dataflow.common.comm.util.FrameUtils;
+import edu.uci.ics.hyracks.dataflow.common.io.RunFileReader;
+import edu.uci.ics.hyracks.dataflow.common.io.RunFileWriter;
+import edu.uci.ics.hyracks.dataflow.std.group.AggregateState;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.group.hybridhash.FrameTupleAccessorForGroupHashtable;
+import edu.uci.ics.hyracks.dataflow.std.group.hybridhash.FrameTupleAppenderForGroupHashtable;
+import edu.uci.ics.hyracks.dataflow.std.structures.TuplePointer;
+
+public class HybridHashSortGroupHashTable {
+
+    protected static final int INT_SIZE = 4;
+    protected static final int INIT_REF_COUNT = 8;
+    protected static final int PTR_SIZE = 3;
+
+    protected final int tableSize, framesLimit, frameSize;
+
+    protected final ByteBuffer[] headers;
+    protected final ByteBuffer[] contents;
+
+    protected final IHyracksTaskContext ctx;
+
+    protected int currentLargestFrameIndex;
+    protected int totalTupleCount;
+
+    protected final IAggregatorDescriptor aggregator;
+    protected final AggregateState aggState;
+
+    protected final int[] keys, internalKeys;
+
+    private final IBinaryComparator[] comparators;
+
+    protected final ITuplePartitionComputer tpc;
+
+    protected final INormalizedKeyComputer firstNormalizer;
+
+    private ByteBuffer outputBuffer;
+
+    private LinkedList<RunFileReader> runReaders;
+
+    protected TuplePointer matchPointer;
+
+    protected final FrameTupleAccessorForGroupHashtable hashtableRecordAccessor;
+
+    private final FrameTupleAccessorForGroupHashtable compFrameAccessor1, compFrameAccessor2;
+
+    protected final FrameTupleAppenderForGroupHashtable internalAppender;
+
+    private final FrameTupleAppender outputAppender;
+
+    /**
+     * Tuple builder for hash table insertion
+     */
+    protected final ArrayTupleBuilder internalTupleBuilder, outputTupleBuilder;
+
+    /**
+     * pointers for sort records in an entry
+     */
+    protected int[] tPointers;
+
+    protected int usedEntries = 0;
+
+    protected long hashedKeys = 0, hashedRawRec = 0;
+
+    public HybridHashSortGroupHashTable(IHyracksTaskContext ctx, int frameLimits, int tableSize, int[] keys,
+            IBinaryComparator[] comparators, ITuplePartitionComputer tpc,
+            INormalizedKeyComputer firstNormalizerComputer, IAggregatorDescriptor aggregator,
+            RecordDescriptor inRecDesc, RecordDescriptor outRecDesc) {
+        this.ctx = ctx;
+        this.tableSize = tableSize;
+        this.framesLimit = frameLimits;
+        this.frameSize = ctx.getFrameSize();
+
+        this.keys = keys;
+        this.internalKeys = new int[keys.length];
+        for (int i = 0; i < internalKeys.length; i++) {
+            internalKeys[i] = i;
+        }
+
+        this.aggregator = aggregator;
+        this.aggState = aggregator.createAggregateStates();
+
+        this.tpc = tpc;
+        this.comparators = comparators;
+        this.firstNormalizer = firstNormalizerComputer;
+
+        // initialize the hash table
+        int residual = ((tableSize % frameSize) * INT_SIZE * 2) % frameSize == 0 ? 0 : 1;
+        this.headers = new ByteBuffer[tableSize / frameSize * INT_SIZE * 2 + tableSize % frameSize * 2 * INT_SIZE
+                / frameSize + residual];
+
+        this.outputBuffer = ctx.allocateFrame();
+
+        this.contents = new ByteBuffer[framesLimit - 1 - headers.length];
+        this.currentLargestFrameIndex = -1;
+        this.totalTupleCount = 0;
+
+        this.runReaders = new LinkedList<RunFileReader>();
+        this.hashtableRecordAccessor = new FrameTupleAccessorForGroupHashtable(frameSize, outRecDesc);
+        this.compFrameAccessor1 = new FrameTupleAccessorForGroupHashtable(frameSize, outRecDesc);
+        this.compFrameAccessor2 = new FrameTupleAccessorForGroupHashtable(frameSize, outRecDesc);
+
+        this.internalTupleBuilder = new ArrayTupleBuilder(outRecDesc.getFieldCount());
+        this.outputTupleBuilder = new ArrayTupleBuilder(outRecDesc.getFieldCount());
+        this.internalAppender = new FrameTupleAppenderForGroupHashtable(frameSize);
+        this.outputAppender = new FrameTupleAppender(frameSize);
+
+        this.matchPointer = new TuplePointer();
+
+    }
+
+    /**
+     * Reset the header page
+     * 
+     * @param headerFrameIndex
+     */
+    protected void resetHeader(int headerFrameIndex) {
+        for (int i = 0; i < frameSize; i += INT_SIZE) {
+            headers[headerFrameIndex].putInt(i, -1);
+        }
+    }
+
+    /**
+     * Get the header frame index of the given hash table entry
+     * 
+     * @param entry
+     * @return
+     */
+    protected int getHeaderFrameIndex(int entry) {
+        int frameIndex = entry / frameSize * 2 * INT_SIZE + entry % frameSize * 2 * INT_SIZE / frameSize;
+        return frameIndex;
+    }
+
+    /**
+     * Get the tuple index of the given hash table entry
+     * 
+     * @param entry
+     * @return
+     */
+    protected int getHeaderTupleIndex(int entry) {
+        int offset = entry % frameSize * 2 * INT_SIZE % frameSize;
+        return offset;
+    }
+
+    public void insert(FrameTupleAccessor accessor, int tupleIndex) throws HyracksDataException {
+
+        int entry = tpc.partition(accessor, tupleIndex, tableSize);
+
+        hashedRawRec++;
+
+        if (findMatch(entry, accessor, tupleIndex)) {
+            // find match; do aggregation
+            hashtableRecordAccessor.reset(contents[matchPointer.frameIndex]);
+            aggregator.aggregate(accessor, tupleIndex, hashtableRecordAccessor, matchPointer.tupleIndex, aggState);
+        } else {
+
+            internalTupleBuilder.reset();
+            for (int k = 0; k < keys.length; k++) {
+                internalTupleBuilder.addField(accessor, tupleIndex, keys[k]);
+            }
+            aggregator.init(internalTupleBuilder, accessor, tupleIndex, aggState);
+            int insertFrameIndex = -1, insertTupleIndex = -1;
+            boolean inserted = false;
+
+            if (currentLargestFrameIndex < 0) {
+                currentLargestFrameIndex = 0;
+            }
+
+            if (contents[currentLargestFrameIndex] == null) {
+                contents[currentLargestFrameIndex] = ctx.allocateFrame();
+            }
+
+            internalAppender.reset(contents[currentLargestFrameIndex], false);
+            if (internalAppender.append(internalTupleBuilder.getFieldEndOffsets(), internalTupleBuilder.getByteArray(),
+                    0, internalTupleBuilder.getSize())) {
+                inserted = true;
+                insertFrameIndex = currentLargestFrameIndex;
+                insertTupleIndex = internalAppender.getTupleCount() - 1;
+            }
+
+            if (!inserted && currentLargestFrameIndex < contents.length - 1) {
+                currentLargestFrameIndex++;
+                if (contents[currentLargestFrameIndex] == null) {
+                    contents[currentLargestFrameIndex] = ctx.allocateFrame();
+                }
+                internalAppender.reset(contents[currentLargestFrameIndex], true);
+                if (!internalAppender.append(internalTupleBuilder.getFieldEndOffsets(),
+                        internalTupleBuilder.getByteArray(), 0, internalTupleBuilder.getSize())) {
+                    throw new HyracksDataException("Failed to insert an aggregation value.");
+                } else {
+                    insertFrameIndex = currentLargestFrameIndex;
+                    insertTupleIndex = internalAppender.getTupleCount() - 1;
+                    inserted = true;
+                }
+            }
+
+            // memory is full
+            if (!inserted) {
+                // flush hash table and try to insert again
+                flush();
+
+                // update the match point to the header reference
+                matchPointer.frameIndex = -1;
+                matchPointer.tupleIndex = -1;
+                // re-insert
+                currentLargestFrameIndex++;
+                if (contents[currentLargestFrameIndex] == null) {
+                    contents[currentLargestFrameIndex] = ctx.allocateFrame();
+                }
+                internalAppender.reset(contents[currentLargestFrameIndex], true);
+                if (!internalAppender.append(internalTupleBuilder.getFieldEndOffsets(),
+                        internalTupleBuilder.getByteArray(), 0, internalTupleBuilder.getSize())) {
+                    throw new HyracksDataException("Failed to insert an aggregation value.");
+                } else {
+                    insertFrameIndex = currentLargestFrameIndex;
+                    insertTupleIndex = internalAppender.getTupleCount() - 1;
+                }
+            }
+
+            // no match; new insertion
+            if (matchPointer.frameIndex < 0) {
+                // first record for this entry; update the header references
+                int headerFrameIndex = getHeaderFrameIndex(entry);
+                int headerFrameOffset = getHeaderTupleIndex(entry);
+                if (headers[headerFrameIndex] == null) {
+                    headers[headerFrameIndex] = ctx.allocateFrame();
+                    resetHeader(headerFrameIndex);
+                }
+                headers[headerFrameIndex].putInt(headerFrameOffset, insertFrameIndex);
+                headers[headerFrameIndex].putInt(headerFrameOffset + INT_SIZE, insertTupleIndex);
+                usedEntries++;
+
+            } else {
+                // update the previous reference
+                hashtableRecordAccessor.reset(contents[matchPointer.frameIndex]);
+                int refOffset = hashtableRecordAccessor.getTupleHashReferenceOffset(matchPointer.tupleIndex);
+                contents[matchPointer.frameIndex].putInt(refOffset, insertFrameIndex);
+                contents[matchPointer.frameIndex].putInt(refOffset + INT_SIZE, insertTupleIndex);
+            }
+            hashedKeys++;
+            totalTupleCount++;
+        }
+    }
+
+    /**
+     * Flush the hash table directly to the output
+     */
+    public void flushHashtableToOutput(IFrameWriter outputWriter) throws HyracksDataException {
+
+        outputAppender.reset(outputBuffer, true);
+        for (int i = 0; i < contents.length; i++) {
+            if (contents[i] == null) {
+                continue;
+            }
+            hashtableRecordAccessor.reset(contents[i]);
+            int tupleCount = hashtableRecordAccessor.getTupleCount();
+            for (int j = 0; j < tupleCount; j++) {
+                outputTupleBuilder.reset();
+
+                int tupleOffset = hashtableRecordAccessor.getTupleStartOffset(j);
+                int fieldOffset = hashtableRecordAccessor.getFieldCount() * INT_SIZE;
+
+                for (int k = 0; k < internalKeys.length; k++) {
+                    outputTupleBuilder.addField(hashtableRecordAccessor.getBuffer().array(), tupleOffset + fieldOffset
+                            + hashtableRecordAccessor.getFieldStartOffset(j, k),
+                            hashtableRecordAccessor.getFieldLength(j, k));
+                }
+
+                aggregator.outputFinalResult(outputTupleBuilder, hashtableRecordAccessor, j, aggState);
+
+                if (!outputAppender.append(outputTupleBuilder.getFieldEndOffsets(), outputTupleBuilder.getByteArray(),
+                        0, outputTupleBuilder.getSize())) {
+
+                    FrameUtils.flushFrame(outputBuffer, outputWriter);
+
+                    outputAppender.reset(outputBuffer, true);
+                    if (!outputAppender.append(outputTupleBuilder.getFieldEndOffsets(),
+                            outputTupleBuilder.getByteArray(), 0, outputTupleBuilder.getSize())) {
+                        throw new HyracksDataException("Failed to flush the hash table to the final output");
+                    }
+                }
+            }
+        }
+
+        if (outputAppender.getTupleCount() > 0) {
+
+            FrameUtils.flushFrame(outputBuffer, outputWriter);
+
+            outputAppender.reset(outputBuffer, true);
+        }
+
+        totalTupleCount = 0;
+        usedEntries = 0;
+    }
+
+    /**
+     * Flush hash table into a run file.
+     * 
+     * @throws HyracksDataException
+     */
+    protected void flush() throws HyracksDataException {
+
+        long methodTimer = System.nanoTime();
+
+        FileReference runFile;
+        try {
+            runFile = ctx.getJobletContext().createManagedWorkspaceFile(
+                    HybridHashSortGroupHashTable.class.getSimpleName());
+        } catch (IOException e) {
+            throw new HyracksDataException(e);
+        }
+        RunFileWriter runWriter = new RunFileWriter(runFile, ctx.getIOManager());
+        runWriter.open();
+        flushEntries(runWriter);
+        runWriter.close();
+        runReaders.add(runWriter.createReader());
+        reset();
+
+        ctx.getCounterContext()
+                .getCounter("optional." + HybridHashSortGroupHashTable.class.getSimpleName() + ".flush.time", true)
+                .update(System.nanoTime() - methodTimer);
+    }
+
+    private void flushEntries(IFrameWriter writer) throws HyracksDataException {
+
+        outputAppender.reset(outputBuffer, true);
+        for (int i = 0; i < tableSize; i++) {
+            int tupleInEntry = sortEntry(i);
+
+            for (int ptr = 0; ptr < tupleInEntry; ptr++) {
+                int frameIndex = tPointers[ptr * PTR_SIZE];
+                int tupleIndex = tPointers[ptr * PTR_SIZE + 1];
+
+                hashtableRecordAccessor.reset(contents[frameIndex]);
+                outputTupleBuilder.reset();
+
+                int tupleOffset = hashtableRecordAccessor.getTupleStartOffset(tupleIndex);
+                int fieldOffset = hashtableRecordAccessor.getFieldCount() * INT_SIZE;
+
+                for (int k = 0; k < internalKeys.length; k++) {
+                    outputTupleBuilder.addField(hashtableRecordAccessor.getBuffer().array(), tupleOffset + fieldOffset
+                            + hashtableRecordAccessor.getFieldStartOffset(tupleIndex, k),
+                            hashtableRecordAccessor.getFieldLength(tupleIndex, k));
+                }
+
+                aggregator.outputPartialResult(outputTupleBuilder, hashtableRecordAccessor, tupleIndex, aggState);
+
+                if (!outputAppender.append(outputTupleBuilder.getFieldEndOffsets(), outputTupleBuilder.getByteArray(),
+                        0, outputTupleBuilder.getSize())) {
+
+                    FrameUtils.flushFrame(outputBuffer, writer);
+
+                    outputAppender.reset(outputBuffer, true);
+                    if (!outputAppender.append(outputTupleBuilder.getFieldEndOffsets(),
+                            outputTupleBuilder.getByteArray(), 0, outputTupleBuilder.getSize())) {
+                        throw new HyracksDataException("Failed to flush an aggregation result.");
+                    }
+                }
+                totalTupleCount--;
+            }
+
+            if (tupleInEntry > 0) {
+                usedEntries--;
+            }
+        }
+
+        if (outputAppender.getTupleCount() > 0) {
+
+            FrameUtils.flushFrame(outputBuffer, writer);
+
+            outputAppender.reset(outputBuffer, true);
+        }
+    }
+
+    protected int sortEntry(int entryID) {
+
+        if (tPointers == null)
+            tPointers = new int[INIT_REF_COUNT * PTR_SIZE];
+        int ptr = 0;
+
+        int headerFrameIndex = entryID / frameSize * 2 * INT_SIZE + (entryID % frameSize) * 2 * INT_SIZE / frameSize;
+        int headerFrameOffset = (entryID % frameSize) * 2 * INT_SIZE % frameSize;
+
+        if (headers[headerFrameIndex] == null) {
+            return 0;
+        }
+
+        int entryFrameIndex = headers[headerFrameIndex].getInt(headerFrameOffset);
+        int entryTupleIndex = headers[headerFrameIndex].getInt(headerFrameOffset + INT_SIZE);
+
+        do {
+            if (entryFrameIndex < 0) {
+                break;
+            }
+            hashtableRecordAccessor.reset(contents[entryFrameIndex]);
+            tPointers[ptr * PTR_SIZE] = entryFrameIndex;
+            tPointers[ptr * PTR_SIZE + 1] = entryTupleIndex;
+            int tStart = hashtableRecordAccessor.getTupleStartOffset(entryTupleIndex);
+            int f0StartRel = hashtableRecordAccessor.getFieldStartOffset(entryTupleIndex, internalKeys[0]);
+            int f0EndRel = hashtableRecordAccessor.getFieldEndOffset(entryTupleIndex, internalKeys[0]);
+            int f0Start = f0StartRel + tStart + hashtableRecordAccessor.getFieldSlotsLength();
+            tPointers[ptr * PTR_SIZE + 2] = firstNormalizer == null ? 0 : firstNormalizer.normalize(
+                    hashtableRecordAccessor.getBuffer().array(), f0Start, f0EndRel - f0StartRel);
+
+            ptr++;
+
+            if (ptr * PTR_SIZE >= tPointers.length) {
+                int[] newTPointers = new int[tPointers.length * 2];
+                System.arraycopy(tPointers, 0, newTPointers, 0, tPointers.length);
+                tPointers = newTPointers;
+            }
+
+            // move to the next record
+            int refOffset = hashtableRecordAccessor.getTupleHashReferenceOffset(entryTupleIndex);
+            int prevFrameIndex = entryFrameIndex;
+            entryFrameIndex = contents[prevFrameIndex].getInt(refOffset);
+            entryTupleIndex = contents[prevFrameIndex].getInt(refOffset + INT_SIZE);
+
+        } while (true);
+
+        // sort records
+        if (ptr > 1) {
+            sort(0, ptr);
+        }
+
+        return ptr;
+    }
+
+    protected void sort(int offset, int len) {
+        int m = offset + (len >> 1);
+        int mFrameIndex = tPointers[m * PTR_SIZE];
+        int mTupleIndex = tPointers[m * PTR_SIZE + 1];
+        int mNormKey = tPointers[m * PTR_SIZE + 2];
+        compFrameAccessor1.reset(contents[mFrameIndex]);
+
+        int a = offset;
+        int b = a;
+        int c = offset + len - 1;
+        int d = c;
+        while (true) {
+            while (b <= c) {
+                int bFrameIndex = tPointers[b * PTR_SIZE];
+                int bTupleIndex = tPointers[b * PTR_SIZE + 1];
+                int bNormKey = tPointers[b * PTR_SIZE + 2];
+                int cmp = 0;
+                if (bNormKey != mNormKey) {
+                    cmp = ((((long) bNormKey) & 0xffffffffL) < (((long) mNormKey) & 0xffffffffL)) ? -1 : 1;
+                } else {
+                    compFrameAccessor2.reset(contents[bFrameIndex]);
+                    cmp = compare(compFrameAccessor2, bTupleIndex, compFrameAccessor1, mTupleIndex);
+                }
+                if (cmp > 0) {
+                    break;
+                }
+                if (cmp == 0) {
+                    swap(a++, b);
+                }
+                ++b;
+            }
+            while (c >= b) {
+                int cFrameIndex = tPointers[c * PTR_SIZE];
+                int cTupleIndex = tPointers[c * PTR_SIZE + 1];
+                int cNormKey = tPointers[c * PTR_SIZE + 2];
+                int cmp = 0;
+                if (cNormKey != mNormKey) {
+                    cmp = ((((long) cNormKey) & 0xffffffffL) < (((long) mNormKey) & 0xffffffffL)) ? -1 : 1;
+                } else {
+                    compFrameAccessor2.reset(contents[cFrameIndex]);
+                    cmp = compare(compFrameAccessor2, cTupleIndex, compFrameAccessor1, mTupleIndex);
+                }
+                if (cmp < 0) {
+                    break;
+                }
+                if (cmp == 0) {
+                    swap(c, d--);
+                }
+                --c;
+            }
+            if (b > c)
+                break;
+            swap(b++, c--);
+        }
+
+        int s;
+        int n = offset + len;
+        s = Math.min(a - offset, b - a);
+        vecswap(offset, b - s, s);
+        s = Math.min(d - c, n - d - 1);
+        vecswap(b, n - s, s);
+
+        if ((s = b - a) > 1) {
+            sort(offset, s);
+        }
+        if ((s = d - c) > 1) {
+            sort(n - s, s);
+        }
+    }
+
+    private void swap(int a, int b) {
+        for (int i = 0; i < PTR_SIZE; i++) {
+            int t = tPointers[a * PTR_SIZE + i];
+            tPointers[a * PTR_SIZE + i] = tPointers[b * PTR_SIZE + i];
+            tPointers[b * PTR_SIZE + i] = t;
+        }
+    }
+
+    private void vecswap(int a, int b, int n) {
+        for (int i = 0; i < n; i++, a++, b++) {
+            swap(a, b);
+        }
+    }
+
+    protected boolean findMatch(int entry, FrameTupleAccessor accessor, int tupleIndex) {
+
+        // reset the match pointer
+        matchPointer.frameIndex = -1;
+        matchPointer.tupleIndex = -1;
+
+        // get reference in the header
+        int headerFrameIndex = getHeaderFrameIndex(entry);
+        int headerFrameOffset = getHeaderTupleIndex(entry);
+
+        if (headers[headerFrameIndex] == null) {
+            return false;
+        }
+
+        // initialize the pointer to the first record 
+        int entryFrameIndex = headers[headerFrameIndex].getInt(headerFrameOffset);
+        int entryTupleIndex = headers[headerFrameIndex].getInt(headerFrameOffset + INT_SIZE);
+
+        while (entryFrameIndex >= 0) {
+            matchPointer.frameIndex = entryFrameIndex;
+            matchPointer.tupleIndex = entryTupleIndex;
+            hashtableRecordAccessor.reset(contents[entryFrameIndex]);
+
+            if (compare(accessor, tupleIndex, hashtableRecordAccessor, entryTupleIndex) == 0) {
+                return true;
+            }
+            // Move to the next record in this entry following the linked list
+            int refOffset = hashtableRecordAccessor.getTupleHashReferenceOffset(entryTupleIndex);
+            int prevFrameIndex = entryFrameIndex;
+            entryFrameIndex = contents[prevFrameIndex].getInt(refOffset);
+            entryTupleIndex = contents[prevFrameIndex].getInt(refOffset + INT_SIZE);
+        }
+
+        return false;
+    }
+
+    public LinkedList<RunFileReader> getRunFileReaders() {
+        return runReaders;
+    }
+
+    private int compare(FrameTupleAccessor accessor, int tupleIndex, FrameTupleAccessorForGroupHashtable hashAccessor,
+            int hashTupleIndex) {
+        int tStart0 = accessor.getTupleStartOffset(tupleIndex);
+        int fStartOffset0 = accessor.getFieldSlotsLength() + tStart0;
+
+        int tStart1 = hashAccessor.getTupleStartOffset(hashTupleIndex);
+        int fStartOffset1 = hashAccessor.getFieldSlotsLength() + tStart1;
+
+        for (int i = 0; i < keys.length; ++i) {
+            int fStart0 = accessor.getFieldStartOffset(tupleIndex, keys[i]);
+            int fEnd0 = accessor.getFieldEndOffset(tupleIndex, keys[i]);
+            int fLen0 = fEnd0 - fStart0;
+
+            int fStart1 = hashAccessor.getFieldStartOffset(hashTupleIndex, internalKeys[i]);
+            int fEnd1 = hashAccessor.getFieldEndOffset(hashTupleIndex, internalKeys[i]);
+            int fLen1 = fEnd1 - fStart1;
+
+            int c = comparators[i].compare(accessor.getBuffer().array(), fStart0 + fStartOffset0, fLen0, hashAccessor
+                    .getBuffer().array(), fStart1 + fStartOffset1, fLen1);
+            if (c != 0) {
+                return c;
+            }
+        }
+        return 0;
+    }
+
+    private int compare(FrameTupleAccessorForGroupHashtable accessor1, int tupleIndex1,
+            FrameTupleAccessorForGroupHashtable accessor2, int tupleIndex2) {
+        int tStart1 = accessor1.getTupleStartOffset(tupleIndex1);
+        int fStartOffset1 = accessor1.getFieldSlotsLength() + tStart1;
+
+        int tStart2 = accessor2.getTupleStartOffset(tupleIndex2);
+        int fStartOffset2 = accessor2.getFieldSlotsLength() + tStart2;
+
+        for (int i = 0; i < internalKeys.length; ++i) {
+            int fStart1 = accessor1.getFieldStartOffset(tupleIndex1, internalKeys[i]);
+            int fEnd1 = accessor1.getFieldEndOffset(tupleIndex1, internalKeys[i]);
+            int fLen1 = fEnd1 - fStart1;
+
+            int fStart2 = accessor2.getFieldStartOffset(tupleIndex2, internalKeys[i]);
+            int fEnd2 = accessor2.getFieldEndOffset(tupleIndex2, internalKeys[i]);
+            int fLen2 = fEnd2 - fStart2;
+
+            int c = comparators[i].compare(accessor1.getBuffer().array(), fStart1 + fStartOffset1, fLen1, accessor2
+                    .getBuffer().array(), fStart2 + fStartOffset2, fLen2);
+            if (c != 0) {
+                return c;
+            }
+        }
+        return 0;
+    }
+
+    public void reset() {
+        for (int i = 0; i < headers.length; i++) {
+            if (headers[i] != null) {
+                resetHeader(i);
+            }
+        }
+        for (int i = 0; i < contents.length; i++) {
+            if (contents[i] != null) {
+                contents[i].putInt(FrameHelper.getTupleCountOffset(frameSize), 0);
+            }
+        }
+
+        usedEntries = 0;
+        totalTupleCount = 0;
+        currentLargestFrameIndex = -1;
+    }
+
+    public void finishup() throws HyracksDataException {
+        if (runReaders.size() > 0) {
+            flush();
+        }
+
+        hashedKeys = 0;
+        hashedRawRec = 0;
+    }
+
+    /**
+     * Close the hash table. Note that only memory allocated by frames are freed. Aggregation
+     * states maintained in {@link #aggState} and run file readers in {@link #runReaders} should
+     * be valid for later processing.
+     */
+    public void close() throws HyracksDataException {
+        for (int i = 0; i < headers.length; i++) {
+            headers[i] = null;
+        }
+        for (int i = 0; i < contents.length; i++) {
+            contents[i] = null;
+        }
+        outputBuffer = null;
+        tPointers = null;
+    }
+
+    public int getTupleCount() {
+        return totalTupleCount;
+    }
+
+    public int getFrameSize() {
+        return headers.length + contents.length + 1;
+    }
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortGroupOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortGroupOperatorDescriptor.java
new file mode 100644
index 0000000..5296c9f
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortGroupOperatorDescriptor.java
@@ -0,0 +1,275 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hashsort;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.LinkedList;
+
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.ActivityId;
+import edu.uci.ics.hyracks.api.dataflow.IActivityGraphBuilder;
+import edu.uci.ics.hyracks.api.dataflow.IOperatorNodePushable;
+import edu.uci.ics.hyracks.api.dataflow.TaskId;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.IRecordDescriptorProvider;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputerFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.api.job.JobId;
+import edu.uci.ics.hyracks.api.job.JobSpecification;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.common.io.RunFileReader;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractActivityNode;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractOperatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractStateObject;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractUnaryInputSinkOperatorNodePushable;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractUnaryOutputSourceOperatorNodePushable;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptorFactory;
+
+public class HybridHashSortGroupOperatorDescriptor extends AbstractOperatorDescriptor {
+
+    private static final int AGGREGATE_ACTIVITY_ID = 0;
+
+    private static final int MERGE_ACTIVITY_ID = 1;
+
+    private static final long serialVersionUID = 1L;
+    private final int[] keyFields, storedKeyFields;
+    private final INormalizedKeyComputerFactory firstNormalizerFactory;
+
+    private final IAggregatorDescriptorFactory aggregatorFactory;
+    private final IAggregatorDescriptorFactory mergerFactory;
+
+    private final ITuplePartitionComputerFactory aggTpcf, mergeTpcf;
+
+    private final int framesLimit;
+    private final IBinaryComparatorFactory[] comparatorFactories;
+
+    private final int tableSize;
+
+    private final boolean isLoadOptimized;
+
+    public HybridHashSortGroupOperatorDescriptor(JobSpecification spec, int[] keyFields, int framesLimit,
+            int tableSize, IBinaryComparatorFactory[] comparatorFactories, ITuplePartitionComputerFactory aggTpcf,
+            ITuplePartitionComputerFactory mergeTpcf, IAggregatorDescriptorFactory aggregatorFactory,
+            IAggregatorDescriptorFactory mergerFactory, RecordDescriptor recordDescriptor) {
+        this(spec, keyFields, framesLimit, tableSize, comparatorFactories, aggTpcf, mergeTpcf, null, aggregatorFactory,
+                mergerFactory, recordDescriptor, false);
+    }
+
+    public HybridHashSortGroupOperatorDescriptor(JobSpecification spec, int[] keyFields, int framesLimit,
+            int tableSize, IBinaryComparatorFactory[] comparatorFactories, ITuplePartitionComputerFactory aggTpcf,
+            ITuplePartitionComputerFactory mergeTpcf, INormalizedKeyComputerFactory firstNormalizerFactory,
+            IAggregatorDescriptorFactory aggregatorFactory, IAggregatorDescriptorFactory mergerFactory,
+            RecordDescriptor recordDescriptor) {
+        this(spec, keyFields, framesLimit, tableSize, comparatorFactories, aggTpcf, mergeTpcf, firstNormalizerFactory,
+                aggregatorFactory, mergerFactory, recordDescriptor, false);
+    }
+
+    public HybridHashSortGroupOperatorDescriptor(JobSpecification spec, int[] keyFields, int framesLimit,
+            int tableSize, IBinaryComparatorFactory[] comparatorFactories, ITuplePartitionComputerFactory aggTpcf,
+            ITuplePartitionComputerFactory mergeTpcf, INormalizedKeyComputerFactory firstNormalizerFactory,
+            IAggregatorDescriptorFactory aggregatorFactory, IAggregatorDescriptorFactory mergerFactory,
+            RecordDescriptor recordDescriptor, boolean isLoadOpt) {
+        super(spec, 1, 1);
+        this.framesLimit = framesLimit;
+        if (framesLimit <= 2) {
+            /**
+             * Minimum of 3 frames: 2 for in-memory hash table, and 1 for output
+             * aggregation results.
+             */
+            throw new IllegalStateException("frame limit should at least be 3, but it is " + framesLimit + "!");
+        }
+
+        storedKeyFields = new int[keyFields.length];
+        for (int i = 0; i < storedKeyFields.length; i++) {
+            storedKeyFields[i] = i;
+        }
+        this.aggregatorFactory = aggregatorFactory;
+        this.mergerFactory = mergerFactory;
+        this.keyFields = keyFields;
+        this.comparatorFactories = comparatorFactories;
+        this.firstNormalizerFactory = firstNormalizerFactory;
+        this.aggTpcf = aggTpcf;
+        this.mergeTpcf = mergeTpcf;
+        this.tableSize = tableSize;
+
+        /**
+         * Set the record descriptor. Note that since this operator is a unary
+         * operator, only the first record descriptor is used here.
+         */
+        recordDescriptors[0] = recordDescriptor;
+
+        this.isLoadOptimized = isLoadOpt;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.dataflow.IOperatorDescriptor#contributeActivities(edu.uci.ics.hyracks.api.dataflow.
+     * IActivityGraphBuilder)
+     */
+    @Override
+    public void contributeActivities(IActivityGraphBuilder builder) {
+        AggregateActivity aggregateAct = new AggregateActivity(new ActivityId(getOperatorId(), AGGREGATE_ACTIVITY_ID));
+        MergeActivity mergeAct = new MergeActivity(new ActivityId(odId, MERGE_ACTIVITY_ID));
+
+        builder.addActivity(this, aggregateAct);
+        builder.addSourceEdge(0, aggregateAct, 0);
+
+        builder.addActivity(this, mergeAct);
+        builder.addTargetEdge(0, mergeAct, 0);
+
+        builder.addBlockingEdge(aggregateAct, mergeAct);
+    }
+
+    public static class AggregateActivityState extends AbstractStateObject {
+
+        private HybridHashSortGroupHashTable gTable;
+
+        public AggregateActivityState() {
+        }
+
+        private AggregateActivityState(JobId jobId, TaskId tId) {
+            super(jobId, tId);
+        }
+
+        @Override
+        public void toBytes(DataOutput out) throws IOException {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void fromBytes(DataInput in) throws IOException {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+    private class AggregateActivity extends AbstractActivityNode {
+
+        private static final long serialVersionUID = 1L;
+
+        public AggregateActivity(ActivityId id) {
+            super(id);
+        }
+
+        @Override
+        public IOperatorNodePushable createPushRuntime(final IHyracksTaskContext ctx,
+                final IRecordDescriptorProvider recordDescProvider, final int partition, int nPartitions)
+                throws HyracksDataException {
+            return new AbstractUnaryInputSinkOperatorNodePushable() {
+
+                HybridHashSortGroupHashTable serializableGroupHashtable;
+
+                FrameTupleAccessor accessor;
+
+                @Override
+                public void open() throws HyracksDataException {
+
+                    RecordDescriptor inRecDesc = recordDescProvider.getInputRecordDescriptor(getActivityId(), 0);
+
+                    IBinaryComparator[] comparators = new IBinaryComparator[comparatorFactories.length];
+                    for (int i = 0; i < comparatorFactories.length; i++) {
+                        comparators[i] = comparatorFactories[i].createBinaryComparator();
+                    }
+
+                    serializableGroupHashtable = new HybridHashSortGroupHashTable(ctx, framesLimit, tableSize,
+                            keyFields, comparators, aggTpcf.createPartitioner(),
+                            firstNormalizerFactory.createNormalizedKeyComputer(), aggregatorFactory.createAggregator(
+                                    ctx, inRecDesc, recordDescriptors[0], keyFields, storedKeyFields), inRecDesc,
+                            recordDescriptors[0]);
+                    accessor = new FrameTupleAccessor(ctx.getFrameSize(), inRecDesc);
+                }
+
+                @Override
+                public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
+                    accessor.reset(buffer);
+                    int tupleCount = accessor.getTupleCount();
+                    for (int i = 0; i < tupleCount; i++) {
+                        serializableGroupHashtable.insert(accessor, i);
+                    }
+                }
+
+                @Override
+                public void fail() throws HyracksDataException {
+                }
+
+                @Override
+                public void close() throws HyracksDataException {
+                    serializableGroupHashtable.finishup();
+                    AggregateActivityState state = new AggregateActivityState(ctx.getJobletContext().getJobId(),
+                            new TaskId(getActivityId(), partition));
+                    state.gTable = serializableGroupHashtable;
+                    ctx.setStateObject(state);
+                }
+            };
+        }
+    }
+
+    private class MergeActivity extends AbstractActivityNode {
+
+        private static final long serialVersionUID = 1L;
+
+        public MergeActivity(ActivityId id) {
+            super(id);
+        }
+
+        @Override
+        public IOperatorNodePushable createPushRuntime(final IHyracksTaskContext ctx,
+                IRecordDescriptorProvider recordDescProvider, final int partition, final int nPartitions)
+                throws HyracksDataException {
+
+            return new AbstractUnaryOutputSourceOperatorNodePushable() {
+
+                public void initialize() throws HyracksDataException {
+
+                    AggregateActivityState aggState = (AggregateActivityState) ctx.getStateObject(new TaskId(
+                            new ActivityId(getOperatorId(), AGGREGATE_ACTIVITY_ID), partition));
+
+                    LinkedList<RunFileReader> runs = aggState.gTable.getRunFileReaders();
+
+                    writer.open();
+                    if (runs.size() <= 0) {
+                        aggState.gTable.flushHashtableToOutput(writer);
+                        aggState.gTable.close();
+                    } else {
+                        aggState.gTable.close();
+
+                        IBinaryComparator[] comparators = new IBinaryComparator[comparatorFactories.length];
+                        for (int i = 0; i < comparatorFactories.length; i++) {
+                            comparators[i] = comparatorFactories[i].createBinaryComparator();
+                        }
+
+                        HybridHashSortRunMerger merger = new HybridHashSortRunMerger(ctx, runs, storedKeyFields,
+                                comparators, recordDescriptors[0], mergeTpcf.createPartitioner(),
+                                mergerFactory.createAggregator(ctx, recordDescriptors[0], recordDescriptors[0],
+                                        storedKeyFields, storedKeyFields), framesLimit, tableSize, writer,
+                                isLoadOptimized);
+
+                        merger.process();
+                    }
+
+                    writer.close();
+                }
+
+            };
+        }
+    }
+
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortGrouperBucketMerge.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortGrouperBucketMerge.java
new file mode 100644
index 0000000..1de2237
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortGrouperBucketMerge.java
@@ -0,0 +1,488 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hashsort;
+
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.LinkedList;
+import java.util.List;
+
+import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
+import edu.uci.ics.hyracks.api.comm.IFrameWriter;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.api.io.FileReference;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAppender;
+import edu.uci.ics.hyracks.dataflow.common.comm.util.FrameUtils;
+import edu.uci.ics.hyracks.dataflow.common.io.RunFileReader;
+import edu.uci.ics.hyracks.dataflow.common.io.RunFileWriter;
+import edu.uci.ics.hyracks.dataflow.std.group.AggregateState;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.util.ReferenceEntry;
+
+public class HybridHashSortGrouperBucketMerge {
+
+    private final int[] keyFields;
+    private final IBinaryComparator[] comparators;
+
+    private final IAggregatorDescriptor merger;
+    private final AggregateState mergeState;
+
+    private final int framesLimit, tableSize;
+
+    private final RecordDescriptor inRecDesc;
+
+    private final IHyracksTaskContext ctx;
+
+    private final ArrayTupleBuilder tupleBuilder;
+
+    private final IFrameWriter outputWriter;
+
+    private final ITuplePartitionComputer tpc;
+
+    private final boolean isLoadOptimized;
+
+    List<ByteBuffer> inFrames;
+    ByteBuffer outFrame, writerFrame;
+    FrameTupleAppender outAppender, writerAppender;
+    LinkedList<RunFileReader> runs;
+    ArrayTupleBuilder finalTupleBuilder;
+    FrameTupleAccessor outFrameAccessor;
+    int[] currentFrameIndexInRun, currentRunFrames, currentBucketInRun;
+    int runFrameLimit = 1;
+
+    public HybridHashSortGrouperBucketMerge(IHyracksTaskContext ctx, int[] keyFields, int framesLimit, int tableSize,
+            ITuplePartitionComputer tpc, IBinaryComparator[] comparators, IAggregatorDescriptor merger,
+            RecordDescriptor inRecDesc, RecordDescriptor outRecDesc, IFrameWriter outputWriter)
+            throws HyracksDataException {
+        this.ctx = ctx;
+        this.framesLimit = framesLimit;
+        this.tableSize = tableSize;
+
+        this.keyFields = keyFields;
+        this.comparators = comparators;
+        this.merger = merger;
+        this.mergeState = merger.createAggregateStates();
+
+        this.inRecDesc = inRecDesc;
+
+        this.tupleBuilder = new ArrayTupleBuilder(inRecDesc.getFieldCount());
+
+        this.outAppender = new FrameTupleAppender(ctx.getFrameSize());
+
+        this.outputWriter = outputWriter;
+
+        this.outFrameAccessor = new FrameTupleAccessor(ctx.getFrameSize(), inRecDesc);
+
+        this.tpc = tpc;
+
+        this.isLoadOptimized = true;
+    }
+
+    public HybridHashSortGrouperBucketMerge(IHyracksTaskContext ctx, int[] keyFields, int framesLimit, int tableSize,
+            ITuplePartitionComputer tpc, IBinaryComparator[] comparators, IAggregatorDescriptor merger,
+            RecordDescriptor inRecDesc, RecordDescriptor outRecDesc, IFrameWriter outputWriter, boolean loadOptimized)
+            throws HyracksDataException {
+        this.ctx = ctx;
+        this.framesLimit = framesLimit;
+        this.tableSize = tableSize;
+
+        this.keyFields = keyFields;
+        this.comparators = comparators;
+        this.merger = merger;
+        this.mergeState = merger.createAggregateStates();
+
+        this.inRecDesc = inRecDesc;
+
+        this.tupleBuilder = new ArrayTupleBuilder(inRecDesc.getFieldCount());
+
+        this.outAppender = new FrameTupleAppender(ctx.getFrameSize());
+
+        this.outputWriter = outputWriter;
+
+        this.outFrameAccessor = new FrameTupleAccessor(ctx.getFrameSize(), inRecDesc);
+
+        this.tpc = tpc;
+
+        this.isLoadOptimized = loadOptimized;
+    }
+
+    public void initialize(LinkedList<RunFileReader> runFiles) throws HyracksDataException {
+
+        runs = runFiles;
+
+        try {
+            if (runs.size() <= 0) {
+                return;
+            } else {
+                inFrames = new ArrayList<ByteBuffer>();
+                outFrame = ctx.allocateFrame();
+                outAppender.reset(outFrame, true);
+                outFrameAccessor.reset(outFrame);
+                int runProcOffset = 0;
+                while (runs.size() > 0) {
+                    try {
+                        doPass(runs, runProcOffset);
+                        if (runs.size() + 2 <= framesLimit) {
+                            // final phase
+                            runProcOffset = 0;
+                        } else {
+                            // one more merge level
+                            runProcOffset++;
+                        }
+                    } catch (Exception e) {
+                        throw new HyracksDataException(e);
+                    }
+                }
+                inFrames.clear();
+            }
+        } catch (Exception e) {
+            outputWriter.fail();
+            throw new HyracksDataException(e);
+        } finally {
+            mergeState.close();
+        }
+    }
+
+    private void doPass(LinkedList<RunFileReader> runs, int offset) throws HyracksDataException {
+        FileReference newRun = null;
+        IFrameWriter writer = outputWriter;
+        boolean finalPass = false;
+
+        int runNumber = runs.size() - offset;
+
+        while (inFrames.size() + 2 < framesLimit) {
+            inFrames.add(ctx.allocateFrame());
+        }
+
+        if (runNumber + 2 <= framesLimit) {
+            finalPass = true;
+            if (isLoadOptimized)
+                runFrameLimit = (framesLimit - 2) / runNumber;
+            else
+                runFrameLimit = 1;
+        } else {
+            runFrameLimit = 1;
+            runNumber = framesLimit - 2;
+            newRun = ctx.getJobletContext().createManagedWorkspaceFile(
+                    HybridHashSortGrouperBucketMerge.class.getSimpleName());
+            writer = new RunFileWriter(newRun, ctx.getIOManager());
+            writer.open();
+        }
+        try {
+            currentFrameIndexInRun = new int[runNumber];
+            currentRunFrames = new int[runNumber];
+            currentBucketInRun = new int[runNumber];
+            /**
+             * Create file readers for each input run file, only for
+             * the ones fit into the inFrames
+             */
+            RunFileReader[] runFileReaders = new RunFileReader[runNumber];
+            FrameTupleAccessor[] tupleAccessors = new FrameTupleAccessor[inFrames.size()];
+            Comparator<ReferenceHashEntry> comparator = createEntryComparator(comparators);
+            ReferencedBucketBasedPriorityQueue topTuples = new ReferencedBucketBasedPriorityQueue(ctx.getFrameSize(),
+                    inRecDesc, runNumber, comparator, tpc, tableSize);
+            /**
+             * current tuple index in each run
+             */
+            int[] tupleIndices = new int[runNumber];
+
+            for (int i = 0; i < runNumber; i++) {
+                int runIndex = i + offset;
+                tupleIndices[i] = 0;
+                // Load the run file
+                runFileReaders[i] = runs.get(runIndex);
+                runFileReaders[i].open();
+
+                currentRunFrames[i] = 0;
+                currentFrameIndexInRun[i] = i * runFrameLimit;
+                for (int j = 0; j < runFrameLimit; j++) {
+                    int frameIndex = currentFrameIndexInRun[i] + j;
+                    boolean hasNextFrame = runFileReaders[runIndex].nextFrame(inFrames.get(frameIndex));
+                    if (hasNextFrame) {
+                        tupleAccessors[frameIndex] = new FrameTupleAccessor(ctx.getFrameSize(), inRecDesc);
+                        tupleAccessors[frameIndex].reset(inFrames.get(frameIndex));
+                        currentRunFrames[i]++;
+                        if (j == 0) {
+                            currentBucketInRun[i] = tpc.partition(tupleAccessors[frameIndex], tupleIndices[i],
+                                    tableSize);
+                            setNextTopTuple(i, tupleIndices, runFileReaders, tupleAccessors, topTuples);
+                        }
+                    } else {
+                        break;
+                    }
+                }
+            }
+
+            /**
+             * Start merging
+             */
+            while (!topTuples.areRunsExhausted()) {
+                /**
+                 * Get the top record
+                 */
+                ReferenceEntry top = topTuples.peek();
+                int tupleIndex = top.getTupleIndex();
+                int runIndex = topTuples.peek().getRunid();
+
+                FrameTupleAccessor fta = top.getAccessor();
+
+                int currentTupleInOutFrame = outFrameAccessor.getTupleCount() - 1;
+                if (currentTupleInOutFrame < 0
+                        || compareFrameTuples(fta, tupleIndex, outFrameAccessor, currentTupleInOutFrame) != 0) {
+
+                    tupleBuilder.reset();
+
+                    for (int k = 0; k < keyFields.length; k++) {
+                        tupleBuilder.addField(fta, tupleIndex, keyFields[k]);
+                    }
+
+                    merger.init(tupleBuilder, fta, tupleIndex, mergeState);
+
+                    if (!outAppender.appendSkipEmptyField(tupleBuilder.getFieldEndOffsets(),
+                            tupleBuilder.getByteArray(), 0, tupleBuilder.getSize())) {
+                        flushOutFrame(writer, finalPass);
+                        if (!outAppender.appendSkipEmptyField(tupleBuilder.getFieldEndOffsets(),
+                                tupleBuilder.getByteArray(), 0, tupleBuilder.getSize())) {
+                            throw new HyracksDataException(
+                                    "The partial result is too large to be initialized in a frame.");
+                        }
+                    }
+
+                } else {
+                    /**
+                     * if new tuple is in the same group of the
+                     * current aggregator do merge and output to the
+                     * outFrame
+                     */
+
+                    merger.aggregate(fta, tupleIndex, outFrameAccessor, currentTupleInOutFrame, mergeState);
+
+                }
+                tupleIndices[runIndex]++;
+                setNextTopTuple(runIndex, tupleIndices, runFileReaders, tupleAccessors, topTuples);
+            }
+
+            if (outAppender.getTupleCount() > 0) {
+                flushOutFrame(writer, finalPass);
+                outAppender.reset(outFrame, true);
+            }
+
+            merger.close();
+
+            runs.subList(offset, runNumber).clear();
+            /**
+             * insert the new run file into the beginning of the run
+             * file list
+             */
+            if (!finalPass) {
+                runs.add(offset, ((RunFileWriter) writer).createReader());
+            }
+        } finally {
+            if (!finalPass) {
+                writer.close();
+            }
+            mergeState.reset();
+        }
+    }
+
+    private void flushOutFrame(IFrameWriter writer, boolean isFinal) throws HyracksDataException {
+
+        if (finalTupleBuilder == null) {
+            finalTupleBuilder = new ArrayTupleBuilder(inRecDesc.getFields().length);
+        }
+
+        if (writerFrame == null) {
+            writerFrame = ctx.allocateFrame();
+        }
+
+        if (writerAppender == null) {
+            writerAppender = new FrameTupleAppender(ctx.getFrameSize());
+        }
+        writerAppender.reset(writerFrame, true);
+
+        outFrameAccessor.reset(outFrame);
+
+        for (int i = 0; i < outFrameAccessor.getTupleCount(); i++) {
+
+            finalTupleBuilder.reset();
+
+            for (int k = 0; k < keyFields.length; k++) {
+                finalTupleBuilder.addField(outFrameAccessor, i, keyFields[k]);
+            }
+
+            if (isFinal) {
+
+                merger.outputFinalResult(finalTupleBuilder, outFrameAccessor, i, mergeState);
+
+            } else {
+
+                merger.outputPartialResult(finalTupleBuilder, outFrameAccessor, i, mergeState);
+            }
+
+            if (!writerAppender.appendSkipEmptyField(finalTupleBuilder.getFieldEndOffsets(),
+                    finalTupleBuilder.getByteArray(), 0, finalTupleBuilder.getSize())) {
+                FrameUtils.flushFrame(writerFrame, writer);
+                writerAppender.reset(writerFrame, true);
+                if (!writerAppender.appendSkipEmptyField(finalTupleBuilder.getFieldEndOffsets(),
+                        finalTupleBuilder.getByteArray(), 0, finalTupleBuilder.getSize())) {
+                    throw new HyracksDataException("Aggregation output is too large to be fit into a frame.");
+                }
+            }
+        }
+        if (writerAppender.getTupleCount() > 0) {
+            FrameUtils.flushFrame(writerFrame, writer);
+            writerAppender.reset(writerFrame, true);
+        }
+
+        outAppender.reset(outFrame, true);
+    }
+
+    private void setNextTopTuple(int runIndex, int[] tupleIndices, RunFileReader[] runCursors,
+            FrameTupleAccessor[] tupleAccessors, ReferencedBucketBasedPriorityQueue topTuples)
+            throws HyracksDataException {
+        int runStart = runIndex * runFrameLimit;
+        boolean existNext = false;
+        if (tupleAccessors[currentFrameIndexInRun[runIndex]] == null || runCursors[runIndex] == null) {
+            /**
+             * run already closed
+             */
+            existNext = false;
+        } else if (currentFrameIndexInRun[runIndex] - runStart < currentRunFrames[runIndex] - 1) {
+            /**
+             * not the last frame for this run
+             */
+            existNext = true;
+            if (tupleIndices[runIndex] >= tupleAccessors[currentFrameIndexInRun[runIndex]].getTupleCount()) {
+                tupleIndices[runIndex] = 0;
+                currentFrameIndexInRun[runIndex]++;
+            }
+        } else if (tupleIndices[runIndex] < tupleAccessors[currentFrameIndexInRun[runIndex]].getTupleCount()) {
+            /**
+             * the last frame has expired
+             */
+            existNext = true;
+        } else {
+            /**
+             * If all tuples in the targeting frame have been
+             * checked.
+             */
+            tupleIndices[runIndex] = 0;
+            currentFrameIndexInRun[runIndex] = runStart;
+            /**
+             * read in batch
+             */
+            currentRunFrames[runIndex] = 0;
+            for (int j = 0; j < runFrameLimit; j++) {
+                int frameIndex = currentFrameIndexInRun[runIndex] + j;
+                if (runCursors[runIndex].nextFrame(inFrames.get(frameIndex))) {
+                    tupleAccessors[frameIndex].reset(inFrames.get(frameIndex));
+                    existNext = true;
+                    currentRunFrames[runIndex]++;
+                } else {
+                    break;
+                }
+            }
+        }
+
+        if (existNext) {
+            topTuples.popAndReplace(tupleAccessors[currentFrameIndexInRun[runIndex]], tupleIndices[runIndex]);
+        } else {
+            topTuples.pop();
+            closeRun(runIndex, runCursors, tupleAccessors);
+        }
+    }
+
+    /**
+     * Close the run file, and also the corresponding readers and
+     * input frame.
+     * 
+     * @param index
+     * @param runCursors
+     * @param tupleAccessor
+     * @throws HyracksDataException
+     */
+    private void closeRun(int index, RunFileReader[] runCursors, IFrameTupleAccessor[] tupleAccessor)
+            throws HyracksDataException {
+        if (runCursors[index] != null) {
+            runCursors[index].close();
+            runCursors[index] = null;
+            int frameOffset = index * runFrameLimit;
+            for (int j = 0; j < runFrameLimit; j++) {
+                tupleAccessor[frameOffset + j] = null;
+            }
+        }
+    }
+
+    private int compareFrameTuples(IFrameTupleAccessor fta1, int j1, IFrameTupleAccessor fta2, int j2) {
+        byte[] b1 = fta1.getBuffer().array();
+        byte[] b2 = fta2.getBuffer().array();
+        for (int f = 0; f < keyFields.length; ++f) {
+            int fIdx = f;
+            int s1 = fta1.getTupleStartOffset(j1) + fta1.getFieldSlotsLength() + fta1.getFieldStartOffset(j1, fIdx);
+            int l1 = fta1.getFieldLength(j1, fIdx);
+            int s2 = fta2.getTupleStartOffset(j2) + fta2.getFieldSlotsLength() + fta2.getFieldStartOffset(j2, fIdx);
+            int l2_start = fta2.getFieldStartOffset(j2, fIdx);
+            int l2_end = fta2.getFieldEndOffset(j2, fIdx);
+            int l2 = l2_end - l2_start;
+            int c = comparators[f].compare(b1, s1, l1, b2, s2, l2);
+            if (c != 0) {
+                return c;
+            }
+        }
+        return 0;
+    }
+
+    private Comparator<ReferenceHashEntry> createEntryComparator(final IBinaryComparator[] comparators) {
+        return new Comparator<ReferenceHashEntry>() {
+
+            @Override
+            public int compare(ReferenceHashEntry o1, ReferenceHashEntry o2) {
+                int cmp = o1.getHashValue() - o2.getHashValue();
+                if (cmp != 0) {
+                    return cmp;
+                } else {
+                    FrameTupleAccessor fta1 = (FrameTupleAccessor) o1.getAccessor();
+                    FrameTupleAccessor fta2 = (FrameTupleAccessor) o2.getAccessor();
+                    int j1 = o1.getTupleIndex();
+                    int j2 = o2.getTupleIndex();
+                    byte[] b1 = fta1.getBuffer().array();
+                    byte[] b2 = fta2.getBuffer().array();
+                    for (int f = 0; f < keyFields.length; ++f) {
+                        int fIdx = f;
+                        int s1 = fta1.getTupleStartOffset(j1) + fta1.getFieldSlotsLength()
+                                + fta1.getFieldStartOffset(j1, fIdx);
+                        int l1 = fta1.getFieldEndOffset(j1, fIdx) - fta1.getFieldStartOffset(j1, fIdx);
+                        int s2 = fta2.getTupleStartOffset(j2) + fta2.getFieldSlotsLength()
+                                + fta2.getFieldStartOffset(j2, fIdx);
+                        int l2 = fta2.getFieldEndOffset(j2, fIdx) - fta2.getFieldStartOffset(j2, fIdx);
+                        int c = comparators[f].compare(b1, s1, l1, b2, s2, l2);
+                        if (c != 0) {
+                            return c;
+                        }
+                    }
+                    return 0;
+                }
+            }
+
+        };
+    }
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortRunMerger.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortRunMerger.java
new file mode 100644
index 0000000..a846e4a
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/HybridHashSortRunMerger.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hashsort;
+
+import java.nio.ByteBuffer;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import edu.uci.ics.hyracks.api.comm.IFrameReader;
+import edu.uci.ics.hyracks.api.comm.IFrameWriter;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.api.io.FileReference;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAppender;
+import edu.uci.ics.hyracks.dataflow.common.comm.util.FrameUtils;
+import edu.uci.ics.hyracks.dataflow.common.io.RunFileReader;
+import edu.uci.ics.hyracks.dataflow.common.io.RunFileWriter;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptor;
+
+public class HybridHashSortRunMerger {
+
+    private final IHyracksTaskContext ctx;
+    private final List<RunFileReader> runs;
+    private final int[] keyFields;
+    private final IBinaryComparator[] comparators;
+    private final RecordDescriptor recordDesc;
+    private final int framesLimit;
+    private final int tableSize;
+    private final IFrameWriter writer;
+    private final IAggregatorDescriptor grouper;
+    private final ITuplePartitionComputer tpc;
+    private ByteBuffer outFrame;
+    private FrameTupleAppender outFrameAppender;
+    private final boolean isLoadBuffered;
+
+    public HybridHashSortRunMerger(IHyracksTaskContext ctx, LinkedList<RunFileReader> runs, int[] keyFields,
+            IBinaryComparator[] comparators, RecordDescriptor recordDesc, ITuplePartitionComputer tpc,
+            IAggregatorDescriptor grouper, int framesLimit, int tableSize, IFrameWriter writer, boolean isLoadBuffered) {
+        this.ctx = ctx;
+        this.runs = runs;
+        this.keyFields = keyFields;
+        this.comparators = comparators;
+        this.recordDesc = recordDesc;
+        this.framesLimit = framesLimit;
+        this.writer = writer;
+        this.isLoadBuffered = isLoadBuffered;
+        this.tableSize = tableSize;
+        this.tpc = tpc;
+        this.grouper = grouper;
+    }
+
+    public void process() throws HyracksDataException {
+        
+        // FIXME
+        int mergeLevels = 0, mergeRunCount = 0;
+        try {
+
+            outFrame = ctx.allocateFrame();
+            outFrameAppender = new FrameTupleAppender(ctx.getFrameSize());
+            outFrameAppender.reset(outFrame, true);
+
+            int maxMergeWidth = framesLimit - 1;
+            while (runs.size() > maxMergeWidth) {
+                int generationSeparator = 0;
+                // FIXME
+                int mergeRounds = 0;
+                while (generationSeparator < runs.size() && runs.size() > maxMergeWidth) {
+                    int mergeWidth = Math.min(Math.min(runs.size() - generationSeparator, maxMergeWidth), runs.size()
+                            - maxMergeWidth + 1);
+                    FileReference newRun = null;
+                    IFrameWriter mergeResultWriter = this.writer;
+                    newRun = ctx.createManagedWorkspaceFile(HybridHashSortRunMerger.class.getSimpleName());
+                    mergeResultWriter = new RunFileWriter(newRun, ctx.getIOManager());
+                    mergeResultWriter.open();
+                    IFrameReader[] runCursors = new RunFileReader[mergeWidth];
+                    for (int i = 0; i < mergeWidth; i++) {
+                        runCursors[i] = runs.get(generationSeparator + i);
+                    }
+                    merge(mergeResultWriter, runCursors, false);
+                    runs.subList(generationSeparator, generationSeparator + mergeWidth).clear();
+                    runs.add(generationSeparator++, ((RunFileWriter) mergeResultWriter).createReader());
+                    mergeRounds++;
+                }
+                mergeLevels++;
+                mergeRunCount += mergeRounds;
+            }
+            if (!runs.isEmpty()) {
+                IFrameReader[] runCursors = new RunFileReader[runs.size()];
+                for (int i = 0; i < runCursors.length; i++) {
+                    runCursors[i] = runs.get(i);
+                }
+                merge(writer, runCursors, true);
+            }
+        } catch (Exception e) {
+            writer.fail();
+            throw new HyracksDataException(e);
+        } finally {
+
+            ctx.getCounterContext()
+                    .getCounter("optional." + HybridHashSortRunMerger.class.getSimpleName() + ".merge.runs.count", true)
+                    .set(mergeRunCount);
+
+            ctx.getCounterContext()
+                    .getCounter("optional." + HybridHashSortRunMerger.class.getSimpleName() + ".merge.levels", true)
+                    .set(mergeLevels);
+        }
+    }
+
+    private void merge(IFrameWriter mergeResultWriter, IFrameReader[] runCursors, boolean isFinal)
+            throws HyracksDataException {
+        // FIXME
+        long methodTimer = System.nanoTime();
+
+        IFrameReader merger = new GroupRunMergingFrameReader(ctx, runCursors, framesLimit, tableSize, keyFields, tpc,
+                comparators, grouper, recordDesc, isFinal, isLoadBuffered);
+        merger.open();
+        try {
+            while (merger.nextFrame(outFrame)) {
+                FrameUtils.flushFrame(outFrame, mergeResultWriter);
+            }
+        } finally {
+            merger.close();
+        }
+        ctx.getCounterContext()
+                .getCounter("optional." + HybridHashSortRunMerger.class.getSimpleName() + ".merge.time", true)
+                .update(System.nanoTime() - methodTimer);
+    }
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferenceEntryWithBucketID.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferenceEntryWithBucketID.java
new file mode 100644
index 0000000..3c91fea
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferenceEntryWithBucketID.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hashsort;
+
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.std.util.ReferenceEntry;
+
+public class ReferenceEntryWithBucketID extends ReferenceEntry {
+
+    private int bucketID;
+
+    public ReferenceEntryWithBucketID(int runid, FrameTupleAccessor fta, int tupleIndex, int bucketID) {
+        super(runid, fta, tupleIndex);
+        this.bucketID = bucketID;
+    }
+
+    public int getBucketID() {
+        return bucketID;
+    }
+
+    public void setBucketID(int bucketID) {
+        this.bucketID = bucketID;
+    }
+
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferenceHashEntry.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferenceHashEntry.java
new file mode 100644
index 0000000..394f0a8
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferenceHashEntry.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hashsort;
+
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.std.util.ReferenceEntry;
+
+public class ReferenceHashEntry extends ReferenceEntry {
+
+    private int hashValue;
+
+    public ReferenceHashEntry(int runid, FrameTupleAccessor fta, int tupleIndex, int hashVal) {
+        super(runid, fta, tupleIndex);
+        this.hashValue = hashVal;
+    }
+
+    public int getHashValue() {
+        return hashValue;
+    }
+
+    public void setHashValue(int hashVal) {
+        this.hashValue = hashVal;
+    }
+
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferencedBucketBasedPriorityQueue.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferencedBucketBasedPriorityQueue.java
new file mode 100644
index 0000000..adfbe81
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferencedBucketBasedPriorityQueue.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hashsort;
+
+import java.io.IOException;
+import java.util.BitSet;
+import java.util.Comparator;
+
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.std.util.ReferenceEntry;
+
+public class ReferencedBucketBasedPriorityQueue {
+
+    private final int frameSize;
+    private final RecordDescriptor recordDescriptor;
+    private final ReferenceHashEntry entries[];
+    private final int size;
+    private final BitSet runAvail;
+    private int nItems;
+    private final int tableSize;
+
+    private final Comparator<ReferenceHashEntry> comparator;
+
+    private final ITuplePartitionComputer tpc;
+
+    public ReferencedBucketBasedPriorityQueue(int frameSize, RecordDescriptor recordDescriptor, int initSize,
+            Comparator<ReferenceHashEntry> comparator, ITuplePartitionComputer tpc, int tableSize) {
+        this.frameSize = frameSize;
+        this.recordDescriptor = recordDescriptor;
+        if (initSize < 1)
+            throw new IllegalArgumentException();
+        this.comparator = comparator;
+        nItems = initSize;
+        size = (initSize + 1) & 0xfffffffe;
+        entries = new ReferenceHashEntry[size];
+        runAvail = new BitSet(size);
+        runAvail.set(0, initSize, true);
+        for (int i = 0; i < size; i++) {
+            entries[i] = new ReferenceHashEntry(i, null, -1, -1);
+        }
+        this.tpc = tpc;
+        this.tableSize = tableSize;
+    }
+
+    /**
+     * Retrieve the top entry without removing it
+     * 
+     * @return the top entry
+     */
+    public ReferenceEntry peek() {
+        return entries[0];
+    }
+
+    /**
+     * compare the new entry with entries within the queue, to find a spot for
+     * this new entry
+     * 
+     * @param entry
+     * @return runid of this entry
+     * @throws HyracksDataException
+     * @throws IOException
+     */
+    public int popAndReplace(FrameTupleAccessor fta, int tIndex) throws HyracksDataException {
+        ReferenceHashEntry entry = entries[0];
+        if (entry.getAccessor() == null) {
+            entry.setAccessor(new FrameTupleAccessor(frameSize, recordDescriptor));
+        }
+        entry.getAccessor().reset(fta.getBuffer());
+        entry.setTupleIndex(tIndex);
+        entry.setHashValue(tpc.partition(fta, tIndex, tableSize));
+
+        add(entry);
+        return entry.getRunid();
+    }
+
+    /**
+     * Push entry into priority queue
+     * 
+     * @param e
+     *            the new Entry
+     * @throws HyracksDataException
+     */
+    private void add(ReferenceHashEntry e) throws HyracksDataException {
+        ReferenceHashEntry min = entries[0];
+        int slot = (size >> 1) + (min.getRunid() >> 1);
+
+        ReferenceHashEntry curr = e;
+        while (!runAvail.isEmpty() && slot > 0) {
+            int c = 0;
+            if (!runAvail.get(entries[slot].getRunid())) {
+                // run of entries[slot] is exhausted, i.e. not available, curr
+                // wins
+                c = 1;
+            } else if (entries[slot].getAccessor() != null /*
+                                                            * entries[slot] is
+                                                            * not MIN value
+                                                            */
+                    && runAvail.get(curr.getRunid() /* curr run is available */)) {
+
+                if (curr.getAccessor() != null) {
+                    c = comparator.compare(entries[slot], curr);
+                } else {
+                    // curr is MIN value, wins
+                    c = 1;
+                }
+            }
+
+            if (c <= 0) { // curr lost
+                // entries[slot] swaps up
+                ReferenceHashEntry tmp = entries[slot];
+                entries[slot] = curr;
+                curr = tmp;// winner to pass up
+            }// else curr wins
+            slot >>= 1;
+        }
+        // set new entries[0]
+        entries[0] = curr;
+    }
+
+    /**
+     * Pop is called only when a run is exhausted
+     * 
+     * @return
+     * @throws HyracksDataException
+     */
+    public ReferenceHashEntry pop() throws HyracksDataException {
+        ReferenceHashEntry min = entries[0];
+        runAvail.clear(min.getRunid());
+        add(min);
+        nItems--;
+        return min;
+    }
+
+    public boolean areRunsExhausted() {
+        return runAvail.isEmpty();
+    }
+
+    public int size() {
+        return nItems;
+    }
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferencedPriorityQueue.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferencedPriorityQueue.java
new file mode 100644
index 0000000..d9d5118
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hashsort/ReferencedPriorityQueue.java
@@ -0,0 +1,133 @@
+package edu.uci.ics.hyracks.dataflow.std.group.hashsort;
+
+import java.io.IOException;
+import java.util.BitSet;
+import java.util.Comparator;
+
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+
+/**
+ * TODO need to be merged with the ReferencedPriorityQueue in the util package
+ */
+public class ReferencedPriorityQueue {
+    private final int frameSize;
+    private final RecordDescriptor recordDescriptor;
+    private final ReferenceEntryWithBucketID entries[];
+    private final int size;
+    private final BitSet runAvail;
+    private int nItems;
+
+    private final Comparator<ReferenceEntryWithBucketID> comparator;
+
+    public ReferencedPriorityQueue(int frameSize, RecordDescriptor recordDescriptor, int initSize,
+            Comparator<ReferenceEntryWithBucketID> comparator) {
+        this.frameSize = frameSize;
+        this.recordDescriptor = recordDescriptor;
+        if (initSize < 1)
+            throw new IllegalArgumentException();
+        this.comparator = comparator;
+        nItems = initSize;
+        size = (initSize + 1) & 0xfffffffe;
+        entries = new ReferenceEntryWithBucketID[size];
+        runAvail = new BitSet(size);
+        runAvail.set(0, initSize, true);
+        for (int i = 0; i < size; i++) {
+            entries[i] = new ReferenceEntryWithBucketID(i, null, -1, -1);
+        }
+    }
+
+    /**
+     * Retrieve the top entry without removing it
+     * 
+     * @return the top entry
+     */
+    public ReferenceEntryWithBucketID peek() {
+        return entries[0];
+    }
+
+    /**
+     * compare the new entry with entries within the queue, to find a spot for
+     * this new entry
+     * 
+     * @param entry
+     * @return runid of this entry
+     * @throws IOException
+     */
+    public int popAndReplace(FrameTupleAccessor fta, int tIndex, int bucketID) {
+        ReferenceEntryWithBucketID entry = entries[0];
+        if (entry.getAccessor() == null) {
+            entry.setAccessor(new FrameTupleAccessor(frameSize, recordDescriptor));
+        }
+        entry.getAccessor().reset(fta.getBuffer());
+        entry.setTupleIndex(tIndex);
+        entry.setBucketID(bucketID);
+
+        add(entry);
+        return entry.getRunid();
+    }
+
+    /**
+     * Push entry into priority queue
+     * 
+     * @param e
+     *            the new Entry
+     */
+    private void add(ReferenceEntryWithBucketID e) {
+        ReferenceEntryWithBucketID min = entries[0];
+        int slot = (size >> 1) + (min.getRunid() >> 1);
+
+        ReferenceEntryWithBucketID curr = e;
+        while (!runAvail.isEmpty() && slot > 0) {
+            int c = 0;
+            if (!runAvail.get(entries[slot].getRunid())) {
+                // run of entries[slot] is exhausted, i.e. not available, curr
+                // wins
+                c = 1;
+            } else if (entries[slot].getAccessor() != null /*
+                                                            * entries[slot] is
+                                                            * not MIN value
+                                                            */
+                    && runAvail.get(curr.getRunid() /* curr run is available */)) {
+
+                if (curr.getAccessor() != null) {
+                    c = comparator.compare(entries[slot], curr);
+                } else {
+                    // curr is MIN value, wins
+                    c = 1;
+                }
+            }
+
+            if (c <= 0) { // curr lost
+                // entries[slot] swaps up
+                ReferenceEntryWithBucketID tmp = entries[slot];
+                entries[slot] = curr;
+                curr = tmp;// winner to pass up
+            }// else curr wins
+            slot >>= 1;
+        }
+        // set new entries[0]
+        entries[0] = curr;
+    }
+
+    /**
+     * Pop is called only when a run is exhausted
+     * 
+     * @return
+     */
+    public ReferenceEntryWithBucketID pop() {
+        ReferenceEntryWithBucketID min = entries[0];
+        runAvail.clear(min.getRunid());
+        add(min);
+        nItems--;
+        return min;
+    }
+
+    public boolean areRunsExhausted() {
+        return runAvail.isEmpty();
+    }
+
+    public int size() {
+        return nItems;
+    }
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/FrameTupleAccessorForGroupHashtable.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/FrameTupleAccessorForGroupHashtable.java
new file mode 100644
index 0000000..72bae76
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/FrameTupleAccessorForGroupHashtable.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hybridhash;
+
+import java.nio.ByteBuffer;
+
+import edu.uci.ics.hyracks.api.comm.FrameHelper;
+import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+
+public class FrameTupleAccessorForGroupHashtable implements IFrameTupleAccessor {
+    private final int frameSize;
+    private final RecordDescriptor recordDescriptor;
+
+    private final static int INT_SIZE = 4;
+
+    private ByteBuffer buffer;
+
+    public FrameTupleAccessorForGroupHashtable(int frameSize, RecordDescriptor recordDescriptor) {
+        this.frameSize = frameSize;
+        this.recordDescriptor = recordDescriptor;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#getFieldCount()
+     */
+    @Override
+    public int getFieldCount() {
+        return recordDescriptor.getFieldCount();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#getFieldSlotsLength()
+     */
+    @Override
+    public int getFieldSlotsLength() {
+        return getFieldCount() * 4;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#getFieldEndOffset(int, int)
+     */
+    @Override
+    public int getFieldEndOffset(int tupleIndex, int fIdx) {
+        return buffer.getInt(getTupleStartOffset(tupleIndex) + fIdx * 4);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#getFieldStartOffset(int, int)
+     */
+    @Override
+    public int getFieldStartOffset(int tupleIndex, int fIdx) {
+        return fIdx == 0 ? 0 : buffer.getInt(getTupleStartOffset(tupleIndex) + (fIdx - 1) * 4);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#getFieldLength(int, int)
+     */
+    @Override
+    public int getFieldLength(int tupleIndex, int fIdx) {
+        return getFieldEndOffset(tupleIndex, fIdx) - getFieldStartOffset(tupleIndex, fIdx);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#getTupleEndOffset(int)
+     */
+    @Override
+    public int getTupleEndOffset(int tupleIndex) {
+        return buffer.getInt(FrameHelper.getTupleCountOffset(frameSize) - 4 * (tupleIndex + 1)) - 2 * INT_SIZE;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#getTupleStartOffset(int)
+     */
+    @Override
+    public int getTupleStartOffset(int tupleIndex) {
+        return tupleIndex == 0 ? 0 : buffer.getInt(FrameHelper.getTupleCountOffset(frameSize) - 4 * tupleIndex);
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#getTupleCount()
+     */
+    @Override
+    public int getTupleCount() {
+        return buffer.getInt(FrameHelper.getTupleCountOffset(frameSize));
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#getBuffer()
+     */
+    @Override
+    public ByteBuffer getBuffer() {
+        return buffer;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor#reset(java.nio.ByteBuffer)
+     */
+    @Override
+    public void reset(ByteBuffer buffer) {
+        this.buffer = buffer;
+    }
+
+    public int getTupleHashReferenceOffset(int tupleIndex) {
+        return getTupleEndOffset(tupleIndex);
+    }
+
+    public int getTupleEndOffsetWithHashReference(int tupleIndex) {
+        return buffer.getInt(FrameHelper.getTupleCountOffset(frameSize) - 4 * (tupleIndex + 1));
+    }
+
+    public int getHashReferenceNextFrameIndex(int tupleIndex) {
+        return buffer.getInt(getTupleHashReferenceOffset(tupleIndex));
+    }
+
+    public int getHashReferenceNextTupleIndex(int tupleIndex) {
+        return buffer.getInt(getTupleHashReferenceOffset(tupleIndex) + INT_SIZE);
+    }
+
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/FrameTupleAppenderForGroupHashtable.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/FrameTupleAppenderForGroupHashtable.java
new file mode 100644
index 0000000..c5668f5
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/FrameTupleAppenderForGroupHashtable.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hybridhash;
+
+import java.nio.ByteBuffer;
+
+import edu.uci.ics.hyracks.api.comm.FrameHelper;
+import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
+
+public class FrameTupleAppenderForGroupHashtable {
+    private final int frameSize;
+
+    private ByteBuffer buffer;
+
+    private int tupleCount;
+
+    private int tupleDataEndOffset;
+
+    public FrameTupleAppenderForGroupHashtable(int frameSize) {
+        this.frameSize = frameSize;
+    }
+
+    public void reset(ByteBuffer buffer, boolean clear) {
+        this.buffer = buffer;
+        if (clear) {
+            buffer.putInt(FrameHelper.getTupleCountOffset(frameSize), 0);
+            tupleCount = 0;
+            tupleDataEndOffset = 0;
+        } else {
+            tupleCount = buffer.getInt(FrameHelper.getTupleCountOffset(frameSize));
+            tupleDataEndOffset = tupleCount == 0 ? 0 : buffer.getInt(FrameHelper.getTupleCountOffset(frameSize)
+                    - tupleCount * 4);
+        }
+    }
+
+    public boolean append(int[] fieldSlots, byte[] bytes, int offset, int length) {
+        if (tupleDataEndOffset + fieldSlots.length * 4 + length + 2 * 4 + 4 + (tupleCount + 1) * 4 <= frameSize) {
+            for (int i = 0; i < fieldSlots.length; ++i) {
+                buffer.putInt(tupleDataEndOffset + i * 4, fieldSlots[i]);
+            }
+            System.arraycopy(bytes, offset, buffer.array(), tupleDataEndOffset + fieldSlots.length * 4, length);
+            buffer.putInt(tupleDataEndOffset + fieldSlots.length * 4 + length, -1);
+            buffer.putInt(tupleDataEndOffset + fieldSlots.length * 4 + length + 4, -1);
+            tupleDataEndOffset += fieldSlots.length * 4 + length + 2 * 4;
+            buffer.putInt(FrameHelper.getTupleCountOffset(frameSize) - 4 * (tupleCount + 1), tupleDataEndOffset);
+            ++tupleCount;
+            buffer.putInt(FrameHelper.getTupleCountOffset(frameSize), tupleCount);
+            return true;
+        }
+        return false;
+    }
+
+    public boolean append(byte[] bytes, int offset, int length) {
+        if (tupleDataEndOffset + length + 2 * 4 + 4 + (tupleCount + 1) * 4 <= frameSize) {
+            System.arraycopy(bytes, offset, buffer.array(), tupleDataEndOffset, length);
+            buffer.putInt(tupleDataEndOffset + length, -1);
+            buffer.putInt(tupleDataEndOffset + length + 4, -1);
+            tupleDataEndOffset += length + 2 * 4;
+            buffer.putInt(FrameHelper.getTupleCountOffset(frameSize) - 4 * (tupleCount + 1), tupleDataEndOffset);
+            ++tupleCount;
+            buffer.putInt(FrameHelper.getTupleCountOffset(frameSize), tupleCount);
+            return true;
+        }
+        return false;
+    }
+
+    public boolean appendSkipEmptyField(int[] fieldSlots, byte[] bytes, int offset, int length) {
+        if (tupleDataEndOffset + fieldSlots.length * 4 + length + 2 * 4 + 4 + (tupleCount + 1) * 4 <= frameSize) {
+            int effectiveSlots = 0;
+            for (int i = 0; i < fieldSlots.length; ++i) {
+                if (fieldSlots[i] > 0) {
+                    buffer.putInt(tupleDataEndOffset + i * 4, fieldSlots[i]);
+                    effectiveSlots++;
+                }
+            }
+            System.arraycopy(bytes, offset, buffer.array(), tupleDataEndOffset + effectiveSlots * 4, length);
+            buffer.putInt(tupleDataEndOffset + effectiveSlots * 4 + length, -1);
+            buffer.putInt(tupleDataEndOffset + effectiveSlots * 4 + length + 4, -1);
+            tupleDataEndOffset += effectiveSlots * 4 + length + 2 * 4;
+            buffer.putInt(FrameHelper.getTupleCountOffset(frameSize) - 4 * (tupleCount + 1), tupleDataEndOffset);
+            ++tupleCount;
+            buffer.putInt(FrameHelper.getTupleCountOffset(frameSize), tupleCount);
+            return true;
+        }
+        return false;
+    }
+
+    public boolean append(IFrameTupleAccessor tupleAccessor, int tStartOffset, int tEndOffset) {
+        int length = tEndOffset - tStartOffset;
+        if (tupleDataEndOffset + length + 2 * 4 + 4 + (tupleCount + 1) * 4 <= frameSize) {
+            ByteBuffer src = tupleAccessor.getBuffer();
+            System.arraycopy(src.array(), tStartOffset, buffer.array(), tupleDataEndOffset, length);
+            buffer.putInt(tupleDataEndOffset + length, -1);
+            buffer.putInt(tupleDataEndOffset + length + 4, -1);
+            tupleDataEndOffset += length + 2 * 4;
+            buffer.putInt(FrameHelper.getTupleCountOffset(frameSize) - 4 * (tupleCount + 1), tupleDataEndOffset);
+            ++tupleCount;
+            buffer.putInt(FrameHelper.getTupleCountOffset(frameSize), tupleCount);
+            return true;
+        }
+        return false;
+    }
+
+    public boolean append(IFrameTupleAccessor tupleAccessor, int tIndex) {
+        int tStartOffset = tupleAccessor.getTupleStartOffset(tIndex);
+        int tEndOffset = tupleAccessor.getTupleEndOffset(tIndex);
+        return append(tupleAccessor, tStartOffset, tEndOffset);
+    }
+
+    public int getTupleCount() {
+        return tupleCount;
+    }
+
+    public ByteBuffer getBuffer() {
+        return buffer;
+    }
+}
+
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/HybridHashGroupHashTable.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/HybridHashGroupHashTable.java
new file mode 100644
index 0000000..b325b83
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/HybridHashGroupHashTable.java
@@ -0,0 +1,609 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hybridhash;
+
+import java.nio.ByteBuffer;
+import java.util.LinkedList;
+import java.util.List;
+
+import edu.uci.ics.hyracks.api.comm.IFrameReader;
+import edu.uci.ics.hyracks.api.comm.IFrameWriter;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputerFamily;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAppender;
+import edu.uci.ics.hyracks.dataflow.common.comm.util.FrameUtils;
+import edu.uci.ics.hyracks.dataflow.common.io.RunFileWriter;
+import edu.uci.ics.hyracks.dataflow.std.group.AggregateState;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.structures.TuplePointer;
+
+public class HybridHashGroupHashTable implements IFrameWriter {
+
+    private final static int HEADER_REF_EMPTY = -1;
+
+    private static final int INT_SIZE = 4;
+
+    private IHyracksTaskContext ctx;
+
+    private final int frameSize;
+
+    private final int framesLimit;
+
+    private final int tableSize;
+
+    private final int numOfPartitions;
+
+    private final IFrameWriter outputWriter;
+
+    private final IBinaryComparator[] comparators;
+
+    /**
+     * index for keys
+     */
+    private final int[] inputKeys, internalKeys;
+
+    private final RecordDescriptor inputRecordDescriptor, outputRecordDescriptor;
+
+    /**
+     * hash partitioner for hashing
+     */
+    private final ITuplePartitionComputer hashComputer;
+
+    /**
+     * hash partitioner for partitioning
+     */
+    private final ITuplePartitionComputer partitionComputer;
+
+    /**
+     * Hashtable haders
+     */
+    private ByteBuffer[] headers;
+
+    /**
+     * buffers for hash table
+     */
+    private ByteBuffer[] contents;
+
+    /**
+     * output buffers for spilled partitions
+     */
+    private ByteBuffer[] spilledPartOutputBuffers;
+
+    /**
+     * run writers for spilled partitions
+     */
+    private RunFileWriter[] spilledPartRunWriters;
+
+    private int[] spilledPartRunSizeArrayInFrames;
+    private int[] spilledPartRunSizeArrayInTuples;
+
+    private List<IFrameReader> spilledPartRunReaders = null;
+    private List<Integer> spilledRunAggregatedPages = null;
+    private List<Integer> spilledPartRunSizesInFrames = null;
+    private List<Integer> spilledPartRunSizesInTuples = null;
+
+    /**
+     * index of the current working buffer in hash table
+     */
+    private int currentHashTableFrame;
+
+    /**
+     * Aggregation state
+     */
+    private AggregateState htAggregateState;
+
+    /**
+     * the aggregator
+     */
+    private final IAggregatorDescriptor aggregator;
+
+    /**
+     * records inserted into the in-memory hash table (for hashing and aggregation)
+     */
+    private int hashedRawRecords = 0;
+
+    /**
+     * in-memory part size in tuples
+     */
+    private int hashedKeys = 0;
+
+    /**
+     * Hash table tuple pointer
+     */
+    private TuplePointer matchPointer;
+
+    /**
+     * Frame tuple accessor for input data frames
+     */
+    private FrameTupleAccessor inputFrameTupleAccessor;
+
+    /**
+     * flag for whether the hash table if full
+     */
+    private boolean isHashtableFull;
+
+    /**
+     * flag for only partition (no aggregation and hashing)
+     */
+    private boolean isPartitionOnly;
+
+    /**
+     * Tuple accessor for hash table contents
+     */
+    private FrameTupleAccessorForGroupHashtable hashtableRecordAccessor;
+
+    private ArrayTupleBuilder internalTupleBuilder;
+
+    private FrameTupleAppender spilledPartInsertAppender;
+
+    private FrameTupleAppenderForGroupHashtable htInsertAppender;
+
+    public HybridHashGroupHashTable(IHyracksTaskContext ctx, int framesLimit, int tableSize, int numOfPartitions,
+            int[] keys, int hashSeedOffset, IBinaryComparator[] comparators, ITuplePartitionComputerFamily tpcFamily,
+            IAggregatorDescriptor aggregator, RecordDescriptor inputRecordDescriptor,
+            RecordDescriptor outputRecordDescriptor, IFrameWriter outputWriter) throws HyracksDataException {
+        this.ctx = ctx;
+        this.frameSize = ctx.getFrameSize();
+        this.tableSize = tableSize;
+        this.framesLimit = framesLimit;
+        this.numOfPartitions = numOfPartitions;
+        this.inputKeys = keys;
+        this.internalKeys = new int[keys.length];
+        for (int i = 0; i < internalKeys.length; i++) {
+            internalKeys[i] = i;
+        }
+
+        this.comparators = comparators;
+
+        this.inputRecordDescriptor = inputRecordDescriptor;
+        this.outputRecordDescriptor = outputRecordDescriptor;
+
+        this.outputWriter = outputWriter;
+
+        this.hashComputer = tpcFamily.createPartitioner(hashSeedOffset * 2);
+        this.partitionComputer = tpcFamily.createPartitioner(hashSeedOffset * 2 + 1);
+
+        this.aggregator = aggregator;
+
+    }
+
+    public static double getHashtableOverheadRatio(int tableSize, int frameSize, int framesLimit, int recordSizeInByte) {
+        int pagesForRecord = framesLimit - getHeaderPages(tableSize, frameSize);
+        int recordsInHashtable = (pagesForRecord - 1) * ((int) (frameSize / (recordSizeInByte + 2 * INT_SIZE)));
+
+        return (double) framesLimit * frameSize / recordsInHashtable / recordSizeInByte;
+    }
+
+    public static int getHeaderPages(int tableSize, int frameSize) {
+        return (int) Math.ceil((double)tableSize * INT_SIZE * 2 / frameSize);
+    }
+
+    @Override
+    public void open() throws HyracksDataException {
+        // initialize hash headers
+        int htHeaderCount = getHeaderPages(tableSize, frameSize);
+
+        isPartitionOnly = false;
+        if (numOfPartitions >= framesLimit - htHeaderCount) {
+            isPartitionOnly = true;
+        }
+
+        if (isPartitionOnly) {
+            htHeaderCount = 0;
+        }
+
+        headers = new ByteBuffer[htHeaderCount];
+
+        // initialize hash table contents
+        contents = new ByteBuffer[framesLimit - htHeaderCount - numOfPartitions];
+        currentHashTableFrame = 0;
+        isHashtableFull = false;
+
+        // initialize hash table aggregate state
+        htAggregateState = aggregator.createAggregateStates();
+
+        // initialize partition information
+        spilledPartOutputBuffers = new ByteBuffer[numOfPartitions];
+        spilledPartRunWriters = new RunFileWriter[numOfPartitions];
+        spilledPartRunSizeArrayInFrames = new int[numOfPartitions];
+        spilledPartRunSizeArrayInTuples = new int[numOfPartitions];
+
+        // initialize other helper classes
+        inputFrameTupleAccessor = new FrameTupleAccessor(frameSize, inputRecordDescriptor);
+        internalTupleBuilder = new ArrayTupleBuilder(outputRecordDescriptor.getFieldCount());
+        spilledPartInsertAppender = new FrameTupleAppender(frameSize);
+
+        htInsertAppender = new FrameTupleAppenderForGroupHashtable(frameSize);
+        matchPointer = new TuplePointer();
+        hashtableRecordAccessor = new FrameTupleAccessorForGroupHashtable(frameSize, outputRecordDescriptor);
+    }
+
+    @Override
+    public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
+        inputFrameTupleAccessor.reset(buffer);
+        int tupleCount = inputFrameTupleAccessor.getTupleCount();
+        for (int i = 0; i < tupleCount; i++) {
+            insert(inputFrameTupleAccessor, i);
+        }
+    }
+
+    @Override
+    public void fail() throws HyracksDataException {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void close() throws HyracksDataException {
+        for (int i = 0; i < numOfPartitions; i++) {
+            if (spilledPartRunWriters[i] != null) {
+                spilledPartRunWriters[i].close();
+            }
+        }
+        htAggregateState.close();
+    }
+
+    private void insert(FrameTupleAccessor accessor, int tupleIndex) throws HyracksDataException {
+
+        if (isPartitionOnly) {
+            // for partition only
+            int pid = partitionComputer.partition(accessor, tupleIndex, tableSize) % numOfPartitions;
+            insertSpilledPartition(accessor, tupleIndex, pid);
+            spilledPartRunSizeArrayInTuples[pid]++;
+            return;
+        }
+
+        int hid = hashComputer.partition(accessor, tupleIndex, tableSize);
+
+        if (findMatch(hid, accessor, tupleIndex)) {
+            // found a matching: do aggregation
+            hashtableRecordAccessor.reset(contents[matchPointer.frameIndex]);
+            aggregator.aggregate(accessor, tupleIndex, hashtableRecordAccessor, matchPointer.tupleIndex,
+                    htAggregateState);
+            hashedRawRecords++;
+        } else {
+            if (isHashtableFull) {
+                // when hash table is full: spill the record
+                int pid = partitionComputer.partition(accessor, tupleIndex, tableSize) % numOfPartitions;
+                insertSpilledPartition(accessor, tupleIndex, pid);
+                spilledPartRunSizeArrayInTuples[pid]++;
+            } else {
+                // insert a new entry into the hash table
+                internalTupleBuilder.reset();
+                for (int k = 0; k < inputKeys.length; k++) {
+                    internalTupleBuilder.addField(accessor, tupleIndex, inputKeys[k]);
+                }
+
+                aggregator.init(internalTupleBuilder, accessor, tupleIndex, htAggregateState);
+
+                if (contents[currentHashTableFrame] == null) {
+                    contents[currentHashTableFrame] = ctx.allocateFrame();
+                }
+
+                htInsertAppender.reset(contents[currentHashTableFrame], false);
+                if (!htInsertAppender.append(internalTupleBuilder.getFieldEndOffsets(),
+                        internalTupleBuilder.getByteArray(), 0, internalTupleBuilder.getSize())) {
+                    // hash table is full: try to allocate more frame
+                    currentHashTableFrame++;
+                    if (currentHashTableFrame >= contents.length) {
+                        // no more frame to allocate: stop expending the hash table
+                        isHashtableFull = true;
+
+                        // reinsert the record
+                        insert(accessor, tupleIndex);
+
+                        return;
+                    } else {
+                        if (contents[currentHashTableFrame] == null) {
+                            contents[currentHashTableFrame] = ctx.allocateFrame();
+                        }
+
+                        htInsertAppender.reset(contents[currentHashTableFrame], true);
+
+                        if (!htInsertAppender.append(internalTupleBuilder.getFieldEndOffsets(),
+                                internalTupleBuilder.getByteArray(), 0, internalTupleBuilder.getSize())) {
+                            throw new HyracksDataException(
+                                    "Failed to insert an aggregation partial result into the in-memory hash table: it has the length of "
+                                            + internalTupleBuilder.getSize() + " and fields "
+                                            + internalTupleBuilder.getFieldEndOffsets().length);
+                        }
+
+                    }
+                }
+
+                // update hash table reference
+                if (matchPointer.frameIndex < 0) {
+                    // need to initialize the hash table header
+                    int headerFrameIndex = getHeaderFrameIndex(hid);
+                    int headerFrameOffset = getHeaderTupleIndex(hid);
+
+                    if (headers[headerFrameIndex] == null) {
+                        headers[headerFrameIndex] = ctx.allocateFrame();
+                        resetHeader(headerFrameIndex);
+                    }
+
+                    headers[headerFrameIndex].putInt(headerFrameOffset, currentHashTableFrame);
+                    headers[headerFrameIndex]
+                            .putInt(headerFrameOffset + INT_SIZE, htInsertAppender.getTupleCount() - 1);
+                } else {
+                    // update the previous reference
+                    hashtableRecordAccessor.reset(contents[matchPointer.frameIndex]);
+                    int refOffset = hashtableRecordAccessor.getTupleHashReferenceOffset(matchPointer.tupleIndex);
+                    contents[matchPointer.frameIndex].putInt(refOffset, currentHashTableFrame);
+                    contents[matchPointer.frameIndex]
+                            .putInt(refOffset + INT_SIZE, htInsertAppender.getTupleCount() - 1);
+                }
+
+                hashedKeys++;
+                hashedRawRecords++;
+            }
+        }
+    }
+
+    /**
+     * Insert record into a spilled partition, by directly copying the tuple into the output buffer.
+     * 
+     * @param accessor
+     * @param tupleIndex
+     * @param pid
+     */
+    private void insertSpilledPartition(FrameTupleAccessor accessor, int tupleIndex, int pid)
+            throws HyracksDataException {
+
+        if (spilledPartOutputBuffers[pid] == null) {
+            spilledPartOutputBuffers[pid] = ctx.allocateFrame();
+        }
+
+        spilledPartInsertAppender.reset(spilledPartOutputBuffers[pid], false);
+
+        if (!spilledPartInsertAppender.append(accessor, tupleIndex)) {
+            // the output buffer is full: flush
+            flushSpilledPartitionOutputBuffer(pid);
+            // reset the output buffer
+            spilledPartInsertAppender.reset(spilledPartOutputBuffers[pid], true);
+
+            if (!spilledPartInsertAppender.append(accessor, tupleIndex)) {
+                throw new HyracksDataException("Failed to insert a record into a spilled partition!");
+            }
+        }
+
+    }
+
+    /**
+     * Flush a spilled partition's output buffer.
+     * 
+     * @param pid
+     * @throws HyracksDataException
+     */
+    private void flushSpilledPartitionOutputBuffer(int pid) throws HyracksDataException {
+        if (spilledPartRunWriters[pid] == null) {
+            spilledPartRunWriters[pid] = new RunFileWriter(
+                    ctx.createManagedWorkspaceFile("HashHashPrePartitionHashTable"), ctx.getIOManager());
+            spilledPartRunWriters[pid].open();
+        }
+
+        FrameUtils.flushFrame(spilledPartOutputBuffers[pid], spilledPartRunWriters[pid]);
+
+        spilledPartRunSizeArrayInFrames[pid]++;
+    }
+
+    /**
+     * Hash table lookup
+     * 
+     * @param hid
+     * @param accessor
+     * @param tupleIndex
+     * @return
+     */
+    private boolean findMatch(int hid, FrameTupleAccessor accessor, int tupleIndex) {
+
+        matchPointer.frameIndex = -1;
+        matchPointer.tupleIndex = -1;
+
+        // get reference in the header
+        int headerFrameIndex = getHeaderFrameIndex(hid);
+        int headerFrameOffset = getHeaderTupleIndex(hid);
+
+        if (headers[headerFrameIndex] == null) {
+            return false;
+        }
+
+        // initialize the pointer to the first record 
+        int entryFrameIndex = headers[headerFrameIndex].getInt(headerFrameOffset);
+        int entryTupleIndex = headers[headerFrameIndex].getInt(headerFrameOffset + INT_SIZE);
+
+        while (entryFrameIndex >= 0) {
+            matchPointer.frameIndex = entryFrameIndex;
+            matchPointer.tupleIndex = entryTupleIndex;
+            hashtableRecordAccessor.reset(contents[entryFrameIndex]);
+            if (compare(accessor, tupleIndex, hashtableRecordAccessor, entryTupleIndex) == 0) {
+                return true;
+            }
+            // Move to the next record in this entry following the linked list
+            int refOffset = hashtableRecordAccessor.getTupleHashReferenceOffset(entryTupleIndex);
+            int prevFrameIndex = entryFrameIndex;
+            entryFrameIndex = contents[prevFrameIndex].getInt(refOffset);
+            entryTupleIndex = contents[prevFrameIndex].getInt(refOffset + INT_SIZE);
+        }
+
+        return false;
+    }
+
+    public void finishup() throws HyracksDataException {
+        // spill all output buffers
+        for (int i = 0; i < numOfPartitions; i++) {
+            if (spilledPartOutputBuffers[i] != null) {
+                flushSpilledPartitionOutputBuffer(i);
+            }
+        }
+        spilledPartOutputBuffers = null;
+
+        // flush in-memory aggregation results: no more frame cost here as all output buffers are recycled
+        ByteBuffer outputBuffer = ctx.allocateFrame();
+        FrameTupleAppender outputBufferAppender = new FrameTupleAppender(frameSize);
+        outputBufferAppender.reset(outputBuffer, true);
+
+        ArrayTupleBuilder outFlushTupleBuilder = new ArrayTupleBuilder(outputRecordDescriptor.getFieldCount());
+
+        for (ByteBuffer htFrame : contents) {
+            if (htFrame == null) {
+                continue;
+            }
+            hashtableRecordAccessor.reset(htFrame);
+            int tupleCount = hashtableRecordAccessor.getTupleCount();
+            for (int i = 0; i < tupleCount; i++) {
+                outFlushTupleBuilder.reset();
+
+                for (int k = 0; k < internalKeys.length; k++) {
+                    outFlushTupleBuilder.addField(hashtableRecordAccessor, i, internalKeys[k]);
+                }
+
+                aggregator.outputFinalResult(outFlushTupleBuilder, hashtableRecordAccessor, i, htAggregateState);
+
+                if (!outputBufferAppender.append(outFlushTupleBuilder.getFieldEndOffsets(),
+                        outFlushTupleBuilder.getByteArray(), 0, outFlushTupleBuilder.getSize())) {
+                    FrameUtils.flushFrame(outputBuffer, outputWriter);
+                    outputBufferAppender.reset(outputBuffer, true);
+
+                    if (!outputBufferAppender.append(outFlushTupleBuilder.getFieldEndOffsets(),
+                            outFlushTupleBuilder.getByteArray(), 0, outFlushTupleBuilder.getSize())) {
+                        throw new HyracksDataException(
+                                "Failed to flush a record from in-memory hash table: record has length of "
+                                        + outFlushTupleBuilder.getSize() + " and fields "
+                                        + outFlushTupleBuilder.getFieldEndOffsets().length);
+                    }
+                }
+            }
+        }
+
+        if (outputBufferAppender.getTupleCount() > 0) {
+            FrameUtils.flushFrame(outputBuffer, outputWriter);
+        }
+
+        // create run readers and statistic information for spilled runs
+        spilledPartRunReaders = new LinkedList<IFrameReader>();
+        spilledRunAggregatedPages = new LinkedList<Integer>();
+        spilledPartRunSizesInFrames = new LinkedList<Integer>();
+        spilledPartRunSizesInTuples = new LinkedList<Integer>();
+        for (int i = 0; i < numOfPartitions; i++) {
+            if (spilledPartRunWriters[i] != null) {
+                spilledPartRunReaders.add(spilledPartRunWriters[i].createReader());
+                spilledRunAggregatedPages.add(0);
+                spilledPartRunWriters[i].close();
+                spilledPartRunSizesInFrames.add(spilledPartRunSizeArrayInFrames[i]);
+                spilledPartRunSizesInTuples.add(spilledPartRunSizeArrayInTuples[i]);
+            }
+        }
+    }
+
+    /**
+     * Compare an input record with a hash table entry.
+     * 
+     * @param accessor
+     * @param tupleIndex
+     * @param hashAccessor
+     * @param hashTupleIndex
+     * @return
+     */
+    private int compare(FrameTupleAccessor accessor, int tupleIndex, FrameTupleAccessorForGroupHashtable hashAccessor,
+            int hashTupleIndex) {
+        int tStart0 = accessor.getTupleStartOffset(tupleIndex);
+        int fStartOffset0 = accessor.getFieldSlotsLength() + tStart0;
+
+        int tStart1 = hashAccessor.getTupleStartOffset(hashTupleIndex);
+        int fStartOffset1 = hashAccessor.getFieldSlotsLength() + tStart1;
+
+        for (int i = 0; i < internalKeys.length; ++i) {
+            int fStart0 = accessor.getFieldStartOffset(tupleIndex, inputKeys[i]);
+            int fEnd0 = accessor.getFieldEndOffset(tupleIndex, inputKeys[i]);
+            int fLen0 = fEnd0 - fStart0;
+
+            int fStart1 = hashAccessor.getFieldStartOffset(hashTupleIndex, internalKeys[i]);
+            int fEnd1 = hashAccessor.getFieldEndOffset(hashTupleIndex, internalKeys[i]);
+            int fLen1 = fEnd1 - fStart1;
+
+            int c = comparators[i].compare(accessor.getBuffer().array(), fStart0 + fStartOffset0, fLen0, hashAccessor
+                    .getBuffer().array(), fStart1 + fStartOffset1, fLen1);
+            if (c != 0) {
+                return c;
+            }
+        }
+        return 0;
+    }
+
+    /**
+     * Get the header frame index of the given hash table entry
+     * 
+     * @param entry
+     * @return
+     */
+    private int getHeaderFrameIndex(int entry) {
+        int frameIndex = (entry / frameSize * 2 * INT_SIZE) + (entry % frameSize * 2 * INT_SIZE / frameSize);
+        return frameIndex;
+    }
+
+    /**
+     * Get the tuple index of the given hash table entry
+     * 
+     * @param entry
+     * @return
+     */
+    private int getHeaderTupleIndex(int entry) {
+        int offset = (entry % frameSize) * 2 * INT_SIZE % frameSize;
+        return offset;
+    }
+
+    /**
+     * reset the header page.
+     * 
+     * @param headerFrameIndex
+     */
+    private void resetHeader(int headerFrameIndex) {
+        for (int i = 0; i < frameSize; i += INT_SIZE) {
+            headers[headerFrameIndex].putInt(i, HEADER_REF_EMPTY);
+        }
+    }
+
+    public List<Integer> getSpilledRunsSizeInRawTuples() throws HyracksDataException {
+        return spilledPartRunSizesInTuples;
+    }
+
+    public int getHashedUniqueKeys() throws HyracksDataException {
+        return hashedKeys;
+    }
+
+    public int getHashedRawRecords() throws HyracksDataException {
+        return hashedRawRecords;
+    }
+
+    public List<Integer> getSpilledRunsAggregatedPages() throws HyracksDataException {
+        return spilledRunAggregatedPages;
+    }
+
+    public List<IFrameReader> getSpilledRuns() throws HyracksDataException {
+        return spilledPartRunReaders;
+    }
+
+    public List<Integer> getSpilledRunsSizeInPages() throws HyracksDataException {
+        return spilledPartRunSizesInFrames;
+    }
+
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/HybridHashGroupOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/HybridHashGroupOperatorDescriptor.java
new file mode 100644
index 0000000..118ca75
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/HybridHashGroupOperatorDescriptor.java
@@ -0,0 +1,399 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hybridhash;
+
+import java.nio.ByteBuffer;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import edu.uci.ics.hyracks.api.comm.IFrameReader;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
+import edu.uci.ics.hyracks.api.dataflow.IOperatorNodePushable;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparator;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryComparatorFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.IBinaryHashFunctionFamily;
+import edu.uci.ics.hyracks.api.dataflow.value.INormalizedKeyComputerFactory;
+import edu.uci.ics.hyracks.api.dataflow.value.IRecordDescriptorProvider;
+import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputerFamily;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
+import edu.uci.ics.hyracks.api.job.JobSpecification;
+import edu.uci.ics.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
+import edu.uci.ics.hyracks.dataflow.common.data.partition.FieldHashPartitionComputerFamily;
+import edu.uci.ics.hyracks.dataflow.common.io.RunFileReader;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractSingleActivityOperatorDescriptor;
+import edu.uci.ics.hyracks.dataflow.std.base.AbstractUnaryInputUnaryOutputOperatorNodePushable;
+import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptorFactory;
+import edu.uci.ics.hyracks.dataflow.std.group.hashsort.HybridHashSortGroupHashTable;
+import edu.uci.ics.hyracks.dataflow.std.group.hashsort.HybridHashSortRunMerger;
+
+public class HybridHashGroupOperatorDescriptor extends AbstractSingleActivityOperatorDescriptor {
+
+    private static final long serialVersionUID = 1L;
+
+    private static final double HYBRID_FALLBACK_THRESHOLD = 0.8;
+
+    // merge with fudge factor
+    private static final double ESTIMATOR_MAGNIFIER = 1.2;
+
+    // input key fields
+    private final int[] keyFields;
+
+    // intermediate and final key fields
+    private final int[] storedKeyFields;
+
+    /**
+     * Input sizes as the count of the raw records.
+     */
+    private final long inputSizeInRawRecords;
+
+    /**
+     * Input size as the count of the unique keys.
+     */
+    private final long inputSizeInUniqueKeys;
+
+    // hash table size
+    private final int tableSize;
+
+    // estimated record size: used for compute the fudge factor
+    private final int userProvidedRecordSizeInBytes;
+
+    // aggregator
+    private final IAggregatorDescriptorFactory aggregatorFactory;
+
+    // merger, in case of falling back to the hash-sort algorithm for hash skewness
+    private final IAggregatorDescriptorFactory mergerFactory;
+
+    // for the sort fall-back algorithm
+    private final INormalizedKeyComputerFactory firstNormalizerFactory;
+
+    // total memory in pages
+    private final int framesLimit;
+
+    // comparator factories for key fields.
+    private final IBinaryComparatorFactory[] comparatorFactories;
+
+    /**
+     * hash families for each field: a hash function family is need as we may have
+     * more than one levels of hashing
+     */
+    private final IBinaryHashFunctionFamily[] hashFamilies;
+
+    /**
+     * Flag for input adjustment
+     */
+    private final boolean doInputAdjustment;
+
+    private final static double FUDGE_FACTOR_ESTIMATION = 1.2;
+
+    public HybridHashGroupOperatorDescriptor(JobSpecification spec, int[] keyFields, int framesLimit,
+            long inputSizeInRawRecords, long inputSizeInUniqueKeys, int recordSizeInBytes, int tableSize,
+            IBinaryComparatorFactory[] comparatorFactories, IBinaryHashFunctionFamily[] hashFamilies,
+            int hashFuncStartLevel, INormalizedKeyComputerFactory firstNormalizerFactory,
+            IAggregatorDescriptorFactory aggregatorFactory, IAggregatorDescriptorFactory mergerFactory,
+            RecordDescriptor outRecDesc) throws HyracksDataException {
+        this(spec, keyFields, framesLimit, inputSizeInRawRecords, inputSizeInUniqueKeys, recordSizeInBytes, tableSize,
+                comparatorFactories, hashFamilies, hashFuncStartLevel, firstNormalizerFactory, aggregatorFactory,
+                mergerFactory, outRecDesc, true);
+    }
+
+    public HybridHashGroupOperatorDescriptor(JobSpecification spec, int[] keyFields, int framesLimit,
+            long inputSizeInRawRecords, long inputSizeInUniqueKeys, int recordSizeInBytes, int tableSize,
+            IBinaryComparatorFactory[] comparatorFactories, IBinaryHashFunctionFamily[] hashFamilies,
+            int hashFuncStartLevel, INormalizedKeyComputerFactory firstNormalizerFactory,
+            IAggregatorDescriptorFactory aggregatorFactory, IAggregatorDescriptorFactory mergerFactory,
+            RecordDescriptor outRecDesc, boolean doInputAdjustment) throws HyracksDataException {
+        super(spec, 1, 1);
+        this.framesLimit = framesLimit;
+        this.tableSize = tableSize;
+        this.userProvidedRecordSizeInBytes = recordSizeInBytes;
+
+        this.inputSizeInRawRecords = inputSizeInRawRecords;
+        this.inputSizeInUniqueKeys = inputSizeInUniqueKeys;
+
+        if (framesLimit <= 3) {
+            // at least 3 frames: 2 for in-memory hash table, and 1 for output buffer
+            throw new HyracksDataException(
+                    "Not enough memory for Hash-Hash Aggregation algorithm: at least 3 frames are necessary, but only "
+                            + framesLimit + " available.");
+        }
+
+        this.keyFields = keyFields;
+        storedKeyFields = new int[keyFields.length];
+        for (int i = 0; i < storedKeyFields.length; i++) {
+            storedKeyFields[i] = i;
+        }
+
+        this.aggregatorFactory = aggregatorFactory;
+
+        this.mergerFactory = mergerFactory;
+        this.firstNormalizerFactory = firstNormalizerFactory;
+
+        this.comparatorFactories = comparatorFactories;
+
+        this.hashFamilies = hashFamilies;
+
+        recordDescriptors[0] = outRecDesc;
+
+        this.doInputAdjustment = doInputAdjustment;
+    }
+
+    @Override
+    public IOperatorNodePushable createPushRuntime(final IHyracksTaskContext ctx,
+            IRecordDescriptorProvider recordDescProvider, int partition, int nPartitions) throws HyracksDataException {
+
+        final IBinaryComparator[] comparators = new IBinaryComparator[comparatorFactories.length];
+        for (int i = 0; i < comparators.length; i++) {
+            comparators[i] = comparatorFactories[i].createBinaryComparator();
+        }
+
+        final RecordDescriptor inRecDesc = recordDescProvider.getInputRecordDescriptor(getActivityId(), 0);
+
+        final int frameSize = ctx.getFrameSize();
+
+        final double fudgeFactor = HybridHashGroupHashTable.getHashtableOverheadRatio(tableSize, frameSize,
+                framesLimit, userProvidedRecordSizeInBytes) * FUDGE_FACTOR_ESTIMATION;
+
+        return new AbstractUnaryInputUnaryOutputOperatorNodePushable() {
+
+            HybridHashGroupHashTable topProcessor;
+
+            int observedInputSizeInRawTuples;
+            int observedInputSizeInFrames, maxRecursiveLevels;
+
+            int userProvidedInputSizeInFrames;
+
+            boolean topLevelFallbackCheck = true;
+
+            ITuplePartitionComputerFamily tpcf = new FieldHashPartitionComputerFamily(keyFields, hashFamilies);
+
+            ITuplePartitionComputerFamily tpcfMerge = new FieldHashPartitionComputerFamily(storedKeyFields,
+                    hashFamilies);
+
+            ByteBuffer readAheadBuf;
+
+            /**
+             * Compute the partition numbers using hybrid-hash formula.
+             * 
+             * @param tableSize
+             * @param framesLimit
+             * @param inputKeySize
+             * @param partitionInOperator
+             * @param factor
+             * @return
+             */
+            private int getNumberOfPartitions(int tableSize, int framesLimit, long inputKeySize, double factor) {
+
+                int hashtableHeaderPages = HybridHashGroupHashTable.getHeaderPages(tableSize, frameSize);
+
+                int numberOfPartitions = HybridHashUtil.hybridHashPartitionComputer((int) Math.ceil(inputKeySize),
+                        framesLimit, factor);
+
+                // if the partition number is more than the available hash table contents, do pure partition.
+                if (numberOfPartitions >= framesLimit - hashtableHeaderPages) {
+                    numberOfPartitions = framesLimit;
+                }
+
+                if (numberOfPartitions <= 0) {
+                    numberOfPartitions = 1;
+                }
+
+                return numberOfPartitions;
+            }
+
+            @Override
+            public void open() throws HyracksDataException {
+
+                observedInputSizeInFrames = 0;
+
+                // estimate the number of unique keys for this partition, given the total raw record count and unique record count
+                long estimatedNumberOfUniqueKeys = HybridHashUtil.getEstimatedPartitionSizeOfUniqueKeys(
+                        inputSizeInRawRecords, inputSizeInUniqueKeys, 1);
+
+                userProvidedInputSizeInFrames = (int) Math.ceil(estimatedNumberOfUniqueKeys
+                        * userProvidedRecordSizeInBytes / frameSize);
+
+                int topPartitions = getNumberOfPartitions(tableSize, framesLimit,
+                        (int) Math.ceil(userProvidedInputSizeInFrames * ESTIMATOR_MAGNIFIER), fudgeFactor);
+
+                topProcessor = new HybridHashGroupHashTable(ctx, framesLimit, tableSize, topPartitions, keyFields, 0,
+                        comparators, tpcf, aggregatorFactory.createAggregator(ctx, inRecDesc, recordDescriptors[0],
+                                keyFields, storedKeyFields), inRecDesc, recordDescriptors[0], writer);
+
+                writer.open();
+                topProcessor.open();
+            }
+
+            @Override
+            public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
+                observedInputSizeInRawTuples += buffer.getInt(buffer.capacity() - 4);
+                observedInputSizeInFrames++;
+                topProcessor.nextFrame(buffer);
+            }
+
+            @Override
+            public void fail() throws HyracksDataException {
+                // TODO Auto-generated method stub
+
+            }
+
+            @Override
+            public void close() throws HyracksDataException {
+                // estimate the maximum recursive levels
+                maxRecursiveLevels = (int) Math.max(
+                        Math.ceil(Math.log(observedInputSizeInFrames * fudgeFactor) / Math.log(framesLimit)) + 1, 1);
+
+                finishAndRecursion(topProcessor, observedInputSizeInRawTuples, inputSizeInUniqueKeys, 0,
+                        topLevelFallbackCheck);
+
+                writer.close();
+
+            }
+
+            private void processRunFiles(IFrameReader runReader, int inputCardinality, int runLevel)
+                    throws HyracksDataException {
+
+                boolean checkFallback = true;
+
+                int numOfPartitions = getNumberOfPartitions(tableSize, framesLimit, (long)inputCardinality
+                        * userProvidedRecordSizeInBytes / frameSize, fudgeFactor);
+
+                HybridHashGroupHashTable processor = new HybridHashGroupHashTable(ctx, framesLimit, tableSize,
+                        numOfPartitions, keyFields, runLevel, comparators, tpcf, aggregatorFactory.createAggregator(
+                                ctx, inRecDesc, recordDescriptors[0], keyFields, storedKeyFields), inRecDesc,
+                        recordDescriptors[0], writer);
+
+                processor.open();
+
+                runReader.open();
+
+                int inputRunRawSizeInTuples = 0;
+
+                if (readAheadBuf == null) {
+                    readAheadBuf = ctx.allocateFrame();
+                }
+                while (runReader.nextFrame(readAheadBuf)) {
+                    inputRunRawSizeInTuples += readAheadBuf.getInt(readAheadBuf.capacity() - 4);
+                    processor.nextFrame(readAheadBuf);
+                }
+
+                runReader.close();
+
+                finishAndRecursion(processor, inputRunRawSizeInTuples, inputCardinality, runLevel, checkFallback);
+            }
+
+            /**
+             * Finish the hash table processing and start recursive processing on run files.
+             * 
+             * @param ht
+             * @param inputRawRecordCount
+             * @param inputCardinality
+             * @param level
+             * @param checkFallback
+             * @throws HyracksDataException
+             */
+            private void finishAndRecursion(HybridHashGroupHashTable ht, long inputRawRecordCount,
+                    long inputCardinality, int level, boolean checkFallback) throws HyracksDataException {
+
+                ht.finishup();
+
+                List<IFrameReader> generatedRunReaders = ht.getSpilledRuns();
+                List<Integer> partitionRawRecords = ht.getSpilledRunsSizeInRawTuples();
+
+                int directFlushKeysInTuples = ht.getHashedUniqueKeys();
+                int directFlushRawRecordsInTuples = ht.getHashedRawRecords();
+
+                ht.close();
+                ht = null;
+
+                ctx.getCounterContext().getCounter("optional.levels." + level + ".estiInputKeyCardinality", true)
+                        .update(inputCardinality);
+
+                // do adjustment
+                if (doInputAdjustment && directFlushRawRecordsInTuples > 0) {
+                    inputCardinality = (int) Math.ceil((double) directFlushKeysInTuples / directFlushRawRecordsInTuples
+                            * inputRawRecordCount);
+                }
+
+                ctx.getCounterContext()
+                        .getCounter("optional.levels." + level + ".estiInputKeyCardinalityAdjusted", true)
+                        .update(inputCardinality);
+
+                IFrameReader recurRunReader;
+                int subPartitionRawRecords;
+
+                while (!generatedRunReaders.isEmpty()) {
+                    recurRunReader = generatedRunReaders.remove(0);
+                    subPartitionRawRecords = partitionRawRecords.remove(0);
+
+                    int runKeyCardinality = (int) Math.ceil((double) inputCardinality * subPartitionRawRecords
+                            / inputRawRecordCount);
+
+                    if ((checkFallback && runKeyCardinality > HYBRID_FALLBACK_THRESHOLD * inputCardinality)
+                            || level > maxRecursiveLevels) {
+                        Logger.getLogger(HybridHashGroupOperatorDescriptor.class.getSimpleName()).warning(
+                                "Hybrid-hash falls back to hash-sort algorithm! (" + level + ":" + maxRecursiveLevels
+                                        + ")");
+                        fallback(recurRunReader, level);
+                    } else {
+                        processRunFiles(recurRunReader, runKeyCardinality, level + 1);
+                    }
+
+                }
+            }
+
+            private void fallback(IFrameReader recurRunReader, int runLevel) throws HyracksDataException {
+                // fall back
+                FrameTupleAccessor runFrameTupleAccessor = new FrameTupleAccessor(frameSize, inRecDesc);
+                HybridHashSortGroupHashTable hhsTable = new HybridHashSortGroupHashTable(ctx, framesLimit, tableSize,
+                        keyFields, comparators, tpcf.createPartitioner(runLevel + 1),
+                        firstNormalizerFactory.createNormalizedKeyComputer(), aggregatorFactory.createAggregator(ctx,
+                                inRecDesc, recordDescriptors[0], keyFields, storedKeyFields), inRecDesc,
+                        recordDescriptors[0]);
+
+                recurRunReader.open();
+                if (readAheadBuf == null) {
+                    readAheadBuf = ctx.allocateFrame();
+                }
+                while (recurRunReader.nextFrame(readAheadBuf)) {
+                    runFrameTupleAccessor.reset(readAheadBuf);
+                    int tupleCount = runFrameTupleAccessor.getTupleCount();
+                    for (int j = 0; j < tupleCount; j++) {
+                        hhsTable.insert(runFrameTupleAccessor, j);
+                    }
+                }
+
+                recurRunReader.close();
+                hhsTable.finishup();
+
+                LinkedList<RunFileReader> hhsRuns = hhsTable.getRunFileReaders();
+
+                if (hhsRuns.isEmpty()) {
+                    hhsTable.flushHashtableToOutput(writer);
+                    hhsTable.close();
+                } else {
+                    hhsTable.close();
+                    HybridHashSortRunMerger hhsMerger = new HybridHashSortRunMerger(ctx, hhsRuns, storedKeyFields,
+                            comparators, recordDescriptors[0], tpcfMerge.createPartitioner(runLevel + 1),
+                            mergerFactory.createAggregator(ctx, recordDescriptors[0], recordDescriptors[0],
+                                    storedKeyFields, storedKeyFields), framesLimit, tableSize, writer, false);
+                    hhsMerger.process();
+                }
+            }
+
+        };
+    }
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/HybridHashUtil.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/HybridHashUtil.java
new file mode 100644
index 0000000..5323887
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/hybridhash/HybridHashUtil.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.group.hybridhash;
+
+public class HybridHashUtil {
+
+    /**
+     * Compute the expected number of spilling partitions (in-memory partition is not included), using the hybrid-hash
+     * algorithm from [Shapiro86]. Note that 0 means that there is no need to have spilling partitions.
+     * 
+     * @param inputSizeInFrames
+     * @param memorySizeInFrames
+     * @param fudgeFactor
+     * @return
+     */
+    public static int hybridHashPartitionComputer(int inputSizeOfUniqueKeysInFrames, int memorySizeInFrames,
+            double fudgeFactor) {
+        return Math.max(
+                (int) Math.ceil((inputSizeOfUniqueKeysInFrames * fudgeFactor - memorySizeInFrames)
+                        / (memorySizeInFrames - 1)), 0);
+    }
+
+    /**
+     * Compute the estimated number of unique keys in a partition of a dataset, using Yao's formula
+     * 
+     * @param inputSizeInRawRecords
+     * @param inputSizeInUniqueKeys
+     * @param numOfPartitions
+     * @return
+     */
+    public static long getEstimatedPartitionSizeOfUniqueKeys(long inputSizeInRawRecords, long inputSizeInUniqueKeys,
+            int numOfPartitions) {
+        if (numOfPartitions == 1) {
+            return inputSizeInUniqueKeys;
+        }
+        return (long) Math.ceil(inputSizeInUniqueKeys
+                * (1 - Math.pow(1 - ((double) inputSizeInRawRecords / (double) numOfPartitions)
+                        / (double) inputSizeInRawRecords, (double) inputSizeInRawRecords
+                        / (double) inputSizeInUniqueKeys)));
+    }
+}
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/preclustered/PreclusteredGroupWriter.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/preclustered/PreclusteredGroupWriter.java
index 7773765..4ae43eb 100644
--- a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/preclustered/PreclusteredGroupWriter.java
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/preclustered/PreclusteredGroupWriter.java
@@ -29,20 +29,26 @@
 import edu.uci.ics.hyracks.dataflow.std.group.IAggregatorDescriptor;
 
 public class PreclusteredGroupWriter implements IFrameWriter {
+
+    private final static int INT_SIZE = 4;
+
     private final int[] groupFields;
     private final IBinaryComparator[] comparators;
     private final IAggregatorDescriptor aggregator;
     private final AggregateState aggregateState;
     private final IFrameWriter writer;
-    private final ByteBuffer copyFrame;
     private final FrameTupleAccessor inFrameAccessor;
-    private final FrameTupleAccessor copyFrameAccessor;
 
     private final ByteBuffer outFrame;
     private final FrameTupleAppender appender;
     private final ArrayTupleBuilder tupleBuilder;
 
-    private boolean first;
+    private final RecordDescriptor outRecordDesc;
+
+    private byte[] groupResultCache;
+    private ByteBuffer groupResultCacheBuffer;
+    private FrameTupleAccessor groupResultCacheAccessor;
+    private FrameTupleAppender groupResultCacheAppender;
 
     public PreclusteredGroupWriter(IHyracksTaskContext ctx, int[] groupFields, IBinaryComparator[] comparators,
             IAggregatorDescriptor aggregator, RecordDescriptor inRecordDesc, RecordDescriptor outRecordDesc,
@@ -52,10 +58,9 @@
         this.aggregator = aggregator;
         this.aggregateState = aggregator.createAggregateStates();
         this.writer = writer;
-        copyFrame = ctx.allocateFrame();
+        this.outRecordDesc = outRecordDesc;
+
         inFrameAccessor = new FrameTupleAccessor(ctx.getFrameSize(), inRecordDesc);
-        copyFrameAccessor = new FrameTupleAccessor(ctx.getFrameSize(), inRecordDesc);
-        copyFrameAccessor.reset(copyFrame);
 
         outFrame = ctx.allocateFrame();
         appender = new FrameTupleAppender(ctx.getFrameSize());
@@ -67,7 +72,6 @@
     @Override
     public void open() throws HyracksDataException {
         writer.open();
-        first = true;
     }
 
     @Override
@@ -75,40 +79,45 @@
         inFrameAccessor.reset(buffer);
         int nTuples = inFrameAccessor.getTupleCount();
         for (int i = 0; i < nTuples; ++i) {
-            if (first) {
 
-                tupleBuilder.reset();
-                for (int j = 0; j < groupFields.length; j++) {
-                    tupleBuilder.addField(inFrameAccessor, i, groupFields[j]);
-                }
-                aggregator.init(tupleBuilder, inFrameAccessor, i, aggregateState);
-
-                first = false;
-
-            } else {
-                if (i == 0) {
-                    switchGroupIfRequired(copyFrameAccessor, copyFrameAccessor.getTupleCount() - 1, inFrameAccessor, i);
+            if (groupResultCache != null && groupResultCacheAccessor.getTupleCount() > 0) {
+                groupResultCacheAccessor.reset(ByteBuffer.wrap(groupResultCache));
+                if (sameGroup(inFrameAccessor, i, groupResultCacheAccessor, 0)) {
+                    // find match: do aggregation
+                    aggregator.aggregate(inFrameAccessor, i, groupResultCacheAccessor, 0, aggregateState);
+                    continue;
                 } else {
-                    switchGroupIfRequired(inFrameAccessor, i - 1, inFrameAccessor, i);
+                    // write the cached group into the final output
+                    writeOutput(groupResultCacheAccessor, 0);
                 }
-
             }
-        }
-        FrameUtils.copy(buffer, copyFrame);
-    }
-
-    private void switchGroupIfRequired(FrameTupleAccessor prevTupleAccessor, int prevTupleIndex,
-            FrameTupleAccessor currTupleAccessor, int currTupleIndex) throws HyracksDataException {
-        if (!sameGroup(prevTupleAccessor, prevTupleIndex, currTupleAccessor, currTupleIndex)) {
-            writeOutput(prevTupleAccessor, prevTupleIndex);
 
             tupleBuilder.reset();
+
             for (int j = 0; j < groupFields.length; j++) {
-                tupleBuilder.addField(currTupleAccessor, currTupleIndex, groupFields[j]);
+                tupleBuilder.addField(inFrameAccessor, i, groupFields[j]);
             }
-            aggregator.init(tupleBuilder, currTupleAccessor, currTupleIndex, aggregateState);
-        } else {
-            aggregator.aggregate(currTupleAccessor, currTupleIndex, null, 0, aggregateState);
+
+            aggregator.init(tupleBuilder, inFrameAccessor, i, aggregateState);
+
+            // enlarge the cache buffer if necessary
+            int requiredSize = tupleBuilder.getSize() + tupleBuilder.getFieldEndOffsets().length * INT_SIZE + 2
+                    * INT_SIZE;
+
+            if (groupResultCache == null || groupResultCache.length < requiredSize) {
+                groupResultCache = new byte[requiredSize];
+                groupResultCacheAppender = new FrameTupleAppender(groupResultCache.length);
+                groupResultCacheBuffer = ByteBuffer.wrap(groupResultCache);
+                groupResultCacheAccessor = new FrameTupleAccessor(groupResultCache.length, outRecordDesc);
+            }
+
+            groupResultCacheAppender.reset(groupResultCacheBuffer, true);
+            if (!groupResultCacheAppender.append(tupleBuilder.getFieldEndOffsets(), tupleBuilder.getByteArray(), 0,
+                    tupleBuilder.getSize())) {
+                throw new HyracksDataException("The partial result is too large to be initialized in a frame.");
+            }
+            
+            groupResultCacheAccessor.reset(groupResultCacheBuffer);
         }
     }
 
@@ -117,7 +126,7 @@
 
         tupleBuilder.reset();
         for (int j = 0; j < groupFields.length; j++) {
-            tupleBuilder.addField(lastTupleAccessor, lastTupleIndex, groupFields[j]);
+            tupleBuilder.addField(lastTupleAccessor, lastTupleIndex, j);
         }
         aggregator.outputFinalResult(tupleBuilder, lastTupleAccessor, lastTupleIndex, aggregateState);
 
@@ -138,8 +147,8 @@
             int fIdx = groupFields[i];
             int s1 = a1.getTupleStartOffset(t1Idx) + a1.getFieldSlotsLength() + a1.getFieldStartOffset(t1Idx, fIdx);
             int l1 = a1.getFieldLength(t1Idx, fIdx);
-            int s2 = a2.getTupleStartOffset(t2Idx) + a2.getFieldSlotsLength() + a2.getFieldStartOffset(t2Idx, fIdx);
-            int l2 = a2.getFieldLength(t2Idx, fIdx);
+            int s2 = a2.getTupleStartOffset(t2Idx) + a2.getFieldSlotsLength() + a2.getFieldStartOffset(t2Idx, i);
+            int l2 = a2.getFieldLength(t2Idx, i);
             if (comparators[i].compare(a1.getBuffer().array(), s1, l1, a2.getBuffer().array(), s2, l2) != 0) {
                 return false;
             }
@@ -154,8 +163,8 @@
 
     @Override
     public void close() throws HyracksDataException {
-        if (!first) {
-            writeOutput(copyFrameAccessor, copyFrameAccessor.getTupleCount() - 1);
+        if (groupResultCache != null && groupResultCacheAccessor.getTupleCount() > 0) {
+            writeOutput(groupResultCacheAccessor, 0);
             if (appender.getTupleCount() > 0) {
                 FrameUtils.flushFrame(outFrame, writer);
             }
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/misc/PrinterOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/misc/PrinterOperatorDescriptor.java
index 9569a7b..088c5ee 100644
--- a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/misc/PrinterOperatorDescriptor.java
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/misc/PrinterOperatorDescriptor.java
@@ -48,10 +48,10 @@
         @Override
         public void writeData(Object[] data) throws HyracksDataException {
             for (int i = 0; i < data.length; ++i) {
-                System.err.print(StringSerializationUtils.toString(data[i]));
-                System.err.print(", ");
+            //    System.err.print(StringSerializationUtils.toString(data[i]));
+            //    System.err.print(", ");
             }
-            System.err.println();
+            //System.err.println();
         }
 
         @Override
diff --git a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatserver/pom.xml b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatserver/pom.xml
index ba30424..d166e45 100644
--- a/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatserver/pom.xml
+++ b/hyracks/hyracks-examples/hadoop-compat-example/hadoopcompatserver/pom.xml
@@ -125,8 +125,9 @@
       	<artifactId>maven-compiler-plugin</artifactId>
       	<version>2.0.2</version>
         <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
+          <source>1.7</source>
+          <target>1.7</target>
+          <fork>true</fork>
         </configuration>
       </plugin>
       <plugin>
diff --git a/hyracks/hyracks-examples/text-example/textserver/pom.xml b/hyracks/hyracks-examples/text-example/textserver/pom.xml
index b12f823..f67d444 100644
--- a/hyracks/hyracks-examples/text-example/textserver/pom.xml
+++ b/hyracks/hyracks-examples/text-example/textserver/pom.xml
@@ -124,8 +124,9 @@
       	<artifactId>maven-compiler-plugin</artifactId>
       	<version>2.0.2</version>
         <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
+          <source>1.7</source>
+          <target>1.7</target>
+          <fork>true</fork>
         </configuration>
       </plugin>
       <plugin>
diff --git a/hyracks/hyracks-hdfs/hyracks-hdfs-core/pom.xml b/hyracks/hyracks-hdfs/hyracks-hdfs-core/pom.xml
index 032d50d..e97f26f 100644
--- a/hyracks/hyracks-hdfs/hyracks-hdfs-core/pom.xml
+++ b/hyracks/hyracks-hdfs/hyracks-hdfs-core/pom.xml
@@ -66,6 +66,18 @@
 					</filesets>
 				</configuration>
 			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<version>2.2</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>test-jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
 		</plugins>
 	</build>
 
diff --git a/patch.diff b/patch.diff
new file mode 100644
index 0000000..a333970
--- /dev/null
+++ b/patch.diff
@@ -0,0 +1,245 @@
+From 9e006501f9e33467a8428199bd94b71dbff063ef Mon Sep 17 00:00:00 2001
+From: Anbang Xu <anbangx@gmail.com>
+Date: Fri, 26 Jul 2013 14:10:33 -0700
+Subject: [PATCH] p2 pass all the tests except 9
+
+---
+ .../genomix/data/test/KmerBytesWritableTest.java   | 76 +++++++++++++++++++++-
+ .../genomix/pregelix/io/VertexValueWritable.java   |  2 +-
+ .../operator/pathmerge/BasicPathMergeVertex.java   | 35 +++++-----
+ .../pathmerge/LogAlgorithmForPathMergeVertex.java  |  8 +--
+ .../pregelix/JobRun/PathMergeSmallTestSuite.java   |  2 +-
+ 5 files changed, 98 insertions(+), 25 deletions(-)
+
+diff --git a/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java
+index bda73e5..fbfbeeb 100644
+--- a/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java
++++ b/genomix/genomix-data/src/test/java/edu/uci/ics/genomix/data/test/KmerBytesWritableTest.java
+@@ -229,14 +229,34 @@ public class KmerBytesWritableTest {
+         merge.mergeWithRFKmer(i, kmer2);
+         Assert.assertEquals("GGCACAACAACCC", merge.toString());
+         
+-        String test1 = "CTA";
+-        String test2 = "AGA";
++        String test1;
++        String test2;
++        test1 = "CTA";
++        test2 = "AGA";
+         KmerBytesWritable k1 = new KmerBytesWritable(3);
+         KmerBytesWritable k2 = new KmerBytesWritable(3);
+         k1.setByRead(test1.getBytes(), 0);
+         k2.setByRead(test2.getBytes(), 0);
+         k1.mergeWithRFKmer(3, k2);
+         Assert.assertEquals("TCTA", k1.toString());
++        
++        test1 = "CTA";
++        test2 = "ATA"; //TAT
++        k1 = new KmerBytesWritable(3);
++        k2 = new KmerBytesWritable(3);
++        k1.setByRead(test1.getBytes(), 0);
++        k2.setByRead(test2.getBytes(), 0);
++        k1.mergeWithFRKmer(3, k2);
++        Assert.assertEquals("CTAT", k1.toString());
++        
++        test1 = "ATA";
++        test2 = "CTA"; //TAT
++        k1 = new KmerBytesWritable(3);
++        k2 = new KmerBytesWritable(3);
++        k1.setByRead(test1.getBytes(), 0);
++        k2.setByRead(test2.getBytes(), 0);
++        k1.mergeWithFRKmer(3, k2);
++        Assert.assertEquals("ATAG", k1.toString());
+     }
+     
+     
+@@ -281,5 +301,55 @@ public class KmerBytesWritableTest {
+             }
+         }
+     }
+-
++    
++    @Test
++    public void TestFinalMerge() {
++        String selfString;
++        String match;
++        String msgString;
++        int index;
++        KmerBytesWritable kmer = new KmerBytesWritable();
++        int kmerSize = 3;
++        
++        String F1 = "AATAG";
++        String F2 = "TAGAA";
++        String R1 = "CTATT";
++        String R2 = "TTCTA";
++        
++        //FF test
++        selfString = F1;
++        match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
++        msgString = F2;
++        index = msgString.indexOf(match);
++        kmer.reset(msgString.length() - index);
++        kmer.setByRead(msgString.substring(index).getBytes(), 0);
++        System.out.println(kmer.toString());
++        
++        //FR test
++        selfString = F1;
++        match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
++        msgString = GeneCode.reverseComplement(R2);
++        index = msgString.indexOf(match);
++        kmer.reset(msgString.length() - index);
++        kmer.setByRead(msgString.substring(index).getBytes(), 0);
++        System.out.println(kmer.toString());
++        
++        //RF test
++        selfString = R1;
++        match = selfString.substring(0,kmerSize - 1); 
++        msgString = GeneCode.reverseComplement(F2);
++        index = msgString.lastIndexOf(match) + kmerSize - 2;
++        kmer.reset(index + 1);
++        kmer.setByReadReverse(msgString.substring(0, index + 1).getBytes(), 0);
++        System.out.println(kmer.toString());
++        
++        //RR test
++        selfString = R1;
++        match = selfString.substring(0,kmerSize - 1); 
++        msgString = R2;
++        index = msgString.lastIndexOf(match) + kmerSize - 2;
++        kmer.reset(index + 1);
++        kmer.setByRead(msgString.substring(0, index + 1).getBytes(), 0);
++        System.out.println(kmer.toString());
++    }
+ }
+diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
+index 6d4f683..065bfd5 100644
+--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
++++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
+@@ -32,7 +32,7 @@ public class VertexValueWritable implements WritableComparable<VertexValueWritab
+         public static final byte SHOULD_MERGEWITHNEXT = 0b01 << 3;
+         public static final byte SHOULD_MERGEWITHPREV = 0b10 << 3;
+         public static final byte SHOULD_MERGE_MASK = 0b11 << 3;
+-        public static final byte SHOULD_MERGE_CLEAR = 0b1110011;
++        public static final byte SHOULD_MERGE_CLEAR = 0b1100111;
+     }
+     
+     private PositionListWritable nodeIdList;
+diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java
+index b7b0814..ec608c5 100644
+--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java
++++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java
+@@ -495,6 +495,7 @@ public class BasicPathMergeVertex extends
+     
+     public void setStateAsMergeWithNext(){
+     	byte state = getVertexValue().getState();
++    	state &= State.SHOULD_MERGE_CLEAR;
+         state |= State.SHOULD_MERGEWITHNEXT;
+         getVertexValue().setState(state);
+     }
+@@ -512,6 +513,7 @@ public class BasicPathMergeVertex extends
+     
+     public void setStateAsMergeWithPrev(){
+         byte state = getVertexValue().getState();
++        state &= State.SHOULD_MERGE_CLEAR;
+         state |= State.SHOULD_MERGEWITHPREV;
+         getVertexValue().setState(state);
+     }
+@@ -638,7 +640,7 @@ public class BasicPathMergeVertex extends
+         String match;
+         String msgString;
+         int index;
+-        switch(neighborToMergeDir){
++        switch(neighborToMeDir){
+             case MessageFlag.DIR_FF:
+                 selfString = getVertexValue().getKmer().toString();
+                 match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
+@@ -648,28 +650,29 @@ public class BasicPathMergeVertex extends
+                 kmer.setByRead(msgString.substring(index).getBytes(), 0);
+                 break;
+             case MessageFlag.DIR_FR:
+-                selfString = getVertexId().toString();
+-                match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length());
++                selfString = getVertexValue().getKmer().toString();
++                match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length()); 
+                 msgString = GeneCode.reverseComplement(msg.getKmer().toString());
+                 index = msgString.indexOf(match);
+                 kmer.reset(msgString.length() - index);
+-                kmer.setByRead(msgString.substring(index).getBytes(), 0);
++                kmer.setByReadReverse(msgString.substring(index).getBytes(), 0);
+                 break;
+             case MessageFlag.DIR_RF:
+-                selfString = GeneCode.reverseComplement(getVertexValue().getKmer().toString());
+-                match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length());
+-                msgString = msg.getKmer().toString();
+-                index = msgString.indexOf(match);
+-                kmer.reset(msgString.length() - index);
+-                kmer.setByRead(msgString.substring(index).getBytes(), 0);
++                selfString = getVertexValue().getKmer().toString();
++                match = selfString.substring(0,kmerSize - 1); 
++                msgString = GeneCode.reverseComplement(msg.getKmer().toString());
++                index = msgString.lastIndexOf(match) + kmerSize - 2;
++                kmer.reset(index + 1);
++                kmer.setByReadReverse(msgString.substring(0, index + 1).getBytes(), 0);
+                 break;
+             case MessageFlag.DIR_RR:
+-                selfString = GeneCode.reverseComplement(getVertexValue().getKmer().toString());
+-                match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length());
+-                msgString = GeneCode.reverseComplement(msg.getKmer().toString());
+-                index = msgString.indexOf(match);
+-                kmer.reset(msgString.length() - index);
+-                kmer.setByRead(msgString.substring(index).getBytes(), 0);
++                selfString = getVertexValue().getKmer().toString();
++                match = selfString.substring(0,kmerSize - 1); 
++                msgString = msg.getKmer().toString();
++                index = msgString.lastIndexOf(match) + kmerSize - 2;
++                kmer.reset(index + 1);
++                kmer.setByRead(msgString.substring(0, index + 1).getBytes(), 0);
++                System.out.println(kmer.toString());
+                 break;
+         }
+        
+diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
+index a68b646..3b5a782 100644
+--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
++++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
+@@ -170,22 +170,22 @@ public class LogAlgorithmForPathMergeVertex extends
+                 case MessageFromHead.BothMsgsFromHead:
+                 case MessageFromHead.OneMsgFromOldHeadAndOneFromHead:
+                     for(int i = 0; i < 2; i++)
+-                        processMerge(receivedMsgList.get(i));
++                        processFinalMerge(receivedMsgList.get(i)); //processMerge()
+                     getVertexValue().setState(State.IS_FINAL);
+                     voteToHalt();
+                     break;
+                 case MessageFromHead.OneMsgFromHeadAndOneFromNonHead:
+                     for(int i = 0; i < 2; i++)
+-                        processMerge(receivedMsgList.get(i));
++                        processFinalMerge(receivedMsgList.get(i));
+                     getVertexValue().setState(State .IS_HEAD);
+                     break;
+                 case MessageFromHead.BothMsgsFromNonHead:
+                     for(int i = 0; i < 2; i++)
+-                        processMerge(receivedMsgList.get(i));
++                        processFinalMerge(receivedMsgList.get(i));
+                     break;
+                 case MessageFromHead.NO_MSG:
+                     //halt
+-                    deleteVertex(getVertexId());
++                    voteToHalt(); //deleteVertex(getVertexId());
+                     break;
+             }
+         }
+diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeSmallTestSuite.java
+index 9f96b5a..1578dfc 100644
+--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeSmallTestSuite.java
++++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeSmallTestSuite.java
+@@ -52,7 +52,7 @@ public class PathMergeSmallTestSuite extends TestSuite {
+ //    + "6", PreFix + File.separator
+ //    + "7", PreFix + File.separator
+ //    + "8", PreFix + File.separator
+-    + "5"};
++    + "9"};
+     private static final String ACTUAL_RESULT_DIR = "data/actual/pathmerge";
+     private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+     private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+-- 
+1.7.11.1
+
diff --git a/pom.xml b/pom.xml
index a851758..810152e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,5 +82,6 @@
     <module>algebricks</module>
     <module>pregelix</module>
     <module>hivesterix</module>
+    <module>genomix</module>
   </modules>
 </project>
diff --git a/pregelix/pregelix-core/src/main/java/edu/uci/ics/pregelix/core/driver/Driver.java b/pregelix/pregelix-core/src/main/java/edu/uci/ics/pregelix/core/driver/Driver.java
index 2d4064b..300dce4 100644
--- a/pregelix/pregelix-core/src/main/java/edu/uci/ics/pregelix/core/driver/Driver.java
+++ b/pregelix/pregelix-core/src/main/java/edu/uci/ics/pregelix/core/driver/Driver.java
@@ -136,6 +136,7 @@
                 terminate = IterationUtils.readTerminationState(job.getConfiguration(), jobGen.getJobId())
                         || IterationUtils.readForceTerminationState(job.getConfiguration(), jobGen.getJobId());
                 i++;
+                
             } while (!terminate);
 
             start = System.currentTimeMillis();
diff --git a/pregelix/pregelix-core/src/test/java/edu/uci/ics/pregelix/core/join/JoinTest.java b/pregelix/pregelix-core/src/test/java/edu/uci/ics/pregelix/core/join/JoinTest.java
index 4c7f91d..e8ab2ed 100644
--- a/pregelix/pregelix-core/src/test/java/edu/uci/ics/pregelix/core/join/JoinTest.java
+++ b/pregelix/pregelix-core/src/test/java/edu/uci/ics/pregelix/core/join/JoinTest.java
@@ -102,7 +102,7 @@
         ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
         ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
         cleanupStores();
-        PregelixHyracksIntegrationUtil.init();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
 
         FileUtils.forceMkdir(new File(EXPECT_RESULT_DIR));
         FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
diff --git a/pregelix/pregelix-example/src/test/java/edu/uci/ics/pregelix/example/dataload/DataLoadTest.java b/pregelix/pregelix-example/src/test/java/edu/uci/ics/pregelix/example/dataload/DataLoadTest.java
index b4e17b6..91aa0d7 100644
--- a/pregelix/pregelix-example/src/test/java/edu/uci/ics/pregelix/example/dataload/DataLoadTest.java
+++ b/pregelix/pregelix-example/src/test/java/edu/uci/ics/pregelix/example/dataload/DataLoadTest.java
@@ -76,7 +76,7 @@
         ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
         ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
         cleanupStores();
-        PregelixHyracksIntegrationUtil.init();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
         LOGGER.info("Hyracks mini-cluster started");
         startHDFS();
         FileUtils.forceMkdir(new File(EXPECT_RESULT_DIR));
diff --git a/pregelix/pregelix-example/src/test/java/edu/uci/ics/pregelix/example/jobrun/RunJobTestSuite.java b/pregelix/pregelix-example/src/test/java/edu/uci/ics/pregelix/example/jobrun/RunJobTestSuite.java
index ea89bb9..7757f86 100644
--- a/pregelix/pregelix-example/src/test/java/edu/uci/ics/pregelix/example/jobrun/RunJobTestSuite.java
+++ b/pregelix/pregelix-example/src/test/java/edu/uci/ics/pregelix/example/jobrun/RunJobTestSuite.java
@@ -77,7 +77,7 @@
         ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
         ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
         cleanupStores();
-        PregelixHyracksIntegrationUtil.init();
+        PregelixHyracksIntegrationUtil.init("src/test/resources/topology.xml");
         LOGGER.info("Hyracks mini-cluster started");
         FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
         FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
