Filter ReverseComplement triggers from Reverse goodie

master
David Wilkins 2014-06-04 15:49:20 +08:00
parent 403928232a
commit 4e8859748c
3 changed files with 15 additions and 4 deletions

View File

@ -17,6 +17,13 @@ triggers startend => "reverse";
zci is_cached => 1;
zci answer_type => "reverse";
handle remainder => sub { qq|Reversed "$_": | . scalar reverse };
handle remainder => sub {
#Filter out requests for DNA/RNA reverse complements, handled
# by the ReverseComplement goodie
return if $_ =~ /^complement\s(of )?[ATCGURYKMSWBVDHN\s-]+$/i;
return qq|Reversed "$_": | . scalar reverse;
};
1;

View File

@ -27,14 +27,14 @@ handle remainder => sub {
#Return nothing if sequence contains characters
# other than DNA/RNA bases or standard IUPAC ambiguity codes
return if $sequence =~ /[^ATCGURYKMSWBVDH]/;
return if $sequence =~ /[^ATCGURYKMSWBVDHN]/;
#Return nothing if sequence contains both
# thymine and uracil (more likely an error than a real molecule)
return if $sequence =~ /T/ && $sequence =~ /U/;
#Complement
$sequence =~ tr/ATUCGRYKMSWBVHD/TAAGCYRMKSWVBDH/;
$sequence =~ tr/ATUCGRYKMBVHD/TAAGCYRMKVBDH/;
#Reverse
$sequence = reverse($sequence);

View File

@ -14,7 +14,11 @@ ddg_goodie_test(
)],
'reverse bla' => test_zci('Reversed "bla": alb'),
'reverse blabla' => test_zci('Reversed "blabla": albalb'),
'reverse esrever' => test_zci('Reversed "esrever": reverse'),
'reverse esrever' => test_zci('Reversed "esrever": reverse'),
#Should not trigger on a request for DNA/RNA reverse complement
'reverse complement of ATG-CTA-GGG-GCT' => undef,
'reverse complement gacuacgaucgagkmanscuag' => undef
);
done_testing;