[Bioperl-l] reading and writing tree
Mark A. Jensen
maj at fortinbras.us
Mon Mar 30 12:16:22 EDT 2009
Hi Peter--
do
my $output = new Bio::TreeIO(-file => ">${filename}.new", -format => "newick");
(just like writing to files using open() )
Should fix it-
cheers, MAJ
----- Original Message -----
From: "Peter Menzel" <pmenzel at googlemail.com>
To: <bioperl-l at lists.open-bio.org>
Sent: Monday, March 30, 2009 9:56 AM
Subject: [Bioperl-l] reading and writing tree
> Hi,
>
> using the TreeIO class, I try to read a tree from a newick file,
> delete some nodes, and write the tree using write_tree().
> Besides that I cannot write to files, that don't exist already, it's
> also not possible to write to existing files.
> The following error message is written:
>
> Filehandle GEN1 opened only for input at
> /usr/share/perl5/Bio/Root/IO.pm line 421.
>
> So apparently somehow a file handle is associated with the tree, since
> different TreeIO objects are used.
> Is there a workaround for this problem?
>
> The actual code I run:
>
> #!/usr/bin/perl -w
>
> use strict;
> use Bio::TreeIO;
>
> my $filename = shift @ARGV;
>
> # parse in newick/new hampshire format
> my $input = new Bio::TreeIO(-file => $filename,
> -format => "newick");
> my $tree = $input->next_tree;
>
> foreach my $nodename (@ARGV) {
> my @nodes = $tree->find_node(-id => $nodename);
> if(@nodes > 0) {
> foreach my $n (@nodes) {
> $tree->remove_Node($n);
> }
> }
> }
> $input->close();
>
> #write tree to new file
> my $output = new Bio::TreeIO(-file => $filename.".new", -format => "newick");
> $output->write_tree($tree);
>
>
> kind regards, Peter
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>
>
More information about the Bioperl-l
mailing list