Ok, a more detailed hint:
1: read the motif file using
Bio::SeqIO, and store those motif in a hash.
2: traverse through the target sequence file using
Bio::SeqIO. On each target seq, use
index on each motif to find whether the seq has the motif.
use strict;
use Bio::SeqIO;
my $file_seq = shift;
my $file_motif = shift;
# read all motif
# store in hash: ID => motif_seq
my %all_motif;
my $MOTIF_FH = Bio::SeqIO->new(-file=>$file_motif);
while (my $obj = $MOTIF_FH->next_seq) {
$all_motif{$obj->display_id} = $obj->seq;
}
$MOTIF_FH->close;
# traverse through all sequences
my $SEQ_FH = Bio::SeqIO->new(-file=>$file_seq);
while (my $obj = $SEQ_FH->next_seq) {
my $id = $obj->display_id;
my $seq = $obj->seq;
print "Sequence: $id\n";
# traverse through all motifs
foreach my $motif_id (sort keys %all_motif) {
my @curr_result;
# find all positions of current motif
my $last_i = 0;
while (1) {
my $i = index($seq,$all_motif{$motif_id},$last_i);
last if $i==-1;
push @curr_result,$i+1;
$last_i = $i;
}
# print if has result
if (@curr_result>0) {
print "\tmatch with $motif_id at: @curr_result\n";
}
}
}
$SEQ_FH->close;
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.