From f28aa63fd2e4d086f35e9d02eb235acb10765dab Mon Sep 17 00:00:00 2001 From: Zakariyya Mughal Date: Fri, 14 Apr 2017 01:12:02 -0500 Subject: [PATCH] Add a test for PrositeScan --- t/Tools/PrositeScan.t | 44 ++++++++++++++++++++++++++++++++++++++++++ t/data/ps_scan/out.PrositeScan | 10 ++++++++++ 2 files changed, 54 insertions(+) create mode 100644 t/Tools/PrositeScan.t create mode 100644 t/data/ps_scan/out.PrositeScan diff --git a/t/Tools/PrositeScan.t b/t/Tools/PrositeScan.t new file mode 100644 index 000000000..bd983c598 --- /dev/null +++ b/t/Tools/PrositeScan.t @@ -0,0 +1,44 @@ +use strict; + +BEGIN { + use lib '.'; + use Bio::Root::Test; + + test_begin(-tests => 3); + + use_ok('Bio::Tools::PrositeScan'); + use_ok('Bio::SeqFeature::FeaturePair'); +} + +# Note: data generated by running +# +# ./ps_scan.pl --pfscan ./pfscan -d prosite.dat -o fasta \ +# t/data/test.fasta > t/data/ps_scan/out.PrositeScan +# +# followed by a manual removal of some of the output to simplify the test. + +subtest "Predictions" => sub { + my $factory = Bio::Tools::PrositeScan->new( + '-file' => test_input_file('ps_scan/out.PrositeScan'), + '-format' => 'fasta' + ); + + my $expected_matches = [ + { seq_id => 'roa1_drome', coords => [253, 256], psac => 'PS00001', subseq => 'NNSF' }, + { seq_id => 'roa1_drome', coords => [270, 273], psac => 'PS00001', subseq => 'NNSW' }, + { seq_id => 'roa2_drome', coords => [344, 349], psac => 'PS00008', subseq => 'GNNQGF' }, + { seq_id => 'roa2_drome', coords => [217, 355], psac => 'PS50321', subseq => re(qr/NR.{135}NN/) }, + ]; + + my $actual_matches = []; + while( my $match = $factory->next_prediction ) { + push @$actual_matches, { + seq_id => $match->seq_id, + coords => [ $match->start, $match->end ], + psac => $match->hseq_id, + subseq => $match->feature1->seq->seq, + }; + } + + cmp_deeply( $actual_matches, $expected_matches, 'Comparing parsed prediction input' ); +}; diff --git a/t/data/ps_scan/out.PrositeScan b/t/data/ps_scan/out.PrositeScan new file mode 100644 index 000000000..5740f086d --- /dev/null +++ b/t/data/ps_scan/out.PrositeScan @@ -0,0 +1,10 @@ +>roa1_drome/253-256 : PS00001 ASN_GLYCOSYLATION +NNSF +>roa1_drome/270-273 : PS00001 ASN_GLYCOSYLATION +NNSW +>roa2_drome/344-349 : PS00008 MYRISTYL +GNNQGF +>roa2_drome/217-355 : PS50321 ASN_RICH L=0 +NRGNMGGGNYGNQNGGGNWNNGGNNWGNNRGNDNWGNNSFGGGGGGGGGYGGGNNSWGNN +NPWDNGNGGGNFGGGGNNWNGGNDFGGYQQNYGGGPQRGGGNFNNNRMQPYQGGGGFKAG +GGNQGNYGNNQGFNNGGNN -- 2.11.4.GIT