From bugzilla-daemon at portal.open-bio.org Thu Dec 1 10:55:51 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Thu Dec 1 10:59:17 2005 Subject: [Bioperl-guts-l] [Bug 1911] Deep recursion when reading newick tree Message-ID: <200512011555.jB1FtpZ9026908@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1911 ------- Comment #1 from qfdong@iastate.edu 2005-12-01 10:55 ------- Created an attachment (id=255) --> (http://bugzilla.open-bio.org/attachment.cgi?id=255&action=view) offending tree (plain text, newick format) This is the offending tree that gnerates a lot "Deep recursion" error ------- 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 1 10:52:27 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Thu Dec 1 10:59:21 2005 Subject: [Bioperl-guts-l] [Bug 1911] New: Deep recursion when reading newick tree Message-ID: <200512011552.jB1FqRrL026880@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1911 Summary: Deep recursion when reading newick tree Product: Bioperl Version: 1.5 branch Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Core Components AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: qfdong@iastate.edu Hello, I am not sure if I am reporting to the right bugzilla "Component". I am using bioperl (1.5.1) on linux to work on an UPGMA tree (newick format, generated by PHYLIP package). My code works well on a small tree. However, when I applied it to a big (ugly) tree, it produces a bunch of error msg. I will attach both my code and offending tree to this report: Qunfeng ------- 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 1 10:58:49 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Thu Dec 1 11:58:02 2005 Subject: [Bioperl-guts-l] [Bug 1911] Deep recursion when reading newick tree Message-ID: <200512011558.jB1Fwn8X026959@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1911 ------- Comment #2 from qfdong@iastate.edu 2005-12-01 10:58 ------- Created an attachment (id=256) --> (http://bugzilla.open-bio.org/attachment.cgi?id=256&action=view) perl script that reads that offending tree This is my script. To run it: ./sibling.pl offendingtree > output This script reads in the tree and retrieve all the leaf nodes and their parents. Then cluster the leaf nodes based on their belonging parents. ------- 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 1 14:00:22 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Thu Dec 1 14:58:09 2005 Subject: [Bioperl-guts-l] [Bug 1911] Deep recursion when reading newick tree Message-ID: <200512011900.jB1J0MWH029945@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1911 jason@open-bio.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason@open-bio.org Status|NEW |ASSIGNED ------- Comment #3 from jason@open-bio.org 2005-12-01 14:00 ------- This is just Perl complaining because the recursion is deep because there are so many levels in your tree (449 deep). It thinks it hit a snag because it doesn't expect to usually have a recursive call go that many levels. You can make the warnings go away by adding this no warnings 'recursion'; To the top of the modules (after use strict) Bio::Tree::Node Bio::Tree::NodeI Bio::Root::Root I'll check something like this in to CVS after we've mulled it over for a while. I'm also considering moving some of the code for cleanup over to rely on weak references instead of explictly cleaning up things ourself which will remove some of the warnings in Bio::Root::Root ------- 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 1 14:16:51 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Thu Dec 1 14:58:10 2005 Subject: [Bioperl-guts-l] [Bug 1911] Deep recursion when reading newick tree Message-ID: <200512011916.jB1JGpcM030082@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1911 ------- Comment #4 from jason@open-bio.org 2005-12-01 14:16 ------- Maybe we should unroll the recursion to an iterator? http://perlmonks.org/?node_id=238938 http://perlmonks.org/?node_id=322349 http://perlmonks.org/?node_id=324564 ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From tseemann at pub.open-bio.org Thu Dec 1 20:06:01 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Thu Dec 1 20:00:42 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Run StandAloneBlast.pm, 1.52, 1.53 Message-ID: <200512020106.jB2161VL024160@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Run In directory pub.open-bio.org:/tmp/cvs-serv24143 Modified Files: StandAloneBlast.pm Log Message: Documentation and formatting cleanup Index: StandAloneBlast.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Run/StandAloneBlast.pm,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** StandAloneBlast.pm 30 Nov 2005 16:11:48 -0000 1.52 --- StandAloneBlast.pm 2 Dec 2005 01:05:59 -0000 1.53 *************** *** 1,7 **** # $Id$ # ! # BioPerl module for Bio::Tools::StandAloneBlast ! # ! # 30 Nov 2005 - rpsblast support added by Torsten Seemann # # Copyright Peter Schattner --- 1,5 ---- # $Id$ # ! # BioPerl module for Bio::Tools::Run::StandAloneBlast # # Copyright Peter Schattner *************** *** 14,18 **** Bio::Tools::Run::StandAloneBlast - Object for the local execution ! of the NCBI Blast program suite (blastall, blastpgp, bl2seq, rpsblast). There is experimental support for WU-Blast and NCBI rpsblast. --- 12,16 ---- Bio::Tools::Run::StandAloneBlast - Object for the local execution ! of the NCBI BLAST program suite (blastall, blastpgp, bl2seq). There is experimental support for WU-Blast and NCBI rpsblast. *************** *** 23,33 **** @params = ('database' => 'swissprot','outfile' => 'blast1.out'); - $factory = Bio::Tools::Run::StandAloneBlast->new(@params); # Blast a sequence against a database: ! $str = Bio::SeqIO->new(-file=>'t/amino.fa' , ! -format => 'Fasta' ); $input = $str->next_seq(); $input2 = $str->next_seq(); --- 21,29 ---- @params = ('database' => 'swissprot','outfile' => 'blast1.out'); $factory = Bio::Tools::Run::StandAloneBlast->new(@params); # Blast a sequence against a database: ! $str = Bio::SeqIO->new(-file=>'t/amino.fa', -format => 'Fasta'); $input = $str->next_seq(); $input2 = $str->next_seq(); *************** *** 47,62 **** # Experimental support for WU-Blast 2.0 my $factory = Bio::Tools::Run::StandAloneBlast->new(program =>"wublastp", database =>"swissprot", ! E => 1e-20); ! my $blast_report = $factory->wublast($seq); # Experimental support for NCBI rpsblast ! my $factory= Bio::Tools::Run::StandAloneBlast->new(d => 'CDD/Cog', ! e => 0.001); my $blast_report = $factory->rpsblast($seq); ! # Various additional options and input formats are available. See ! # the DESCRIPTION section for details. =head1 DESCRIPTION --- 43,61 ---- # Experimental support for WU-Blast 2.0 + my $factory = Bio::Tools::Run::StandAloneBlast->new(program =>"wublastp", database =>"swissprot", ! e => 1e-20); ! my $blast_report = $factory->wublast($seq); # Experimental support for NCBI rpsblast ! ! my $factory = Bio::Tools::Run::StandAloneBlast->new(db => 'CDD/Cog', ! expect => 0.001); ! $factory->F('T'); # turn on SEG filtering of query sequence my $blast_report = $factory->rpsblast($seq); ! # Various additional options and input formats are available, ! # see the DESCRIPTION section for details. =head1 DESCRIPTION *************** *** 173,177 **** $str = Bio::AlignIO->new(-file=> "cysprot.msf", ! -format => 'msf' ); $aln = $str->next_aln(); $len = $aln->length_aln(); --- 172,176 ---- $str = Bio::AlignIO->new(-file=> "cysprot.msf", ! -format => 'msf'); $aln = $str->next_aln(); $len = $aln->length_aln(); *************** *** 185,189 **** # Get 2 sequences ! $str = Bio::SeqIO->new(-file=>'t/amino.fa' , '-format' => 'Fasta', ); my $seq3 = $str->next_seq(); my $seq4 = $str->next_seq(); --- 184,188 ---- # Get 2 sequences ! $str = Bio::SeqIO->new(-file=>'t/amino.fa' , '-format' => 'Fasta'); my $seq3 = $str->next_seq(); my $seq4 = $str->next_seq(); *************** *** 191,195 **** # Run bl2seq on them $factory = Bio::Tools::Run::StandAloneBlast->new('program' => 'blastp', ! 'outfile' => 'bl2seq.out'); my $bl2seq_report = $factory->bl2seq($seq3, $seq4); --- 190,194 ---- # Run bl2seq on them $factory = Bio::Tools::Run::StandAloneBlast->new('program' => 'blastp', ! 'outfile' => 'bl2seq.out'); my $bl2seq_report = $factory->bl2seq($seq3, $seq4); *************** *** 224,228 **** =head1 AUTHOR - Peter Schattner ! Email schattner@alum.mit.edu =head1 APPENDIX --- 223,231 ---- =head1 AUTHOR - Peter Schattner ! Email schattner at alum.mit.edu ! ! =head1 MAINTAINER - Torsten Seemann ! ! Email torsten at infotech.monash.edu.au =head1 APPENDIX *************** *** 292,301 **** { $OK_FIELD{$attr}++; } ! # You will need to enable Blast to find the Blast program. ! # This can be done in at least two different ways: ! # 1. define an environmental variable blastDIR: ! # export BLASTDIR=/home/peter/blast or ! # 2. include a definition of an environmental variable ! # BLASTDIR in every script that will use StandAloneBlast.pm. $PROGRAMDIR = $BLASTTYPE eq 'ncbi' ? $ENV{'BLASTDIR'}: $ENV{'WUBLASTIDR'}; --- 295,304 ---- { $OK_FIELD{$attr}++; } ! # You will need to enable Blast to find the Blast program. ! # This can be done in at least two different ways: ! # 1. define an environmental variable blastDIR: ! # export BLASTDIR=/home/peter/blast or ! # 2. include a definition of an environmental variable ! # BLASTDIR in every script that will use StandAloneBlast.pm. $PROGRAMDIR = $BLASTTYPE eq 'ncbi' ? $ENV{'BLASTDIR'}: $ENV{'WUBLASTIDR'}; *************** *** 303,307 **** # If local BLAST databases are not stored in the standard # /data directory, the variable BLASTDATADIR will need to be ! # set explicitly $DATADIR = $ENV{'BLASTDATADIR'} || $ENV{'BLASTDB'} || ''; } --- 306,310 ---- # If local BLAST databases are not stored in the standard # /data directory, the variable BLASTDATADIR will need to be ! # set explicitly $DATADIR = $ENV{'BLASTDATADIR'} || $ENV{'BLASTDB'} || ''; } From bugzilla-daemon at portal.open-bio.org Fri Dec 2 11:36:58 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 2 11:58:10 2005 Subject: [Bioperl-guts-l] [Bug 1912] New: Enable named parameters with dashes in StandAloneBlast Message-ID: <200512021636.jB2GawhF018251@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1912 Summary: Enable named parameters with dashes in StandAloneBlast Product: Bioperl Version: main-trunk Platform: Macintosh OS/Version: All Status: NEW Severity: enhancement Priority: P2 Component: Core Components AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: brian_osborne@cognia.com Enable named parameters with dashes in StandAloneBlast. So, in addition to this: my $factory = Bio::Tools::Run::StandAloneBlast->new(db => 'CDD/Cog', expect => 0.001); one could do: my $factory = Bio::Tools::Run::StandAloneBlast->new(-db => 'CDD/Cog', -expect => 0.001); ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Tue Dec 6 17:46:56 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Tue Dec 6 17:41:14 2005 Subject: [Bioperl-guts-l] bioperl-live/doc/howto/pdf Feature-Annotation.pdf, 1.17, 1.18 Message-ID: <200512062246.jB6MkuVL025763@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/doc/howto/pdf In directory pub.open-bio.org:/tmp/cvs-serv25723/pdf Modified Files: Feature-Annotation.pdf Log Message: Typo Index: Feature-Annotation.pdf =================================================================== RCS file: /home/repository/bioperl/bioperl-live/doc/howto/pdf/Feature-Annotation.pdf,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 Binary files /tmp/cvs0ZilgR and /tmp/cvs5fJiW1 differ From bosborne at pub.open-bio.org Tue Dec 6 17:46:56 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Tue Dec 6 17:41:16 2005 Subject: [Bioperl-guts-l] bioperl-live/doc/howto/txt Beginners.txt, 1.7, 1.8 Feature-Annotation.txt, 1.15, 1.16 Message-ID: <200512062246.jB6MkuVL025765@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/doc/howto/txt In directory pub.open-bio.org:/tmp/cvs-serv25723/txt Modified Files: Beginners.txt Feature-Annotation.txt Log Message: Typo Index: Feature-Annotation.txt =================================================================== RCS file: /home/repository/bioperl/bioperl-live/doc/howto/txt/Feature-Annotation.txt,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Feature-Annotation.txt 29 Nov 2005 16:30:48 -0000 1.15 --- Feature-Annotation.txt 6 Dec 2005 22:46:54 -0000 1.16 *************** *** 1,3 **** --- 1,1069 ---- + BioPerl DocBook ([1]BioPerl) + + Feature and Annotation HOWTO + + Brian Osborne + + <[2]osborne1 at optonline.net> + [...1040 lines suppressed...] + 93. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Annotation/DBLink.html + 94. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Annotation/SimpleValue.html + 95. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Annotation/Collection.html + 96. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Annotation/OntologyTerm.html + 97. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Annotation/StructuredValue.html + 98. http://doc.bioperl.org/releases/bioperl-1.4/Bio/LocationI.html + 99. http://doc.bioperl.org/releases/bioperl-1.4/Bio/LocatableSeq.html + 100. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/Atomic.html + 101. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/AvWithinCoordPolicy.html + 102. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/CoordinatePolicyI.html + 103. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/Fuzzy.html + 104. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/FuzzyLocationI.html + 105. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/NarrowestCoordPolicy.html + 106. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/Simple.html + 107. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/Split.html + 108. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/SplitLocationI.html + 109. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Location/WidestCoordPolicy.html + 110. http://doc.bioperl.org/releases/bioperl-1.4/Bio/RangeI.html + 111. http://doc.bioperl.org/releases/bioperl-1.4/Bio/Range.html + 112. http://bioperl.org/ Index: Beginners.txt =================================================================== RCS file: /home/repository/bioperl/bioperl-live/doc/howto/txt/Beginners.txt,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Beginners.txt 27 Oct 2005 02:21:32 -0000 1.7 --- Beginners.txt 6 Dec 2005 22:46:54 -0000 1.8 *************** *** 286,290 **** use Bio::Seq; ! $seq_obj = Bio::Seq->new(-seq => "aaaatgggggggggggccccgtt" -alphabet => 'dna' ); --- 286,290 ---- use Bio::Seq; ! $seq_obj = Bio::Seq->new(-seq => "aaaatgggggggggggccccgtt", -alphabet => 'dna' ); *************** *** 826,840 **** And here are the values: ! Method Returns ! display_id gi|147605|gb|J01673.1|ECORHO ! desc E.coli rho gene coding for transcription termination factor display_name gi|147605|gb|J01673.1|ECORHO ! accession unknown ! primary_id gi|147605|gb|J01673.1|ECORHO ! is_circular ! namespace ! authority ! length 1880 ! seq AACCCT...ACAGGAC Table 4. Values from the Sequence object (FASTA) --- 826,840 ---- And here are the values: ! Method Returns ! display_id gi|147605|gb|J01673.1|ECORHO ! desc E.coli rho gene coding for transcription termination factor display_name gi|147605|gb|J01673.1|ECORHO ! accession unknown ! primary_id gi|147605|gb|J01673.1|ECORHO ! is_circular ! namespace ! authority ! length 1880 ! seq AACCCT...ACAGGAC Table 4. Values from the Sequence object (FASTA) *************** *** 853,856 **** --- 853,857 ---- and formats all the [95]Bioperl authors can do is do make reasonable choices. + [Note] Note *************** *** 1262,1267 **** 2. The [129]Bioperl design documentation, for anyone who'd like to write their own modules. ! BioPerl DocBook ([130]BioPerl) References --- 1263,1270 ---- 2. The [129]Bioperl design documentation, for anyone who'd like to write their own modules. + 3. The [130]ENSEMBL Perl API, a way of accessing ENSEMBL's genomics + data, in a manner very much like Bioperl. ! BioPerl DocBook ([131]BioPerl) References *************** *** 1396,1398 **** 128. http://www.manning.com/Conway/ 129. http://bioperl.org/Core/Latest/biodesign.html ! 130. http://bioperl.org/ --- 1399,1402 ---- 128. http://www.manning.com/Conway/ 129. http://bioperl.org/Core/Latest/biodesign.html ! 130. http://www.ensembl.org/info/software/core/core_tutorial.html ! 131. http://bioperl.org/ From bosborne at pub.open-bio.org Tue Dec 6 17:46:57 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Tue Dec 6 17:41:21 2005 Subject: [Bioperl-guts-l] bioperl-live/doc/howto/xml/xsl/html table.xsl, 1.1, 1.2 Message-ID: <200512062246.jB6MkvVL025779@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/doc/howto/xml/xsl/html In directory pub.open-bio.org:/tmp/cvs-serv25723/xml/xsl/html Modified Files: table.xsl Log Message: Typo Index: table.xsl =================================================================== RCS file: /home/repository/bioperl/bioperl-live/doc/howto/xml/xsl/html/table.xsl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** table.xsl 13 Aug 2005 02:18:19 -0000 1.1 --- table.xsl 6 Dec 2005 22:46:54 -0000 1.2 *************** *** 408,412 **** ! No adjustColumnWidths function available. --- 408,412 ---- ! No adjustColumnWidths function available. From bosborne at pub.open-bio.org Tue Dec 6 17:46:56 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Tue Dec 6 17:41:31 2005 Subject: [Bioperl-guts-l] bioperl-live/doc/howto/xml Beginners.xml, 1.10, 1.11 Feature-Annotation.xml, 1.13, 1.14 Message-ID: <200512062246.jB6MkuVL025774@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/doc/howto/xml In directory pub.open-bio.org:/tmp/cvs-serv25723/xml Modified Files: Beginners.xml Feature-Annotation.xml Log Message: Typo Index: Beginners.xml =================================================================== RCS file: /home/repository/bioperl/bioperl-live/doc/howto/xml/Beginners.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Beginners.xml 29 Nov 2005 16:30:48 -0000 1.10 --- Beginners.xml 6 Dec 2005 22:46:54 -0000 1.11 *************** *** 505,509 **** use Bio::Seq; ! $seq_obj = Bio::Seq->new(-seq => "aaaatgggggggggggccccgtt" -alphabet => 'dna' ); --- 505,509 ---- use Bio::Seq; ! $seq_obj = Bio::Seq->new(-seq => "aaaatgggggggggggccccgtt", -alphabet => 'dna' ); Index: Feature-Annotation.xml =================================================================== RCS file: /home/repository/bioperl/bioperl-live/doc/howto/xml/Feature-Annotation.xml,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Feature-Annotation.xml 29 Nov 2005 16:53:14 -0000 1.13 --- Feature-Annotation.xml 6 Dec 2005 22:46:54 -0000 1.14 *************** *** 16,20 **** Osborne !
osborne1 at optonline.net --- 16,20 ---- Osborne !
osborne1 at optonline.net *************** *** 57,61 **** to be essential for the proper transcriptional regulation of a gene, or a particular amino acid sequence may bind a particular ! ion. This simple idea turns out to be a bit more complicated in the bioinformatics world where there's a need to represent the actual data in all its varied forms. The promoter region may not be precisely --- 57,61 ---- to be essential for the proper transcriptional regulation of a gene, or a particular amino acid sequence may bind a particular ! ion, for example. This simple idea turns out to be a bit more complicated in the bioinformatics world where there's a need to represent the actual data in all its varied forms. The promoter region may not be precisely *************** *** 77,81 **** The HOWTO will discuss these objects and the differences between them. There's also discussion of how to get useful data from these ! objects and discuss the basics of how to annotate sequence using the objects. --- 77,81 ---- The HOWTO will discuss these objects and the differences between them. There's also discussion of how to get useful data from these ! objects and the basics of how to create your own sequence annotations using the objects. *************** *** 84,88 ****
The Basics ! Some Bioperl neophytes may also be new to object-oriented programming (OOP) and this notion of an object. OOP is not the --- 84,88 ----
The Basics ! Some Bioperl neophytes may also be new to object-oriented programming (OOP) and this notion of an object. OOP is not the *************** *** 96,100 **** together to create an "annotated sequence object". You could then tell this object to make a version of itself as a file, or pass this ! object to a "database object" for entry. This is a very flexible and logical way to design a complex piece of software like Bioperl, since each part of the system can be created and evaluated separately. --- 96,101 ---- together to create an "annotated sequence object". You could then tell this object to make a version of itself as a file, or pass this ! object to a "database object" in order to enter some data into the ! database. This is a very flexible and logical way to design a complex piece of software like Bioperl, since each part of the system can be created and evaluated separately. From amackey at pub.open-bio.org Tue Dec 6 21:18:59 2005 From: amackey at pub.open-bio.org (Aaron J Mackey) Date: Tue Dec 6 21:13:15 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Graphics/Glyph protein.pm, NONE, 1.1 Message-ID: <200512070219.jB72IxVL026400@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Graphics/Glyph In directory pub.open-bio.org:/tmp/cvs-serv26391 Added Files: protein.pm Log Message: initial Kyte-Doolittle hydropathy plot glyph --- NEW FILE: protein.pm --- package Bio::Graphics::Glyph::protein; use strict; use Bio::Graphics::Glyph::generic; use vars '@ISA'; @ISA = qw(Bio::Graphics::Glyph::generic); # turn off description sub description { 0 } # turn off label # sub label { 1 } sub height { my $self = shift; my $font = $self->font; return $self->dna_fits ? 2 * $font->height : $self->do_kd ? $self->SUPER::height : 0; } sub do_kd { my $self = shift; my $do_kd = $self->option('do_kd'); return if defined($do_kd) && !$do_kd; return 1; } sub draw_component { my $self = shift; my $gd = shift; my ($x1,$y1,$x2,$y2) = $self->bounds(@_); my $protein = eval { $self->feature->seq }; $protein = $protein->seq if ref($protein) and $protein->can('seq'); # to catch Bio::PrimarySeqI objects $protein or return; # workaround for my misreading of interface -- LS $protein = $protein->seq if ref($protein) && $protein->can('seq'); if ($self->dna_fits) { $self->draw_protein($gd,$protein,$x1,$y1,$x2,$y2); } elsif ($self->do_kd) { $self->draw_kd_plot($gd,$protein,$x1,$y1,$x2,$y2); } } sub draw_protein { my $self = shift; my ($gd,$protein,$x1,$y1,$x2,$y2) = @_; my $pixels_per_base = $self->scale; my $feature = $self->feature; my @bases = split '', $protein; my $color = $self->fgcolor; my $font = $self->font; my $lineheight = $font->height; $y1 -= $lineheight/2 - 3; my $start = $self->panel->left + $self->map_pt($feature->start); my $end = $self->panel->left + $self->map_pt($feature->end); my $offset = int(($x1-$start-1)/$pixels_per_base); for (my $i=$offset;$i<@bases;$i++) { my $x = $start + $i * $pixels_per_base; next if $x+1 < $x1; last if $x > $x2; $gd->char($font,$x+2,$y1,$bases[$i],$color); } } sub draw_kd_plot { my $self = shift; my $gd = shift; my $protein = shift; my ($x1,$y1,$x2,$y2) = @_; my $kd_window = $self->option('kd_window') || 9; # Calculate the KD plot ... my %scores = ( I => 4.5, V => 4.2, L => 3.8, F => 2.8, C => 2.5, M => 1.9, A => 1.8, G => -0.4, T => -0.7, W => -0.9, S => -0.8, Y => -1.3, P => -1.6, H => -3.2, E => -3.5, Q => -3.5, D => -3.5, N => -3.5, K => -3.9, R => -4.5, ); my @datapoints; my $maxkd; my $minkd; my @seq = split('', uc($protein)); $kd_window = $kd_window < scalar(@seq) ? $kd_window : scalar(@seq); my $kd = 0; for (my $i = 0 ; $i < @seq && $i < $kd_window ; $i++) { $kd += $scores{$seq[$i]} || 0; } my $content = $kd / $kd_window; push @datapoints, $content; $maxkd = $minkd = $content; for (my $i = $kd_window; $i < @seq; $i++) { $kd -= $scores{$seq[$i-1]} || 0; $kd += $scores{$seq[$i]} || 0; $content = $kd / $kd_window; push @datapoints, $content; $maxkd = $content if ($content > $maxkd); $minkd = $content if ($content < $minkd); } #my $scale = $maxkd - $minkd; #foreach (my $i; $i < @datapoints; $i++) { # $datapoints[$i] = ($datapoints[$i] - $minkd) / $scale; #} #$maxkd = int($maxkd * 100); #$minkd = int($minkd * 100); # Calculate values that will be used in the layout my $bin_height = $y2-$y1; my $fgcolor = $self->fgcolor; my $bgcolor = $self->factory->translate_color($self->panel->gridcolor); my $axiscolor = $self->color('axis_color') || $fgcolor; # Draw the axes $gd->line($x1, $y1, $x1, $y2, $axiscolor); $gd->line($x2-2,$y1, $x2-2,$y2, $axiscolor); $gd->line($x1, $y1, $x1+3,$y1, $axiscolor); $gd->line($x1, $y2, $x1+3,$y2, $axiscolor); $gd->line($x1, ($y2+$y1)/2,$x1+3,($y2+$y1)/2,$axiscolor); $gd->line($x2-4,$y1, $x2-1, $y1, $axiscolor); $gd->line($x2-4,$y2, $x2-1, $y2, $axiscolor); $gd->line($x2-4,($y2+$y1)/2,$x2-1,($y2+$y1)/2,$axiscolor); $gd->line($x1+5,$y2, $x2-5,$y2, $bgcolor); $gd->line($x1+5,($y2+$y1)/2,$x2-5,($y2+$y1)/2,$bgcolor); $gd->line($x1+5,$y1, $x2-5,$y1, $bgcolor); $gd->string($self->font,$x1+5,$y1,'KD hydropathy',$axiscolor) if $bin_height > $self->font->height*2; $gd->string($self->font,$x2-20,$y1,$maxkd,$axiscolor) if $bin_height > $self->font->height*2.5; $gd->string($self->font,$x2-20,$y2-$self->font->height,$minkd,$axiscolor) if $bin_height > $self->font->height*2.5; my $graphwidth = $x2 - $x1; my $scale = $graphwidth / @datapoints; for (my $i = 1; $i < @datapoints; $i++) { my $x = $i + $kd_window / 2; my $xlo = $x1 + ($x - 1) * $scale; my $xhi = $x1 + $x * $scale; my $y = $y2 - ($bin_height*$datapoints[$i]); $gd->line($xlo, $y2 - ($bin_height*$datapoints[$i-1]), $xhi, $y, $fgcolor); } } sub make_key_feature { my $self = shift; my @gatc = qw(A C D E F G H I K L M N P Q R S T V W Y); my $offset = $self->panel->offset; my $scale = 1/$self->scale; # base pairs/pixel my $start = $offset+1; my $stop = $offset+100*$scale; my $feature = Bio::Graphics::Feature->new(-start=> $start, -stop => $stop, -seq => join('',map{$gatc[rand 4]} (1..500)), -name => $self->option('key'), -strand => '+1', ); $feature; } 1; __END__ =head1 NAME Bio::Graphics::Glyph::protein - The "protein" glyph =head1 SYNOPSIS See L and L. =head1 DESCRIPTION This glyph draws protein sequences. At high magnifications, this glyph will draw the actual amino acids of the sequence. At low magnifications, the glyph will plot the Kyte-Doolite hydropathy. By default, the KD plot will use a window size of 9 residues, but this can be changed by specifying the kd_window option. For this glyph to work, the feature must return a protein sequence string in response to the seq() method. =head2 OPTIONS The following options are standard among all Glyphs. See L for a full explanation. Option Description Default ------ ----------- ------- -fgcolor Foreground color black -outlinecolor Synonym for -fgcolor -bgcolor Background color turquoise -fillcolor Synonym for -bgcolor -linewidth Line width 1 -height Height of glyph 10 -font Glyph font gdSmallFont -connector Connector type 0 (false) -connector_color Connector color black -label Whether to draw a label 0 (false) -description Whether to draw a description 0 (false) -hilite Highlight color undef (no color) In addition to the common options, the following glyph-specific options are recognized: Option Description Default ------ ----------- ------- -do_kd Whether to draw the Kyte- true Doolittle hydropathy plot at low mags -kd_window Size of the sliding window 9 to use in the KD hydropathy calculation. -axis_color Color of the vertical axes fgcolor in the KD hydropathy plot =head1 BUGS Please report them. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L =head1 AUTHOR Aaron J. Mackey, based on the "dna" glyphy by Lincoln Stein Elstein@cshl.orgE and Peter Ashton Epda@sanger.ac.ukE. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See DISCLAIMER.txt for disclaimers of warranty. =cut From amackey at pub.open-bio.org Tue Dec 6 23:05:40 2005 From: amackey at pub.open-bio.org (Aaron J Mackey) Date: Tue Dec 6 23:00:37 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Graphics/Glyph protein.pm, 1.1, 1.2 Message-ID: <200512070405.jB745eVL026657@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Graphics/Glyph In directory pub.open-bio.org:/tmp/cvs-serv26648 Modified Files: protein.pm Log Message: now it works, enjoy Index: protein.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Graphics/Glyph/protein.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** protein.pm 7 Dec 2005 02:18:57 -0000 1.1 --- protein.pm 7 Dec 2005 04:05:38 -0000 1.2 *************** *** 108,141 **** my @datapoints; - my $maxkd; - my $minkd; - my @seq = split('', uc($protein)); $kd_window = $kd_window < scalar(@seq) ? $kd_window : scalar(@seq); my $kd = 0; for (my $i = 0 ; $i < @seq && $i < $kd_window ; $i++) { $kd += $scores{$seq[$i]} || 0; } my $content = $kd / $kd_window; push @datapoints, $content; - $maxkd = $minkd = $content; for (my $i = $kd_window; $i < @seq; $i++) { ! $kd -= $scores{$seq[$i-1]} || 0; $kd += $scores{$seq[$i]} || 0; $content = $kd / $kd_window; push @datapoints, $content; - $maxkd = $content if ($content > $maxkd); - $minkd = $content if ($content < $minkd); } ! #my $scale = $maxkd - $minkd; ! #foreach (my $i; $i < @datapoints; $i++) { ! # $datapoints[$i] = ($datapoints[$i] - $minkd) / $scale; ! #} ! #$maxkd = int($maxkd * 100); ! #$minkd = int($minkd * 100); # Calculate values that will be used in the layout --- 108,137 ---- my @datapoints; my @seq = split('', uc($protein)); $kd_window = $kd_window < scalar(@seq) ? $kd_window : scalar(@seq); + my $maxkd = 4.5; + my $minkd = -4.5; + my $kd = 0; for (my $i = 0 ; $i < @seq && $i < $kd_window ; $i++) { $kd += $scores{$seq[$i]} || 0; } + my $content = $kd / $kd_window; push @datapoints, $content; for (my $i = $kd_window; $i < @seq; $i++) { ! $kd -= $scores{$seq[$i-$kd_window]} || 0; $kd += $scores{$seq[$i]} || 0; $content = $kd / $kd_window; push @datapoints, $content; } ! my $scale = $maxkd - $minkd; ! foreach (my $i = 0; $i < @datapoints; $i++) { ! $datapoints[$i] = ($datapoints[$i] - $minkd) / $scale; ! } # Calculate values that will be used in the layout *************** *** 159,163 **** $gd->line($x1+5,($y2+$y1)/2,$x2-5,($y2+$y1)/2,$bgcolor); $gd->line($x1+5,$y1, $x2-5,$y1, $bgcolor); ! $gd->string($self->font,$x1+5,$y1,'KD hydropathy',$axiscolor) if $bin_height > $self->font->height*2; $gd->string($self->font,$x2-20,$y1,$maxkd,$axiscolor) --- 155,160 ---- $gd->line($x1+5,($y2+$y1)/2,$x2-5,($y2+$y1)/2,$bgcolor); $gd->line($x1+5,$y1, $x2-5,$y1, $bgcolor); ! $gd->string($self->font,$x1+5,$y1,'Kyte-Doolittle hydropathy plot',$axiscolor) ! if $bin_height > $self->font->height*2; $gd->string($self->font,$x2-20,$y1,$maxkd,$axiscolor) *************** *** 167,171 **** my $graphwidth = $x2 - $x1; ! my $scale = $graphwidth / @datapoints; for (my $i = 1; $i < @datapoints; $i++) { my $x = $i + $kd_window / 2; --- 164,168 ---- my $graphwidth = $x2 - $x1; ! my $scale = $graphwidth / (@datapoints + $kd_window - 1); for (my $i = 1; $i < @datapoints; $i++) { my $x = $i + $kd_window / 2; From bugzilla-daemon at portal.open-bio.org Wed Dec 7 12:45:03 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Wed Dec 7 12:58:19 2005 Subject: [Bioperl-guts-l] [Bug 1915] Tranditional bootstrap in newick format tree not accesible Message-ID: <200512071745.jB7Hj3sP019514@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1915 ------- Comment #1 from valentin_ruano@yahoo.es 2005-12-07 12:45 ------- Created an attachment (id=257) --> (http://bugzilla.open-bio.org/attachment.cgi?id=257&action=view) Contains small script to reproduce the bug bug.pl - program file tree.in - first test input tree tree2.in - second test input tree run $ perl bug.pl and notice the output for the branch/node with branch length 0.33. You need to take a look to the input tree files (*.in) to see what is going on. ------- 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 Wed Dec 7 12:41:12 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Wed Dec 7 12:58:21 2005 Subject: [Bioperl-guts-l] [Bug 1915] New: Tranditional bootstrap in newick format tree not accesible Message-ID: <200512071741.jB7HfC8a019446@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1915 Summary: Tranditional bootstrap in newick format tree not accesible Product: Bioperl Version: 1.5 branch Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Core Components AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: valentin_ruano@yahoo.es In the default bootstrap-style for newick format trees, internal node bootstrap are indicated as the id of the node: ((A:0.11,B:0.22)100:0.33,C:0.44,D:0.55) In here the node leading to A and B has bootstrap 100. Notice that the branch-length is optional (:0.33 can be left out). Trying to obtain the bootstrap value on that node through the NodeI api will return and undefined value. In fact the bootstrap value is interpreted as the node's id. Moreover, if the molphy style ..):0.33[100]... is used even explicitly indicating traditional style. the bootstrap value is properly recovered. This seem to indicate that the bootstrap-style property of newick TreeIO object is actually disregarded. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Tue Dec 6 17:46:56 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Wed Dec 7 13:07:41 2005 Subject: [Bioperl-guts-l] bioperl-live/doc/howto/html Beginners.html, 1.7, 1.8 Feature-Annotation.html, 1.17, 1.18 Message-ID: <200512062246.jB6MkuVL025760@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/doc/howto/html In directory pub.open-bio.org:/tmp/cvs-serv25723/html Modified Files: Beginners.html Feature-Annotation.html Log Message: Typo Index: Beginners.html =================================================================== RCS file: /home/repository/bioperl/bioperl-live/doc/howto/html/Beginners.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Beginners.html 27 Oct 2005 02:21:32 -0000 1.7 --- Beginners.html 6 Dec 2005 22:46:53 -0000 1.8 *************** *** 317,321 **** use Bio::Seq; ! $seq_obj = Bio::Seq->new(-seq => "aaaatgggggggggggccccgtt" -alphabet => 'dna' ); --- 317,321 ---- use Bio::Seq; ! $seq_obj = Bio::Seq->new(-seq => "aaaatgggggggggggccccgtt", -alphabet => 'dna' ); *************** *** 714,718 ****

!

! \s+!, $doc; foreach my $record ( @records ) { my ($platform_acc,$name,$tax_acc,$contact_acc) = $record =~ m!acc\.cgi\?acc=(.+?)".+?(.+?)<.+?.+?<.+?.+?href=".+?id=(.+?)".+?new( -accession => $platform_acc, -name => $name, # -taxon => $self->taxdb->get_Taxonomy_Node( $tax_acc ), -contact => Bio::Expression::Contact->new( -source => 'geo', -accession => $contact_acc, -db => $self ), -db => $self, ); push @platforms, $platform; } return @platforms; } =head2 get_samples() Usage : Function: Example : Returns : a list of Bio::Expression::Sample objects Args : =cut sub get_samples { my ($self,@args) = @_; $self->throw_not_implemented(); } =head2 get_contacts() Usage : Function: Example : Returns : a list of Bio::Expression::Contact objects Args : =cut sub get_contacts { my ($self,@args) = @_; $self->throw_not_implemented(); } =head2 get_datasets() Usage : $db->get_datasets('accession'); Function: Example : Returns : a list of Bio::Expression::DataSet objects Args : =cut sub get_datasets { my ($self,$platform) = @_; my @lines = split /\n/, $self->_get_url( URL_PLATFORM . $platform->accession ); my @datasets = (); foreach my $line ( @lines ) { my ($dataset_acc) = $line =~ /^\!Platform_series_id = (\S+)/; next unless $dataset_acc; my $dataset = Bio::Expression::DataSet->new( -accession => $dataset_acc, -platform => $platform, -db => $self, ); push @datasets, $dataset; } return @datasets; } sub fill_sample { my ( $self, $sample ) = @_; my @lines = split /\n/, $self->_get_url( URL_SAMPLE. $sample->accession ); foreach my $line ( @lines ) { if ( my ($name) = $line =~ /^\!Sample_title = (\S+)/ ) { $sample->name( $name ); } elsif ( my ($desc) = $line =~ /^\!Sample_characteristics.*? = (\S+)/ ) { $sample->description( $desc ); } elsif ( my ($source_name) = $line =~ /^\!Sample_source_name.*? = (\S+)/ ) { $sample->source_name( $source_name ); } elsif ( my ($treatment_desc) = $line =~ /^\!Sample_treatment_protocol.*? = (\S+)/ ) { $sample->treatment_description( $treatment_desc ); } } return 1; } sub fill_dataset { my ( $self, $dataset ) = @_; my @lines = split /\n/, $self->_get_url( URL_DATASET . $dataset->accession ); my @samples = (); foreach my $line ( @lines ) { if ( my ($sample_acc) = $line =~ /^\!Series_sample_id = (\S+)/ ) { my $sample = Bio::Expression::Sample->new( -accession => $sample_acc, -dataset => $dataset, -db => $self, ); push @samples, $sample; } elsif ( my ($pubmed_acc) = $line =~ /^\!Series_pubmed_id = (\S+)/ ) { $dataset->pubmed_id( $pubmed_acc ); } elsif ( my ($web_link) = $line =~ /^\!Series_web_link = (\S+)/ ) { $dataset->web_link( $web_link ); } elsif ( my ($contact) = $line =~ /^\!Series_contact_name = (\S+)/ ) { $dataset->contact( $contact ); } elsif ( my ($name) = $line =~ /^\!Series_title = (.+)$/ ) { $dataset->name( $name ); } elsif ( my ($desc) = $line =~ /^\!Series_summary = (.+)$/ ) { $dataset->description( $desc ); } elsif ( my ($design) = $line =~ /^\!Series_type = (.+)$/ ) { $dataset->design( $design ); } elsif ( my ($design_desc) = $line =~ /^\!Series_overall_design = (.+)$/ ) { $dataset->design_description( $design_desc ); } } $dataset->samples(\@samples); } ################################################# =head2 taxdb() Usage : $obj->taxdb($newval) Function: Example : Returns : a Bio::DB::Taxonomy object Args : on set, new value (a scalar or undef, optional) =cut sub taxdb { my($self,$val) = @_; $self->{'taxdb'} = $val if defined($val); return $self->{'taxdb'}; } =head2 _platforms_doc() Usage : Function: Example : Returns : an HTML document containing a table of all platforms Args : =cut sub _get_url { my ($self,$url) = @_; my $response; eval { $response = $self->get( $url ); }; if( $@ ) { $self->warn("Can't query website: $@"); return; } $self->debug( "resp is $response\n") if( $self->verbose > 0); return $response; } 1; From ymc at pub.open-bio.org Thu Dec 8 13:36:01 2005 From: ymc at pub.open-bio.org (Yee Man Chan) Date: Thu Dec 8 13:29:54 2005 Subject: [Bioperl-guts-l] bioperl-ext/Bio/Ext/HMM hmmlib.c,1.2,1.3 Message-ID: <200512081836.jB8Ia1VL032222@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-ext/Bio/Ext/HMM In directory pub.open-bio.org:/tmp/cvs-serv32207 Modified Files: hmmlib.c Log Message: also included to get rid of warnings when I am calling strlen Index: hmmlib.c =================================================================== RCS file: /home/repository/bioperl/bioperl-ext/Bio/Ext/HMM/hmmlib.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** hmmlib.c 22 Jul 2005 22:33:44 -0000 1.2 --- hmmlib.c 8 Dec 2005 18:35:58 -0000 1.3 *************** *** 3,6 **** --- 3,7 ---- #include #include + #include #include #include "hmm.h" From tseemann at pub.open-bio.org Thu Dec 8 17:10:45 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Thu Dec 8 17:04:39 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools OddCodes.pm,1.14,1.15 Message-ID: <200512082210.jB8MAjVL032661@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv32631/Bio/Tools Modified Files: OddCodes.pm Log Message: Cleaned up documentation and improved method examples Index: OddCodes.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/OddCodes.pm,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** OddCodes.pm 27 Sep 2005 14:10:59 -0000 1.14 --- OddCodes.pm 8 Dec 2005 22:10:43 -0000 1.15 *************** *** 68,72 **** Bio::Tools::Oddcodes is a welterweight object for rewriting a protein ! sequence in an alternative alphabet. 8 of these are provided, ranging from the the 2-letter hydrophobic alphabet, to the 8-letter chemical alphabet. These are useful for the statistical analysis of protein --- 68,72 ---- Bio::Tools::Oddcodes is a welterweight object for rewriting a protein ! sequence in an alternative alphabet. Eight of these are provided, ranging from the the 2-letter hydrophobic alphabet, to the 8-letter chemical alphabet. These are useful for the statistical analysis of protein *************** *** 77,83 **** The objects will print out a warning if the input sequence is not a protein. If you know what you are doing, you can silence the warning ! by setting verbose() to a negetive value. ! See Synopsis above for object creation code. =head1 FEEDBACK --- 77,92 ---- The objects will print out a warning if the input sequence is not a protein. If you know what you are doing, you can silence the warning ! by setting verbose() to a negative value. ! See SYNOPSIS above for object creation code. ! ! =head1 REFERENCES ! ! Stanfel LE (1996) A new approach to clustering the amino acids. J. theor. ! Biol. 183, 195-205. ! ! Karlin S, Ost F and Blaisdell BE (1989) Patterns in DNA and amino acid ! sequences and their statistical significance. Chapter 6 of: Mathematical ! Methods for DNA Sequences. Waterman MS (ed.) CRC Press, Boca Raton , FL. =head1 FEEDBACK *************** *** 112,117 **** =cut - #' - package Bio::Tools::OddCodes; use vars qw(@ISA); --- 121,124 ---- *************** *** 122,126 **** @ISA = qw(Bio::Root::Root); - sub new { --- 129,132 ---- *************** *** 134,141 **** $seqobj = $args[0]; } ! unless ($seqobj->isa("Bio::PrimarySeqI")) { ! die("die in _init, OddCodes works only on PrimarySeqI ! objects\n"); } --- 140,146 ---- $seqobj = $args[0]; } ! unless ($seqobj->isa("Bio::PrimarySeqI")) { ! $self->throw("Bio::Tools::OddCodes only works on PrimarySeqI objects"); } *************** *** 244,247 **** --- 249,254 ---- Function: turns amino acid sequence into 6-letter Dayhoff alphabet Example : a sequence ACDEFGH will become CADDGCE + : A (=C), C (=AGPST), D (=DENQ), + : E (=HKR), F (=ILMV), G (=FWY) Returns : Reference to the new sequence string Args : none *************** *** 280,283 **** --- 287,292 ---- Function: turns amino acid sequence into 7-letter Sneath alphabet Example : a sequence ACDEFGH will become CEFFHCF + : A (=ILV), C (=AGP), D (=MNQ), E (=CST), + : F (=DE), G (=KR), H (=FHWY) Returns : Reference to the new sequence string Args : none *************** *** 318,321 **** --- 327,331 ---- Function: turns amino acid sequence into 4-letter Stanfel alphabet Example : a sequence ACDEFGH will become AACCDAE + : A (=ACGILMPSTV), C (=DENQ), D (=FWY), E (=HKR) Returns : Reference to the new sequence string Args : none *************** *** 344,348 **** } ! =head2 chemical() Title : chemical --- 354,358 ---- } ! =head2 chemical Title : chemical *************** *** 350,354 **** Function: turns amino acid sequence into 8-letter chemical alphabet : A (acidic), L (aliphatic), M (amide), R (aromatic) ! : C (basic), H (hydroxyl), I (imino), S (sulphur) Example : a sequence ACDEFGH will become LSAARAC Returns : Reference to the new sequence string --- 360,364 ---- Function: turns amino acid sequence into 8-letter chemical alphabet : A (acidic), L (aliphatic), M (amide), R (aromatic) ! : C (basic), H (hydroxyl), I (imino), S (sulphur) Example : a sequence ACDEFGH will become LSAARAC Returns : Reference to the new sequence string *************** *** 392,395 **** --- 402,406 ---- Function: turns amino acid sequence into 3-letter charge alphabet Example : a sequence ACDEFGH will become NNAANNC + : A (negative; NOT anode), C (positive; NOT cathode), N (neutral) Returns : Reference to the new sequence string Args : none From bosborne at pub.open-bio.org Thu Dec 8 17:28:25 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 8 17:22:17 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/SeqIO embl.pm,1.86,1.87 Message-ID: <200512082228.jB8MSPVL032723@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/SeqIO In directory pub.open-bio.org:/tmp/cvs-serv32714/Bio/SeqIO Modified Files: embl.pm Log Message: throw, not die Index: embl.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO/embl.pm,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -d -r1.86 -r1.87 *** embl.pm 10 Aug 2005 19:00:11 -0000 1.86 --- embl.pm 8 Dec 2005 22:28:23 -0000 1.87 *************** *** 1091,1095 **** my ($self,$pre1,$pre2,$line,$length) = @_; ! $length || die "Miscalled write_line_EMBL without length. Programming error!"; my $subl = $length - length $pre2; my $linel = length $line; --- 1091,1095 ---- my ($self,$pre1,$pre2,$line,$length) = @_; ! $length || $self->throw("Miscalled write_line_EMBL without length. Programming error!"); my $subl = $length - length $pre2; my $linel = length $line; *************** *** 1129,1133 **** #print STDOUT "Going to print with $line!\n"; ! $length || die "Programming error - called write_line_EMBL_regex without length."; my $subl = $length - (length $pre1) -1 ; --- 1129,1133 ---- #print STDOUT "Going to print with $line!\n"; ! $length || $self->throw("Programming error - called write_line_EMBL_regex without length."); my $subl = $length - (length $pre1) -1 ; From allenday at pub.open-bio.org Thu Dec 8 17:30:29 2005 From: allenday at pub.open-bio.org (Allen Day) Date: Thu Dec 8 17:24:22 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Expression Contact.pm, 1.1, 1.2 Platform.pm, 1.1, 1.2 Message-ID: <200512082230.jB8MUTVL032759@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Expression In directory pub.open-bio.org:/tmp/cvs-serv32736/Bio/Expression Modified Files: Contact.pm Platform.pm Log Message: updates to parsing code and lazy loading of object attributes Index: Platform.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Expression/Platform.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Platform.pm 8 Dec 2005 02:30:35 -0000 1.1 --- Platform.pm 8 Dec 2005 22:30:27 -0000 1.2 *************** *** 66,69 **** --- 66,70 ---- use strict; use base qw(Bio::Root::Root); + use Bio::DB::Taxonomy; =head2 new() *************** *** 118,121 **** --- 119,123 ---- } + $self->taxdb( Bio::DB::Taxonomy->new(-source => 'entrez') ); return 1; } *************** *** 123,128 **** - - =head2 get_datasets() --- 125,128 ---- *************** *** 194,202 **** =head2 taxon() ! Usage : $obj->taxon($newval) Function: Example : ! Returns : value of taxon (a scalar) ! Args : on set, new value (a scalar or undef, optional) --- 194,202 ---- =head2 taxon() ! Usage : $obj->taxon() Function: Example : ! Returns : A Bio::Taxonomy::Node object ! Args : none *************** *** 204,209 **** sub taxon { ! my($self,$val) = @_; ! $self->{'taxon'} = $val if defined($val); return $self->{'taxon'}; } --- 204,211 ---- sub taxon { ! my($self) = @_; ! if ( ! $self->{'taxon'} ) { ! $self->{'taxon'} = $self->taxdb->get_Taxonomy_Node( $self->_taxon_id() ); ! } return $self->{'taxon'}; } *************** *** 242,245 **** --- 244,282 ---- return $self->{'db'}; } + + =head2 _taxon_id() + + Usage : $obj->_taxon_id($newval) + Function: + Example : + Returns : value of _taxon_id (a scalar) + Args : on set, new value (a scalar or undef, optional) + + + =cut + + sub _taxon_id { + my($self,$val) = @_; + $self->{'_taxon_id'} = $val if defined($val); + return $self->{'_taxon_id'}; + } + + =head2 taxdb() + + Usage : $obj->taxdb($newval) + Function: + Example : + Returns : a Bio::DB::Taxonomy object + Args : on set, new value (a scalar or undef, optional) + + + =cut + + sub taxdb { + my($self,$val) = @_; + $self->{'taxdb'} = $val if defined($val); + return $self->{'taxdb'}; + } + Index: Contact.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Expression/Contact.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Contact.pm 8 Dec 2005 02:30:35 -0000 1.1 --- Contact.pm 8 Dec 2005 22:30:27 -0000 1.2 *************** *** 81,84 **** --- 81,85 ---- my $self = $class->SUPER::new(@args); + $self->_initialize(@args); return $self; } *************** *** 152,155 **** --- 153,173 ---- $self->{'accession'} = $val if defined($val); return $self->{'accession'}; + } + + =head2 name() + + Usage : $obj->name($newval) + Function: + Example : + Returns : value of name (a scalar) + Args : on set, new value (a scalar or undef, optional) + + + =cut + + sub name { + my($self,$val) = @_; + $self->{'name'} = $val if defined($val); + return $self->{'name'}; } From allenday at pub.open-bio.org Thu Dec 8 17:30:29 2005 From: allenday at pub.open-bio.org (Allen Day) Date: Thu Dec 8 17:24:23 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB/Expression geo.pm,1.1,1.2 Message-ID: <200512082230.jB8MUTVL032764@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB/Expression In directory pub.open-bio.org:/tmp/cvs-serv32736/Bio/DB/Expression Modified Files: geo.pm Log Message: updates to parsing code and lazy loading of object attributes Index: geo.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/Expression/geo.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** geo.pm 8 Dec 2005 02:30:35 -0000 1.1 --- geo.pm 8 Dec 2005 22:30:27 -0000 1.2 *************** *** 44,48 **** our $VERSION = '0.01'; - use Bio::DB::Taxonomy; use Bio::Expression::Contact; use Bio::Expression::DataSet; --- 44,47 ---- *************** *** 88,93 **** } - $self->taxdb( Bio::DB::Taxonomy->new(-source => 'entrez') ); - return 1; } --- 87,90 ---- *************** *** 113,118 **** foreach my $record ( @records ) { ! my ($platform_acc,$name,$tax_acc,$contact_acc) = ! $record =~ m!acc\.cgi\?acc=(.+?)".+?(.+?)<.+?.+?<.+?.+?href=".+?id=(.+?)".+?(.+?)<.+?.+?<.+?.+?href=".+?id=(.+?)".+?(.+?) $platform_acc, -name => $name, ! # -taxon => $self->taxdb->get_Taxonomy_Node( $tax_acc ), ! -contact => Bio::Expression::Contact->new( -source => 'geo', -accession => $contact_acc, -db => $self ), -db => $self, ); --- 117,127 ---- -accession => $platform_acc, -name => $name, ! -_taxon_id => $tax_acc, ! -contact => Bio::Expression::Contact->new( ! -source => 'geo', ! -accession => $contact_acc, ! -name => $contact_name, ! -db => $self ! ), -db => $self, ); *************** *** 178,182 **** foreach my $line ( @lines ) { ! my ($dataset_acc) = $line =~ /^\!Platform_series_id = (\S+)/; next unless $dataset_acc; --- 180,184 ---- foreach my $line ( @lines ) { ! my ($dataset_acc) = $line =~ /^\!Platform_series_id = (\S+?)\s*$/; next unless $dataset_acc; *************** *** 199,212 **** foreach my $line ( @lines ) { ! if ( my ($name) = $line =~ /^\!Sample_title = (\S+)/ ) { $sample->name( $name ); } ! elsif ( my ($desc) = $line =~ /^\!Sample_characteristics.*? = (\S+)/ ) { $sample->description( $desc ); } ! elsif ( my ($source_name) = $line =~ /^\!Sample_source_name.*? = (\S+)/ ) { $sample->source_name( $source_name ); } ! elsif ( my ($treatment_desc) = $line =~ /^\!Sample_treatment_protocol.*? = (\S+)/ ) { $sample->treatment_description( $treatment_desc ); } --- 201,214 ---- foreach my $line ( @lines ) { ! if ( my ($name) = $line =~ /^\!Sample_title = (.+?)\s*$/ ) { $sample->name( $name ); } ! elsif ( my ($desc) = $line =~ /^\!Sample_characteristics.*? = (.+?)\s*$/ ) { $sample->description( $desc ); } ! elsif ( my ($source_name) = $line =~ /^\!Sample_source_name.*? = (.+?)\s*$/ ) { $sample->source_name( $source_name ); } ! elsif ( my ($treatment_desc) = $line =~ /^\!Sample_treatment_protocol.*? = (.+?)\s*$/ ) { $sample->treatment_description( $treatment_desc ); } *************** *** 223,227 **** foreach my $line ( @lines ) { ! if ( my ($sample_acc) = $line =~ /^\!Series_sample_id = (\S+)/ ) { my $sample = Bio::Expression::Sample->new( -accession => $sample_acc, --- 225,229 ---- foreach my $line ( @lines ) { ! if ( my ($sample_acc) = $line =~ /^\!Series_sample_id = (\S+?)\s*$/ ) { my $sample = Bio::Expression::Sample->new( -accession => $sample_acc, *************** *** 231,253 **** push @samples, $sample; } ! elsif ( my ($pubmed_acc) = $line =~ /^\!Series_pubmed_id = (\S+)/ ) { $dataset->pubmed_id( $pubmed_acc ); } ! elsif ( my ($web_link) = $line =~ /^\!Series_web_link = (\S+)/ ) { $dataset->web_link( $web_link ); } ! elsif ( my ($contact) = $line =~ /^\!Series_contact_name = (\S+)/ ) { $dataset->contact( $contact ); } ! elsif ( my ($name) = $line =~ /^\!Series_title = (.+)$/ ) { $dataset->name( $name ); } ! elsif ( my ($desc) = $line =~ /^\!Series_summary = (.+)$/ ) { $dataset->description( $desc ); } ! elsif ( my ($design) = $line =~ /^\!Series_type = (.+)$/ ) { $dataset->design( $design ); } ! elsif ( my ($design_desc) = $line =~ /^\!Series_overall_design = (.+)$/ ) { $dataset->design_description( $design_desc ); } --- 233,255 ---- push @samples, $sample; } ! elsif ( my ($pubmed_acc) = $line =~ /^\!Series_pubmed_id = (.+?)\s*$/ ) { $dataset->pubmed_id( $pubmed_acc ); } ! elsif ( my ($web_link) = $line =~ /^\!Series_web_link = (.+?)\s*$/ ) { $dataset->web_link( $web_link ); } ! elsif ( my ($contact) = $line =~ /^\!Series_contact_name = (.+?)\s*$/ ) { $dataset->contact( $contact ); } ! elsif ( my ($name) = $line =~ /^\!Series_title = (.+?)\s*$/ ) { $dataset->name( $name ); } ! elsif ( my ($desc) = $line =~ /^\!Series_summary = (.+?)\s*$/ ) { $dataset->description( $desc ); } ! elsif ( my ($design) = $line =~ /^\!Series_type = (.+?)\s*$/ ) { $dataset->design( $design ); } ! elsif ( my ($design_desc) = $line =~ /^\!Series_overall_design = (.+?)\s*$/ ) { $dataset->design_description( $design_desc ); } *************** *** 264,286 **** ################################################# - - =head2 taxdb() - - Usage : $obj->taxdb($newval) - Function: - Example : - Returns : a Bio::DB::Taxonomy object - Args : on set, new value (a scalar or undef, optional) - - - =cut - - sub taxdb { - my($self,$val) = @_; - $self->{'taxdb'} = $val if defined($val); - return $self->{'taxdb'}; - } - - =head2 _platforms_doc() --- 266,269 ---- From bosborne at pub.open-bio.org Thu Dec 8 17:38:08 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 8 17:32:06 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio SeqIO.pm,1.84,1.85 Message-ID: <200512082238.jB8Mc8VL000330@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio In directory pub.open-bio.org:/tmp/cvs-serv321/Bio Modified Files: SeqIO.pm Log Message: Minor edits Index: SeqIO.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO.pm,v retrieving revision 1.84 retrieving revision 1.85 diff -C2 -d -r1.84 -r1.85 *** SeqIO.pm 15 Oct 2005 18:57:06 -0000 1.84 --- SeqIO.pm 8 Dec 2005 22:38:06 -0000 1.85 *************** *** 1,3 **** - # $Id$ # --- 1,2 ---- *************** *** 48,53 **** # The SeqIO system does have a filehandle binding. Most people find this ! # a little confusing, but it does mean you write the world's smallest ! # reformatter use Bio::SeqIO; --- 47,52 ---- # The SeqIO system does have a filehandle binding. Most people find this ! # a little confusing, but it does mean you can write the world's ! # smallest reformatter use Bio::SeqIO; *************** *** 90,95 **** As an added bonus, you can recover a filehandle that is tied to the ! SeqIO object, allowing you to use the standard EE and print operations ! to read and write sequence objects: use Bio::SeqIO; --- 89,94 ---- As an added bonus, you can recover a filehandle that is tied to the ! SeqIO object, allowing you to use the standard EE and print ! operations to read and write sequence objects: use Bio::SeqIO; *************** *** 112,116 **** $format1 = shift; ! $format2 = shift || die "Usage: reformat format1 format2 < input > output"; use Bio::SeqIO; --- 111,116 ---- $format1 = shift; ! $format2 = shift || die ! "Usage: reformat format1 format2 < input > output"; use Bio::SeqIO; *************** *** 216,220 **** By default, all files (or filehandles) opened for writing sequences will be flushed after each write_seq() (making the file immediately ! usable). If you don't need this facility and would like to marginally improve the efficiency of writing multiple sequences to the same file (or filehandle), pass the -flush option '0' or any other value that --- 216,220 ---- By default, all files (or filehandles) opened for writing sequences will be flushed after each write_seq() (making the file immediately ! usable). If you do not need this facility and would like to marginally improve the efficiency of writing multiple sequences to the same file (or filehandle), pass the -flush option '0' or any other value that *************** *** 245,250 **** @sequences = <$fh>; ! Other operations, such as read(), sysread(), write(), close(), and printf() ! are not supported. =head1 OBJECT METHODS --- 245,250 ---- @sequences = <$fh>; ! Other operations, such as read(), sysread(), write(), close(), and ! printf() are not supported. =head1 OBJECT METHODS *************** *** 357,361 **** my %param = @args; ! @param{ map { lc $_ } keys %param } = values %param; # lowercase keys if (!defined($param{-file}) && !defined($param{-fh})) { --- 357,361 ---- my %param = @args; ! @param{ map { lc $_ } keys %param } = values %param; # lowercase keys if (!defined($param{-file}) && !defined($param{-fh})) { From bosborne at pub.open-bio.org Thu Dec 8 17:45:05 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 8 17:39:00 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools GuessSeqFormat.pm, 1.11, 1.12 Message-ID: <200512082245.jB8Mj5VL000379@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv370/Bio/Tools Modified Files: GuessSeqFormat.pm Log Message: throw, not die Index: GuessSeqFormat.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/GuessSeqFormat.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** GuessSeqFormat.pm 17 Nov 2005 09:54:50 -0000 1.11 --- GuessSeqFormat.pm 8 Dec 2005 22:45:03 -0000 1.12 *************** *** 444,448 **** # If given a filename, open the file. open($fh, $self->{-file}) or ! die "Can not open '$self->{-file}' for reading: $!"; } elsif (defined $self->{-fh}) { # If given a filehandle, figure out if it's a plain GLOB --- 444,448 ---- # If given a filename, open the file. open($fh, $self->{-file}) or ! $self->throw("Can not open '$self->{-file}' for reading: $!"); } elsif (defined $self->{-fh}) { # If given a filehandle, figure out if it's a plain GLOB *************** *** 511,521 **** A zero return value does not mean that the line is not part ! of a certain type of file, just that the test didn't find any characteristics of that type of file in the line. =head2 _possibly_ace ! From bioperl test data, and ! from "http://www.isrec.isb-sib.ch/DEA/module8/B_Stevenson/Practicals/transcriptome_recon/transcriptome_recon.html". --- 511,520 ---- A zero return value does not mean that the line is not part ! of a certain type of file, just that the test did not find any characteristics of that type of file in the line. =head2 _possibly_ace ! From bioperl test data, and from "http://www.isrec.isb-sib.ch/DEA/module8/B_Stevenson/Practicals/transcriptome_recon/transcriptome_recon.html". From bosborne at pub.open-bio.org Thu Dec 8 17:50:15 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 8 17:44:06 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools pICalculator.pm,1.4,1.5 Message-ID: <200512082250.jB8MoFVL000439@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv428/Bio/Tools Modified Files: pICalculator.pm Log Message: throw, not die Index: pICalculator.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/pICalculator.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** pICalculator.pm 18 May 2005 11:47:38 -0000 1.4 --- pICalculator.pm 8 Dec 2005 22:50:13 -0000 1.5 *************** *** 76,81 **** Report bugs to the Bioperl bug tracking system to help us keep track ! the bugs and their resolution. ! Bug reports can be submitted via the web: http://bugzilla.bioperl.org/ --- 76,81 ---- Report bugs to the Bioperl bug tracking system to help us keep track ! the bugs and their resolution. Bug reports can be submitted via the ! web: http://bugzilla.bioperl.org/ *************** *** 202,206 **** my( $this, $seq ) = @_; unless( defined $seq && UNIVERSAL::isa($seq,'Bio::Seq') ){ ! die $seq . " is not a valid Bio::Seq object\n"; } $this->{-seq} = $seq; --- 202,206 ---- my( $this, $seq ) = @_; unless( defined $seq && UNIVERSAL::isa($seq,'Bio::Seq') ){ ! $this->throw("$seq is not a valid Bio::Seq object"); } $this->{-seq} = $seq; From bosborne at pub.open-bio.org Thu Dec 8 17:57:07 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 8 17:51:01 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools SeqStats.pm,1.24,1.25 Message-ID: <200512082257.jB8Mv7VL000487@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv478/Bio/Tools Modified Files: SeqStats.pm Log Message: throw, not die Index: SeqStats.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/SeqStats.pm,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** SeqStats.pm 28 Sep 2005 15:55:04 -0000 1.24 --- SeqStats.pm 8 Dec 2005 22:57:05 -0000 1.25 *************** *** 357,361 **** my ($seqobj) = $self->_rearrange([qw(SEQ)],@args); unless ($seqobj->isa("Bio::PrimarySeqI")) { ! $self->throw(" SeqStats works only on PrimarySeqI objects \n"); } if ( !defined $seqobj->alphabet || --- 357,361 ---- my ($seqobj) = $self->_rearrange([qw(SEQ)],@args); unless ($seqobj->isa("Bio::PrimarySeqI")) { ! $self->throw("SeqStats works only on PrimarySeqI objects"); } if ( !defined $seqobj->alphabet || *************** *** 418,422 **** # Following two lines lead to error in "throw" routine $seqobj->isa("Bio::PrimarySeqI") || ! $self->throw(" SeqStats works only on PrimarySeqI objects \n"); # is alphabet OK? Is it strict? $_is_strict = _is_alphabet_strict($seqobj); --- 418,422 ---- # Following two lines lead to error in "throw" routine $seqobj->isa("Bio::PrimarySeqI") || ! $self->throw("SeqStats works only on PrimarySeqI objects"); # is alphabet OK? Is it strict? $_is_strict = _is_alphabet_strict($seqobj); *************** *** 492,496 **** $seqobj = $object_argument; $seqobj->isa("Bio::PrimarySeqI") || ! die("Error: SeqStats works only on PrimarySeqI objects \n"); $_is_strict = _is_alphabet_strict($seqobj); # is alphabet OK? $rcount = $self->count_monomers($seqobj); --- 492,496 ---- $seqobj = $object_argument; $seqobj->isa("Bio::PrimarySeqI") || ! $self->throw("Error: SeqStats works only on PrimarySeqI objects"); $_is_strict = _is_alphabet_strict($seqobj); # is alphabet OK? $rcount = $self->count_monomers($seqobj); *************** *** 584,588 **** $seqobj = $object_argument; $seqobj->isa("Bio::PrimarySeqI") || ! die(" Error: SeqStats works only on PrimarySeqI objects \n"); $_is_strict = _is_alphabet_strict($seqobj); } --- 584,588 ---- $seqobj = $object_argument; $seqobj->isa("Bio::PrimarySeqI") || ! $self->throw("Error: SeqStats works only on PrimarySeqI objects"); $_is_strict = _is_alphabet_strict($seqobj); } *************** *** 592,597 **** unless ($alphabet =~ /[dr]na/i) { ! $seqobj->throw(" Codon counts only meaningful for dna or rna, ". ! "not for $alphabet sequences. \n"); } --- 592,597 ---- unless ($alphabet =~ /[dr]na/i) { ! $seqobj->throw("Codon counts only meaningful for dna or rna, ". ! "not for $alphabet sequences."); } *************** *** 600,605 **** if (!$_is_strict ) { ! $seqobj->warn(" Sequence $seqobj contains ambiguous bases.\n". ! " All codons with ambiguous bases will be added together in count.\n") if $self->verbose >= 0 ; } --- 600,605 ---- if (!$_is_strict ) { ! $seqobj->warn("Sequence $seqobj contains ambiguous bases.". ! " All codons with ambiguous bases will be added together in count.") if $self->verbose >= 0 ; } *************** *** 683,687 **** # If we got here there is an illegal letter in the sequence ! $seqobj->throw(" Alphabet not OK for $seqobj \n"); } --- 683,687 ---- # If we got here there is an illegal letter in the sequence ! $seqobj->throw("Alphabet not OK for $seqobj"); } From bosborne at pub.open-bio.org Thu Dec 8 18:04:50 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 8 17:58:42 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools QRNA.pm,1.2,1.3 Message-ID: <200512082304.jB8N4nVL000526@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv517/Bio/Tools Modified Files: QRNA.pm Log Message: throw, not die Index: QRNA.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/QRNA.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** QRNA.pm 8 Sep 2003 12:17:14 -0000 1.2 --- QRNA.pm 8 Dec 2005 23:04:47 -0000 1.3 *************** *** 20,24 **** my $parser = new Bio::Tools::QRNA(-file => $qrnaoutput); while( my $feature = $parser->next_feature ) { ! } --- 20,24 ---- my $parser = new Bio::Tools::QRNA(-file => $qrnaoutput); while( my $feature = $parser->next_feature ) { ! # do something here } *************** *** 398,403 **** $self->debug( $data->{'entry'} ); } ! die "no location parsed for $model in ", ! (map { @$_ } @{$data->{'seqs'}}), " ", $f->start, " ", $f->end, "\n"; } else { $f->add_tag_value("$model\_positions", --- 398,403 ---- $self->debug( $data->{'entry'} ); } ! $self->throw("no location parsed for $model in ", ! (map { @$_ } @{$data->{'seqs'}}), " ", $f->start, " ", $f->end); } else { $f->add_tag_value("$model\_positions", From bosborne at pub.open-bio.org Thu Dec 8 18:12:23 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 8 18:06:16 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools RandomDistFunctions.pm, 1.4, 1.5 Message-ID: <200512082312.jB8NCNVL000576@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv567/Bio/Tools Modified Files: RandomDistFunctions.pm Log Message: throw, not die Index: RandomDistFunctions.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/RandomDistFunctions.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** RandomDistFunctions.pm 27 Sep 2005 14:10:59 -0000 1.4 --- RandomDistFunctions.pm 8 Dec 2005 23:12:21 -0000 1.5 *************** *** 107,111 **** } unless( $lambda ) { ! die("Cannot call birth_distribution without a valid lambda value (>0)"); } return 1 - (log(rand(1) * (exp($lambda) - 1)+1)/ $lambda); --- 107,111 ---- } unless( $lambda ) { ! $self->throw("Cannot call birth_distribution without a valid lambda value (>0)"); } return 1 - (log(rand(1) * (exp($lambda) - 1)+1)/ $lambda); *************** *** 133,137 **** } unless( $param ) { ! die("Cannot call rand_geometric_distribution without a valid param value (>0)"); } --- 133,137 ---- } unless( $param ) { ! $self->throw("Cannot call rand_geometric_distribution without a valid param value (>0)"); } *************** *** 172,176 **** } unless( $param ) { ! die("Cannot call rand_exponentional_distribution without a valid param value (>0)"); } return log( 1- rand(1)) / $param; --- 172,176 ---- } unless( $param ) { ! $self->throw("Cannot call rand_exponentional_distribution without a valid param value (>0)"); } return log( 1- rand(1)) / $param; From bugzilla-daemon at portal.open-bio.org Thu Dec 8 21:15:21 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Thu Dec 8 21:58:14 2005 Subject: [Bioperl-guts-l] [Bug 1916] New: script bp_pairwise_kaks.pl error Message-ID: <200512090215.jB92FLXg022206@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1916 Summary: script bp_pairwise_kaks.pl error Product: Bioperl Version: main-trunk Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Unclassified AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: chenn@cshl.edu I have the up-to-date bioperl-live via "cvs update -d". When I ran the script "bp_pairwise_kaks.pl -i t/data/worm_fam_2785.cdna", I got the following error: Use of uninitialized value in pattern match (m//) at /usr/lib/perl5/site_perl/5.8.6/Bio/Tools/Phylo/PAML.pm line 711, line 105. Can't call method "get_MLmatrix" on an undefined value at /usr/bin/bp_pairwise_kaks.pl line 182, line 105. I have bioperl-run up-to-date either. Thanks, Jack ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From heikki at pub.open-bio.org Fri Dec 9 05:29:29 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 05:23:20 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/SeqIO kegg.pm,1.15,1.16 Message-ID: <200512091029.jB9ATTVL002280@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/SeqIO In directory pub.open-bio.org:/tmp/cvs-serv2271 Modified Files: kegg.pm Log Message: fix to return the value rather than a boolean Index: kegg.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO/kegg.pm,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** kegg.pm 18 Nov 2005 20:34:38 -0000 1.15 --- kegg.pm 9 Dec 2005 10:29:27 -0000 1.16 *************** *** 207,211 **** if(( exists $FIELDS{DEFINITION} ) and ( $FIELDS{DEFINITION} =~ /^DEFINITION/ )) { ! $definition = $FIELDS{DEFINITION} =~ /^DEFINITION\s+(.+)$/s; $definition =~ s/\s+/ /gs; } --- 207,211 ---- if(( exists $FIELDS{DEFINITION} ) and ( $FIELDS{DEFINITION} =~ /^DEFINITION/ )) { ! ($definition) = $FIELDS{DEFINITION} =~ /^DEFINITION\s+(.+)$/s; $definition =~ s/\s+/ /gs; } From heikki at pub.open-bio.org Fri Dec 9 06:13:24 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 06:07:13 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio PrimarySeqI.pm, 1.61, 1.62 SeqFeatureI.pm, 1.61, 1.62 SimpleAlign.pm, 1.97, 1.98 Message-ID: <200512091113.jB9BDOVL002451@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio In directory pub.open-bio.org:/tmp/cvs-serv2435 Modified Files: PrimarySeqI.pm SeqFeatureI.pm SimpleAlign.pm Log Message: POD fixes Index: PrimarySeqI.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/PrimarySeqI.pm,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** PrimarySeqI.pm 19 Oct 2005 00:47:16 -0000 1.61 --- PrimarySeqI.pm 9 Dec 2005 11:13:21 -0000 1.62 *************** *** 464,468 **** Title : translate Usage : $protein_seq_obj = $dna_seq_obj->translate ! Or if you expect a complete coding sequence (CDS) translation, with inititator at the beginning and terminator at the end: --- 464,468 ---- Title : translate Usage : $protein_seq_obj = $dna_seq_obj->translate ! Or if you expect a complete coding sequence (CDS) translation, with inititator at the beginning and terminator at the end: Index: SeqFeatureI.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqFeatureI.pm,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** SeqFeatureI.pm 5 Nov 2005 22:15:37 -0000 1.61 --- SeqFeatureI.pm 9 Dec 2005 11:13:21 -0000 1.62 *************** *** 29,33 **** print "Feature on strand ", $feat->strand,"\n"; # -1,1 } ! print "feature location is ",$feat->start, "..", $feat->end, " on strand ", $feat->strand, "\n"; --- 29,33 ---- print "Feature on strand ", $feat->strand,"\n"; # -1,1 } ! print "feature location is ",$feat->start, "..", $feat->end, " on strand ", $feat->strand, "\n"; Index: SimpleAlign.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SimpleAlign.pm,v retrieving revision 1.97 retrieving revision 1.98 diff -C2 -d -r1.97 -r1.98 *** SimpleAlign.pm 17 Nov 2005 09:54:43 -0000 1.97 --- SimpleAlign.pm 9 Dec 2005 11:13:22 -0000 1.98 *************** *** 57,61 **** $str = $aln->cigar_line() $id = $aln->percentage_identity; ! See the module documentation for details and more methods. --- 57,61 ---- $str = $aln->cigar_line() $id = $aln->percentage_identity; ! See the module documentation for details and more methods. From heikki at pub.open-bio.org Fri Dec 9 06:13:24 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 06:07:14 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Ontology DocumentRegistry.pm, 1.7, 1.8 Message-ID: <200512091113.jB9BDOVL002457@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Ontology In directory pub.open-bio.org:/tmp/cvs-serv2435/Ontology Modified Files: DocumentRegistry.pm Log Message: POD fixes Index: DocumentRegistry.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Ontology/DocumentRegistry.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** DocumentRegistry.pm 13 Oct 2005 16:17:31 -0000 1.7 --- DocumentRegistry.pm 9 Dec 2005 11:13:22 -0000 1.8 *************** *** 121,125 **** =item Usage ! my $singleton = Bio::Ontology::DocumentRegistry->get_instance(); =item Function --- 121,125 ---- =item Usage ! my $singleton = Bio::Ontology::DocumentRegistry->get_instance(); =item Function *************** *** 149,153 **** =item Usage ! my($ontology_url, $definitions_url, $format) = $obj->documents('Sequence Ontology'); =item Function --- 149,153 ---- =item Usage ! my($ontology_url, $definitions_url, $format) = $obj->documents('Sequence Ontology'); =item Function From heikki at pub.open-bio.org Fri Dec 9 07:18:01 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:12:32 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/PopGen/Simulation Coalescent.pm, 1.8, 1.9 Message-ID: <200512091218.jB9CI1VL002903@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/PopGen/Simulation In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/PopGen/Simulation Modified Files: Coalescent.pm Log Message: throw, not die Index: Coalescent.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/PopGen/Simulation/Coalescent.pm,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Coalescent.pm 7 Dec 2004 13:03:44 -0000 1.8 --- Coalescent.pm 9 Dec 2005 12:17:59 -0000 1.9 *************** *** 286,290 **** } # sanity check ! die("branch len is $branchlen arraylen is $last") unless ( $branchlen == $last ); my @mutations; --- 286,290 ---- } # sanity check ! $self->throw("branch len is $branchlen arraylen is $last") unless ( $branchlen == $last ); my @mutations; From heikki at pub.open-bio.org Fri Dec 9 07:18:02 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:13:47 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/SeqFeature Generic.pm,1.93,1.94 Message-ID: <200512091218.jB9CI2VL002911@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/SeqFeature In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/SeqFeature Modified Files: Generic.pm Log Message: throw, not die Index: Generic.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqFeature/Generic.pm,v retrieving revision 1.93 retrieving revision 1.94 diff -C2 -d -r1.93 -r1.94 *** Generic.pm 5 Nov 2005 18:29:27 -0000 1.93 --- Generic.pm 9 Dec 2005 12:17:59 -0000 1.94 *************** *** 783,787 **** my @out; if ( !defined $f ) { ! die "Must have a filehandle"; } --- 783,787 ---- my @out; if ( !defined $f ) { ! Bio::Root::Root->throw("Must have a filehandle"); } From heikki at pub.open-bio.org Fri Dec 9 07:18:03 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:14:03 2005 Subject: [Bioperl-guts-l] bioperl-live/maintenance modules.pl,1.17,1.18 Message-ID: <200512091218.jB9CI3VL002928@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/maintenance In directory pub.open-bio.org:/tmp/cvs-serv2793/maintenance Modified Files: modules.pl Log Message: throw, not die Index: modules.pl =================================================================== RCS file: /home/repository/bioperl/bioperl-live/maintenance/modules.pl,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** modules.pl 17 Nov 2005 09:54:54 -0000 1.17 --- modules.pl 9 Dec 2005 12:18:01 -0000 1.18 *************** *** 112,116 **** my $value = shift; $self->{'tested'} = 1 if defined $value && $value; ! return $self->{'tested'}; } --- 112,116 ---- my $value = shift; $self->{'tested'} = 1 if defined $value && $value; ! return $self->{'tested'} || 0; } *************** *** 343,347 **** Prints a list of instance modules which are I explicitly used by ! test files in t directory. Superclasess or any classes used by others are not reported, either, since their methods are assumed to be tested by subclass tests. --- 343,347 ---- Prints a list of instance modules which are I explicitly used by ! test files in the directory. Superclasess or any classes used by others are not reported, either, since their methods are assumed to be tested by subclass tests. *************** *** 351,354 **** --- 351,373 ---- =cut + sub _used_and_super { + my $classname = $shift; + unless ( ref $classname eq 'HASH') { + my $tmp = $classname; + $classname->{$tmp}=1 + } + foreach ($MODULES{$_}->each_superclass) { + $MODULES{$_}->tested(1) + unless defined $MODULES{$_} or $MODULES{$_}->tested; + _used_and_super() + } + foreach ($MODULES{$_}->each_used_class) { + $MODULES{$_}->tested(1) + unless defined $MODULES{$_} and $MODULES{$_}->tested; + } + + return $classname; + } + sub untested { foreach (`find ../t -name "*.t" -print | xargs grep -hs "use "`) { *************** *** 359,363 **** --- 378,391 ---- $MODULES{$_}->tested(1) unless defined $MODULES{$_} and $MODULES{$_}->tested; + + next if $MODULES{$_}->name eq "Bio::SeqIO::abi"; # exception: requires bioperl ext package + next if $MODULES{$_}->name eq "Bio::SeqIO::ctf"; # exception: requires bioperl ext package + next if $MODULES{$_}->name eq "Bio::SeqIO::exp"; # exception: requires bioperl ext package + next if $MODULES{$_}->name eq "Bio::SeqIO::pln"; # exception: requires bioperl ext package + next if $MODULES{$_}->name eq "Bio::SeqIO::ztr"; # exception: requires bioperl ext package + # print $MODULES{$_}->name, "\n"; + # print Dumper $MODULES{$_}; foreach ($MODULES{$_}->each_superclass) { + # print $MODULES{$_}->name, "\n"; $MODULES{$_}->tested(1) unless defined $MODULES{$_} or $MODULES{$_}->tested; From heikki at pub.open-bio.org Fri Dec 9 07:18:02 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:14:05 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Run RemoteBlast.pm, 1.27, 1.28 Message-ID: <200512091218.jB9CI2VL002924@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Run In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/Tools/Run Modified Files: RemoteBlast.pm Log Message: throw, not die Index: RemoteBlast.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Run/RemoteBlast.pm,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** RemoteBlast.pm 27 Sep 2005 14:11:00 -0000 1.27 --- RemoteBlast.pm 9 Dec 2005 12:18:00 -0000 1.28 *************** *** 598,602 **** # pre-process my ($fh2,$tempfile2) = $self->tempfile(); ! open(TMP,$tempfile) || die $!; my $s = 0; while() { --- 598,602 ---- # pre-process my ($fh2,$tempfile2) = $self->tempfile(); ! open(TMP,$tempfile) || $self->throw($!); my $s = 0; while() { From heikki at pub.open-bio.org Fri Dec 9 07:18:03 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:14:06 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Spidey Results.pm,1.6,1.7 Message-ID: <200512091218.jB9CI3VL002926@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Spidey In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/Tools/Spidey Modified Files: Results.pm Log Message: throw, not die Index: Results.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Spidey/Results.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Results.pm 27 Sep 2005 13:08:48 -0000 1.6 --- Results.pm 9 Dec 2005 12:18:01 -0000 1.7 *************** *** 193,197 **** $version = $1; if ($version != 1.40) { ! die "Spidey parser only designed to work with Spidey v1.40\n"; } $started = 1; --- 193,197 ---- $version = $1; if ($version != 1.40) { ! $self->throw("Spidey parser only designed to work with Spidey v1.40\n"); } $started = 1; *************** *** 244,248 **** $uncertain = $10; } else { ! die "Failed to match anything:\n$_\n"; } --- 244,248 ---- $uncertain = $10; } else { ! $self->throw( "Failed to match anything:\n$_\n"); } *************** *** 280,284 **** push(@exons, $exon); } else { ! die "Unexpected end of file reached\n"; } } --- 280,284 ---- push(@exons, $exon); } else { ! $self->throw("Unexpected end of file reached\n"); } } From heikki at pub.open-bio.org Fri Dec 9 07:18:02 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:14:08 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Alignment Consed.pm, 1.36, 1.37 Message-ID: <200512091218.jB9CI2VL002921@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Alignment In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/Tools/Alignment Modified Files: Consed.pm Log Message: throw, not die Index: Consed.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Alignment/Consed.pm,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** Consed.pm 27 Sep 2005 13:08:46 -0000 1.36 --- Consed.pm 9 Dec 2005 12:18:00 -0000 1.37 *************** *** 1640,1645 **** my $fh = new Bio::Root::IO (-file=>"$self->{path}/../phd_dir/$sequence_name.phd.1"); - # open(PHD,"<$self->{path}/../phd_dir/$sequence_name.phd.1") or - # die "Couldn't open the phred for $sequence_name\n"; while ($fh->_readline()) { # print("Reading a line from a phredfile!\n"); --- 1640,1643 ---- From heikki at pub.open-bio.org Fri Dec 9 07:18:00 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:15:00 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB/GFF/Adaptor/dbi mysql.pm, 1.62, 1.63 oracle.pm, 1.6, 1.7 pg.pm, 1.15, 1.16 Message-ID: <200512091218.jB9CI0VL002882@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB/GFF/Adaptor/dbi In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/DB/GFF/Adaptor/dbi Modified Files: mysql.pm oracle.pm pg.pm Log Message: throw, not die Index: oracle.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/GFF/Adaptor/dbi/oracle.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** oracle.pm 24 Oct 2003 19:28:47 -0000 1.6 --- oracle.pm 9 Dec 2005 12:17:58 -0000 1.7 *************** *** 843,847 **** my $sth = $self->{_insert_sequence} ||= $self->dbh->prepare_delayed('insert into fdna values (?,?,?)'); ! $sth->execute($id,$offset,$seq) or die $sth->errstr; } --- 843,847 ---- my $sth = $self->{_insert_sequence} ||= $self->dbh->prepare_delayed('insert into fdna values (?,?,?)'); ! $sth->execute($id,$offset,$seq) or $self->throw($sth->errstr); } Index: pg.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/GFF/Adaptor/dbi/pg.pm,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** pg.pm 11 Apr 2005 20:54:55 -0000 1.15 --- pg.pm 9 Dec 2005 12:17:58 -0000 1.16 *************** *** 704,708 **** my $sth = $self->{_insert_sequence} ||= $self->dbh->prepare_delayed('insert into fdna values (?,?,?)'); ! $sth->execute($id,$offset,$seq) or die $sth->errstr; } --- 704,708 ---- my $sth = $self->{_insert_sequence} ||= $self->dbh->prepare_delayed('insert into fdna values (?,?,?)'); ! $sth->execute($id,$offset,$seq) or $self->throw($sth->errstr); } Index: mysql.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/GFF/Adaptor/dbi/mysql.pm,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** mysql.pm 1 Dec 2005 00:11:38 -0000 1.62 --- mysql.pm 9 Dec 2005 12:17:58 -0000 1.63 *************** *** 721,725 **** my $sth = $self->{_insert_sequence} ||= $self->dbh->prepare_delayed('replace into fdna values (?,?,?)'); ! $sth->execute($id,$offset,$seq) or die $sth->errstr; } --- 721,725 ---- my $sth = $self->{_insert_sequence} ||= $self->dbh->prepare_delayed('replace into fdna values (?,?,?)'); ! $sth->execute($id,$offset,$seq) or $self->throw($sth->errstr); } From heikki at pub.open-bio.org Fri Dec 9 07:18:01 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:15:02 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Matrix/PSM ProtMatrix.pm, 1.11, 1.12 SiteMatrix.pm, 1.26, 1.27 Message-ID: <200512091218.jB9CI1VL002900@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Matrix/PSM In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/Matrix/PSM Modified Files: ProtMatrix.pm SiteMatrix.pm Log Message: throw, not die Index: SiteMatrix.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Matrix/PSM/SiteMatrix.pm,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** SiteMatrix.pm 9 Oct 2005 14:53:14 -0000 1.26 --- SiteMatrix.pm 9 Dec 2005 12:17:59 -0000 1.27 *************** *** 334,338 **** sub next_pos { my $self = shift; ! die "instance method called on class" unless ref $self; my $len=@{$self->{seq}}; my $pos=$self->{_position}; --- 334,338 ---- sub next_pos { my $self = shift; ! $self->throw("instance method called on class") unless ref $self; my $len=@{$self->{seq}}; my $pos=$self->{_position}; Index: ProtMatrix.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Matrix/PSM/ProtMatrix.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ProtMatrix.pm 9 Oct 2005 14:53:14 -0000 1.11 --- ProtMatrix.pm 9 Dec 2005 12:17:59 -0000 1.12 *************** *** 332,336 **** sub next_pos { my $self = shift; ! die "instance method called on class" unless ref $self; my $len = @{$self->{seq}}; --- 332,336 ---- sub next_pos { my $self = shift; ! $self->throw("instance method called on class") unless ref $self; my $len = @{$self->{seq}}; From heikki at pub.open-bio.org Fri Dec 9 07:18:01 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:15:03 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Index Blast.pm, 1.18, 1.19 Hmmer.pm, 1.6, 1.7 Message-ID: <200512091218.jB9CI1VL002891@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Index In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/Index Modified Files: Blast.pm Hmmer.pm Log Message: throw, not die Index: Blast.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Index/Blast.pm,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Blast.pm 9 Oct 2005 14:53:13 -0000 1.18 --- Blast.pm 9 Dec 2005 12:17:58 -0000 1.19 *************** *** 247,251 **** ); ! open(BLAST, "<$file") or die("cannot open file $file\n"); my (@data, @records); --- 247,251 ---- ); ! open(BLAST, "<$file") or $self->throw("cannot open file $file\n"); my (@data, @records); Index: Hmmer.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Index/Hmmer.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Hmmer.pm 9 Oct 2005 14:53:13 -0000 1.6 --- Hmmer.pm 9 Dec 2005 12:17:58 -0000 1.7 *************** *** 270,274 **** my($begin); ! open(HMMER, "<$file") or die("cannot open file $file\n"); my $id; --- 270,274 ---- my($begin); ! open(HMMER, "<$file") or $self->throw("cannot open file $file\n"); my $id; From heikki at pub.open-bio.org Fri Dec 9 07:18:02 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:15:05 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/SeqIO agave.pm, 1.10, 1.11 bsml.pm, 1.21, 1.22 chadoxml.pm, 1.17, 1.18 chaos.pm, 1.8, 1.9 Message-ID: <200512091218.jB9CI2VL002915@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/SeqIO In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/SeqIO Modified Files: agave.pm bsml.pm chadoxml.pm chaos.pm Log Message: throw, not die Index: chadoxml.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO/chadoxml.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** chadoxml.pm 18 Oct 2005 15:05:24 -0000 1.17 --- chadoxml.pm 9 Dec 2005 12:18:00 -0000 1.18 *************** *** 390,398 **** chomp($srcfeature); } else { - # this is really weird - we don't typically - # have any die code in the library - # but use throw instead - # jason -- 2003-12-10 - # die($usage) $self->throw( $usage ); } --- 390,393 ---- *************** *** 401,409 **** if (! defined $srcfeattype) { - # this is really weird - we don't typically - # have any die code in the library - # but use throw instead - # jason -- 2003-12-10 - # die($usage) $self->throw( $usage ); #$srcfeattype must be a string of non-whitespace characters --- 396,399 ---- *************** *** 412,420 **** chomp($srcfeattype); } else { - # this is really weird - we don't typically - # have any die code in the library - # but use throw instead - # jason -- 2003-12-10 - # die($usage) $self->throw( $usage ); } --- 402,405 ---- Index: agave.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO/agave.pm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** agave.pm 1 Oct 2005 00:26:29 -0000 1.10 --- agave.pm 9 Dec 2005 12:18:00 -0000 1.11 *************** *** 725,729 **** } else { ! die "Error. Missing tag. Got this: $$line\n"; } --- 725,729 ---- } else { ! $self->throw("Error. Missing tag. Got this: $$line\n"); } *************** *** 886,890 **** if ($element_id_count == 0) { ! die "Error. Missing tag. Got: $$line"; } --- 886,890 ---- if ($element_id_count == 0) { ! $self->throw("Error. Missing tag. Got: $$line"); } *************** *** 898,902 **** unless ($$line =~ /<\/related_annot>/){ ! die "Error. Missing . Got: $$line\n"; } --- 898,902 ---- unless ($$line =~ /<\/related_annot>/){ ! $self->throw("Error. Missing . Got: $$line\n"); } *************** *** 924,928 **** } ! die "Error. No tag! Got this: $$line" if $count == 0; --- 924,928 ---- } ! $self->throw("Error. No tag! Got this: $$line") if $count == 0; *************** *** 932,936 **** $$line = $self->_readline; } else { ! die "Error. No ! Got this: $$line"; } --- 932,936 ---- $$line = $self->_readline; } else { ! $self->throw("Error. No ! Got this: $$line"); } *************** *** 967,971 **** return; } else { ! die "No closing tag ! Got this: $$line\n"; } --- 967,971 ---- return; } else { ! $self->throw("No closing tag ! Got this: $$line\n"); } *************** *** 990,994 **** return; } else { ! die "No closing tag . Got this: $$line\n"; } --- 990,994 ---- return; } else { ! $self->throw("No closing tag . Got this: $$line\n"); } Index: bsml.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO/bsml.pm,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** bsml.pm 1 Oct 2005 00:26:29 -0000 1.21 --- bsml.pm 9 Dec 2005 12:18:00 -0000 1.22 *************** *** 540,544 **** $xml = $args->{XMLDOC}; unless ($xml->isa("XML::DOM::Document")) { ! die ('SeqIO::bsml.pm error:\n'. 'When calling ->to_bsml( { xmldoc => $myDoc }), $myDoc \n' . 'should be an XML::DOM::Document object, or an object that\n'. --- 540,544 ---- $xml = $args->{XMLDOC}; unless ($xml->isa("XML::DOM::Document")) { ! $self->throw('SeqIO::bsml.pm error:\n'. 'When calling ->to_bsml( { xmldoc => $myDoc }), $myDoc \n' . 'should be an XML::DOM::Document object, or an object that\n'. Index: chaos.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO/chaos.pm,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** chaos.pm 3 Oct 2005 16:01:49 -0000 1.8 --- chaos.pm 9 Dec 2005 12:18:00 -0000 1.9 *************** *** 510,517 **** my ($beg, $end, $strand) = $self->bp2ib($loc); if (!$strand) { - print "($beg, $end, $strand) - no strand\n"; use Data::Dumper; ! print Dumper $sf; ! die Dumper $loc; } @locnodes = ( --- 510,516 ---- my ($beg, $end, $strand) = $self->bp2ib($loc); if (!$strand) { use Data::Dumper; ! print Dumper $sf $loc; ! $self->throw("($beg, $end, $strand) - no strand\n"); } @locnodes = ( From heikki at pub.open-bio.org Fri Dec 9 07:18:02 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:15:06 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools OddCodes.pm,1.15,1.16 Message-ID: <200512091218.jB9CI2VL002919@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/Tools Modified Files: OddCodes.pm Log Message: throw, not die Index: OddCodes.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/OddCodes.pm,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** OddCodes.pm 8 Dec 2005 22:10:43 -0000 1.15 --- OddCodes.pm 9 Dec 2005 12:18:00 -0000 1.16 *************** *** 438,442 **** unless ($seqobj->isa("Bio::PrimarySeqI")) { ! die("die, OddCodes works only on PrimarySeqI objects\n"); } $self->warn("\tAll OddCode alphabets need a protein sequence,\n". --- 438,442 ---- unless ($seqobj->isa("Bio::PrimarySeqI")) { ! $self->throw("die, OddCodes works only on PrimarySeqI objects\n"); } $self->warn("\tAll OddCode alphabets need a protein sequence,\n". *************** *** 448,452 **** if(length($seqstring)<1) { ! die("$seqstring: die, sequence has zero length\n"); } return $seqstring; --- 448,452 ---- if(length($seqstring)<1) { ! $self->throw("$seqstring: die, sequence has zero length\n"); } return $seqstring; From heikki at pub.open-bio.org Fri Dec 9 07:18:00 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:15:07 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB GDB.pm,1.14,1.15 Message-ID: <200512091218.jB9CI0VL002864@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/DB Modified Files: GDB.pm Log Message: throw, not die Index: GDB.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/GDB.pm,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** GDB.pm 9 Oct 2005 14:53:08 -0000 1.14 --- GDB.pm 9 Dec 2005 12:17:58 -0000 1.15 *************** *** 213,217 **** }, "text" ], marked_sections =>1); ! $p->parse($content) or die "Can't open: $!"; if( ! defined $markerurl ) { @primers = ('notfound','notfound', '?'); --- 213,217 ---- }, "text" ], marked_sections =>1); ! $p->parse($content) or $self->throw("Can't open: $!"); if( ! defined $markerurl ) { @primers = ('notfound','notfound', '?'); *************** *** 264,268 **** marked_sections =>1, ); ! $p->parse($content) || die "Can't open: $!"; return { 'gdbid' => $realname, 'length' => $length, 'primers' => \@primers }; --- 264,268 ---- marked_sections =>1, ); ! $p->parse($content) || $self->throw("Can't open: $!"); return { 'gdbid' => $realname, 'length' => $length, 'primers' => \@primers }; From heikki at pub.open-bio.org Fri Dec 9 07:18:00 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:15:16 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB/GFF/Adaptor berkeleydb.pm, 1.20, 1.21 Message-ID: <200512091218.jB9CI0VL002873@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB/GFF/Adaptor In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/DB/GFF/Adaptor Modified Files: berkeleydb.pm Log Message: throw, not die Index: berkeleydb.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/GFF/Adaptor/berkeleydb.pm,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** berkeleydb.pm 18 Oct 2005 13:10:00 -0000 1.20 --- berkeleydb.pm 9 Dec 2005 12:17:58 -0000 1.21 *************** *** 223,227 **** unless (-d $dsn) { # directory does not exist $create or $self->throw("Directory $dsn does not exist and you did not specify the -create flag"); ! mkpath($dsn) or die "Couldn't create database directory $dsn: $!"; } --- 223,227 ---- unless (-d $dsn) { # directory does not exist $create or $self->throw("Directory $dsn does not exist and you did not specify the -create flag"); ! mkpath($dsn) or $self->throw("Couldn't create database directory $dsn: $!"); } From heikki at pub.open-bio.org Fri Dec 9 07:18:01 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Fri Dec 9 07:16:50 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Root Storable.pm,1.5,1.6 Message-ID: <200512091218.jB9CI1VL002907@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Root In directory pub.open-bio.org:/tmp/cvs-serv2793/Bio/Root Modified Files: Storable.pm Log Message: throw, not die Index: Storable.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Root/Storable.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Storable.pm 9 Oct 2005 14:53:17 -0000 1.5 --- Storable.pm 9 Dec 2005 12:17:59 -0000 1.6 *************** *** 599,603 **** $code = eval( $data ) ; if($@) { ! die( "eval: $@" ); } ref( $code ) eq 'REF' || --- 599,603 ---- $code = eval( $data ) ; if($@) { ! $self->throw( "eval: $@" ); } ref( $code ) eq 'REF' || From bugzilla-daemon at portal.open-bio.org Fri Dec 9 12:31:03 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 9 12:58:09 2005 Subject: [Bioperl-guts-l] [Bug 1916] script bp_pairwise_kaks.pl error Message-ID: <200512091731.jB9HV3tk008736@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1916 ------- Comment #1 from osborne1@optonline.net 2005-12-09 12:31 ------- Jack, I also have the latest in bioperl-run and bioperl-live and the exact command you used works for me. I wonder if this isn't some problem with the applications run by script. What do you see when you add "-v" to the command? ------- 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 9 13:50:17 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 9 13:58:10 2005 Subject: [Bioperl-guts-l] [Bug 1916] script bp_pairwise_kaks.pl error Message-ID: <200512091850.jB9IoHaU010465@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1916 osborne1@optonline.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME ------- Comment #2 from osborne1@optonline.net 2005-12-09 13:50 ------- Jack, since I'm not seeing your error you're going to have to do the detective work yourself. Open up PAML.pm yourself, you can see that line 711 is referring to a specific line in a file, and I suspect that the file in question is an *.mlc file (do "grep Gojobori t/data/*" to see what I mean). If I were you I'd play with codeml all by itself to see what it is, or is not doing. Also, I'd comment out that line and see what happens. Strictly speaking this is not a Bioperl bug, so I'm changing this item to "WORKSFORME". ------- 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 9 14:18:02 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 9 14:58:14 2005 Subject: [Bioperl-guts-l] [Bug 1917] New: Incorrect record size in Bio::DB::Flat::BinarySearch index creation Message-ID: <200512091918.jB9JI2DM011000@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1917 Summary: Incorrect record size in Bio::DB::Flat::BinarySearch index creation Product: Bioperl Version: main-trunk Platform: Macintosh OS/Version: Mac OS Status: NEW Severity: blocker Priority: P2 Component: bioperl-db AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: jeffrey.barrick@yale.edu This block in Bio::DB::Flat::BinarySearch.pm 1.18; sub _add_id_position has a typo: $self->{_maxfileidlength} = length($fileid) if !exists $self->{_maxfileidlength} or length($fileid) >= $self->{_maxidlength}; It should be changed to: $self->{_maxfileidlength} = length($fileid) if !exists $self->{_maxfileidlength} or length($fileid) >= $self->{_maxfileidlength}; Otherwise it creates index files with improper record sizes when the number of files is large. This totally corrupts these indexes. Thanks. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Fri Dec 9 15:16:48 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 9 15:10:35 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB/Flat BinarySearch.pm, 1.18, 1.19 Message-ID: <200512092016.jB9KGmVL008071@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB/Flat In directory pub.open-bio.org:/tmp/cvs-serv8062/Bio/DB/Flat Modified Files: BinarySearch.pm Log Message: Bug 1917 Index: BinarySearch.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/Flat/BinarySearch.pm,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** BinarySearch.pm 18 Oct 2005 18:37:18 -0000 1.18 --- BinarySearch.pm 9 Dec 2005 20:16:46 -0000 1.19 *************** *** 1083,1125 **** sub _add_id_position { ! my ($self,$id,$pos,$fileid,$length,$secondary_id) = @_; ! ! if (!defined($id)) { ! $self->throw("No id defined. Can't add id position"); ! } ! if (!defined($pos)) { ! $self->throw("No position defined. Can't add id position"); ! } ! if ( ! defined($fileid)) { ! $self->throw("No fileid defined. Can't add id position"); ! } ! if (! defined($length) || $length <= 0) { ! $self->throw("No length defined or <= 0 [$length]. Can't add id position"); ! } ! ! $self->{_id}{$id}{_pos} = $pos; ! $self->{_id}{$id}{_length} = $length; ! $self->{_id}{$id}{_fileid} = $fileid; ! # Now the secondary ids ! foreach my $sec (keys (%$secondary_id)) { ! my $value = $secondary_id->{$sec}; ! $self->{_secondary_id}{$sec}{$value}{$id} = 1; ! } ! $self->{_maxidlength} = length($id) ! if !exists $self->{_maxidlength} or length($id) >= $self->{_maxidlength}; ! $self->{_maxfileidlength} = length($fileid) ! if !exists $self->{_maxfileidlength} or length($fileid) >= $self->{_maxidlength}; ! $self->{_maxposlength} = length($pos) ! if !exists $self->{_maxposlength} or length($pos) >= $self->{_maxposlength}; ! $self->{_maxlengthlength} = length($length) ! if !exists $self->{_maxlengthlength} or length($length) >= $self->{_maxlengthlength}; } --- 1083,1127 ---- sub _add_id_position { ! my ($self,$id,$pos,$fileid,$length,$secondary_id) = @_; ! if (!defined($id)) { ! $self->throw("No id defined. Can't add id position"); ! } ! if (!defined($pos)) { ! $self->throw("No position defined. Can't add id position"); ! } ! if ( ! defined($fileid)) { ! $self->throw("No fileid defined. Can't add id position"); ! } ! if (! defined($length) || $length <= 0) { ! $self->throw("No length defined or <= 0 [$length]. Can't add id position"); ! } ! $self->{_id}{$id}{_pos} = $pos; ! $self->{_id}{$id}{_length} = $length; ! $self->{_id}{$id}{_fileid} = $fileid; ! # Now the secondary ids ! foreach my $sec (keys (%$secondary_id)) { ! my $value = $secondary_id->{$sec}; ! $self->{_secondary_id}{$sec}{$value}{$id} = 1; ! } ! $self->{_maxidlength} = length($id) ! if !exists $self->{_maxidlength} or ! length($id) >= $self->{_maxidlength}; ! $self->{_maxfileidlength} = length($fileid) ! if !exists $self->{_maxfileidlength} or ! length($fileid) >= $self->{_maxfileidlength}; ! $self->{_maxposlength} = length($pos) ! if !exists $self->{_maxposlength} or ! length($pos) >= $self->{_maxposlength}; + $self->{_maxlengthlength} = length($length) + if !exists $self->{_maxlengthlength} or + length($length) >= $self->{_maxlengthlength}; } From bugzilla-daemon at portal.open-bio.org Fri Dec 9 15:11:15 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 9 15:58:10 2005 Subject: [Bioperl-guts-l] [Bug 1917] Incorrect record size in Bio::DB::Flat::BinarySearch index creation Message-ID: <200512092011.jB9KBFxB012094@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1917 osborne1@optonline.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #1 from osborne1@optonline.net 2005-12-09 15:11 ------- Done, thank you. ------- 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 Sun Dec 11 13:05:54 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Sun Dec 11 13:58:14 2005 Subject: [Bioperl-guts-l] [Bug 1916] script bp_pairwise_kaks.pl error Message-ID: <200512111805.jBBI5sTV003306@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1916 ------- Comment #3 from jason@open-bio.org 2005-12-11 13:05 ------- Also works for me, make sure clustalw/tcoffee and codeml and/or yn00 are installed properly and really run as this depends on all those application. Running PAML 3.14. ------- 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 Sun Dec 11 15:11:36 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Sun Dec 11 15:58:11 2005 Subject: [Bioperl-guts-l] [Bug 1916] script bp_pairwise_kaks.pl error Message-ID: <200512112011.jBBKBaXa005850@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1916 ------- Comment #4 from jason@open-bio.org 2005-12-11 15:11 ------- According to Jack -- "I was trying to run PAML 3.15. Apparently the output format has been modified. You are right that it worked with PAML 3.14." Jack - if you would submit a file which represents the 3.15 and 3.14 formats for the same input file (at least for the pairwise) so we can figure out what needs to change in the regexp, we can fix this in CVS. ------- 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 12 03:21:05 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Mon Dec 12 03:58:15 2005 Subject: [Bioperl-guts-l] [Bug 1918] New: Missing parameters in Bio::Tools::Run::Primer3 Message-ID: <200512120821.jBC8L5Cv019329@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1918 Summary: Missing parameters in Bio::Tools::Run::Primer3 Product: Bioperl Version: main-trunk Platform: PC OS/Version: Linux Status: NEW Severity: enhancement Priority: P2 Component: bioperl-run AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: ron@ron.dk I wish to use the Bio::Tools::Run::Primer3 module. I found that the PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS parameter is missing from the module. This is the warning I get: MSG: Parameter PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS is not a valid Primer3 parameter I then searched the module for more missing parameters. Below is a list of what I found. PRIMER_DEFAULT_PRODUCT PRIMER_DEFAULT_SIZE PRIMER_INSIDE_PENALTY PRIMER_INTERNAL_OLIGO_MAX_TEMPLATE_MISHYB PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS PRIMER_MAX_TEMPLATE_MISPRIMING PRIMER_OUTSIDE_PENALTY PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING PRIMER_PAIR_WT_TEMPLATE_MISPRIMING PRIMER_WT_TEMPLATE_MISPRIMING ------- 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 12 09:30:12 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Mon Dec 12 09:58:21 2005 Subject: [Bioperl-guts-l] [Bug 1918] Missing parameters in Bio::Tools::Run::Primer3 Message-ID: <200512121430.jBCEUBqb028367@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1918 ------- Comment #1 from osborne1@optonline.net 2005-12-12 09:30 ------- Rasmus, thanks for the submission. Could you attach a primer3 output file containing these values? It looks like most or all of these strings are missing from the output files we have in t/data, without a file we can't write any tests. ------- 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 12 19:30:17 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Mon Dec 12 19:58:12 2005 Subject: [Bioperl-guts-l] [Bug 1918] Missing parameters in Bio::Tools::Run::Primer3 Message-ID: <200512130030.jBD0UH7Y006835@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1918 ------- Comment #2 from osborne1@optonline.net 2005-12-12 19:30 ------- Rasmus, please disregard my previous request. First, what version of primer3 are you using? ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Mon Dec 12 22:13:03 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Mon Dec 12 22:07:16 2005 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run Primer3.pm,1.10,1.11 Message-ID: <200512130313.jBD3D3VL032013@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run In directory pub.open-bio.org:/tmp/cvs-serv32004/Bio/Tools/Run Modified Files: Primer3.pm Log Message: Let's try this Index: Primer3.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Primer3.pm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Primer3.pm 27 Sep 2005 14:15:59 -0000 1.10 --- Primer3.pm 13 Dec 2005 03:13:01 -0000 1.11 *************** *** 80,84 **** (bioinformatics1@dieselwurks.com) ! I have ripped some of his code, and added a lot of my own. I hope he's not mad at me! --- 80,84 ---- (bioinformatics1@dieselwurks.com) ! I have ripped some of his code, and added a lot of my own. I hope he is not mad at me! *************** *** 113,119 **** redwards@utmem.edu ! Based heavily on work of ! ! Chad Matsalla bioinformatics1@dieselwurks.com --- 113,117 ---- redwards@utmem.edu ! Based heavily on work of Chad Matsalla bioinformatics1@dieselwurks.com *************** *** 123,126 **** --- 121,125 ---- Shawn Hoon shawnh-at-stanford.edu Jason Stajich jason-at-bioperl.org + Brian Osborne osborne1 - optonline.net =head1 APPENDIX *************** *** 189,193 **** PRIMER_WT_GC_PERCENT_LT PRIMER_WT_NUM_NS PRIMER_WT_POS_PENALTY PRIMER_WT_REP_SIM PRIMER_WT_SEQ_QUAL PRIMER_WT_SIZE_GT ! PRIMER_WT_SIZE_LT PRIMER_WT_TM_GT PRIMER_WT_TM_LT SEQUENCE TARGET ); foreach my $attr (@PRIMER3_PARAMS) {$OK_FIELD{$attr}++} --- 188,203 ---- PRIMER_WT_GC_PERCENT_LT PRIMER_WT_NUM_NS PRIMER_WT_POS_PENALTY PRIMER_WT_REP_SIM PRIMER_WT_SEQ_QUAL PRIMER_WT_SIZE_GT ! PRIMER_WT_SIZE_LT PRIMER_WT_TM_GT PRIMER_WT_TM_LT SEQUENCE TARGET ! PRIMER_DEFAULT_PRODUCT ! PRIMER_DEFAULT_SIZE ! PRIMER_INSIDE_PENALTY ! PRIMER_INTERNAL_OLIGO_MAX_TEMPLATE_MISHYB ! PRIMER_OUTSIDE_PENALTY ! PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS ! PRIMER_MAX_TEMPLATE_MISPRIMING ! PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING ! PRIMER_PAIR_WT_TEMPLATE_MISPRIMING ! PRIMER_WT_TEMPLATE_MISPRIMING ! ); foreach my $attr (@PRIMER3_PARAMS) {$OK_FIELD{$attr}++} *************** *** 214,227 **** Function: Start primer3 working and adds a sequence. At the moment it will not clear out the old sequence, but I suppose it should. ! Returns : Doesn't return anything. If called with a filename will allow you to retrieve the results Args : -seq (optional) Bio::Seq object of sequence. This is required to run primer3 but can be added later with add_targets() ! -outfile file name to output results to (can also be added with $primer3->outfile_name ! -path path to primer3 executable, including program name, e.g. "/usr/bin/primer3_core". This can also be set with program_name and program_dir ! -verbose (optional) set verbose output Notes : --- 224,237 ---- Function: Start primer3 working and adds a sequence. At the moment it will not clear out the old sequence, but I suppose it should. ! Returns : Does not return anything. If called with a filename will allow you to retrieve the results Args : -seq (optional) Bio::Seq object of sequence. This is required to run primer3 but can be added later with add_targets() ! -outfile file name to output results to (can also be added with $primer3->outfile_name ! -path path to primer3 executable, including program name, e.g. "/usr/bin/primer3_core". This can also be set with program_name and program_dir ! -verbose (optional) set verbose output Notes : *************** *** 522,528 **** --- 532,541 ---- 'PRIMER_EXPLAIN_FLAG'=>'(boolean, default 0) If set it will print a bunch of information out.', 'PRIMER_PRODUCT_SIZE_RANGE'=>'(size range list, default 100-300) space separated list of product sizes eg - -', + + 'PRIMER_DEFAULT_PRODUCT' => '(size range list, default 100-300)', 'PRIMER_PICK_INTERNAL_OLIGO'=>'(boolean, default 0) if set, a hybridization probe will be selected', 'PRIMER_GC_CLAMP'=>'(int, default 0) Number of Gs and Cs at the 3 prime end.', 'PRIMER_OPT_SIZE'=>'(int, default 20) Optimal primer size. Primers will be close to this value in length', + 'PRIMER_DEFAULT_SIZE' => '(int, default 20)', 'PRIMER_MIN_SIZE'=>'(int, default 18) Minimum size. Must be 0 < PRIMER_MIN_SIZE < PRIMER_MAX_SIZE ', 'PRIMER_MAX_SIZE'=>'(int, default 27) Maximum size. Must be < 35.', *************** *** 606,684 **** 'PRIMER_IO_WT_REP_SIM'=>'(float, default 0.0)', 'PRIMER_IO_WT_SEQ_QUAL'=>'(float, default 0.0)', ! 'PRIMER_IO_WT_END_QUAL'=>'(float, default 0.0)'); $self->{'input_options'}=\%hash; return \%hash; } - ############################################################################## - # COMMENTS # - # # - # These comments are taken from the primer3 README file. They have an # - # abbreviated explanation of what's # - # what. You should read the readme file for more information # - # # - # I have used this list to generate defaults, and handle output from primer.# - # # - # Note that I have ignored some experimental and/or deprecated things. # - # # - # Rob Edwards 3/15/03 # - # # - ############################################################################## - - # OUTPUT TAGS - # each tage has PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO,PAIR}__ - # PRIMER_ERROR (string) describes user-correctible errors detected in the input. - # Absent if no errors. - # PRIMER_LEFT (start, length) The selected left primer. Start is the 0-based - # index of the FIRST base, length its length. - # PRIMER_RIGHT (start, length) The selected right primer. Start is the 0-based - # index of the LAST base, length its length. - # PRIMER_INTERNAL_OLIGO (start, length) The selected internal oligo. - # Start is the 0-based index of start base of the primer. - # PRIMER_PRODUCT_SIZE (integer) The product size of the PCR product. - # PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_EXPLAIN (string) String containing - # statistics on the possiblities that primer3 considered in selecting a single oligo. - # PRIMER_PAIR_EXPLAIN (string) String containing statistics on picking a - # primer pair (plus internal oligo if requested). - # PRIMER_PAIR_PENALTY (float) The score for this pair (lower is better). - # PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_PENALTY (float) The score for the primer - # selected (lower is better). - # PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_SEQUENCE (string) The sequence of the - # oligo. All seqs are 5'->3' - # PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_TM (float) The Tm for the selected oligo. - # PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_GC_PERCENT (float) The percent GC for - # the selected oligo - # PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_SELF_ANY (float) Score of complimentarity - # for the oligo - # PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_SELF_END (float) Score of complimentarity - # for the oligo - # PRIMER_PAIR_COMPL_ANY (float) Score of complimentarity for the pair - # PRIMER_PAIR_COMPL_END (float) Score of complimentarity for the pair - # PRIMER_WARNING (string) Warnings generated by primer (separated by semicolons); - # PRIMER_{LEFT,RIGHT,PAIR}_MISPRIMING_SCORE (float, string) Maximum mispriming - # score for the primer, string is the id of corresponding library sequence. - # PRIMER_PRODUCT_TM (float) Tm of the product - # PRIMER_PRODUCT_TM_OLIGO_TM_DIFF (float) Tm difference - # PRIMER_PAIR_T_OPT_A (float) - # PRIMER_INTERNAL_OLIGO_MISHYB_SCORE (float, string) Maximum mishybridization - # score and id of the sequence in MISHYB_LIBRARY - # PRIMER_{LEFT,RIGHT,INTERNAL_OLIGO}_MIN_SEQ_QUALITY (int) Minimum SEQUENCE - # quality from (e.g. phred scores) - # PRIMER_{LEFT,RIGHT}_END_STABILITY (float) Delta G of disruption of the five - # 3' bases of the oligo. - # PRIMER_STOP_CODON_POSITION (int) Position of the first base of the stop - # codon, if Primer3 found one, or -1 if Primer3 did not. - - - # PRIMER3 EXIT STATUS CODES - # 0 on normal operation - # -1 under the following conditions: - # illegal command-line arguments. - # unable to fflush stdout. - # unable to open (for writing and creating) a .for, .rev - # or .int file (probably due to a protection problem). - # -2 on out-of-memory - # -3 empty input - # -4 error in a "Global" input tag (message in PRIMER_ERROR). 1; --- 619,636 ---- 'PRIMER_IO_WT_REP_SIM'=>'(float, default 0.0)', 'PRIMER_IO_WT_SEQ_QUAL'=>'(float, default 0.0)', ! 'PRIMER_IO_WT_END_QUAL'=>'(float, default 0.0)', ! 'PRIMER_INSIDE_PENALTY' => '(float, default -1.0)', ! 'PRIMER_INTERNAL_OLIGO_MAX_TEMPLATE_MISHYB' => '(decimal 9999.99, default 12.00)', ! 'PRIMER_OUTSIDE_PENALTY' => '(float, default 0.0)', ! 'PRIMER_LIB_AMBIGUITY_CODES_CONSENSUS' => '(boolean, default 1)', ! 'PRIMER_MAX_TEMPLATE_MISPRIMING' => '(decimal,9999.99, default -1.00)', ! 'PRIMER_PAIR_MAX_TEMPLATE_MISPRIMING' => '(decimal,9999.99, default -1.00)', ! 'PRIMER_PAIR_WT_TEMPLATE_MISPRIMING' => '(float, default 0.0)', ! 'PRIMER_WT_TEMPLATE_MISPRIMING' => '(float, default 0.0)' ! ); $self->{'input_options'}=\%hash; return \%hash; } 1; From bugzilla-daemon at portal.open-bio.org Mon Dec 12 22:08:28 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Mon Dec 12 22:58:34 2005 Subject: [Bioperl-guts-l] [Bug 1918] Missing parameters in Bio::Tools::Run::Primer3 Message-ID: <200512130308.jBD38SHL009417@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1918 ------- Comment #3 from osborne1@optonline.net 2005-12-12 22:08 ------- Rasmus, please check the latest version in bioperl-live, it may work for you. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From tseemann at pub.open-bio.org Tue Dec 13 00:52:28 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Tue Dec 13 00:45:54 2005 Subject: [Bioperl-guts-l] bioperl-live/maintenance check_URLs.pl,NONE,1.1 Message-ID: <200512130552.jBD5qSVL032338@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/maintenance In directory pub.open-bio.org:/tmp/cvs-serv32323 Added Files: check_URLs.pl Log Message: Script to identify invalid and non-existent URLs embedded in module code and POD. Useful for maintainers only. --- NEW FILE: check_URLs.pl --- #!/usr/bin/perl -w =head1 NAME check_URLs.pl - validate URLs located in module code and POD =head1 SYNOPSIS B [B<-d|--dir> path] [B<-v|--verbose>] [B<-?|-h|--help>] =head1 DESCRIPTION Checks code and POD of all bioperl-live modules for URLs, and validates them. Output is a series of lines containing two fields, tab separated. The first field is the file with the bad URL, the second is the URL itself. The whole URL is not retrieved, only a HTTP "HEAD" request is done to see if the URL exists on the server. The request is done using B so the B environmental variable will be honoured. The URL parsing may not be perfect - although I use the B module, I have to manually clean up some URLs which are embedded in Perl strings to convert the matched URL to a more probable real world URL, e.g. most URLs don't end in "'," or ")" :-) =cut use strict; use Data::Dumper; use File::Find; use Getopt::Long; use Regexp::Common qw(URI); use LWP::Simple; # # command line options # my ($verbose, $dir, $help) = (0, '../Bio/', undef); GetOptions( 'v|verbose' => \$verbose, 'd|dir:s' => \$dir, 'h|help|?' => sub{ exec('perldoc',$0); exit(0) } ); # # globals # my %URL; # # find all modules # find( \&find_modules, $dir ); # # validate unique URLs and print fail cases to stdout # for my $url (keys %URL) { print STDERR "Checking $url ... "; my $ok = head($url); print STDERR ($ok ? 'ok' : 'FAIL!'), "\n"; if (not $ok) { for my $file (@{ $URL{$url} }) { print "$file\t$url\n"; } } } print STDERR Dumper(\%URL) if $verbose; # # this is where the action is # sub find_modules { # only want files with .pm return unless m/\.pm$/; return unless -f $_; my $fname = $_; print STDERR "$fname\n" if $verbose; # slurp in the file my $text = do { local( @ARGV, $/ ) = $fname ; <> } ; # keep track of URLs while ($text =~ m/$RE{URI}{HTTP}{-keep}/g) { my $url = $1 or next; # remove Perl code if URL was embedded in string and other stuff $url =~ s/(['"]\s*[,;]?|\))$//; print STDERR "$url\n" if $verbose; push @{ $URL{$url} } , $File::Find::name; } } =head1 OPTIONS =over 3 =item B<-d | --dir> path Overides the default directory to recursively look for .pm file (Default is '../Bio') =item B<-v | --verbose> Show the progress through files during the POD checking. =item B<-? | -h | --help> This help text. =back =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@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 - Torsten Seemann Email tseemann-at-bioperl-dot-org =cut From tseemann at pub.open-bio.org Tue Dec 13 01:08:17 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Tue Dec 13 01:01:42 2005 Subject: [Bioperl-guts-l] bioperl-live/maintenance check_URLs.pl,1.1,1.2 Message-ID: <200512130608.jBD68HVL032393@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/maintenance In directory pub.open-bio.org:/tmp/cvs-serv32376 Modified Files: check_URLs.pl Log Message: Fix regexp to also clean URLs ending with ")." Index: check_URLs.pl =================================================================== RCS file: /home/repository/bioperl/bioperl-live/maintenance/check_URLs.pl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** check_URLs.pl 13 Dec 2005 05:52:26 -0000 1.1 --- check_URLs.pl 13 Dec 2005 06:08:15 -0000 1.2 *************** *** 94,98 **** my $url = $1 or next; # remove Perl code if URL was embedded in string and other stuff ! $url =~ s/(['"]\s*[,;]?|\))$//; print STDERR "$url\n" if $verbose; push @{ $URL{$url} } , $File::Find::name; --- 94,98 ---- my $url = $1 or next; # remove Perl code if URL was embedded in string and other stuff ! $url =~ s/(['"]\s*[,;]?|\)\.?)$//; print STDERR "$url\n" if $verbose; push @{ $URL{$url} } , $File::Find::name; From tseemann at pub.open-bio.org Tue Dec 13 01:35:41 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Tue Dec 13 01:29:05 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools RestrictionEnzyme.pm, 1.29, 1.30 Message-ID: <200512130635.jBD6ZfVL032456@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv32441/Bio/Tools Modified Files: RestrictionEnzyme.pm Log Message: Fixed ReBASE URL in POD. Index: RestrictionEnzyme.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/RestrictionEnzyme.pm,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** RestrictionEnzyme.pm 27 Sep 2005 16:06:03 -0000 1.29 --- RestrictionEnzyme.pm 13 Dec 2005 06:35:38 -0000 1.30 *************** *** 67,73 **** This module is a precursor for a more full featured version that may do such ! things as download data from online databases such as REBase http://www.neb.com/rebase/. ! Thus, there is currently no functionality for obtaining data about commercial ! availability for a restriction enzyme. At some point in the future, it may make sense to derive RestrictionEnzymes --- 67,73 ---- This module is a precursor for a more full featured version that may do such ! things as download data from online databases such as REBase http://rebase.neb.com/ . ! Thus, there is currently no functionality for obtaining data regarding commercial ! availability of a restriction enzyme. At some point in the future, it may make sense to derive RestrictionEnzymes From tseemann at pub.open-bio.org Tue Dec 13 02:46:12 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Tue Dec 13 02:39:37 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Alignment Consed.pm, 1.37, 1.38 Message-ID: <200512130746.jBD7kCVL032581@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Alignment In directory pub.open-bio.org:/tmp/cvs-serv32566/Bio/Tools/Alignment Modified Files: Consed.pm Log Message: Corrected comment URL reference to 'tcgrep' Index: Consed.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Alignment/Consed.pm,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** Consed.pm 9 Dec 2005 12:18:00 -0000 1.37 --- Consed.pm 13 Dec 2005 07:46:10 -0000 1.38 *************** *** 223,227 **** # this should be migrated to a pure perl implementation ala # Tom Christiansen's 'tcgrep' ! # http://www.perl.com/language/ppt/src/grep/tcgrep open(FILE, $self->{'filename'}) or do { $self->warn("cannot open file ".$self->{'filename'}. " for grepping"); return}; --- 223,227 ---- # this should be migrated to a pure perl implementation ala # Tom Christiansen's 'tcgrep' ! # http://www.cpan.org/modules/by-authors/id/TOMC/scripts/tcgrep.gz open(FILE, $self->{'filename'}) or do { $self->warn("cannot open file ".$self->{'filename'}. " for grepping"); return}; From tseemann at pub.open-bio.org Tue Dec 13 02:48:56 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Tue Dec 13 02:42:21 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Analysis/Protein Scansite.pm, 1.10, 1.11 Message-ID: <200512130748.jBD7muVL032624@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Analysis/Protein In directory pub.open-bio.org:/tmp/cvs-serv32609/Bio/Tools/Analysis/Protein Modified Files: Scansite.pm Log Message: Corrected URL for MIT's ScanSite web site Index: Scansite.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Analysis/Protein/Scansite.pm,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Scansite.pm 27 Sep 2005 13:08:47 -0000 1.10 --- Scansite.pm 13 Dec 2005 07:48:54 -0000 1.11 *************** *** 100,104 **** =back ! See L. This inherits Bio::SimpleAnalysisI which hopefully makes it easier to --- 100,104 ---- =back ! See L. This inherits Bio::SimpleAnalysisI which hopefully makes it easier to From tseemann at pub.open-bio.org Tue Dec 13 02:54:24 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Tue Dec 13 02:47:48 2005 Subject: [Bioperl-guts-l] bioperl-live AUTHORS,1.43,1.44 Message-ID: <200512130754.jBD7sNVL032653@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live In directory pub.open-bio.org:/tmp/cvs-serv32636 Modified Files: AUTHORS Log Message: Added "Torsten Seemann" to contributing author list Index: AUTHORS =================================================================== RCS file: /home/repository/bioperl/bioperl-live/AUTHORS,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** AUTHORS 19 Aug 2005 14:02:22 -0000 1.43 --- AUTHORS 13 Dec 2005 07:54:21 -0000 1.44 *************** *** 178,181 **** --- 178,183 ---- =item * Peter Schattner + =item * Torsten Seemann -- Bio::Tools::Run::StandaloneBlast + =item * Martin Senger -- Bio::Biblio From tseemann at pub.open-bio.org Tue Dec 13 03:00:10 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Tue Dec 13 02:53:37 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools pICalculator.pm,1.5,1.6 Message-ID: <200512130800.jBD80AVL032692@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv32672/Bio/Tools Modified Files: pICalculator.pm Log Message: Correct URL for description of EMBOSS "iep" program Index: pICalculator.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/pICalculator.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** pICalculator.pm 8 Dec 2005 22:50:13 -0000 1.5 --- pICalculator.pm 13 Dec 2005 08:00:08 -0000 1.6 *************** *** 49,53 **** http://fields.scripps.edu/DTASelect/20010710-pI-Algorithm.pdf ! http://www.hgmp.mrc.ac.uk/Software/EMBOSS/Apps/iep.html http://us.expasy.org/tools/pi_tool.html --- 49,53 ---- http://fields.scripps.edu/DTASelect/20010710-pI-Algorithm.pdf ! http://emboss.sourceforge.net/apps/iep.html http://us.expasy.org/tools/pi_tool.html *************** *** 124,128 **** # pK values from the iep program from EMBOSS ! # http://www.hgmp.mrc.ac.uk/Software/EMBOSS/ my $Emboss_pK = { N_term => 8.6, K => 10.8, # Lys --- 124,128 ---- # pK values from the iep program from EMBOSS ! # http://emboss.sourceforge.net/apps/iep.html my $Emboss_pK = { N_term => 8.6, K => 10.8, # Lys From tseemann at pub.open-bio.org Tue Dec 13 03:02:28 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Tue Dec 13 02:55:52 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools OddCodes.pm,1.16,1.17 Message-ID: <200512130802.jBD82SVL032716@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv32701/Bio/Tools Modified Files: OddCodes.pm Log Message: Corrected URL for bugzilla (removed "www." prefix) Index: OddCodes.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/OddCodes.pm,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** OddCodes.pm 9 Dec 2005 12:18:00 -0000 1.16 --- OddCodes.pm 13 Dec 2005 08:02:26 -0000 1.17 *************** *** 108,112 **** web: ! http://www.bugzilla.bioperl.org/ =head1 AUTHOR --- 108,112 ---- web: ! http://bugzilla.bioperl.org/ =head1 AUTHOR From tseemann at pub.open-bio.org Tue Dec 13 03:10:39 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Tue Dec 13 03:04:03 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Blast Sbjct.pm,1.21,1.22 Message-ID: <200512130810.jBD8AdVL032756@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Blast In directory pub.open-bio.org:/tmp/cvs-serv32741/Bio/Tools/Blast Modified Files: Sbjct.pm Log Message: Removed dead links and cleaned up "SEE ALSO" section. Index: Sbjct.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Blast/Sbjct.pm,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** Sbjct.pm 27 Sep 2005 13:08:47 -0000 1.21 --- Sbjct.pm 13 Dec 2005 08:10:37 -0000 1.22 *************** *** 186,201 **** =head1 SEE ALSO ! Bio::Tools::Blast::HSP.pm - Blast HSP object. ! Bio::Tools::Blast.pm - Blast object. ! Bio::Root::Object.pm - Proposed base class for all Bioperl objects. ! ! Links: ! ! http://bio.perl.org/Core/POD/Tools/Blast/HSP.pm.html ! ! http://bio.perl.org/Projects/modules.html - Online module documentation ! http://bio.perl.org/Projects/Blast/ - Bioperl Blast Project ! http://bio.perl.org/ - Bioperl Project Homepage ! =head1 FEEDBACK --- 186,192 ---- =head1 SEE ALSO ! L - Blast HSP object. ! L - Blast object. ! L - Proposed base class for all Bioperl objects. =head1 FEEDBACK From bugzilla-daemon at portal.open-bio.org Tue Dec 13 07:15:39 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Tue Dec 13 07:58:16 2005 Subject: [Bioperl-guts-l] [Bug 1918] Missing parameters in Bio::Tools::Run::Primer3 Message-ID: <200512131215.jBDCFdfF016843@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1918 ------- Comment #4 from ron@ron.dk 2005-12-13 07:15 ------- Brian, thanks a lot. It works now (btw, I am using primer3 release 1.0). I am really impressed of how quick this got fixed. ------- 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 13 08:55:29 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Tue Dec 13 08:58:25 2005 Subject: [Bioperl-guts-l] [Bug 1918] Missing parameters in Bio::Tools::Run::Primer3 Message-ID: <200512131355.jBDDtTIv019026@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1918 osborne1@optonline.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #5 from osborne1@optonline.net 2005-12-13 08:55 ------- You're welcome. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Tue Dec 13 09:15:15 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Tue Dec 13 09:08:43 2005 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run Primer3.pm,1.11,1.12 Message-ID: <200512131415.jBDEFFVL001282@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run In directory pub.open-bio.org:/tmp/cvs-serv1273/Bio/Tools/Run Modified Files: Primer3.pm Log Message: Mention release 1 compatibility Index: Primer3.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Primer3.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Primer3.pm 13 Dec 2005 03:13:01 -0000 1.11 --- Primer3.pm 13 Dec 2005 14:15:12 -0000 1.12 *************** *** 31,34 **** --- 31,43 ---- =head1 SYNOPSIS + Bio::Tools::Primer3 creates the input files needed to design primers + using primer3 and provides mechanisms to access data in the primer3 + output files. + + This module provides a bioperl interface to the program primer3. See + http://frodo.wi.mit.edu/primer3/primer3_code.html for + details and to download the software. This module should work for + primer3 release 1 but is not guaranteed to work with earlier versions. + # design some primers. # the output will be put into temp.out *************** *** 69,85 **** print "There were ", $results->number_of_results, " primers\n"; - Bio::Tools::Primer3 creates the input files needed to design primers - using primer3 and provides mechanisms to access data in the primer3 - output files. - - This module provides a bioperl interface to the program primer3. See - http://www-genome.wi.mit.edu/genome_software/other/primer3.html for - details and to download the software. - This module is based on one written by Chad Matsalla ! (bioinformatics1@dieselwurks.com) ! ! I have ripped some of his code, and added a lot of my own. I hope he is ! not mad at me! The original version was designed to work with PrimedSeq and --- 78,84 ---- print "There were ", $results->number_of_results, " primers\n"; This module is based on one written by Chad Matsalla ! (bioinformatics1@dieselwurks.com). I have ripped some of his code, and ! added a lot of my own. I hope he is not mad at me! The original version was designed to work with PrimedSeq and *************** *** 121,125 **** Shawn Hoon shawnh-at-stanford.edu Jason Stajich jason-at-bioperl.org ! Brian Osborne osborne1 - optonline.net =head1 APPENDIX --- 120,130 ---- Shawn Hoon shawnh-at-stanford.edu Jason Stajich jason-at-bioperl.org ! Brian Osborne osborne1-at-optonline.net ! ! ! =head1 SEE ALSO ! ! L ! =head1 APPENDIX *************** *** 295,299 **** } ! # we need to stop here if we know what the answer is, otherwise we can never set it and then call it later return $self->{'program_dir'} if $self->{'program_dir'}; --- 300,305 ---- } ! # we need to stop here if we know what the answer is, otherwise we can ! # never set it and then call it later return $self->{'program_dir'} if $self->{'program_dir'}; From bosborne at pub.open-bio.org Tue Dec 13 21:35:05 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Tue Dec 13 21:28:36 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Seq PrimedSeq.pm,1.17,1.18 Message-ID: <200512140235.jBE2Z5VL003285@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Seq In directory pub.open-bio.org:/tmp/cvs-serv3276/Bio/Seq Modified Files: PrimedSeq.pm Log Message: POD corrections, formatting Index: PrimedSeq.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Seq/PrimedSeq.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** PrimedSeq.pm 21 Oct 2005 16:27:57 -0000 1.17 --- PrimedSeq.pm 14 Dec 2005 02:35:02 -0000 1.18 *************** *** 32,37 **** =head1 SYNOPSIS ! The easiest way to use this is probably either, (i), get the output from ! Bio::Tools::Run::Primer3, Bio::Tools::Primer3, or Bio::Tools::PCRSimulation: # For example, start with a fasta file --- 32,38 ---- =head1 SYNOPSIS ! The easiest way to use this is probably either, (i), get the output ! from Bio::Tools::Run::Primer3, Bio::Tools::Primer3, or ! Bio::Tools::PCRSimulation: # For example, start with a fasta file *************** *** 43,49 **** my $seqin = Bio::SeqIO->new(-file => $file); my $seq = $seqin->next_seq; # use primer3 to design some primers my $primer3run = Bio::Tools::Run::Primer3->new(-seq => $seq); ! $primer3run -> run; # we'll just run it with the default parameters # create a file to write the results to --- 44,51 ---- my $seqin = Bio::SeqIO->new(-file => $file); my $seq = $seqin->next_seq; + # use primer3 to design some primers my $primer3run = Bio::Tools::Run::Primer3->new(-seq => $seq); ! $primer3run -> run; # run it with the default parameters # create a file to write the results to *************** *** 76,80 **** # open a file for output my $seqout = Bio::SeqIO->new(-file => ">primed_sequence.gbk", ! -format => 'genbank'); # print the sequence out $seqout->write_seq($primedseq->annotated_sequence); --- 78,82 ---- # open a file for output my $seqout = Bio::SeqIO->new(-file => ">primed_sequence.gbk", ! -format => 'genbank'); # print the sequence out $seqout->write_seq($primedseq->annotated_sequence); *************** *** 84,96 **** =head1 DESCRIPTION ! This module is a slightly glorified capsule containg a primed sequence. It was ! created to address the fact that a primer is more the a seqfeature and there ! need to be ways to represent the primer-sequence complex and the behaviors and ! attributes that are associated with the complex. The primers are represented as Bio::SeqFeature::Primer objects, and should ! be instatiated first. ! The simplest way to initiate a PrimedSeq object is as follows: my $primedseq = Bio::Seq::PrimedSeq->new( --- 86,98 ---- =head1 DESCRIPTION ! This module is a slightly glorified capsule containing a primed sequence. ! It was created to address the fact that a primer is more than a seqfeature ! and there need to be ways to represent the primer-sequence complex and ! the behaviors and attributes that are associated with the complex. The primers are represented as Bio::SeqFeature::Primer objects, and should ! be instantiated first. ! The simplest way to create a PrimedSeq object is as follows: my $primedseq = Bio::Seq::PrimedSeq->new( *************** *** 114,118 **** bioperl-l@bioperl.org - General discussion ! http://bio.perl.org/MailList.html - About the mailing lists =head2 Reporting Bugs --- 116,120 ---- bioperl-l@bioperl.org - General discussion ! http://bio.perl.org/MailList.html - About the mailing lists =head2 Reporting Bugs *************** *** 178,188 **** Function: A constructor for an object representing a primed sequence Returns : A Bio::Seq::PrimedSeq object ! Args : -target_sequence => a Bio::Seq object (required) -left_primer => a Bio::SeqFeature::Primer object (required) -right_primer => a Bio::SeqFeature::Primer object (required) Many other parameters can be included including all of the output ! parameters from the primer3 program. At the moment some of these ! parameters (most...) will not do anything. =cut --- 180,190 ---- Function: A constructor for an object representing a primed sequence Returns : A Bio::Seq::PrimedSeq object ! Args : -seq => a Bio::Seq object (required) -left_primer => a Bio::SeqFeature::Primer object (required) -right_primer => a Bio::SeqFeature::Primer object (required) Many other parameters can be included including all of the output ! parameters from the primer3 program. At the moment most of these ! parameters will not do anything. =cut *************** *** 190,241 **** sub new { ! # note, I have cleaned up a lot of the script that Chad had written here, ! # and I have removed the part where he removed the - before the tags. ! # Very confusing. ! my($class,%args) = @_; ! my $self = $class->SUPER::new(%args); # these are the absolute minimum components required to make # a primedseq ! foreach my $key (keys %args) { ! if ($key eq "-seq" || $key eq "-SEQ") { ! $self->{target_sequence} = $args{$key}; ! next; ! } else { ! my $okey; ! ($okey=$key)=~s/^-//;; ! if (($okey eq "left_primer" || $okey eq "right_primer") && ! ref($args{$key}) && $args{$key}->isa('Bio::SeqI') ) { ! # we have been parsed a bio seq object. ! # Make it a Bio::SeqFeature::Primer object ! $self->{$okey} = Bio::SeqFeature::Primer->new(-seq=>$args{$key}); ! push @{$self->{'arguments'}},$okey; ! next; ! } ! $self->{$okey} = $args{$key}; ! push @{$self->{'arguments'}},$okey; ! } ! } ! # and now the insurance- make sure that things are ok ! if (!$self->{target_sequence} || !$self->{left_primer} || !$self->{right_primer} ) { ! $self->throw("You must provide a -target_sequence, -left_primer, and -right_primer to create this object."); ! } ! if (! ref($self->{target_sequence}) || ! ! $self->{target_sequence}->isa('Bio::SeqI') ) { ! $self->throw("The target_sequence must be a Bio::Seq to create this object."); ! } ! if (! ref($self->{left_primer}) || ! ! $self->{left_primer}->isa("Bio::SeqFeature::Primer") || ! ! ref($self->{right_primer}) || ! ! $self->{right_primer}->isa("Bio::SeqFeature::Primer")) { ! $self->throw("You must provide a left_primer and right_primer, both as Bio::SeqFeature::Primer to create this object."); } ! # now we have the sequences, lets find out where they are ! $self->_place_seqs(); ! return $self; } --- 192,244 ---- sub new { ! # note, I have cleaned up a lot of the script that Chad had written here, ! # and I have removed the part where he removed the - before the tags. ! # Very confusing. ! my($class,%args) = @_; ! my $self = $class->SUPER::new(%args); # these are the absolute minimum components required to make # a primedseq ! foreach my $key (keys %args) { ! if ($key =~ /^-seq/i) { ! $self->{target_sequence} = $args{$key}; ! next; ! } else { ! my $okey; ! ($okey = $key) =~ s/^-//; ! if (($okey eq "left_primer" || $okey eq "right_primer") && ! ref($args{$key}) && $args{$key}->isa('Bio::SeqI') ) { ! # We have been given a Bio::Seq object, ! # make it a Bio::SeqFeature::Primer object ! $self->{$okey} = Bio::SeqFeature::Primer->new(-seq => $args{$key}); ! push @{$self->{'arguments'}},$okey; ! next; ! } ! $self->{$okey} = $args{$key}; ! push @{$self->{'arguments'}},$okey; ! } ! } ! # and now the insurance - make sure that things are ok ! if (!$self->{target_sequence} || !$self->{left_primer} || ! !$self->{right_primer} ) { ! $self->throw("You must provide a -seq, -left_primer, and -right_primer to create this object."); ! } ! if (! ref($self->{target_sequence}) || ! ! $self->{target_sequence}->isa('Bio::SeqI') ) { ! $self->throw("The target_sequence must be a Bio::Seq to create this object."); } + if (! ref($self->{left_primer}) || + ! $self->{left_primer}->isa("Bio::SeqFeature::Primer") || + ! ref($self->{right_primer}) || + ! $self->{right_primer}->isa("Bio::SeqFeature::Primer")) { + $self->throw("You must provide a left_primer and right_primer, both as Bio::SeqFeature::Primer to create this object."); + } ! # now we have the sequences, lets find out where they are ! $self->_place_seqs(); ! return $self; } *************** *** 244,258 **** Title : get_primer(); ! Usage : $primer = $primedseq->get_primer(l, left, left_primer, -left_primer) ! to return the left primer or ! $primer = $primedseq->get_primer(r, right, right_primer, -right_primer) ! to return the right primer or ! $primer = $primedseq->get_primer(b, both, both_primers, -both_primers) to return the left primer, right primer array Function: A getter for the left primer in thie PrimedSeq object. Returns : A Bio::SeqFeature::Primer object ! Args : Either of (l, left, left_primer, -left_primer) to get left primer. ! Either of (r, right, right_primer, -right_primer) to get right primer ! Either of (b, both, both_primers, -both_primers) to get both primers. Note that this is plural. [default] --- 247,265 ---- Title : get_primer(); ! Usage : $primer = $primedseq->get_primer(l, left, left_primer, ! -left_primer) to return the left primer or ! $primer = $primedseq->get_primer(r, right, right_primer, ! -right_primer) to return the right primer or ! $primer = $primedseq->get_primer(b, both, both_primers, ! -both_primers) to return the left primer, right primer array Function: A getter for the left primer in thie PrimedSeq object. Returns : A Bio::SeqFeature::Primer object ! Args : Either of (l, left, left_primer, -left_primer) to get left ! primer. ! Either of (r, right, right_primer, -right_primer) to get ! right primer ! Either of (b, both, both_primers, -both_primers) to get ! both primers. Note that this is plural. [default] *************** *** 278,286 **** Title : annotated_sequence Usage : $annotated_sequence_object = $primedseq->annotated_sequence() ! Function: Get an annotated sequence object containg the left and right primers Returns : An annotated sequence object or 0 if not defined. Args : ! Note : Use this method to return a sequence object that you can write out ! (e.g. in GenBank format). See the example above. =cut --- 285,294 ---- Title : annotated_sequence Usage : $annotated_sequence_object = $primedseq->annotated_sequence() ! Function: Get an annotated sequence object containg the left and right ! primers Returns : An annotated sequence object or 0 if not defined. Args : ! Note : Use this method to return a sequence object that you can write ! out (e.g. in GenBank format). See the example above. =cut *************** *** 315,319 **** - =head2 seq --- 323,326 ---- *************** *** 336,341 **** Title : _place_seqs Usage : $self->_place_seqs() ! Function: An internal method to place the primers on the sequence and set up ! the ranges of the sequences Returns : Nothing Args : None --- 343,348 ---- Title : _place_seqs Usage : $self->_place_seqs() ! Function: An internal method to place the primers on the sequence and ! set up the ranges of the sequences Returns : Nothing Args : None *************** *** 419,429 **** Title : _set_seqfeature Usage : $self->_set_seqfeature() ! Function: An internal method to create Bio::SeqFeature::Generic objects for ! the primed seq Returns : Nothing Args : None ! Note : Internal use only. Should only call this once left and right primers ! have been placed on the sequence. This will then set them as sequence ! features so hopefully we can get a nice output with write_seq. =cut --- 426,437 ---- Title : _set_seqfeature Usage : $self->_set_seqfeature() ! Function: An internal method to create Bio::SeqFeature::Generic objects ! for the primed seq Returns : Nothing Args : None ! Note : Internal use only. Should only call this once left and right ! primers have been placed on the sequence. This will then set ! them as sequence features so hopefully we can get a nice output ! with write_seq. =cut *************** *** 432,438 **** sub _set_seqfeature { my $self = shift; ! unless ($self->{'left_primer'}->{'PRIMER_LEFT'} && $self->{'right_primer'}->{'PRIMER_RIGHT'}) { ! $self->warn("hmmm. Haven't placed primers, but trying to make annotated sequence"); ! return 0; } my ($start, $length) = split /,/, $self->{'left_primer'}->{'PRIMER_LEFT'}; --- 440,447 ---- sub _set_seqfeature { my $self = shift; ! unless ($self->{'left_primer'}->{'PRIMER_LEFT'} && ! $self->{'right_primer'}->{'PRIMER_RIGHT'}) { ! $self->warn("hmmm. Haven't placed primers, but trying to make annotated sequence"); ! return 0; } my ($start, $length) = split /,/, $self->{'left_primer'}->{'PRIMER_LEFT'}; From bugzilla-daemon at portal.open-bio.org Tue Dec 13 22:46:38 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Tue Dec 13 22:58:43 2005 Subject: [Bioperl-guts-l] [Bug 1916] script bp_pairwise_kaks.pl error Message-ID: <200512140346.jBE3kcwd002243@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1916 ------- Comment #5 from jason@open-bio.org 2005-12-13 22:46 ------- Created an attachment (id=258) --> (http://bugzilla.open-bio.org/attachment.cgi?id=258&action=view) yn00 3.15 result ------- 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 13 22:47:12 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Tue Dec 13 22:58:47 2005 Subject: [Bioperl-guts-l] [Bug 1916] script bp_pairwise_kaks.pl error Message-ID: <200512140347.jBE3lC9F002257@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1916 ------- Comment #6 from jason@open-bio.org 2005-12-13 22:47 ------- Created an attachment (id=259) --> (http://bugzilla.open-bio.org/attachment.cgi?id=259&action=view) yn00 3.14 result ------- 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 13 22:54:09 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Tue Dec 13 22:58:48 2005 Subject: [Bioperl-guts-l] [Bug 1911] Deep recursion when reading newick tree Message-ID: <200512140354.jBE3s92Q002388@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1911 jason@open-bio.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |WORKSFORME ------- Comment #5 from jason@open-bio.org 2005-12-13 22:54 ------- Tis a perl warning only when you have a very deep tree, we will close this as a bug. I'll leave it as WORKSFORME since it isn't really a bug in the code. Although we could perhaps implements this as a non-recursive structure to avoid the warnings, this leads to less maintainable code. ------- 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 Wed Dec 14 08:24:57 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Wed Dec 14 08:58:49 2005 Subject: [Bioperl-guts-l] [Bug 1911] Deep recursion when reading newick tree Message-ID: <200512141324.jBEDOvqC014903@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1911 ------- Comment #6 from heikki@ebi.ac.uk 2005-12-14 08:24 ------- I believe one can turn of the deep recursion warning like all other ones by setting 'no warnings' on that section of the code. Worth doing? (According to one page, that warning is printed if recursion happens over 100 times). ------- 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 Wed Dec 14 12:28:06 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Wed Dec 14 12:58:13 2005 Subject: [Bioperl-guts-l] [Bug 1911] Deep recursion when reading newick tree Message-ID: <200512141728.jBEHS6uR020615@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1911 ------- Comment #7 from jason@open-bio.org 2005-12-14 12:28 ------- You can make the warnings go away by adding this to your script: no warnings 'recursion'; But I think this has to be in the script not in the module... ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Wed Dec 14 13:53:41 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Wed Dec 14 13:46:55 2005 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run Primer3.pm,1.12,1.13 Message-ID: <200512141853.jBEIrfVL006860@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run In directory pub.open-bio.org:/tmp/cvs-serv6851/Bio/Tools/Run Modified Files: Primer3.pm Log Message: _set_variable() was in Bio/Tools/Primer3.pm but was unused by that module, actually used only by Bio/Tools/Run/Primer3.pm so move it there Index: Primer3.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Primer3.pm,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Primer3.pm 13 Dec 2005 14:15:12 -0000 1.12 --- Primer3.pm 14 Dec 2005 18:53:39 -0000 1.13 *************** *** 42,46 **** # design some primers. # the output will be put into temp.out - use Bio::Tools::Run::Primer3; use Bio::SeqIO; --- 42,45 ---- *************** *** 82,90 **** added a lot of my own. I hope he is not mad at me! - The original version was designed to work with PrimedSeq and - Bio::SeqFeature::Primer. I will try and include those compatibilities - too, but as of this writing neither are fully developed, so we'll see - how far we get. - =head1 FEEDBACK --- 81,84 ---- *************** *** 639,642 **** --- 633,652 ---- } + =head2 _set_variable + + Title : _set_variable() + Usage : $self->_set_variable('variable name', 'value'); + Function: An internal function that sets a variable + Returns : Nothing. + Args : None + Notes : Used to set $self->{results} and $self->seqobject + + =cut + + sub _set_variable { + my ($self, $name, $value)=@_; + next unless ($name); + $self->{$name} = $value; + } 1; From bosborne at pub.open-bio.org Wed Dec 14 15:09:40 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Wed Dec 14 15:02:54 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Seq PrimedSeq.pm,1.18,1.19 Message-ID: <200512142009.jBEK9eVL007037@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Seq In directory pub.open-bio.org:/tmp/cvs-serv7028/Bio/Seq Modified Files: PrimedSeq.pm Log Message: Minor edits Index: PrimedSeq.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Seq/PrimedSeq.pm,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** PrimedSeq.pm 14 Dec 2005 02:35:02 -0000 1.18 --- PrimedSeq.pm 14 Dec 2005 20:09:38 -0000 1.19 *************** *** 37,41 **** # For example, start with a fasta file - use Bio::SeqIO; use Bio::Tools::Run::Primer3; --- 37,40 ---- *************** *** 145,149 **** use strict; - use Bio::RangeI; use Bio::SeqFeature::Generic; use Bio::SeqFeature::Primer; --- 144,147 ---- *************** *** 154,159 **** BEGIN { ! @RES=qw(); # nothing here yet, not sure what we want! ! foreach my $attr (@RES) {$OK_FIELD{$attr}++} } --- 152,156 ---- BEGIN { ! @RES = qw(); # nothing here yet, not sure what we want! foreach my $attr (@RES) {$OK_FIELD{$attr}++} } From bosborne at pub.open-bio.org Wed Dec 14 15:12:13 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Wed Dec 14 15:05:30 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools Primer3.pm,1.14,1.15 Message-ID: <200512142012.jBEKCDVL007084@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv7075/Bio/Tools Modified Files: Primer3.pm Log Message: Some hashes were used for temporary storage in next_primer(), removed them for simplicity Index: Primer3.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Primer3.pm,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Primer3.pm 21 Oct 2005 16:27:57 -0000 1.14 --- Primer3.pm 14 Dec 2005 20:12:11 -0000 1.15 *************** *** 100,103 **** --- 100,107 ---- bioinformatics1@dieselwurks.com + =head1 CONTRIBUTORS + + Brian Osborne osborne1 at optonline.net + =head1 APPENDIX *************** *** 111,115 **** package Bio::Tools::Primer3; - use vars qw(@ISA); use strict; --- 115,118 ---- *************** *** 117,121 **** use Bio::Seq::PrimedSeq; use Bio::SeqFeature::Primer; - use Bio::Seq::SeqFactory; use Bio::Root::Root; use Bio::Root::IO; --- 120,123 ---- *************** *** 202,219 **** sub all_results { ! my ($self, @results) = @_; ! my %hash; ! if (@results) { ! # we only want a few things ! foreach my $result (@results) {$hash{$result}=$self->{'results'}->$result} ! } ! else { ! foreach my $result (keys %{$self->{'results'}}) { ! $hash{$result}=$self->{'results'}->{$result}; ! } ! } ! return \%hash; ! } --- 204,220 ---- sub all_results { ! my ($self, @results) = @_; ! my %hash; ! if (@results) { ! # we only want a few things ! foreach my $result (@results) {$hash{$result}=$self->{'results'}->$result} ! } else { ! foreach my $result (keys %{$self->{'results'}}) { ! $hash{$result}=$self->{'results'}->{$result}; ! } ! } ! return \%hash; ! } *************** *** 230,239 **** sub primer_results { ! my ($self, $toget) = @_; ! if ($toget > $self->{'maximum_primers_returned'}) { ! $self->warn("Didn't get any results for $toget"); ! return 0; ! } ! else {return \%{$self->{'results_by_number'}->{$toget}}} } --- 231,242 ---- sub primer_results { ! my ($self, $toget) = @_; ! if ($toget > $self->{'maximum_primers_returned'}) { ! $self->warn("Didn't get any results for $toget"); ! return 0; ! } ! else { ! return \%{$self->{'results_by_number'}->{$toget}}; ! } } *************** *** 250,296 **** sub _readfile { ! my ($self, $file) = @_; ! $self->_initialize_io(-file=>$file); ! my $line; ! my $id='primer 3 parsed results'; # hopefully we'll get this, but we can set a temp id in case not. ! while (defined($line=$self->_readline()) ) { ! chomp $line; ! next unless ($line); ! my ($return, $value) = split /=/, $line; ! if (uc($return) eq "SEQUENCE") { ! $self->{seqobject}=Bio::Seq->new(-seq=>$value, $id=>$id); ! next; ! } ! if (uc($return) eq "PRIMER_SEQUENCE_ID") { ! if ($self->{seqobject}) {$self->{seqobject}->id($value)} else {$id=$value} ! } ! ! $self->{'results'}->{$return} = $value; ! } ! ! # convert the results to individual results ! $self->_separate(); ! } ! ! =head2 primer_stream ! ! Title : primer_stream() ! Usage : while (my $primed_seq = $primer3->primer_stream()) { ! Function: Retrieve the primer/sequences one at a time ! Returns : Returns a Bio::Seq::PrimedSeq feature, one at a time ! Args : None ! Notes : Deprecated. I should just delete this, but my test scripts will ! all break. This will be removed before it goes really live, and is ! just a link to next_primer ! =cut ! sub primer_stream { ! my $self=shift; ! my $primedseq = $self->next_primer; ! return $primedseq; } - =head2 next_primer --- 253,279 ---- sub _readfile { ! my ($self, $file) = @_; ! $self->_initialize_io(-file=>$file); ! my $line; ! my $id='primer 3 parsed results'; # hopefully we'll get this, but we can set a temp id in case not. ! while (defined($line=$self->_readline()) ) { ! chomp $line; ! next unless ($line); ! my ($return, $value) = split /=/, $line; ! if (uc($return) eq "SEQUENCE") { ! $self->{seqobject}=Bio::Seq->new(-seq=>$value, $id=>$id); ! next; ! } ! if (uc($return) eq "PRIMER_SEQUENCE_ID") { ! if ($self->{seqobject}) {$self->{seqobject}->id($value)} else {$id=$value} ! } ! $self->{'results'}->{$return} = $value; ! } ! # convert the results to individual results ! $self->_separate(); } =head2 next_primer *************** *** 305,309 **** =cut ! sub next_primer { my $self = shift; --- 288,292 ---- =cut ! sub next_primer { my $self = shift; *************** *** 314,321 **** # at the moment we can do this as a stream, I guess. ! if (! $self->number_of_results) { ! $self->warn("No primers were found for: ".$self->{'seqobject'}->{'primary_id'}); ! #return; ! } my $next = 0; --- 297,302 ---- # at the moment we can do this as a stream, I guess. ! $self->warn("No primers were found for: ".$self->{'seqobject'}->{'primary_id'}) ! if (! $self->number_of_results); my $next = 0; *************** *** 335,368 **** -sequence => ${$results}{'PRIMER_RIGHT_SEQUENCE'}); ! my %product_hash; my %primer_left_hash; my %primer_right_hash; ! # now we are going to add the remaining primer3 results to the appropriate place ! # (either primer or primed seq) ! foreach my $key (keys %$results) { ! next if ($key eq 'PRIMER_LEFT_SEQUENCE' || $key eq 'PRIMER_RIGHT_SEQUENCE'); if ($key =~ /PRIMER_LEFT/i) { ! $primer_left_hash{$key} = $$results{$key}; } elsif ($key =~ /PRIMER_RIGHT/i) { ! $primer_right_hash{$key} = $$results{$key}; ! } else { ! $product_hash{$key} = $$results{$key}; ! } ! } ! #$left_seq->add_tag_value(%primer_left_hash); ! #$right_seq->add_tag_value(%primer_right_hash); ! #$primed_seq->add_tag_value(%product_hash); ! ! while (my ($k, $v) = each %primer_left_hash) { ! $left_seq->add_tag_value($k, $v); ! } ! while (my ($k, $v) = each %primer_right_hash) { ! $right_seq->add_tag_value($k, $v); } ! # wait till tags have been added to each of the primer sequences # before creating the primed seq my $primed_seq = Bio::Seq::PrimedSeq->new(-target_sequence => $self->{'seqobject'}, -left_primer => $left_seq, -right_primer => $right_seq); ! while (my ($k, $v) = each %product_hash) { ! $primed_seq->add_tag_value($k, $v); } --- 316,339 ---- -sequence => ${$results}{'PRIMER_RIGHT_SEQUENCE'}); ! for my $key (%$results) { ! # skip the data on the primed sequence ! next if ($key =~ /PRIMER_(LEFT|RIGHT)_SEQUENCE/i ); if ($key =~ /PRIMER_LEFT/i) { ! $left_seq->add_tag_value($key, $$results{$key}); } elsif ($key =~ /PRIMER_RIGHT/i) { ! $right_seq->add_tag_value($key, $$results{$key}); ! } } ! ! # wait until tags have been added to each of the primer sequences # before creating the primed seq my $primed_seq = Bio::Seq::PrimedSeq->new(-target_sequence => $self->{'seqobject'}, -left_primer => $left_seq, -right_primer => $right_seq); ! ! for my $key (%$results) { ! # skip the data on primers ! next if ($key =~ /PRIMER_(LEFT|RIGHT)/i ); ! $primed_seq->add_tag_value($key, $$results{$key}); } *************** *** 371,391 **** } ! =head2 _set_variable ! Title : _set_variable() ! Usage : $self->_set_variable('variable name', 'value'); ! Function: An internal function that sets a variable ! Returns : Nothing. Args : None ! Notes : Mainly used by Bio::Tools::Run::Primer3 to set ! $self->{results} and $self->seqobject =cut ! sub _set_variable { ! my ($self, $name, $value)=@_; ! next unless ($name); ! $self->{$name}=$value; ! } =head2 _separate --- 342,361 ---- } ! =head2 primer_stream ! Title : primer_stream() ! Usage : while (my $primed_seq = $primer3->primer_stream()) { ! Function: Retrieve the primer/sequences one at a time ! Returns : Returns a Bio::Seq::PrimedSeq feature, one at a time Args : None ! Notes : Deprecated, just a link to next_primer =cut ! sub primer_stream { ! my $self=shift; ! my $primedseq = $self->next_primer; ! return $primedseq; ! } =head2 _separate *************** *** 402,433 **** sub _separate { ! my $self=shift; ! my %results; # the results that we find ! my $maxlocation=-1; # the maximum number of primers returned ! foreach my $key (keys %{$self->{'results'}}) { ! next if (${$self->{'input_options'}}{$key}); # don't process it if it is an input key ! my $location; # the number of the primer pair ! # names will have values like ! # PRIMER_RIGHT_SEQUENCE, PRIMER_RIGHT_2_SEQUENCE, PRIMER_PRODUCT_SIZE, and PRIMER_PRODUCT_SIZE_3 ! # hence we need to find and remove the number ! my $tempkey=$key; ! if ($tempkey =~ s/_(\d+)//) { ! $location=$1; ! if ($location > $maxlocation) {$maxlocation = $location} ! } elsif ( $tempkey =~ /PRIMER_(RIGHT|LEFT)/ ) { # first primers reported without a number, therefore set $location to 0 ! $location = 0; ! if ($location > $maxlocation) {$maxlocation = $location} ! } else { ! $location = 0; ! } ! #print "$key\t$tempkey\n" if $location==0; ! # we will hash the results by number, and then by name ! ${$results{$location}}{$tempkey}=${$self->{'results'}}{$key}; ! } ! $self->{'results_by_number'}=\%results; ! $self->{'maximum_primers_returned'}=$maxlocation; } - 1; --- 372,405 ---- sub _separate { ! my $self = shift; ! my %results; # the results that we find ! my $maxlocation = -1; # the maximum number of primers returned ! foreach my $key (keys %{$self->{'results'}}) { ! next if (${$self->{'input_options'}}{$key}); # don't process it if it is an input key ! my $location; # the number of the primer pair ! # names will have values like ! # PRIMER_RIGHT_SEQUENCE, PRIMER_RIGHT_2_SEQUENCE, PRIMER_PRODUCT_SIZE, and ! # PRIMER_PRODUCT_SIZE_3 hence we need to find and remove the number ! my $tempkey=$key; ! if ($tempkey =~ s/_(\d+)//) { ! $location=$1; ! if ($location > $maxlocation) {$maxlocation = $location} ! } elsif ( $tempkey =~ /PRIMER_(RIGHT|LEFT)/ ) { ! # first primers reported without a number, therefore set $location to 0 ! $location = 0; ! if ($location > $maxlocation) {$maxlocation = $location} ! } else { ! $location = 0; ! } ! # we will hash the results by number, and then by name ! ${$results{$location}}{$tempkey}=${$self->{'results'}}{$key}; ! } ! $self->{'results_by_number'}=\%results; ! $self->{'maximum_primers_returned'}=$maxlocation; } 1; + + __END__ + From bosborne at pub.open-bio.org Wed Dec 14 16:08:47 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Wed Dec 14 16:02:01 2005 Subject: [Bioperl-guts-l] bioperl-run/Bio/Tools/Run Primer3.pm,1.13,1.14 Message-ID: <200512142108.jBEL8lVL007252@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-run/Bio/Tools/Run In directory pub.open-bio.org:/tmp/cvs-serv7243/Bio/Tools/Run Modified Files: Primer3.pm Log Message: I was wrong, better testing shows that _set_variable is better kept here Index: Primer3.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-run/Bio/Tools/Run/Primer3.pm,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Primer3.pm 14 Dec 2005 18:53:39 -0000 1.13 --- Primer3.pm 14 Dec 2005 21:08:45 -0000 1.14 *************** *** 633,652 **** } - =head2 _set_variable - - Title : _set_variable() - Usage : $self->_set_variable('variable name', 'value'); - Function: An internal function that sets a variable - Returns : Nothing. - Args : None - Notes : Used to set $self->{results} and $self->seqobject - - =cut - - sub _set_variable { - my ($self, $name, $value)=@_; - next unless ($name); - $self->{$name} = $value; - } - 1; --- 633,635 ---- From tseemann at pub.open-bio.org Wed Dec 14 17:08:43 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Wed Dec 14 17:01:57 2005 Subject: [Bioperl-guts-l] bioperl-live/t CodonTable.t,1.18,1.19 Message-ID: <200512142208.jBEM8hVL007526@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t In directory pub.open-bio.org:/tmp/cvs-serv7502/t Modified Files: CodonTable.t Log Message: Added Bio::Tools::CodonTable->tables() method and corresponding tests. Index: CodonTable.t =================================================================== RCS file: /home/repository/bioperl/bioperl-live/t/CodonTable.t,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** CodonTable.t 2 Oct 2004 14:16:24 -0000 1.18 --- CodonTable.t 14 Dec 2005 22:08:41 -0000 1.19 *************** *** 18,22 **** use Test; ! plan tests => 44; } use Bio::Tools::CodonTable; --- 18,22 ---- use Test; ! plan tests => 48; } use Bio::Tools::CodonTable; *************** *** 34,44 **** ok $myCodonTable->id(), 1; - # change codon table $myCodonTable->id(10); ok $myCodonTable->id, 10; - ok $myCodonTable->name(), 'Euplotid Nuclear'; # translate codons $myCodonTable->id(1); --- 34,52 ---- ok $myCodonTable->id(), 1; # change codon table $myCodonTable->id(10); ok $myCodonTable->id, 10; ok $myCodonTable->name(), 'Euplotid Nuclear'; + # enumerate tables as object method + my $table = $myCodonTable->tables(); + ok (keys %{$table} >= 17); # currently 17 known tables + ok $table->{11}, q{"Bacterial"}; + + # enumerate tables as class method + $table = Bio::Tools::CodonTable->tables; + ok (values %{$table} >= 17); # currently 17 known tables + ok $table->{23}, 'Thraustochytrium Mitochondrial'; + # translate codons $myCodonTable->id(1); *************** *** 134,138 **** ok $myCodonTable->is_start_codon('ATG'); ! ok( $myCodonTable->is_start_codon('GGH'), 0); ok $myCodonTable->is_start_codon('HTG'); ok $myCodonTable->is_start_codon('CCC'), 0; --- 142,146 ---- ok $myCodonTable->is_start_codon('ATG'); ! ok $myCodonTable->is_start_codon('GGH'), 0; ok $myCodonTable->is_start_codon('HTG'); ok $myCodonTable->is_start_codon('CCC'), 0; *************** *** 147,151 **** ok $myCodonTable->is_unknown_codon('jg'); ok $myCodonTable->is_unknown_codon('UAG'), 0; - ok $myCodonTable->translate_strict('ATG'), 'M'; --- 155,158 ---- From tseemann at pub.open-bio.org Wed Dec 14 17:08:43 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Wed Dec 14 17:01:58 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools CodonTable.pm,1.32,1.33 Message-ID: <200512142208.jBEM8hVL007524@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv7502/Bio/Tools Modified Files: CodonTable.pm Log Message: Added Bio::Tools::CodonTable->tables() method and corresponding tests. Index: CodonTable.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/CodonTable.pm,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** CodonTable.pm 17 Nov 2005 09:54:49 -0000 1.32 --- CodonTable.pm 14 Dec 2005 22:08:40 -0000 1.33 *************** *** 26,30 **** # defaults to ID 1 "Standard" $myCodonTable = Bio::Tools::CodonTable->new(); ! $myCodonTable2 = Bio::Tools::CodonTable -> new ( -id => 3 ); # change codon table --- 26,30 ---- # defaults to ID 1 "Standard" $myCodonTable = Bio::Tools::CodonTable->new(); ! $myCodonTable2 = Bio::Tools::CodonTable->new( -id => 3 ); # change codon table *************** *** 35,38 **** --- 35,44 ---- "is:", $myCodonTable->name(), "\n"); + # print possible codon tables + $tables = Bio::Tools::CodonTable->tables; + while ( ($id,$name) = each %{$tables} ) { + print "$id = $name\n"; + } + # translate a codon $aa = $myCodonTable->translate('ACU'); *************** *** 337,340 **** --- 343,369 ---- } + =head2 tables + + Title : tables + Usage : $obj->tables() or Bio::Tools::CodonTable->tables() + Function: returns a hash reference where each key is a valid codon + table id() number, and each value is the corresponding + codon table name() string + Example : + Returns : A hashref + Args : None + + + =cut + + sub tables{ + my %tables; + for my $id (1 .. @NAMES) { + my $name = $NAMES[$id-1]; + $tables{$id} = $name if $name; + } + return \%tables; + } + =head2 translate From skirov at pub.open-bio.org Wed Dec 14 19:26:00 2005 From: skirov at pub.open-bio.org (Stefan Kirov) Date: Wed Dec 14 19:19:13 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/SeqIO entrezgene.pm,1.15,1.16 Message-ID: <200512150026.jBF0Q0VL007858@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/SeqIO In directory pub.open-bio.org:/tmp/cvs-serv7843/Bio/SeqIO Modified Files: entrezgene.pm Log Message: capture locus synonym data was missing annotation when not an array for gene->db Index: entrezgene.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO/entrezgene.pm,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** entrezgene.pm 14 Sep 2005 19:45:28 -0000 1.15 --- entrezgene.pm 15 Dec 2005 00:25:58 -0000 1.16 *************** *** 216,220 **** } else { ! $self->_add_to_ann($xval->{gene}->{syn},'ALIAS_SYMBOL'); } --- 216,220 ---- } else { ! $self->_add_to_ann($xval->{gene}->{syn},'ALIAS_SYMBOL') if ($xval->{gene}->{syn}); } *************** *** 240,245 **** } else { ! $self->_add_to_ann($xval->{gene}->{db}->{tag}->{id},$xval->{gene}->{db}->{db}); } delete $xval->{gene}->{db} unless ($debug eq 'off'); } --- 240,248 ---- } else { ! my $id=($xval->{gene}->{db}->{tag}->{id})? ! $xval->{gene}->{db}->{tag}->{id}:$xval->{gene}->{db}->{tag}->{str}; ! $self->_add_to_ann($id,$xval->{gene}->{db}->{db}); } + $self->_add_to_ann($xval->{gene}->{'locus-tag'},'LOCUS_SYNONYM'); delete $xval->{gene}->{db} unless ($debug eq 'off'); } From bosborne at pub.open-bio.org Wed Dec 14 21:41:08 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Wed Dec 14 21:34:33 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools Primer3.pm,1.15,1.16 Message-ID: <200512150241.jBF2f8VL008177@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools In directory pub.open-bio.org:/tmp/cvs-serv8158/Bio/Tools Modified Files: Primer3.pm Log Message: Simplify, remove extra variables. Add display_id to Primer feature. POD edits. Index: Primer3.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Primer3.pm,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Primer3.pm 14 Dec 2005 20:12:11 -0000 1.15 --- Primer3.pm 15 Dec 2005 02:41:05 -0000 1.16 *************** *** 280,284 **** Title : next_primer() Usage : while (my $primed_seq = $primer3->next_primer()) { ! Function: Retrieve the primer/sequences one at a time Returns : Returns a Bio::Seq::PrimedSeq feature, one at a time Args : None --- 280,284 ---- Title : next_primer() Usage : while (my $primed_seq = $primer3->next_primer()) { ! Function: Retrieve the primed sequence and a primer pair, one at a time Returns : Returns a Bio::Seq::PrimedSeq feature, one at a time Args : None *************** *** 288,292 **** =cut - sub next_primer { my $self = shift; --- 288,291 ---- *************** *** 300,307 **** if (! $self->number_of_results); ! my $next = 0; ! $next = $self->{'next_to_return'} if ($self->{'next_to_return'}); ! return if ($next > $self->{'maximum_primers_returned'}); ! my $results = $self->primer_results($next); $self->throw("No left primer sequence") unless (${$results}{'PRIMER_LEFT_SEQUENCE'}); --- 299,305 ---- if (! $self->number_of_results); ! $self->{'next_to_return'} = 0 unless ($self->{'next_to_return'}); ! return if ($self->{'next_to_return'} >= $self->{'maximum_primers_returned'}); ! my $results = $self->primer_results($self->{'next_to_return'}); $self->throw("No left primer sequence") unless (${$results}{'PRIMER_LEFT_SEQUENCE'}); *************** *** 311,321 **** my $left_seq = Bio::SeqFeature::Primer->new( -primer_sequence_id => "left_primer", ! -sequence => ${$results}{'PRIMER_LEFT_SEQUENCE'}); my $right_seq = Bio::SeqFeature::Primer->new( -primer_sequence_id => "right_primer", ! -sequence => ${$results}{'PRIMER_RIGHT_SEQUENCE'}); ! for my $key (%$results) { ! # skip the data on the primed sequence next if ($key =~ /PRIMER_(LEFT|RIGHT)_SEQUENCE/i ); if ($key =~ /PRIMER_LEFT/i) { --- 309,322 ---- my $left_seq = Bio::SeqFeature::Primer->new( -primer_sequence_id => "left_primer", ! -sequence => ${$results}{'PRIMER_LEFT_SEQUENCE'}, ! -display_id => ($self->{'next_to_return'} + 1) ); my $right_seq = Bio::SeqFeature::Primer->new( -primer_sequence_id => "right_primer", ! -sequence => ${$results}{'PRIMER_RIGHT_SEQUENCE'}, ! -display_id => ($self->{'next_to_return'} + 1) ); ! ! # add data to the Primer objects for my $key (%$results) { ! # skip the primer sequence data, already added above next if ($key =~ /PRIMER_(LEFT|RIGHT)_SEQUENCE/i ); if ($key =~ /PRIMER_LEFT/i) { *************** *** 326,345 **** } - # wait until tags have been added to each of the primer sequences - # before creating the primed seq my $primed_seq = Bio::Seq::PrimedSeq->new(-target_sequence => $self->{'seqobject'}, -left_primer => $left_seq, -right_primer => $right_seq); for my $key (%$results) { - # skip the data on primers next if ($key =~ /PRIMER_(LEFT|RIGHT)/i ); $primed_seq->add_tag_value($key, $$results{$key}); } ! $self->{'next_to_return'} = $next + 1; return $primed_seq; } =head2 primer_stream --- 327,345 ---- } my $primed_seq = Bio::Seq::PrimedSeq->new(-target_sequence => $self->{'seqobject'}, -left_primer => $left_seq, -right_primer => $right_seq); + # add data to the the PrimedSeq object that's not specific to the Primers for my $key (%$results) { next if ($key =~ /PRIMER_(LEFT|RIGHT)/i ); $primed_seq->add_tag_value($key, $$results{$key}); } ! $self->{'next_to_return'}++; return $primed_seq; } + =head2 primer_stream *************** *** 398,401 **** --- 398,418 ---- $self->{'results_by_number'}=\%results; $self->{'maximum_primers_returned'}=$maxlocation; + } + + =head2 _set_variable + + Title : _set_variable() + Usage : $self->_set_variable('variable name', 'value'); + Function: An internal function that sets a variable + Returns : Nothing. + Args : None + Notes : Used to set $self->{results} and $self->seqobject + + =cut + + sub _set_variable { + my ($self, $name, $value)=@_; + next unless ($name); + $self->{$name} = $value; } From bosborne at pub.open-bio.org Wed Dec 14 22:10:10 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Wed Dec 14 22:03:28 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Seq PrimedSeq.pm,1.19,1.20 Message-ID: <200512150310.jBF3AAVL008244@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Seq In directory pub.open-bio.org:/tmp/cvs-serv8235/Bio/Seq Modified Files: PrimedSeq.pm Log Message: POD and formatting Index: PrimedSeq.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Seq/PrimedSeq.pm,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** PrimedSeq.pm 14 Dec 2005 20:09:38 -0000 1.19 --- PrimedSeq.pm 15 Dec 2005 03:10:07 -0000 1.20 *************** *** 28,32 **** Bio::Seq::PrimedSeq - A representation of a sequence and two primers ! flanking a target region for amplification =head1 SYNOPSIS --- 28,32 ---- Bio::Seq::PrimedSeq - A representation of a sequence and two primers ! flanking a target region =head1 SYNOPSIS *************** *** 93,102 **** be instantiated first. ! The simplest way to create a PrimedSeq object is as follows: my $primedseq = Bio::Seq::PrimedSeq->new( ! -seq => Bio::Seq object, ! -left_primer => Bio::SeqFeature::Primer object, ! -right_primer => Bio::SeqFeature::Primer object, ); --- 93,102 ---- be instantiated first. ! A simple way to create a PrimedSeq object is as follows: my $primedseq = Bio::Seq::PrimedSeq->new( ! -seq => $seq, # Bio::Seq object, ! -left_primer => $left, # Bio::SeqFeature::Primer object, ! -right_primer => $right # Bio::SeqFeature::Primer object, ); *************** *** 349,420 **** sub _place_seqs { ! my $self = shift; ! # we are going to pull out the target sequence, and then the primer sequences ! my $target_sequence = $self->{'target_sequence'}->seq(); ! # left primer ! my $left_seq = $self->{'left_primer'}->seq()->seq(); ! my $rprc = $self->{'right_primer'}->seq()->revcom(); ! my $right_seq=$rprc->seq(); ! ! # now just change the case, because we keep getting screwed on this ! $target_sequence=uc($target_sequence); ! $left_seq=uc($left_seq); ! $right_seq=uc($right_seq); ! unless ($target_sequence =~ /(.*)$left_seq(.*)$right_seq(.*)/) { ! unless ($target_sequence =~ /$left_seq/) {$self->throw("Can't place left sequence on target!")} ! unless ($target_sequence =~ /$right_seq/) {$self->throw("Can't place right sequence on target!")} } ! my ($before, $middle, $after) = ($1, $2, $3); # note didn't use $`, $', and $& because they are bad. Just use length instead. ! # cool now we can figure out lengths and what not. ! # we'll figure out the position and compare it to known positions (e.g. from primer3) ! ! my $left_location = length($before). ",". length($left_seq); ! my $right_location = (length($target_sequence)-length($after)-1).",".length($right_seq); ! my $amplicon_size = length($left_seq)+length($middle)+length($right_seq); ! if (exists $self->{'left_primer'}->{'PRIMER_LEFT'}) { ! # this is the left primer from primer3 input ! # just check to make sure it is right ! unless ($self->{'left_primer'}->{'PRIMER_LEFT'} eq $left_location) { ! $self->warn("Note got |".$self->{'left_primer'}->{'PRIMER_LEFT'}."| from primer3 and |$left_location| for the left primer. You should email redwards\@utmem.edu about this."); ! } ! } ! else { ! $self->{'left_primer'}->{'PRIMER_LEFT'}=$left_location; ! } ! if (exists $self->{'right_primer'}->{'PRIMER_RIGHT'}) { ! # this is the right primer from primer3 input ! # just check to make sure it is right ! unless ($self->{'right_primer'}->{'PRIMER_RIGHT'} eq $right_location) { ! $self->warn("Note got |".$self->{'right_primer'}->{'PRIMER_RIGHT'}."| from primer3 and |$right_location| for the right primer. You should email redwards\@utmem.edu about this."); ! } ! } ! else { ! $self->{'right_primer'}->{'PRIMER_RIGHT'}=$right_location; ! } ! if (exists $self->{'PRIMER_PRODUCT_SIZE'}) { ! # this is the product size from primer3 input ! # just check to make sure it is right ! unless ($self->{'PRIMER_PRODUCT_SIZE'} eq $amplicon_size) { ! $self->warn("Note got |".$self->{'PRIMER_PRODUCT_SIZE'}."| from primer3 and |$amplicon_size| for the size. You should email redwards\@utmem.edu about this."); ! } ! } ! else { ! $self->{'PRIMER_PRODUCT_SIZE'} = $amplicon_size; ! } ! $self->{'amplicon_sequence'}= lc($left_seq).uc($middle).lc($right_seq); # I put this in a different case, but I think the seqobj may revert this ! $self->_set_seqfeature; } --- 349,419 ---- sub _place_seqs { ! my $self = shift; ! # we are going to pull out the target sequence, and then the primer sequences ! my $target_sequence = $self->{'target_sequence'}->seq(); ! # left primer ! my $left_seq = $self->{'left_primer'}->seq()->seq(); ! my $rprc = $self->{'right_primer'}->seq()->revcom(); ! my $right_seq=$rprc->seq(); ! # now just change the case, because we keep getting screwed on this ! $target_sequence=uc($target_sequence); ! $left_seq=uc($left_seq); ! $right_seq=uc($right_seq); ! unless ($target_sequence =~ /(.*)$left_seq(.*)$right_seq(.*)/) { ! unless ($target_sequence =~ /$left_seq/) {$self->throw("Can't place left sequence on target!")} ! unless ($target_sequence =~ /$right_seq/) {$self->throw("Can't place right sequence on target!")} } ! my ($before, $middle, $after) = ($1, $2, $3); # note didn't use $`, $', and $& because they are bad. Just use length instead. ! # cool now we can figure out lengths and what not. ! # we'll figure out the position and compare it to known positions (e.g. from primer3) ! my $left_location = length($before). ",". length($left_seq); ! my $right_location = (length($target_sequence)-length($after)-1).",".length($right_seq); ! my $amplicon_size = length($left_seq)+length($middle)+length($right_seq); ! if (exists $self->{'left_primer'}->{'PRIMER_LEFT'}) { ! # this is the left primer from primer3 input ! # just check to make sure it is right ! unless ($self->{'left_primer'}->{'PRIMER_LEFT'} eq $left_location) { ! $self->warn("Note got |".$self->{'left_primer'}->{'PRIMER_LEFT'}."| from primer3 and |$left_location| for the left primer. You should email redwards\@utmem.edu about this."); ! } ! } ! else { ! $self->{'left_primer'}->{'PRIMER_LEFT'}=$left_location; ! } ! if (exists $self->{'right_primer'}->{'PRIMER_RIGHT'}) { ! # this is the right primer from primer3 input ! # just check to make sure it is right ! unless ($self->{'right_primer'}->{'PRIMER_RIGHT'} eq $right_location) { ! $self->warn("Note got |".$self->{'right_primer'}->{'PRIMER_RIGHT'}."| from primer3 and |$right_location| for the right primer. You should email redwards\@utmem.edu about this."); ! } ! } ! else { ! $self->{'right_primer'}->{'PRIMER_RIGHT'}=$right_location; ! } ! if (exists $self->{'PRIMER_PRODUCT_SIZE'}) { ! # this is the product size from primer3 input ! # just check to make sure it is right ! unless ($self->{'PRIMER_PRODUCT_SIZE'} eq $amplicon_size) { ! $self->warn("Note got |".$self->{'PRIMER_PRODUCT_SIZE'}."| from primer3 and |$amplicon_size| for the size. You should email redwards\@utmem.edu about this."); ! } ! } ! else { ! $self->{'PRIMER_PRODUCT_SIZE'} = $amplicon_size; ! } ! $self->{'amplicon_sequence'}= lc($left_seq).uc($middle).lc($right_seq); # I put this in a different case, but I think the seqobj may revert this ! ! $self->_set_seqfeature; } *************** *** 436,467 **** sub _set_seqfeature { ! my $self = shift; ! unless ($self->{'left_primer'}->{'PRIMER_LEFT'} && ! $self->{'right_primer'}->{'PRIMER_RIGHT'}) { ! $self->warn("hmmm. Haven't placed primers, but trying to make annotated sequence"); ! return 0; ! } ! my ($start, $length) = split /,/, $self->{'left_primer'}->{'PRIMER_LEFT'}; ! my $tm=$self->{'left_primer'}->{'PRIMER_LEFT_TM'} || $self->{'left_primer'}->Tm || 0; ! my $seqfeatureL=new Bio::SeqFeature::Generic( ! -start => $start+1, -end => $start+$length, -strand => 1, ! -primary_tag => 'left_primer', -source => 'primer3', ! -tag => {new => 1, author => 'Bio::Seq::PrimedSeq', Tm => $tm} ! ); ! ($start, $length) = split /,/, $self->{'right_primer'}->{'PRIMER_RIGHT'}; ! $tm=$self->{'right_primer'}->{'PRIMER_RIGHT_TM'} || $self->{'right_primer'}->Tm || 0; ! my $seqfeatureR=new Bio::SeqFeature::Generic( -start => $start-$length+2, -end => $start+1, -strand => -1, -primary_tag => 'right_primer', -source => 'primer3', -tag => {new => 1, author => 'Bio::Seq::PrimedSeq', Tm => $tm} ! ); ! # now add the sequences to a annotated sequence ! $self->{annotated_sequence} = $self->{target_sequence}; ! $self->{annotated_sequence}->add_SeqFeature($seqfeatureL); ! $self->{annotated_sequence}->add_SeqFeature($seqfeatureR); } --- 435,466 ---- sub _set_seqfeature { ! my $self = shift; ! unless ($self->{'left_primer'}->{'PRIMER_LEFT'} && ! $self->{'right_primer'}->{'PRIMER_RIGHT'}) { ! $self->warn("hmmm. Haven't placed primers, but trying to make annotated sequence"); ! return 0; ! } ! my ($start, $length) = split /,/, $self->{'left_primer'}->{'PRIMER_LEFT'}; ! my $tm=$self->{'left_primer'}->{'PRIMER_LEFT_TM'} || $self->{'left_primer'}->Tm || 0; ! my $seqfeatureL=new Bio::SeqFeature::Generic( ! -start => $start+1, -end => $start+$length, -strand => 1, ! -primary_tag => 'left_primer', -source => 'primer3', ! -tag => {new => 1, author => 'Bio::Seq::PrimedSeq', Tm => $tm} ! ); ! ($start, $length) = split /,/, $self->{'right_primer'}->{'PRIMER_RIGHT'}; ! $tm=$self->{'right_primer'}->{'PRIMER_RIGHT_TM'} || $self->{'right_primer'}->Tm || 0; ! my $seqfeatureR=new Bio::SeqFeature::Generic( -start => $start-$length+2, -end => $start+1, -strand => -1, -primary_tag => 'right_primer', -source => 'primer3', -tag => {new => 1, author => 'Bio::Seq::PrimedSeq', Tm => $tm} ! ); ! # now add the sequences to a annotated sequence ! $self->{annotated_sequence} = $self->{target_sequence}; ! $self->{annotated_sequence}->add_SeqFeature($seqfeatureL); ! $self->{annotated_sequence}->add_SeqFeature($seqfeatureR); } From bugzilla-daemon at portal.open-bio.org Thu Dec 15 09:38:56 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Thu Dec 15 09:58:32 2005 Subject: [Bioperl-guts-l] [Bug 1837] Bio::Ext::Align Message-ID: <200512151438.jBFEcudg006417@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1837 osborne1@optonline.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME ------- Comment #1 from osborne1@optonline.net 2005-12-15 09:38 ------- Jouni, thank you for the submission. I think that I'll close this bug as I've been able to install bioperl-ext without the manual copy you used. Without a bit more information it's difficult to determine what went wrong with your install and since everything works for you now... ------- 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 15 09:28:05 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Thu Dec 15 09:58:36 2005 Subject: [Bioperl-guts-l] [Bug 1833] Bio::Tools::Primer3 next_primer method reuses same sequence object for subsequent iterations Message-ID: <200512151428.jBFES5cF006211@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1833 ------- Comment #2 from osborne1@optonline.net 2005-12-15 09:28 ------- Roy, we haven't heard from Rob Edwards, I guess we should just proceed. I've taken a look at Primer3 and Run/Primer3 and I agree with your interpretation, each primer pair should appear by itself on the primed sequence. Can you supply a patch? The Clone module is already use in Bioperl (Bio::Graph::ProteinGraph) though I don't know if this means that this is "standard" approach. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From heikki at pub.open-bio.org Thu Dec 15 16:14:37 2005 From: heikki at pub.open-bio.org (Heikki Lehvaslaiho) Date: Thu Dec 15 16:07:46 2005 Subject: [Bioperl-guts-l] bioperl-live/maintenance modules.pl,1.18,1.19 Message-ID: <200512152114.jBFLEbVL010910@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/maintenance In directory pub.open-bio.org:/tmp/cvs-serv10901 Modified Files: modules.pl Log Message: better "untested" functionality Index: modules.pl =================================================================== RCS file: /home/repository/bioperl/bioperl-live/maintenance/modules.pl,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** modules.pl 9 Dec 2005 12:18:01 -0000 1.18 --- modules.pl 15 Dec 2005 21:14:35 -0000 1.19 *************** *** 253,257 **** $class->path($File::Find::name); } ! if (/^\w*use/ && /(Bio[\w:]+)\W*;/) { next unless $class; #print "\t$1\n" if $verbose; --- 253,257 ---- $class->path($File::Find::name); } ! if (/^\w*use/ && /(Bio[\w:]+)\W*;/ && not /base/) { next unless $class; #print "\t$1\n" if $verbose; *************** *** 275,279 **** } } - close F; } --- 275,278 ---- *************** *** 347,402 **** by subclass tests. - This method can not be improved much without running the tests! =cut sub _used_and_super { ! my $classname = $shift; ! unless ( ref $classname eq 'HASH') { ! my $tmp = $classname; ! $classname->{$tmp}=1 ! } ! foreach ($MODULES{$_}->each_superclass) { ! $MODULES{$_}->tested(1) ! unless defined $MODULES{$_} or $MODULES{$_}->tested; ! _used_and_super() } ! foreach ($MODULES{$_}->each_used_class) { ! $MODULES{$_}->tested(1) ! unless defined $MODULES{$_} and $MODULES{$_}->tested; } ! ! return $classname; } sub untested { ! foreach (`find ../t -name "*.t" -print | xargs grep -hs "use "`) { ! s/^ *?use +//; next unless /^Bio/; s/[\W;]+$//; next unless $MODULES{$_}; $MODULES{$_}->tested(1) unless defined $MODULES{$_} and $MODULES{$_}->tested; ! next if $MODULES{$_}->name eq "Bio::SeqIO::abi"; # exception: requires bioperl ext package ! next if $MODULES{$_}->name eq "Bio::SeqIO::ctf"; # exception: requires bioperl ext package ! next if $MODULES{$_}->name eq "Bio::SeqIO::exp"; # exception: requires bioperl ext package ! next if $MODULES{$_}->name eq "Bio::SeqIO::pln"; # exception: requires bioperl ext package ! next if $MODULES{$_}->name eq "Bio::SeqIO::ztr"; # exception: requires bioperl ext package ! # print $MODULES{$_}->name, "\n"; ! # print Dumper $MODULES{$_}; ! foreach ($MODULES{$_}->each_superclass) { ! # print $MODULES{$_}->name, "\n"; ! $MODULES{$_}->tested(1) ! unless defined $MODULES{$_} or $MODULES{$_}->tested; ! } ! foreach ($MODULES{$_}->each_used_class) { ! $MODULES{$_}->tested(1) ! unless defined $MODULES{$_} and $MODULES{$_}->tested; ! } } foreach ( sort keys %MODULES) { print "$_\n" if $MODULES{$_}->type eq 'instance' and ($MODULES{$_}->tested == 0) ; --- 346,420 ---- by subclass tests. =cut sub _used_and_super { ! my $name = shift; ! # print "-:$name\n" if /Locati/; ! foreach ($MODULES{$name}->each_superclass) { ! next unless defined $MODULES{$_}; ! # print "-^$_\n" if /Locati/; ! # unless (defined $MODULES{$_} or $MODULES{$_}->tested) { ! if (not $MODULES{$_}->tested) { ! $MODULES{$_}->tested(1); ! _used_and_super($_); ! } } ! foreach ($MODULES{$name}->each_used_class) { ! next unless defined $MODULES{$_}; ! # print "--$_\n" if /Locati/; ! # unless (defined $MODULES{$_} or $MODULES{$_}->tested) { ! if (not $MODULES{$_}->tested) { ! $MODULES{$_}->tested(1); ! _used_and_super($_); ! } ! # $MODULES{$_}->tested(1) && _used_and_super($_) ! # unless defined $MODULES{$_} or $MODULES{$_}->tested; } ! return 1; } sub untested { ! foreach (`find ../t -name "*.t" -print | xargs grep -hs "[ur][se][eq]"`) { ! # print "1-$_\n" if /OntologyT/; ! # s/^\s*//; ! s/.*use +//; ! s/.*require +//; next unless /^Bio/; s/[\W;]+$//; + my $name = $_; + # print "2-$name\n" if /OntologyT/; next unless $MODULES{$_}; $MODULES{$_}->tested(1) unless defined $MODULES{$_} and $MODULES{$_}->tested; ! next if $MODULES{$name}->name eq "Bio::SeqIO::abi"; # exception: requires bioperl ext package ! next if $MODULES{$name}->name eq "Bio::SeqIO::ctf"; # exception: requires bioperl ext package ! next if $MODULES{$name}->name eq "Bio::SeqIO::exp"; # exception: requires bioperl ext package ! next if $MODULES{$name}->name eq "Bio::SeqIO::pln"; # exception: requires bioperl ext package ! next if $MODULES{$name}->name eq "Bio::SeqIO::ztr"; # exception: requires bioperl ext package ! # print $MODULES{$name}->name, "\n"; ! # print Dumper $MODULES{$name}; ! ! _used_and_super($name); ! ! # foreach ($MODULES{$name}->each_superclass) { ! ## print $MODULES{$name}->name, "\n"; ! # $MODULES{$name}->tested(1) ! # unless defined $MODULES{$name} or $MODULES{$name}->tested; ! # } ! # foreach ($MODULES{$name}->each_used_class) { ! # $MODULES{$name}->tested(1) ! # unless defined $MODULES{$name} and $MODULES{$name}->tested; ! # } } foreach ( sort keys %MODULES) { + + # skip some name spaces + next if /^Bio::Search/; # Bio::Search and Bio::SearchIO are extensively tested + # but classes are used by attribute naming + print "$_\n" if $MODULES{$_}->type eq 'instance' and ($MODULES{$_}->tested == 0) ; From tseemann at pub.open-bio.org Thu Dec 15 16:22:18 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Thu Dec 15 16:15:24 2005 Subject: [Bioperl-guts-l] bioperl-live/maintenance check_URLs.pl,1.2,1.3 Message-ID: <200512152122.jBFLMIVL010941@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/maintenance In directory pub.open-bio.org:/tmp/cvs-serv10926 Modified Files: check_URLs.pl Log Message: Improved removal of non-URL punctuation at end of embedded URLs Index: check_URLs.pl =================================================================== RCS file: /home/repository/bioperl/bioperl-live/maintenance/check_URLs.pl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** check_URLs.pl 13 Dec 2005 06:08:15 -0000 1.2 --- check_URLs.pl 15 Dec 2005 21:22:16 -0000 1.3 *************** *** 24,28 **** module, I have to manually clean up some URLs which are embedded in Perl strings to convert the matched URL to a more probable real world URL, ! e.g. most URLs don't end in "'," or ")" :-) =cut --- 24,28 ---- module, I have to manually clean up some URLs which are embedded in Perl strings to convert the matched URL to a more probable real world URL, ! e.g. most URLs don\'t end in "'," or ")" :-) =cut *************** *** 93,98 **** while ($text =~ m/$RE{URI}{HTTP}{-keep}/g) { my $url = $1 or next; ! # remove Perl code if URL was embedded in string and other stuff ! $url =~ s/(['"]\s*[,;]?|\)\.?)$//; print STDERR "$url\n" if $verbose; push @{ $URL{$url} } , $File::Find::name; --- 93,98 ---- while ($text =~ m/$RE{URI}{HTTP}{-keep}/g) { my $url = $1 or next; ! # remove Perl code if URL was embedded in string and other stuff ! $url =~ s/\s*[.,;'")]*\s*$//; print STDERR "$url\n" if $verbose; push @{ $URL{$url} } , $File::Find::name; *************** *** 141,147 **** =head1 AUTHOR - Torsten Seemann ! Email tseemann-at-bioperl-dot-org =cut - - --- 141,145 ---- =head1 AUTHOR - Torsten Seemann ! Email: torsten-dot-seemann-at-infotech-dot-monash-dot-edu-dot-au =cut From bosborne at pub.open-bio.org Thu Dec 15 19:05:09 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 15 18:58:18 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB GenBank.pm,1.51,1.52 Message-ID: <200512160005.jBG059VL011316@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB In directory pub.open-bio.org:/tmp/cvs-serv11307 Modified Files: GenBank.pm Log Message: Minor edits Index: GenBank.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/GenBank.pm,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** GenBank.pm 9 Oct 2005 14:53:08 -0000 1.51 --- GenBank.pm 16 Dec 2005 00:05:07 -0000 1.52 *************** *** 44,48 **** (-query =>'Oryza sativa[Organism] AND EST', -reldate => '30', ! -db => 'nucleotide'); my $seqio = $gb->get_Stream_by_query($query); --- 44,48 ---- (-query =>'Oryza sativa[Organism] AND EST', -reldate => '30', ! -db => 'nucleotide'); my $seqio = $gb->get_Stream_by_query($query); *************** *** 57,61 **** # and request Fasta sequence $gb = new Bio::DB::GenBank(-retrievaltype => 'tempfile' , ! -format => 'Fasta'); my $seqio = $gb->get_Stream_by_acc(['AC013798', 'AC021953'] ); while( my $clone = $seqio->next_seq ) { --- 57,61 ---- # and request Fasta sequence $gb = new Bio::DB::GenBank(-retrievaltype => 'tempfile' , ! -format => 'Fasta'); my $seqio = $gb->get_Stream_by_acc(['AC013798', 'AC021953'] ); while( my $clone = $seqio->next_seq ) { *************** *** 150,154 **** } ! # new is in NCBIHelper # helper method to get db specific options --- 150,154 ---- } ! # new() is in NCBIHelper # helper method to get db specific options *************** *** 162,168 **** Args : -delay number of seconds to delay between fetches (3s) ! NOTE: There are other options that are used internally. By NCBI policy, this ! module introduces a 3s delay between fetches. If you are fetching multiple genbank ! ids, it is a good idea to use get =cut --- 162,168 ---- Args : -delay number of seconds to delay between fetches (3s) ! NOTE: There are other options that are used internally. By NCBI policy, ! this module introduces a 3s delay between fetches. If you are fetching ! multiple genbank ids, it is a good idea to use get =cut *************** *** 306,308 **** --- 306,309 ---- 1; + __END__ From bosborne at pub.open-bio.org Fri Dec 16 17:57:42 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 16 17:50:43 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio WebAgent.pm,1.7,1.8 Message-ID: <200512162257.jBGMvgVL014729@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio In directory pub.open-bio.org:/tmp/cvs-serv14720 Modified Files: WebAgent.pm Log Message: Minor edits Index: WebAgent.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/WebAgent.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** WebAgent.pm 17 Nov 2005 09:54:44 -0000 1.7 --- WebAgent.pm 16 Dec 2005 22:57:40 -0000 1.8 *************** *** 21,34 **** =head1 DESCRIPTION ! This abstact superclass is a subclass of L which ! allows protocol independent access of accessing remote locations over the Net. It takes care of error handling, proxies and various net protocols. ! BioPerl classes accessing net should inherit from it. For details, see L. ! The interface is still eveolving. For now, I've copied over two public ! methods from Bio::DB::WebDBSeqI: delay() and delay_policy. These are used to prevent overwhelming the server by rapidly repeated . Ideally there should be a common abstract superclass with these. See L. --- 21,34 ---- =head1 DESCRIPTION ! This abstract superclass is a subclass of L which ! allows protocol independent access of remote locations over the Net. It takes care of error handling, proxies and various net protocols. ! BioPerl classes accessing the net should inherit from it. For details, see L. ! The interface is still evolving. For now, two public methods have been ! copied from Bio::DB::WebDBSeqI: delay() and delay_policy. These are used to prevent overwhelming the server by rapidly repeated . Ideally there should be a common abstract superclass with these. See L. From bosborne at pub.open-bio.org Fri Dec 16 22:48:00 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 16 22:41:37 2005 Subject: [Bioperl-guts-l] bioperl-live/t DB.t,1.52,1.53 Message-ID: <200512170348.jBH3m0VL015196@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t In directory pub.open-bio.org:/tmp/cvs-serv15187/t Modified Files: DB.t Log Message: Number of dblinks has changed Index: DB.t =================================================================== RCS file: /home/repository/bioperl/bioperl-live/t/DB.t,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** DB.t 17 Oct 2005 14:46:39 -0000 1.52 --- DB.t 17 Dec 2005 03:47:58 -0000 1.53 *************** *** 81,111 **** 'P31383' => 635, ); if( $DEBUG ) { ! my ($gb,$seq,$seqio,$query); ! # get a single seq ! eval { ! ok defined ( $gb = new Bio::DB::GenBank('-verbose'=>$verbose,'-delay'=>0) ); ! $seq = $gb->get_Seq_by_id('MUSIGHBA1'); ! $seq ? ok 1 : exit 0; ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined ($seq = $gb->get_Seq_by_acc('AF303112'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined ($seq = $gb->get_Seq_by_version('AF303112.1'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined ($seq = $gb->get_Seq_by_gi('405830'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to Genbank with Bio::DB::GenBank.pm!\nError: $@\nDo you have network access? Skipping all other tests"; } ! foreach ( $Test::ntest..$NUMTESTS ) { skip('no network access',1); } ! exit(0); ! } ! $seq = $seqio = undef; ! eval { ! ok( defined($seqio = $gb->get_Stream_by_id([ qw(J00522 AF303112 ! 2981014)]))); while( my $s = $seqio->next_seq ) { ok( $s->length, $expected_lengths{$s->display_id}); --- 81,112 ---- 'P31383' => 635, ); + if( $DEBUG ) { ! my ($gb,$seq,$seqio,$query); ! # get a single seq ! eval { ! ok defined ( $gb = new Bio::DB::GenBank('-verbose'=>$verbose,'-delay'=>0) ); ! $seq = $gb->get_Seq_by_id('MUSIGHBA1'); ! $seq ? ok 1 : exit 0; ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined ($seq = $gb->get_Seq_by_acc('AF303112'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined ($seq = $gb->get_Seq_by_version('AF303112.1'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined ($seq = $gb->get_Seq_by_gi('405830'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to Genbank with Bio::DB::GenBank.pm!\nError: $@\nDo you have network access? Skipping all other tests"; ! } ! foreach ( $Test::ntest..$NUMTESTS ) { skip('no network access',1); } ! exit(0); } ! $seq = $seqio = undef; ! eval { ! ok( defined($seqio = $gb->get_Stream_by_id([ qw(J00522 AF303112 ! 2981014)]))); while( my $s = $seqio->next_seq ) { ok( $s->length, $expected_lengths{$s->display_id}); *************** *** 114,121 **** if ($@) { ! if( $DEBUG ) { warn "Batch access test failed.\nError: $@\n"; } ! foreach ( $Test::ntest..$NUMTESTS ) { skip('no network access',1); } ! exit(0); ! } $seq = $seqio = undef; --- 115,122 ---- if ($@) { ! if( $DEBUG ) { warn "Batch access test failed.\nError: $@\n"; } ! foreach ( $Test::ntest..$NUMTESTS ) { skip('no network access',1); } ! exit(0); ! } $seq = $seqio = undef; *************** *** 132,135 **** --- 133,137 ---- ok( $s->length, $expected_lengths{$s->display_id}); } + # swissprot genpept parsing ok( defined($seq = $gb->get_Seq_by_acc('2AAA_YEAST') )); *************** *** 140,144 **** # small chance this might change but hopefully not my @annot = $seq->annotation->get_Annotations('dblink'); ! ok(scalar @annot, 29); # ok($annot[0]->database, 'swissprot'); ok($annot[0]->primary_id, '2AAA_YEAST'); --- 142,146 ---- # small chance this might change but hopefully not my @annot = $seq->annotation->get_Annotations('dblink'); ! ok(scalar @annot, 30); # ok($annot[0]->database, 'swissprot'); ok($annot[0]->primary_id, '2AAA_YEAST'); From bosborne at pub.open-bio.org Fri Dec 16 23:27:40 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 16 23:20:43 2005 Subject: [Bioperl-guts-l] bioperl-live/t DB.t,1.53,1.54 Message-ID: <200512170427.jBH4ReVL015314@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t In directory pub.open-bio.org:/tmp/cvs-serv15305/t Modified Files: DB.t Log Message: Add test for bug 1405 (-seq_start, -seq_stop). Index: DB.t =================================================================== RCS file: /home/repository/bioperl/bioperl-live/t/DB.t,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** DB.t 17 Dec 2005 03:47:58 -0000 1.53 --- DB.t 17 Dec 2005 04:27:38 -0000 1.54 *************** *** 20,38 **** eval { require Test; }; $error = 0; ! if( $@ ) { use lib 't'; } use Test; ! $NUMTESTS = 84; plan tests => $NUMTESTS; eval { require IO::String; ! require LWP::UserAgent; ! require HTTP::Request::Common; }; if( $@ ) { print STDERR "IO::String or LWP::UserAgent or HTTP::Request not installed. This means the Bio::DB::* modules are not usable. Skipping tests.\n"; for( 1..$NUMTESTS ) { ! skip("IO::String, LWP::UserAgent,or HTTP::Request not installed",1); } $error = 1; --- 20,38 ---- eval { require Test; }; $error = 0; ! if ( $@ ) { use lib 't'; } use Test; ! $NUMTESTS = 85; plan tests => $NUMTESTS; eval { require IO::String; ! require LWP::UserAgent; ! require HTTP::Request::Common; }; if( $@ ) { print STDERR "IO::String or LWP::UserAgent or HTTP::Request not installed. This means the Bio::DB::* modules are not usable. Skipping tests.\n"; for( 1..$NUMTESTS ) { ! skip("IO::String, LWP::UserAgent,or HTTP::Request not installed",1); } $error = 1; *************** *** 56,84 **** my %expected_lengths = ( 'NDP_MOUSE' => 131, ! 'NDP_HUMAN' => 133, ! 'MUSIGHBA1' => 408, ! 'AF303112' => 1611, ! 'J00522' => 408, ! 'AF303112' => 1611, ! 'AF303112.1' => 1611, ! '2981014' => 1156, ! 'AF041456' => 1156, ! 'AY080910' => 798, ! 'AY080909' => 1042, ! 'AF155220' => 1172, ! '405830' => 1743, ! 'CELRABGDI' => 1743, ! '195055' => 136, ! 'AAD15290' => 136, ! 'AAC06201' => 353, ! 'P43780' => 103, ! 'BOLA_HAEIN'=> 103, ! 'YNB3_YEAST'=> 125, ! 'O39869' => 56, ! 'P18584' => 497, ! 'DEGP_CHLTR'=> 497, ! 'AF442768' => 2547, ! 'P31383' => 635, ! ); if( $DEBUG ) { --- 56,84 ---- my %expected_lengths = ( 'NDP_MOUSE' => 131, ! 'NDP_HUMAN' => 133, ! 'MUSIGHBA1' => 408, ! 'AF303112' => 1611, ! 'J00522' => 408, ! 'AF303112' => 1611, ! 'AF303112.1' => 1611, ! '2981014' => 1156, ! 'AF041456' => 1156, ! 'AY080910' => 798, ! 'AY080909' => 1042, ! 'AF155220' => 1172, ! '405830' => 1743, ! 'CELRABGDI' => 1743, ! '195055' => 136, ! 'AAD15290' => 136, ! 'AAC06201' => 353, ! 'P43780' => 103, ! 'BOLA_HAEIN'=> 103, ! 'YNB3_YEAST'=> 125, ! 'O39869' => 56, ! 'P18584' => 497, ! 'DEGP_CHLTR'=> 497, ! 'AF442768' => 2547, ! 'P31383' => 635, ! ); if( $DEBUG ) { *************** *** 115,223 **** if ($@) { ! if( $DEBUG ) { warn "Batch access test failed.\nError: $@\n"; } ! foreach ( $Test::ntest..$NUMTESTS ) { skip('no network access',1); } ! exit(0); ! } ! $seq = $seqio = undef; ! eval { ! ok defined($gb = new Bio::DB::GenPept('-verbose'=>$verbose,'-delay'=>0)); ! ok( defined($seq = $gb->get_Seq_by_id('195055'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! $seq = $gb->get_Seq_by_acc('AAC06201'); ! ok(defined $seq); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! $seqio = $gb->get_Stream_by_id([ qw(AAC06201 195055)]); ! ok( defined $seqio); ! while( my $s = $seqio->next_seq ) { ! ok( $s->length, $expected_lengths{$s->display_id}); ! } ! # swissprot genpept parsing ! ok( defined($seq = $gb->get_Seq_by_acc('2AAA_YEAST') )); ! ok($seq->length, $expected_lengths{$seq->display_id}, ! $expected_lengths{$seq->display_id}); ! # test dbsource stuff ! # small chance this might change but hopefully not ! my @annot = $seq->annotation->get_Annotations('dblink'); ! ok(scalar @annot, 30); # ! ok($annot[0]->database, 'swissprot'); ! ok($annot[0]->primary_id, '2AAA_YEAST'); ! ok( ($seq->annotation->get_Annotations('swissprot_dates'))[0]->value, 'Jul 1, 1993'); ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to Genbank with Bio::DB::GenPept.pm!\n$@"; ! } ! foreach( $Test::ntest..$NUMTESTS ) { ! skip('could not connect with GenPept',1); } ! exit(0); ! } ! $seq = $seqio = undef; ! eval { ! ok defined($gb = new Bio::DB::SwissProt('-verbose'=>$verbose,-retrievaltype=>'pipeline','-delay'=>0)); ! ok(defined($seq = $gb->get_Seq_by_id('YNB3_YEAST'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok($seq->division, 'YEAST'); ! ok(defined($seq = $gb->get_Seq_by_acc('P43780'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined( $seq = $gb->get_Seq_by_acc('O39869'))); ! ok( $seq->length, $expected_lengths{$seq->accession_number}); ! ok($seq->accession_number, 'O39869'); ! ok($seq->division, '9PICO'); ! # test for bug #958 ! $seq = $gb->get_Seq_by_id('P18584'); ! ok( defined $seq ); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! #skip($seq->primary_id =~ /^Bio::Seq/, $seq->primary_id, 'DEGP'); ! ok( $seq->display_id, 'DEGP_CHLTR'); ! ok( $seq->division, 'CHLTR'); ! ok( defined($gb = new Bio::DB::SwissProt('-verbose'=>$verbose, ! '-retrievaltype' => 'tempfile', ! '-delay' => 0, ! ))); ! ok(defined($seqio = $gb->get_Stream_by_id(['NDP_MOUSE', 'NDP_HUMAN']))); ! undef $gb; # testing to see if we can remove gb ! ok( defined($seq = $seqio->next_seq())); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined($seq = $seqio->next_seq())); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! }; ! if ($@) { ! if( $DEBUG ) { ! print STDERR "Warning: Couldn't connect to SwissProt with Bio::DB::Swiss.pm!\n$@"; ! } ! foreach ( $Test::ntest..$NUMTESTS) { ! skip('could not connect to swissprot',1); } ! exit(0); ! } ! $seq = undef; ! # test the temporary file creation and fasta ! eval { ! ok defined ( $gb = new Bio::DB::GenBank('-verbose' =>$verbose, ! '-format' => 'fasta', ! '-retrievaltype' => 'tempfile', ! '-delay' => 0) ); ! ok( defined ($seq = $gb->get_Seq_by_id('MUSIGHBA1'))); ! # last part of id holds the key ! ok($seq->length, $expected_lengths{(split(/\|/,$seq->display_id))[-1]}); ! $seq = $gb->get_Seq_by_acc('AF303112'); ! ok( defined $seq); ! # last part of id holds the key ! ok($seq->length, $expected_lengths{(split(/\|/,$seq->display_id))[-1]}); ! # batch mode requires genbank format ! $gb->request_format("gb"); ! ok(defined($seqio = $gb->get_Stream_by_id([ qw(J00522 AF303112 ! 2981014)]))); while( my $s = $seqio->next_seq ) { ok( $s->length, $expected_lengths{$s->display_id}); --- 115,224 ---- if ($@) { ! if( $DEBUG ) { warn "Batch access test failed.\nError: $@\n"; } ! foreach ( $Test::ntest..$NUMTESTS ) { skip('no network access',1); } ! exit(0); ! } ! $seq = $seqio = undef; ! eval { ! ok defined($gb = new Bio::DB::GenPept('-verbose'=>$verbose,'-delay'=>0)); ! ok( defined($seq = $gb->get_Seq_by_id('195055'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! $seq = $gb->get_Seq_by_acc('AAC06201'); ! ok(defined $seq); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! $seqio = $gb->get_Stream_by_id([ qw(AAC06201 195055)]); ! ok( defined $seqio); ! while( my $s = $seqio->next_seq ) { ! ok( $s->length, $expected_lengths{$s->display_id}); ! } ! # swissprot genpept parsing ! ok( defined($seq = $gb->get_Seq_by_acc('2AAA_YEAST') )); ! ok($seq->length, $expected_lengths{$seq->display_id}, ! $expected_lengths{$seq->display_id}); ! # test dbsource stuff ! # small chance this might change but hopefully not ! my @annot = $seq->annotation->get_Annotations('dblink'); ! ok(scalar @annot, 30); # ! ok($annot[0]->database, 'swissprot'); ! ok($annot[0]->primary_id, '2AAA_YEAST'); ! ok( ($seq->annotation->get_Annotations('swissprot_dates'))[0]->value, 'Jul 1, 1993'); ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to Genbank with Bio::DB::GenPept.pm!\n$@"; ! } ! foreach( $Test::ntest..$NUMTESTS ) { ! skip('could not connect with GenPept',1); ! } ! exit(0); } ! $seq = $seqio = undef; ! eval { ! ok defined($gb = new Bio::DB::SwissProt('-verbose'=>$verbose,-retrievaltype=>'pipeline','-delay'=>0)); ! ok(defined($seq = $gb->get_Seq_by_id('YNB3_YEAST'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok($seq->division, 'YEAST'); ! ok(defined($seq = $gb->get_Seq_by_acc('P43780'))); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined( $seq = $gb->get_Seq_by_acc('O39869'))); ! ok( $seq->length, $expected_lengths{$seq->accession_number}); ! ok($seq->accession_number, 'O39869'); ! ok($seq->division, '9PICO'); ! # test for bug #958 ! $seq = $gb->get_Seq_by_id('P18584'); ! ok( defined $seq ); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! #skip($seq->primary_id =~ /^Bio::Seq/, $seq->primary_id, 'DEGP'); ! ok( $seq->display_id, 'DEGP_CHLTR'); ! ok( $seq->division, 'CHLTR'); ! ok( defined($gb = new Bio::DB::SwissProt('-verbose'=>$verbose, ! '-retrievaltype' => 'tempfile', ! '-delay' => 0, ! ))); ! ok(defined($seqio = $gb->get_Stream_by_id(['NDP_MOUSE', 'NDP_HUMAN']))); ! undef $gb; # testing to see if we can remove gb ! ok( defined($seq = $seqio->next_seq())); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! ok( defined($seq = $seqio->next_seq())); ! ok( $seq->length, $expected_lengths{$seq->display_id}); ! }; ! if ($@) { ! if( $DEBUG ) { ! print STDERR "Warning: Couldn't connect to SwissProt with Bio::DB::Swiss.pm!\n$@"; ! } ! foreach ( $Test::ntest..$NUMTESTS) { ! skip('could not connect to swissprot',1); ! } ! exit(0); } ! $seq = undef; ! ! # test the temporary file creation and fasta ! eval { ! ok defined ( $gb = new Bio::DB::GenBank('-verbose' =>$verbose, ! '-format' => 'fasta', ! '-retrievaltype' => 'tempfile', ! '-delay' => 0) ); ! ok( defined ($seq = $gb->get_Seq_by_id('MUSIGHBA1'))); ! # last part of id holds the key ! ok($seq->length, $expected_lengths{(split(/\|/,$seq->display_id))[-1]}); ! $seq = $gb->get_Seq_by_acc('AF303112'); ! ok( defined $seq); ! # last part of id holds the key ! ok($seq->length, $expected_lengths{(split(/\|/,$seq->display_id))[-1]}); ! # batch mode requires genbank format ! $gb->request_format("gb"); ! ok(defined($seqio = $gb->get_Stream_by_id([ qw(J00522 AF303112 ! 2981014)]))); while( my $s = $seqio->next_seq ) { ok( $s->length, $expected_lengths{$s->display_id}); *************** *** 252,337 **** 2981014)]))); while( my $s = $seqio->next_seq ) { ! ok( $s->length, $expected_lengths{$s->display_id}); ! undef $gb; # test the case where the db is gone, ! # but the pipeline should remain until seqio goes away } ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to complete GenBank tests with a pipeline with Bio::DB::GenBank.pm!\n $@\n"; ! } ! foreach ( $Test::ntest..$NUMTESTS ) { ! skip('could not connect to Genbank',1); } ! } ! $seq = $seqio = undef; ! # test query facility ! eval { ! ok defined ( $query = Bio::DB::Query::GenBank->new('-verbose' => $verbose, ! '-db' => 'nucleotide', ! '-query' => 'Onchocerca volvulus[Organism]', ! '-mindate' => '2002/1/1', ! '-maxdate' => '2002/12/31')); ! ok $query->count > 0; ! my @ids = $query->ids; ! ok @ids > 0; ! ok @ids == $query->count; ! ok defined ($gb = Bio::DB::GenBank->new('-verbose' =>$verbose, ! '-delay' => 0, ! )); ! ok defined ($seqio = $gb->get_Stream_by_query($query)); ! while( my $s = $seqio->next_seq ) { ! ok( $s->length, $expected_lengths{$s->display_id}); ! undef $gb; # test the case where the db is gone, ! # but the pipeline should remain until seqio goes away ! } ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to complete GenBank query tests!\n $@\n"; ! } ! foreach ( $Test::ntest..$NUMTESTS ) { ! skip('could not connect to Genbank',1); } ! } ! $seq = $seqio = undef; ! # test query facility ! eval { ! ok defined ( $query = Bio::DB::Query::GenBank->new('-verbose' => $verbose, ! '-db' => 'nucleotide', ! '-ids' => [qw(J00522 ! AF303112 ! 2981014)])); ! ok $query->count > 0; ! my @ids = $query->ids; ! ok @ids > 0; ! ok @ids == $query->count; ! ok defined ($gb = Bio::DB::GenBank->new('-verbose' =>$verbose, ! '-delay' => 0, ! )); ! ok defined ($seqio = $gb->get_Stream_by_query($query)); ! while( my $s = $seqio->next_seq ) { ! ok( $s->length, $expected_lengths{$s->display_id}); ! } ! $seqio->close(); # the key to preventing errors during make test, no idea why ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to complete GenBank query tests!\n $@\n"; ! } ! foreach ( $Test::ntest..$NUMTESTS ) { ! skip('could not connect to Genbank',1); } ! } ! $seq = $seqio = undef; } else { ! for ( $Test::ntest..$NUMTESTS) { ! skip("Skipping tests which require remote servers - set env variable BIOPERLDEBUG to test",1); ! } } --- 253,346 ---- 2981014)]))); while( my $s = $seqio->next_seq ) { ! ok( $s->length, $expected_lengths{$s->display_id}); ! undef $gb; # test the case where the db is gone, ! # but the pipeline should remain until seqio goes away } ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to complete GenBank tests with a pipeline with Bio::DB::GenBank.pm!\n $@\n"; ! } ! foreach ( $Test::ntest..$NUMTESTS ) { ! skip('could not connect to Genbank',1); ! } } ! $seq = $seqio = undef; ! # test query facility ! eval { ! ok defined ( $query = Bio::DB::Query::GenBank->new('-verbose' => $verbose, ! '-db' => 'nucleotide', ! '-query' => 'Onchocerca volvulus[Organism]', ! '-mindate' => '2002/1/1', ! '-maxdate' => '2002/12/31')); ! ok $query->count > 0; ! my @ids = $query->ids; ! ok @ids > 0; ! ok @ids == $query->count; ! ok defined ($gb = Bio::DB::GenBank->new('-verbose' =>$verbose, ! '-delay' => 0, ! )); ! ok defined ($seqio = $gb->get_Stream_by_query($query)); ! while( my $s = $seqio->next_seq ) { ! ok( $s->length, $expected_lengths{$s->display_id}); ! undef $gb; # test the case where the db is gone, ! # but the pipeline should remain until seqio goes away ! } ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to complete GenBank query tests!\n $@\n"; ! } ! foreach ( $Test::ntest..$NUMTESTS ) { ! skip('could not connect to Genbank',1); ! } } ! $seq = $seqio = undef; ! # test query facility ! eval { ! ok defined ( $query = Bio::DB::Query::GenBank->new('-verbose' => $verbose, ! '-db' => 'nucleotide', ! '-ids' => [qw(J00522 ! AF303112 ! 2981014)])); ! ok $query->count > 0; ! my @ids = $query->ids; ! ok @ids > 0; ! ok @ids == $query->count; ! ok defined ($gb = Bio::DB::GenBank->new('-verbose' =>$verbose, ! '-delay' => 0, ! )); ! ok defined ($seqio = $gb->get_Stream_by_query($query)); ! while( my $s = $seqio->next_seq ) { ! ok( $s->length, $expected_lengths{$s->display_id}); ! } ! $seqio->close(); # the key to preventing errors during make test, no idea why ! }; ! if ($@) { ! if( $DEBUG ) { ! warn "Warning: Couldn't connect to complete GenBank query tests!\n $@\n"; ! } ! foreach ( $Test::ntest..$NUMTESTS ) { ! skip('could not connect to Genbank',1); ! } } ! $seq = $seqio = undef; ! ! # bug 1405 ! $gb = Bio::DB::GenBank->new(-format => 'Fasta', ! -seq_start => 2, ! -seq_stop => 7 ); ! ! $seq = $gb->get_Seq_by_acc("A11111"); ! ok($seq->length,6); } else { ! for ( $Test::ntest..$NUMTESTS) { ! skip("Skipping tests which require remote servers - set env variable BIOPERLDEBUG to test",1); ! } } From bosborne at pub.open-bio.org Fri Dec 16 23:34:58 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 16 23:28:03 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB GenBank.pm, 1.52, 1.53 NCBIHelper.pm, 1.39, 1.40 WebDBSeqI.pm, 1.45, 1.46 Message-ID: <200512170434.jBH4YwVL015351@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB In directory pub.open-bio.org:/tmp/cvs-serv15342 Modified Files: GenBank.pm NCBIHelper.pm WebDBSeqI.pm Log Message: Bug 1405 Index: WebDBSeqI.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/WebDBSeqI.pm,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** WebDBSeqI.pm 9 Oct 2005 14:53:09 -0000 1.45 --- WebDBSeqI.pm 17 Dec 2005 04:34:56 -0000 1.46 *************** *** 10,14 **** # # POD documentation - main docs before the code ! # =head1 NAME --- 10,14 ---- # # POD documentation - main docs before the code ! # =head1 NAME *************** *** 25,30 **** =head1 DESCRIPTION Provides core set of functionality for connecting to a web based ! database for retrieving sequences. Users wishing to add another Web Based Sequence Dabatase will need to --- 25,33 ---- =head1 DESCRIPTION + + + Provides core set of functionality for connecting to a web based ! database for retriving sequences. Users wishing to add another Web Based Sequence Dabatase will need to *************** *** 34,37 **** --- 37,42 ---- on what query types the database accepts). + + =head1 FEEDBACK *************** *** 49,56 **** =head2 Reporting Bugs ! Report bugs to the Bioperl bug tracking system to help us keep track ! the bugs and their resolution. Bug reports can be submitted via the web: http://bugzilla.bioperl.org/ --- 54,63 ---- =head2 Reporting Bugs ! Report bugs to the Bioperl bug tracking system to ! help us keep track the bugs and their resolution. ! Bug reports can be submitted via email or the web: + bioperl-bugs@bio.perl.org http://bugzilla.bioperl.org/ *************** *** 72,76 **** use strict; use vars qw(@ISA $MODVERSION %RETRIEVAL_TYPES $DEFAULT_RETRIEVAL_TYPE ! $DEFAULTFORMAT $LAST_INVOCATION_TIME); use Bio::DB::RandomAccessI; --- 79,83 ---- use strict; use vars qw(@ISA $MODVERSION %RETRIEVAL_TYPES $DEFAULT_RETRIEVAL_TYPE ! $DEFAULTFORMAT $LAST_INVOCATION_TIME @ATTRIBUTES); use Bio::DB::RandomAccessI; *************** *** 87,130 **** BEGIN { ! $MODVERSION = $Bio::Root::Version::VERSION; ! %RETRIEVAL_TYPES = ( 'io_string' => 1, ! 'tempfile' => 1, ! 'pipeline' => 1, ! ); ! $DEFAULT_RETRIEVAL_TYPE = 'pipeline'; ! $DEFAULTFORMAT = 'fasta'; ! $LAST_INVOCATION_TIME = 0; } sub new { ! my ($class, @args) = @_; ! my $self = $class->SUPER::new(@args); ! my ($baseaddress, $params, $ret_type, $format,$delay,$db) = ! $self->_rearrange([qw(BASEADDRESS PARAMS RETRIEVALTYPE FORMAT DELAY DB)], ! @args); ! $ret_type = $DEFAULT_RETRIEVAL_TYPE unless ( $ret_type); ! $baseaddress && $self->url_base_address($baseaddress); ! $params && $self->url_params($params); ! $db && $self->db($db); ! $ret_type && $self->retrieval_type($ret_type); ! $self->retrieval_type('io_string') if $self->retrieval_type =~ /pipeline/ ! && $^O =~ /^MSWin/; # MSWin can't do pipes ! $delay = $self->delay_policy unless defined $delay; ! $self->delay($delay); ! # insure we always have a default format set for retrieval ! # even though this will be immedietly overwritten by most sub classes ! $format = $self->default_format unless ( defined $format && $format ne '' ); ! $self->request_format($format); ! my $ua = new LWP::UserAgent(env_proxy => 1); ! my $nm = ref($self); ! $nm =~ s/::/_/g; ! $ua->agent("bioperl-$nm/$MODVERSION"); ! $self->ua($ua); ! $self->{'_authentication'} = []; ! return $self; } --- 94,149 ---- BEGIN { ! $MODVERSION = '0.8'; ! %RETRIEVAL_TYPES = ( 'io_string' => 1, ! 'tempfile' => 1, ! 'pipeline' => 1, ! ); ! $DEFAULT_RETRIEVAL_TYPE = 'pipeline'; ! $DEFAULTFORMAT = 'fasta'; ! $LAST_INVOCATION_TIME = 0; ! @ATTRIBUTES = qw(complexity strand seq_start seq_stop no_redirect); ! for my $method (@ATTRIBUTES) { ! eval <{'_$method'}; ! \$self->{'_$method'} = shift if \@_; ! \$d; ! } ! END ! } } sub new { ! my ($class, @args) = @_; ! my $self = $class->SUPER::new(@args); ! my ($baseaddress, $params, $ret_type, $format,$delay,$db,$seq_start,$seq_stop,$no_redirect,$complexity,$strand) = ! $self->_rearrange([qw(BASEADDRESS PARAMS RETRIEVALTYPE FORMAT DELAY DB SEQ_START SEQ_STOP NO_REDIRECT COMPLEXITY STRAND)], ! @args); ! $ret_type = $DEFAULT_RETRIEVAL_TYPE unless ( $ret_type); ! $baseaddress && $self->url_base_address($baseaddress); ! $params && $self->url_params($params); ! $db && $self->db($db); ! $ret_type && $self->retrieval_type($ret_type); ! $seq_start && $self->seq_start($seq_start); ! $seq_stop && $self->seq_stop($seq_stop); ! $no_redirect && $self->no_redirect($no_redirect); ! $complexity && $self->complexity($complexity); ! $strand && $self->strand($strand); ! $delay = $self->delay_policy unless defined $delay; ! $self->delay($delay); ! # insure we always have a default format set for retrieval ! # even though this will be immedietly overwritten by most sub classes ! $format = $self->default_format unless ( defined $format && $format ne '' ); ! $self->request_format($format); ! my $ua = new LWP::UserAgent; ! $ua->agent(ref($self) ."/$MODVERSION"); ! $self->ua($ua); ! $self->{'_authentication'} = []; ! return $self; } *************** *** 144,161 **** sub get_Seq_by_id { ! my ($self,$seqid) = @_; ! $self->_sleep; ! my $seqio = $self->get_Stream_by_id([$seqid]); ! unless( defined $seqio ) { ! $self->warn("id ($seqid) does not exist"); ! return undef; ! } ! my @seqs; ! while( my $seq = $seqio->next_seq() ) { push @seqs, $seq; } ! unless( @seqs ) { ! $self->warn("id ($seqid) does not exist"); ! return undef; ! } ! if( wantarray ) { return @seqs } else { return shift @seqs } } --- 163,174 ---- sub get_Seq_by_id { ! my ($self,$seqid) = @_; ! $self->_sleep; ! my $seqio = $self->get_Stream_by_id([$seqid]); ! $self->throw("id does not exist") if( !defined $seqio ) ; ! my @seqs; ! while( my $seq = $seqio->next_seq() ) { push @seqs, $seq; } ! $self->throw("id does not exist") unless @seqs; ! if( wantarray ) { return @seqs } else { return shift @seqs } } *************** *** 175,188 **** $self->_sleep; my $seqio = $self->get_Stream_by_acc($seqid); ! if( ! defined $seqio ) { ! $self->warn("acc ($seqid) does not exist"); ! return undef; ! } my @seqs; while( my $seq = $seqio->next_seq() ) { push @seqs, $seq; } ! unless( @seqs ) { ! $self->warn("acc ($seqid) does not exist"); ! return undef; ! } if( wantarray ) { return @seqs } else { return shift @seqs } } --- 188,195 ---- $self->_sleep; my $seqio = $self->get_Stream_by_acc($seqid); ! $self->throw("acc $seqid does not exist") if( ! defined $seqio ); my @seqs; while( my $seq = $seqio->next_seq() ) { push @seqs, $seq; } ! $self->throw("acc $seqid does not exist") unless @seqs; if( wantarray ) { return @seqs } else { return shift @seqs } } *************** *** 202,217 **** sub get_Seq_by_gi { my ($self,$seqid) = @_; ! $self->_sleep; my $seqio = $self->get_Stream_by_gi($seqid); ! unless( defined $seqio ) { ! $self->warn("gi ($seqid) does not exist"); ! return undef; ! } my @seqs; while( my $seq = $seqio->next_seq() ) { push @seqs, $seq; } ! unless( @seqs ) { ! $self->warn("gi ($seqid) does not exist"); ! return undef; ! } if( wantarray ) { return @seqs } else { return shift @seqs } } --- 209,218 ---- sub get_Seq_by_gi { my ($self,$seqid) = @_; ! $self->_sleep; my $seqio = $self->get_Stream_by_gi($seqid); ! $self->throw("gi does not exist") if( !defined $seqio ); my @seqs; while( my $seq = $seqio->next_seq() ) { push @seqs, $seq; } ! $self->throw("gi does not exist") unless @seqs; if( wantarray ) { return @seqs } else { return shift @seqs } } *************** *** 230,245 **** sub get_Seq_by_version { my ($self,$seqid) = @_; ! $self->_sleep; my $seqio = $self->get_Stream_by_version($seqid); ! unless( defined $seqio ) { ! $self->warn("accession.version ($seqid) does not exist"); ! return undef; ! } my @seqs; while( my $seq = $seqio->next_seq() ) { push @seqs, $seq; } ! unless( @seqs ) { ! $self->warn("accession.version ($seqid) does not exist"); ! return undef; ! } if( wantarray ) { return @seqs } else { return shift @seqs } } --- 231,240 ---- sub get_Seq_by_version { my ($self,$seqid) = @_; ! $self->_sleep; my $seqio = $self->get_Stream_by_version($seqid); ! $self->throw("accession.version does not exist") if( !defined $seqio ); my @seqs; while( my $seq = $seqio->next_seq() ) { push @seqs, $seq; } ! $self->throw("accession.version does not exist") unless @seqs; if( wantarray ) { return @seqs } else { return shift @seqs } } *************** *** 258,264 **** sub get_request { ! my ($self) = @_; ! my $msg = "Implementing class must define method get_request in class WebDBSeqI"; ! $self->throw($msg); } --- 253,259 ---- sub get_request { ! my ($self) = @_; ! my $msg = "Implementing class must define method get_request in class WebDBSeqI"; ! $self->throw($msg); } *************** *** 278,291 **** sub get_Stream_by_id { ! my ($self, $ids) = @_; ! my ($webfmt,$localfmt) = $self->request_format; ! return $self->get_seq_stream('-uids' => $ids, '-mode' => 'single', ! '-format' => $webfmt); } *get_Stream_by_batch = sub { ! my $self = shift; ! $self->deprecated('get_Stream_by_batch() is deprecated; use get_Stream_by_id() instead'); ! $self->get_Stream_by_id(@_) }; --- 273,286 ---- sub get_Stream_by_id { ! my ($self, $ids) = @_; ! my ($webfmt,$localfmt) = $self->request_format; ! return $self->get_seq_stream('-uids' => $ids, '-mode' => 'single', ! '-format' => $webfmt); } *get_Stream_by_batch = sub { ! my $self = shift; ! $self->deprecated('get_Stream_by_batch() is deprecated; use get_Stream_by_id() instead'); ! $self->get_Stream_by_id(@_) }; *************** *** 304,309 **** sub get_Stream_by_acc { ! my ($self, $ids ) = @_; ! return $self->get_seq_stream('-uids' => $ids, '-mode' => 'single'); } --- 299,304 ---- sub get_Stream_by_acc { ! my ($self, $ids ) = @_; ! return $self->get_seq_stream('-uids' => $ids, '-mode' => 'single'); } *************** *** 322,327 **** sub get_Stream_by_gi { ! my ($self, $ids ) = @_; ! return $self->get_seq_stream('-uids' => $ids, '-mode' => 'gi'); } --- 317,322 ---- sub get_Stream_by_gi { ! my ($self, $ids ) = @_; ! return $self->get_seq_stream('-uids' => $ids, '-mode' => 'gi'); } *************** *** 339,346 **** sub get_Stream_by_version { ! my ($self, $ids ) = @_; # $self->throw("Implementing class should define this method!"); ! return $self->get_seq_stream('-uids' => $ids, '-mode' => 'version'); ! # how it should work } --- 334,340 ---- sub get_Stream_by_version { ! my ($self, $ids ) = @_; # $self->throw("Implementing class should define this method!"); ! return $self->get_seq_stream('-uids' => $ids, '-mode' => 'version'); # how it should work } *************** *** 379,386 **** # sorry, but this is hacked in because of BioFetch problems... sub db { ! my $self = shift; ! my $d = $self->{_db}; ! $self->{_db} = shift if @_; ! $d; } --- 373,380 ---- # sorry, but this is hacked in because of BioFetch problems... sub db { ! my $self = shift; ! my $d = $self->{_db}; ! $self->{_db} = shift if @_; ! $d; } *************** *** 400,409 **** sub request_format { ! my ($self, $value) = @_; ! if( defined $value ) { ! $self->{'_format'} = [ $value, $value]; ! } ! return @{$self->{'_format'}}; } --- 394,403 ---- sub request_format { ! my ($self, $value) = @_; ! if( defined $value ) { ! $self->{'_format'} = [ $value, $value]; ! } ! return @{$self->{'_format'}}; } *************** *** 420,536 **** sub get_seq_stream { ! my ($self, %qualifiers) = @_; ! my ($rformat, $ioformat) = $self->request_format(); ! my $seen = 0; ! foreach my $key ( keys %qualifiers ) { ! if( $key =~ /format/i ) { ! $rformat = $qualifiers{$key}; ! $seen = 1; ! } ! } ! $qualifiers{'-format'} = $rformat if( ! $seen); ! $qualifiers{'-offset'} = 0; ! ($rformat, $ioformat) = $self->request_format($rformat); ! ! # workaround for MSWin systems ! # can this be removed now this is implemented in the "new" sub? ! $self->retrieval_type('io_string') ! if $self->retrieval_type =~ /pipeline/ && $^O =~ /^MSWin/; ! ! my $expected = $qualifiers{-query} && ref $qualifiers{-query} ? $qualifiers{-query}->count : 0; ! my $got = 0; ! ! if ($self->retrieval_type =~ /pipeline/) { ! # Try to create a stream using POSIX fork-and-pipe facility. ! # this is a *big* win when fetching thousands of sequences from ! # a web database because we can return the first entry while ! # transmission is still in progress. ! # Also, no need to keep sequence in memory or in a temporary file. ! # If this fails (Windows, MacOS 9), we fall back to non-pipelined access. ! ! # fork and pipe: _stream_request()=> ! my $result = eval { open(STREAM,"-|") }; ! if (defined $result) { ! $DB::fork_TTY = '/dev/null'; # prevents complaints from debugger ! if (!$result) { # in child process ! do { ! $qualifiers{-offset} = $got; ! my $request = $self->get_request(%qualifiers); ! $request->proxy_authorization_basic($self->authentication) ! if ( $self->authentication); ! $self->debug("request is ". $request->as_string(). "\n"); ! $got += $self->_stream_request($request); ! $self->debug("expected $expected, got $got"); ! } until $got >= $expected; ! kill 9=>$$; ! # to prevent END{} blocks from executing in forked children ! exit 0; ! } ! else { ! return Bio::SeqIO->new('-verbose' => $self->verbose, ! '-format' => $ioformat, ! '-fh' => \*STREAM); ! } ! } ! else { ! $self->retrieval_type('io_string'); ! } ! } ! if ($self->retrieval_type =~ /temp/i) { ! my $dir = $self->io->tempdir( CLEANUP => 1); ! my ( $fh, $tmpfile) = $self->io()->tempfile( DIR => $dir ); ! close $fh; ! my $request = $self->get_request(%qualifiers); ! $request->proxy_authorization_basic($self->authentication) ! if ( $self->authentication); ! $self->debug("request is ". $request->as_string(). "\n"); ! my $resp = $self->_request($request, $tmpfile); ! if( ! -e $tmpfile || -z $tmpfile || ! $resp->is_success() ) { ! $self->throw("WebDBSeqI Error - check query sequences!\n"); ! } ! $self->postprocess_data('type' => 'file', ! 'location' => $tmpfile); ! # this may get reset when requesting batch mode ! ($rformat,$ioformat) = $self->request_format(); ! if( $self->verbose > 0 ) { ! open(ERR, "<$tmpfile"); ! while() { $self->debug($_);} ! } ! return Bio::SeqIO->new('-verbose' => $self->verbose, ! '-format' => $ioformat, ! '-file' => $tmpfile); ! } ! if ($self->retrieval_type =~ /io_string/i ) { ! my $request = $self->get_request(%qualifiers); ! $request->proxy_authorization_basic($self->authentication) ! if ( $self->authentication); ! $self->debug("request is ". $request->as_string(). "\n"); ! my $resp = $self->_request($request); ! my $content = $resp->content_ref; ! $self->debug( "content is $$content\n"); ! if (!$resp->is_success() || length($$content) == 0) { ! $self->throw("WebDBSeqI Error - check query sequences!\n"); ! } ! ($rformat,$ioformat) = $self->request_format(); ! $self->postprocess_data('type'=> 'string', ! 'location' => $content); ! $self->debug( "str is $$content\n"); ! return Bio::SeqIO->new('-verbose' => $self->verbose, ! '-format' => $ioformat, ! '-fh' => new IO::String($$content)); ! } ! # if we got here, we don't know how to handle the retrieval type ! $self->throw("retrieval type " . $self->retrieval_type . ! " unsupported\n"); } --- 414,512 ---- sub get_seq_stream { ! my ($self, %qualifiers) = @_; ! my ($rformat, $ioformat) = $self->request_format(); ! my $seen = 0; ! foreach my $key ( keys %qualifiers ) { ! if( $key =~ /format/i ) { ! $rformat = $qualifiers{$key}; ! $seen = 1; ! } ! } ! $qualifiers{'-format'} = $rformat if( !$seen); ! ($rformat, $ioformat) = $self->request_format($rformat); ! defined $self->seq_start() and ! $qualifiers{'-seq_start'} = $self->seq_start(); ! defined $self->seq_stop() and ! $qualifiers{'-seq_stop'} = $self->seq_stop(); ! my $request = $self->get_request(%qualifiers); ! $request->proxy_authorization_basic($self->authentication) ! if ( $self->authentication); ! $self->debug("request is ". $request->as_string(). "\n"); ! # workaround for MSWin systems ! $self->retrieval_type('io_string') if $self->retrieval_type =~ /pipeline/ && $^O =~ /^MSWin/; ! if ($self->retrieval_type =~ /pipeline/) { ! # Try to create a stream using POSIX fork-and-pipe facility. ! # this is a *big* win when fetching thousands of sequences from ! # a web database because we can return the first entry while ! # transmission is still in progress. ! # Also, no need to keep sequence in memory or in a temporary file. ! # If this fails (Windows, MacOS 9), we fall back to non-pipelined access. ! # fork and pipe: _stream_request()=> ! my $result = eval { open(STREAM,"-|") }; ! if (defined $result) { ! $DB::fork_TTY = '/dev/null'; # prevents complaints from debugger ! if (!$result) { # in child process ! $self->_stream_request($request); ! kill 9=>$$; # to prevent END{} blocks from executing in forked children ! exit 0; ! } ! else { ! return Bio::SeqIO->new('-verbose' => $self->verbose, ! '-format' => $ioformat, ! '-fh' => \*STREAM); ! } ! } ! else { ! $self->retrieval_type('io_string'); ! } ! } ! if ($self->retrieval_type =~ /temp/i) { ! my $dir = $self->io->tempdir( CLEANUP => 1); ! my ( $fh, $tmpfile) = $self->io()->tempfile( DIR => $dir ); ! close $fh; ! my $resp = $self->_request($request, $tmpfile); ! if( ! -e $tmpfile || -z $tmpfile || ! $resp->is_success() ) { ! $self->throw("WebDBSeqI Error - check query sequences!\n"); ! } ! $self->postprocess_data('type' => 'file', ! 'location' => $tmpfile); ! # this may get reset when requesting batch mode ! ($rformat,$ioformat) = $self->request_format(); ! if( $self->verbose > 0 ) { ! open(ERR, "<$tmpfile"); ! while() { $self->debug($_);} ! } ! return Bio::SeqIO->new('-verbose' => $self->verbose, ! '-format' => $ioformat, ! '-file' => $tmpfile); ! } ! if ($self->retrieval_type =~ /io_string/i ) { ! my $resp = $self->_request($request); ! my $content = $resp->content_ref; ! $self->debug( "content is $$content\n"); ! if (!$resp->is_success() || length($$content) == 0) { ! $self->throw("WebDBSeqI Error - check query sequences!\n"); ! } ! ($rformat,$ioformat) = $self->request_format(); ! $self->postprocess_data('type'=> 'string', ! 'location' => $content); ! $self->debug( "str is $$content\n"); ! return Bio::SeqIO->new('-verbose' => $self->verbose, ! '-format' => $ioformat, ! '-fh' => new IO::String($$content)); ! } ! # if we got here, we don't know how to handle the retrieval type ! $self->throw("retrieval type " . $self->retrieval_type . ! " unsupported\n"); } *************** *** 547,554 **** sub url_base_address { ! my $self = shift; ! my $d = $self->{'_baseaddress'}; ! $self->{'_baseaddress'} = shift if @_; ! $d; } --- 523,530 ---- sub url_base_address { ! my $self = shift; ! my $d = $self->{'_baseaddress'}; ! $self->{'_baseaddress'} = shift if @_; ! $d; } *************** *** 569,578 **** sub proxy { ! my ($self,$protocol,$proxy,$username,$password) = @_; ! return undef if ( !defined $self->ua || !defined $protocol ! || !defined $proxy ); ! $self->authentication($username, $password) ! if ($username && $password); ! return $self->ua->proxy($protocol,$proxy); } --- 545,554 ---- sub proxy { ! my ($self,$protocol,$proxy,$username,$password) = @_; ! return undef if ( !defined $self->ua || !defined $protocol ! || !defined $proxy ); ! $self->authentication($username, $password) ! if ($username && $password); ! return $self->ua->proxy($protocol,$proxy); } *************** *** 592,596 **** if( defined $u && defined $p ) { ! $self->{'_authentication'} = [ $u,$p]; } return @{$self->{'_authentication'}}; --- 568,572 ---- if( defined $u && defined $p ) { ! $self->{'_authentication'} = [ $u,$p]; } return @{$self->{'_authentication'}}; *************** *** 631,645 **** sub retrieval_type { ! my ($self, $value) = @_; ! if( defined $value ) { ! $value = lc $value; ! if( ! $RETRIEVAL_TYPES{$value} ) { ! $self->warn("invalid retrieval type $value must be one of (" . ! join(",", keys %RETRIEVAL_TYPES), ")"); ! $value = $DEFAULT_RETRIEVAL_TYPE; ! } ! $self->{'_retrieval_type'} = $value; } ! return $self->{'_retrieval_type'}; } --- 607,621 ---- sub retrieval_type { ! my ($self, $value) = @_; ! if( defined $value ) { ! $value = lc $value; ! if( ! $RETRIEVAL_TYPES{$value} ) { ! $self->warn("invalid retrieval type $value must be one of (" . ! join(",", keys %RETRIEVAL_TYPES), ")"); ! $value = $DEFAULT_RETRIEVAL_TYPE; } ! $self->{'_retrieval_type'} = $value; ! } ! return $self->{'_retrieval_type'}; } *************** *** 656,663 **** sub url_params { ! my ($self, $value) = @_; ! if( defined $value ) { ! $self->{'_urlparams'} = $value; ! } } --- 632,639 ---- sub url_params { ! my ($self, $value) = @_; ! if( defined $value ) { ! $self->{'_urlparams'} = $value; ! } } *************** *** 674,682 **** sub ua { ! my ($self, $ua) = @_; ! if( defined $ua && $ua->isa("LWP::UserAgent") ) { ! $self->{'_ua'} = $ua; ! } ! return $self->{'_ua'}; } --- 650,658 ---- sub ua { ! my ($self, $ua) = @_; ! if( defined $ua && $ua->isa("LWP::UserAgent") ) { ! $self->{'_ua'} = $ua; ! } ! return $self->{'_ua'}; } *************** *** 701,771 **** # private methods sub _request { - my ($self, $url,$tmpfile) = @_; - my ($resp); - if( defined $tmpfile && $tmpfile ne '' ) { - $resp = $self->ua->request($url, $tmpfile); - } else { - $resp = $self->ua->request($url); - } ! if( $resp->is_error ) { ! $self->throw("WebDBSeqI Request Error:\n".$resp->as_string); ! } ! return $resp; } # send web request to stdout for streaming purposes sub _stream_request { ! my $self = shift; ! my $request = shift; ! ! # fork so as to pipe output of fetch process through to ! # postprocess_data method call. ! my $child = open (FETCH,"-|"); ! $self->throw("Couldn't fork: $!") unless defined $child; ! my ($rformat, $ioformat) = $self->request_format; ! my $is_fasta = $ioformat eq 'fasta'; ! if ($child) { # in parent ! local ($/) = $is_fasta ? ">" : "//\n"; # assume genbank/swiss format ! $| = 1; ! my $records = 0; ! while (my $record = ) { ! chomp($record); ! next unless $record =~ /\S/; ! $records++; ! $self->postprocess_data('type' => 'string', ! 'location' => \$record); ! print STDOUT $is_fasta ? ">$record" : "$record//\n"; ! } ! $/ = "\n"; # reset to be safe; ! close FETCH; ! return $records; ! } ! else { ! $| = 1; ! my $resp = $self->ua->request($request, ! sub { print shift } ! ); ! if( $resp->is_error ) { ! $self->throw("WebDBSeqI Request Error:\n".$resp->as_string); ! } ! close STDOUT; ! kill 9=>$$; # to prevent END{} blocks from executing in forked children ! sleep; ! } ! exit 0; } sub io { ! my ($self,$io) = @_; ! if(defined($io) || (! exists($self->{'_io'}))) { ! $io = Bio::Root::IO->new() unless $io; ! $self->{'_io'} = $io; ! } ! return $self->{'_io'}; } --- 677,744 ---- # private methods sub _request { ! my ($self, $url,$tmpfile) = @_; ! my ($resp); ! if( defined $tmpfile && $tmpfile ne '' ) { ! $resp = $self->ua->request($url, $tmpfile); ! } else { $resp = $self->ua->request($url); } ! ! if( $resp->is_error ) { ! $self->throw("WebDBSeqI Request Error:\n".$resp->as_string); ! } ! return $resp; } # send web request to stdout for streaming purposes sub _stream_request { ! my $self = shift; ! my $request = shift; ! # fork so as to pipe output of fetch process through to ! # postprocess_data method call. ! my $child = open (FETCH,"-|"); ! $self->throw("Couldn't fork: $!") unless defined $child; ! if ($child) { ! local ($/) = "//\n"; # assume genbank/swiss format ! $| = 1; ! my $records = 0; ! while (my $record = ) { ! $records++; ! $self->postprocess_data('type' => 'string', ! 'location' => \$record); ! print STDOUT $record; ! } ! $/ = "\n"; # reset to be safe; ! close(FETCH); ! close STDOUT; ! close STDERR; ! kill 9=>$$; # to prevent END{} blocks from executing in forked children ! sleep; ! } ! else { ! $| = 1; ! my $resp = $self->ua->request($request, ! sub { print shift } ! ); ! if( $resp->is_error ) { ! $self->throw("WebDBSeqI Request Error:\n".$resp->as_string); ! } ! close STDOUT; close STDERR; ! kill 9=>$$; # to prevent END{} blocks from executing in forked children ! sleep; ! } ! exit 0; } sub io { ! my ($self,$io) = @_; ! if(defined($io) || (! exists($self->{'_io'}))) { ! $io = Bio::Root::IO->new() unless $io; ! $self->{'_io'} = $io; ! } ! return $self->{'_io'}; } Index: NCBIHelper.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/NCBIHelper.pm,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** NCBIHelper.pm 9 Oct 2005 14:53:09 -0000 1.39 --- NCBIHelper.pm 17 Dec 2005 04:34:56 -0000 1.40 *************** *** 53,60 **** =head2 Reporting Bugs ! Report bugs to the Bioperl bug tracking system to help us keep track ! the bugs and their resolution. Bug reports can be submitted via the web: http://bugzilla.bioperl.org/ --- 53,62 ---- =head2 Reporting Bugs ! Report bugs to the Bioperl bug tracking system to ! help us keep track the bugs and their resolution. ! Bug reports can be submitted via email or the web: + bioperl-bugs@bio.perl.org http://bugzilla.bioperl.org/ *************** *** 76,80 **** use strict; use vars qw(@ISA $HOSTBASE %CGILOCATION %FORMATMAP ! $DEFAULTFORMAT $MAX_ENTRIES); use Bio::DB::WebDBSeqI; --- 78,82 ---- use strict; use vars qw(@ISA $HOSTBASE %CGILOCATION %FORMATMAP ! $DEFAULTFORMAT $MAX_ENTRIES $VERSION); use Bio::DB::WebDBSeqI; *************** *** 87,90 **** --- 89,93 ---- @ISA = qw(Bio::DB::WebDBSeqI Bio::Root::Root); + $VERSION = '0.8'; BEGIN { *************** *** 99,107 **** ); ! %FORMATMAP = ( ! 'gb' => 'genbank', ! 'gbwithparts' => 'genbank', ! 'gp' => 'genbank', ! 'fasta' => 'fasta', ); --- 102,108 ---- ); ! %FORMATMAP = ( 'gb' => 'genbank', ! 'gp' => 'genbank', ! 'fasta' => 'fasta', ); *************** *** 160,168 **** sub get_request { my ($self, @qualifiers) = @_; ! my ($mode, $uids, $format, ! $query, $query_offset) = $self->_rearrange([qw(MODE UIDS FORMAT ! QUERY OFFSET)], ! @qualifiers); ! $mode = lc $mode; ($format) = $self->request_format() unless ( defined $format); --- 161,167 ---- sub get_request { my ($self, @qualifiers) = @_; ! my ($mode, $uids, $format, $query, $seq_start, $seq_stop) = $self->_rearrange([qw(MODE UIDS FORMAT QUERY SEQ_START SEQ_STOP)], ! @qualifiers); ! $mode = lc $mode; ($format) = $self->request_format() unless ( defined $format); *************** *** 177,191 **** $self->throw("Must specify a query or list of uids to fetch"); } ! if ($uids) { if( ref($uids) =~ /array/i ) { ! $uids = join(",", map { ! $_ = "\"$_\"" if( /^\d+/ ); ! $_; ! } @$uids); ! } elsif( $uids =~ /^\d+/ ) { ! $uids = "\"$uids\""; # need to quote it } - $params{'id'} = $uids; } --- 176,184 ---- $self->throw("Must specify a query or list of uids to fetch"); } ! if ($uids) { if( ref($uids) =~ /array/i ) { ! $uids = join(",", @$uids); } $params{'id'} = $uids; } *************** *** 199,205 **** $params{'id'} = join ',',$query->ids; } $params{'rettype'} = $format; - $params{'retstart'} = $query_offset if defined $query_offset; if ($CGILOCATION{$mode}[0] eq 'post') { return POST $url,[%params]; --- 192,200 ---- $params{'id'} = join ',',$query->ids; } + + defined $seq_start and $params{'seq_start'} = $seq_start; + defined $seq_stop and $params{'seq_stop'} = $seq_stop; $params{'rettype'} = $format; if ($CGILOCATION{$mode}[0] eq 'post') { return POST $url,[%params]; *************** *** 320,325 **** while( my $seq = $stream->next_seq() ) { if( $seq->accession_number !~ /$unique_accessions[$ct]/ ) { ! $self->warn( sprintf("warning, %s does not match %s\n", ! $seq->accession_number, $unique_accessions[$ct])); } $accessions{$unique_accessions[$ct]}->{'seq'} = $seq; --- 315,320 ---- while( my $seq = $stream->next_seq() ) { if( $seq->accession_number !~ /$unique_accessions[$ct]/ ) { ! printf STDERR "warning, %s does not match %s\n", ! $seq->accession_number, $unique_accessions[$ct]; } $accessions{$unique_accessions[$ct]}->{'seq'} = $seq; *************** *** 445,454 **** # Asking for a RefSeq from EMBL/GenBank ! ! if ($ids =~ /N._/) { ! $self->warn("[$ids] is not a normal sequence entry but a RefSeq entry.". ! " Redirecting the request.\n") ! if $self->verbose >= 0; ! return $self->refseq_db; } } --- 440,451 ---- # Asking for a RefSeq from EMBL/GenBank ! ! unless ($self->no_redirect) { ! if ($ids =~ /N._/) { ! $self->warn("[$ids] is not a normal sequence database but a RefSeq entry.". ! " Redirecting the request.\n") ! if $self->verbose >= 0; ! return new Bio::DB::RefSeq; ! } } } *************** *** 470,497 **** my $self = shift; return 3; - } - - =head2 refseq_db - - Title : refseq_db - Usage : $obj->refseq_db($newval) - Function: - Example : - Returns : value of refseq_db (a scalar) - Args : on set, new value (a scalar or undef, optional) - - - =cut - - sub refseq_db{ - my $self = shift; - if( @_ ) { - return $self->{'refseq_db'} = shift; - } elsif( ! defined $self->{'refseq_db'} ) { - $self->{'refseq_db'} = Bio::DB::RefSeq->new - (-retrievaltype => $self->retrieval_type, - -verbose => $self->verbose); - } - return $self->{'refseq_db'}; } --- 467,470 ---- Index: GenBank.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/GenBank.pm,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** GenBank.pm 16 Dec 2005 00:05:07 -0000 1.52 --- GenBank.pm 17 Dec 2005 04:34:56 -0000 1.53 *************** *** 44,48 **** (-query =>'Oryza sativa[Organism] AND EST', -reldate => '30', ! -db => 'nucleotide'); my $seqio = $gb->get_Stream_by_query($query); --- 44,48 ---- (-query =>'Oryza sativa[Organism] AND EST', -reldate => '30', ! -db => 'nucleotide'); my $seqio = $gb->get_Stream_by_query($query); *************** *** 65,68 **** --- 65,90 ---- # note that get_Stream_by_version is not implemented + # don't want the entire sequence or more options + my $gb = Bio::DB::GenBank->new(-format => 'Fasta', + -seq_start => 100, + -seq_stop => 200, + -strand => 1, + -complexity => 4)); + my $seqi = $gb->get_Stream_by_query($query); + + These alternate methods are described here: + L + + NOTE: strand should be 1 for plus or 2 for minus. + + Complexity: gi is often a part of a biological blob, containing other gis + + complexity regulates the display: + 0 - get the whole blob + 1 - get the bioseq for gi of interest (default in Entrez) + 2 - get the minimal bioseq-set containing the gi of interest + 3 - get the minimal nuc-prot containing the gi of interest + 4 - get the minimal pub-set containing the gi of interest + =head1 DESCRIPTION *************** *** 98,104 **** Report bugs to the Bioperl bug tracking system to help us keep track ! the bugs and their resolution. Bug reports can be submitted via the ! web: http://bugzilla.bioperl.org/ --- 120,127 ---- Report bugs to the Bioperl bug tracking system to help us keep track ! the bugs and their resolution. Bug reports can be submitted via email ! or the web: + bioperl-bugs@bio.perl.org http://bugzilla.bioperl.org/ *************** *** 150,154 **** } ! # new() is in NCBIHelper # helper method to get db specific options --- 173,177 ---- } ! # new is in NCBIHelper # helper method to get db specific options *************** *** 162,168 **** Args : -delay number of seconds to delay between fetches (3s) ! NOTE: There are other options that are used internally. By NCBI policy, ! this module introduces a 3s delay between fetches. If you are fetching ! multiple genbank ids, it is a good idea to use get =cut --- 185,191 ---- Args : -delay number of seconds to delay between fetches (3s) ! NOTE: There are other options that are used internally. By NCBI policy, this ! module introduces a 3s delay between fetches. If you are fetching multiple genbank ! ids, it is a good idea to use get =cut *************** *** 208,219 **** Throws : "id does not exist" exception - =cut - - - sub get_Seq_by_acc { - my ($self,$seqid) = @_; - $self->SUPER::get_Seq_by_acc("gb|$seqid"); - } - =head2 get_Seq_by_gi --- 231,234 ---- *************** *** 306,309 **** 1; - __END__ --- 321,323 ---- From bugzilla-daemon at portal.open-bio.org Fri Dec 16 23:36:25 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 16 23:58:35 2005 Subject: [Bioperl-guts-l] [Bug 1405] Enhancement to Bio::DB::GenBank to allow subsequence retrieval Message-ID: <200512170436.jBH4aP4P010970@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1405 osborne1@optonline.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #11 from osborne1@optonline.net 2005-12-16 23:36 ------- Patches applied, test added to t/DB.t. All tests pass but the fact that these files are quite old is a bit worrisome (these were not patches by the way, they were the module files themselves). ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Sat Dec 17 22:21:36 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Sat Dec 17 22:16:32 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/SeqIO genbank.pm,1.122,1.123 Message-ID: <200512180321.jBI3LaVL017932@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/SeqIO In directory pub.open-bio.org:/tmp/cvs-serv17923/Bio/SeqIO Modified Files: genbank.pm Log Message: New address Index: genbank.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO/genbank.pm,v retrieving revision 1.122 retrieving revision 1.123 diff -C2 -d -r1.122 -r1.123 *** genbank.pm 18 Oct 2005 18:24:05 -0000 1.122 --- genbank.pm 18 Dec 2005 03:21:34 -0000 1.123 *************** *** 116,120 **** There is more information in the Feature-Annotation HOWTO about each ! field and how it is mapped to the Sequence object. =head1 FEEDBACK --- 116,121 ---- There is more information in the Feature-Annotation HOWTO about each ! field and how it is mapped to the Sequence object ! (http://bioperl.org/HOWTOs). =head1 FEEDBACK *************** *** 154,158 **** Donald G. Jackson, donald.jackson at bms.com James Wasmuth, james.wasmuth at ed.ac.uk ! Brian Osborne, brian at cognia.com =head1 APPENDIX --- 155,159 ---- Donald G. Jackson, donald.jackson at bms.com James Wasmuth, james.wasmuth at ed.ac.uk ! Brian Osborne, osborne1 at optonline.net =head1 APPENDIX From bosborne at pub.open-bio.org Sun Dec 18 10:18:16 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Sun Dec 18 10:11:38 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Index Swissprot.pm,1.20,1.21 Message-ID: <200512181518.jBIFIGVL028239@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Index In directory pub.open-bio.org:/tmp/cvs-serv28230/Bio/Index Modified Files: Swissprot.pm Log Message: New address Index: Swissprot.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Index/Swissprot.pm,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Swissprot.pm 28 Feb 2005 12:49:53 -0000 1.20 --- Swissprot.pm 18 Dec 2005 15:18:14 -0000 1.21 *************** *** 92,96 **** =head1 AUTHOR - Ewan Birney ! Also lorenz@ist.org, bosborne@cognia.com =head1 APPENDIX --- 92,96 ---- =head1 AUTHOR - Ewan Birney ! Also lorenz@ist.org, osborne1@optonline.net =head1 APPENDIX From bosborne at pub.open-bio.org Sun Dec 18 10:19:57 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Sun Dec 18 10:13:09 2005 Subject: [Bioperl-guts-l] bioperl-live/scripts/utilities mutate.PLS,1.7,1.8 Message-ID: <200512181519.jBIFJvVL028271@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/scripts/utilities In directory pub.open-bio.org:/tmp/cvs-serv28262/scripts/utilities Modified Files: mutate.PLS Log Message: New address Index: mutate.PLS =================================================================== RCS file: /home/repository/bioperl/bioperl-live/scripts/utilities/mutate.PLS,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** mutate.PLS 26 Apr 2005 15:03:53 -0000 1.7 --- mutate.PLS 18 Dec 2005 15:19:55 -0000 1.8 *************** *** 45,49 **** =head1 AUTHOR ! Brian Osborne, brian_osborne at cognia.com =cut --- 45,49 ---- =head1 AUTHOR ! Brian Osborne, osborne1 at optonline.net =cut From bosborne at pub.open-bio.org Sun Dec 18 10:43:19 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Sun Dec 18 10:36:12 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB SwissProt.pm,1.24,1.25 Message-ID: <200512181543.jBIFhJVL028411@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB In directory pub.open-bio.org:/tmp/cvs-serv28402/Bio/DB Modified Files: SwissProt.pm Log Message: Minor edits Index: SwissProt.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/SwissProt.pm,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** SwissProt.pm 17 Nov 2005 09:54:46 -0000 1.24 --- SwissProt.pm 18 Dec 2005 15:43:17 -0000 1.25 *************** *** 86,91 **** the correct expasy scripts and for swissknife references. ! Also thanks to Heikki Lehvaslaiho Eheikki-at-bioperl-dot-orgE for help with ! adding EBI swall server. =head1 APPENDIX --- 86,91 ---- the correct expasy scripts and for swissknife references. ! Also thanks to Heikki Lehvaslaiho Eheikki-at-bioperl-dot-orgE ! for help with adding EBI swall server. =head1 APPENDIX *************** *** 412,419 **** $self->request_format("genbank"); $self->request_format("fasta"); ! Function: Get/Set sequence format retrieval. The get-form will normally not ! be used outside of this and derived modules. Returns : Array of two strings, the first representing the format for ! retrieval, and the second specifying the corresponding SeqIO format. Args : $format = sequence format --- 412,420 ---- $self->request_format("genbank"); $self->request_format("fasta"); ! Function: Get/Set sequence format retrieval. The get-form will normally ! not be used outside of this and derived modules. Returns : Array of two strings, the first representing the format for ! retrieval, and the second specifying the corresponding SeqIO ! format. Args : $format = sequence format *************** *** 447,449 **** --- 448,451 ---- 1; + __END__ From bugzilla-daemon at portal.open-bio.org Tue Dec 20 12:54:40 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Tue Dec 20 12:58:19 2005 Subject: [Bioperl-guts-l] [Bug 1922] New: Annotation:_typemap remembers removed types Message-ID: <200512201754.jBKHsemd026748@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1922 Summary: Annotation:_typemap remembers removed types Product: Bioperl Version: 1.5 branch Platform: PC OS/Version: Linux Status: NEW Severity: minor Priority: P2 Component: Core Components AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: mriester@gmx.de not sure if the current behaviour is a bug or a feature. This trivial patch removes the type from _typemap after removal. It is useful for database tests (changing Bio::Seq objects => writing them to database, get them from db, compare with is_deeply() ). Bio/Annotation/Collection.pm 321,322c321,323 < foreach (@keys) { < delete $self->{'_annotation'}->{$_}; --- > foreach my $key (@keys) { > delete $self->{'_annotation'}->{$key}; > delete $self->{'_typemap'}->{'_type'}->{$key}; ------- 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 20 15:52:23 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Tue Dec 20 15:58:19 2005 Subject: [Bioperl-guts-l] [Bug 1923] New: typo in Bio::Annotation::Collection Message-ID: <200512202052.jBKKqNAN029941@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1923 Summary: typo in Bio::Annotation::Collection Product: Bioperl Version: main-trunk Platform: All OS/Version: Linux Status: NEW Severity: trivial Priority: P2 Component: Documentation AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: mriester@gmx.de Bioperl implementation for Bio::AnnotationColleciton ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From jason at pub.open-bio.org Tue Dec 20 17:12:50 2005 From: jason at pub.open-bio.org (Jason Stajich) Date: Tue Dec 20 17:05:24 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Annotation Collection.pm, 1.18, 1.19 Message-ID: <200512202212.jBKMCoVL005760@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Annotation In directory pub.open-bio.org:/tmp/cvs-serv5744 Modified Files: Collection.pm Log Message: bug #1923 Index: Collection.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Annotation/Collection.pm,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Collection.pm 6 Oct 2005 00:57:32 -0000 1.18 --- Collection.pm 20 Dec 2005 22:12:48 -0000 1.19 *************** *** 37,41 **** =head1 DESCRIPTION ! Bioperl implementation for Bio::AnnotationCollecitonI =head1 FEEDBACK --- 37,41 ---- =head1 DESCRIPTION ! Bioperl implementation for Bio::AnnotationCollectionI =head1 FEEDBACK From bugzilla-daemon at portal.open-bio.org Tue Dec 20 17:05:37 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Tue Dec 20 17:58:18 2005 Subject: [Bioperl-guts-l] [Bug 1923] typo in Bio::Annotation::Collection Message-ID: <200512202205.jBKM5b05031028@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1923 jason@open-bio.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #1 from jason@open-bio.org 2005-12-20 17:05 ------- fixed. thanks! ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From tseemann at pub.open-bio.org Wed Dec 21 05:59:04 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Wed Dec 21 05:51:35 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Root Utilities.pm,1.23,1.24 Message-ID: <200512211059.jBLAx4VL007792@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Root In directory pub.open-bio.org:/tmp/cvs-serv7777/Bio/Root Modified Files: Utilities.pm Log Message: Fixed num2month() returning wrong months, 0/1 array base problem Index: Utilities.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Root/Utilities.pm,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** Utilities.pm 9 Oct 2005 14:53:17 -0000 1.23 --- Utilities.pm 21 Dec 2005 10:59:01 -0000 1.24 *************** *** 369,373 **** $self->throw("Month out of range: $num") if $num < 1 or $num > 12; ! return $MONTHS[$num]; } --- 369,373 ---- $self->throw("Month out of range: $num") if $num < 1 or $num > 12; ! return $MONTHS[$num-1]; } From tseemann at pub.open-bio.org Wed Dec 21 06:20:25 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Wed Dec 21 06:12:57 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Root Utilities.pm,1.24,1.25 Message-ID: <200512211120.jBLBKPVL007845@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Root In directory pub.open-bio.org:/tmp/cvs-serv7825/Bio/Root Modified Files: Utilities.pm Log Message: Made mean_stdev() more robust when data list has less than 2 elements Index: Utilities.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Root/Utilities.pm,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** Utilities.pm 21 Dec 2005 10:59:01 -0000 1.24 --- Utilities.pm 21 Dec 2005 11:20:23 -0000 1.25 *************** *** 622,625 **** --- 622,626 ---- #--------------- my ($self, @data) = @_; + return (undef,undef) if not @data; # case of empty @data list my $mean = 0; foreach (@data) { $mean += $_; } *************** *** 627,631 **** my $sum_diff_sqd = 0; foreach (@data) { $sum_diff_sqd += ($mean - $_) * ($mean - $_); } ! my $stdev = sqrt(abs($sum_diff_sqd/(scalar @data)-1)); return ($mean, $stdev); } --- 628,635 ---- my $sum_diff_sqd = 0; foreach (@data) { $sum_diff_sqd += ($mean - $_) * ($mean - $_); } ! # if only one element in @data list, unbiased stdev is undefined ! my $stdev = scalar(@data) <= 1 ! ? undef ! : sqrt(abs($sum_diff_sqd/(scalar @data)-1)); return ($mean, $stdev); } From tseemann at pub.open-bio.org Wed Dec 21 06:31:00 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Wed Dec 21 06:23:31 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Root Utilities.pm,1.25,1.26 Message-ID: <200512211131.jBLBV0VL007884@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Root In directory pub.open-bio.org:/tmp/cvs-serv7869/Bio/Root Modified Files: Utilities.pm Log Message: Bug in std.dev. calculation, was X^2/N-1 should be X^2/(N-1) Index: Utilities.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Root/Utilities.pm,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** Utilities.pm 21 Dec 2005 11:20:23 -0000 1.25 --- Utilities.pm 21 Dec 2005 11:30:58 -0000 1.26 *************** *** 624,635 **** return (undef,undef) if not @data; # case of empty @data list my $mean = 0; ! foreach (@data) { $mean += $_; } ! $mean /= scalar @data; my $sum_diff_sqd = 0; foreach (@data) { $sum_diff_sqd += ($mean - $_) * ($mean - $_); } # if only one element in @data list, unbiased stdev is undefined ! my $stdev = scalar(@data) <= 1 ! ? undef ! : sqrt(abs($sum_diff_sqd/(scalar @data)-1)); return ($mean, $stdev); } --- 624,634 ---- return (undef,undef) if not @data; # case of empty @data list my $mean = 0; ! my $N = 0; ! foreach (@data) { $mean += $_; $N++ } ! $mean /= $N; my $sum_diff_sqd = 0; foreach (@data) { $sum_diff_sqd += ($mean - $_) * ($mean - $_); } # if only one element in @data list, unbiased stdev is undefined ! my $stdev = $N <= 1 ? undef : sqrt( $sum_diff_sqd / ($N-1) ); return ($mean, $stdev); } From tseemann at pub.open-bio.org Wed Dec 21 06:36:36 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Wed Dec 21 06:29:18 2005 Subject: [Bioperl-guts-l] bioperl-live/t Root-Utilities.t,NONE,1.1 Message-ID: <200512211136.jBLBaaVL007908@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t In directory pub.open-bio.org:/tmp/cvs-serv7893/t Added Files: Root-Utilities.t Log Message: Created test set for previously untested (unused?) Bio::Root::Utilities --- NEW FILE: Root-Utilities.t --- #-*-Perl-*- # Test file for Bio::Root::Utilities # Author: Torsten Seemann # 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 lib './'; BEGIN { # to handle systems with no installed Test module # we include the t dir (where a copy of Test.pm is located) # as a fallback eval { require Test; }; if( $@ ) { use lib 't'; } use Test; plan tests => 36; } use Bio::Root::Utilities; # Test ok(1); # Object creation my $u = Bio::Root::Utilities->new(); ok($u); # month2num() and num2month() my @month = qw(XXX Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); for my $i (1 .. 12) { ok $u->month2num($month[$i]), $i; ok $u->num2month($i), $month[$i]; } # untaint() # this is the behaviour the function has, but should it return '' ? ok $u->untaint(''), undef; ok $u->untaint('nice string'), 'nice string'; ok $u->untaint('bad *?&^$! string'), 'bad '; ok $u->untaint( q{100% relaxed&;''\"|*?!~<>^()[]{}$}, 1 ), '100% relaxed'; # mean_stdev() my($mu,$sd); ($mu,$sd) = $u->mean_stdev(); ok $mu, undef; ok $sd, undef; ($mu,$sd) = $u->mean_stdev(42); ok $mu, 42; ok $sd, undef; ($mu,$sd) = $u->mean_stdev(-1,0,1); ok $mu, 0; ok $sd, 1; # other functions still need testing # but many depend on the filesystem and access to binaries From tseemann at pub.open-bio.org Wed Dec 21 06:50:24 2005 From: tseemann at pub.open-bio.org (Torsten Seemann) Date: Wed Dec 21 06:42:52 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tools/Run StandAloneBlast.pm, 1.53, 1.54 Message-ID: <200512211150.jBLBoOVL007951@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tools/Run In directory pub.open-bio.org:/tmp/cvs-serv7931/Bio/Tools/Run Modified Files: StandAloneBlast.pm Log Message: Typo: changed WUBLASTIDR to WUBLASTDIR Index: StandAloneBlast.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tools/Run/StandAloneBlast.pm,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** StandAloneBlast.pm 2 Dec 2005 01:05:59 -0000 1.53 --- StandAloneBlast.pm 21 Dec 2005 11:50:21 -0000 1.54 *************** *** 302,306 **** # BLASTDIR in every script that will use StandAloneBlast.pm. ! $PROGRAMDIR = $BLASTTYPE eq 'ncbi' ? $ENV{'BLASTDIR'}: $ENV{'WUBLASTIDR'}; # If local BLAST databases are not stored in the standard --- 302,306 ---- # BLASTDIR in every script that will use StandAloneBlast.pm. ! $PROGRAMDIR = $BLASTTYPE eq 'ncbi' ? $ENV{'BLASTDIR'}: $ENV{'WUBLASTDIR'}; # If local BLAST databases are not stored in the standard From bugzilla-daemon at portal.open-bio.org Wed Dec 21 07:08:40 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Wed Dec 21 07:58:24 2005 Subject: [Bioperl-guts-l] [Bug 1924] New: scansite Message-ID: <200512211208.jBLC8eH3012439@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1924 Summary: scansite Product: Bioperl Version: 1.5 branch Platform: All OS/Version: Linux Status: NEW Keywords: Bioperl Severity: enhancement Priority: P2 Component: bioperl-run AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: gdi@gbf.de to get the scansite picture path: in _run method add my $text = $content->content; $text =~ m!(\/temp\-img\/.+\.png)\">!; my $picture = $DOMAIN . $1; $self->{'picture'} = $picture; new method: sub get_picture { my $self = shift; return $self->{'picture'}; } add possiblity to set proxy eg by adding LWP::UserAgent in WebAgent or else I put it in scansite.pm direct! ------- 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 Wed Dec 21 09:49:11 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Wed Dec 21 09:58:20 2005 Subject: [Bioperl-guts-l] [Bug 1925] New: NC_006511.gbk, species name/classification not parsed correctly Message-ID: <200512211449.jBLEnAsv017185@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1925 Summary: NC_006511.gbk, species name/classification not parsed correctly Product: Bioperl Version: main-trunk Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Bio::SeqIO AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: mriester@gmx.de in the file below, 9150 is added to classification, not species name. NC_006511.gbk: ORGANISM Salmonella enterica subsp. enterica serovar Paratyphi A str. ATCC 9150 Bacteria; Proteobacteria; Gammaproteobacteria; Enterobacteriales; Enterobacteriaceae; Salmonella. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From lstein at pub.open-bio.org Wed Dec 21 14:00:55 2005 From: lstein at pub.open-bio.org (Lincoln Stein) Date: Wed Dec 21 13:53:25 2005 Subject: [Bioperl-guts-l] bioperl-live/scripts/Bio-DB-GFF bulk_load_gff.PLS, 1.34, 1.35 fast_load_gff.PLS, 1.23, 1.24 Message-ID: <200512211900.jBLJ0tVL008638@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/scripts/Bio-DB-GFF In directory pub.open-bio.org:/tmp/cvs-serv8629 Modified Files: bulk_load_gff.PLS fast_load_gff.PLS Log Message: added an "analyze" step after loading data - should make queries faster Index: bulk_load_gff.PLS =================================================================== RCS file: /home/repository/bioperl/bioperl-live/scripts/Bio-DB-GFF/bulk_load_gff.PLS,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** bulk_load_gff.PLS 18 Nov 2005 22:53:36 -0000 1.34 --- bulk_load_gff.PLS 21 Dec 2005 19:00:52 -0000 1.35 *************** *** 545,549 **** $_->close foreach values %FH; printf STDERR "Total parse time %5.2fs\n",(Time::HiRes::time() - $start) if $timer; ! warn "Loading feature data. You may see duplicate key warnings here...\n"; if ($use_pg){ --- 545,549 ---- $_->close foreach values %FH; printf STDERR "Total parse time %5.2fs\n",(Time::HiRes::time() - $start) if $timer; ! warn "Loading feature data and analyzing tables. You may see RDBMS messages here...\n"; if ($use_pg){ *************** *** 575,601 **** my $TERMINATEDBY = $bWINDOWS ? q( LINES TERMINATED BY '\r\n') : ''; foreach (@files) { ! my $command = qq[ ! ${\MYSQL} $AUTH -e "lock tables ] ! . function_to_table($_,$ADAPTOR) ! . qq[ write; delete from ] ! . function_to_table($_,$ADAPTOR) ! . qq[; load data $LOCAL infile '$tmpdir/$_.$$' replace into table ] ! . function_to_table($_,$ADAPTOR) ! . qq[ $TERMINATEDBY; unlock tables" ! ]; ! $command =~ s/\n/ /g; ! $success &&= system($command) == 0; ! unlink "$tmpdir/$_.$$"; ! } ! printf STDERR "Total load time %5.2fs\n",(time() - $start) if $timer; ! warn "done...\n"; ! if ($success) { ! print "$FEATURES features successfully loaded\n"; ! exit 0; ! } else { ! print "FAILURE: Please see standard error for details\n"; ! exit -1; ! } } --- 575,600 ---- my $TERMINATEDBY = $bWINDOWS ? q( LINES TERMINATED BY '\r\n') : ''; foreach (@files) { ! my $table = function_to_table($_,$ADAPTOR); ! my $sql = join ('; ', ! "lock tables $table write", ! "delete from $table", ! "load data $LOCAL infile '$tmpdir/$_.$$' replace into table $table $TERMINATEDBY", ! "analyze table $table", ! "unlock tables"); ! my $command = MYSQL . qq[$AUTH -s -e "$sql"]; ! $command =~ s/\n/ /g; ! $success &&= system($command) == 0; ! unlink "$tmpdir/$_.$$"; ! } ! printf STDERR "Total load time %5.2fs\n",(time() - $start) if $timer; ! warn "done...\n"; ! if ($success) { ! print "$FEATURES features successfully loaded\n"; ! exit 0; ! } else { ! print "FAILURE: Please see standard error for details\n"; ! exit -1; ! } } Index: fast_load_gff.PLS =================================================================== RCS file: /home/repository/bioperl/bioperl-live/scripts/Bio-DB-GFF/fast_load_gff.PLS,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** fast_load_gff.PLS 18 Nov 2005 22:53:36 -0000 1.23 --- fast_load_gff.PLS 21 Dec 2005 19:00:52 -0000 1.24 *************** *** 220,223 **** --- 220,225 ---- load_tables($db->dbh) unless $CREATE; + my ($major,$minor,$sub) = split /\./,$db->dbh->get_info(18); # SQL_DBMS_VER + my $can_disable_indexes = $major >= 4 and $minor >= 0; # open up pipes to the database *************** *** 233,239 **** my $delete = $CREATE ? "delete from $_" : ''; my $local = $LOCAL ? 'local' : ''; my $command =< Update of /home/repository/bioperl/bioperl-live/Bio/SeqIO In directory pub.open-bio.org:/tmp/cvs-serv13831/Bio/SeqIO Modified Files: game.pm Log Message: Minor edits Index: game.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/SeqIO/game.pm,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** game.pm 1 Oct 2005 00:26:29 -0000 1.34 --- game.pm 23 Dec 2005 14:36:18 -0000 1.35 *************** *** 16,19 **** --- 16,21 ---- =head1 SYNOPSIS + This module is not used directly, use SeqIO. + use Bio::SeqIO; *************** *** 27,37 **** Bio::SeqIO::game will parse game XML (version 1.2) or write game XML from ! a Bio::SeqI implementing object. The XML is readable by the genome annotation ! editor 'Apollo' (www.gmod.org). It is not backwards compatible with the previous ! version of game XML. The XML format currently used by Apollo ! contains a single 'main' annotated sequence, so we will only get a single ! annotated sequence in the stream when parsing a game-XML record. ! ! This modules is not used directly =head1 FEEDBACK --- 29,37 ---- Bio::SeqIO::game will parse game XML (version 1.2) or write game XML from ! a Bio::SeqI implementing object. The XML is readable by the genome ! annotation editor 'Apollo' (www.gmod.org). It is not backwards compatible ! with the previous version of game XML. The XML format currently used by ! Apollo contains a single 'main' annotated sequence, so we will only get a ! single annotated sequence in the stream when parsing a game-XML record. =head1 FEEDBACK From bosborne at pub.open-bio.org Fri Dec 23 15:39:38 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 23 15:32:08 2005 Subject: [Bioperl-guts-l] bioperl-ext/Bio/SeqIO/staden read.pm,1.8,1.9 Message-ID: <200512232039.jBNKdcVL014779@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-ext/Bio/SeqIO/staden In directory pub.open-bio.org:/tmp/cvs-serv14770/Bio/SeqIO/staden Modified Files: read.pm Log Message: Looks like all version numbers must match for 'make' Index: read.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-ext/Bio/SeqIO/staden/read.pm,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** read.pm 9 Oct 2005 14:55:26 -0000 1.8 --- read.pm 23 Dec 2005 20:39:35 -0000 1.9 *************** *** 76,80 **** use Inline (C => 'DATA', ! VERSION => '0.01', NAME => 'Bio::SeqIO::staden::read', LIBS => "-L/usr/local/lib -lread -lz", # leave these as double quotes - necessary for Makefile.PL function --- 76,80 ---- use Inline (C => 'DATA', ! VERSION => '1.51', NAME => 'Bio::SeqIO::staden::read', LIBS => "-L/usr/local/lib -lread -lz", # leave these as double quotes - necessary for Makefile.PL function *************** *** 86,90 **** } ! $VERSION = 1.5.1; my %formats = ( scf => 1, --- 86,90 ---- } ! $VERSION = 1.51; my %formats = ( scf => 1, From bosborne at pub.open-bio.org Sun Dec 25 17:30:41 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Sun Dec 25 17:22:43 2005 Subject: [Bioperl-guts-l] bioperl-live/t/data tblastn.out,NONE,1.1 Message-ID: <200512252230.jBPMUfVL028680@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t/data In directory pub.open-bio.org:/tmp/cvs-serv28671 Added Files: tblastn.out Log Message: Add tblastn file --- NEW FILE: tblastn.out --- TBLASTN 2.2.10 [Oct-19-2004] Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A. Schaffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", Nucleic Acids Res. 25:3389-3402. Query= HAHU | 1114 | Hemoglobin alpha chain - Human, chimpanzee, and pygmy chimpanzee (141 letters) Database: testnt.fa 2 sequences; 13,260 total letters Searching..done Score E Sequences producing significant alignments: (bits) Value gi|10040111|emb|AL390796.6|AL390796 Homo sapiens chromosome 1 cl... 18 2.3 test6 16 6.7 >gi|10040111|emb|AL390796.6|AL390796 Homo sapiens chromosome 1 clone RP11-562F3, *** SEQUENCING IN PROGRESS ***, 16 unordered pieces /len=164198 Length = 8160 Score = 17.7 bits (34), Expect = 2.3 Identities = 8/23 (34%), Positives = 11/23 (47%) Frame = +1 Query: 56 KGHGKKVADALTNAVAHVDDMPN 78 KGH KK+ N ++ D N Sbjct: 7603 KGHLKKITSFFFNHTSNYRDEYN 7671 Score = 17.3 bits (33), Expect = 3.0 Identities = 9/28 (32%), Positives = 13/28 (46%) Frame = +1 Query: 31 RMFLSFPTTKTYFPHFDLSHGSAQVKGH 58 RM+ F TY+ +F L V G+ Sbjct: 7069 RMYFCFLKVLTYYFNFFLFFNIFYVLGY 7152 >test6 Length = 5100 Score = 16.2 bits (30), Expect = 6.7 Identities = 6/9 (66%), Positives = 7/9 (77%) Frame = +3 Query: 72 HVDDMPNAL 80 H+D M NAL Sbjct: 3822 HMDYMSNAL 3848 Score = 15.8 bits (29), Expect = 8.8 Identities = 5/7 (71%), Positives = 6/7 (85%) Frame = -2 Query: 93 VDPVNFK 99 +DP NFK Sbjct: 1814 IDP*NFK 1794 Database: testnt.fa Posted date: Feb 5, 2005 6:26 PM Number of letters in database: 13,260 Number of sequences in database: 2 Lambda K H 0.319 0.130 0.385 Gapped Lambda K H 0.267 0.0410 0.140 Matrix: BLOSUM62 Gap Penalties: Existence: 11, Extension: 1 Number of Hits to DB: 1998 Number of Sequences: 2 Number of extensions: 23 Number of successful extensions: 4 Number of sequences better than 10.0: 2 Number of HSP's better than 10.0 without gapping: 3 Number of HSP's successfully gapped in prelim test: 0 Number of HSP's that attempted gapping in prelim test: 0 Number of HSP's gapped (non-prelim): 4 length of query: 141 length of database: 4420 effective HSP length: 39 effective length of query: 102 effective length of database: 4342 effective search space: 442884 effective search space used: 442884 frameshift window, decay const: 40, 0.1 T: 13 A: 40 X1: 16 ( 7.4 bits) X2: 38 (14.6 bits) X3: 64 (24.7 bits) S1: 29 (16.3 bits) S2: 29 (15.8 bits) From bosborne at pub.open-bio.org Sun Dec 25 17:33:40 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Sun Dec 25 17:25:42 2005 Subject: [Bioperl-guts-l] bioperl-live/t SearchIO.t,1.90,1.91 Message-ID: <200512252233.jBPMXeVL028711@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t In directory pub.open-bio.org:/tmp/cvs-serv28702/t Modified Files: SearchIO.t Log Message: Add a few tblastn tests Index: SearchIO.t =================================================================== RCS file: /home/repository/bioperl/bioperl-live/t/SearchIO.t,v retrieving revision 1.90 retrieving revision 1.91 diff -C2 -d -r1.90 -r1.91 *** SearchIO.t 17 Sep 2005 02:11:21 -0000 1.90 --- SearchIO.t 25 Dec 2005 22:33:38 -0000 1.91 *************** *** 23,27 **** } use vars qw($NTESTS); ! $NTESTS = 1227; $LASTXMLTEST = 67; $error = 0; --- 23,27 ---- } use vars qw($NTESTS); ! $NTESTS = 1230; $LASTXMLTEST = 67; $error = 0; *************** *** 1561,1564 **** --- 1561,1574 ---- ok($hsp->query->strand,1); ok($hsp->hit->strand,1); + + # this is NCBI tblastn + $searchio = new Bio::SearchIO(-format => 'blast', + -file => Bio::Root::IO->catfile + (qw(t data tblastn.out))); + $result = $searchio->next_result; + ok($result); + ok($result->algorithm, 'TBLASTN'); + $hit = $result->next_hit; + ok($hit->name,'gi|10040111|emb|AL390796.6|AL390796'); # test blasttable output From bosborne at pub.open-bio.org Tue Dec 27 15:14:10 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Tue Dec 27 15:06:02 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Graph/IO dip.pm,1.11,1.12 Message-ID: <200512272014.jBRKEAVL001242@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Graph/IO In directory pub.open-bio.org:/tmp/cvs-serv1233/Bio/Graph/IO Modified Files: dip.pm Log Message: Minor edits Index: dip.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Graph/IO/dip.pm,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** dip.pm 11 Mar 2005 13:28:38 -0000 1.11 --- dip.pm 27 Dec 2005 20:14:08 -0000 1.12 *************** *** 43,50 **** name : next_network ! purpose : parses a graph file and returns a Bio::Graph::ProteinGraph object usage : my $g = $graph_io->next_network(); arguments : none ! returns : a a Bio::Graph::ProteinGraph object =cut --- 43,51 ---- name : next_network ! purpose : parses a graph file and returns a Bio::Graph::ProteinGraph ! object usage : my $g = $graph_io->next_network(); arguments : none ! returns : a Bio::Graph::ProteinGraph object =cut From valiente at pub.open-bio.org Wed Dec 28 07:14:20 2005 From: valiente at pub.open-bio.org (Gabriel Valiente) Date: Wed Dec 28 07:06:23 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Tree Compatible.pm,1.1,1.2 Message-ID: <200512281214.jBSCEKVL003077@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Tree In directory pub.open-bio.org:/tmp/cvs-serv3062/Bio/Tree Modified Files: Compatible.pm Log Message: postorder is postorder_traversal Index: Compatible.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Tree/Compatible.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Compatible.pm 24 May 2005 12:13:20 -0000 1.1 --- Compatible.pm 28 Dec 2005 12:14:18 -0000 1.2 *************** *** 214,218 **** my ($tree) = @_; my %cluster; ! my @postorder = @{ postorder($tree) }; foreach my $node ( @postorder ) { my @labeled = map { $_->id } grep { $_->id } $node->get_Descendents; --- 214,218 ---- my ($tree) = @_; my %cluster; ! my @postorder = @{ postorder_traversal($tree) }; foreach my $node ( @postorder ) { my @labeled = map { $_->id } grep { $_->id } $node->get_Descendents; *************** *** 288,292 **** sub topological_restriction { my ($tree, $labels) = @_; ! for my $node ( @{ postorder($tree) } ) { my @cluster = map { $_->id } grep { $_->id } $node->get_Descendents; push @cluster, $node->id if $node->id; --- 288,292 ---- sub topological_restriction { my ($tree, $labels) = @_; ! for my $node ( @{ postorder_traversal($tree) } ) { my @cluster = map { $_->id } grep { $_->id } $node->get_Descendents; push @cluster, $node->id if $node->id; *************** *** 372,377 **** $tree1->Bio::Tree::Compatible::topological_restriction($common); $tree2->Bio::Tree::Compatible::topological_restriction($common); ! my @postorder1 = @{ postorder($tree1) }; ! my @postorder2 = @{ postorder($tree2) }; my %cluster1 = %{ cluster_representation($tree1) }; my %cluster2 = %{ cluster_representation($tree2) }; --- 372,377 ---- $tree1->Bio::Tree::Compatible::topological_restriction($common); $tree2->Bio::Tree::Compatible::topological_restriction($common); ! my @postorder1 = @{ postorder_traversal($tree1) }; ! my @postorder2 = @{ postorder_traversal($tree2) }; my %cluster1 = %{ cluster_representation($tree1) }; my %cluster2 = %{ cluster_representation($tree2) }; From valiente at pub.open-bio.org Wed Dec 28 07:16:49 2005 From: valiente at pub.open-bio.org (Gabriel Valiente) Date: Wed Dec 28 07:08:33 2005 Subject: [Bioperl-guts-l] bioperl-live/t Compatible.t,NONE,1.1 Message-ID: <200512281216.jBSCGnVL003112@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t In directory pub.open-bio.org:/tmp/cvs-serv3097/t Added Files: Compatible.t Log Message: first attempt at testing Compatible.pm --- NEW FILE: Compatible.t --- # -*-Perl-*- ## Bioperl Test Harness Script for Modules ## my $error; use strict; use vars qw($DEBUG); $DEBUG = $ENV{'BIOPERLDEBUG'} || 0; BEGIN { # to handle systems with no installed Test module # we include the t dir (where a copy of Test.pm is located) # as a fallback $error = 0; eval { require Test; }; if( $@ ) { use lib 't'; } use Test; use vars qw($TESTCOUNT); $TESTCOUNT = 5; plan tests => $TESTCOUNT; } use Bio::Tree::Compatible; use Bio::TreeIO; my $verbose = 0; my $in = new Bio::TreeIO(-format => 'newick', -fh => \*DATA); # the common labels of (((A,B)C,D),(E,F,G)); and ((A,B)H,E,(J,(K)G)I); # are [A,B,E,G] my $t1 = $in->next_tree; my $t2 = $in->next_tree; my $common = $t1->Bio::Tree::Compatible::common_labels($t2); my $labels = Set::Scalar->new(qw(A B E G)); ok($common->is_equal($labels)); # the topological restrictions of (((A,B)C,D),(E,F,G)); and # ((A,B)H,E,(J,(K)G)I); to their common labels, [A,B,E,G], are, # respectively, ((A,B),(E,G)); and ((A,B),E,(G)); $t1->Bio::Tree::Compatible::topological_restriction($common); $t2->Bio::Tree::Compatible::topological_restriction($common); my $t3 = $in->next_tree; my $t4 = $in->next_tree; # ok($t1->is_equal($t3)); # is_equal method missing in Bio::Tree::Tree # ok($t2->is_equal($t4)); # is_equal method missing in Bio::Tree::Tree # the topological restrictions of (((A,B)C,D),(E,F,G)); and # ((A,B)H,E,(J,(K)G)I); to their common labels, [A,B,E,G], are # compatible my ($incompat, $ilabels, $inodes) = $t3->Bio::Tree::Compatible::is_compatible($t4); ok(!$incompat); # (((B,A),C),D); and ((A,(D,B)),C); are incompatible my $t5 = $in->next_tree; my $t6 = $in->next_tree; my ($incompat, $ilabels, $inodes) = $t5->Bio::Tree::Compatible::is_compatible($t6); ok($incompat); __DATA__ (((A,B)C,D),(E,F,G)); ((A,B)H,E,(J,(K)G)I); ((A,B),(E,G)); ((A,B),E,(G)); (((B,A),C),D); ((A,(D,B)),C); From biotech_vijaya at hotmail.com Wed Dec 28 11:04:12 2005 From: biotech_vijaya at hotmail.com (vijaya brahma) Date: Wed Dec 28 11:18:14 2005 Subject: [Bioperl-guts-l] please help urgent Message-ID: hi can someone help me in writing a code for retreiving 800 bp upstream from the start of the gene?? i m a newbee and i dont know from where to start thanx viz _________________________________________________________________ Tried the new MSN Messenger? It’s cool! Download now. http://messenger.msn.com/Download/Default.aspx?mkt=en-in From osborne1 at optonline.net Wed Dec 28 19:18:26 2005 From: osborne1 at optonline.net (Brian Osborne) Date: Wed Dec 28 19:30:24 2005 Subject: [Bioperl-guts-l] please help urgent In-Reply-To: Message-ID: Vijaya, I suggest you start with the HOWTO for Beginners: http://bioperl.org/HOWTOs/html/Beginners.html Brian O. On 12/28/05 11:04 AM, "vijaya brahma" wrote: > hi > can someone help me in writing a code for retreiving 800 bp upstream from > the start of the gene?? > i m a newbee and i dont know from where to start > thanx > viz > > _________________________________________________________________ > Tried the new MSN Messenger? It?s cool! Download now. > http://messenger.msn.com/Download/Default.aspx?mkt=en-in > > _______________________________________________ > Bioperl-guts-l mailing list > Bioperl-guts-l@portal.open-bio.org > http://portal.open-bio.org/mailman/listinfo/bioperl-guts-l From bugzilla-daemon at portal.open-bio.org Wed Dec 28 23:22:32 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Wed Dec 28 23:58:48 2005 Subject: [Bioperl-guts-l] [Bug 1926] New: Missing sections in Pdoc HTML Message-ID: <200512290422.jBT4MWl4018979@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1926 Summary: Missing sections in Pdoc HTML Product: Bioperl Version: main-trunk Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Documentation AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: osborne1@optonline.net This HTML is right, it includes the Synopsis and Description: http://doc.bioperl.org/releases/bioperl-current/bioperl-live/Bio/Index/GenBank.html This one is wrong, the Synopsis and Description is missing: http://doc.bioperl.org/releases/bioperl-current/bioperl-live/Bio/DB/Fasta.html ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Thu Dec 29 22:30:28 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 29 22:22:50 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Graph/IO psi_xml.pm,1.5,1.6 Message-ID: <200512300330.jBU3USVL007797@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Graph/IO In directory pub.open-bio.org:/tmp/cvs-serv7788/Bio/Graph/IO Modified Files: psi_xml.pm Log Message: HPRD PSI XML has no fullName, use shortLabel for description instead Index: psi_xml.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Graph/IO/psi_xml.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** psi_xml.pm 8 Nov 2004 14:29:54 -0000 1.5 --- psi_xml.pm 30 Dec 2005 03:30:25 -0000 1.6 *************** *** 107,123 **** ); $species{$taxid} = $sp_obj; ! } ## next extract sequence id info ## my @ids = $pi->first_child('xref')->children(); my %ids = map{$_->att('db'), $_->att('id')} @ids; ! $ids{'psixml'} = $pi->att('id'); $prim_id = defined ($ids{'GI'})? $ids{'GI'}:''; $acc = $ids{'RefSeq'} || $ids{'SWP'} || $ids{'PIR'} || $ids{'GI'}; ! ## get description line ! $desc = $pi->first_child('names')->first_child('fullName')->text; ! # use ids that aren't accession_no or primary_tag to build # dbxref Annotations --- 107,130 ---- ); $species{$taxid} = $sp_obj; ! } ## next extract sequence id info ## my @ids = $pi->first_child('xref')->children(); my %ids = map{$_->att('db'), $_->att('id')} @ids; ! $ids{'psixml'} = $pi->att('id'); $prim_id = defined ($ids{'GI'})? $ids{'GI'}:''; $acc = $ids{'RefSeq'} || $ids{'SWP'} || $ids{'PIR'} || $ids{'GI'}; ! ## get description line - certain files, like PSI XML from HPRD, have ! ## "shortLabel" but no "fullName" ! eval { ! $desc = $pi->first_child('names')->first_child('fullName')->text; ! }; ! if ($@) { ! warn("No fullName, use shortLabel for description instead"); ! $desc = $pi->first_child('names')->first_child('shortLabel')->text; ! } ! # use ids that aren't accession_no or primary_tag to build # dbxref Annotations From bosborne at pub.open-bio.org Thu Dec 29 22:36:34 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Thu Dec 29 22:28:58 2005 Subject: [Bioperl-guts-l] bioperl-live/t/data 05510.xml,NONE,1.1 Message-ID: <200512300336.jBU3aYVL007852@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t/data In directory pub.open-bio.org:/tmp/cvs-serv7843 Added Files: 05510.xml Log Message: Add for additional PSI XML tests --- NEW FILE: 05510.xml --- Endothelial differentiation gene 8 Sphingosine 1 phosphate receptor EDG8 S1P Receptor EDG8 Sphingosine 1 phosphate receptor Edg8 SPPR Putative G protein coupled receptor Endothelial differentiation, sphingolipid G protein coupled receptor, 8 Hypothetical protein FLJ90180 GPCR 605146 EDG8 19p13.2 NM_030760.2 NP_110387.1 41778 gcgcggccca tggagtcggg gctgctgcgg ccggcgccgg tgagcgaggt catcgtcctg cattacaact acaccggcaa gctccgcggt gcgcgctacc agccgggtgc cggcctgcgc gccgacgccg tggtgtgcct ggcggtgtgc gccttcatcg tgctagagaa tctagccgtg ttgttggtgc tcggacgcca cccgcgcttc cacgctccca tgttcctgct cctgggcagc ctcacgttgt cggatctgct ggcaggcgcc gcctacgccg ccaacatcct actgtcgggg ccgctcacgc tgaaactgtc ccccgcgctc tggttcgcac gggagggagg cgtcttcgtg gcactcactg cgtccgtgct gagcctcctg gccatcgcgc tggagcgcag cctcaccatg gcgcgcaggg ggcccgcgcc cgtctccagt cgggggcgca cgctggcgat ggcagccgcg gcctggggcg tgtcgctgct cctcgggctc ctgccagcgc tgggctggaa ttgcctgggt cgcctggacg cttgctccac tgtcttgccg ctctacgcca aggcctacgt gctcttctgc gtgctcgcct tcgtgggcat cctggccgcg atctgtgcac tctacgcgcg catctactgc caggtacgcg ccaacgcgcg gcgcctgccg gcacggcccg ggactgcggg gaccacctcg acccgggcgc gtcgcaagcc gcgctcgctg gccttgctgc gcacgctcag cgtggtgctc ctggcctttg tggcatgttg gggccccctc ttcctgctgc tgttgctcga cgtggcgtgc ccggcgcgca cctgtcctgt actcctgcag gccgatccct tcctgggact ggccatggcc aactcacttc tgaaccccat catctacacg ctcaccaacc gcgacctgcg ccacgcgctc ctgcgcctgg tctgctgcgg acgccactcc tgcggcagag acccgagtgg ctcccagcag tcggcgagcg cggctgaggc ttccgggggc ctgcgccgct gcctgccccc gggccttgat gggagcttca gcggctcgga gcgctcatcg ccccagcgcg acgggctgga caccagcggc tccacaggca gccccggtgc acccacagcc gcccggactc tggtatcaga accggctgca gactgacacc ctcggcccac gactgtcttc ccaagtttta cagacttgtt ctttttacat aaaggaattt gtaggaaatg cagccaaagg tgcagtcgga aaagatgcag gggaaatgta tttatgcagc gacaccccac aatgtgaaca aacagacaaa aaatctgtgc cctcgtggaa ttgacgttct gcttgggaac acagaaaaga actcggtgat gaaataatgg agatgattcc agtgacaaac gacagagatg gtgatggtgg tcagggaaga cctctctgca gaggtagtga cttgtgatgt gagctgagac ctctgtcctg ggaagaccaa aagaaaagca tttcaggatg agggaatggc atgcgcaaag gccctgaggc tgaaatgtgc ccatgtgttc taagaaatgc agcgatgctg gtgtgcctgg agcagggacg gagggggaga atgggaggag acaaggagct gaaggagtag ttcccgaagg accttgtggg tgatatagag gacttcgctt ttgctctgag tgaggtggga gccatagaag cttctaagca gaagagggac ttgccctaat tcaggtgatc acaggtgtct tgtggcctcc atgggaggtt gaaaaccaca gaaggtgaag gggggctgca ctgagccaca ggaacaatga tggagattcc agctaagccc agaccccgtg gattctagat agattttaga ggcagcagac agaattactg aggaattgag tgtaagagtg gaataaagtt atcaaggaca atgccaaggg tggggcaccc ccaaatttga ctttgggaga ctcagccaaa tcctatctgg taataaaatt tcttttttat ttttcttttc tttctttctt tctttctttc tttttttttt tttgagttgg gatcttgtgc tctgtcaccc aggctggagt gcaatgggca caattatagc tcactgcagc ctggaactcc tgggatcaag cctggagttc ctgcttcagc ctccctagta gctgggacta caggcatgca ccaccatgcc cagttaataa aatttcttca aatgcaaaaa aaaaaaaaaa aaaaaa mesgllrpap vsevivlhyn ytgklrgary qpgaglrada vvclavcafi vlenlavllv lgrhprfhap mflllgsltl sdllagaaya anillsgplt lklspalwfa reggvfvalt asvlsllaia lersltmarr gpapvssrgr tlamaaaawg vslllgllpa lgwnclgrld acstvlplya kayvlfcvla fvgilaaica lyariycqvr anarrlparp gtagttstra rrkprslall rtlsvvllaf vacwgplfll llldvacpar tcpvllqadp flglamansl lnpiiytltn rdlrhallrl vccgrhscgr dpsgsqqsas aaeasgglrr clppgldgsf sgsersspqr dgldtsgstg spgaptaart lvsepaad TM TM TM TM TM TM TM Keratinocyte 12648236 Cerebral cortex 11705398 Frontal lobe 11705398 Parietal lobe 11705398 Occipital lobe 11705398 Temporal lobe 11705398 Pons 11705398 Amygdaloid nucleus 11705398 Cerebellum 11705398 Caudate nucleus 11705398 Hippocampus 11705398 Medulla oblongata 11705398 Putamen 11705398 Leukocyte 11705398 Lymph node 11705398 Bone marrow 11705398 Trachea 11705398 Thalamus 11705398 Aorta 11705398 Atrium 11705398 Ventricle 11705398 Oesophagus 11705398 Stomach 11705398 Duodenum 11705398 Jejunum 11705398 Ileum 11705398 Caecum 11705398 Vermiform appendix 11705398 Colon 11705398 Rectum 11705398 Kidney 11705398 Skeletal muscle 11705398 Spleen 11705398 Thymus 11705398 Lung 11705398 Placenta 11705398 Uterus 11705398 Prostate 11705398 Testis 11705398 Ovary 11705398 Liver 11705398 Adrenal gland 11705398 Thyroid gland 11705398 Salivary gland 11705398 Fetus 11705398 Urinary bladder 11705398 Corpus callosum 11705398 Nucleus accumbens 11705398 Pancreas 11705398 G protein coupled receptor G-protein coupled receptor activity 0004930 Signal transduction 0007165 Cell communication 0007154 plasma membrane GO:0005886 TAS 11331101 HPRD Human Protein Reference Database This data is copyrighted by Johns Hopkins University. Commercial entities may not use this without prior licensing authorization. Other databases must agree to enforce the same licensing guidelines before making this data public on their website. Endothelial differentiation gene 8 Human Homo sapiens mesgllrpap vsevivlhyn ytgklrgary qpgaglrada vvclavcafi vlenlavllv lgrhprfhap mflllgsltl sdllagaaya anillsgplt lklspalwfa reggvfvalt asvlsllaia lersltmarr gpapvssrgr tlamaaaawg vslllgllpa lgwnclgrld acstvlplya kayvlfcvla fvgilaaica lyariycqvr anarrlparp gtagttstra rrkprslall rtlsvvllaf vacwgplfll llldvacpar tcpvllqadp flglamansl lnpiiytltn rdlrhallrl vccgrhscgr dpsgsqqsas aaeasgglrr clppgldgsf sgsersspqr dgldtsgstg spgaptaart lvsepaad Guanine nucleotide binding protein, alpha 12 Mammals Mammalia G protein, alpha inhibiting 1 Mammals Mammalia Guanine nucleotide binding protein, alpha 'other' Mammals Mammalia vt in vitro sandeep 2_20_2005 vv in vivo sandeep 2_20_2005 vt in vitro sandeep 2_20_2005 05510 Sphingosine 1 phosphate in vitro 11069896 Q9H228 53637 501561 None sandeep 2_20_2005 From jason at pub.open-bio.org Fri Dec 30 14:33:00 2005 From: jason at pub.open-bio.org (Jason Stajich) Date: Fri Dec 30 14:24:32 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB Taxonomy.pm,1.4,1.5 Message-ID: <200512301933.jBUJX0VL012665@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB In directory pub.open-bio.org:/tmp/cvs-serv12647 Modified Files: Taxonomy.pm Log Message: taxa->taxon Index: Taxonomy.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/DB/Taxonomy.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Taxonomy.pm 2 Apr 2005 16:03:41 -0000 1.4 --- Taxonomy.pm 30 Dec 2005 19:32:58 -0000 1.5 *************** *** 20,24 **** my $db = new Bio::DB::Taxonomy(-source => 'entrez'); # use NCBI Entrez over HTTP ! my $taxaid = $db->get_taxonid('Homo sapiens'); =head1 DESCRIPTION --- 20,24 ---- my $db = new Bio::DB::Taxonomy(-source => 'entrez'); # use NCBI Entrez over HTTP ! my $taxonid = $db->get_taxonid('Homo sapiens'); =head1 DESCRIPTION *************** *** 112,116 **** Title : get_Taxonomy_Node ! Usage : my $species = $db->get_Taxonomy_Node(-taxonid => $taxaid) Function: Get a Bio::Taxonomy::Taxon object for a taxonid Returns : Bio::Taxonomy::Taxon object --- 112,116 ---- Title : get_Taxonomy_Node ! Usage : my $species = $db->get_Taxonomy_Node(-taxonid => $taxonid) Function: Get a Bio::Taxonomy::Taxon object for a taxonid Returns : Bio::Taxonomy::Taxon object From bosborne at pub.open-bio.org Fri Dec 30 16:58:19 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 30 16:49:51 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio Species.pm,1.31,1.32 Message-ID: <200512302158.jBULwJVL017101@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio In directory pub.open-bio.org:/tmp/cvs-serv17092/Bio Modified Files: Species.pm Log Message: Additional 'rule' in validate_species_name - not entirely sure that it's possible to validate some of these virus names Index: Species.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Species.pm,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** Species.pm 9 Oct 2005 14:53:06 -0000 1.31 --- Species.pm 30 Dec 2005 21:58:17 -0000 1.32 *************** *** 333,340 **** --- 333,356 ---- } + =head2 binomial + + Title : validate_species_name + Usage : $result = $self->validate_species_name($string); + Function: Validate the species portion of the binomial + Args : string + Notes : The string following the "genus name" in the NCBI binomial + is so variable that it's not clear that this is a useful + function. Consider the binomials + "Simian 11 rotavirus (serotype 3 / strain SA11-Patton)", + or "St. Thomas 3 rotavirus", straight from GenBank. + This is particularly problematic in microbes and viruses. + + =cut + sub validate_species_name { my( $self, $string ) = @_; return 1 if $string eq "sp."; + return 1 if $string =~ /strain/; return 1 if $string =~ /^[a-z][\w\s-]+$/i; $self->throw("Invalid species name '$string'"); From bosborne at pub.open-bio.org Fri Dec 30 17:44:34 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 30 17:36:05 2005 Subject: [Bioperl-guts-l] bioperl-live/t/data sv40_small.xml, NONE, 1.1 05510.xml, 1.1, 1.2 Message-ID: <200512302244.jBUMiYVL017240@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t/data In directory pub.open-bio.org:/tmp/cvs-serv17231 Modified Files: 05510.xml Added Files: sv40_small.xml Log Message: Add for psi_xml tests Index: 05510.xml =================================================================== RCS file: /home/repository/bioperl/bioperl-live/t/data/05510.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** 05510.xml 30 Dec 2005 03:36:32 -0000 1.1 --- 05510.xml 30 Dec 2005 22:44:32 -0000 1.2 *************** *** 554,567 **** ! ! ! --- 554,564 ---- ! ! ! --- NEW FILE: sv40_small.xml --- European Bioinformatics Institute Wellcome Trust Genome Campus, Hinxton, Cambridge, CB10 1SD, United Kingdom http://www.ebi.ac.uk eyckerman-2001-1 Design and application of a cytokine-receptor-based interaction trap. human-293t Homo sapiens 293 cells transformed with SV40 large T antigen 293t 293 cells expressing SV40 large T antigen. mappit mammalian protein protein interaction trap predetermined predetermined participant MAPPIT bait construct - a chimeric cytokine receptor composed of the extracellular region of homodimeric EpoR, fused to the transmembrane and cytosolic domains of the leptin receptor wherein all the tyrosine residues are mutated to phenylalanines. A bait, consisting of a region of the bait protein is C-terminally fused to this signaling-deficient receptor. The interaction is detected via activation of STAT3 and a subsequent reporter gene activation. 2b, 2c, 5 jan.tavernier@ugent.be Eyckerman S., Verhee A., der Heyden JV., Lemmens I., Ostade XV., Vandekerckhove J., Tavernier J. tala_sv40 Large T antigen sv40 Simian virus 40 MDKVLNREESLQLMDLLGLERSAWGNIPLMRKAYLKKCKEFHPDKGGDEEKMKKMNTLYKKMEDGVKYAHQPDFGGFWDATEIPTYGTDEWEQWWNAFNEENLFCSEEMPSSDDEATADSQHSTPPKKKRKVEDPKDFPSELLSFLSHAVFSNRTLACFAIYTTKEKAALLYKKIMEKYSVTFISRHNSYNHNILFFLTPHRHRVSAINNYAQKLCTFSFLICKGVNKEYLMYSALTRDPFSVIEESLPGGLKEHDFNPEEAEETKQVSWKLVTEYAMETKCDDVLLLLGMYLEFQYSFEMCLKCIKKEQPSHYKYHEKHYANAAIFADSKNQKTICQQAVDTVLAKKRVDSLQLTREQMLTNRFNDLLDRMDIMFGSTGSADIEEWMAGVAWLHCLLPKMDSVVYDFLKCMVYNIPKKRYWLFKGPIDSGKTTLAAALLELCGGKALNVNLPLDRLNFELGVAIDQFLVVFEDVKGTGGESRDLPSGQGINNLDNLRDYLDGSVKVNLEKKHLNKRTQIFPPGIVTMNEFSVPKTLQARFVKQIDFRAKDYLKHCLERSEFLLEKRIIQSGIALLLMLIWYRPVAEFAQSIQSRIVEWKERLDKEFSLSVYQKMKFNVAMGIGVLDWLRNSDDDDEDSQENADKNEDGGEKNMEDSGHETGIDSQSQGSFQAPQSSQSVHDHNQPYHICRGFTCFKKPPTPPPEPET p53_mouse Cellular tumor antigen p53 mouse Mus musculus MTAMEESQSDISLELPLSQETFSGLWKLLPPEDILPSPHCMDDLLLPQDVEEFFEGPSEALRVSGAPAAQDPVTETPGPVAPAPATPWPLSSFVPSQKTYQGNYGFHLGFLQSGTAKSVMCTYSPPLNKLFCQLAKTCPVQLWVSATPPAGSRVRAMAIYKKSQHMTEVVRRCPHHERCSDGDGLAPPQHLIRVEGNLYPEYLEDRQTFRHSVVVPYEPPEAGSEYTTIHYKYMCNSSCMGGMNRRPILTIITLEDSSGNLLGRDSFEVRVCACPGRDRRTEEENFRKKEVLCPELPPGSAKRALPTCTSASPPQKKKPLDGEYFTLKIRGRKRFEMFRELNEALELKDAHATEESGDSRAHSSYLKTKKGQSTSRHKKTMVKKVGPDSD epor_human Erythropoietin receptor precursor human Homo sapiens MDHLGASLWPQVGSLCLLLAGAAWAPPPNLPDPKFESKAALLAARGPEELLCFTERLEDLVCFWEEAASAGVGPGNYSFSYQLEDEPWKLCRLHQAPTARGAVRFWCSLPTADTSSFVPLELRVTAASGAPRYHRVIHINEVVLLDAPVGLVARLADESGHVVLRWLPPPETPMTSHIRYEVDVSAGNGAGSVQRVEILEGRTECVLSNLRGRTRYTFAVRARMAEPSFGGFWSAWSEPVSLLTPSDLDPLILTLSLILVVILVLLTVLALLSHRRALKQKIWPGIPSPESEFEGLFTTHKGNFQLWLYQNDGCLWWSPCTPFTEDPPASLEVLSERCWGTMQAVEPGTDDEGPLLEPVGSEHAQDTYLVLDKWLLPRNPPSEDLPGPGGSVDIVAMDEGSEASSCSSALASKPSPEGASAASFEYTILDPSSQLLRPWTLCPELPPTPPHLKYLYLVVSDSGISTDYSSGDSQGAQGGLSDGPYSNPYENSLIPAAEPLPPSYVACS cish_mouse Cytokine-inducible SH2-containing protein mouse Mus musculus MVLCVQGSCPLLAVEQIGRRPLWAQSLELPGPAMQPLPTGAFPEEVTEETPVQAENEPKVLDPEGDLLCIAKTFSYLRESGWYWGSITASEARQHLQKMPEGTFLVRDSTHPSYLFTLSVKTTRGPTNVRIEYADSSFRLDSNCLSRPRILAFPDVVSLVQHYVASCAADTRSDSPDPAPTPALPMSKQDAPSDSVLPIPVATAVHLKLVQPFVRRSSARSLQHLCRLVINRLVADVDCLPLPRRMADYLRQYPFQL socs2_human Suppressor of cytokine signaling 2 human Homo sapiens MTLRCLEPSGNGGEGTRSQWGTAGSAEEPSPQAARLAKALRELGQTGWYWGSMTVNEAKEKLKEAPEGTFLIRDSSHSDYLLTISVKTSAGPTNLRIEYQDGKFRLDSIICVKSKLKQFDSVVHLIDYYVQMCKDKRTGPEAPRNGTVHLYLTKPLYTSAPSLQHLCRLTINKCTGAIWGLPLPTRLKDYLEEYKFQV sv40-tp53-1 Interactions between SV40 large T antigen and murine p53 demonstrated by MAPPIT prey bait physical interaction physical interaction 1.0 epor-cish-4 Interaction between human EpoR and Murine CIS-1 demonstrated by MAPPIT bait prey physical interaction physical interaction 1.0 epor-socs2-3 Interaction between human EpoR and SOCS2 demonstrated by MAPPIT prey bait physical interaction physical interaction SOCS2 described as fragment but no detail given Erythropoietin Phosphorylation of SOCS2 - dependent on treatment of cells with erythropoietin 1.0 From bosborne at pub.open-bio.org Fri Dec 30 17:45:44 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 30 17:37:15 2005 Subject: [Bioperl-guts-l] bioperl-live/t/data 05510.xml,1.2,NONE Message-ID: <200512302245.jBUMjiVL017295@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/t/data In directory pub.open-bio.org:/tmp/cvs-serv17286 Removed Files: 05510.xml Log Message: Remove HPRD PSI XML, currently not parseable as it's missing species names --- 05510.xml DELETED --- From bugzilla-daemon at portal.open-bio.org Fri Dec 30 17:43:57 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 30 17:58:42 2005 Subject: [Bioperl-guts-l] [Bug 1927] New: mistyped ASN1 Message-ID: <200512302243.jBUMhvwK002842@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1927 Summary: mistyped ASN1 Product: Bioperl Version: 1.5 branch Platform: Macintosh OS/Version: Mac OS Status: NEW Severity: minor Priority: P2 Component: Documentation AssignedTo: bioperl-guts-l@bioperl.org ReportedBy: alok@caltech.edu ASN1 is spelled ANS1 in Makefile.pl, which leads to confusing missing packages reports, and bad results if the user naively types "perl -MCPAN -e'install Bio::ANS1::EntrezGene'" Here's the line I'm referring to: [remote@miniprep bioperl-1.5.1]$ grep ANS1 * Makefile.PL: 'Bio::ANS1::EntrezGene' => '0.0/Enztrez Gene Bioperl Parser/Parsers/Bio::SeqIO::entrezgene' ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Fri Dec 30 18:23:32 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 30 18:15:00 2005 Subject: [Bioperl-guts-l] bioperl-live Makefile.PL,1.84,1.85 Message-ID: <200512302323.jBUNNWVL017409@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live In directory pub.open-bio.org:/tmp/cvs-serv17400 Modified Files: Makefile.PL Log Message: Typo Index: Makefile.PL =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Makefile.PL,v retrieving revision 1.84 retrieving revision 1.85 diff -C2 -d -r1.84 -r1.85 *** Makefile.PL 11 Oct 2005 11:04:06 -0000 1.84 --- Makefile.PL 30 Dec 2005 23:23:29 -0000 1.85 *************** *** 42,46 **** 'XML::SAX::Base' => '0.0/New style SAX parser/Parsers/Bio::SeqIO::tigrxml,Bio::SeqIO::bsml_sax', 'XML::SAX::Writer' => '0.0/New style SAX parser/Writers/Bio::SeqIO::tigrxml,Bio::SeqIO::bsml_sax', ! 'Bio::ASN1::EntrezGene' => '0.0/Enztrez Gene Bioperl Parser/Parsers/Bio::SeqIO::entrezgene' # Bio::Microarray is not in core bioperl yet # 'enum' => '0.0/C style enumerated types and bitmask flags --- 42,46 ---- 'XML::SAX::Base' => '0.0/New style SAX parser/Parsers/Bio::SeqIO::tigrxml,Bio::SeqIO::bsml_sax', 'XML::SAX::Writer' => '0.0/New style SAX parser/Writers/Bio::SeqIO::tigrxml,Bio::SeqIO::bsml_sax', ! 'Bio::ASN1::EntrezGene' => '0.0/Entrez Gene Bioperl Parser/Parsers/Bio::SeqIO::entrezgene' # Bio::Microarray is not in core bioperl yet # 'enum' => '0.0/C style enumerated types and bitmask flags From bugzilla-daemon at portal.open-bio.org Fri Dec 30 18:15:20 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 30 18:58:43 2005 Subject: [Bioperl-guts-l] [Bug 1927] mistyped ASN1 Message-ID: <200512302315.jBUNFKN6003617@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1927 osborne1@optonline.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #1 from osborne1@optonline.net 2005-12-30 18:15 ------- Fixed in bioperl-live. ------- 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 30 18:21:02 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 30 18:58:45 2005 Subject: [Bioperl-guts-l] [Bug 1927] mistyped ASN1 Message-ID: <200512302321.jBUNL2l2003749@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1927 ------- Comment #2 from skirov@utk.edu 2005-12-30 18:21 ------- Alok, The file I have is spelled correctly- it is v. 1.84, could you please tell me what version you have? Stefan ------- 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 30 19:05:34 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Fri Dec 30 19:58:40 2005 Subject: [Bioperl-guts-l] [Bug 1927] mistyped ASN1 Message-ID: <200512310005.jBV05YOk004646@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1927 ------- Comment #3 from alok@caltech.edu 2005-12-30 19:05 ------- I had the following version: ## Makefile.PL,v 1.82.2.1 2005/10/09 15:16:18 jason Exp This was in the 1.5.1 distribution that I downloaded... -rw-rw-r-- 1 remote elearn 5538613 Oct 13 16:47 bioperl-1.5.1.tar.bz2 I'm glad it's been fixed. I'll check the live distro next time. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bosborne at pub.open-bio.org Fri Dec 30 23:33:03 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Fri Dec 30 23:24:31 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Graph ProteinGraph.pm,1.25,1.26 Message-ID: <200512310433.jBV4X3VL018200@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Graph In directory pub.open-bio.org:/tmp/cvs-serv18191/Bio/Graph Modified Files: ProteinGraph.pm Log Message: POD edits Index: ProteinGraph.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Graph/ProteinGraph.pm,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** ProteinGraph.pm 9 Oct 2005 14:53:12 -0000 1.25 --- ProteinGraph.pm 31 Dec 2005 04:33:01 -0000 1.26 *************** *** 12,28 **** =head1 SYNOPSIS ! # read in from file my $graphio = Bio::Graph::IO->new(-file => 'myfile.dat', -format => 'dip'); my $graph = $graphio->next_network(); ! # remove duplicate interactions from within a dataset ! $graph->remove_dup_edges(); ! # get a node (represented by a sequence object) from the graph. my $seqobj = $gr->nodes_by_id('P12345'); ! # get clustering coefficient of a given node. my $cc = $gr->clustering_coefficient($graph->nodes_by_id('NP_023232')); if ($cc != -1) { ## result is -1 if cannot be calculated --- 12,27 ---- =head1 SYNOPSIS ! # Read in from file my $graphio = Bio::Graph::IO->new(-file => 'myfile.dat', -format => 'dip'); my $graph = $graphio->next_network(); ! # Remove duplicate interactions from within a dataset $graph->remove_dup_edges(); ! # Get a node (represented by a sequence object) from the graph. my $seqobj = $gr->nodes_by_id('P12345'); ! # Get clustering coefficient of a given node. my $cc = $gr->clustering_coefficient($graph->nodes_by_id('NP_023232')); if ($cc != -1) { ## result is -1 if cannot be calculated *************** *** 30,40 **** } ! # get graph density my $density = $gr->density(); ! # get connected subgraphs my @graphs = $gr->components(); ! # remove a node $gr->remove_nodes($gr->nodes_by_id('P12345')); --- 29,39 ---- } ! # Get graph density my $density = $gr->density(); ! # Get connected subgraphs my @graphs = $gr->components(); ! # Remove a node $gr->remove_nodes($gr->nodes_by_id('P12345')); *************** *** 45,49 **** my $ncount = $gr->node_count(); ! # Lets get interactions above a threshold confidence score. my $edges = $gr->edges; for my $edge (keys %$edges) { --- 44,48 ---- my $ncount = $gr->node_count(); ! # Let's get interactions above a threshold confidence score. my $edges = $gr->edges; for my $edge (keys %$edges) { *************** *** 55,60 **** } ! # get interactors of your favourite protein ! my $node = $graph->nodes_by_id('NP_023232'); my @neighbors = $graph->neighbors($node); --- 54,58 ---- } ! # Get interactors of your favourite protein my $node = $graph->nodes_by_id('NP_023232'); my @neighbors = $graph->neighbors($node); *************** *** 63,69 **** print "\n"; ! # annotate your sequences with interaction info ! ! my @seqs; ##array of sequence objects for my $seq(@seqs) { if ($graph->has_node($seq->accession_number)) { --- 61,66 ---- print "\n"; ! # Annotate your sequences with interaction info ! my @seqs; ## array of sequence objects for my $seq(@seqs) { if ($graph->has_node($seq->accession_number)) { *************** *** 80,85 **** } ! # get proteins with > 10 interactors ! my @nodes = $graph->nodes(); my @hubs; --- 77,81 ---- } ! # Get proteins with > 10 interactors my @nodes = $graph->nodes(); my @hubs; *************** *** 92,118 **** print join "\n", map{$_->object_id()} @hubs; ! # merge 2 graphs, flag duplicate edges ## ! ! # get second graph $g2 $g1->union($g2); my @duplicates = $g1->dup_edges(); - print "these interactions exist in $g1 and $g2:\n"; print join "\n", map{$_->object_id} @duplicates; ! # what to do if you have interaction data in your own format: ! ! # e.g. ! # edgeid node1 node2 node2 score ! my $io = Bio::Root::IO->new(-file => 'mydata'); my $gr = Bio::Graph::ProteinGraph->new(); ! my %seen= (); # to record seen nodes while (my $l = $io->_readline() ) { ! # parse out your data ! my ($e_id, $n1, $n2, $sc) = split /\t/, $l; ! # make nodes if they are unseen my @nodes =(); for my $n ($n1, $n2 ) { --- 88,109 ---- print join "\n", map{$_->object_id()} @hubs; ! # Merge graphs 1 and 2 and flag duplicate edges $g1->union($g2); my @duplicates = $g1->dup_edges(); print "these interactions exist in $g1 and $g2:\n"; print join "\n", map{$_->object_id} @duplicates; ! # Create a graph if you have interaction data in your own format, e.g. ! # edgeid node1 node2 score ! # my $io = Bio::Root::IO->new(-file => 'mydata'); my $gr = Bio::Graph::ProteinGraph->new(); ! my %seen = (); # to record seen nodes while (my $l = $io->_readline() ) { ! # Parse out your data... ! my ($e_id, $n1, $n2, $sc) = split /\s+/, $l; ! # ...then make nodes if they don't already exist in the graph... my @nodes =(); for my $n ($n1, $n2 ) { *************** *** 126,134 **** } ! # make an edge my $edge = Bio::Graph::Edge->new(-nodes => \@nodes, -id => 'myid', -weight=> 1); - # add it to graph $gr->add_edge($edge); --- 117,124 ---- } ! # ...and add a new edge to the graph my $edge = Bio::Graph::Edge->new(-nodes => \@nodes, -id => 'myid', -weight=> 1); $gr->add_edge($edge); *************** *** 136,153 **** A ProteinGraph is a representation of a protein interaction network. ! It derives most of its functionality from Nat Goodman's SimpleGraph module, but is adapted to be able to use protein identifiers to identify the nodes. ! This graph can use any objects that implement Bio::AnnotatableI and Bio::IdentifiableI ! interfaces. Bio::Seq (but not Bio::PrimarySeqI) ! objects can therefore be used for the nodes, as this class is ! familiar to most BioPerl users. Any object that supports annotation objects and the object_id() ! method should work fine. At present it is fairly 'lightweight' in that it represents nodes and ! edges but does not contain all the data about experiment ids etc found in the Protein Standards Initiative schema. Hopefully that will be ! available soon A dataset may contain duplicate or redundant interactions. --- 126,142 ---- A ProteinGraph is a representation of a protein interaction network. ! It derives most of its functionality from the L module, but is adapted to be able to use protein identifiers to identify the nodes. ! This graph can use any objects that implement L and ! L interfaces. L (but not L) ! objects can therefore be used for the nodes but any object that supports ! annotation objects and the object_id() method should work fine. At present it is fairly 'lightweight' in that it represents nodes and ! edges but does not contain all the data about experiment ids etc. found in the Protein Standards Initiative schema. Hopefully that will be ! available soon. A dataset may contain duplicate or redundant interactions. *************** *** 164,177 **** For developers: ! In this module, nodes are represented by Bio::Seq::RichSeq objects containing all possible database identifiers but no sequence, as parsed from the interaction files. However, a node represented by a ! Bio::PrimarySeq object should work fine too. ! Edges are represented by Bio::Graph::Edge objects. In order to work with SimpleGraph these objects must be array references, with the first 2 elements being references to the 2 nodes. More data can be ! added in $e[2]. etc. Edges should be Bio::Graph::Edge objects, which ! are Bio::IdentifiableI implementing objects. At present edges only have an identifier and a weight() method, to hold confidence data, but subclasses of this could hold all the --- 153,167 ---- For developers: ! In this module, nodes are represented by L objects containing all possible database identifiers but no sequence, as parsed from the interaction files. However, a node represented by a ! L object should work fine too. ! Edges are represented by L objects. In order to work with SimpleGraph these objects must be array references, with the first 2 elements being references to the 2 nodes. More data can be ! added in $e[2]. etc. Edges should be L objects, which ! are L implementing objects. ! At present edges only have an identifier and a weight() method, to hold confidence data, but subclasses of this could hold all the *************** *** 231,235 **** =head1 AUTHORS ! Richard Adams - this module, IO modules. =head2 AUTHOR2 --- 221,225 ---- =head1 AUTHORS ! Richard Adams - this module, Graph::IO modules. =head2 AUTHOR2 From bosborne at pub.open-bio.org Sat Dec 31 17:35:18 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Sat Dec 31 17:26:44 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Graph ProteinGraph.pm,1.26,1.27 Message-ID: <200512312235.jBVMZIVL020415@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Graph In directory pub.open-bio.org:/tmp/cvs-serv20406/Bio/Graph Modified Files: ProteinGraph.pm Log Message: Minor edits Index: ProteinGraph.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/Graph/ProteinGraph.pm,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** ProteinGraph.pm 31 Dec 2005 04:33:01 -0000 1.26 --- ProteinGraph.pm 31 Dec 2005 22:35:16 -0000 1.27 *************** *** 151,155 **** datasets, with different IDs, will be duplicate edges. ! For developers: In this module, nodes are represented by L objects --- 151,155 ---- datasets, with different IDs, will be duplicate edges. ! =head2 For Developers In this module, nodes are represented by L objects *************** *** 231,234 **** --- 231,242 ---- =cut + use strict; + package Bio::Graph::ProteinGraph; + use Bio::Graph::SimpleGraph; + use Bio::Graph::Edge; + use Clone qw(clone); + use vars qw(@ISA); + our @ISA = qw(Bio::Graph::SimpleGraph); + =head2 has_node *************** *** 241,252 **** =cut - use strict; - package Bio::Graph::ProteinGraph; - use Bio::Graph::SimpleGraph; - use Bio::Graph::Edge; - use Clone qw(clone); - use vars qw(@ISA); - our @ISA = qw(Bio::Graph::SimpleGraph); - sub has_node { --- 249,252 ---- *************** *** 640,647 **** return $subgraph; } - - - - =head2 add_dup_edge --- 640,643 ---- From bosborne at pub.open-bio.org Sat Dec 31 18:59:32 2005 From: bosborne at pub.open-bio.org (Brian Osborne) Date: Sat Dec 31 18:50:58 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/AlignIO fasta.pm,1.21,1.22 Message-ID: <200512312359.jBVNxWVL020590@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/AlignIO In directory pub.open-bio.org:/tmp/cvs-serv20581/Bio/AlignIO Modified Files: fasta.pm Log Message: Per Albert Index: fasta.pm =================================================================== RCS file: /home/repository/bioperl/bioperl-live/Bio/AlignIO/fasta.pm,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** fasta.pm 20 Nov 2005 18:23:19 -0000 1.21 --- fasta.pm 31 Dec 2005 23:59:30 -0000 1.22 *************** *** 56,60 **** @ISA = qw(Bio::AlignIO); ! $MATCHPATTERN = '^A-Za-z\.\-'; $WIDTH = 60; --- 56,60 ---- @ISA = qw(Bio::AlignIO); ! $MATCHPATTERN = '^A-Za-z\.\-\*'; $WIDTH = 60;
NameReturnsExampleNote
newSequence object$so = Bio::Seq->new(-seq => "MPQRAS")create a new one, see Bio::Seq for more
seqsequence string$seq = $so->seqget or set the sequence
display_ididentifier$so->display_id("NP_123456")get or set an identifier
primary_ididentifier$so->primary_id(12345)get or set an identifier
descdescription$so->desc("Example 1")get or set a description
accessionidentifier$acc = $so->accessionget or set an identifier
lengthlength, a number$len = $so->lengthget the length
alphabetalphabet$so->alphabet('dna')get or set the alphabet ('dna','rna','protein')
subseqsequence string$string = $seq_obj->subseq(10,40)Arguments are start and end
truncSequence object$so2 = $so1->trunc(10,40)Arguments are start and end
revcomSequence object$so2 = $so1->revcomReverse complement
translateprotein Sequence object$prot_obj = $dna_obj->translateSee Bio::PrimarySeqI --- 714,718 ----

!

! (.+)
NameReturnsExampleNote
newSequence object$so = Bio::Seq->new(-seq => "MPQRAS")create a new one, see Bio::Seq for more
seqsequence string$seq = $so->seqget or set the sequence
display_ididentifier$so->display_id("NP_123456")get or set an identifier
primary_ididentifier$so->primary_id(12345)get or set an identifier
descdescription$so->desc("Example 1")get or set a description
accessionidentifier$acc = $so->accessionget or set an identifier
lengthlength, a number$len = $so->lengthget the length
alphabetalphabet$so->alphabet('dna')get or set the alphabet ('dna','rna','protein')
subseqsequence string$string = $seq_obj->subseq(10,40)Arguments are start and end
truncSequence object$so2 = $so1->trunc(10,40)Arguments are start and end
revcomSequence object$so2 = $so1->revcomReverse complement
translateprotein Sequence object$prot_obj = $dna_obj->translateSee Bio::PrimarySeqI *************** *** 735,739 **** The methods related to this topic are shown below.

!

NameReturnsNote
get_SeqFeaturesarray of SeqFeature objects 
get_all_SeqFeaturesarray of SeqFeature objectsarray includes sub-features
remove_SeqFeaturesarray of SeqFeatures removed 
feature_countnumber of SeqFeature objects 
add_SeqFeature  
annotationarray of Annotation objectsget or set

Table 2. Feature and Annotation Methods

11. Example Sequence objects

Let's use some of the methods above and see what they return --- 735,739 ---- The methods related to this topic are shown below.

!

NameReturnsNote
get_SeqFeaturesarray of SeqFeature objects 
get_all_SeqFeaturesarray of SeqFeature objectsarray includes sub-features
remove_SeqFeaturesarray of SeqFeatures removed 
feature_countnumber of SeqFeature objects 
add_SeqFeature  
annotationarray of Annotation objectsget or set

Table 2. Feature and Annotation Methods

11. Example Sequence objects

Let's use some of the methods above and see what they return *************** *** 833,837 **** Either way, the values returned by various methods are shown below.

!

MethodReturns
display_idECORHO
descE.coli rho gene coding for transcription termination factor.
display_nameECORHO
accessionJ01673
primary_id147605
seq_version1
keywordsattenuator; leader peptide; rho gene; transcription terminator
is_circular 
namespace 
authority 
length1880
seqAACCCT...ACAGGAC
divisionBCT
moleculeDNA
get_dates26-APR-1993
get_secondary_accessionsJ01674

Table 3. Values from the Sequence object (Genbank)

There's a few comments that need to be made. First, --- 833,837 ---- Either way, the values returned by various methods are shown below.

!

J01674
MethodReturns
display_idECORHO
descE.coli rho gene coding for transcription termination factor.
display_nameECORHO
accessionJ01673
primary_id147605
seq_version1
keywordsattenuator; leader peptide; rho gene; transcription terminator
is_circular 
namespace 
authority 
length1880
seqAACCCT...ACAGGAC
divisionBCT
moleculeDNA
get_dates26-APR-1993
get_secondary_accessions

Table 3. Values from the Sequence object (Genbank)

There's a few comments that need to be made. First, *************** *** 873,877 **** And here are the values:

!

MethodReturns
display_idgi|147605|gb|J01673.1|ECORHO
descE.coli rho gene coding for transcription termination factor
display_namegi|147605|gb|J01673.1|ECORHO
accessionunknown
primary_idgi|147605|gb|J01673.1|ECORHO
is_circular 
namespace 
authority 
length1880
seqAACCCT...ACAGGAC

Table 4. Values from the Sequence object (FASTA)

If you compare these values to the values taken from the Genbank --- 873,877 ---- And here are the values:

!

MethodReturns
display_idgi|147605|gb|J01673.1|ECORHO
descE.coli rho gene coding for transcription termination factor
display_namegi|147605|gb|J01673.1|ECORHO
accessionunknown
primary_idgi|147605|gb|J01673.1|ECORHO
is_circular 
namespace 
authority 
length1880
seqAACCCT...ACAGGAC

Table 4. Values from the Sequence object (FASTA)

If you compare these values to the values taken from the Genbank *************** *** 985,989 **** The corresponding set of values is shown below.

!

MethodReturns
display_idA2S3_RAT
descAmyotrophic lateral ... protein of 98 kDa).
display_nameA2S3_RAT
accessionQ8R2H7
is_circular 
namespace 
authority 
length913
seqMSLSQ...ILKED
divisionRAT
get_dates28-FEB-2003 (Rel. 41, Created) 15-MAR-2004 (Rel. 43, Last sequence update) 15-MAR-2004 (Rel. 43, Last annotation update)
get_secondary_accessionsQ8R2H6 Q8R4G3

Table 5. Values from the Sequence object (Swissprot)

As in the Genbank example there's information that the Sequence --- 985,989 ---- The corresponding set of values is shown below.

!

MethodReturns
display_idA2S3_RAT
descAmyotrophic lateral ... protein of 98 kDa).
display_nameA2S3_RAT
accessionQ8R2H7
is_circular 
namespace 
authority 
length913
seqMSLSQ...ILKED
divisionRAT
get_dates28-FEB-2003 (Rel. 41, Created) 15-MAR-2004 (Rel. 43, Last sequence update) 15-MAR-2004 (Rel. 43, Last annotation update)
get_secondary_accessionsQ8R2H6 Q8R4G3

Table 5. Values from the Sequence object (Swissprot)

As in the Genbank example there's information that the Sequence *************** *** 1361,1364 **** --- 1361,1368 ---- Bioperl design documentation, for anyone who'd like to write their own modules. +

  • + The + ENSEMBL Perl API, a way of accessing + ENSEMBL's genomics data, in a manner very much like Bioperl.

  • Index: Feature-Annotation.html =================================================================== RCS file: /home/repository/bioperl/bioperl-live/doc/howto/html/Feature-Annotation.html,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Feature-Annotation.html 29 Nov 2005 16:30:47 -0000 1.17 --- Feature-Annotation.html 6 Dec 2005 22:46:53 -0000 1.18 *************** *** 0 **** --- 1,869 ---- + + + Feature and Annotation HOWTO
    + BioPerl DocBook (BioPerl) +

    Feature and Annotation HOWTO

    Brian Osborne



    +  

    +         

    + This document is copyright Brian Osborne, 2003. For + reproduction other than personal use please contact osborne1 at + optonline.net. +

    2003-10-14

    Abstract

    + This is a HOWTO written in DocBook format that explains how to + use the SeqFeature and Annotation objects of Bioperl. +


    1. Introduction

    + There's no more central notion in bioinformatics than the idea that + portions of protein or nucleotide sequence have specific + characteristics. A given stretch of DNA may have been found + to be essential for the proper transcriptional regulation of a + gene, or a particular amino acid sequence may bind a particular + ion, for example. This simple idea turns out to be a bit more complicated + in the bioinformatics world where there's a need to represent the actual + data in all its varied forms. The promoter region may not be precisely + defined down to the base pair, a transcribed region may be divided into + discontinuous exons, a gene may have different numbered positions on + different maps, a sequence may have a sub-sequence which itself + possesses some characteristic, an experimental observation may be + associated with a literature reference, and so on. +

    + This HOWTO describes aspects of Bioperl's approach. The problem is how to + create software that accepts, analyzes, and displays any and all of + this sequence annotation with the required attention to detail + yet remains flexible and easy to use. The general names for the + modules or objects that serve these purposes in Bioperl are + SeqFeature and Annotation. +

    + The HOWTO will discuss these objects and the differences + between them. There's also discussion of how to get useful data from these + objects and the basics of how to create your own sequence annotations + using the objects. +

    2. The Basics

    + Some Bioperl neophytes may also be new to object-oriented + programming (OOP) and this notion of an object. OOP is not the + subject of this HOWTO but there should be some discussion of + how objects are used in Bioperl. In the Bioperl world parsing a + Genbank file doesn't give you data, it gives you an object and you + can ask the object, a kind of variable, for data. While + annotating you don't create a + file or database entry directly. You might create a "sequence + object" and an "annotation object", then put these two + together to create an "annotated sequence object". You could then tell + this object to make a version of itself as a file, or pass this + object to a "database object" in order to enter some data into the + database. This is a very flexible and + logical way to design a complex piece of software like Bioperl, + since each part of the system can be created and evaluated separately. +

    + A central idea in OOP is inheritance, + which means that a child object can derive some of its + capabilities or functionality from a parent object. The OOP + approach also allows new modules to + modify or add functionality, distinct from the parent. Practically + speaking this means that there's not one definitive SeqFeature + or Annotation object but many, each a variation on a theme. The + details of the these varieties will be discussed in other + sections, but for now + we could use some broad definitions that apply to all the variations. +

    + A SeqFeature object is designed to be associated with a + sequence, and can have + a location on that sequence - it's a way of describing the + characteristics of a specific part of a sequence. SeqFeature objects + can also have features themselves, which you + could call sub-features but which, in fact, are complete + SeqFeature objects. SeqFeature objects can also have one or more + Annotations associated with them. +

    + An Annotation object is also associated with a sequence + as you'd expect but it does not have a location on the sequence, it's + associated with an entire sequence. This is one of the + important differences between a SeqFeature and an + Annotation. Annotations also can't have SeqFeatures, which makes + sense since SeqFeature objects typically have locations. The relative + simplicity of the Annotation has made it + amenable to the creation of a useful set of Annotation objects, + each devoted to a particular kind of fact or observation. +

    + Locations were discussed, above. Describing locations can be + complicated in certain situations, say when some feature is + located on different sequences with varying degrees of + precision. One location could also be shared + between disparate objects, such as two different kinds of + SeqFeatures. You may also want to describe a feature with many + locations, like a repeated sequence motif in a protein. Because of + these sorts of complexities and because + one may want to create different types of locations the Bioperl + authors elected to keep location functionality inside dedicated + Location objects. +

    + SeqFeatures and Annotations will make the most sense if you're + already somewhat familiar with Bioperl and its central Seq + and SeqIO objects. The reader is referred to the + bptutorial, + the module documentation, and the + SeqIO HOWTO + for more information on these topics. Here's a bit of code, to summarize: +

    +

    + 	# BAB55667.gb is a Genbank file, and Bioperl knows that it
    +         # is a Genbank file because of the '.gb' file suffix
    + 	use Bio::SeqIO;
    + 	
    + 	my $seqio_object = Bio::SeqIO->new(-file => "BAB55667.gb" );
    + 	my $seq_object = $seqio_object->next_seq;
    +       
    +

    [Note]Note

    + This object, $seq_object, is actually a + Bio::Seq::RichSeq + object - can a + PrimarySeq object, the simple parent of all Sequence objects, + have a feature or an annotation? No. +

    +

    + Now that we have a sequence object in hand we can examine its + features and annotations. +

    3. Features from Genbank

    + The focus of this HOWTO is mostly on Genbank format but bear in mind + that all of the code shown here will also work on other formats + containing features or annotations (EMBL, Swissprot, BSML, + Chado XML, GAME, KEGG, Locuslink, Entrez Gene, TIGR XML). + When the entry comes from Genbank it's + easy to see where most of the + features are, they're in the Feature table section, something + like this: +

    +

    + FEATURES             Location/Qualifiers
    +      source          1..1846
    +                      /organism="Homo sapiens"
    +                      /db_xref="taxon:9606"
    +                      /chromosome="X"
    +                      /map="Xp11.4"
    +      gene            1..1846
    +                      /gene="NDP"
    +                      /note="ND"
    +                      /db_xref="LocusID:4693"
    +                      /db_xref="MIM:310600"
    +      CDS             409..810
    +                      /gene="NDP"
    +                      /note="Norrie disease (norrin)"
    +                      /codon_start=1
    +                      /product="Norrie disease protein"
    +                      /protein_id="NP_000257.1"
    +                      /db_xref="GI:4557789"
    +                      /db_xref="LocusID:4693"
    +                      /db_xref="MIM:310600"
    +                      /translation="MRKHVLAASFSMLSLLVIMGDTDSKTDSSFIMDSDPRRCMRHHY
    +                      VDSISHPLYKCSSKMVLLARCEGHCSQASRSEPLVSFSTVLKQPFRSSCHCCRPQTSK
    +                      LKALRLRCSGGMRLTATYRYILSCHCEECNS"
    +       
    +

    + Features in Bioperl are accessed using their tags, either a + "primary tag" or a plain "tag". Examples of primary tags and + tags in this Genbank entry are shown below. You can see that + in this case the primary tag is a means to access the tags + and it's the tags that are associated with the data from + the file. +

    +

    Tag nameTag typeTag value
    sourceprimary tag 
    CDSprimary tag 
    geneprimary tag 
    organismtagHomo sapiens
    notetagND
    protein_idtagNP_000257.1
    translationtagMRKHVL...HCEECNS

    Table 1. Tag Examples

    +

    + When a Genbank file like the one above is parsed the + feature data is converted into objects, specifically + Bio::SeqFeature::Generic objects. How many? In this + case 3, one for each of the primary tags. +

    + In other parts of + the Bioperl documentation one finds discussions + of the "SeqFeature object", but there's more + than one kind of these, as we'll see later, so what is this a + reference to? More + than likely it's referring to this same + Bio::SeqFeature::Generic + object. Think of it as the default SeqFeature object. Now, + should you care what kind of object is being made? For the most + part no, you can write lots of useful and powerful Bioperl code + without ever knowing these specific details. +

    [Tip]Tip

    + By the way, how does one know what kind of object one has in hand? Try + something like: +

    + 	  print ref($seq_object);
    + 	  # results in "Bio::Seq::RichSeq"
    + 		  
    +

    +

    + The SeqFeature::Generic object uses tag/value pairs to store information, + and the values are always returned as arrays. A simple + way to access all the data in the features of a Seq object would + look something like this: +

    + 	for my $feat_object ($seq_object->get_SeqFeatures) {
    + 	   print "primary tag: ", $feat_object->primary_tag, "\n";
    + 	   for my $tag ($feat_object->get_all_tags) {
    + 	      print "  tag: ", $tag, "\n";
    + 	      for my $value ($feat_object->get_tag_values($tag)) {
    + 	         print "    value: ", $value, "\n";
    + 	      }
    + 	   }
    + 	}
    +       
    +

    + This bit would print out something like: +

    + primary tag: source
    +   tag: chromosome
    +     value: X
    +   tag: db_xref
    +     value: taxon:9606
    +   tag: map
    +     value: Xp11.4
    +   tag: organism
    +     value: Homo sapiens
    + primary tag: gene
    +   tag: gene
    +     value: NDP
    +   tag: note
    +     value: ND
    + primary tag: CDS
    +   tag: codon_start
    +     value: 1
    +   tag: db_xref
    +     value: GI:4557789
    +     value: LocusID:4693
    +     value: MIM:310600
    +   tag: product
    +     value: Norrie disease protein
    +   tag: protein_id
    +     value: NP_000257.1
    +   tag: translation
    +     value: MRKHVLAASFSMLSLLVIMGDTDSKTDSSFIMDSDPRRCMRHHYVDSI
    +            SHPLYKCSSKMVLLARCEGHCSQASRSEPLVSFSTVLKQPFRSSCHCC
    +            RPQTSKLKALRLRCSGGMRLTATYRYILSCHCEECNS
    +       
    +

    +

    + So to retrieve specific values, like all the database identifiers, + you could do: +

    +

    +       for my $feat_object ($seq_object->get_SeqFeatures) {
    +          push @ids,$feat_object->get_tag_values("db_xref") 
    +               if ($feat_object->has_tag("db_xref"));
    +       }
    +     
    +

    +

    [Important]Important

    + Make sure to include that if ($feat_object->has_tag("<tag>")) + part, otherwise you'll get errors when the feature does not + have the tag you're requesting. +

    +

    + One last note on Genbank features. The Bioperl parsers for + Genbank and EMBL are + built to respect the specification for the feature tables agreed + upon by Genbank, EMBL, and DDBJ (see Feature + Table Definition for the details). Check this page if + you're interested in a complete listing and description of all the + Genbank, EMBL, and DDBJ feature tags. +

    + Despite this specification some non-standard feature tags + have crept into Genbank, like "bond". When the Bioperl Genbank + parser encounters a non-standard + feature like this it's going to throw a fatal exception. The + work-around is to use eval{} so your + script doesn't die, something like: +

    +

    + 	use Bio::SeqIO;
    + 	
    + 	my $seq_object;
    + 	my $seqio_object = Bio::SeqIO->new(-file   => $gb_file,
    +                                            -format => "genbank");
    + 	eval { $seq_object = $seqio_object->next_seq; };
    + 	# if there's an error
    +         print "Problem in $gb_file. Bad feature perhaps?\n" if $@;
    +       
    +

    4. Getting Sequences

    + One commonly asked question is "How do I get the sequence of a + SeqFeature?" The answer is "It depends on what you're looking + for." If you'd like the sequence of the parent, the sequence + object that the SeqFeature is associated with, then use + entire_seq(): +

    +

    + 	$seq_object = $feat_object->entire_seq;
    +       
    +

    + This doesn't return the parent's sequence directly but rather + a Bio::PrimarySeq object corresponding to the parent + sequence. Now that you have this object you can call its + seq() method to get the sequence string, or + you could do this all in one step: +

    +

    + 	my $sequence_string = $feat_object->entire_seq->seq;
    +       
    +

    + There are 2 other useful methods, seq() and + spliced_seq(). Consider the following + Genbank example: +

    +

    + FEATURES             Location/Qualifiers
    +      source          1..177
    +                      /organism="Mus musculus"
    +                      /mol_type="genomic DNA"
    +                      /db_xref="taxon:10090"
    +      tRNA            join(103..111,121..157)
    +                      /gene="Phe-tRNA"
    +       
    +

    + To get the sequence string from the start to the end of the tRNA + feature use seq(). To get the spliced + sequence string, accounting for the start and end locations of + each sub-sequence, use spliced_seq(). Here + are the methods and the corresponding example coordinates: +

    +

    MethodCoordinates
    entire_seq()1..177
    seq()103..157
    spliced_seq()103..111,121..157

    Table 2. Sequence retrieval methods

    +

    + It's not unusual for a Genbank file to have multiple CDS or gene + features (and recall that 'CDS' and 'gene' are common primary tags + in Genbank format), each with a number of tags, like 'note', + 'protein_id', + or 'product'. How can we get, say, the nucleotide sequences and gene + names from all these CDS features? By putting all of this together we + arrive at something like: +

    +

    +         use Bio::SeqIO;
    + 
    + 	my $seqio_object = Bio::SeqIO->new(-file => $gb_file);
    +         my $seq_object = $seqio_object->next_seq;
    + 
    + 	for my $feat_object ($seq_object->get_SeqFeatures) {
    + 	  if ($feat_object->primary_tag eq "CDS") {
    + 	    print $feat_object->spliced_seq->seq,"\n";
    + 	# e.g. 'ATTATTTTCGCTCGCTTCTCGCGCTTTTTGAGATAAGGTCGCGT...'
    + 	    if ($feat->has_tag('gene')) {
    + 	      for my $val ($feat->get_tag_values('gene')){
    + 	        print "gene: ",$val,"\n";
    + 	# e.g. 'NDP', from a line like '/gene="NDP"'
    + 	      }
    +             }
    +           }
    +         }	
    +       
    +

    +

    5. Compact Code

    + Many people wouldn't write code in the rather deliberate style + used above. The following is more compact code + that gets all the features with a primary tag of 'CDS', + starting with a Genbank file: +

    +

    + 	my @cds_features = grep { $_->primary_tag eq 'CDS' }
    + 	Bio::SeqIO->new(-file => $gb_file)->next_seq->get_SeqFeatures;
    +       
    +

    + With this array of SeqFeatures you could do all sorts of + useful things, such as find all the values for + the 'gene' tags and their corresponding spliced nucleotide + sequences and store them in a hash: +

    +

    + 	my %gene_sequences = map {$_->get_tag_values('gene'),
    + 	                          $_->spliced_seq->seq } @cds_features;
    +       
    +

    + Because you're asking for a specific primary tag and tag, 'CDS' + and 'gene' respectively, this code would only work when there are + features that looked something like this: +

    +

    +      CDS             735..1829
    +                      /gene="MG001"
    +                      /codon_start=1
    +                      /product="DNA polymerase III, subunit beta (dnaN)"
    +                      /protein_id="AAC71217.1"
    +                      /translation="MNNVIISNNKIKPHHSYFLIEAKEKEINFYANNEYFSVKCNLNK
    +                      NIDILEQGSLIVKGKIFNDLINGIKEEIITIQEKDQTLLVKTKKTSINLNTINVNEFP
    +                      RIRFNEKNDLSEFNQFKINYSLLVKGIKKIFHSVSNNREISSKFNGVNFNGSNGKEIF
    +                      LEASDTYKLSVFEIKQETEPFDFILESNLLSFINSFNPEEDKSIVFYYRKDNKDSFST
    +                      EMLISMDNFMISYTSVNEKFPEVNYFFEFEPETKIVVQKNELKDALQRIQTLAQNERT
    +                      FLCDMQINSSELKIRAIVNNIGNSLEEISCLKFEGYKLNISFNPSSLLDHIESFESNE
    +                      INFDFQGNSKYFLITSKSEPELKQILVPSR"
    +       
    +

    6. Location Objects

    + There's quite a bit to this idea of location, so much that it + probably deserves its own HOWTO. Another way of saying this is that + if this topic interests you should take a closer look at the modules that + are concerned with both Location and Range. Together these modules + offer the user a number of useful methods to handle both + exact and "fuzzy" + locations, where the "start" and "end" of a particular + sub-sequence are precise or themselves have start and end + positions, or are + not precisely defined. You'll also find methods like + union() and + intersection() that act on pairs of + ranges. The table below is + meant to illustrate some of the modules' capabilities. +

    TypeExample
    EXACT(5..100)
    BEFORE(<5..100)
    AFTER(>5..100)
    WITHIN((5.10)..100)
    BETWEEN(99^100)
    UNCERTAIN(99.?100)

    Table 3. Location Examples

    + One type that might not be self-explanatory is 'WITHIN'. The + example means "starting somewhere between positions 5 and 10, + inclusive, and ending at 100". 'BETWEEN' is interesting - the + example means "between 99 and 100, exclusive". A biological example + of such a location would be a cleavage site, between two bases + or residues, but not including them. +

    + The UNCERTAIN attribute means what it says, not known. This + value is found in SwissProt features. +

    + In their simplest form the Location objects are used to get or + set start and end positions, getting the positions could + look like this: +

    +

    + 	# polyA_signal    1811..1815
    +         #                 /gene="NDP"
    + 	my $start = $feat_object->location->start;
    + 	my $end = $feat_object->location->end;
    +          
    +

    + By now you've figured out that the location() method returns + a Location object - this object has end() and + start() methods. +

    + Another way of describing a feature in Genbank involves + multiple start and end positions. These could be called "split" + locations, and a very common example is the join statement in the + CDS feature found in Genbank entries + (e.g. "join(45..122,233..267)"). This calls for a specialized + object, SplitLocation, which is a container for Location objects: +

    +

    +        for my $feature ($seqobj->top_SeqFeatures){
    +          if ( $feature->location->isa('Bio::Location::SplitLocationI')
    +                         && $feature->primary_tag eq 'CDS' )  {
    +            for my $location ( $feature->location->sub_Location ) {
    +              print $location->start . ".." . $location->end . "\n";
    +            }
    +          }
    +        }
    +       
    +

    7. The Species object

    + Some data in a Genbank file is accessible both + as a feature and through a specialized object. Taxonomic + information on a sequence, below, can be accessed + through a Species object as well as a value to the "organism" + tag, and you'll get more information from the + Bio::Species object. +

    +

    + SOURCE      human.
    +   ORGANISM  Homo sapiens
    +             Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
    +             Mammalia; Eutheria; Primates; Catarrhini; Hominidae; Homo.
    +       
    +

    + You can create this Species object and use its methods or you can + use the Perlish shorthand: +

    +

    + 	# legible and long
    + 	my $species_object = $seq_object->species;
    + 	my $species_string = $species_object->species;
    + 	
    +         # Perlish
    + 	my $species_string = $seq_object->species->species;
    + 	# either way, $species_string is "Homo sapiens"
    + 	
    +         # get all taxa from the ORGANISM section in an array
    +         my @classification = $seq_object->species->classification;
    + 	# "sapiens Homo Hominidae Catarrhini Primates Eutheria Mammalia
    + 	# Euteleostomi Vertebrata Craniata Chordata Metazoa Eukaryota"
    +       
    +

    + The reason that ORGANISM isn't treated only as a plain tag is that + there are a variety of things one would want to do with + taxonomic information, so returning just an array wouldn't + suffice. See the documentation on + Bio::Species + for more information on its methods. +

    8. Annotations from Genbank

    + There's still quite a bit of data left in our Genbank files that's + not in SeqFeature objects, and much of it is parsed into + Annotation objects. Annotations, if you recall, are those values + that are assigned to a sequence that have no specific location + on that sequence. + In order to get access to these objects we can get an + AnnotationCollection object, which is exactly what it sounds like: +

    +

    + 	my $io = Bio::SeqIO->new(-file => $file, -format => "genbank" );
    + 	my $seq_obj = $io->next_seq;
    + 	my $anno_collection = $seq_obj->annotation;
    +       
    +

    + Now we can access each Annotation in the AnnotationCollection + object. The Annotation objects can be retrieved in arrays: +

    +

    + 	for my $key ( $anno_collection->get_all_annotation_keys ) {
    + 	  my @annotations = $anno_collection->get_Annotations($key);
    + 	  for my $value ( @annotations ) {
    + 	    print "tagname : ", $value->tagname, "\n";
    + 	    # $value is an Bio::Annotation, and has an "as_text" method
    + 	    print "  annotation value: ", $value->as_text, "\n";
    + 	  }
    + 	}
    +       
    +

    + It turns out the value of $key, above, and + $value->tagname are the same. The code will print something like: +

    +

    + tagname : comment
    +   annotation value: Comment: REVIEWED REFSEQ: This record has been curated by
    + NCBI staff. The reference sequence was derived from X65882.1. Summary: NDP is the
    + genetic locus identified as harboring mutations that result in Norrie disease.
    + tagname : reference
    +   annotation value: Reference: The molecular biology of Norrie's disease
    + tagname : date_changed
    +   annotation value: Value: 31-OCT-2000
    +       
    +

    + If you only wanted a specific annotation, like COMMENT, you + could do: +

    +

    + 	my @annotations = $anno_collection->get_Annotations('comment');
    +       
    +

    + And if you'd simply like all of the Annotations, regardless of + key, you can do this: +

    +

    + 	my @annotations = $anno_collection->get_Annotations();
    +       
    +

    + The following is a list of some of the common Annotations, their + keys in Bioperl, and what they're derived from in Genbank files: +

    +

    Genbank TextKeyObject TypeNote
    COMMENTcommentComment 
    SEGMENTsegmentSimpleValuee.g. + "1 of 2"
    ORIGINoriginSimpleValuee.g. + "X Chromosome."
    REFERENCEreferenceReference 
    INVdate_changedSimpleValuee.g. + "08-JUL-1994"
    KEYWORDSkeywordSimpleValue 
    ACCESSIONsecondary_accessionSimpleValue2nd + of 2 accessions
    DBSOURCEdblinkDBLinkLink + to entry in a database

    Table 4. Genbank Annotations

    +

    + Some Annotation objects, like Reference, make use of a + hash_tree() method, which returns a hash + reference. This is a more thorough way to look at the actual + values than the as_text() + method used above. For example, as_text() + for a Reference object is only going to return the title of the + reference, whereas the keys of the hash from + hash_tree() will be "title", "authors", + "location", "medline", "start", and "end". +

    +

    + 	if ($value->tagname eq "reference") {
    + 	  my $hash_ref = $value->hash_tree;
    + 	  for my $key (keys %{$hash_ref}) {
    + 	    print $key,": ",$hash_ref->{$key},"\n";
    + 	  }
    + 	}
    +       
    +

    + Which yields: +

    +

    + authors: Meitinger,T., Meindl,A., Bork,P., Rost,B., Sander,C., Haasemann,M. and
    + Murken,J.
    + location: Nat. Genet. 5 (4), 376-380 (1993)
    + medline: 94129616
    + title: Molecular modelling of the Norrie disease protein predicts a cystine knot
    +  growth factor tertiary structure
    + end: 1846
    + start: 1
    +     
    +

    + Other Annotation objects, like SimpleValue, also have a + hash_tree() method but the hash isn't + populated with data and as_text() will suffice. +

    + The simplest bits of Genbank text, like KEYWORDS, end up in these + Annotation::SimpleValue objects, the COMMENT ends up in a + Bio::Annotation::Comment object, and + references are tranformed into + Bio::Annotation::Reference objects. Some of + these specialized objects will have specialized methods. Take the + Annotation::Reference object, for example: +

    +

    + 	if ($value->tagname eq "reference") {
    + 	  print "author: ",$value->authors(), "\n";
    + 	}
    +       
    +

    + There's also title(), + publisher(), + medline(), editors(), + database(), pubmed() + and a number of other methods. +

    9. Directly from the Sequence object

    + This is just a reminder that some of the "annotation" data + in your sequence + files can be accessed directly, without looking at SeqFeatures or + Annotations. For example, if the Sequence object in hand is + a Seq::RichSeq + object then here are some useful methods: +

    +

    MethodReturns
    get_secondary_accessionsarray
    keywordsarray
    get_datesarray
    seq_versionstring
    pidstring
    divisionstring

    Table 5. RichSeq methods

    +

    + These Bio::Seq::RichSeq objects are created + automatically when you use SeqIO to read from EMBL, GenBank, GAME, + Chado XML, TIGR XML, Locuslink, BSML, KEGG, Entrez Gene, and SwissProt sequence + files. However, it's not guaranteed that each of these + formats will supply data for all of the methods above. +

    10. Other sequence file formats

    + It is worth mentioning other sequence file formats. The table + below shows what sorts of objects, Annotation or + SeqFeature, you'll get when you parse other sequence formats + using Bio::SeqIO. +

    +

    FormatSeqIO nameSeqFeatureAnnotation
    Genbankemblyesyes
    EMBLgenbankyesyes
    GAMEgameyesno
    Chado XMLchadoxmlyesyes
    TIGR XMLtigryesyes
    Locuslinklocuslinknoyes
    BSMLbsmlyesyes
    KEGGkeggyesyes
    SwissProtswissyesyes
    Entrez Geneentrezgenenoyes

    Table 6. Formats, SeqFeature! s, and Annotations

    +

    + How does one find out what data is in which object in these + formats? In general the individual module documentation is not + going to provide all the answers, you'll need to do some + investigation yourself. Let's use an approach we used earlier + to dissect a Locuslink entry in a file, "148.ll". Here's the file: +

    +

    + LOCUSID: 148
    + LOCUS_CONFIRMED: yes
    + LOCUS_TYPE: gene with protein product, function known or inferred
    + ORGANISM: Homo sapiens
    + STATUS: REVIEWED
    + NM: NM_000680|4501960|na
    + NP: NP_000671|4501961
    + PROT: AAA93114|409029
    + ACCNUM: M11313|177869|na|na|na
    + TYPE: p
    + PROT: P35348|1168246
    + OFFICIAL_SYMBOL: ADRA1A
    + OFFICIAL_GENE_NAME: adrenergic, alpha-1A-, receptor
    + ALIAS_SYMBOL: ADRA1C
    + SUMMARY: Summary: Alpha-1-ARs are members of the GPCR superfamily. 
    + CHR: 8
    + STS: SGC35557|8|8124|na|seq_map|epcr
    + COMP: 10090|Adra1a|14|14  cM|11549|8|ADRA1A|ncbi_mgd
    + ALIAS_PROT: adrenergic, alpha-1C-, receptor
    + BUTTON: unigene.gif
    + LINK: http://www.ncbi.nlm.nih.gov/UniGene/clust.cgi?ORG=Hs&CID=52931
    + UNIGENE: Hs.52931
    + OMIM: 104221
    + MAP: 8p21-p11.2|RefSeq|C|
    + MAPLINK: default_human_gene|ADRA1A
    + GO: cellular component|integral to plasma membrane|P|GO:0005887|Proteome|8396931
    +       
    +

    + First collect all the annotations: +

    +

    + use Bio::SeqIO;
    + 
    + my @annotations = Bio::SeqIO->new(-file => "148.ll", -format => "locuslink")->
    + 	       next_seq->annotation->get_Annotations;
    +       
    +

    + And from this array of Annotations let's extract a hash containing + the as_text strings as keys and + the concatenated tagnames and object types as values: +

    +

    + 	my %tagname_type = map {$_->as_text,($_->tagname . " " . ref($_)) } 
    + 		  @annotations;
    +       
    +

    + The contents of the %tagname_type hash can be represented + in table form, below. +

    +

    as_text()tagname()ref()
    Direct database link to AAA93114 in database GenBankdblinkBio::Annotation::DBLink
    Value: + http://www.ncbi.nlm.nih.gov/UniGene/clust.cgi?ORG=Hs&CID=52931URL + Bio::Annotation::SimpleValue
    Value: 8CHRBio::Annotation::SimpleValue
    Direct database link to NP_000671 in database RefSeqdblinkBio::Annotation::DBLink
    Direct database link to SGC35558 in database STSdblinkBio::Annotation::DBLink
    Comment: Summary: Alpha-1-ARs are members of the GPCR superfamilycommentBio::Annotation::Comment
    Value: adrenergic, alpha-1A-, receptorOFFICIAL_GENE_NAMEBio::Annotation::SimpleValue
    Value: ADRA1CALIAS_SYMBOLBio::Annotation::SimpleValue
    Value: adrenergic, alpha -1A-, receptorALIAS_PROTBio::Annotation::SimpleValue
    Direct database link to NM_000680 in database RefSeqdblinkBio::Annotation::DBLink
    Value: ADRA1AOFFICIAL_SYMBOLBio::Annotation::SimpleValue
    Direct database link to SGC35557 in database STSdblinkBio::Annotation::DBLink
    Value: 8p21-p11.2MAPBio::Annotation::SimpleValue
    Direct database link to 104221 in database MIMdblinkBio::Annotation::DBLink
    Direct database link to D8S2033 in database STSdblinkBio::Annotation::DBLink
    Direct database link to none in database GenBankdblinkBio::Annotation::DBLink
    cellular component|integral to plasma membrane|GO:0005887cellular + componentBio::Annotation::OntologyTerm
    Direct database link to Hs.52931 in database UniGenedblinkBio::Annotation::DBLink
    Direct database link to M11313 in database GenBankdblinkBio::Annotation::DBLink
    Direct database link to P35348 in database GenBankdblinkBio::Annotation::DBLink

    Table 7. Locuslink Annotations!

    +

    + The output from the script shows that Locuslink Annotations + come in a variety of types, including DBLink, OntologyTerm, + Comment, and SimpleValue. In order to extract the exact value + you want, as opposed to the one returned by the + as_text method, + you'll need to find the desired method in the documentation for the + Annotation in question. +

    + If you were only interested in a certain type of Annotation + you could retrieve it efficently with something like this: +

    +

    +            @term_annotations = map { $_->isa("Bio::Ontology::TermI"); } 
    +                       $seq_object->get_Annotations();
    +       
    +

    + To completely parse these sequence formats you may also need to + use methods that don't have anything to do with Features or + Annotations per se. For example, the + display_id method returns + the LOCUS name of a Genbank entry or the ID from a SwissProt + file. The desc() method will return + the DEFINITION line of a Genbank file or the DE field in a + SwissProt file. Again, this is a situation where you may have to + examine a module, probably a SeqIO::* module, to find out more + of the details. +

    11. Building your own sequences

    + We've taken a look at getting data from SeqFeature and Annotation + objects, but what about creating these objects when you + already have the data? The + Bio::SeqFeature::Generic object is + probably the best SeqFeature object for this purpose, in part because of + its flexibility. Let's assume we have a sequence that has an + interesting sub-sequence, going from position 10 to 22 on the + "plus" or "1" strand. +

    +

    + 	use Bio::SeqFeature::Generic;
    + 
    + 	# create the feature with some data, evidence and a note
    + 	my $feat = new Bio::SeqFeature::Generic(-start  => 10,
    + 	                                        -end    => 22,
    + 					        -strand => 1,
    + 					        -tag    => {evidence => 'predicted',
    + 						            note   => 'TATA box' } );
    + 	
    +

    + The SeqFeature::Generic object offers the user a "tag system" for + addition of data that's not explicitly accounted for by its + methods, that's what the "-tag" is for, above. + Since the value passed to "-tag" could be any kind of scalar, + like a reference, it's clear that this approach should be able + handle just about any sort of data. +

    + You can build on the Feature as well. + Here we'll add some Annotations to the newly-created Feature: +

    +

    + 	$feat->add_Annotation("match1","PF000123 e-7.2");
    + 	$feat->add_Annotation("match2","PF002534 e-3.1");
    + 	
    + 	my @tags = $feat->get_all_tags;
    +         for my $tag (@tags) {
    +            for my $val ( $feat->get_tag_values($tag) ) {
    + 		   print $tag,":",$val,"\n";
    + 	   }
    +         }
    + 
    + # prints out:
    + # match2:PF002534 e-3.1
    + # match1:PF000123 e-7.2
    + # author:john
    + # note:TATA box
    + # start: 10 end: 22
    +       
    +

    +

    + +

    + Once the feature and its annotations are created it can be + associated with a sequence: +

    +

    + 	use Bio::Seq;
    + 
    + 	# create a simple Sequence object
    + 	my $seq_obj = Bio::Seq->new(-seq => "attcccccttataaaattttttttttgaggggtggg",
    +                                     -display_id => "BIO52" );
    + 	# then add the feature we've created to the sequence
    + 	$seq_obj->add_SeqFeature($feat);
    +       
    +

    + The add_SeqFeature() method will also accept an array + of SeqFeature objects. +

    + What if you wanted to add an Annotation to a sequence? + You'll create the Annotation object, add data to it, create an + AnnotationCollection object, add the Annotation to + the AnnotationCollection along with a tag, and then add the + AnnotationCollection to the sequence object: +

    +

    + 	use Bio::Annotation::Collection;
    + 	use Bio::Annotation::Comment;
    + 
    + 	my $comment = Bio::Annotation::Comment->new;
    + 	$comment->text("This looks like a good TATA box");
    + 	my $coll = new Bio::Annotation::Collection;
    + 	$coll->add_Annotation('comment',$comment);
    + 	$seq_obj->annotation($coll);
    +       
    +

    + Now let's examine what we've created by writing the contents of + $seq_obj to a Genbank file called "test.gb". + We should see a sequence, an Annotation associated with the + sequence, a sequence Feature, and Annotations associated with + the Feature: +

    +

    + 	use Bio::SeqIO;
    + 
    + 	my $io = Bio::SeqIO->new(-format => "genbank",
    + 	                         -file   => ">test.gb" );
    + 	$io->write_seq($seq_obj);
    +       
    +

    + Voila! +

    +

    + LOCUS       BIO52                    36 bp    dna     linear   UNK
    + DEFINITION
    + ACCESSION   unknown
    + COMMENT     This looks like a good TATA box
    + FEATURES             Location/Qualifiers
    +                      10..22
    +                      /match2="PF002534 e-3.1"
    +                      /match1="PF000123 e-7.2"
    +                      /author="john"
    +                      /note="TATA box"
    + BASE COUNT        7 a      5 c      8 g     16 t
    + ORIGIN
    +         1 attccccctt ataaaatttt ttttttgagg ggtggg
    + //	  
    +       
    +

    12. Additional Information

    + If you would like to learn about representing sequences and + features in graphical form take a look at the Graphics + HOWTO. The documentation for each of the individual + SeqFeature, Range, Location and + Annotation modules is also very useful, here's a list of them. + If you have questions + or comments that aren't addressed herein then write the + Bioperl community at bioperl-l@bioperl.org. +

    + SeqFeature Modules +
    SeqFeatureI.pm
    SeqFeature/AnnotationAdaptor.pm
    SeqFeature/FeaturePair.pm
    SeqFeature/Similarity.pm
    SeqFeature/Generic.pm
    SeqFeature/SimilarityPair.pm
    SeqFeature/PositionProxy.pm
    SeqFeature/Computation.pm
    SeqFeature/Primer.pm
    SeqFeature/Collection.pm
    SeqFeature/CollectionI.pm
    SeqFeature/SiRNA/Pair.pm
    SeqFeature/SiRNA/Oligo.pm
    SeqFeature/Gene/GeneStructure.pm
    SeqFeature/Gene/NC_Feature.pm
    SeqFeature/Gene/Transcript.pm
    SeqFeature/Gene! /Exon.pm
    SeqFeature/Gene/GeneStructureI.pm
    SeqFeature/Gene/Poly_A_site.pm
    SeqFeature/Gene/TranscriptI.pm
    SeqFeature/Gene/ExonI.pm
    SeqFeature/Gene/Intron.pm
    SeqFeature/Gene/Promoter.pm
    SeqFeature/Gene/UTR.pm
    SeqFeature/Tools/Unflattener.pm
    SeqFeature/Tools/TypeMapper.pm
    +

    + Annotation Modules +
    AnnotationI.pm
    AnnotatableI.pm
    AnnotationCollectionI.pm
    Annotation/AnnotationFactory.pm
    Annotation/Comment.pm
    Annotation/Reference.pm
    Annotation/TypeManager.pm
    Annotation/DBLink.pm
    Annotation/SimpleValue.pm
    Annotation/Collection.pm
    Annotation/OntologyTerm.pm
    Annotation/StructuredValue.pm
    +

    + Location Modules +
    LocationI.pm
    LocatableSeq.pm
    Location/Atomic.pm
    Location/AvWithinCoordPolicy.pm
    Location/CoordinatePolicyI.pm
    Location/Fuzzy.pm
    Location/FuzzyLocationI.pm
    Location/NarrowestCoordPolicy.pm
    Location/Simple.pm
    Location/Split.pm
    Location/SplitLocationI.pm
    Location/WidestCoordPolicy.pm
    +

    + Range Modules +
    RangeI.pm
    Range.pm
    +

    13. Acknowledgements

    + Thanks to Steven Lembark for comments and neat code discussions. +

    + BioPerl DocBook (BioPerl) +
    \ No newline at end of file From bugzilla-daemon at portal.open-bio.org Wed Dec 7 13:16:41 2005 From: bugzilla-daemon at portal.open-bio.org (bugzilla-daemon@portal.open-bio.org) Date: Wed Dec 7 13:58:09 2005 Subject: [Bioperl-guts-l] [Bug 1915] Tranditional bootstrap in newick format tree not accesible Message-ID: <200512071816.jB7IGf8A020278@portal.open-bio.org> http://bugzilla.open-bio.org/show_bug.cgi?id=1915 ------- Comment #2 from jason@open-bio.org 2005-12-07 13:16 ------- The bootstrap style is definitely ignored for reading in trees, but I try and guess if molphy style bootstraps exist and move it to the boostrap value so that branch lengths are all proper numeric values. But I can't tell if you want the internal node id to be a bootstrap or an ID so I assume it should be an ID. You can move it to the bootstrap with this code. for my $node ( grep { ! $_->is_Leaf } $tree->get_nodes ) { $node->bootstrap($node->id); $node->id(undef); } ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From allenday at pub.open-bio.org Wed Dec 7 21:29:44 2005 From: allenday at pub.open-bio.org (Allen Day) Date: Wed Dec 7 21:23:43 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB/Expression - New directory Message-ID: <200512080229.jB82TiVL030123@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB/Expression In directory pub.open-bio.org:/tmp/cvs-serv30107/Expression Log Message: Directory /home/repository/bioperl/bioperl-live/Bio/DB/Expression added to the repository From allenday at pub.open-bio.org Wed Dec 7 21:30:37 2005 From: allenday at pub.open-bio.org (Allen Day) Date: Wed Dec 7 21:25:10 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/Expression Contact.pm, NONE, 1.1 DataSet.pm, NONE, 1.1 Platform.pm, NONE, 1.1 Sample.pm, NONE, 1.1 Message-ID: <200512080230.jB82UbVL030198@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/Expression In directory pub.open-bio.org:/tmp/cvs-serv30161/Expression Added Files: Contact.pm DataSet.pm Platform.pm Sample.pm Log Message: adding support to screenscrape ncbi GEO --- NEW FILE: Sample.pm --- # $Id: Sample.pm,v 1.1 2005/12/08 02:30:35 allenday Exp $ # # BioPerl module for Bio::Expression::Sample # # Cared for by Allen Day # # Copyright Allen Day # # You may distribute this module under the same terms as perl itself # POD documentation - main docs before the code =head1 NAME Bio::Expression::Sample - 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@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 - Allen Day Email allenday@ucla.edu 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::Expression::Sample; use strict; use base qw(Bio::Root::Root); =head2 new() Usage : my $obj = new Bio::Expression::Sample(); Function: Builds a new Bio::Expression::Sample object Returns : an instance of Bio::Expression::Sample Args : =cut sub new { my($class,@args) = @_; my $self = $class->SUPER::new(@args); $self->_initialize(@args); return $self; } =head2 _initialize() =over =item Usage $obj->_initialize(%arg); =item Function Internal method to initialize a new Bio::Expression::Platform object =item Returns true on success =item Arguments Arguments passed to L =back =cut sub _initialize { my($self,%arg) = @_; foreach my $arg (keys %arg){ my $marg = $arg; $marg =~ s/^-//; $self->$marg($arg{$arg}) if $self->can($marg); } return 1; } =head2 accession() Usage : $obj->accession($newval) Function: Example : Returns : value of accession (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub accession { my($self,$val) = @_; $self->{'accession'} = $val if defined($val); return $self->{'accession'}; } =head2 dataset() Usage : $obj->dataset($newval) Function: Example : Returns : value of dataset (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub dataset { my($self,$val) = @_; $self->{'dataset'} = $val if defined($val); return $self->{'dataset'}; } =head2 db() Usage : $obj->db($newval) Function: Example : Returns : value of db (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub db { my($self,$val) = @_; $self->{'db'} = $val if defined($val); return $self->{'db'}; } =head2 name() Usage : $obj->name($newval) Function: Example : Returns : value of name (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub name { my($self,$val) = @_; $self->_load(); $self->{'name'} = $val if defined($val); return $self->{'name'}; } =head2 source_name() Usage : $obj->source_name($newval) Function: Example : Returns : value of source_name (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub source_name { my($self,$val) = @_; $self->_load(); $self->{'source_name'} = $val if defined($val); return $self->{'source_name'}; } =head2 description() Usage : $obj->description($newval) Function: Example : Returns : value of description (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub description { my($self,$val) = @_; $self->_load(); $self->{'description'} = $val if defined($val); return $self->{'description'}; } =head2 treatment_description() Usage : $obj->treatment_description($newval) Function: Example : Returns : value of treatment_description (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub treatment_description { my($self,$val) = @_; $self->_load(); $self->{'treatment_description'} = $val if defined($val); return $self->{'treatment_description'}; } sub _load { my $self = shift; if ( $self->{'_load'} ) { return 1; } $self->{'_load'}++; $self->db->fill_sample( $self ); return $self->{'_load'}; } 1; --- NEW FILE: DataSet.pm --- # $Id: DataSet.pm,v 1.1 2005/12/08 02:30:35 allenday Exp $ # # BioPerl module for Bio::Expression::DataSet # # Cared for by Allen Day # # Copyright Allen Day # # You may distribute this module under the same terms as perl itself # POD documentation - main docs before the code =head1 NAME Bio::Expression::DataSet - 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@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 - Allen Day Email allenday@ucla.edu 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::Expression::DataSet; use strict; use base qw(Bio::Root::Root); =head2 new() Usage : my $obj = new Bio::Expression::DataSet(); Function: Builds a new Bio::Expression::DataSet object Returns : an instance of Bio::Expression::DataSet Args : =cut sub new { my($class,@args) = @_; my $self = $class->SUPER::new(@args); $self->_initialize(@args); return $self; } =head2 _initialize() =over =item Usage $obj->_initialize(%arg); =item Function Internal method to initialize a new Bio::Expression::Platform object =item Returns true on success =item Arguments Arguments passed to L =back =cut sub _initialize { my($self,%arg) = @_; foreach my $arg (keys %arg){ my $marg = $arg; $marg =~ s/^-//; $self->$marg($arg{$arg}) if $self->can($marg); } return 1; } =head2 accession() Usage : $obj->accession($newval) Function: Example : Returns : value of accession (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub accession { my($self,$val) = @_; $self->{'accession'} = $val if defined($val); return $self->{'accession'}; } =head2 name() Usage : Function: Example : Returns : Args : =cut sub name { my($self,$val) = @_; $self->_load(); $self->{'db'} = $val if defined($val); return $self->{'db'}; } =head2 db() Usage : $obj->db($newval) Function: Example : Returns : value of db (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub db { my($self,$val) = @_; $self->{'db'} = $val if defined($val); return $self->{'db'}; } =head2 pubmed_id() Usage : $obj->pubmed_id($newval) Function: Example : Returns : value of pubmed_id (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub pubmed_id { my($self,$val) = @_; $self->_load(); $self->{'pubmed_id'} = $val if defined($val); return $self->{'pubmed_id'}; } =head2 web_link() Usage : $obj->web_link($newval) Function: Example : Returns : value of web_link (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub web_link { my($self,$val) = @_; $self->_load(); $self->{'web_link'} = $val if defined($val); return $self->{'web_link'}; } =head2 contact() Usage : $obj->contact($newval) Function: Example : Returns : value of contact (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub contact { my($self,$val) = @_; $self->_load(); $self->{'contact'} = $val if defined($val); return $self->{'contact'}; } =head2 samples() Usage : $obj->samples($newval) Function: Example : Returns : value of samples (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub samples { my($self,$val) = @_; $self->_load(); $self->{'samples'} = $val if defined($val); return $self->{'samples'}; } =head2 description() Usage : $obj->description($newval) Function: Example : Returns : value of description (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub description { my($self,$val) = @_; $self->_load(); $self->{'description'} = $val if defined($val); return $self->{'description'}; } =head2 design() Usage : $obj->design($newval) Function: Example : Returns : value of design (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub design { my($self,$val) = @_; $self->_load(); $self->{'design'} = $val if defined($val); return $self->{'design'}; } =head2 design_description() Usage : $obj->design_description($newval) Function: Example : Returns : value of design_description (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub design_description { my($self,$val) = @_; $self->_load(); $self->{'design_description'} = $val if defined($val); return $self->{'design_description'}; } =head2 get_samples() Usage : Function: Example : Returns : Args : =cut sub get_samples { my ($self,@args) = @_; if ( $self->samples() ) { return @{ $self->samples() }; } else { return (); } } sub _load { my $self = shift; if ( $self->{'_load'} ) { return 1; } $self->{'_load'}++; $self->db->fill_dataset( $self ); return $self->{'_load'}; } 1; --- NEW FILE: Platform.pm --- # $Id: Platform.pm,v 1.1 2005/12/08 02:30:35 allenday Exp $ # # BioPerl module for Bio::Expression::Platform # # Cared for by Allen Day # # Copyright Allen Day # # You may distribute this module under the same terms as perl itself # POD documentation - main docs before the code =head1 NAME Bio::Expression::Platform - 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@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 - Allen Day Email allenday@ucla.edu 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::Expression::Platform; use strict; use base qw(Bio::Root::Root); =head2 new() Usage : my $obj = new Bio::Expression::Platform(); Function: Builds a new Bio::Expression::Platform object Returns : an instance of Bio::Expression::Platform Args : =cut sub new { my($class,@args) = @_; my $self = $class->SUPER::new(@args); $self->_initialize(@args); return $self; } =head2 _initialize() =over =item Usage $obj->_initialize(%arg); =item Function Internal method to initialize a new Bio::Expression::Platform object =item Returns true on success =item Arguments Arguments passed to L =back =cut sub _initialize { my($self,%arg) = @_; foreach my $arg (keys %arg){ my $marg = $arg; $marg =~ s/^-//; $self->$marg($arg{$arg}) if $self->can($marg); } return 1; } =head2 get_datasets() Usage : Function: Example : Returns : Args : =cut sub get_datasets { my ($self,@args) = @_; my $db = $self->db(); my @datasets = $db->get_datasets( $self ); return @datasets; } =head2 accession() Usage : $obj->accession($newval) Function: Example : Returns : value of accession (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub accession { my($self,$val) = @_; $self->{'accession'} = $val if defined($val); return $self->{'accession'}; } =head2 name() Usage : $obj->name($newval) Function: Example : Returns : value of name (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub name { my($self,$val) = @_; $self->{'name'} = $val if defined($val); return $self->{'name'}; } =head2 taxon() Usage : $obj->taxon($newval) Function: Example : Returns : value of taxon (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub taxon { my($self,$val) = @_; $self->{'taxon'} = $val if defined($val); return $self->{'taxon'}; } =head2 contact() Usage : $obj->contact($newval) Function: Example : Returns : a Bio::Expression::Contact object Args : on set, new value (a scalar or undef, optional) =cut sub contact { my($self,$val) = @_; $self->{'contact'} = $val if defined($val); return $self->{'contact'}; } =head2 db() Usage : $obj->db($newval) Function: Example : Returns : value of db (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub db { my($self,$val) = @_; $self->{'db'} = $val if defined($val); return $self->{'db'}; } 1; --- NEW FILE: Contact.pm --- # $Id: Contact.pm,v 1.1 2005/12/08 02:30:35 allenday Exp $ # # BioPerl module for Bio::Expression::Contact # # Cared for by Allen Day # # Copyright Allen Day # # You may distribute this module under the same terms as perl itself # POD documentation - main docs before the code =head1 NAME Bio::Expression::Contact - 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@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 - Allen Day Email allenday@ucla.edu 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::Expression::Contact; use strict; use base qw(Bio::Root::Root); =head2 new() Usage : my $obj = new Bio::Expression::Contact(); Function: Builds a new Bio::Expression::Contact object Returns : an instance of Bio::Expression::Contact Args : =cut sub new { my($class,@args) = @_; my $self = $class->SUPER::new(@args); return $self; } =head2 _initialize() =over =item Usage $obj->_initialize(%arg); =item Function Internal method to initialize a new Bio::Expression::Platform object =item Returns true on success =item Arguments Arguments passed to L =back =cut sub _initialize { my($self,%arg) = @_; foreach my $arg (keys %arg){ my $marg = $arg; $marg =~ s/^-//; $self->$marg($arg{$arg}) if $self->can($marg); } return 1; } =head2 source() Usage : $obj->source($newval) Function: Example : Returns : value of source (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub source { my($self,$val) = @_; $self->{'source'} = $val if defined($val); return $self->{'source'}; } =head2 accession() Usage : $obj->accession($newval) Function: Example : Returns : value of accession (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub accession { my($self,$val) = @_; $self->{'accession'} = $val if defined($val); return $self->{'accession'}; } =head2 db() Usage : $obj->db($newval) Function: Example : Returns : value of db (a scalar) Args : on set, new value (a scalar or undef, optional) =cut sub db { my($self,$val) = @_; $self->{'db'} = $val if defined($val); return $self->{'db'}; } 1; From allenday at pub.open-bio.org Wed Dec 7 21:30:37 2005 From: allenday at pub.open-bio.org (Allen Day) Date: Wed Dec 7 21:26:06 2005 Subject: [Bioperl-guts-l] bioperl-live/Bio/DB Expression.pm,NONE,1.1 Message-ID: <200512080230.jB82UbVL030192@pub.open-bio.org> Update of /home/repository/bioperl/bioperl-live/Bio/DB In directory pub.open-bio.org:/tmp/cvs-serv30161/DB Added Files: Expression.pm Log Message: adding support to screenscrape ncbi GEO --- NEW FILE: Expression.pm --- # $Id: Expression.pm,v 1.1 2005/12/08 02:30:35 allenday Exp $ # # BioPerl module for Bio::DB::Expression # # Cared for by Allen Day # # Copyright Allen Day # # You may distribute this module under the same terms as perl itself # POD documentation - main docs before the code =head1 NAME Bio::DB::Expression - DESCRIPTION of Object =head1 SYNOPSIS use Bio::DB::Expression; my $db = Bio::DB::Expression->new( -source => 'geo' ); my @platforms = $db->get_platforms(); foreach my $platform ( @platforms ) { my @datasets = $platform->get_datasets(); foreach my $dataset ( @datasets ) { my @samples = $dataset->get_samples(); foreach my $sample ( @samples ) { #... } } } =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@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 - Allen Day Email allenday@ucla.edu 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::DB::Expression; use strict; use base qw(Bio::Root::HTTPget Bio::Root::Root); use Bio::Root::HTTPget; our $DefaultSource = 'geo'; =head2 new() Usage : my $obj = new Bio::DB::Expression(); Function: Builds a new Bio::DB::Expression object Returns : an instance of Bio::DB::Expression Args : =cut sub new { my($class,@args) = @_; if( $class =~ /Bio::DB::Expression::(\S+)/ ) { my ($self) = $class->SUPER::new(@args); $self->_initialize(@args); return $self; } else { my %param = @args; @param{ map { lc $_ } keys %param } = values %param; # lowercase keys my $source = $param{'-source'} || $DefaultSource; $source = "\L$source"; # normalize capitalization to lower case # normalize capitalization return undef unless( $class->_load_expression_module($source) ); return "Bio::DB::Expression::$source"->new(@args); } } =head2 get_platforms() Usage : Function: Example : Returns : a list of Bio::Expression::Platform objects Args : =cut sub get_platforms { my ($self,@args) = @_; $self->throw_not_implemented(); } =head2 get_samples() Usage : Function: Example : Returns : a list of Bio::Expression::Sample objects Args : =cut sub get_samples { my ($self,@args) = @_; $self->throw_not_implemented(); } =head2 get_contacts() Usage : Function: Example : Returns : a list of Bio::Expression::Contact objects Args : =cut sub get_contacts { my ($self,@args) = @_; $self->throw_not_implemented(); } =head2 get_datasets() Usage : Function: Example : Returns : a list of Bio::Expression::DataSet objects Args : =cut sub get_datasets { my ($self,@args) = @_; $self->throw_not_implemented(); } =head2 _load_expression_module Title : _load_expression_module Usage : *INTERNAL Bio::DB::Expression stuff* Function: Loads up (like use) a module at run time on demand Example : Returns : Args : =cut sub _load_expression_module { my ($self, $source) = @_; my $module = "Bio::DB::Expression::" . $source; my $ok; eval { $ok = $self->_load_module($module) }; if ( $@ ) { print STDERR $@; print STDERR < Update of /home/repository/bioperl/bioperl-live/Bio/DB/Expression In directory pub.open-bio.org:/tmp/cvs-serv30161/DB/Expression Added Files: geo.pm Log Message: adding support to screenscrape ncbi GEO --- NEW FILE: geo.pm --- =head1 NAME Bio::DB::Expression::geo - DESCRIPTION of Class =head1 SYNOPSIS Give standard usage here =head1 DESCRIPTION Describe the object here =head1 FEEDBACK =head2 Mailing Lists =head2 Reporting Bugs =head1 AUTHOR Allen Day Eallenday@ucla.eduE =head1 SEE ALSO =head1 COPYRIGHT AND LICENSE FIXME =head1 APPENDIX The rest of the documentation details each of the object methods. Internal methods are usually preceded with a '_'. Methods are in alphabetical order for the most part. =cut # Let the code begin... package Bio::DB::Expression::geo; use strict; use base qw(Bio::DB::Expression); our $VERSION = '0.01'; use Bio::DB::Taxonomy; use Bio::Expression::Contact; use Bio::Expression::DataSet; use Bio::Expression::Platform; use Bio::Expression::Sample; use constant URL_PLATFORMS => 'http://www.ncbi.nlm.nih.gov/geo/query/browse.cgi?pgsize=100000&mode=platforms&submitter=-1&filteron=0&filtervalue=-1&private=1&sorton=pub_date&sortdir=1&start=1'; use constant URL_PLATFORM => 'http://www.ncbi.nlm.nih.gov/projects/geo/query/acc.cgi?form=text&view=full&acc='; use constant URL_DATASET => 'http://www.ncbi.nlm.nih.gov/projects/geo/query/acc.cgi?form=text&view=full&acc='; use constant URL_SAMPLE => 'http://www.ncbi.nlm.nih.gov/projects/geo/query/acc.cgi?form=text&view=full&acc='; =head2 _initialize() =over =item Usage $obj->_initialize(%arg); =item Function Internal method to initialize a new Bio::DB::Expression::geo object =item Returns true on success =item Arguments Arguments passed to L =back =cut sub _initialize { my($self,%arg) = @_; foreach my $arg (keys %arg){ my $marg = $arg; $marg =~ s/^-//; $self->$marg($arg{$arg}) if $self->can($marg); } $self->taxdb( Bio::DB::Taxonomy->new(-source => 'entrez') ); return 1; } =head2 get_platforms() Usage : Function: Example : Returns : a list of Bio::Expression::Platform objects Args : =cut sub get_platforms { my ($self,@args) = @_; my $doc = $self->_get_url( URL_PLATFORMS ); $doc =~ s!^.+?>Release date<.+?
    !$1!gs; my @platforms = (); my @records = split m!