Skip to content

ValueError: buffer source array is read-only when writing BigWig files #403

@dborgesr

Description

@dborgesr
import pyranges as pr 

chr_gr = pr.PyRanges(
    chromosomes = "chr2",
    starts = [0],
    ends = [1]
)

chr_gr.to_bigwig("test.bw", 
                    {"chr2":10})

With dependencies:

dependencies = [
    "pybigwig>=0.3.25",
    "pyranges>=0.1.4",
    "pyrle>=0.0.43",
]

Yields the following error:

Traceback (most recent call last):
  File "test_bw.py", line 9, in <module>
    chr_gr.to_bigwig("test.bw", 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/pyranges/pyranges_main.py", line 5505, in to_bigwig
    result = _to_bigwig(self, path, chromosome_sizes, rpm, divide, value_col, dryrun)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/pyranges/out.py", line 199, in _to_bigwig
    gr = self.to_rle(rpm=rpm, strand=False, value_col=value_col).to_ranges()
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/pyranges/pyranges_main.py", line 5880, in to_rle
    return _to_rle(self, value_col, strand=strand, rpm=rpm, nb_cpu=nb_cpu)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/pyranges/methods/to_rle.py", line 18, in _to_rle
    result = pyrange_apply_single(coverage, ranges, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/pyranges/multithreaded.py", line 342, in pyrange_apply_single
    result = call_f_single(function, nparams, df, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/pyranges/multithreaded.py", line 28, in call_f_single
    return f.remote(df, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^
  File ".venv/lib/python3.12/site-packages/pyrle/methods.py", line 156, in coverage
    runs, values = _coverage(_df.Position.values, _df.Value.values)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "pyrle/src/coverage.pyx", line 28, in pyrle.src.coverage._coverage
  File "<stringsource>", line 664, in View.MemoryView.memoryview_cwrapper
  File "<stringsource>", line 352, in View.MemoryView.memoryview.__cinit__
ValueError: buffer source array is read-only

Tried playing around w/ different versions of pyrle and pybigwig but no luck so far.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions