[Bio] / FigKernelPackages / FigFam.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/FigFam.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.27, Wed Nov 15 19:10:40 2006 UTC revision 1.28, Mon Dec 25 17:14:15 2006 UTC
# Line 80  Line 80 
80    
81      if (! -s "$dir/function")      if (! -s "$dir/function")
82      {      {
83          my @first = `head -n 1 \"$dir/PEGs\"`;          &reset_function($fam);
         my $func = ($first[0] && ($first[0] =~ /^\S+\t\S+\t(\S.*\S)/)) ? $1 : "hypothetical protein";  
         open(FUNC,">$dir/function") || die "could not open $dir/function";  
         print FUNC "$1\n";  
         close(FUNC);  
84      }      }
85    
86      open(FUNC,"<$dir/function") || die "could not open $dir/function";      open(FUNC,"<$dir/function") || die "could not open $dir/function";
# Line 114  Line 110 
110          }          }
111          close(FASTA);          close(FASTA);
112      }      }
113      else      elsif (! -s "$dir/built")
114      {      {
115          open(FASTA,">$dir/PEGs.fasta") || die "could not write-open $dir/PEGs.fasta";          open(FASTA,">$dir/PEGs.fasta") || die "could not write-open $dir/PEGs.fasta";
116          foreach $peg (@$pegsL)          foreach $peg (@$pegsL)
# Line 133  Line 129 
129          close(FASTA);          close(FASTA);
130      }      }
131    
132      if ((! -s "$dir/PEGs.fasta.pin") || ((-M "$dir/PEGs.fasta.pin") > (-M "$dir/PEGs.fasta")))      if ((! -s "$dir/built") && ((! -s "$dir/PEGs.fasta.pin") || ((-M "$dir/PEGs.fasta.pin") > (-M "$dir/PEGs.fasta"))))
133      {      {
134          &FIG::run("$FIG_Config::ext_bin/formatdb -i \"$dir/PEGs.fasta\" -p");          &FIG::run("$FIG_Config::ext_bin/formatdb -i \"$dir/PEGs.fasta\" -p");
135      }      }
136    
137      if (! -s "$dir/bounds.sims")      if ((! -s "$dir/bounds.sims") && (! -s "$dir/built"))
138      {      {
139          open(SIMS,">$dir/bounds.sims")          open(SIMS,">$dir/bounds.sims")
140              || die "could not open $dir/bounds.sims";              || die "could not open $dir/bounds.sims";
# Line 158  Line 154 
154          close(SIMS);          close(SIMS);
155      }      }
156    
157      if (! -f "$dir/bounds")      if ((! "$dir/built") && (! -f "$dir/bounds"))
158      {      {
159          print STDERR " building bounds for $fam_id\n";          print STDERR " building bounds for $fam_id\n";
160          open(BOUNDS,">$dir/bounds")    || die "could not open $dir/bounds";          open(BOUNDS,">$dir/bounds")    || die "could not open $dir/bounds";
# Line 190  Line 186 
186                              $bad = $id2;                              $bad = $id2;
187                              $bad_sc = $sim->[2];                              $bad_sc = $sim->[2];
188                          }                          }
                         elsif ($peg eq "fig|262719.3.peg.75")  
                         {  
                             print STDERR "ok: $func\n$func2\n$id2\n";  
                         }  
189                      }                      }
190                  }                  }
191    
# Line 224  Line 216 
216    
217      my $blast_file = "$dir/blastout";      my $blast_file = "$dir/blastout";
218      my $rep_file   = "$dir/reps";      my $rep_file   = "$dir/reps";
219      if (! -f $blast_file)      if ((! -f $blast_file) && (! -s "$dir/built"))
220      {      {
221          &FIG::run("split_and_trim_sequences $dir/Split blastout=$blast_file < $dir/PEGs.fasta");          &FIG::run("split_and_trim_sequences $dir/Split blastout=$blast_file < $dir/PEGs.fasta");
222          if (-s $blast_file)          if (-s $blast_file)
# Line 258  Line 250 
250          }          }
251      }      }
252    
253      if ((-s $blast_file) && (! -s $rep_file))      if ((-s $blast_file) && (! -s $rep_file) && (! -s "$dir/built"))
254      {      {
255          my $n = 1;          my $n = 1;
256          open(REP,">$rep_file")          || die "could not open $rep_file";          open(REP,">$rep_file")          || die "could not open $rep_file";
# Line 300  Line 292 
292          close(FASTA);          close(FASTA);
293          close(REP);          close(REP);
294      }      }
     $fam->{reps} = [map { $_ =~ /^(\S+)/; $1 } `grep -v "^>" $rep_file`];  
295    
296        $fam->{reps} = (-s $rep_file) ? [map { $_ =~ /^(\S+)/; $1 } `grep -v "^>" $rep_file`] : [];
297    
298        if (! -s "$dir/built") { system "echo 1 > $dir/built" }
299      bless $fam,$class;      bless $fam,$class;
300      return $fam;      return $fam;
301  }  }
302    
303    sub reset_function {
304        my($self) = @_;
305    
306        my $fam_dir  = $self->{dir};
307        my $fig      = $self->{fig};
308    
309        my @pegs = grep { $fig->is_real_feature($_) } map { $_ =~ /^\S+\t(\S+)/; $1 } `cat "$fam_dir/PEGs"`;
310        my($peg,%funcs,$func,@subs);
311        foreach $peg (@pegs)
312        {
313            $func = $fig->function_of($peg);
314            @subs = grep { $fig->usable_subsystem($_) } $fig->peg_to_subsystems($peg);
315            my $incr = (@subs > 0) ? 2 : 1;
316            $funcs{$func} += $incr;
317        }
318        my @funcs = sort { $funcs{$b} <=> $funcs{$a} } keys(%funcs);
319        $func = (@funcs > 0) ? $funcs[0] : "hypothetical protein";
320        open(FUNC,">$fam_dir/function") || die "could not open $fam_dir/function";
321        print FUNC "$1\n";
322        close(FUNC);
323    }
324    
325  sub display {  sub display {
326      my($self) = @_;      my($self) = @_;
327    

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.28

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3