[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.51, Mon May 14 14:19:16 2007 UTC revision 1.52, Thu May 17 12:42:28 2007 UTC
# Line 1  Line 1 
1  #  # -*- perl -*-
2    ########################################################################
3  # Copyright (c) 2003-2006 University of Chicago and Fellowship  # Copyright (c) 2003-2006 University of Chicago and Fellowship
4  # for Interpretations of Genomes. All Rights Reserved.  # for Interpretations of Genomes. All Rights Reserved.
5  #  #
# Line 13  Line 14 
14  # at info@ci.uchicago.edu or the Fellowship for Interpretation of  # at info@ci.uchicago.edu or the Fellowship for Interpretation of
15  # Genomes at veronika@thefig.info or download a copy from  # Genomes at veronika@thefig.info or download a copy from
16  # http://www.theseed.org/LICENSE.TXT.  # http://www.theseed.org/LICENSE.TXT.
17  #  ########################################################################
18    
19  package FigFam;  package FigFam;
20    
# Line 130  Line 131 
131    
132      if (@$pegsL < 2)      if (@$pegsL < 2)
133      {      {
134          system "echo 1 > $dir/built";          if (-w "$dir/built") {
135                open( TMP, ">$dir/built") || die "Could not write-open $dir/built";
136                print TMP "1\n";
137                close(TMP) || die "Could not close $dir/built";
138            }
139            else {
140                warn "WARNING: $dir/built is not writable";
141            }
142          return undef;          return undef;
143      }      }
144    
# Line 380  Line 388 
388  #       return undef;  #       return undef;
389  #   }  #   }
390    
391      if ((! -s "$dir/built") && $fam->{bounds}) { system "echo 1 > $dir/built" }      if ((! -s "$dir/built") && $fam->{bounds}) {
392            if (-w "$dir/built") {
393                open( TMP, ">$dir/built") || die "Could not write-open $dir/built";
394                print TMP "1\n";
395                close(TMP) || die "Could not close $dir/built";
396            }
397            else {
398                warn "WARNING: $dir/built is not writable";
399            }
400        }
401      bless $fam,$class;      bless $fam,$class;
402      return $fam;      return $fam;
403  }  }
# Line 614  Line 631 
631      my($func3);      my($func3);
632      for ($i=0; ($i < @sims) && (defined($func3 = $fig->function_of($sims[$i]->id2))) &&      for ($i=0; ($i < @sims) && (defined($func3 = $fig->function_of($sims[$i]->id2))) &&
633                 (&FIG::hypo($func3) || &SameFunc::same_func($func,$func3)); $i++) {}                 (&FIG::hypo($func3) || &SameFunc::same_func($func,$func3)); $i++) {}
634      if (($i == @sims) && ($ENV{'VERBOSE'})) { print STDERR "make assignment: $id2\t$func\n" }      if (($i == @sims) && ($ENV{VERBOSE})) { print STDERR "make assignment: $id2\t$func\n" }
635    
636      $fam->{ignorable_func}->{"$id2\t$func"} = ($i == @sims);      $fam->{ignorable_func}->{"$id2\t$func"} = ($i == @sims);
637    
# Line 741  Line 758 
758  sub should_be_member {  sub should_be_member {
759      my($self,$seq,$debug) = @_;      my($self,$seq,$debug) = @_;
760    
761      if ($debug) { $ENV{'VERBOSE'} = $ENV{'DEBUG'} = 1 }      if ($debug) {
762            $ENV{DEBUG}   = 1;
763            $ENV{VERBOSE} = $ENV{VERBOSE} ? $ENV{VERBOSE} : 1;
764            print STDERR "\nTesting for membership:\n";
765        }
766    
767      my $fig = $self->{fig};      my $fig = $self->{fig};
768      my $dir = $self->{dir};      my $dir = $self->{dir};
# Line 750  Line 771 
771      print TMP ">query\n$seq\n";      print TMP ">query\n$seq\n";
772      close(TMP);      close(TMP);
773    
774      if ($ENV{'DEBUG'}) { print STDERR &Dumper([$self->family_id,$seq]) }      if ($ENV{DEBUG}) { print STDERR &Dumper([$self->family_id,$seq]) }
775    
776      my $query_ln = length($seq);      my $query_ln = length($seq);
777    
# Line 768  Line 789 
789      my $sims = [];      my $sims = [];
790      foreach $_ (@tmp)      foreach $_ (@tmp)
791      {      {
792          if ($ENV{'DEBUG'}) { print STDERR $_ }          if ($ENV{DEBUG}) { print STDERR $_ }
793          chop;          chop;
794    
795          my $sim = [split(/\t/,$_)];          my $sim = [split(/\t/,$_)];
796          my $peg = $sim->[1];          my $peg = $sim->[1];
797          next if (($_ = $ENV{'IGNORE'}) && (&FIG::genome_of($peg) eq $_)); # for debugging          next if (($_ = $ENV{IGNORE}) && (&FIG::genome_of($peg) eq $_)); # for debugging
798    
799          my $sc = $sim->[10];          my $sc = $sim->[10];
800          my $bit_score = $sim->[11];          my $bit_score = $sim->[11];
# Line 796  Line 817 
817              {              {
818                  if (($bit_score >= $bounds->[1]) && ((! $bounds->[2]) || $bounds->[3] < $bit_score))                  if (($bit_score >= $bounds->[1]) && ((! $bounds->[2]) || $bounds->[3] < $bit_score))
819                  {                  {
820                      if ($ENV{'DEBUG'}) { print STDERR "    yes - $peg matched1=$matched1 ln1=$ln1 matched2=$matched2 ln2=$ln2\n" }                      if ($ENV{DEBUG}) { print STDERR "    yes - $peg matched1=$matched1 ln1=$ln1 matched2=$matched2 ln2=$ln2\n" }
821                      ++$yes;                      ++$yes;
822                      if ($yes > ($no+1)) { $good = 1 }                      if ($yes > ($no+1)) { $good = 1 }
823                  }                  }
824                  else                  else
825                  {                  {
826                      my $bad_func = $bounds->[2] ? $fig->function_of($bounds->[2]) : "";                      my $bad_func = $bounds->[2] ? $fig->function_of($bounds->[2]) : "";
827                      if ($ENV{'DEBUG'}) { print STDERR "    no - $peg ",join(",",@$bounds)," $bad_func\n" }                      if ($ENV{DEBUG}) { print STDERR "    no - $peg ", join(",",@$bounds)," $bad_func\n" }
828                      ++$no;                      ++$no;
829                      if ($no > $yes) { $bad = 1 }                      if ($no > $yes) { $bad = 1 }
830                  }                  }
831              }              }
832                else {
833                    if ($ENV{DEBUG}) {
834                        print STDERR "    bounds=", ($bounds ? qq(non-nil) : qq(nil))
835                            , ", num_sims=", (scalar @$sims), "\n";
836                    }
837                }
838            }
839            else {
840                if ($ENV{DEBUG}) {
841                    print STDERR
842                        "    seen=", ($seen{$peg} ? $seen{$peg} : 0), " score=$sc,"
843                        , " matched1=$matched1, ln1=$ln1,"
844                        , " matched2=$matched2, ln2=$ln2,"
845                        , "\n";
846                }
847          }          }
848      }      }
849      $good = ($good && (! $bad)) ? 1 : 0;      $good = ($good && (! $bad)) ? 1 : 0;
850      if ($ENV{'DEBUG'}) { print STDERR "        yes=$yes no=$no good=$good\n" }      if ($ENV{DEBUG}) { print STDERR "        yes=$yes no=$no good=$good\n"; }
851      return ($good,$sims);      return ($good,$sims);
852  }  }
853    

Legend:
Removed from v.1.51  
changed lines
  Added in v.1.52

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3