annotate cpt_psm_prep/lib/CPT/Bio/Lipo.pm @ 0:e4de0a0e90c8 draft

Uploaded
author cpt
date Tue, 05 Jul 2022 05:38:34 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
1 package CPT::Bio::Lipo;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
2 use Moose;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
3 use strict;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
4 use warnings;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
5 use Data::Dumper;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
6 use autodie;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
7
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
8 # ABSTRACT: Lipo finding functionality in a library.
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
9
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
10 sub run_hash {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
11 my ( $self, $hash_ref ) = @_;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
12 my %hash = %{$hash_ref};
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
13 my @return_keys;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
14 foreach ( sort { $a <=> $b } keys %hash ) {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
15 if ( $hash{$_}[4] !~ qr/^.{10,39}C/ ) {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
16 next;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
17 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
18 else {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
19 $hash{$_}[5] = $self->run_seq( $hash{$_}[4] );
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
20 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
21 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
22 return \%hash;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
23 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
24
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
25 sub run_seq {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
26 my ( $self, $seq ) = @_;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
27 my @C; #A list of each C in the string, in str(10,40)
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
28 for ( my $j = 10 ; $j < length($seq) && $j < 40 ; $j++ ) {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
29 if ( substr( $seq, $j, 1 ) =~ /[c]/i ) {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
30 push( @C, $j );
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
31 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
32 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
33 my @results;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
34 for ( my $z = 0 ; $z < scalar(@C) ; $z++ ) {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
35 my $upC10 = "";
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
36
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
37 #Make sure it's not ALL DEKRs 10 residues upstream. (Does that happen O.o)
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
38 if ( substr( $seq, $C[$z] - 10, 10 ) !~ /[DEKR]/ ) {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
39 push(
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
40 @results,
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
41 [
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
42 substr( $seq, 0, $C[$z] - 10 ),
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
43 substr( $seq, $C[$z] - 10, 10 ),
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
44 substr( $seq, $C[$z], 1 ),
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
45 substr( $seq, $C[$z] + 1 ),
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
46 ]
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
47 );
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
48 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
49 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
50 if ( scalar @results ) {
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
51 return \@results;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
52 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
53 return undef;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
54 }
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
55
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
56 no Moose;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
57 1;
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
58
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
59 __END__
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
60
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
61 =pod
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
62
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
63 =encoding UTF-8
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
64
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
65 =head1 NAME
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
66
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
67 CPT::Bio::Lipo - Lipo finding functionality in a library.
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
68
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
69 =head1 VERSION
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
70
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
71 version 1.99.4
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
72
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
73 =head1 AUTHOR
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
74
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
75 Eric Rasche <rasche.eric@yandex.ru>
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
76
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
77 =head1 COPYRIGHT AND LICENSE
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
78
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
79 This software is Copyright (c) 2014 by Eric Rasche.
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
80
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
81 This is free software, licensed under:
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
82
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
83 The GNU General Public License, Version 3, June 2007
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
84
e4de0a0e90c8 Uploaded
cpt
parents:
diff changeset
85 =cut