Mercurial > repos > cpt > cpt_psm_comparison_table
comparison lib/CPT/Bio/RBS/Algo/Naive.pm @ 1:f093e08f21f3 draft default tip
planemo upload commit 94b0cd1fff0826c6db3e7dc0c91c0c5a8be8bb0c
| author | cpt |
|---|---|
| date | Mon, 05 Jun 2023 02:47:24 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:b8b8b52904a5 | 1:f093e08f21f3 |
|---|---|
| 1 package CPT::Bio::RBS::Algo::Naive; | |
| 2 use Moose; | |
| 3 with 'CPT::Bio::RBS::Algo'; | |
| 4 use CPT::Bio::RBS_Object; | |
| 5 | |
| 6 my @SDs = ( | |
| 7 'aggaggt', | |
| 8 'ggaggt', | |
| 9 'aggagg', | |
| 10 'aggag', | |
| 11 'gaggt', | |
| 12 'ggagg', | |
| 13 'aggt', | |
| 14 'gggt', | |
| 15 'gagg', | |
| 16 'gggg', | |
| 17 'agga', | |
| 18 'ggag', | |
| 19 'gga', | |
| 20 'gag', | |
| 21 'agg', | |
| 22 'ggt', | |
| 23 ); | |
| 24 | |
| 25 sub predict { | |
| 26 my ( $self, %params ) = @_; | |
| 27 my $upstream = $params{sequence}; | |
| 28 my $only_best = $params{return_best}; | |
| 29 | |
| 30 my $length = length($upstream); | |
| 31 | |
| 32 my @results = (); | |
| 33 foreach my $rbs ( @SDs ){ | |
| 34 while ($upstream =~ /$rbs/g) { | |
| 35 # Position of regex match | |
| 36 my $loc = $-[0]; | |
| 37 # Seq before RBS | |
| 38 my $before = substr($upstream,0, $loc); | |
| 39 # Seq after RBS | |
| 40 my $after = substr($upstream, $loc + length($rbs)); | |
| 41 my $rbs_o = CPT::Bio::RBS_Object->new( | |
| 42 upstream => sprintf('%s %s %s', $before , uc($rbs) , $after), | |
| 43 score => $self->score_match($rbs, length($after)), | |
| 44 rbs_seq => uc($rbs), | |
| 45 separation => length($after), | |
| 46 ); | |
| 47 push( @results, $rbs_o ); | |
| 48 } | |
| 49 } | |
| 50 @results = sort { $b->score() <=> $a->score() } @results; | |
| 51 if (@results) { | |
| 52 if($only_best){ | |
| 53 return ($results[0]); | |
| 54 }else{ | |
| 55 return @results; | |
| 56 } | |
| 57 } | |
| 58 else { | |
| 59 return ( | |
| 60 CPT::Bio::RBS_Object->new( | |
| 61 upstream =>$upstream, | |
| 62 score => '-1', | |
| 63 rbs_seq => 'None', | |
| 64 separation => -1, | |
| 65 ) | |
| 66 ); | |
| 67 } | |
| 68 } | |
| 69 | |
| 70 sub score_match { | |
| 71 my ($self, $match, $dist) = @_; | |
| 72 return length($match); | |
| 73 } | |
| 74 | |
| 75 1; | |
| 76 | |
| 77 __END__ | |
| 78 | |
| 79 =pod | |
| 80 | |
| 81 =encoding UTF-8 | |
| 82 | |
| 83 =head1 NAME | |
| 84 | |
| 85 CPT::Bio::RBS::Algo::Naive | |
| 86 | |
| 87 =head1 VERSION | |
| 88 | |
| 89 version 1.99.4 | |
| 90 | |
| 91 =head1 AUTHOR | |
| 92 | |
| 93 Eric Rasche <rasche.eric@yandex.ru> | |
| 94 | |
| 95 =head1 COPYRIGHT AND LICENSE | |
| 96 | |
| 97 This software is Copyright (c) 2014 by Eric Rasche. | |
| 98 | |
| 99 This is free software, licensed under: | |
| 100 | |
| 101 The GNU General Public License, Version 3, June 2007 | |
| 102 | |
| 103 =cut |
