[Bio] / MGRASTBackend / compute_ff_sims.pl Repository:
ViewVC logotype

Annotation of /MGRASTBackend/compute_ff_sims.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : arodri7 1.1 #
2 :     # Create the sims files for FF server output
3 :     #
4 :    
5 :     use DB_File;
6 :     use Data::Dumper;
7 :    
8 :     use strict;
9 :     use FIG;
10 :     use FIG_Config;
11 :     use File::Basename;
12 :     use FigFams;
13 :     use FigFam;
14 :     use FF;
15 :     use FFs;
16 :    
17 :     my $fig = new FIG;
18 :    
19 :     my $jobdir = shift;
20 :     my $fasta = shift;
21 :     my $ffoutput = shift;
22 :     my $simsoutput = shift;
23 :     my $fam_data = shift @ARGV;
24 :    
25 : arodri7 1.2 die "$0: missing necessary input\n" if (!$jobdir || !$fasta || !$ffoutput || !$simsoutput || !$fam_data);
26 : arodri7 1.1
27 :     open (FASTA, "$fasta");
28 :     my $fasta={};
29 :     my $line = <FASTA>;
30 :     while ($line && ($line =~ /^>(\S+)/))
31 :     {
32 :     my $id = $1;
33 :     my @seq = ();
34 :     while (defined($line = <FASTA>) && ($line !~ /^>/))
35 :     {
36 :     $line =~ s/\s//g;
37 :     push(@seq,$line);
38 :     }
39 :     my $seq = join("",@seq);
40 :     $fasta->{$id}= ">$id\n$seq";
41 :     }
42 :     close FASTA;
43 :    
44 :     my $job_id = "tmpid";
45 :     my $tmpfile = "$FIG_Config::temp/$job_id.$$.fasta";
46 :    
47 :     #my $simsoutput = "$jobdir/raw_ff.sims";
48 :     open (FFOUT, $ffoutput);
49 :     open (SIMSOUT, ">$simsoutput");
50 :    
51 :     #$fam_data = $fig->get_figfams_data($fam_data);
52 :     my $ffs = new FFs($fam_data,$fig);
53 :    
54 :    
55 :    
56 :     while (my $line = <FFOUT>)
57 :     {
58 :     chomp ($line);
59 :     my ($id,$numHits,$contig,$role,$otu) = split (/\t/, $line);
60 :    
61 :     my @fams_with_funcs = $ffs->families_with_function($role);
62 :     my @db_paths=();
63 :     next if (scalar @fams_with_funcs > 20);
64 :     foreach my $fam (@fams_with_funcs)
65 :     {
66 :     my ($sub) = $fam =~ /FIG\d\d\d(\d\d\d)/;
67 :     push @db_paths, "$fam_data/FIGFAMS/$sub/$fam/PEGs.fasta";
68 :     }
69 :    
70 :     # run the blast against all dbs
71 :     open (TMP,">$tmpfile");
72 :     print TMP $fasta->{$contig};
73 :     #print TMP $fasta->{$id};
74 :     close TMP;
75 :    
76 :     my @cmd = ("$FIG_Config::ext_bin/blastall",
77 :     '-i', $tmpfile,
78 :     '-d', '"'.join(" ", @db_paths).'"',
79 :     '-m', 8,
80 :     '-FF',
81 :     '-p', 'blastx',
82 :     '-g T');
83 :     my $cmd = join " ", @cmd;
84 :    
85 :     my @tmp = `$cmd` || die "could not open blast";
86 :     print SIMSOUT @tmp;
87 :    
88 :     }
89 :     close SIMSOUT;
90 :     close FFOUT;
91 :     unlink($tmpfile);

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3