openvax / pyensembl

Python interface to access reference genome features (such as genes, transcripts, and exons) from Ensembl
Apache License 2.0
374 stars 65 forks source link

Loading the NCBI36 Ensembl gives an OperationalError #90

Open arahuja opened 9 years ago

arahuja commented 9 years ago

Anyone seen this before? `AttributeError: 'OperationalError' object has no attribute 'message'

INFO:root:Running sqlite query: "CREATE TABLE _datacache_metadata (version INT)"
INFO:root:Running sqlite query: "INSERT INTO _datacache_metadata VALUES (2)"

---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
/Users/arahuja/src/hammerlab/pyensembl/pyensembl/database.py in run_sql_query(self, sql, required, query_params)
    375         try:
--> 376             cursor = self.connection.execute(sql, query_params)
    377         except sqlite3.OperationalError as e:

OperationalError: no such column: transcript_biotype

During handling of the above exception, another exception occurred:

AttributeError                            Traceback (most recent call last)
<ipython-input-30-bcfa1b1c5957> in <module>()
      2 for patient_id in PATIENTS:
      3     primary_variants = PRIMARY_PATIENT_VARIANTS[patient_id]
----> 4     primary_effects = primary_variants.effects()
      5     recur_variants = RECUR_PATIENT_VARIANTS[patient_id]
      6     row = {'patient_id': patient_id,

/Users/arahuja/src/hammerlab/varcode/varcode/common.py in wrapped_fn(*args, **kwargs)
     43         key = (args, tuple(sorted(kwargs.items())))
     44         if key not in memoized_values:
---> 45             memoized_values[key] = fn(*args, **kwargs)
     46         return memoized_values[key]
     47 

/Users/arahuja/src/hammerlab/varcode/varcode/variant_collection.py in effects(self, raise_on_error)
     85         return EffectCollection([
     86             effect
---> 87             for variant in self
     88             for effect in variant.effects(raise_on_error=raise_on_error)
     89         ])

/Users/arahuja/src/hammerlab/varcode/varcode/variant_collection.py in <listcomp>(.0)
     86             effect
     87             for variant in self
---> 88             for effect in variant.effects(raise_on_error=raise_on_error)
     89         ])
     90 

/Users/arahuja/src/hammerlab/varcode/varcode/common.py in wrapped_fn(*args, **kwargs)
     43         key = (args, tuple(sorted(kwargs.items())))
     44         if key not in memoized_values:
---> 45             memoized_values[key] = fn(*args, **kwargs)
     46         return memoized_values[key]
     47 

/Users/arahuja/src/hammerlab/varcode/varcode/variant.py in effects(self, raise_on_error)
    362             return EffectCollection([Intergenic(self)])
    363 
--> 364         overlapping_transcripts = self.transcripts
    365 
    366         # group transcripts by their gene ID

/Users/arahuja/anaconda/envs/py34/lib/python3.4/site-packages/memoized_property-1.0.2-py3.4.egg/memoized_property.py in fget_memoized(self)
     38     def fget_memoized(self):
     39         if not hasattr(self, attr_name):
---> 40             setattr(self, attr_name, fget(self))
     41         return getattr(self, attr_name)
     42 

/Users/arahuja/src/hammerlab/varcode/varcode/variant.py in transcripts(self)
    283     def transcripts(self):
    284         return self.ensembl.transcripts_at_locus(
--> 285             self.contig, self.start, self.end)
    286 
    287     @memoized_property

/Users/arahuja/src/hammerlab/pyensembl/pyensembl/ensembl_release.py in transcripts_at_locus(self, contig, position, end, strand)
    256         return [
    257             self.transcript_by_id(transcript_id)
--> 258             for transcript_id in transcript_ids
    259         ]
    260 

/Users/arahuja/src/hammerlab/pyensembl/pyensembl/ensembl_release.py in <listcomp>(.0)
    256         return [
    257             self.transcript_by_id(transcript_id)
--> 258             for transcript_id in transcript_ids
    259         ]
    260 

/Users/arahuja/src/hammerlab/pyensembl/pyensembl/common.py in wrapped_fn(*args, **kwargs)
     52         cache_key = _memoize_cache_key(args, kwargs)
     53         if cache_key not in cache:
---> 54             value = fn(*args, **kwargs)
     55             cache[cache_key] = value
     56             return value

/Users/arahuja/src/hammerlab/pyensembl/pyensembl/ensembl_release.py in transcript_by_id(self, transcript_id)
    575             filter_value=transcript_id,
    576             feature="transcript",
--> 577             distinct=True)
    578         if not result:
    579             raise ValueError("Transcript not found: %s" % (transcript_id,))

/Users/arahuja/src/hammerlab/pyensembl/pyensembl/common.py in wrapped_fn(*args, **kwargs)
     52         cache_key = _memoize_cache_key(args, kwargs)
     53         if cache_key not in cache:
---> 54             value = fn(*args, **kwargs)
     55             cache[cache_key] = value
     56             return value

/Users/arahuja/src/hammerlab/pyensembl/pyensembl/database.py in query_one(self, select_column_names, filter_column, filter_value, feature, distinct, required)
    428             feature,
    429             distinct=distinct,
--> 430             required=required)
    431 
    432         if len(results) == 0:

/Users/arahuja/src/hammerlab/pyensembl/pyensembl/common.py in wrapped_fn(*args, **kwargs)
     52         cache_key = _memoize_cache_key(args, kwargs)
     53         if cache_key not in cache:
---> 54             value = fn(*args, **kwargs)
     55             cache[cache_key] = value
     56             return value

/Users/arahuja/src/hammerlab/pyensembl/pyensembl/database.py in query(self, select_column_names, filter_column, filter_value, feature, distinct, required)
    411         query_params = [filter_value]
    412         return self.run_sql_query(
--> 413             sql, required=required, query_params=query_params)
    414 
    415     @memoize

/Users/arahuja/src/hammerlab/pyensembl/pyensembl/database.py in run_sql_query(self, sql, required, query_params)
    378             logging.warn(
    379                 "Encountered error \"%s\" from query \"%s\" with parameters %s",
--> 380                 e.message, sql, query_params)
    381             raise
    382         results = cursor.fetchall()

AttributeError: 'OperationalError' object has no attribute 'message'
tavinathanson commented 9 years ago

I'm also getting this for release 54.