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

Diff of /FigKernelPackages/AliTree.pm

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

revision 1.1, Thu Jul 12 17:52:56 2007 UTC revision 1.3, Wed Aug 8 18:43:37 2007 UTC
# Line 64  Line 64 
64      if (! defined("$dir/full.ali"))   { return undef }      if (! defined("$dir/full.ali"))   { return undef }
65    
66      my($ali,$core_ali);      my($ali,$core_ali);
67      (open(ALI,"<$dir/full.ali") && ($ali = &gjoseqlib::read_fasta(\*ALI)))      open(ALI,"<$dir/full.ali") || die "could not open $dir/full.ali";
68          || return undef;      ($ali = &gjoseqlib::read_fasta(\*ALI)) || die "$dir/full.ali is not well-formatted fasta";
69      close(ALI);      close(ALI);
70    
71      if (open(ALI,"<$dir/core.ali") && ($core_ali = &gjoseqlib::read_fasta(\*ALI)))      if (open(ALI,"<$dir/core.ali") && ($core_ali = &gjoseqlib::read_fasta(\*ALI)))
# Line 85  Line 85 
85          $ali      = [grep { ! $deleted{$_->[0]} } @$ali];          $ali      = [grep { ! $deleted{$_->[0]} } @$ali];
86          $core_ali = $core_ali ? [grep { ! $deleted{$_->[0]} } @$core_ali] : undef;          $core_ali = $core_ali ? [grep { ! $deleted{$_->[0]} } @$core_ali] : undef;
87      }      }
88    
89      if (@$ali < 2)         { return undef }      if (@$ali < 2)         { return undef }
90    
91      my @coords = ();      my @coords = ();
# Line 194  Line 195 
195      {      {
196          my $id     = $self->{id};          my $id     = $self->{id};
197          my $data   = $self->{data};          my $data   = $self->{data};
198          my $dir    = "$data/$id";          my $dir    = $self->{dir};
199          my $ali    = $self->{ali};          my $ali    = $self->{ali};
200          if ((! -s "$dir/tree.newick") && (@$ali > 3))          if ((! -s "$dir/tree.newick") && (@$ali > 3))
201          {          {
# Line 322  Line 323 
323      return (-s "$dir/full.html") ? join("",`cat $dir/full.html`) : undef;      return (-s "$dir/full.html") ? join("",`cat $dir/full.html`) : undef;
324  }  }
325    
326    sub phob_dir {
327        my($self) = @_;
328    
329        my $dir    = $self->{dir};
330        if (! -d "$dir/PHOB")
331        {
332            if ($self->make_phob_dir("$dir/PHOB"))
333            {
334                return "$dir/PHOB";
335            }
336            else
337            {
338                return "";
339            }
340        }
341        else
342        {
343            return "$dir/PHOB";
344        }
345    }
346    
347    sub make_phob_dir {
348        my($self,$dir) = @_;
349    
350        if (-d $dir)
351        {
352            print STDERR "Attempt to make $dir failed: it already exists\n";
353            return 0;
354        }
355        &FIG::verify_dir($dir);
356    
357        my($ali,$tree);
358        if (($ali = $self->ali) && ($tree = $self->tree))
359        {
360            my($n,$to,$id,$seq,$idN,$tuple);
361            open(IDS,">$dir/ids")       || die "could not open $dir/ids";
362            open(ALI,">$dir/aln.fasta") || die "could not open $dir/aln.fasta";
363            open(TREE,">$dir/tree.dnd") || die "could not open $dir/tree.dnd";
364            $n = 1;
365            $to = {};
366            foreach $tuple (@$ali)
367            {
368                ($id,undef,$seq) = @$tuple;
369                $idN = "id$n";
370                $n++;
371                print IDS "$idN\t$id\n";
372                $to->{$id} = $idN;
373                $seq =~ s/\s//gs;
374                $seq =~ s/[uU]/x/g;
375                &FIG::display_id_and_seq($idN,\$seq,\*ALI);
376            }
377            &tree_utilities::relabel_nodes($tree,$to);
378            print TREE &tree_utilities::to_newick($tree),"\n";
379            close(IDS);
380            close(ALI);
381            close(TREE);
382            return 1;
383        }
384        else
385        {
386            return 0;
387        }
388    }
389    
390  1;  1;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3