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.
|