From heikki at dev.open-bio.org Mon Dec 3 03:29:43 2007 From: heikki at dev.open-bio.org (Heikki Lehvaslaiho) Date: Mon, 03 Dec 2007 08:29:43 +0000 Subject: [Bioperl-guts-l] bioperl-live/Bio SeqIO.pm,1.98,1.99 Message-ID: <200712030829.lB38ThOv011734@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio In directory dev.open-bio.org:/tmp/cvs-serv11725 Modified Files: SeqIO.pm Log Message: correct syntax in the example; doc formatting Index: SeqIO.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO.pm,v retrieving revision 1.98 retrieving revision 1.99 diff -C2 -d -r1.98 -r1.99 *** SeqIO.pm 1 Jul 2007 21:43:29 -0000 1.98 --- SeqIO.pm 3 Dec 2007 08:29:40 -0000 1.99 *************** *** 171,180 **** use IO::String; my $in = Bio::SeqIO->new(-file => "emblfile", ! -format => 'EMBL'); while ( my $seq = $in->next_seq() ) { # the output handle is reset for every file my $stringio = IO::String->new($string); my $out = Bio::SeqIO->new(-fh => $stringio, ! -format => 'fasta'); # output goes into $string $out->write_seq($seq); --- 171,180 ---- use IO::String; my $in = Bio::SeqIO->new(-file => "emblfile", ! -format => 'EMBL'); while ( my $seq = $in->next_seq() ) { # the output handle is reset for every file my $stringio = IO::String->new($string); my $out = Bio::SeqIO->new(-fh => $stringio, ! -format => 'fasta'); # output goes into $string $out->write_seq($seq); *************** *** 192,200 **** see the SeqIO HOWTO (L). ! If no format is specified and a filename is given then the module ! will attempt to deduce the format from the filename suffix. If ! there is no suffix that Bioperl understands then it will attempt ! to guess the format based on file content. If this is unsuccessful ! then Fasta format is assumed. The format name is case-insensitive: 'FASTA', 'Fasta' and 'fasta' are --- 192,200 ---- see the SeqIO HOWTO (L). ! If no format is specified and a filename is given then the module will ! attempt to deduce the format from the filename suffix. If there is no ! suffix that Bioperl understands then it will attempt to guess the ! format based on file content. If this is unsuccessful then Fasta ! format is assumed. The format name is case-insensitive: 'FASTA', 'Fasta' and 'fasta' are *************** *** 221,229 **** evaluates as defined but false: ! my $gb = Bio::SeqIO->new -file => " "gb"; ! my $fa = Bio::SeqIO->new -file => ">gball.fa", ! -format => "fasta", ! -flush => 0; # go as fast as we can! while($seq = $gb->next_seq) { $fa->write_seq($seq) } --- 221,229 ---- evaluates as defined but false: ! my $gb = Bio::SeqIO->new(-file => " "gb"); ! my $fa = Bio::SeqIO->new(-file => ">gball.fa", ! -format => "fasta", ! -flush => 0); # go as fast as we can! while($seq = $gb->next_seq) { $fa->write_seq($seq) } *************** *** 268,274 **** =head2 Mailing Lists ! User feedback is an integral part of the evolution of this ! and other Bioperl modules. Send your comments and suggestions preferably ! to one of the Bioperl mailing lists. Your participation is much appreciated. --- 268,274 ---- =head2 Mailing Lists ! User feedback is an integral part of the evolution of this and other ! Bioperl modules. Send your comments and suggestions preferably to one ! of the Bioperl mailing lists. Your participation is much appreciated. From avilella at dev.open-bio.org Mon Dec 3 06:30:22 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 11:30:22 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy SLAC.pm, 1.6, 1.7 Message-ID: <200712031130.lB3BUMgB012455@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12429 Modified Files: SLAC.pm Log Message: cleaning some PAML bits that were used as a template Index: SLAC.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/SLAC.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SLAC.pm 14 Jun 2007 15:23:09 -0000 1.6 --- SLAC.pm 3 Dec 2007 11:30:20 -0000 1.7 *************** *** 142,146 **** NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of PAML parameters (all passed to set_parameter) -executable => where the hyphy executable resides --- 142,146 ---- NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of parameters (all passed to set_parameter) -executable => where the hyphy executable resides *************** *** 180,184 **** Function: run the slac analysis using the default or updated parameters the alignment parameter must have been set ! Returns : Return code, L Args : L object, L object [optional] --- 180,184 ---- Function: run the slac analysis using the default or updated parameters the alignment parameter must have been set ! Returns : Return code, hash Args : L object, L object [optional] *************** *** 458,462 **** Title : cleanup Usage : $slac->cleanup(); ! Function: Will cleanup the tempdir directory after a PAML run Returns : none Args : none --- 458,462 ---- Title : cleanup Usage : $slac->cleanup(); ! Function: Will cleanup the tempdir directory after a run Returns : none Args : none From avilella at dev.open-bio.org Mon Dec 3 06:31:59 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 11:31:59 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy REL.pm, 1.4, 1.5 Message-ID: <200712031131.lB3BVxef012489@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12463 Modified Files: REL.pm Log Message: cleanins some remaining PAML bits left from using the PAML module as a template Index: REL.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/REL.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** REL.pm 14 Jun 2007 15:23:09 -0000 1.4 --- REL.pm 3 Dec 2007 11:31:56 -0000 1.5 *************** *** 124,128 **** NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of PAML parameters (all passed to set_parameter) -executable => where the hyphy executable resides --- 124,128 ---- NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of parameters (all passed to set_parameter) -executable => where the hyphy executable resides *************** *** 162,166 **** Function: run the rel analysis using the default or updated parameters the alignment parameter must have been set ! Returns : Return code, L Args : L object, L object [optional] --- 162,166 ---- Function: run the rel analysis using the default or updated parameters the alignment parameter must have been set ! Returns : Return code, Hash Args : L object, L object [optional] *************** *** 316,320 **** Title : cleanup Usage : $rel->cleanup(); ! Function: Will cleanup the tempdir directory after a PAML run Returns : none Args : none --- 316,320 ---- Title : cleanup Usage : $rel->cleanup(); ! Function: Will cleanup the tempdir directory after a run Returns : none Args : none From avilella at dev.open-bio.org Mon Dec 3 06:32:18 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 11:32:18 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy Base.pm, 1.2, 1.3 Message-ID: <200712031132.lB3BWIgC012523@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12497 Modified Files: Base.pm Log Message: cleanins some remaining PAML bits left from using the PAML module as a template Index: Base.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/Base.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Base.pm 14 Jun 2007 15:23:09 -0000 1.2 --- Base.pm 3 Dec 2007 11:32:16 -0000 1.3 *************** *** 129,133 **** NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of PAML parameters (all passed to set_parameter) -executable => where the hyphy executable resides --- 129,133 ---- NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of parameters (all passed to set_parameter) -executable => where the hyphy executable resides *************** *** 495,499 **** Title : cleanup Usage : $hyphy->cleanup(); ! Function: Will cleanup the tempdir directory after a PAML run Returns : none Args : none --- 495,499 ---- Title : cleanup Usage : $hyphy->cleanup(); ! Function: Will cleanup the tempdir directory after a run Returns : none Args : none From avilella at dev.open-bio.org Mon Dec 3 06:32:53 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 11:32:53 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy FEL.pm, 1.4, 1.5 Message-ID: <200712031132.lB3BWrAF012557@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12531 Modified Files: FEL.pm Log Message: cleaning some remaining PAML bits left from using the PAML module as a template Index: FEL.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/FEL.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** FEL.pm 14 Jun 2007 15:23:09 -0000 1.4 --- FEL.pm 3 Dec 2007 11:32:51 -0000 1.5 *************** *** 160,164 **** NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of PAML parameters (all passed to set_parameter) -executable => where the hyphy executable resides --- 160,164 ---- NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of parameters (all passed to set_parameter) -executable => where the hyphy executable resides *************** *** 198,202 **** Function: run the fel analysis using the default or updated parameters the alignment parameter must have been set ! Returns : Return code, L Args : L object, L object [optional] --- 198,202 ---- Function: run the fel analysis using the default or updated parameters the alignment parameter must have been set ! Returns : Return code, Hash Args : L object, L object [optional] *************** *** 373,377 **** Title : cleanup Usage : $fel->cleanup(); ! Function: Will cleanup the tempdir directory after a PAML run Returns : none Args : none --- 373,377 ---- Title : cleanup Usage : $fel->cleanup(); ! Function: Will cleanup the tempdir directory after a run Returns : none Args : none From avilella at dev.open-bio.org Mon Dec 3 06:33:17 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 11:33:17 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy Modeltest.pm, 1.4, 1.5 Message-ID: <200712031133.lB3BXHah012595@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12569 Modified Files: Modeltest.pm Log Message: cleaning some remaining PAML bits left from using the PAML module as a template Index: Modeltest.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/Modeltest.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Modeltest.pm 14 Jun 2007 15:23:09 -0000 1.4 --- Modeltest.pm 3 Dec 2007 11:33:15 -0000 1.5 *************** *** 131,135 **** NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of PAML parameters (all passed to set_parameter) -executable => where the hyphy executable resides --- 131,135 ---- NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object ! -params => a hashref of parameters (all passed to set_parameter) -executable => where the hyphy executable resides *************** *** 169,173 **** Function: run the modeltest analysis using the default or updated parameters the alignment parameter must have been set ! Returns : Return code, L Args : L object, L object [optional] --- 169,173 ---- Function: run the modeltest analysis using the default or updated parameters the alignment parameter must have been set ! Returns : Return code, Hash Args : L object, L object [optional] *************** *** 312,316 **** Title : cleanup Usage : $modeltest->cleanup(); ! Function: Will cleanup the tempdir directory after a PAML run Returns : none Args : none --- 312,316 ---- Title : cleanup Usage : $modeltest->cleanup(); ! Function: Will cleanup the tempdir directory after a run Returns : none Args : none From bugzilla-daemon at portal.open-bio.org Mon Dec 3 11:15:38 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Mon, 3 Dec 2007 11:15:38 -0500 Subject: [Bioperl-guts-l] [Bug 2415] New: Wrong tree coloring by Tree::Draw::Cladogram Message-ID: http://bugzilla.open-bio.org/show_bug.cgi?id=2415 Summary: Wrong tree coloring by Tree::Draw::Cladogram Product: BioPerl Version: 1.5 branch Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: Core Components AssignedTo: bioperl-guts-l at bioperl.org ReportedBy: yegor_bazykin at mail.ru CC: valiente at lsi.upc.edu In tree-coloring mode, the Tree::Draw::Cladogram colors branches according to the state of the parent node of the branch. This is in contrast to what the documentation says, and also not the desired behaviour (currently, both child branches of each parent node always have the same color, which is stupid). Line 449 of Cladogram.pm, which now reads print $INFO $Rcolor{$node->ancestor}, " ", $Gcolor{$node->ancestor}, " ", $Bcolor{$node->ancestor}, " setrgbcolor\n"; should read instead print $INFO $Rcolor{$node}, " ", $Gcolor{$node}, " ", $Bcolor{$node}, " setrgbcolor\n"; The patched version of Cladogram.pm is attached. -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at portal.open-bio.org Mon Dec 3 11:16:32 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Mon, 3 Dec 2007 11:16:32 -0500 Subject: [Bioperl-guts-l] [Bug 2415] Wrong tree coloring by Tree::Draw::Cladogram In-Reply-To: Message-ID: <200712031616.lB3GGWAs010347@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=2415 ------- Comment #1 from yegor_bazykin at mail.ru 2007-12-03 11:16 EST ------- Created an attachment (id=833) --> (http://bugzilla.open-bio.org/attachment.cgi?id=833&action=view) patched Cladogram.pm -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at portal.open-bio.org Mon Dec 3 11:17:10 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Mon, 3 Dec 2007 11:17:10 -0500 Subject: [Bioperl-guts-l] [Bug 2415] Wrong tree coloring by Tree::Draw::Cladogram In-Reply-To: Message-ID: <200712031617.lB3GHAqw010450@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=2415 yegor_bazykin at mail.ru changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |yegor_bazykin at mail.ru -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From avilella at dev.open-bio.org Mon Dec 3 11:18:34 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 16:18:34 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy SLAC.pm, 1.7, 1.8 Message-ID: <200712031618.lB3GIYPi012865@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12839 Modified Files: SLAC.pm Log Message: adding treeio declaration Index: SLAC.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/SLAC.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SLAC.pm 3 Dec 2007 11:30:20 -0000 1.7 --- SLAC.pm 3 Dec 2007 16:18:32 -0000 1.8 *************** *** 19,22 **** --- 19,23 ---- use Bio::Tools::Run::Phylo::Hyphy::SLAC; use Bio::AlignIO; + use Bio::TreeIO; my $alignio = Bio::AlignIO->new(-format => 'fasta', From avilella at dev.open-bio.org Mon Dec 3 11:18:53 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 16:18:53 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy REL.pm, 1.5, 1.6 Message-ID: <200712031618.lB3GIrDu012899@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12873 Modified Files: REL.pm Log Message: adding treeio decl Index: REL.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/REL.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** REL.pm 3 Dec 2007 11:31:56 -0000 1.5 --- REL.pm 3 Dec 2007 16:18:51 -0000 1.6 *************** *** 19,22 **** --- 19,23 ---- use Bio::Tools::Run::Phylo::Hyphy::REL; use Bio::AlignIO; + use Bio::TreeIO; my $alignio = Bio::AlignIO->new(-format => 'fasta', From avilella at dev.open-bio.org Mon Dec 3 11:19:53 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 16:19:53 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy Modeltest.pm, 1.5, 1.6 Message-ID: <200712031619.lB3GJr5h012933@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12907 Modified Files: Modeltest.pm Log Message: modeltest doesnt need a tree, right? Index: Modeltest.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/Modeltest.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Modeltest.pm 3 Dec 2007 11:33:15 -0000 1.5 --- Modeltest.pm 3 Dec 2007 16:19:51 -0000 1.6 *************** *** 25,34 **** my $aln = $alignio->next_aln; - my $treeio = Bio::TreeIO->new( - -format => 'newick', -file => 't/data/hyphy1.tree'); - my $modeltest = Bio::Tools::Run::Phylo::Hyphy::Modeltest->new(); $modeltest->alignment($aln); - $modeltest->tree($tree); my ($rc,$results) = $modeltest->run(); --- 25,30 ---- From avilella at dev.open-bio.org Mon Dec 3 11:22:21 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 16:22:21 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy Modeltest.pm, 1.6, 1.7 Message-ID: <200712031622.lB3GMLB3012967@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12941 Modified Files: Modeltest.pm Log Message: no, sorry, it does Index: Modeltest.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/Modeltest.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Modeltest.pm 3 Dec 2007 16:19:51 -0000 1.6 --- Modeltest.pm 3 Dec 2007 16:22:19 -0000 1.7 *************** *** 19,22 **** --- 19,23 ---- use Bio::Tools::Run::Phylo::Hyphy::Modeltest; use Bio::AlignIO; + use Bio::TreeIO; my $alignio = Bio::AlignIO->new(-format => 'fasta', *************** *** 24,30 **** --- 25,34 ---- my $aln = $alignio->next_aln; + my $treeio = Bio::TreeIO->new( + -format => 'newick', -file => 't/data/hyphy1.tree'); my $modeltest = Bio::Tools::Run::Phylo::Hyphy::Modeltest->new(); $modeltest->alignment($aln); + $modeltest->tree($tree); my ($rc,$results) = $modeltest->run(); From avilella at dev.open-bio.org Mon Dec 3 11:22:57 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Mon, 03 Dec 2007 16:22:57 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy FEL.pm, 1.5, 1.6 Message-ID: <200712031622.lB3GMvg2013001@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv12975 Modified Files: FEL.pm Log Message: adding treeio decl Index: FEL.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/FEL.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** FEL.pm 3 Dec 2007 11:32:51 -0000 1.5 --- FEL.pm 3 Dec 2007 16:22:55 -0000 1.6 *************** *** 19,22 **** --- 19,23 ---- use Bio::Tools::Run::Phylo::Hyphy::FEL; use Bio::AlignIO; + use Bio::TreeIO; my $alignio = Bio::AlignIO->new(-format => 'fasta', From scain at dev.open-bio.org Mon Dec 3 14:55:08 2007 From: scain at dev.open-bio.org (Scott Cain) Date: Mon, 03 Dec 2007 19:55:08 +0000 Subject: [Bioperl-guts-l] bioperl-live/Bio/FeatureIO gff.pm,1.57,1.58 Message-ID: <200712031955.lB3Jt8N1015015@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/FeatureIO In directory dev.open-bio.org:/tmp/cvs-serv14996/Bio/FeatureIO Modified Files: gff.pm Log Message: the check for '>' was actually swallowing the first line of a fasta file (where the fasta file was masquerading as a GFF3 file without any features). Now that works. Index: gff.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/FeatureIO/gff.pm,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** gff.pm 26 Oct 2007 16:47:08 -0000 1.57 --- gff.pm 3 Dec 2007 19:55:05 -0000 1.58 *************** *** 99,103 **** else { my $directive; ! while(($directive = $self->_readline()) && ( $directive =~ /^##/ || $directive =~ /^>/)){ $self->_handle_directive($directive); } --- 99,103 ---- else { my $directive; ! while($directive = $self->_readline() && $directive =~ /^##/ ){ $self->_handle_directive($directive); } From jason at dev.open-bio.org Mon Dec 3 18:38:01 2007 From: jason at dev.open-bio.org (Jason Stajich) Date: Mon, 03 Dec 2007 23:38:01 +0000 Subject: [Bioperl-guts-l] bioperl-live/Bio/SearchIO fasta.pm,1.58,1.59 Message-ID: <200712032338.lB3Nc1cY015457@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/SearchIO In directory dev.open-bio.org:/tmp/cvs-serv15421/Bio/SearchIO Modified Files: fasta.pm Log Message: actually parse percent similar numbers out properly, add some tests to this effect, percent_conserved for nucleotide alignments now represents ungapped numbers from FASTA/SSEARCH Index: fasta.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SearchIO/fasta.pm,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** fasta.pm 6 Jul 2007 22:51:37 -0000 1.58 --- fasta.pm 3 Dec 2007 23:37:59 -0000 1.59 *************** *** 463,475 **** my ($identper,$gapper,$len,$querystart, $queryend,$hitstart,$hitend) = ($1,$2,$3,$4,$5,$6,$7); my $ident = POSIX::ceil(($identper/100) * $len); ! my $gaps = ( defined $gapper ) ? POSIX::ceil ( ($gapper/100) * $len) : undef; ! $self->element({'Name' => 'Hsp_gaps', 'Data' => $gaps}); $self->element({'Name' => 'Hsp_identity', 'Data' => $ident}); $self->element({'Name' => 'Hsp_positive', ! 'Data' => $ident}); $self->element({'Name' => 'Hsp_align-len', 'Data' => $len}); --- 463,477 ---- my ($identper,$gapper,$len,$querystart, $queryend,$hitstart,$hitend) = ($1,$2,$3,$4,$5,$6,$7); + my $ident = POSIX::ceil(($identper/100) * $len); ! my $gaps = POSIX::ceil ( ($gapper/100) * $len); $self->element({'Name' => 'Hsp_gaps', 'Data' => $gaps}); + my $positive = POSIX::ceil(($gapper/100) * $len); + $self->element({'Name' => 'Hsp_identity', 'Data' => $ident}); $self->element({'Name' => 'Hsp_positive', ! 'Data' => $positive}); $self->element({'Name' => 'Hsp_align-len', 'Data' => $len}); From jason at dev.open-bio.org Mon Dec 3 18:38:01 2007 From: jason at dev.open-bio.org (Jason Stajich) Date: Mon, 03 Dec 2007 23:38:01 +0000 Subject: [Bioperl-guts-l] bioperl-live/t SearchIO.t,1.126,1.127 Message-ID: <200712032338.lB3Nc1sE015454@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t In directory dev.open-bio.org:/tmp/cvs-serv15421/t Modified Files: SearchIO.t Log Message: actually parse percent similar numbers out properly, add some tests to this effect, percent_conserved for nucleotide alignments now represents ungapped numbers from FASTA/SSEARCH Index: SearchIO.t =================================================================== RCS file: /home/repository/bioperl/bioperl-live/t/SearchIO.t,v retrieving revision 1.126 retrieving revision 1.127 diff -C2 -d -r1.126 -r1.127 *** SearchIO.t 29 Nov 2007 22:53:38 -0000 1.126 --- SearchIO.t 3 Dec 2007 23:37:59 -0000 1.127 *************** *** 8,12 **** use BioperlTest; ! test_begin(-tests => 1681); use_ok('Bio::SearchIO'); --- 8,12 ---- use BioperlTest; ! test_begin(-tests => 1687); use_ok('Bio::SearchIO'); *************** *** 35,39 **** die if !defined $result; }; ! if ($@ && $@ =~ m{Handler couldn't resolve external entity}) { skip("XML::SAX::Expat does not work with XML tests; skipping",129); } elsif ($@) { --- 35,39 ---- die if !defined $result; }; ! if ($@ && $@ =~ m{Handler could not resolve external entity}) { skip("XML::SAX::Expat does not work with XML tests; skipping",129); } elsif ($@) { *************** *** 762,766 **** is(sprintf("%.2f",$hsp->percent_identity), '57.30'); is(sprintf("%.4f",$hsp->frac_identical('query')), 0.5907); ! is(sprintf("%.4f",$hsp->frac_identical('hit')), 0.5752); is($hsp->query->frame(), 0); is($hsp->hit->frame(), 0); --- 762,772 ---- is(sprintf("%.2f",$hsp->percent_identity), '57.30'); is(sprintf("%.4f",$hsp->frac_identical('query')), 0.5907); ! is(sprintf("%.4f",$hsp->frac_identical('hit')), 0.5752); ! # these are really UNGAPPED values not CONSERVED ! # otherwise ident and conserved would be identical for ! # nucleotide alignments ! is(sprintf("%.4f",$hsp->frac_conserved('total')), 0.5955); ! is(sprintf("%.4f",$hsp->frac_conserved('query')), 0.6139); ! is(sprintf("%.4f",$hsp->frac_conserved('hit')), 0.5977); is($hsp->query->frame(), 0); is($hsp->hit->frame(), 0); *************** *** 833,836 **** --- 839,847 ---- is(sprintf("%.4f",$hsp->frac_identical('query')), 0.2486); is(sprintf("%.4f",$hsp->frac_identical('hit')), '0.2500'); + is(sprintf("%.4f",$hsp->frac_conserved('query')), '0.2707'); + is(sprintf("%.4f",$hsp->frac_conserved('hit')), '0.2722'); + # there is slight rounding different here so file says 26.012% + # but with the rounding this ends up as 0.2606 + is(sprintf("%.4f",$hsp->frac_conserved('total')), '0.2606'); is($hsp->query->frame(), 0); is($hsp->hit->frame(), 0); From scain at dev.open-bio.org Mon Dec 3 23:13:43 2007 From: scain at dev.open-bio.org (Scott Cain) Date: Tue, 04 Dec 2007 04:13:43 +0000 Subject: [Bioperl-guts-l] bioperl-live/Bio/FeatureIO gff.pm,1.58,1.59 Message-ID: <200712040413.lB44DhCg015744@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/FeatureIO In directory dev.open-bio.org:/tmp/cvs-serv15735/Bio/FeatureIO Modified Files: gff.pm Log Message: oops--missed a failed test because of a missing prereq. Index: gff.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/FeatureIO/gff.pm,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** gff.pm 3 Dec 2007 19:55:05 -0000 1.58 --- gff.pm 4 Dec 2007 04:13:41 -0000 1.59 *************** *** 99,103 **** else { my $directive; ! while($directive = $self->_readline() && $directive =~ /^##/ ){ $self->_handle_directive($directive); } --- 99,103 ---- else { my $directive; ! while(($directive = $self->_readline()) && ($directive =~ /^##/) ){ $self->_handle_directive($directive); } From avilella at dev.open-bio.org Tue Dec 4 06:30:26 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 11:30:26 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo SLR.pm,NONE,1.1 Message-ID: <200712041130.lB4BUQvG016674@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo In directory dev.open-bio.org:/tmp/cvs-serv16648 Added Files: SLR.pm Log Message: this is the first version of the SLR wrapper -- havent tested much of the options yet, and the parser is very simplistic -- Albert Vilella --- NEW FILE: SLR.pm --- # $Id: SLR.pm,v 1.1 2007/12/04 11:30:23 avilella Exp $ # # BioPerl module for Bio::Tools::Run::Phylo::SLR # # Cared for by Albert Vilella # # Copyright Albert Vilella # # You may distribute this module under the same terms as perl itself # POD documentation - main docs before the code =head1 NAME Bio::Tools::Run::Phylo::SLR - Wrapper around the SLR program =head1 SYNOPSIS use Bio::Tools::Run::Phylo::SLR; use Bio::AlignIO; use Bio::TreeIO; my $alignio = Bio::AlignIO->new(-format => 'fasta', -file => 't/data/hyphy1.fasta'); my $aln = $alignio->next_aln; my $treeio = Bio::TreeIO->new( -format => 'newick', -file => 't/data/hyphy1.tree'); my $slr = Bio::Tools::Run::Phylo::SLR->new(); $slr->alignment($aln); $slr->tree($aln); # $rc = 1 for success, 0 for errors my ($rc,$results) = $slr->run(); my $positive_sites = $results->{'positive'}; print "Ka = ", $MLmatrix->[0]->[1]->{'dN'},"\n"; print "Ks = ", $MLmatrix->[0]->[1]->{'dS'},"\n"; print "Ka/Ks = ", $MLmatrix->[0]->[1]->{'omega'},"\n"; =head1 DESCRIPTION This is a wrapper around the SLR program. See http://www.ebi.ac.uk/goldman/SLR/ for more information. This module is more about generating the proper ctl file and will run the program in a separate temporary directory to avoid creating temp files all over the place. =head1 FEEDBACK =head2 Mailing Lists User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated. bioperl-l at bioperl.org - General discussion http://bioperl.org/wiki/Mailing_lists - About the mailing lists =head2 Reporting Bugs Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via the web: http://bugzilla.open-bio.org/ =head1 AUTHOR - Albert Vilella Email avilella-at-gmail-dot-com =head1 CONTRIBUTORS Additional contributors names and emails here =head1 APPENDIX The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _ =cut #' keep my emacs happy # Let the code begin... package Bio::Tools::Run::Phylo::SLR; use vars qw(@ISA %VALIDVALUES $MINNAMELEN $PROGRAMNAME $PROGRAM); use strict; use Bio::Root::Root; use Bio::AlignIO; use Bio::TreeIO; use Bio::SimpleAlign; use Bio::Tools::Run::WrapperBase; use Cwd; use File::Spec; @ISA = qw(Bio::Root::Root Bio::Tools::Run::WrapperBase); =head2 Default Values INCOMPLETE DOCUMENTATION OF ALL METHODS seqfile [incodon] File from which to read alignment of codon sequences. The file should be in PAML format. treefile [intree] File from which tree should be read. The tree should be in Nexus format outfile [slr.res] File to which results are written. If the file already exists, it will be overwritten. reoptimise [1] Should the branch lengths, omega and kappa be reoptimized? 0 - no 1 - yes. kappa [2.0] Value for kappa. If 'reoptimise' is specified, the value given will be used as am initial estimate, omega [0.1] Value for omega (dN/dS). If 'reoptimise' is specified, the value given will be used as an initial estimate. codonf [0] How codon frequencies are estimated: 0: F61/F60 Estimates used are the empirical frequencies from the data. 1: F3x4 The frequencies of nucleotides at each codon position are estimated from the data and then multiplied together to get the frequency of observing a given codon. The frequency of stop codons is set to zero, and all other frequencies scaled appropriately. 2: F1x4 Nucleotide frequencies are estimated from the data (not taking into account at which position in the codon it occurs). The nucleotide frequencies are multiplied together to get the frequency of observing and then corrected for stop codons. freqtype [0] How codon frequencies are incorporated into the substitution matrix. 0: q_{ij} = pi_{j} s_{ij} 1: q_{ij} = \sqrt(pi_j/pi_i) s_{ij} 2: q_{ij} = \pi_{n} s_{ij}, where n is the nucleotide that the subsitution is to. 3: q_{ij} = s_{ij} / pi_i Option 0 is the tradition method of incorporating equilibrium frequencies into subsitution matrices (Felsenstein 1981; Goldman and Yang, 1994) Option 1 is described by Goldman and Whelan (2002), in this case with the additional parameter set to 0.5. Option 2 was suggested by Muse and Gaut (1994). Option 3 is included as an experiment, originally suggested by Bret Larget. it does not appear to describe evolution very successfully and should not be used for analyses. Kosakovsky-Pond has repeatedly stated that he finds incorporating codon frequencies in the manner of option 2 to be superior to option 0. We find that option 1 tends to perform better than either of these options. positive_only [0] If only positively selected sites are of interest, set this to "1". Calculation will be slightly faster, but information about sites under purifying selection is lost. gencode [universal] Which genetic code to use when determining whether a given mutation is synonymous or nonsynonymous. Currently only "universal" and "mammalian" mitochondrial are supported. nucleof [0] Allow for empirical exchangabilities for nucleotide substitution. 0: No adjustment. All nucleotides treated the same, modulo transition / transversion. 1: The rate at which a substitution caused a mutation from nucleotide a to nucleotide b is adjust by a constant N_{ab}. This adjustment is in addition to other adjustments (e.g. transition / transversion or base frequencies). aminof [0] Incorporate amino acid similarity parameters into substitution matrix, adjusting omega for a change between amino acid i and amino acid j. A_{ij} is a symmetric matrix of constants representing amino acid similarities. 0: Constant omega for all amino acid changes 1: omega_{ij} = omega^{A_{ij}} 2: omega_{ij} = a_{ij} log(omega) / [ 1 - exp(-a_{ij} log(omega)) ] Option 1 has the same form as the original codon subsitution model proposed by Goldman and Yang (but with potentially different constants). Option 2 has a more population genetic derivtion, with omega being interpreted as the ratio of fixation probabilities. nucfile [nuc.dat] If nucleof is non-zero, read nucleotide substitution constants from nucfile. If this file does not exist, hard coded constants are used. aminofile [amino.dat] If aminof is non-zero, read amino acid similarity constants from aminofile. If this file does not exist, hard coded constants are used. timemem [0] Print summary of real time and CPU time used. Will eventually print summary of memory use as well. ldiff [3.841459] Twice log-likelihood difference used as a threshold for calculating support (confidence) intervals for sitewise omega estimates. This value should be the quantile from a chi-square distribution with one degree of freedom corresponding to the support required. E.g. qchisq(0.95,1) = 3.841459 0.4549364 = 50% support 1.323304 = 75% support 2.705543 = 90% support 3.841459 = 95% support 6.634897 = 99% support 7.879439 = 99.5% support 10.82757 = 99.9% support paramin [] If not blank, read in parameters from file given by the argument. paramout [] If not blank, write out parameter estimates to file given. skipsitewise [0] Skip sitewise estimation of omega. Depending on other options given, either calculate maximum likelihood or likelihood fixed at parameter values given. seed [0] Seed for random number generator. If seed is 0, then previously produced seed file (~/.rng64) is used. If this does not exist, the random number generator is initialised using the clock. saveseed [1] If non-zero, save finial seed in file (~/.rng64) to be used as initial seed in future runs of program. =head2 Results Format Results file (default: slr.res) ------------ Results are presented in nine columns Site Number of sites in alignment Neutral (minus) Log-probability of observing site given that it was evolving neutrally (omega=1) Optimal (minus) Log-probability of observing site given that it was evolving at the optimal value of omega. Omega The value of omega which maximizes the log-probability of observing LRT_Stat Log-likelihood ratio statistic for non-neutral selection (or positive selection if the positive_only option is set to 1). LRT_Stat = 2 * (Neutral-Optimal) Pval P-value for non-neutral (or positive) selection at a site, unadjusted for multiple comparisons. Adj. Pval P-value for non-neutral (or positive) selection at a site, after adjusting for multiple comparisons using the Hochberg procedure (see the file "MultipleComparisons.txt" in the doc directory). Result A simple visual guide to the result. Sites detected as having been under positive selection are marked with a '+', sites under purifying selection are marked with '-'. The number of symbols Number symbols Threshold 1 95% 2 99% 3 95% after adjustment 4 99% after adjustment Occasionally the result may also contain an exclamation mark. This indicates that the observation at a site is not significantly different from random (equivalent to infinitely strong positive selection). This may indicate that the alignment at that site is bad Note The following events are flagged: Synonymous All codons at a site code for the same amino acid. Single character Only one sequence at the site is ungapped, the result of a recent insertion for example. All gaps All sequences at a site contain a gap character. Sites marked "Single character" or "All gaps" are not counted towards the number of sites for the purposes of correcting for multiple comparisons since it is not possible to detect selection from none or one observation under the assumptions made by the sitewise likelihood ratio test. =cut #' keep my emacs happy BEGIN { $MINNAMELEN = 25; $PROGRAMNAME = 'Slr_Linux_static' . ($^O =~ /mswin/i ?'_windows.exe':''); if( defined $ENV{'SLRDIR'} ) { $PROGRAM = Bio::Root::IO->catfile($ENV{'SLRDIR'},$PROGRAMNAME). ($^O =~ /mswin/i ?'_windows.exe':'');; } # valid values for parameters, the default one is always # the first one in the array # example file provided with the package %VALIDVALUES = ( 'outfile' => 'slr.res', 'reoptimise' => [ 1,0], 'kappa' => '2.0', 'omega' => '0.1', 'codonf' => [ 0, 1,2], 'freqtype' => [ 0, 1,2,3], 'positive_only' => [ 0, 1], 'gencode' => [ "universal", "mammalian"], 'nucleof' => [ 0, 1], 'aminof' => [ 0, 1,2], 'nucfile' => '', 'aminofile' => '', 'timemem' => [ 0, 1], 'ldiff' => [ 3.841459, 0.4549364,1.323304,2.705543,6.634897,7.879439,10.82757], 'paramin' => '', 'paramout' => '', 'skipsitewise' => [ 0, 1], 'seed' => [0], 'saveseed' => [ 1, 0] ); } =head2 program_name Title : program_name Usage : $factory->program_name() Function: holds the program name Returns: string Args : None =cut sub program_name { return $PROGRAMNAME; } =head2 program_dir Title : program_dir Usage : ->program_dir() Function: returns the program directory, obtiained from ENV variable. Returns: string Args : =cut sub program_dir { return Bio::Root::IO->catfile($ENV{SLRDIR}) if $ENV{SLRDIR}; } =head2 new Title : new Usage : my $obj = Bio::Tools::Run::Phylo::SLR->new(); Function: Builds a new Bio::Tools::Run::Phylo::SLR object Returns : Bio::Tools::Run::Phylo::SLR Args : -alignment => the Bio::Align::AlignI object -save_tempfiles => boolean to save the generated tempfiles and NOT cleanup after onesself (default FALSE) -tree => the Bio::Tree::TreeI object -params => a hashref of SLR parameters (all passed to set_parameter) -executable => where the SLR executable resides See also: L, L =cut sub new { my($class, at args) = @_; my $self = $class->SUPER::new(@args); my ($aln, $tree, $st, $params, $exe, $ubl) = $self->_rearrange([qw(ALIGNMENT TREE SAVE_TEMPFILES PARAMS EXECUTABLE)], @args); defined $aln && $self->alignment($aln); defined $tree && $self->tree($tree); defined $st && $self->save_tempfiles($st); defined $exe && $self->executable($exe); $self->set_default_parameters(); if( defined $params ) { if( ref($params) !~ /HASH/i ) { $self->warn("Must provide a valid hash ref for parameter -FLAGS"); } else { map { $self->set_parameter($_, $$params{$_}) } keys %$params; } } return $self; } =head2 prepare Title : prepare Usage : my $rundir = $slr->prepare($aln); Function: prepare the SLR analysis using the default or updated parameters the alignment parameter must have been set Returns : value of rundir Args : L object, L object =cut sub prepare{ my ($self,$aln,$tree) = @_; unless ( $self->save_tempfiles ) { # brush so we don't get plaque buildup ;) $self->cleanup(); } $tree = $self->tree unless $tree; $aln = $self->alignment unless $aln; if( ! $aln ) { $self->warn("must have supplied a valid alignment file in order to run SLR"); return 0; } if( ! $tree ) { $self->warn("must have supplied a valid tree file in order to run SLR"); return 0; } my ($tempdir) = $self->tempdir(); my ($tempseqFH,$tempseqfile); # Reorder the alignment according to the tree my $ct = 1; my %order; foreach my $node ($tree->get_leaf_nodes) { $order{$node->id_output} = $ct++; } my @seq; my @ids; foreach my $seq ( $aln->each_seq() ) { push @seq, $seq; push @ids, $seq->display_id; } # use the map-sort-map idiom: my @sorted = map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { [$order{$_->id()}, $_] } @seq; my $sorted_aln = Bio::SimpleAlign->new(); foreach (@sorted) { $sorted_aln->add_seq($_); } # Rename the leaf nodes in the tree from 1 to n $ct = 1; foreach my $node ($tree->get_leaf_nodes) { $node->id($ct++); } ($tempseqFH,$tempseqfile) = $self->io->tempfile ('-dir' => $tempdir, UNLINK => ($self->save_tempfiles ? 0 : 1)); my $alnout = Bio::AlignIO->new('-format' => 'phylip', '-fh' => $tempseqFH, '-interleaved' => 0, '-idlinebreak' => 1, '-idlength' => $MINNAMELEN > $aln->maxdisplayname_length() ? $MINNAMELEN : $aln->maxdisplayname_length() +1); $alnout->write_aln($aln); $alnout->close(); undef $alnout; close($tempseqFH); my ($temptreeFH,$temptreefile); ($temptreeFH,$temptreefile) = $self->io->tempfile ('-dir' => $tempdir, UNLINK => ($self->save_tempfiles ? 0 : 1)); my $treeout = Bio::TreeIO->new('-format' => 'newick', '-fh' => $temptreeFH); # We need to add a line with the num of leaves ($ct-1) and the # num of trees (1) $treeout->_print(sprintf("%d 1\n",($ct-1))); $treeout->write_tree($tree); $treeout->close(); close($temptreeFH); # now let's print the ctl file. # many of the these programs are finicky about what the filename is # and won't even run without the properly named file. my ($treevolume,$alndirectories,$treefile) = File::Spec->splitpath( $temptreefile ); my ($alnvolume,$alndirectories,$alnfile) = File::Spec->splitpath( $tempseqfile ); my $slr_ctl = "$tempdir/slr.ctl"; open(SLR, ">$slr_ctl") or $self->throw("cannot open $slr_ctl for writing"); print SLR "seqfile\: $alnfile\n"; print SLR "treefile\: $treefile\n"; my $outfile = $self->outfile_name; print SLR "outfile\: $outfile\n"; my %params = $self->get_parameters; while( my ($param,$val) = each %params ) { next if $param eq 'outfile'; print SLR "$param\: $val\n"; } close(SLR); return $tempdir; } =head2 run Title : run Usage : my ($rc,$parser) = $slr->run($aln,$tree); Function: run the SLR analysis using the default or updated parameters the alignment parameter must have been set Returns : Return code, L Args : L object, L object =cut sub run { my ($self) = shift;; my $outfile = $self->outfile_name; my $tmpdir = $self->prepare(@_); #my ($rc,$parser) = (1); my ($rc,$results) = (1); { my $cwd = cwd(); my $exit_status; chdir($tmpdir); my $slrexe = $self->executable(); $self->throw("unable to find or run executable for SLR") unless $slrexe && -e $slrexe && -x _; my $run; open($run, "$slrexe |") or $self->throw("Cannot open exe $slrexe"); my @output = <$run>; $exit_status = close($run); $self->error_string(join('', at output)); if( (grep { /\berr(or)?: /io } @output) || !$exit_status) { $self->warn("There was an error - see error_string for the program output"); $rc = 0; } eval { open RESULTS, "$tmpdir/$outfile" or die "couldnt open results file: $!\n"; my $okay = 0; my $sites; my $type = 'default'; while () { chomp $_; if ( /^\#/ ) {next;} if ( /\!/ ) {$type = 'random';} # random is last elsif ( /\+/ ) {$type = 'positive';} elsif ( /\-\s+/ ) {$type = 'negative';} elsif ( /Constant/ ) {$type = 'constant';} elsif ( /All gaps/ ) {$type = 'all_gaps';} elsif ( /Single character/ ) {$type = 'single_character';} elsif ( /Synonymous/ ) {$type = 'synonymous';} else {$type = 'default'} if ( /^\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ ) { push @{$sites->{$type}}, [$1,$2,$3,$4,$5,$6,$7,$8,$9]; } else { $DB::single=1;1; } } $results = $sites; close RESULTS; # TODO: we could have a proper parser object # $parser = Bio::Tools::Phylo::SLR->new(-file => "$tmpdir/$outfile", # -dir => "$tmpdir"); }; if( $@ ) { $self->warn($self->error_string); } chdir($cwd); } # return ($rc,$parser); return ($rc,$results); } =head2 error_string Title : error_string Usage : $obj->error_string($newval) Function: Where the output from the last analysus run is stored. Returns : value of error_string Args : newvalue (optional) =cut sub error_string{ my ($self,$value) = @_; if( defined $value) { $self->{'error_string'} = $value; } return $self->{'error_string'}; } =head2 alignment Title : alignment Usage : $slr->align($aln); Function: Get/Set the L object Returns : L object Args : [optional] L Comment : We could potentially add support for running directly on a file but we shall keep it simple See also: L =cut sub alignment{ my ($self,$aln) = @_; if( defined $aln ) { if( -e $aln ) { $self->{'_alignment'} = $aln; } elsif( !ref($aln) || ! $aln->isa('Bio::Align::AlignI') ) { $self->warn("Must specify a valid Bio::Align::AlignI object to the alignment function not $aln"); return undef; } else { $self->{'_alignment'} = $aln; } } return $self->{'_alignment'}; } =head2 tree Title : tree Usage : $slr->tree($tree, %params); Function: Get/Set the L object Returns : L Args : [optional] $tree => L, Comment : We could potentially add support for running directly on a file but we shall keep it simple See also: L =cut sub tree { my ($self, $tree, %params) = @_; if( defined $tree ) { if( ! ref($tree) || ! $tree->isa('Bio::Tree::TreeI') ) { $self->warn("Must specify a valid Bio::Tree::TreeI object to the alignment function"); } $self->{'_tree'} = $tree; } return $self->{'_tree'}; } =head2 get_parameters Title : get_parameters Usage : my %params = $self->get_parameters(); Function: returns the list of parameters as a hash Returns : associative array keyed on parameter names Args : none =cut sub get_parameters{ my ($self) = @_; # we're returning a copy of this return %{ $self->{'_slrparams'} }; } =head2 set_parameter Title : set_parameter Usage : $slr->set_parameter($param,$val); Function: Sets a SLR parameter, will be validated against the valid values as set in the %VALIDVALUES class variable. The checks can be ignored if one turns off param checks like this: $slr->no_param_checks(1) Returns : boolean if set was success, if verbose is set to -1 then no warning will be reported Args : $param => name of the parameter $value => value to set the parameter to See also: L =cut sub set_parameter{ my ($self,$param,$value) = @_; unless (defined $self->{'no_param_checks'} && $self->{'no_param_checks'} == 1) { if ( ! defined $VALIDVALUES{$param} ) { $self->warn("unknown parameter $param will not be set unless you force by setting no_param_checks to true"); return 0; } if ( ref( $VALIDVALUES{$param}) =~ /ARRAY/i && scalar @{$VALIDVALUES{$param}} > 0 ) { unless ( grep { $value eq $_ } @{ $VALIDVALUES{$param} } ) { $self->warn("parameter $param specified value $value is not recognized, please see the documentation and the code for this module or set the no_param_checks to a true value"); return 0; } } } $self->{'_slrparams'}->{$param} = $value; return 1; } =head2 set_default_parameters Title : set_default_parameters Usage : $slr->set_default_parameters(0); Function: (Re)set the default parameters from the defaults (the first value in each array in the %VALIDVALUES class variable) Returns : none Args : boolean: keep existing parameter values =cut sub set_default_parameters{ my ($self,$keepold) = @_; $keepold = 0 unless defined $keepold; while( my ($param,$val) = each %VALIDVALUES ) { # skip if we want to keep old values and it is already set next if( defined $self->{'_slrparams'}->{$param} && $keepold); if(ref($val)=~/ARRAY/i ) { $self->{'_slrparams'}->{$param} = $val->[0]; } else { $self->{'_slrparams'}->{$param} = $val; } } } =head1 Bio::Tools::Run::WrapperBase methods =cut =head2 no_param_checks Title : no_param_checks Usage : $obj->no_param_checks($newval) Function: Boolean flag as to whether or not we should trust the sanity checks for parameter values Returns : value of no_param_checks Args : newvalue (optional) =cut sub no_param_checks{ my ($self,$value) = @_; if( defined $value) { $self->{'no_param_checks'} = $value; } return $self->{'no_param_checks'}; } =head2 save_tempfiles Title : save_tempfiles Usage : $obj->save_tempfiles($newval) Function: Returns : value of save_tempfiles Args : newvalue (optional) =cut =head2 outfile_name Title : outfile_name Usage : my $outfile = $slr->outfile_name(); Function: Get/Set the name of the output file for this run (if you wanted to do something special) Returns : string Args : [optional] string to set value to =cut sub outfile_name { my $self = shift; if( @_ ) { return $self->{'_slrparams'}->{'outfile'} = shift @_; } unless (defined $self->{'_slrparams'}->{'outfile'}) { $self->{'_slrparams'}->{'outfile'} = 'out.res'; } return $self->{'_slrparams'}->{'outfile'}; } =head2 tempdir Title : tempdir Usage : my $tmpdir = $self->tempdir(); Function: Retrieve a temporary directory name (which is created) Returns : string which is the name of the temporary directory Args : none =cut =head2 cleanup Title : cleanup Usage : $slr->cleanup(); Function: Will cleanup the tempdir directory after an SLR run Returns : none Args : none =cut =head2 io Title : io Usage : $obj->io($newval) Function: Gets a L object Returns : L Args : none =cut sub DESTROY { my $self= shift; unless ( $self->save_tempfiles ) { $self->cleanup(); } $self->SUPER::DESTROY(); } 1; From avilella at dev.open-bio.org Tue Dec 4 06:30:59 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 11:30:59 +0000 Subject: [Bioperl-guts-l] bioperl-run/t/data 219877.cdna.fasta,NONE,1.1 Message-ID: <200712041130.lB4BUxuL016730@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/t/data In directory dev.open-bio.org:/tmp/cvs-serv16704 Added Files: 219877.cdna.fasta Log Message: example alignment for SLR --- NEW FILE: 219877.cdna.fasta --- >ENSP00000346536 ATGTCCTACAACTGCTGCTGTGGAAACTTCTCCTCCCATTCCTGTGAGGGCTACCTGTGC TACTCAGGCTACTCCCGTGGTGGCTCCTCGTACCCCAGCAACCTGGTCTACAGCACTGAA CCTTTGATCTCCCAGCACCTGCCAGCTGGGTTCCTCTCTCTGCAAGGGCTTTCAGGAGAC TTGCTGGGAAACCCC--- >ENSDNOP00000011417 ATGACTTCCAAAAGCTACTCTGGAAACTTCTCCTCCTGCTCCCTTGGTGGCAACCTGTGC TACTCAGGCTCCTCTTAT---CGCTCTTCCTGTCCCAGCAACCTGGTTTACACCACT--- CCTCTGCTCTCCCAGCACCTGCCACCTGGGTTCCTCTCTCTACAGTGGCTGCCAGGAGCC CTGCTACAAGCCCAGCAA >ENSPTRP00000023821 CTATCCTACAACTGCTGCTGTGGAAACTTCTCCTCCCATTCCTGTGGGGGCTACCTGTGC TACTCAGGCTACTCCCGTGGTGGCTCCTCGTACCCCAGCAACCTGGTCTACAGCACTGAA CCTTTGATCTCCCAGCGCCTGCCAGCTGGGTTCCTCTCTCTGCAAGGGTTTTCAGGAGAC TTGCTGGGAAACCCC--- From avilella at dev.open-bio.org Tue Dec 4 06:31:32 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 11:31:32 +0000 Subject: [Bioperl-guts-l] bioperl-run/t/data 219877.tree,NONE,1.1 Message-ID: <200712041131.lB4BVWIk016785@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/t/data In directory dev.open-bio.org:/tmp/cvs-serv16759 Added Files: 219877.tree Log Message: example file for SLR --- NEW FILE: 219877.tree --- ((ENSP00000346536:0.0049,ENSPTRP00000023821:0.0208):0.1113,ENSDNOP00000011417:0.1113); From avilella at dev.open-bio.org Tue Dec 4 06:31:56 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 11:31:56 +0000 Subject: [Bioperl-guts-l] bioperl-run/t/data 277523.cdna.fasta,NONE,1.1 Message-ID: <200712041131.lB4BVuJp016840@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/t/data In directory dev.open-bio.org:/tmp/cvs-serv16814 Added Files: 277523.cdna.fasta Log Message: example file for SLR --- NEW FILE: 277523.cdna.fasta --- >ENSP00000334085 ATGGCATCTTGGCCTGTCCAAAAATGTTGTGCTTTCAGACATTCTTGCAATATTCTAGAG GAAGATTTGGAAGTAGACAGTTGCCAAATACCATTAGTTTCCGTGGGAAGCCAGCTAAGA AAGGTAATTCTCAGGGAGAGTAATGCGAGGAAACAATTAGCCATTTTGACAACC >ENSPTRP00000011204 ATGGCATCTTGGCCTGTCCAAAAATGTTGTGCTTTCAGACATTCTTGCAATATTCTAGAG GAAGATTTGGAAGTAGACAGTTGCCAAATACCATCAGTTTCCGTGGGAAGCCAGCTAAGA AAGGTAATTCTCAGGGAGAGTAATGCGAAGAAACAATTAGCCATTTTGACAACC >ENSMMUP00000015622 ATGGCATCTTGGCCTGTCCAAAAATGTTGTGCTTTCAGACATTCTTGCAATATTCTAGAG GAAGATTTGGAAGTCGACAGTTGCCAGATGCCATCAGTTCCCATGGGGAGCCAGCTAAAG AAAGGAATTCTCAGGGAGAGTAATGCAAGG------------------------ From avilella at dev.open-bio.org Tue Dec 4 06:32:20 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 11:32:20 +0000 Subject: [Bioperl-guts-l] bioperl-run/t/data 277523.tree,NONE,1.1 Message-ID: <200712041132.lB4BWKhV016895@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/t/data In directory dev.open-bio.org:/tmp/cvs-serv16869 Added Files: 277523.tree Log Message: example file for SLR --- NEW FILE: 277523.tree --- ((ENSPTRP00000011204:0.0057,ENSP00000334085:0.0057):0.0371,ENSMMUP00000015622:0.0371); From avilella at dev.open-bio.org Tue Dec 4 06:33:13 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 11:33:13 +0000 Subject: [Bioperl-guts-l] bioperl-run/t SLR.t,NONE,1.1 Message-ID: <200712041133.lB4BXDp5016950@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/t In directory dev.open-bio.org:/tmp/cvs-serv16924 Added Files: SLR.t Log Message: this is a SLR wrapper test for 2 very simple sets of data -- takes seconds -- maybe add more anyone? -- Albert Vilella --- NEW FILE: SLR.t --- # This is -*-Perl-*- code ## Bioperl Test Harness Script for Modules ## # $Id: SLR.t,v 1.1 2007/12/04 11:33:11 avilella Exp $ # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.t' use strict; use vars qw($NUMTESTS); BEGIN { $NUMTESTS = 7; eval {require Test::More;}; if ($@) { use lib 't/lib'; } use Test::More; eval {require IO::String }; if ($@) { plan skip_all => 'IO::String not installed. This means that the module is not usable. Skipping tests'; } else { plan tests => $NUMTESTS; } use_ok('Bio::Root::IO'); use_ok('Bio::Tools::Run::Phylo::SLR'); use_ok('Bio::AlignIO'); use_ok('Bio::TreeIO'); } ok my $slr = Bio::Tools::Run::Phylo::SLR->new(); SKIP: { my $present = $slr->executable(); unless ($present) { skip("SLR program not found. Skipping tests", ($NUMTESTS - 5)); } # first set my $alignio1 = Bio::AlignIO->new (-format => 'fasta', -file => 't/data/219877.cdna.fasta'); my $treeio1 = Bio::TreeIO->new (-format => 'newick', -file => 't/data/219877.tree'); my $aln1 = $alignio1->next_aln; my $tree1 = $treeio1->next_tree; $slr->alignment($aln1); $slr->tree($tree1); my ($rc,$results1) = $slr->run(); ok defined($results1); # second set $slr = Bio::Tools::Run::Phylo::SLR->new(); my $alignio2 = Bio::AlignIO->new (-format => 'fasta', -file => 't/data/277523.cdna.fasta'); my $treeio2 = Bio::TreeIO->new (-format => 'newick', -file => 't/data/277523.tree'); my $aln2 = $alignio2->next_aln; my $tree2 = $treeio2->next_tree; $slr->alignment($aln2); $slr->tree($tree2); my ($rc,$results2) = $slr->run(); ok defined($results2); # my $positive_sites = $results2->{'constant'}; # print "Site,Omega\n"; # foreach my $site (@{$positive_sites}) { # # print "# Site Neutral Optimal Omega lower upper LRT_Stat Pval Adj.Pval Result Note\n"; # print $site->[0], ",", $site->[3], "\n"; # } # # third set # $slr = Bio::Tools::Run::Phylo::SLR->new(); # my $alignio3 = Bio::AlignIO->new # (-format => 'fasta', # -file => 't/data/799906.cdna.fasta'); # my $treeio3 = Bio::TreeIO->new # (-format => 'newick', # -file => 't/data/799906.tree'); # my $aln3 = $alignio3->next_aln; # my $tree3 = $treeio3->next_tree; # $slr->alignment($aln3); # $slr->tree($tree3); # my ($rc,$results3) = $slr->run(); # my $sites = $results3->{'constant'}; # ok defined($results3); # print "Site,Omega\n"; # foreach my $site (@{$sites}) { # # print "# Site Neutral Optimal Omega lower upper LRT_Stat Pval Adj.Pval Result Note\n"; # print $site->[0], ",", $site->[3], "\n"; # } } From avilella at dev.open-bio.org Tue Dec 4 06:38:09 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 11:38:09 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo SLR.pm,1.1,1.2 Message-ID: <200712041138.lB4Bc9jZ016986@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo In directory dev.open-bio.org:/tmp/cvs-serv16960 Modified Files: SLR.pm Log Message: adding osx and windows PROGRAMNAME Index: SLR.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/SLR.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SLR.pm 4 Dec 2007 11:30:23 -0000 1.1 --- SLR.pm 4 Dec 2007 11:38:07 -0000 1.2 *************** *** 314,318 **** $MINNAMELEN = 25; ! $PROGRAMNAME = 'Slr_Linux_static' . ($^O =~ /mswin/i ?'_windows.exe':''); if( defined $ENV{'SLRDIR'} ) { $PROGRAM = Bio::Root::IO->catfile($ENV{'SLRDIR'},$PROGRAMNAME). ($^O =~ /mswin/i ?'_windows.exe':'');; --- 314,323 ---- $MINNAMELEN = 25; ! $PROGRAMNAME = 'Slr_Linux_static'; ! if ($^O =~ /darwin/i) { ! $PROGRAMNAME = 'Slr_osx'; ! } elsif ($^O =~ /mswin/i) { ! $PROGRAMNAME = 'Slr_windows.exe'; ! } if( defined $ENV{'SLRDIR'} ) { $PROGRAM = Bio::Root::IO->catfile($ENV{'SLRDIR'},$PROGRAMNAME). ($^O =~ /mswin/i ?'_windows.exe':'');; From avilella at dev.open-bio.org Tue Dec 4 06:45:41 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 11:45:41 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Installer SLR.pm,NONE,1.1 Message-ID: <200712041145.lB4BjfvS017064@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Installer In directory dev.open-bio.org:/tmp/cvs-serv17038 Added Files: SLR.pm Log Message: adding installer but no compilation yet --- NEW FILE: SLR.pm --- # BioPerl module for Bio::Installer::SLR # # Cared for by Albert Vilella # # Copyright Albert Vilella # # You may distribute this module under the same terms as perl itself # POD documentation - main docs before the code =head1 NAME Bio::Installer::SLR - DESCRIPTION of Object =head1 SYNOPSIS Give standard usage here =head1 DESCRIPTION Describe the object here =head1 FEEDBACK =head2 Mailing Lists User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated. bioperl-l at bioperl.org - General discussion http://bioperl.org/MailList.shtml - About the mailing lists =head2 Reporting Bugs Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via the web: http://bugzilla.bioperl.org/ =head1 AUTHOR - Albert Vilella Email avilella-AT-gmail-DOT-com Describe contact details here =head1 CONTRIBUTORS Additional contributors names and emails here =head1 APPENDIX The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _ =cut # Let the code begin... package Bio::Installer::SLR; use vars qw(@ISA %DEFAULTS); use strict; # Object preamble - inherits from Bio::Root::Root use Bio::Root::Root; use Bio::Installer::Generic; @ISA = qw(Bio::Installer::Generic ); BEGIN { %DEFAULTS = ( 'ORIGIN_DOWNLOAD_DIR' => 'http://www.ebi.ac.uk/goldman-srv/SLR/download/current/', 'BIN_FOLDER' => 'bin', 'DESTINATION_DOWNLOAD_DIR' => '/tmp', 'DESTINATION_INSTALL_DIR' => "$ENV{'HOME'}", 'PACKAGE_NAME' => 'slr_source.tgz', 'DIRECTORY_NAME' => 'slr', 'ENV_NAME' => 'SLRDIR', ); } =head2 get_default Title : get_default Usage : Function: Example : Returns : Args : =cut sub get_default { my $self = shift; my $param = shift; return $DEFAULTS{$param}; } =head2 install Title : install Usage : $installer->install(); Function: Example : Returns : Args : =cut sub install{ my ($self, at args) = @_; my $dir; $self->_decompress; # $self->_execute_slr_install_script; $dir = $self->destination_install_dir; $self->_remember_env; } =head2 _execute_slr_install_script Title : _execute_slr_install_script Usage : Function: Example : Returns : Args : =cut sub _execute_slr_install_script{ my ($self, at args) = @_; my $call; my $destination = $self->destination_install_dir; $destination =~ s|/$||; $destination .= "/" . $self->directory_name; chdir $destination or die "Cant cd to $destination $!\n"; print "\n\nCompiling now... (this might take a while)\n\n"; $call = "sh build.sh MP"; system("$call") == 0 or die "Error when trying to run install script $?\n"; } 1; From avilella at dev.open-bio.org Tue Dec 4 06:45:59 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 11:45:59 +0000 Subject: [Bioperl-guts-l] bioperl-run/scripts bioperl_application_installer.PLS, 1.3, 1.4 Message-ID: <200712041145.lB4Bjxum017097@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/scripts In directory dev.open-bio.org:/tmp/cvs-serv17071 Modified Files: bioperl_application_installer.PLS Log Message: added SLR Index: bioperl_application_installer.PLS =================================================================== RCS file: /home/repository/bioperl/bioperl-run/scripts/bioperl_application_installer.PLS,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** bioperl_application_installer.PLS 30 Nov 2007 16:00:55 -0000 1.3 --- bioperl_application_installer.PLS 4 Dec 2007 11:45:57 -0000 1.4 *************** *** 55,58 **** --- 55,59 ---- 'PAML', 'Hyphy', + 'SLR', 'Probcons', ]; From avilella at dev.open-bio.org Tue Dec 4 09:18:56 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Tue, 04 Dec 2007 14:18:56 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo SLR.pm,1.2,1.3 Message-ID: <200712041419.lB4EIugV017291@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo In directory dev.open-bio.org:/tmp/cvs-serv17265 Modified Files: SLR.pm Log Message: fixing alndirectories typo Index: SLR.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/SLR.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SLR.pm 4 Dec 2007 11:38:07 -0000 1.2 --- SLR.pm 4 Dec 2007 14:18:54 -0000 1.3 *************** *** 509,513 **** # and won't even run without the properly named file. ! my ($treevolume,$alndirectories,$treefile) = File::Spec->splitpath( $temptreefile ); my ($alnvolume,$alndirectories,$alnfile) = File::Spec->splitpath( $tempseqfile ); my $slr_ctl = "$tempdir/slr.ctl"; --- 509,513 ---- # and won't even run without the properly named file. ! my ($treevolume,$treedirectories,$treefile) = File::Spec->splitpath( $temptreefile ); my ($alnvolume,$alndirectories,$alnfile) = File::Spec->splitpath( $tempseqfile ); my $slr_ctl = "$tempdir/slr.ctl"; From jason at dev.open-bio.org Tue Dec 4 11:40:01 2007 From: jason at dev.open-bio.org (Jason Stajich) Date: Tue, 04 Dec 2007 16:40:01 +0000 Subject: [Bioperl-guts-l] bioperl-run/t SLR.t,1.1,1.2 Message-ID: <200712041640.lB4Ge1T7017654@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/t In directory dev.open-bio.org:/tmp/cvs-serv17628/t Modified Files: SLR.t Log Message: avoid double declare msg Index: SLR.t =================================================================== RCS file: /home/repository/bioperl/bioperl-run/t/SLR.t,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SLR.t 4 Dec 2007 11:33:11 -0000 1.1 --- SLR.t 4 Dec 2007 16:39:59 -0000 1.2 *************** *** 74,78 **** $slr->alignment($aln2); $slr->tree($tree2); ! my ($rc,$results2) = $slr->run(); ok defined($results2); # my $positive_sites = $results2->{'constant'}; --- 74,78 ---- $slr->alignment($aln2); $slr->tree($tree2); ! my($rc2,$results2) = $slr->run(); ok defined($results2); # my $positive_sites = $results2->{'constant'}; From skirov at dev.open-bio.org Wed Dec 5 15:31:49 2007 From: skirov at dev.open-bio.org (Stefan Kirov) Date: Wed, 05 Dec 2007 20:31:49 +0000 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Phylo PAML.pm,1.56,1.57 Message-ID: <200712052031.lB5KVn7U023006@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Phylo In directory dev.open-bio.org:/tmp/cvs-serv22980 Modified Files: PAML.pm Log Message: Fixes sequence parsing for gapless alignments from codeml (Bug 2416) Index: PAML.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Phylo/PAML.pm,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** PAML.pm 1 Nov 2007 14:52:56 -0000 1.56 --- PAML.pm 5 Dec 2007 20:31:46 -0000 1.57 *************** *** 420,424 **** --- 420,427 ---- my $SEQTYPES = qr( (?: (?: CODON | AA | BASE | CODON2AA ) ML ) | YN00 )x; + my $line; + $self->{'_already_parsed_seqs'}=$self->{'_already_parsed_seqs'}?1:0; while ($_ = $self->_readline) { + $line++; if ( m/^($SEQTYPES) \s+ # seqtype: CODONML, AAML, BASEML, CODON2AAML, YN00, etc (?: \(in \s+ ([^\)]+?) \s* \) \s* )? # version: "paml 3.12 February 2002"; not present < 3.1 or YN00 *************** *** 437,442 **** $self->{'_summary'} = {}; $self->{'_summary'}->{'multidata'}++; ! } elsif( m/^Before\s+deleting\s+alignment\s+gaps/ ) { ! my ($phylip_header) = $self->_readline; $self->_parse_seqs; } --- 440,448 ---- $self->{'_summary'} = {}; $self->{'_summary'}->{'multidata'}++; ! } ! elsif( m/^Before\s+deleting\s+alignment\s+gaps/ ) {#Gap ! my ($phylip_header) = $self->_readline; ! $self->_parse_seqs; ! } elsif (($line>3)&&($self->{'_already_parsed_seqs'}!=1)) {#No gap $self->_parse_seqs; } *************** *** 682,686 **** sub _parse_seqs { - # this should in fact be packed into a Bio::SimpleAlign object instead of # an array but we'll stay with this for now --- 688,691 ---- From cjfields at dev.open-bio.org Thu Dec 6 12:58:55 2007 From: cjfields at dev.open-bio.org (Christopher John Fields) Date: Thu, 06 Dec 2007 17:58:55 +0000 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB GenericWebAgent.pm,1.2,1.3 Message-ID: <200712061758.lB6HwtSg025881@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB In directory dev.open-bio.org:/tmp/cvs-serv25856/Bio/DB Modified Files: GenericWebAgent.pm Log Message: small fix for VERSIONing issue, POD fixes Index: GenericWebAgent.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/GenericWebAgent.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** GenericWebAgent.pm 9 Jul 2007 01:33:21 -0000 1.2 --- GenericWebAgent.pm 6 Dec 2007 17:58:53 -0000 1.3 *************** *** 91,95 **** my $self = $class->SUPER::new(@args); $self->ua(LWP::UserAgent->new(env_proxy => 1, ! agent => ref($self).':'.$self->VERSION)); $self->delay($self->delay_policy); return $self; --- 91,95 ---- my $self = $class->SUPER::new(@args); $self->ua(LWP::UserAgent->new(env_proxy => 1, ! agent => ref($self))); $self->delay($self->delay_policy); return $self; *************** *** 152,157 **** These are passed on to LWP::UserAgent::request() if stipulated ! -file - use a LWP::UserAgent-compliant callback ! -cb - dumps the response to a file (handy for large responses) Note: can't use file and callback at the same time -read_size_hint - bytes of content to read in at a time to pass to callback --- 152,157 ---- These are passed on to LWP::UserAgent::request() if stipulated ! -cb - use a LWP::UserAgent-compliant callback ! -file - dumps the response to a file (handy for large responses) Note: can't use file and callback at the same time -read_size_hint - bytes of content to read in at a time to pass to callback *************** *** 210,214 **** Title : delay ! Usage : $secs = $self->delay([$secs]) Function: get/set number of seconds to delay between fetches Returns : number of seconds to delay --- 210,214 ---- Title : delay ! Usage : $secs = $self->delay($secs) Function: get/set number of seconds to delay between fetches Returns : number of seconds to delay From avilella at dev.open-bio.org Sun Dec 9 04:23:19 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Sun, 09 Dec 2007 09:23:19 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo SLR.pm,1.3,1.4 Message-ID: <200712090923.lB99NJek031727@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo In directory dev.open-bio.org:/tmp/cvs-serv31091 Modified Files: SLR.pm Log Message: updating synopsis Index: SLR.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/SLR.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SLR.pm 4 Dec 2007 14:18:54 -0000 1.3 --- SLR.pm 9 Dec 2007 09:23:16 -0000 1.4 *************** *** 17,42 **** =head1 SYNOPSIS ! use Bio::Tools::Run::Phylo::SLR; ! use Bio::AlignIO; ! use Bio::TreeIO; ! my $alignio = Bio::AlignIO->new(-format => 'fasta', ! -file => 't/data/hyphy1.fasta'); ! my $aln = $alignio->next_aln; ! my $treeio = Bio::TreeIO->new( ! -format => 'newick', -file => 't/data/hyphy1.tree'); ! my $slr = Bio::Tools::Run::Phylo::SLR->new(); ! $slr->alignment($aln); ! $slr->tree($aln); ! # $rc = 1 for success, 0 for errors ! my ($rc,$results) = $slr->run(); ! my $positive_sites = $results->{'positive'}; ! print "Ka = ", $MLmatrix->[0]->[1]->{'dN'},"\n"; ! print "Ks = ", $MLmatrix->[0]->[1]->{'dS'},"\n"; ! print "Ka/Ks = ", $MLmatrix->[0]->[1]->{'omega'},"\n"; =head1 DESCRIPTION --- 17,59 ---- =head1 SYNOPSIS ! use Bio::Tools::Run::Phylo::SLR; ! use Bio::AlignIO; ! use Bio::TreeIO; ! use Bio::SimpleAlign; ! my $alignio = Bio::AlignIO->new ! (-format => 'fasta', ! -file => 't/data/219877.cdna.fasta'); ! my $aln = $alignio->next_aln; ! my $treeio = Bio::TreeIO->new ! (-format => 'newick', -file => 't/data/219877.tree'); ! my $tree = $treeio->next_tree; ! my $slr = Bio::Tools::Run::Phylo::SLR->new(); ! $slr->alignment($aln); ! $slr->tree($tree); ! # $rc = 1 for success, 0 for errors ! my ($rc,$results) = $slr->run(); ! ! my $positive_sites = $results->{'positive'}; ! ! print "# Site\tNeutral\tOptimal\tOmega\t", ! "lower\tupper\tLRT_Stat\tPval\tAdj.Pval\tResult\tNote\n"; ! foreach my $positive_site (@$positive_sites) { ! print ! $positive_site->[0], "\t", ! $positive_site->[1], "\t", ! $positive_site->[2], "\t", ! $positive_site->[3], "\t", ! $positive_site->[4], "\t", ! $positive_site->[5], "\t", ! $positive_site->[6], "\t", ! $positive_site->[7], "\t", ! $positive_site->[8], "\t", ! "positive\n"; ! } =head1 DESCRIPTION From avilella at dev.open-bio.org Wed Dec 12 04:14:08 2007 From: avilella at dev.open-bio.org (Albert Vilella) Date: Wed, 12 Dec 2007 09:14:08 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/Hyphy Base.pm, 1.3, 1.4 Message-ID: <200712120918.lBC9E89e017630@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy In directory dev.open-bio.org:/tmp/cvs-serv17604 Modified Files: Base.pm Log Message: changing basic alignment format to fasta to avoid idlength problems with phylip -- cleaning no_param_checks method that is inherited from WrapperBase Index: Base.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/Hyphy/Base.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Base.pm 3 Dec 2007 11:32:16 -0000 1.3 --- Base.pm 12 Dec 2007 09:14:05 -0000 1.4 *************** *** 177,183 **** ('-dir' => $tempdir, UNLINK => ($self->save_tempfiles ? 0 : 1)); ! my $alnout = Bio::AlignIO->new('-format' => 'phylip', ! '-fh' => $tempseqFH, ! '-interleaved' => 0); $alnout->write_aln($aln); --- 177,183 ---- ('-dir' => $tempdir, UNLINK => ($self->save_tempfiles ? 0 : 1)); ! $aln->set_displayname_flat(1); ! my $alnout = Bio::AlignIO->new('-format' => 'fasta', ! '-fh' => $tempseqFH); $alnout->write_aln($aln); *************** *** 472,482 **** =cut ! sub no_param_checks { ! my ($self,$value) = @_; ! if( defined $value) { ! $self->{'no_param_checks'} = $value; ! } ! return $self->{'no_param_checks'}; ! } =head2 tempdir --- 472,482 ---- =cut ! # sub no_param_checks { ! # my ($self,$value) = @_; ! # if( defined $value) { ! # $self->{'no_param_checks'} = $value; ! # } ! # return $self->{'no_param_checks'}; ! # } =head2 tempdir From bugzilla-daemon at portal.open-bio.org Thu Dec 13 13:05:05 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Thu, 13 Dec 2007 13:05:05 -0500 Subject: [Bioperl-guts-l] [Bug 2420] New: Bio::Index::Blast fails with blastall 2.2.16 Message-ID: http://bugzilla.open-bio.org/show_bug.cgi?id=2420 Summary: Bio::Index::Blast fails with blastall 2.2.16 Product: BioPerl Version: main-trunk Platform: Macintosh OS/Version: Mac OS Status: NEW Severity: normal Priority: P2 Component: Core Components AssignedTo: bioperl-guts-l at bioperl.org ReportedBy: jaudall at byu.edu When I try to index blast reports (default output or xml), several warning messages appear ... -------------------- WARNING --------------------- MSG: unexpected EOF in file --------------------------------------------------- and when I search the index for queries that I know are there, it is unable to find the record. The size of the index file looks too small too, even though the index script exited normally. My 'index' script and 'test_index' appears to work for blastall 2.10.0 -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at portal.open-bio.org Thu Dec 13 13:31:56 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Thu, 13 Dec 2007 13:31:56 -0500 Subject: [Bioperl-guts-l] [Bug 2420] Bio::Index::Blast fails with blastall 2.2.16 In-Reply-To: Message-ID: <200712131831.lBDIVuFA002636@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=2420 ------- Comment #1 from cjfields at uiuc.edu 2007-12-13 13:31 EST ------- This module does not index XML, only text data. You have marked this as using bioperl-live (i.e. main trunk); I need to confirm that you're not using bioperl v1.5.2 instead. Several changes were made in CVS to this module post-1.5.2 release; in fact I used this fairly recently with BLAST output from 2.2.16. If you are using bioperl-live, could you attach a small sample of your text output (~10 BLAST reports) as a zipped archive using the link above, or pass it on to me directly? I'll try taking a look. -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From jason at dev.open-bio.org Sat Dec 15 14:19:53 2007 From: jason at dev.open-bio.org (Jason Stajich) Date: Sat, 15 Dec 2007 19:19:53 +0000 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run/Phylo/PAML Codeml.pm, 1.49, 1.50 Message-ID: <200712151919.lBFJJrJe032234@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/PAML In directory dev.open-bio.org:/tmp/cvs-serv32208/Bio/Tools/Run/Phylo/PAML Modified Files: Codeml.pm Log Message: Catching up commits before CVS changeover: Insure defaults are what people are used to? Index: Codeml.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Phylo/PAML/Codeml.pm,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** Codeml.pm 1 Nov 2007 15:28:55 -0000 1.49 --- Codeml.pm 15 Dec 2007 19:19:50 -0000 1.50 *************** *** 236,240 **** 'outfile' => 'mlc', 'noisy' => [ 0..3,9], ! 'verbose' => [ 0,1,2], # 0:concise, 1:detailed, 2:too much # (runmode) 0:user tree, 1:semi-autmatic, 2:automatic --- 236,240 ---- 'outfile' => 'mlc', 'noisy' => [ 0..3,9], ! 'verbose' => [ 1,0,2], # 0:concise, 1:detailed, 2:too much # (runmode) 0:user tree, 1:semi-autmatic, 2:automatic *************** *** 290,298 **** 'kappa' => '2', # initial or fixed kappa 'fix_omega'=> [0,1], # 0: estimate omega, 1: fix omega ! 'omega' => '0.4', # initial or fixed omega for # codons or codon-base AAs 'fix_alpha'=> [1,0], # 0: estimate gamma shape param # 1: fix it at alpha ! 'alpha' => '0', # initial of fixed alpha # 0: infinity (constant rate) 'Malpha' => [0,1], # different alphas for genes --- 290,298 ---- 'kappa' => '2', # initial or fixed kappa 'fix_omega'=> [0,1], # 0: estimate omega, 1: fix omega ! 'omega' => '1', # initial or fixed omega for # codons or codon-base AAs 'fix_alpha'=> [1,0], # 0: estimate gamma shape param # 1: fix it at alpha ! 'alpha' => '0.', # initial or fixed alpha # 0: infinity (constant rate) 'Malpha' => [0,1], # different alphas for genes *************** *** 396,400 **** defined $exe && $self->executable($exe); ! #$self->set_default_parameters(); if( defined $params ) { if( ref($params) !~ /HASH/i ) { --- 396,400 ---- defined $exe && $self->executable($exe); ! $self->set_default_parameters(); if( defined $params ) { if( ref($params) !~ /HASH/i ) { From jason at dev.open-bio.org Sat Dec 15 14:27:29 2007 From: jason at dev.open-bio.org (Jason Stajich) Date: Sat, 15 Dec 2007 19:27:29 +0000 Subject: [Bioperl-guts-l] bioperl-run/t PAML.t,1.16,1.17 Message-ID: <200712151927.lBFJRTHe032356@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-run/t In directory dev.open-bio.org:/tmp/cvs-serv32330/t Modified Files: PAML.t Log Message: Fix some parameters to set values so that tests are consistent Index: PAML.t =================================================================== RCS file: /home/repository/bioperl/bioperl-run/t/PAML.t,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** PAML.t 1 Nov 2007 15:18:10 -0000 1.16 --- PAML.t 15 Dec 2007 19:27:27 -0000 1.17 *************** *** 68,71 **** --- 68,79 ---- 'seqtype' => 1, 'model' => 0, + 'alpha' => '0', + 'omega' => 0.4, + 'kappa' => 2, + 'CodonFreq'=> 2, + 'NSsites' => 0, + 'model' => 0, + + }, -verbose => $verbose); *************** *** 118,128 **** } elsif( $vnum == 4 ) { ! ok($MLmatrix->[0]->[1]->{'dN'}, 0.0693); ! ok($MLmatrix->[0]->[1]->{'dS'},1.1459); ! ok(sprintf("%.4f",$MLmatrix->[0]->[1]->{'omega'}), 0.0605); ! ok($MLmatrix->[0]->[1]->{'S'}, 273.5); ! ok($MLmatrix->[0]->[1]->{'N'}, 728.5); ! ok(sprintf("%.4f",$MLmatrix->[0]->[1]->{'t'}), 1.0895); ! ok($MLmatrix->[0]->[1]->{'lnL'}, -1957.064254); } else { --- 126,136 ---- } elsif( $vnum == 4 ) { ! ok($MLmatrix->[0]->[1]->{'dN'}, 0.0713); ! ok($MLmatrix->[0]->[1]->{'dS'},1.2462); ! ok(sprintf("%.4f",$MLmatrix->[0]->[1]->{'omega'}), 0.0572); ! ok($MLmatrix->[0]->[1]->{'S'}, 278.8); ! ok($MLmatrix->[0]->[1]->{'N'}, 723.2); ! ok(sprintf("%.4f",$MLmatrix->[0]->[1]->{'t'}), 1.1946); ! ok($MLmatrix->[0]->[1]->{'lnL'}, -1929.935243); } else { From jason at dev.open-bio.org Sat Dec 15 14:30:18 2007 From: jason at dev.open-bio.org (Jason Stajich) Date: Sat, 15 Dec 2007 19:30:18 +0000 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Spidey Results.pm, 1.12, 1.13 Message-ID: <200712151930.lBFJUIDG032682@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Spidey In directory dev.open-bio.org:/tmp/cvs-serv32657/Bio/Tools/Spidey Modified Files: Results.pm Log Message: some formatting -- committing before SVN merge Index: Results.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Spidey/Results.pm,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Results.pm 28 Sep 2006 04:09:02 -0000 1.12 --- Results.pm 15 Dec 2007 19:30:16 -0000 1.13 *************** *** 163,350 **** sub parse_next_alignment { ! my ($self) = @_; ! my $started = 0; ! my ($version) = 0; ! my %seq1props = (); ! my %seq2props = (); ! my ($strand) = 0; # 1 = plus, -1 = minus ! my ($exoncount) = -1; ! my @exons = (); ! ! # we refer to the properties of each seq by reference ! # my ($estseq, $genomseq, $to_reverse); ! # my $hit_direction = 1; ! ! while(defined($_ = $self->_readline())) { ! chomp(); ! # ! # bascially, parse a Spidey result... ! # ! # matches: --SPIDEY version 1.40-- ! /^--SPIDEY version (\d+\.\d+)--/ && do { ! if($started) { ! $self->_pushback($_); ! last; ! } ! $version = $1; ! if ($version != 1.40) { ! $self->throw("Spidey parser only designed to work with Spidey v1.40\n"); ! } ! $started = 1; ! next; ! }; ! # matches: Genomic: lcl|some_name other information, 1234 bp ! /^Genomic:\s([\w|\.]+)\s[\w\s]+,\s(\d+)\sbp/ && do { ! # $seq1props{'filename'} = $1; ! $seq1props{'seqname'} = $1; ! $seq1props{'length'} = $2; ! $self->genomic_dna_length($seq1props{'length'}); ! next; ! }; ! # matches: mRNA: ! /^mRNA:\s([\w|\.]+)\s[\w\s]+,\s(\d+)\sbp/ && do { ! # $seq2props{'filename'} = $1; ! $seq2props{'seqname'} = $1; ! $seq2props{'length'} = $2; ! next; ! }; ! /^Strand:/ && do { ! if (/plus/) { ! $strand = 1; ! } else { ! $strand = -1; ! } ! next; ! }; ! /^Number of exons: (\d+)/ && do { ! $exoncount = $1; ! ! my ($genomic_start, $genomic_stop, $cdna_start, $cdna_stop, $id, $mismatches, $gaps, $splice_donor, $splice_acceptor, $uncertain); ! # the next $exoncount lines contains information about the matches of each exon. ! # we should parse this information here ! for (my $ec = 1; $ec <= $exoncount; $ec++) { ! if (defined($_ = $self->_readline())) { ! chomp(); ! ! if (/^Exon\s$ec[\(\)-]*:\s(\d+)-(\d+)\s\(gen\)\s+(\d+)-(\d+)\s\(mRNA\)\s+id\s([\d\.inf-]+)%\s+mismatches\s(\d+)\s+gaps\s(\d+)\s+splice\ssite\s\(d\s+a\):\s(\d+)\s+(\d+)\s*(\w*)/) { ! $genomic_start = $1; ! $genomic_stop = $2; ! $cdna_start = $3; ! $cdna_stop = $4; ! $id = $5; ! $mismatches = $6; ! $gaps = $7; ! $splice_donor = $8; ! $splice_acceptor = $9; ! $uncertain = $10; ! } else { ! $self->throw( "Failed to match anything:\n$_\n"); ! } ! my $exon = Bio::Tools::Spidey::Exon->new('-start' => $genomic_start, ! '-end' => $genomic_stop, ! '-strand' => $strand); ! $exon->seq_id($seq1props{'seqname'}); ! # feature1 is supposed to be initialized to a Similarity object, but we provide a safety net ! if ($exon->feature1()->can('seqlength')) { ! $exon->feature1()->seqlength($seq1props{'length'}); ! } else { ! $exon->feature1()->add_tag_value('seqlength', $seq1props{'length'}); ! } ! # create and initialize the feature wrapping the 'hit' (the cDNA) ! my $fea2 = Bio::SeqFeature::Similarity->new('-start' => $cdna_start, ! '-end' => $cdna_stop, ! '-strand' => $strand, ! '-primary' => "aligning_cDNA"); ! $fea2->seq_id($seq2props{'seqname'}); ! $fea2->seqlength($seq2props{'length'}); ! # store ! $exon->est_hit($fea2); ! # general properties ! $exon->source_tag($self->analysis_method()); ! $exon->percentage_id($5); ! $exon->mismatches($6); ! $exon->gaps($7); ! $exon->donor($8); ! $exon->acceptor($9); ! # push onto array ! push(@exons, $exon); ! } else { ! $self->throw("Unexpected end of file reached\n"); ! } ! } ! next; ! }; ! /^Number of splice sites: (\d+)/ && do { ! $self->splicesites($1); ! next; ! }; ! /^mRNA coverage: (\d+)%/ && do { ! $self->est_coverage($1); ! next; ! }; ! /^overall percent identity: ([\d\.]+)%/ && do { ! $self->overall_percentage_id($1); ! }; ! /^Missing mRNA ends: (\w+)/ && do { ! $self->missing_mrna_ends($1); ! }; ! # Typical format: ! # Exon 1: 36375798-36375691 (gen) 1-108 (mRNA) ! # ! # ! # CCTCTTTTTCTTTGCAGGGTATATACCCAGTTACTTAGACAAGGATGAGCTATGTGTAGT ! # | |||||||||||||||||||||||||||||||||||||||||||||| ! # ATGTCAGGGTATATACCCAGTTACTTAGACAAGGATGAGCTATGTGTAGT ! # M S G Y I P S Y L D K D E L C V V ! # ! # ! # ATGTGGGGACAAAGCCACCGGATATCATTATCGCTGCATCACTTGTGAAGGTTGCAAGGT ! # |||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ! # ATGTGGGGACAAAGCCACCGGATATCATTATCGCTGCATCACTTGTGAAGGTTGCAAG ! # C G D K A T G Y H Y R C I T C E G C K ! # ! # ! # AAATGGCA ! # ! /^Exon (\d+): (\d+)-(\d+) \(gen\)\s+(\d+)-(\d+) \(mRNA\)/ && do { ! my ($exon_num, $gen_start, $gen_stop, $cdna_start, $cdna_stop); ! $exon_num = $1; ! $gen_start = $2; ! $gen_stop = $3; ! $cdna_start = $4; ! $cdna_stop = $5; } } ! return @exons; } =head2 next_exonset ! Title : next_exonset ! Usage : $exonset = $spidey_result->parse_next_exonset; ! print "Exons start at ", $exonset->start(), ! "and end at ", $exonset->end(), "\n"; ! foreach $exon ($exonset->sub_SeqFeature()) { ! # do something ! } ! Function: Parses the next alignment of the Spidey result file and returns the ! set of exons as a container of features. The container is itself ! a Bio::SeqFeature::Generic object, with the Bio::Tools::Spidey::Exon ! objects as sub features. Start, end, and strand of the container ! will represent the total region covered by the exons of this set. ! ! See the documentation of parse_next_alignment() for further ! reference about parsing and how the information is stored. Example : Returns : An Bio::SeqFeature::Generic object holding Bio::Tools::Spidey::Exon ! objects as sub features. Args : --- 163,339 ---- sub parse_next_alignment { ! my ($self) = @_; ! # for strand 1 = plus, -1 = minus ! my ($started,$version,$strand, $exoncount) = (0,0,0,-1); ! my (%seq1props,%seq2props, at exons); ! ! # we refer to the properties of each seq by reference ! while(defined($_ = $self->_readline())) { ! chomp; ! # ! # bascially, parse a Spidey result... ! # ! # matches: --SPIDEY version 1.40-- ! if( /^--SPIDEY\s+version\s+(\d+\.\d+)--/) { ! if($started) { ! $self->_pushback($_); ! return \@exons; ! } ! $version = $1; ! if ($version != 1.40) { ! $self->throw("Spidey parser only designed to work with Spidey v1.40\n"); ! } ! $started = 1; ! } elsif (/^Genomic:\s+(\S+)\s.*,\s+(\d+)\sbp$/ ) { ! # matches: Genomic: lcl|some_name other information, 1234 bp ! # $seq1props{'filename'} = $1; ! $seq1props{'seqname'} = $1; ! $seq1props{'length'} = $2; ! $self->genomic_dna_length($seq1props{'length'}); ! } elsif( /^mRNA:\s+(\S+)\s.*,(?:\s+mRNA\s+sequence,)?\s(\d+)\sbp$/ ) { ! # matches: mRNA: ! # $seq2props{'filename'} = $1; ! $seq2props{'seqname'} = $1; ! $seq2props{'length'} = $2; ! } elsif( /^Strand:/ ) { ! if (/plus/) { ! $strand = 1; ! } else { ! $strand = -1; ! } ! } elsif( /^Number of exons: (\d+)/ ) { ! $exoncount = $1; ! my ($genomic_start, $genomic_stop, $cdna_start, $cdna_stop, ! $id, $mismatches, $gaps, $splice_donor, ! $splice_acceptor, $uncertain); ! # the next $exoncount lines contains information ! # about the matches of each exon. we should parse ! # this information here ! for (my $ec = 1; $ec <= $exoncount; $ec++) { ! if (defined($_ = $self->_readline())) { ! chomp; ! if (/^Exon\s$ec[\(\)-]*:\s(\d+)-(\d+)\s\(gen\)\s+(\d+)-(\d+)\s\(mRNA\)\s+id\s([\d\.inf-]+)%\s+mismatches\s(\d+)\s+gaps\s(\d+)\s+splice\ssite\s\(d\s+a\):\s(\d+)\s+(\d+)\s*(\w*)/) { ! $genomic_start = $1; ! $genomic_stop = $2; ! $cdna_start = $3; ! $cdna_stop = $4; ! $id = $5; ! $mismatches = $6; ! $gaps = $7; ! $splice_donor = $8; ! $splice_acceptor = $9; ! $uncertain = $10; ! } else { ! $self->throw( "Failed to match anything:\n$_\n"); ! } ! ! my $exon = Bio::Tools::Spidey::Exon->new ! (-start => $genomic_start, ! -end => $genomic_stop, ! -strand => $strand); ! $exon->seq_id($seq1props{'seqname'}); ! ! # feature1 is supposed to be initialized to a Similarity object, but we provide a safety net ! if ($exon->feature1->can('seqlength')) { ! $exon->feature1->seqlength($seq1props{'length'}); ! } else { ! $exon->feature1->add_tag_value('seqlength', $seq1props{'length'}); ! } ! ! # create and initialize the feature wrapping the 'hit' (the cDNA) ! my $fea2 = Bio::SeqFeature::Similarity->new ! (-start => $cdna_start, ! -end => $cdna_stop, ! -strand => $strand, ! -seq_id => $seq2props{'seqname'}, ! -primary => "aligning_cDNA"); ! $fea2->seqlength($seq2props{'length'}); ! # store ! $exon->est_hit($fea2); ! ! # general properties ! $exon->source_tag($self->analysis_method()); ! $exon->percentage_id($5); ! $exon->mismatches($6); ! $exon->gaps($7); ! $exon->donor($8); ! $exon->acceptor($9); ! ! # push onto array ! push(@exons, $exon); ! } else { ! $self->throw("Unexpected end of file reached\n"); } + } + } elsif( /^Number of splice sites:\s+(\d+)/ ) { + $self->splicesites($1); + } elsif( /^mRNA coverage:\s+(\d+)%/ ) { + $self->est_coverage($1); + } elsif(/^overall percent identity:\s+([\d\.]+)%/ ) { + $self->overall_percentage_id($1); + } elsif(/^Missing mRNA ends:\s+(\w+)/ ) { + $self->missing_mrna_ends($1); + } elsif( /^Exon (\d+): (\d+)-(\d+) \(gen\)\s+(\d+)-(\d+) \(mRNA\)/ ) { + my ($exon_num, $gen_start, $gen_stop, $cdna_start, $cdna_stop); + $exon_num = $1; + $gen_start = $2; + $gen_stop = $3; + $cdna_start = $4; + $cdna_stop = $5; + } elsif( /No alignment found/ ) { + return []; + + } else { + # warn("unmatched $_\n"); } ! } ! # Typical format: ! # Exon 1: 36375798-36375691 (gen) 1-108 (mRNA) ! # ! # ! # CCTCTTTTTCTTTGCAGGGTATATACCCAGTTACTTAGACAAGGATGAGCTATGTGTAGT ! # | |||||||||||||||||||||||||||||||||||||||||||||| ! # ATGTCAGGGTATATACCCAGTTACTTAGACAAGGATGAGCTATGTGTAGT ! # M S G Y I P S Y L D K D E L C V V ! # ! # ! # ATGTGGGGACAAAGCCACCGGATATCATTATCGCTGCATCACTTGTGAAGGTTGCAAGGT ! # |||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ! # ATGTGGGGACAAAGCCACCGGATATCATTATCGCTGCATCACTTGTGAAGGTTGCAAG ! # C G D K A T G Y H Y R C I T C E G C K ! # ! # ! # AAATGGCA ! # ! return; } =head2 next_exonset ! Title : next_exonset ! Usage : $exonset = $spidey_result->parse_next_exonset; ! print "Exons start at ", $exonset->start(), ! "and end at ", $exonset->end(), "\n"; ! for $exon ($exonset->sub_SeqFeature()) { ! # do something ! } ! Function: Parses the next alignment of the Spidey result file and returns the ! set of exons as a container of features. The container is itself ! a Bio::SeqFeature::Generic object, with the Bio::Tools::Spidey::Exon ! objects as sub features. Start, end, and strand of the container ! will represent the total region covered by the exons of this set. + See the documentation of parse_next_alignment() for further + reference about parsing and how the information is stored. Example : Returns : An Bio::SeqFeature::Generic object holding Bio::Tools::Spidey::Exon ! objects as sub features. Args : *************** *** 356,372 **** # get the next array of exons ! my @exons = $self->parse_next_alignment(); ! return if($#exons < 0); # create the container of exons as a feature object itself, with the # data of the first exon for initialization ! $exonset = Bio::SeqFeature::Generic->new('-start' => $exons[0]->start(), ! '-end' => $exons[0]->end(), ! '-strand' => $exons[0]->strand(), '-primary' => "ExonSet"); ! $exonset->source_tag($exons[0]->source_tag()); ! $exonset->seq_id($exons[0]->seq_id()); # now add all exons as sub features, with enabling EXPANsion of the region # covered in total ! foreach my $exon (@exons) { $exonset->add_sub_SeqFeature($exon, 'EXPAND'); } --- 345,366 ---- # get the next array of exons ! my $exons = $self->parse_next_alignment(); ! if( ! defined $exons ) { ! return undef; ! } ! if( @$exons == 0 ) { ! return Bio::SeqFeature::Generic->new(); ! } # create the container of exons as a feature object itself, with the # data of the first exon for initialization ! $exonset = Bio::SeqFeature::Generic->new('-start' => $exons->[0]->start(), ! '-end' => $exons->[-1]->end(), ! '-strand' => $exons->[0]->strand(), '-primary' => "ExonSet"); ! $exonset->source_tag($exons->[0]->source_tag()); ! $exonset->seq_id($exons->[0]->seq_id()); # now add all exons as sub features, with enabling EXPANsion of the region # covered in total ! foreach my $exon (@$exons) { $exonset->add_sub_SeqFeature($exon, 'EXPAND'); } *************** *** 376,395 **** =head2 next_feature ! Title : next_feature ! Usage : while($exonset = $spidey->next_feature()) { ! # do something ! } ! Function: Does the same as L. See there for documentation of ! the functionality. Call this method repeatedly until FALSE is ! returned. ! The returned object is actually a SeqFeatureI implementing object. ! This method is required for classes implementing the ! SeqAnalysisParserI interface, and is merely an alias for ! next_exonset() at present. ! Example : ! Returns : A Bio::SeqFeature::Generic object. ! Args : =cut --- 370,389 ---- =head2 next_feature ! Title : next_feature ! Usage : while($exonset = $spidey->next_feature()) { ! # do something ! } ! Function: Does the same as L. See there for documentation of ! the functionality. Call this method repeatedly until FALSE is ! returned. ! The returned object is actually a SeqFeatureI implementing object. ! This method is required for classes implementing the ! SeqAnalysisParserI interface, and is merely an alias for ! next_exonset() at present. ! Example : ! Returns : A Bio::SeqFeature::Generic object. ! Args : =cut *************** *** 405,526 **** =head2 genomic_dna_length ! Title : genomic_dna_length ! Usage : $spidey->genomic_dna_length(); ! Function: Returns the length of the genomic DNA used in this Spidey result ! Example : ! Returns : An integer value. ! Args : ! =cut sub genomic_dna_length { ! my ($self, @args) = @_; ! my $val; ! ! if(@args) { ! $val = shift(@args); ! $self->{'genomic_dna_length'} = $val; ! } else { ! $val = $self->{'genomic_dna_length'}; ! } ! return $val; ! } =head2 splicesites ! Title : splicesites ! Usage : $spidey->splicesites(); ! Function: Returns the number of splice sites found in this Spidey result ! Example : ! Returns : An integer value. ! Args : =cut sub splicesites { ! my ($self, @args) = @_; ! my $val; ! ! if(@args) { ! $val = shift(@args); ! $self->{'splicesites'} = $val; ! } else { ! $val = $self->{'splicesites'}; ! } ! return $val; } =head2 est_coverage ! ! Title : est_coverage ! Usage : $spidey->est_coverage(); ! Function: Returns the percent of est coverage in this Spidey result ! Example : ! Returns : An integer value. ! Args : =cut ! sub est_coverage { ! my ($self, @args) = @_; ! my $val; ! ! if(@args) { ! $val = shift(@args); ! $self->{'est_coverage'} = $val; ! } else { ! $val = $self->{'est_coverage'}; ! } ! return $val; ! } =head2 overall_percentage_id ! Title : overall_percentage_id ! Usage : $spidey->overall_percentage_id(); ! Function: Returns the overall percent id in this Spidey result ! Example : ! Returns : An float value. ! Args : =cut sub overall_percentage_id { ! my ($self, @args) = @_; ! my $val; ! ! if(@args) { ! $val = shift(@args); ! $self->{'overall_percentage_id'} = $val; ! } else { ! $val = $self->{'overall_percentage_id'}; ! } ! return $val; } =head2 missing_mrna_ends ! Title : missing_mrna_ends ! Usage : $spidey->missing_mrna_ends(); ! Function: Returns left/right/neither from Spidey ! Example : ! Returns : A string value. ! Args : ! =cut ! sub missing_mrna_ends ! { ! my ($self, @args) = @_; ! my $val; ! ! if(@args) { ! $val = shift(@args); ! $self->{'missing_mrna_ends'} = $val; ! } else { ! $val = $self->{'missing_mrna_ends'}; ! } ! return $val; } --- 399,518 ---- =head2 genomic_dna_length ! Title : genomic_dna_length ! Usage : $spidey->genomic_dna_length(); ! Function: Returns the length of the genomic DNA used in this Spidey result ! Example : ! Returns : An integer value. ! Args : ! =cut sub genomic_dna_length { ! my ($self, @args) = @_; ! my $val; + if(@args) { + $val = shift(@args); + $self->{'genomic_dna_length'} = $val; + } else { + $val = $self->{'genomic_dna_length'}; + } + return $val; + } + =head2 splicesites ! Title : splicesites ! Usage : $spidey->splicesites(); ! Function: Returns the number of splice sites found in this Spidey result ! Example : ! Returns : An integer value. ! Args : =cut sub splicesites { ! my ($self, @args) = @_; ! my $val; ! ! if(@args) { ! $val = shift(@args); ! $self->{'splicesites'} = $val; ! } else { ! $val = $self->{'splicesites'}; ! } ! return $val; } =head2 est_coverage ! ! Title : est_coverage ! Usage : $spidey->est_coverage(); ! Function: Returns the percent of est coverage in this Spidey result ! Example : ! Returns : An integer value. ! Args : =cut ! sub est_coverage { ! my ($self, @args) = @_; ! my $val; ! ! if(@args) { ! $val = shift(@args); ! $self->{'est_coverage'} = $val; ! } else { ! $val = $self->{'est_coverage'}; ! } ! return $val; ! } =head2 overall_percentage_id ! Title : overall_percentage_id ! Usage : $spidey->overall_percentage_id(); ! Function: Returns the overall percent id in this Spidey result ! Example : ! Returns : An float value. ! Args : =cut sub overall_percentage_id { ! my ($self, @args) = @_; ! my $val; ! ! if(@args) { ! $val = shift(@args); ! $self->{'overall_percentage_id'} = $val; ! } else { ! $val = $self->{'overall_percentage_id'}; ! } ! return $val; } =head2 missing_mrna_ends ! Title : missing_mrna_ends ! Usage : $spidey->missing_mrna_ends(); ! Function: Returns left/right/neither from Spidey ! Example : ! Returns : A string value. ! Args : ! =cut ! sub missing_mrna_ends { ! my ($self, @args) = @_; ! my $val; + if(@args) { + $val = shift(@args); + $self->{'missing_mrna_ends'} = $val; + } else { + $val = $self->{'missing_mrna_ends'}; + } + return $val; } From jason at dev.open-bio.org Sat Dec 15 14:32:28 2007 From: jason at dev.open-bio.org (Jason Stajich) Date: Sat, 15 Dec 2007 19:32:28 +0000 Subject: [Bioperl-guts-l] bioperl-live/Bio/PopGen Statistics.pm,1.43,1.44 Message-ID: <200712151932.lBFJWSrM000335@dev.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/PopGen In directory dev.open-bio.org:/tmp/cvs-serv310/Bio/PopGen Modified Files: Statistics.pm Log Message: Short circuit if the a1 is 0 to avoid divide by zero Index: Statistics.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/PopGen/Statistics.pm,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** Statistics.pm 27 Aug 2007 16:31:40 -0000 1.43 --- Statistics.pm 15 Dec 2007 19:32:25 -0000 1.44 *************** *** 791,794 **** --- 791,797 ---- $seg_sites /= $totalsites; } + if( $a1 == 0 ) { + return 0; + } return $seg_sites / $a1; } From bugzilla-daemon at portal.open-bio.org Mon Dec 17 21:39:55 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Mon, 17 Dec 2007 21:39:55 -0500 Subject: [Bioperl-guts-l] [Bug 2423] New: Bio::Tools::Glimmer - frame support for Glimmer2/3 parser Message-ID: http://bugzilla.open-bio.org/show_bug.cgi?id=2423 Summary: Bio::Tools::Glimmer - frame support for Glimmer2/3 parser Product: BioPerl Version: main-trunk Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Core Components AssignedTo: bioperl-guts-l at bioperl.org ReportedBy: deniz.koellhofer at agrf.org.au Hi, I've attached a patch for the Bio::Tools::Glimmer module. It parses the frame information of both glimmer2 and glimmer3 results into the Bio::SeqFeature::Generic instance. So far only the strand information had been extracted. Not a big patch, but maybe helpful for someone. Deniz -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at portal.open-bio.org Mon Dec 17 21:44:49 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Mon, 17 Dec 2007 21:44:49 -0500 Subject: [Bioperl-guts-l] [Bug 2423] Bio::Tools::Glimmer - frame support for Glimmer2/3 parser In-Reply-To: Message-ID: <200712180244.lBI2in9p009803@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=2423 ------- Comment #1 from deniz.koellhofer at agrf.org.au 2007-12-17 21:44 EST ------- Created an attachment (id=838) --> (http://bugzilla.open-bio.org/attachment.cgi?id=838&action=view) frame support for Glimmer2/3 prok parser. -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at portal.open-bio.org Fri Dec 21 09:07:15 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Fri, 21 Dec 2007 09:07:15 -0500 Subject: [Bioperl-guts-l] [Bug 2424] New: Out of memory on SeqIO Message-ID: http://bugzilla.open-bio.org/show_bug.cgi?id=2424 Summary: Out of memory on SeqIO Product: BioPerl Version: 1.5 branch Platform: Macintosh OS/Version: Mac OS Status: NEW Severity: normal Priority: P2 Component: Bio::SeqIO AssignedTo: bioperl-guts-l at bioperl.org ReportedBy: b.cantarel at gmail.com I might have found a bug in SeqIO in bioperl. Well it is actually a memory leak. When I try to load large file, I can step through the first 10K or so sequences (using next_seq) but then it just hangs on the line then gives an out of memory error. $seqio = Bio::SeqIO->new(-file => $infile, -format => 'GenBank); $next_seq = $seqio->next_seq; The large file I am using was obtained from the NBCI daily dump nc1220.gnp -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at portal.open-bio.org Fri Dec 21 10:40:47 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Fri, 21 Dec 2007 10:40:47 -0500 Subject: [Bioperl-guts-l] [Bug 2424] Out of memory on SeqIO In-Reply-To: Message-ID: <200712211540.lBLFelql031282@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=2424 ------- Comment #1 from cjfields at uiuc.edu 2007-12-21 10:40 EST ------- I'll look into it. What is the exact bioperl version you are using, perl version, and OS? -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at portal.open-bio.org Tue Dec 25 05:50:03 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Tue, 25 Dec 2007 05:50:03 -0500 Subject: [Bioperl-guts-l] [Bug 2424] Out of memory on SeqIO In-Reply-To: Message-ID: <200712251050.lBPAo33n028789@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=2424 ------- Comment #2 from b.cantarel at gmail.com 2007-12-25 05:50 EST ------- (In reply to comment #1) > I'll look into it. What is the exact bioperl version you are using, perl > version, and OS? > Perl 5.8.8, Leopard (OS X 10.5) and bioperl 1.5 -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at portal.open-bio.org Sat Dec 29 15:17:56 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Sat, 29 Dec 2007 15:17:56 -0500 Subject: [Bioperl-guts-l] [Bug 2426] New: Bio::Tools::Primer3 returns wrong result count under certain situation Message-ID: http://bugzilla.open-bio.org/show_bug.cgi?id=2426 Summary: Bio::Tools::Primer3 returns wrong result count under certain situation Product: BioPerl Version: 1.5 branch Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Core Components AssignedTo: bioperl-guts-l at bioperl.org ReportedBy: nh337.maillist at gmail.com Under this common situation when (i) primer3 is asked to give explanations in output file ("PRIMER_EXPLAIN_FLAG => 1") and (ii) it fails to design primer pair, number_of_results() will return "1" instead of "0". This may be caused by line 387 in "sub _separate", where "/PRIMER_(RIGHT|LEFT)/" will mistake "PRIMER_LEFT_EXPLAIN" or "PRIMER_RIGHT_EXPLAIN" in the output file for a valid primer pair under the described situation. -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at portal.open-bio.org Sat Dec 29 15:56:45 2007 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon at portal.open-bio.org) Date: Sat, 29 Dec 2007 15:56:45 -0500 Subject: [Bioperl-guts-l] [Bug 2426] Bio::Tools::Primer3 returns wrong result count under certain situation In-Reply-To: Message-ID: <200712292056.lBTKujeo010824@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=2426 ------- Comment #1 from nh337.maillist at gmail.com 2007-12-29 15:56 EST ------- Created an attachment (id=839) --> (http://bugzilla.open-bio.org/attachment.cgi?id=839&action=view) a patch to Bio::Tools::Primer3.pm -- Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.