Error when running scvi.data.add_dna_sequence

Hello,

I am getting an error when running simple commands like:

import genomepy

# Define genome directory
genome_dir = "data"

# Install mm10
genomepy.install_genome("mm10",provider="ensembl", genomes_dir=genome_dir)

Even when doing

scvi.data.add_dna_sequence(
    adata,
    chr_var_key="chr",
    start_var_key="start",
    end_var_key="end",
    genome_name="hg19",
    genome_dir="data",
)
adata

I get an error in them all.

File /mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/scvi/utils/_dependencies.py:24, in dependencies.<locals>.decorator.<locals>.wrapper(*args, **kwargs)
     21 @wraps(fn)
     22 def wrapper(*args, **kwargs):
     23     error_on_missing_dependencies(*modules)
---> 24     return fn(*args, **kwargs)

File /mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/scvi/data/_preprocessing.py:432, in add_dna_sequence(adata, seq_len, genome_name, genome_dir, genome_provider, install_genome, chr_var_key, start_var_key, end_var_key, sequence_varm_key, code_varm_key)
    429     genome_dir = tempdir.name
    431 if install_genome:
--> 432     g = genomepy.install_genome(genome_name, genome_provider, genomes_dir=genome_dir)
    433 else:
    434     g = genomepy.Genome(genome_name, genomes_dir=genome_dir)
...
    873         value,
    874     ),
    875 )

OperationalError: no such column: "size" - should this be a string literal in single-quotes?

or this error:

---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
Cell In[15], line 7
      4 genome_dir = "data"
      6 # Install mm10 
----> 7 genomepy.install_genome("mm10",provider="ensembl", genomes_dir=genome_dir)
      9 # Verify installation
     10 genomepy.list_installed_genomes(genomes_dir=genome_dir)

File /mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/genomepy/functions.py:208, in install_genome(name, provider, genomes_dir, localname, mask, keep_alt, regex, invert_match, bgzip, annotation, only_annotation, skip_matching, skip_filter, threads, force, **kwargs)
    206 out_dir = os.path.join(genomes_dir, localname)
    207 genome_file = os.path.join(out_dir, f"{localname}.fa")
--> 208 provider = _provider_selection(name, localname, genomes_dir, provider)
    210 # check which files need to be downloaded
    211 genome_found = _is_genome_dir(out_dir)

File /mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/genomepy/functions.py:371, in _provider_selection(name, localname, genomes_dir, provider)
    368     if p in ["ensembl", "ucsc", "ncbi"]:
    369         provider = p
--> 371 return _lazy_provider_selection(name, provider)

File /mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/genomepy/functions.py:342, in _lazy_provider_selection(name, provider)
    340 """return the first PROVIDER which has genome NAME"""
    341 providers = []
--> 342 for p in online_providers(provider):
...
    873         value,
    874     ),
    875 )

OperationalError: no such column: "size" - should this be a string literal in single-quotes?

Or even in the terminal:

$ genomepy search zebrafish
00:05:02 | INFO | Downloading assembly summaries from GENCODE
Traceback (most recent call last):
  File "/mnt/RAID5/miniforge/envs/scvi-env/bin/genomepy", line 10, in <module>
    sys.exit(cli())
             ^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/click/core.py", line 1161, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/click/core.py", line 1082, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/click/core.py", line 1697, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/click/core.py", line 1443, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/click/core.py", line 788, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/genomepy/cli.py", line 412, in search
    for row in genomepy.search(term, provider, exact, size):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/genomepy/providers/__init__.py", line 135, in search
    for p in online_providers(provider):
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/genomepy/providers/__init__.py", line 104, in online_providers
    yield create(provider)
          ^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/genomepy/providers/__init__.py", line 60, in create
    return p()
           ^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/genomepy/providers/gencode.py", line 41, in __init__
    self.genomes = _get_genomes(self._url)
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/genomepy/providers/gencode.py", line 249, in _get_genomes
    genomes = get_genomes(ftp_link)
              ^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/contextlib.py", line 81, in inner
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/diskcache/core.py", line 1877, in wrapper
    self.set(key, result, expire, tag=tag, retry=True)
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/diskcache/core.py", line 808, in set
    self._row_insert(db_key, raw, now, columns)
  File "/mnt/RAID5/miniforge/envs/scvi-env/lib/python3.12/site-packages/diskcache/core.py", line 857, in _row_insert
    sql(
sqlite3.OperationalError: no such column: "size" - should this be a string literal in single-quotes?

any ideas on how I can fix this to run scvi?

See discussion in GitHub issue. Unable to run scBasset to integrate scATACseq data · Issue #3253 · scverse/scvi-tools · GitHub