[Biopython-dev] [Bug 2838] If a SeqRecord containing Genbank information is read from BioSQL, it cannot be written to another BioSQL database

bugzilla-daemon at portal.open-bio.org bugzilla-daemon at portal.open-bio.org
Fri May 22 21:16:54 EDT 2009


http://bugzilla.open-bio.org/show_bug.cgi?id=2838





------- Comment #3 from david.wyllie at ndm.ox.ac.uk  2009-05-22 21:16 EST -------
Thank you!

Unfortunately I'm not sure it's fixed, or maybe there is another problem:

I have uninstalled the BioPython package using Synaptic package manager
(previously I was using 1.49), downloaded from cvs checkout.

Thanks for your message
http://osdir.com/ml/python.bio.general/2008-07/msg00035.html
I can confirm that the default ubuntu 9.0 install lacks the python-dev package,
with the necessary Python.h headers. 

After python-dev is installed, 
build is OK, 
Tests pass
running test
test_Ace ... ok
test_AlignIO ... ok
test_BioSQL ... /var/lib/python-support/python2.6/MySQLdb/__init__.py:34:
DeprecationWarning: the sets module is deprecated
  from sets import ImmutableSet
/home/dwyllie/biopython/build/lib.linux-x86_64-2.6/BioSQL/BioSeqDatabase.py:144:
Warning: 'TYPE=storage_engine' is deprecated; use 'ENGINE=storage_engine'
instead
  self.adaptor.cursor.execute(sql_line)
ok
test_BioSQL_SeqIO ... ok
test_CAPS ... ok
test_Clustalw ... ok
..

and install is OK too.  This is all new to me but it seems to work OK.

I have checked the source code and I think your modification is correctly in
place

I think I have your patch in place:

  def _load_bioentry_date(self, record, bioentry_id):
        """Add the effective date of the entry into the database.

        record - a SeqRecord object with an annotated date
        bioentry_id - corresponding database identifier
        """
        # dates are GenBank style, like:
        # 14-SEP-2000
        date = record.annotations.get("date",
                                      strftime("%d-%b-%Y", gmtime()).upper())
        if isinstance(date, list) : date = date[0]
        annotation_tags_id = self._get_ontology_id("Annotation Tags")
        date_id = self._get_term_id("date_changed", annotation_tags_id)
        sql = r"INSERT INTO bioentry_qualifier_value" \
              r" (bioentry_id, term_id, value, rank)" \
              r" VALUES (%s, %s, %s, 1)" 
        self.adaptor.execute(sql, (bioentry_id, date_id, date))


Now when I re-run dbtestcase.py (attached previously) I get a different error
message.

dwyllie at dwyllie:~/programs/CheckleyProject/src$ python dbtestcase.py
OK, going to recover record 28804743  from genbank....
Record loaded looks like this:
ID: AB098727.1
Name: AB098727
Description: Ceratodon purpureus chloroplast rps11, petD genes for ribosomal
protein S11, cytochromoe b/f complex subunit IV, partial cds.
Number of features: 5
/sequence_version=1
/source=chloroplast Ceratodon purpureus
/taxonomy=['Eukaryota', 'Viridiplantae', 'Streptophyta', 'Embryophyta',
'Bryophyta', 'Moss Superclass V', 'Bryopsida', 'Dicranidae', 'Dicranales',
'Ditrichaceae', 'Ceratodon']
/keywords=['']
/references=[<Bio.SeqFeature.Reference object at 0x26e7a10>,
<Bio.SeqFeature.Reference object at 0x26e7a90>, <Bio.SeqFeature.Reference
object at 0x26e7b50>, <Bio.SeqFeature.Reference object at 0x26e7bd0>]
/accessions=['AB098727']
/data_file_division=PLN
/date=26-MAY-2005
/organism=Ceratodon purpureus
/gi=28804743
Seq('AATTCGATTTTTTGTTCGTGATGTAACTCCTATGCCTCATAATGGGTGTAGACC...ATA',
IUPACAmbiguousDNA())
========================================================================
Load from Entrez completed, records= 1
Here is the loaded record:
========================================================================
ID: AB098727.1
Name: AB098727
Description: Ceratodon purpureus chloroplast rps11, petD genes for ribosomal
protein S11, cytochromoe b/f complex subunit IV, partial cds.
Number of features: 5
/sequence_version=1
/source=chloroplast Ceratodon purpureus
/taxonomy=['Eukaryota', 'Viridiplantae', 'Streptophyta', 'Embryophyta',
'Bryophyta', 'Moss Superclass V', 'Bryopsida', 'Dicranidae', 'Dicranales',
'Ditrichaceae', 'Ceratodon']
/keywords=['']
/references=[<Bio.SeqFeature.Reference object at 0x26e7a10>,
<Bio.SeqFeature.Reference object at 0x26e7a90>, <Bio.SeqFeature.Reference
object at 0x26e7b50>, <Bio.SeqFeature.Reference object at 0x26e7bd0>]
/accessions=['AB098727']
/data_file_division=PLN
/date=26-MAY-2005
/organism=Ceratodon purpureus
/gi=28804743
Seq('AATTCGATTTTTTGTTCGTGATGTAACTCCTATGCCTCATAATGGGTGTAGACC...ATA',
IUPACAmbiguousDNA())
========================================================================
Now loading these records into a BioSQL database One.
/var/lib/python-support/python2.6/MySQLdb/__init__.py:34: DeprecationWarning:
the sets module is deprecated
  from sets import ImmutableSet
Creating a new database  One
========================================================================
Load from database One completed, records= 1
========================================================================
Here is the record recovered from database One:
Traceback (most recent call last):
  File "dbtestcase.py", line 165, in <module>
    from dbtestcase import AuthDetails
  File "/home/dwyllie/programs/CheckleyProject/src/dbtestcase.py", line 182, in
<module>
    DemonstrateProblem(problemgi,ad)
  File "/home/dwyllie/programs/CheckleyProject/src/dbtestcase.py", line 138, in
DemonstrateProblem
    print recordrecovered
  File "/usr/local/lib/python2.6/dist-packages/Bio/SeqRecord.py", line 489, in
__str__
    if self.letter_annotations :
  File "/usr/local/lib/python2.6/dist-packages/Bio/SeqRecord.py", line 165, in
<lambda>
    fget=lambda self : self._per_letter_annotations,
AttributeError: 'DBSeqRecord' object has no attribute '_per_letter_annotations'
dwyllie at dwyllie:~/programs/CheckleyProject/src$ 


Have I failed to install something?
Unfortunately, I wasn't running off CVS before your change.

Best wishes
d


-- 
Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


More information about the Biopython-dev mailing list