Commit b0527a23 authored by Diane Trout's avatar Diane Trout
Browse files

New upstream version 0.3.17

parent 27c1d600
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -144,9 +144,6 @@ For the sake of consistency with other tools, pyBigWig adopts this same methodol
    0.22213841940688142
    >>> bw.stats('chr1', 89294, 91629, exact=True)
    [0.22213841940688142]
Additionally, `values()` can directly output a numpy vector:

    >>> bw = bw.open("

## Retrieve values for individual bases in a range

@@ -218,6 +215,8 @@ By default, up to 10 "zoom levels" are constructed for bigWig files. You can cha

    >>> bw.addHeader([("chr1", 1000000), ("chr2", 1500000)], maxZooms=0)

If you set `maxTooms=0`, please note that IGV and many other tools WILL NOT WORK as they assume that at least one zoom level will be present. You are advised to use the default unless you do not expect the bigWig files to be used by other packages.

## Adding entries to a bigWig file

Assuming you've opened a file for writing and added a header, you can then add entries. Note that the entries **must** be added in order, as bigWig files always contain ordered intervals. There are three formats that bigWig files can use internally to store entries. The most commonly observed format is identical to a [bedGraph](https://genome.ucsc.edu/goldenpath/help/bedgraph.html) file:
+20 −1
Original line number Diff line number Diff line
@@ -276,6 +276,10 @@ static PyObject *pyBwGetHeader(pyBigWigFile_t *self, PyObject *args) {
        PyErr_SetString(PyExc_RuntimeError, "The bigWig file handle is not opened!");
        return NULL;
    }
    if(bw->isWrite == 1) {
        PyErr_SetString(PyExc_RuntimeError, "The header cannot be accessed in files opened for writing!");
        return NULL;
    }

    ret = PyDict_New();
    val = PyLong_FromUnsignedLong(bw->hdr->version);
@@ -321,6 +325,11 @@ static PyObject *pyBwGetChroms(pyBigWigFile_t *self, PyObject *args) {
        return NULL;
    }

    if(bw->isWrite == 1) {
        PyErr_SetString(PyExc_RuntimeError, "Chromosomes cannot be accessed in files opened for writing!");
        return NULL;
    }

    if(!(PyArg_ParseTuple(args, "|s", &chrom)) || !chrom) {
        ret = PyDict_New();
        for(i=0; i<bw->cl->nKeys; i++) {
@@ -380,6 +389,11 @@ static PyObject *pyBwGetStats(pyBigWigFile_t *self, PyObject *args, PyObject *kw
        return NULL;
    }

    if(bw->isWrite == 1) {
        PyErr_SetString(PyExc_RuntimeError, "Statistics cannot be accessed in files opened for writing!");
        return NULL;
    }

    if(bw->type == 1) {
        PyErr_SetString(PyExc_RuntimeError, "bigBed files have no statistics!");
        return NULL;
@@ -621,6 +635,11 @@ static PyObject *pyBwGetIntervals(pyBigWigFile_t *self, PyObject *args, PyObject
        return NULL;
    }

    if(bw->isWrite == 1) {
        PyErr_SetString(PyExc_RuntimeError, "Intervals cannot be accessed in files opened for writing!");
        return NULL;
    }

    if(bw->type == 1) {
        PyErr_SetString(PyExc_RuntimeError, "bigBed files have no intervals! Use 'entries()' instead.");
        return NULL;
@@ -724,7 +743,7 @@ int PyString_Check(PyObject *obj) {

//I don't know what happens if PyBytes_AsString(NULL) is used...
char *PyString_AsString(PyObject *obj) {
    return PyBytes_AsString(PyUnicode_AsASCIIString(obj));
    return PyUnicode_AsUTF8(obj);
}
#endif

+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
#include <structmember.h>
#include "bigWig.h"

#define pyBigWigVersion "0.3.16"
#define pyBigWigVersion "0.3.17"

typedef struct {
    PyObject_HEAD
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ module1 = Extension('pyBigWig',
                    include_dirs = include_dirs)

setup(name = 'pyBigWig',
       version = '0.3.16',
       version = '0.3.17',
       description = 'A package for accessing bigWig files using libBigWig',
       author = "Devon P. Ryan",
       author_email = "ryan@ie-freiburg.mpg.de",