BioPHP: PHP for Biocomputing

  Last updated: June 11, 2003 (Wednesday)

  Known Bugs in Version 1.0 top

Below is a list of known bugs in BioPHP 1.0. A status of FIXED means the bug has been fixed and will be part of the next release (BioPHP 1.1). A status of OPEN means the bug has not yet been resolved. Some of the bugs listed are actually limitations in the capabilities of certain modules/functions.

STATUS MODULE (FILE) DESCRIPTION
Fixed GenBank Parser
(seqdb.inc.php)
Parser cannot parse multi-line SOURCE, ORGANISM, and KEYWORD entries. This means data like the full taxonomic classification of the source organism is not parsed.
Fixed GenBank Parser
(seqdb.inc.php)
MOLTYPE attribute has trailing spaces (e.g. "DNA   ").
Fixed GenBank Parser
(seqdb.inc.php)
DEFINITION attribute has trailing spaces.
Fixed GenBank Parser
(seqdb.inc.php)
Entries in the KEYWORDS attribute contain leading/trailing spaces.
Open GenBank Parser
(seqdb.inc.php)
Parser does not yet support special GenBank sequence operators such as JOIN, COMPLEMENT, ORDER, etc.
Open GenBank Parser
(seqdb.inc.php)
The design of the Parser and the FEATURES attribute of the SEQ object assumes that a feature key (e.g. SOURCE) only appears once in a GenBank record. This is an assumption that needs to be tested vs. GenBank guidelines.
Open GenBank Parser
(seqdb.inc.php)
The ENTRY NAME data element (the term found immediately after the LOCUS label) was assigned to the ID attribute, which is normally reserved for unique ids. The problem can be resolved by creating an ENTRY_NAME attribute in the SEQ class. The ID attribute may be retained and assigned the PRIMARY ACCESSION or it may be dropped altogether (because there is already an ACCESSION attribute that stores the PRIMARY ACCESSION data element).
Fixed

line2r() function
(seqdb.inc.php)

The function that loads lines from a bio datafile to an array, named line2r(), recognizes only '//' as end-of-record marker.
Fixed (seqdb.inc.php) Parsers do not accept variables as input, only data files.
Open bsrch_tabfile()
(seqdb.inc.php)
The bsrch_tabfile() function seems to fail on "boundary situations", e.g. there is only one entry in the *.idx file.
Fixed Swissprot Parser
(seqdb.inc.php)
Parser does not parse CC (Comment) entries.
Fixed Swissprot Parser
(seqdb.inc.php)
MOLTYPE attribute has trailing spaces (e.g. "DNA   ").
Fixed Swissprot Parser
(seqdb.inc.php)

Dates for "Last sequence update" and "Last Annotation Update" are not parsed unless they are labeled in uppercase. Example:

Will be parsed: DT 21-JUL-1986 (REL. 02, LAST SEQUENCE UPDATE)
Will not be parsed: DT 21-JUL-1986 (REL. 02, Last sequence update)

Open Swissprot Parser
(seqdb.inc.php)
Parser cannot process multi-line RM entries, only single-line entries. This is due to absence of clear guidelines on the RM data field.
Fixed Swissprot Parser
(seqdb.inc.php)
Parser parses DR entry but "forgets" to store them in the proper SEQ object attribute.
Open class Seq (seq.inc.php) SEQ object's MOLTYPE attribute is not updated whenever user assigns a value to its SEQUENCE attribute. For instance, when user sets SEQUENCE to "ATGC", MOLTYPE should be automatically set to "DNA", and when user sets it to "GAVLIFYW", the MOLTYPE should be automatically set to "PRT" or "PROTEIN".
Fixed Seq::complement()
(seq.inc.php)
The complement() method does not check the $moltype parameter. Also, it cannot handle a sequence containing the unknown nucleic acid (symbol X).
Fixed Seq::subseq()
(seq.inc.php)
The MOLTYPE of a new sequence created using subseq() method should automatically inherit the MOLTYPE of the parent sequence. This is not implemented in ver 1.0.
Fixed Seq::translate()
(seq.inc.php)
The translate() method always translates "leftover nucleic acids" (e.g. "GA", "C") found at the end of a DNA sequence into the unknown codon (XXX). User has no control over this.
Fixed Seq::translate()
(seq.inc.php)
The translate() method will translate the input sequence from start to end despite the presence of STOP codons. User has no control over this.
Fixed Seq::chemgrp()
(seq.inc.php)
The chemgrp() method does not use the SEQUENCE attribute as its "implied argument" if an amino acid sequence is not explicity passed.
Fixed Seq::charge()
(seq.inc.php)
The charge() method does not use the SEQUENCE attribute as its "implied argument" if an amino acid sequence is not explicity passed.
Fixed Seq::is_palindrome()
(seq.inc.php)

is_palindrome() function calls revcomp() method using the -> syntax which assumes that a Seq object has been instantiated. The :: syntax should be used so that users can invoke the is_palindrome() method without creating a new SEQ object.

Wrong: seq->revcomp($sequence_string)  // will generate an error w/o a SEQ object
Correct: seq::revcomp($sequence_string)

Open

All modules

There are other functions that still use the -> syntax when a :: is more appropriate.

 


Copyright © 2003 by Sergio Gregorio, Jr.
All rights reserved.