[Bio] / FigMetagenomeTools / RemoteBlast.pl Repository:
ViewVC logotype

Annotation of /FigMetagenomeTools/RemoteBlast.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download) (as text)

1 : olson 1.1 #!/usr/bin/perl -w
2 :     #
3 :     # run remote blast against some sequences. Hopefully this will blast against the entire nr
4 :    
5 :     use strict;
6 :     use lib '/home/rob/perl';
7 :     use Bio::Tools::Run::RemoteBlast;
8 :    
9 :     my $usage =<<EOF;
10 :    
11 :     $0 [-n,p,x,tn,s,tx] [-0] file [blast options]
12 :     -n blastn nt query, nt database
13 :     -p blastp protein query, protein database
14 :     -x blastx nt query, protein database
15 :     -tn tblastn protein query, nt database
16 :     -s psitblastn protein query, nt database psi-blast
17 :     -tx tblastx nt query, nt database
18 :    
19 :     -0 skip responses that don't match anything
20 :    
21 :     EOF
22 :    
23 :     my $blast=shift || die $usage;
24 :     my $blastprogram;
25 :     if ($blast eq "-n") {$blastprogram="blastn"}
26 :     elsif ($blast eq "-p") {$blastprogram="blastp"}
27 :     elsif ($blast eq "-x") {$blastprogram="blastx"}
28 :     elsif ($blast eq "-s") {$blastprogram="psiblast"}
29 :     elsif ($blast eq "-tn") {$blastprogram="tblastn"}
30 :     elsif ($blast eq "-tx") {$blastprogram="tblastx"}
31 :     die $usage unless ($blastprogram);
32 :    
33 :     my $test=shift || die $usage;
34 :    
35 :     my @files;
36 :     if (-T $test) {push @files, $test}
37 :     elsif (-d $test) {
38 :     opendir(DIR, $test) || die "Can't open dir $test\n";
39 :     while (my $file2=readdir(DIR)) {
40 :     push (@files, "$test/$file2");
41 :     }
42 :     }
43 :     else {
44 :     die "Not sure what $test is";
45 :     }
46 :    
47 :     foreach my $file (@files) {
48 :     my $rb=Bio::Tools::Run::RemoteBlast->new(
49 :     '-prog' => $blastprogram, '-data' => 'nr', '-expect' => 10, '-readmethod' => 'SearchIO'
50 :     );
51 :    
52 :     my $res = $rb->submit_blast($file);
53 :    
54 :     my $matched=0;
55 :     #sleep 5;
56 :     #my @rids=$rb->each_rid;
57 :     #until ($matched == scalar @rids) {
58 :     while (my @rids=$rb->each_rid) {
59 :     #@rids=$rb->each_rid;
60 :     foreach my $rid (@rids) {
61 :     print STDERR "For $file, there are ", scalar @rids, " rids waiting. $matched are complete\n";
62 :     my $rc = $rb->retrieve_blast($rid);
63 :     if (!ref($rc)) {
64 :     if ($rc < 0) {
65 :     $rb->remove_rid($rid);
66 :     }
67 :     sleep 5;
68 :     } else {
69 :     $matched++;
70 :     $rb->save_output("$file.$blastprogram.nr");
71 :     $rb->remove_rid($rid);
72 :     }
73 :     }
74 :     }
75 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3