From 52ed5d22eb5cdf22f7e47fcc0471b1c9be156915 Mon Sep 17 00:00:00 2001 From: martinahansen Date: Wed, 5 Oct 2011 07:56:41 +0000 Subject: [PATCH] cleanup git-svn-id: http://biopieces.googlecode.com/svn/trunk@1539 74ccb610-7750-0410-82ae-013aeee3265d --- code_perl/Maasha/test/test_AlignTwoSeq.pl | 641 ---------------------- 1 file changed, 641 deletions(-) delete mode 100755 code_perl/Maasha/test/test_AlignTwoSeq.pl diff --git a/code_perl/Maasha/test/test_AlignTwoSeq.pl b/code_perl/Maasha/test/test_AlignTwoSeq.pl deleted file mode 100755 index cd59552..0000000 --- a/code_perl/Maasha/test/test_AlignTwoSeq.pl +++ /dev/null @@ -1,641 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; -use Test::More 'no_plan'; -use Data::Dumper; -use Maasha::AlignTwoSeq; - -test_new_space(); -test_new_space_left(); -test_new_space_right(); - -test_matches_select(); - -test_word_size_calc(); -test_seq_index(); -test_seq_scan(); -test_matches_find(); - -test_match_expand_forward_end_space(); -test_match_expand_forward_end_match(); -test_match_expand_backward_end_space(); -test_match_expand_backward_end_match(); -test_match_expand_end_space(); -test_match_expand_end_match(); - -test_match_redundant_add(); -test_match_redundant(); - -test_matches_filter(); - -test_match_score_narrow(); -test_match_score_diag(); -test_match_score_len(); -test_match_score(); - -test_align_two_seq(); - -test_insert_indels(); - - -sub test_new_space -{ - my $space = { Q_SEQ => \"ATCG", S_SEQ => \"atcg" }; - - Maasha::AlignTwoSeq::new_space( $space ); - - is( ${ $space->{ 'Q_SEQ' } }, "ATCG" ); - is( ${ $space->{ 'S_SEQ' } }, "atcg" ); - ok( $space->{ 'Q_MIN' } == 0 ); - ok( $space->{ 'S_MIN' } == 0 ); - ok( $space->{ 'Q_MAX' } == 3 ); - ok( $space->{ 'S_MAX' } == 3 ); -} - - -sub test_new_space_left -{ - my ( $best_match, $space, $new_space ); - - $best_match = { - Q_BEG => 2, - Q_END => 3, - S_BEG => 2, - S_END => 3, - SCORE => 0, - LEN => 2, - }; - - $space = { - Q_SEQ => \"ATCG", - S_SEQ => \"atcg", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 3, - S_MAX => 3, - }; - - $new_space = Maasha::AlignTwoSeq::new_space_left( $best_match, $space ); - - ok( defined $new_space ); - is( ${ $new_space->{ 'Q_SEQ' } }, "ATCG" ); - is( ${ $new_space->{ 'S_SEQ' } }, "atcg" ); - ok( $new_space->{ 'Q_MIN' } == 0 ); - ok( $new_space->{ 'S_MIN' } == 0 ); - ok( $new_space->{ 'Q_MAX' } == 1 ); - ok( $new_space->{ 'S_MAX' } == 1 ); -} - - -sub test_new_space_right -{ - my ( $best_match, $space, $new_space ); - - $best_match = { - Q_BEG => 0, - Q_END => 1, - S_BEG => 0, - S_END => 1, - SCORE => 0, - LEN => 2, - }; - - $space = { - Q_SEQ => \"ATCG", - S_SEQ => \"atcg", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 3, - S_MAX => 3, - }; - - $new_space = Maasha::AlignTwoSeq::new_space_right( $best_match, $space ); - - ok( defined $new_space ); - is( ${ $new_space->{ 'Q_SEQ' } }, "ATCG" ); - is( ${ $new_space->{ 'S_SEQ' } }, "atcg" ); - ok( $new_space->{ 'Q_MIN' } == 2 ); - ok( $new_space->{ 'S_MIN' } == 2 ); - ok( $new_space->{ 'Q_MAX' } == 3 ); - ok( $new_space->{ 'S_MAX' } == 3 ); -} - - -sub test_matches_select -{ - my ( $matches, $space ); - - $matches = [ - { Q_BEG => 9, S_BEG => 9, Q_END => 10, S_END => 10 }, - { Q_BEG => 10, S_BEG => 10, Q_END => 20, S_END => 20 }, - { Q_BEG => 20, S_BEG => 20, Q_END => 21, S_END => 21 }, - ]; - - $space = { - Q_SEQ => \"ATCG", - S_SEQ => \"atcg", - Q_MIN => 10, - S_MIN => 10, - Q_MAX => 20, - S_MAX => 20, - }; - - Maasha::AlignTwoSeq::matches_select( $matches, $space ); - - ok( scalar @{ $matches } == 1 ); -} - - -sub test_word_size_calc -{ - ok( Maasha::AlignTwoSeq::word_size_calc( { Q_MIN => 0, S_MIN => 0, Q_MAX => 1, S_MAX => 1 } ) == 1 ); - ok( Maasha::AlignTwoSeq::word_size_calc( { Q_MIN => 0, S_MIN => 0, Q_MAX => 200, S_MAX => 200 } ) == 10 + 1 ); -} - - -sub test_seq_index -{ - my ( $space, $word_size, $index ); - - $space = { - Q_SEQ => \"ATCG", - S_SEQ => \"atcg", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 3, - S_MAX => 3, - }; - - $word_size = 2; - - $index = Maasha::AlignTwoSeq::seq_index( $space, $word_size ); - - ok( scalar keys %{ $index } == 3 ); - ok( exists $index->{ 'AT' } ); - ok( exists $index->{ 'TC' } ); - ok( exists $index->{ 'CG' } ); - ok( $index->{ 'AT' }->[ 0 ] == 0 ); - ok( $index->{ 'TC' }->[ 0 ] == 1 ); - ok( $index->{ 'CG' }->[ 0 ] == 2 ); -} - - -sub test_seq_scan -{ - my ( $space, $word_size, $index, $matches ); - - $space = { - Q_SEQ => \"ATCG", - S_SEQ => \"atcg", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 3, - S_MAX => 3, - }; - - $word_size = 2; - - $index = Maasha::AlignTwoSeq::seq_index( $space, $word_size ); - $matches = Maasha::AlignTwoSeq::seq_scan( $index, $space, $word_size ); - - ok( scalar @{ $matches } == 1 ); - ok( $matches->[ 0 ]->{ 'Q_BEG' } == 0 ); - ok( $matches->[ 0 ]->{ 'S_BEG' } == 0 ); - ok( $matches->[ 0 ]->{ 'Q_END' } == 3 ); - ok( $matches->[ 0 ]->{ 'S_END' } == 3 ); - ok( $matches->[ 0 ]->{ 'LEN' } == 4 ); - ok( $matches->[ 0 ]->{ 'SCORE' } == 0 ); -} - - -sub test_matches_find -{ - my ( $space, $matches ); - - $space = { Q_SEQ => \"ATCG", S_SEQ => \"ATCG", Q_MIN => 0, S_MIN => 0, Q_MAX => 3, S_MAX => 3 }; - - $matches = Maasha::AlignTwoSeq::matches_find( $space ); - - ok( scalar @{ $matches } == 1 ); - ok( $matches->[ 0 ]->{ 'Q_BEG' } == 0 ); - ok( $matches->[ 0 ]->{ 'S_BEG' } == 0 ); - ok( $matches->[ 0 ]->{ 'Q_END' } == 3 ); - ok( $matches->[ 0 ]->{ 'S_END' } == 3 ); - ok( $matches->[ 0 ]->{ 'LEN' } == 4 ); - - $space = { Q_SEQ => \"ATXXGAT", S_SEQ => \"ATCGAT", Q_MIN => 0, S_MIN => 0, Q_MAX => 6, S_MAX => 5 }; - - $matches = Maasha::AlignTwoSeq::matches_find( $space ); - - ok( scalar @{ $matches } == 4 ); - ok( $matches->[ 0 ]->{ 'Q_BEG' } == 0 ); - ok( $matches->[ 0 ]->{ 'S_BEG' } == 0 ); - ok( $matches->[ 0 ]->{ 'Q_END' } == 1 ); - ok( $matches->[ 0 ]->{ 'S_END' } == 1 ); - ok( $matches->[ 0 ]->{ 'LEN' } == 2 ); - ok( $matches->[ 1 ]->{ 'Q_BEG' } == 5 ); - ok( $matches->[ 1 ]->{ 'S_BEG' } == 0 ); - ok( $matches->[ 1 ]->{ 'Q_END' } == 6 ); - ok( $matches->[ 1 ]->{ 'S_END' } == 1 ); - ok( $matches->[ 1 ]->{ 'LEN' } == 2 ); - ok( $matches->[ 2 ]->{ 'Q_BEG' } == 4 ); - ok( $matches->[ 2 ]->{ 'S_BEG' } == 3 ); - ok( $matches->[ 2 ]->{ 'Q_END' } == 6 ); - ok( $matches->[ 2 ]->{ 'S_END' } == 5 ); - ok( $matches->[ 2 ]->{ 'LEN' } == 3 ); - ok( $matches->[ 3 ]->{ 'Q_BEG' } == 0 ); - ok( $matches->[ 3 ]->{ 'S_BEG' } == 4 ); - ok( $matches->[ 3 ]->{ 'Q_END' } == 1 ); - ok( $matches->[ 3 ]->{ 'S_END' } == 5 ); - ok( $matches->[ 3 ]->{ 'LEN' } == 2 ); -} - -sub test_match_expand_forward_end_space -{ - my ( $match, $space ); - - $match = { - Q_BEG => 1, - Q_END => 2, - S_BEG => 1, - S_END => 2, - SCORE => 0, - LEN => 2, - }; - - $space = { - Q_SEQ => \"ATCG", - S_SEQ => \"atcg", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 3, - S_MAX => 3, - }; - - Maasha::AlignTwoSeq::match_expand_forward( $match, $space ); - - ok( $match->{ 'Q_BEG' } == 1 ); - ok( $match->{ 'S_BEG' } == 1 ); - ok( $match->{ 'Q_END' } == 3 ); - ok( $match->{ 'S_END' } == 3 ); - ok( $match->{ 'LEN' } == 3 ); -} - - -sub test_match_expand_forward_end_match -{ - my ( $match, $space ); - - $match = { - Q_BEG => 1, - Q_END => 2, - S_BEG => 1, - S_END => 2, - SCORE => 0, - LEN => 2, - }; - - $space = { - Q_SEQ => \"ATCGXX", - S_SEQ => \"atcgnn", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 6, - S_MAX => 6, - }; - - Maasha::AlignTwoSeq::match_expand_forward( $match, $space ); - - ok( $match->{ 'Q_BEG' } == 1 ); - ok( $match->{ 'S_BEG' } == 1 ); - ok( $match->{ 'Q_END' } == 3 ); - ok( $match->{ 'S_END' } == 3 ); - ok( $match->{ 'LEN' } == 3 ); -} - - -sub test_match_expand_backward_end_space -{ - my ( $match, $space ); - - $match = { - Q_BEG => 1, - Q_END => 2, - S_BEG => 1, - S_END => 2, - SCORE => 0, - LEN => 2, - }; - - $space = { - Q_SEQ => \"ATCG", - S_SEQ => \"atcg", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 3, - S_MAX => 3, - }; - - Maasha::AlignTwoSeq::match_expand_backward( $match, $space ); - - ok( $match->{ 'Q_BEG' } == 0 ); - ok( $match->{ 'S_BEG' } == 0 ); - ok( $match->{ 'Q_END' } == 2 ); - ok( $match->{ 'S_END' } == 2 ); - ok( $match->{ 'LEN' } == 3 ); -} - - -sub test_match_expand_backward_end_match -{ - my ( $match, $space ); - - $match = { - Q_BEG => 2, - Q_END => 3, - S_BEG => 2, - S_END => 3, - SCORE => 0, - LEN => 2, - }; - - $space = { - Q_SEQ => \"XATCG", - S_SEQ => \"natcg", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 4, - S_MAX => 4, - }; - - Maasha::AlignTwoSeq::match_expand_backward( $match, $space ); - - ok( $match->{ 'Q_BEG' } == 1 ); - ok( $match->{ 'S_BEG' } == 1 ); - ok( $match->{ 'Q_END' } == 3 ); - ok( $match->{ 'S_END' } == 3 ); - ok( $match->{ 'LEN' } == 3 ); -} - - -sub test_match_expand_end_space -{ - my ( $match, $space ); - - $match = { - Q_BEG => 1, - Q_END => 2, - S_BEG => 1, - S_END => 2, - SCORE => 0, - LEN => 2, - }; - - $space = { - Q_SEQ => \"ATCG", - S_SEQ => \"atcg", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 3, - S_MAX => 3, - }; - - Maasha::AlignTwoSeq::match_expand( $match, $space ); - - ok( $match->{ 'Q_BEG' } == 0 ); - ok( $match->{ 'S_BEG' } == 0 ); - ok( $match->{ 'Q_END' } == 3 ); - ok( $match->{ 'S_END' } == 3 ); - ok( $match->{ 'LEN' } == 4 ); -} - - -sub test_match_expand_end_match -{ - my ( $match, $space ); - - $match = { - Q_BEG => 2, - Q_END => 3, - S_BEG => 2, - S_END => 3, - SCORE => 0, - LEN => 2, - }; - - $space = { - Q_SEQ => \"XATCGX", - S_SEQ => \"natcgn", - Q_MIN => 0, - S_MIN => 0, - Q_MAX => 6, - S_MAX => 6, - }; - - Maasha::AlignTwoSeq::match_expand( $match, $space ); - - ok( $match->{ 'Q_BEG' } == 1 ); - ok( $match->{ 'S_BEG' } == 1 ); - ok( $match->{ 'Q_END' } == 4 ); - ok( $match->{ 'S_END' } == 4 ); - ok( $match->{ 'LEN' } == 4 ); -} - - -sub test_match_redundant_add -{ - my ( $redundant ); - - $redundant = {}; - - Maasha::AlignTwoSeq::match_redundant_add( { Q_BEG => 10, Q_END => 20, S_BEG => 110, S_END => 120 }, $redundant ); - Maasha::AlignTwoSeq::match_redundant_add( { Q_BEG => 15, Q_END => 25, S_BEG => 210, S_END => 220 }, $redundant ); - - ok( scalar keys %{ $redundant } == 16 ); -} - - -sub test_match_redundant -{ - my ( $redundant ); - - $redundant = {}; - - Maasha::AlignTwoSeq::match_redundant_add( { Q_BEG => 10, Q_END => 20, S_BEG => 110, S_END => 120 }, $redundant ); - Maasha::AlignTwoSeq::match_redundant_add( { Q_BEG => 15, Q_END => 25, S_BEG => 210, S_END => 220 }, $redundant ); - - ok( Maasha::AlignTwoSeq::match_redundant( { Q_BEG => 10, Q_END => 20, S_BEG => 110, S_END => 120 }, $redundant ) ); - ok( not Maasha::AlignTwoSeq::match_redundant( { Q_BEG => 1, Q_END => 2, S_BEG => 110, S_END => 120 }, $redundant ) ); -} - - -sub test_matches_filter -{ - ok( 0 ); -} - - -sub test_match_score_narrow -{ - ok( 0 ); -} - - -sub test_match_score_diag -{ - ok( 0 ); -} - - -sub test_match_score_len -{ - ok( 0 ); -} - - -sub test_match_score -{ - ok( 0 ); -} - - -sub test_align_two_seq -{ - my ( $space, $matches ); - - $space = { - Q_SEQ => \"ATXCG", - S_SEQ => \"ATCG", - }; - - $matches = Maasha::AlignTwoSeq::align_two_seq( $space, [] ); - -# print Dumper( $matches ); - - ok( 0 ); -} - - -sub test_insert_indels -{ - my ( $matches, $q_seq, $s_seq ); - - $matches = [ - { Q_BEG => 1, S_BEG => 1, Q_END => 4, S_END => 4 } - ]; - - $q_seq = "XATCG"; - $s_seq = "PATCG"; - - Maasha::AlignTwoSeq::insert_indels( $matches, \$q_seq, \$s_seq ); - - is( $q_seq, "XATCG" ); - is( $s_seq, "PATCG" ); - - $matches = [ - { Q_BEG => 0, S_BEG => 1, Q_END => 3, S_END => 4 } - ]; - - $q_seq = "ATCG"; - $s_seq = "PATCG"; - - Maasha::AlignTwoSeq::insert_indels( $matches, \$q_seq, \$s_seq ); - - is( $q_seq, "-ATCG" ); - is( $s_seq, "PATCG" ); - - $matches = [ - { Q_BEG => 1, S_BEG => 0, Q_END => 4, S_END => 3 } - ]; - - $q_seq = "XATCG"; - $s_seq = "ATCG"; - - Maasha::AlignTwoSeq::insert_indels( $matches, \$q_seq, \$s_seq ); - - is( $q_seq, "XATCG" ); - is( $s_seq, "-ATCG" ); - - $matches = [ - { Q_BEG => 0, S_BEG => 0, Q_END => 3, S_END => 3 }, - { Q_BEG => 6, S_BEG => 6, Q_END => 9, S_END => 9 }, - ]; - - $q_seq = "ATCGXXATCG"; - $s_seq = "ATCGNNATCG"; - - Maasha::AlignTwoSeq::insert_indels( $matches, \$q_seq, \$s_seq ); - - is( $q_seq, "ATCGXXATCG" ); - is( $s_seq, "ATCGNNATCG" ); - - $matches = [ - { Q_BEG => 0, S_BEG => 0, Q_END => 3, S_END => 3 }, - { Q_BEG => 6, S_BEG => 4, Q_END => 9, S_END => 7 }, - ]; - - $q_seq = "ATCGXXATCG"; - $s_seq = "ATCGATCG"; - - Maasha::AlignTwoSeq::insert_indels( $matches, \$q_seq, \$s_seq ); - - is( $q_seq, "ATCGXXATCG" ); - is( $s_seq, "ATCG--ATCG" ); - - $matches = [ - { Q_BEG => 0, S_BEG => 1, Q_END => 2, S_END => 3 }, - { Q_BEG => 5, S_BEG => 4, Q_END => 8, S_END => 7 }, - ]; - - $q_seq = "TCGXXATCG"; - $s_seq = "ATCGATCG"; - - Maasha::AlignTwoSeq::insert_indels( $matches, \$q_seq, \$s_seq ); - - is( $q_seq, "-TCGXXATCG" ); - is( $s_seq, "ATCG--ATCG" ); - - $matches = [ - { Q_BEG => 1, S_BEG => 0, Q_END => 3, S_END => 2 }, - { Q_BEG => 6, S_BEG => 3, Q_END => 9, S_END => 6 }, - ]; - - $q_seq = "ATCGXXATCG"; - $s_seq = "TCGATCG"; - - Maasha::AlignTwoSeq::insert_indels( $matches, \$q_seq, \$s_seq ); - - is( $q_seq, "ATCGXXATCG" ); - is( $s_seq, "-TCG--ATCG" ); - - $matches = [ - { Q_BEG => 1, Q_END => 3, S_BEG => 0, S_END => 2 }, - { Q_BEG => 6, Q_END => 7, S_BEG => 3, S_END => 4 }, - { Q_BEG => 9, Q_END => 10, S_BEG => 7, S_END => 8 }, - ]; - - $q_seq = "ATCGXXATACG"; - $s_seq = "TCGATNTCG"; - - Maasha::AlignTwoSeq::insert_indels( $matches, \$q_seq, \$s_seq ); - - is( $q_seq, "ATCGXXAT-ACG" ); - # ||| || || - is( $s_seq, "-TCG--ATNTCG" ); - - $matches = [ - { Q_BEG => 1, Q_END => 3, S_BEG => 0, S_END => 2 }, - { Q_BEG => 6, Q_END => 7, S_BEG => 3, S_END => 4 }, - { Q_BEG => 9, Q_END => 10, S_BEG => 7, S_END => 8 }, - ]; - - $q_seq = "ATCGXXATACG"; - $s_seq = "TCGATNTCGXX"; - - Maasha::AlignTwoSeq::insert_indels( $matches, \$q_seq, \$s_seq ); - - is( $q_seq, "ATCGXXAT-ACG--" ); - # ||| || || - is( $s_seq, "-TCG--ATNTCGXX" ); -} -- 2.39.2