使用pyranges库,如何检查染色体位置是否包含在任何区间内?

Using pyranges library, How to check if a chromosome position is contained in any interval?

我有一个包含变体信息的 .vcf 文件和一个包含区域研究信息的 .bed 文件。我正在使用 pyranges 库来读取 .bed 文件。我想过滤掉 .vcf 文件中位于 .bed 文件中指定的研究间隔区域中的所有变体。由于 pyranges 提供了一个 pandas 数据框,我可以遍历每一行并检查是否包含我的变体位置;但是,我正在寻找可以帮助我实现这一目标的 API。

示例:

>> df = pd.DataFrame({"Chromosome": ["chr1", "chr2"], "Start": [100, 200],
...                    "End": [150, 201]})
>> pr.PyRanges(df)

+--------------+-----------+-----------+
| Chromosome   |     Start |       End |
| (category)   |   (int32) |   (int32) |
|--------------+-----------+-----------|
| chr1         |       100 |       150 |
| chr2         |       200 |       201 |
+--------------+-----------+-----------+

是否有 API 来查找染色体“chr1”的染色体位置 125 是否位于任何区间内。 在上面的例子中,它将是 True 因为 125 位于区间 100 - 150.

gr = pr.PyRanges(df)
gr['chr1', 125:126]