问题标签 [genomicranges]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
429 浏览

r - 有效地聚合大型 Granges 中的垃圾箱

我有一个 SummarizedExperiment(但我们可以认为它是一个 GRanges)。我想要的是减少间隔的数量,每个相同的相邻只保留一行mcol(gr),重要的是还要跟踪新的扩展间隔。

非常感谢!

生成的 GRange 应如下所示:

编辑:我已经编辑了 Granges,以便状态对也存在于非相邻间隔中(第二个 1,1 对必须独立于第一个报告)对不起,我最初的解决方案也是错误的!

非常感谢!

0 投票
2 回答
126 浏览

r - 获取重叠的具体范围

我有两个数据框:cnv_1

cnv_2

每个大约有 150000 个条目。我想知道哪些片段cnv_1以任何方式与 重叠cnv_2,并且-这对我来说最重要-获得重叠的特定区域。例如,对示例的 data.frames 执行此操作,以获得:

非常感谢你

0 投票
1 回答
939 浏览

r - 窗口 GRange 上的分箱平均值

我试图找到 Granges 对象中元列的某个窗口的平均值。

所以我有一个数据对象:

和一个窗口对象:

然后我将数据对象转换为 RleList:

如果我然后使用 binnedAverage,我只会得到 NA 值。

我还尝试总结这些值,结果相同。我的列表中的 NA 值是不是搞砸了,还是我的方法有问题?

最小的例子:

非常感谢您的帮助!

0 投票
0 回答
268 浏览

r - 带有 GenomicRanges 的 setdiff:没有将这个 S4 类强制为向量的方法

我将 setdiff() 与两个 GR 对象一起使用,在我的计算机上更新 R 之前,我的代码运行良好:

但现在我有这个错误:

如果我在没有 ignore.strand= FI 的情况下运行 setdiff() 有这个:

我发现一个帖子表明 NAMESPACE 文件存在一些问题https://stat.ethz.ch/pipermail/bioconductor/2014-September/061440.html

但我不知道在哪里可以找到该 NAMESPACE 文件以及如何修复它。

0 投票
1 回答
925 浏览

r - 按行将自定义函数应用于 data.table 会返回不正确的值数量

我对 data.tables 有点陌生,我有一个包含 DNA 基因组坐标的表格,如下所示:

我编写了一个自定义函数,我想将它应用于我大约 200 万行表的每一行,它使用 GenomicFeatures 的 mapToTranscripts 以字符串和新坐标的形式检索两个相关值。我想将它们添加到我的表中的两个新列中,如下所示:

功能如下:

然后,我这样做:

我收到此错误,表明该函数返回两个长度比原始表短的列表,而不是每行一个新元素:

我假设使用.I运算符将逐行应用该函数并每行返回一个值。我还确保函数没有使用if语句返回空值。

然后我尝试了这个函数的模拟版本:

并这样称呼它:

它制作了一个 1 行数据表,而不是一个原始长度。所以我得出结论,我的函数,或者可能是我调用它的方式,正在以某种方式折叠结果向量的元素。我究竟做错了什么?

更新(带有解决方案):正如@StatLearner 指出的那样,在这个答案中解释说,如 中所述?data.table.I仅用于j(如中DT[i,j,by=])。因此,by=.I等价于by=NULL并且正确的语法是by=1:nrow(dt)按行号分组并按行应用函数。

不幸的是,对于我的特殊情况,这完全是低效的,我计算出 100 行的执行时间为 20 秒。对于我需要 3 个月才能完成的 3600 万行数据集。

就我而言,我不得不放弃并mapToTranscripts像这样在整个桌子上使用该功能,这需要几秒钟,显然是预期的用途。

mapFromTranscripts然后使用from包映射回基因组,GenomicFeatures这样我就可以使用data.tables连接从原始表中检索信息,这是我尝试做的预期目的。

0 投票
0 回答
72 浏览

r - 在范围内采样

我很难在特定背景下采样或排除某些可能性。

我正在尝试创建一个对基因组区域进行洗牌的 R 函数。

目前该功能运行良好并按照以下步骤操作:

  1. 检索查询的所有基因组区域长度和染色体。
  2. 将所有可能的起点计算为指定的染色体总大小减去每个查询区域的长度。
  3. 计算改组的基因组区域,因为起点从 0 采样到可能的起点,宽度就是每个查询区域的宽度。

该函数使用 GenomicRanges 对象,代码如下:

但是现在我需要使用一个宇宙,即另一组区域,它将确定随机事件将在哪个范围内发生。宇宙就像对采样的限制一样。它将是另一组区域,例如查询。并且不应该在这些区域之外进行改组。

关于如何在 R 的范围内采样的任何线索?

lapply 很重要,因为与使用循环相比,它大大减少了函数的执行时间。

[编辑]

这是一个可重复的示例,它不使用 GenomicRanges 最大程度地简化我想要实现的目标。

0 投票
1 回答
286 浏览

python - 在python中的成对行比较中迭代所有值组合

我有一个带有以下格式的基因组箱的数据框。每个基因组范围表示为一行,并且单元格值对应于 bin 的开始。

如您所见,许多行值是不完整的,因为某些基因组范围比其他范围小。

我希望对整行中的每个索引进行成对组合。如果每个成对的交互都存储为一个单独的数据框(最好,甚至),那会很好。

我想要这样的东西:

我需要每个成对行组合的每个值组合。我想我需要使用 itertools.product() 来做这种事情,但不知道如何编写适当的循环。任何帮助是极大的赞赏!

0 投票
1 回答
191 浏览

r - Should as.data.table method for GRanges modify the original object by reference by default?

When using the as.data.table() function from the data.table package to create a data.table out of a GRanges object, the default method is called (https://github.com/Rdatatable/data.table/blob/master/R/as.data.table.R#L8-L10).

This leads to the problem that the new data.table modifies the original data inside the GRanges by reference, leading to unexpected behavior.

I have a minimal example showing this:

Right now my solution is to create a copy before continuing to modify the data.table:

But since not everybody is aware of this behavior I wanted to post this here, maybe there is an easy way to prevent this behavior.

0 投票
0 回答
39 浏览

r - 添加在范围内对分数求和的列

我有一个wig文件,我使用我编写的调用rtracklayer包的函数将它读入了一个类似 granges 的对象:

上面的代码返回:

现在有了这个对象,我想计算对象中每一行的每个范围周围的窗口内的分数总和。例如,我想计算范围 1-10000(本例中为 123)之间的分数总和,并将此条目添加为分数旁边的列。我想对每一行都这样做。

理想情况下,我想添加计算分数范围从 1-10000、1-20000、1-30000 等到 100000 的列。

任何帮助将非常感激!

编辑:

假发文件可以在这里找到。

0 投票
1 回答
520 浏览

r - 如何动态创建空白GRanges?

我想创建一个空白的GRanges(来自包GenomicRanges)对象dynamicall。

如果我们有两个替代选项 opt1 和 opt2,我们可以静态写为:

问题是“我们如何动态创建 GRanges 对象?”。或者更具体地说,“以下函数XX 可能吗?” :

谢谢!