簡體   English   中英

如何計算 R 中給定范圍內的值以上的實例數?

[英]How to count number of instances above a value within a given range in R?

我有一個相當大的數據集來查看整個基因組的 SNP。 我正在嘗試生成一個熱圖,該熱圖基於在整個基因組中 x 個鹼基對的滑動 window 中有多少 SNP 具有超過 50 的 BF(貝葉斯因子)值。 例如,前 1,000,000 個鹼基對中可能有 5 個感興趣的 SNP,然后在接下來的 1,000,000 個中可能有 3 個,依此類推,直到我到達基因組的末尾,這將用於生成單行熱圖。 目前,我的數據是這樣設置的:

SNP BF  BP
0001_107388 11.62814713 107388
0001_193069 2.333472447 193069
0001_278038 51.34452334 278038
0001_328786 5.321968927 328786
0001_523879 50.03245434 523879
0001_804477 -0.51777189 804477
0001_990357 6.235452787 990357
0001_1033297    3.08206707  1033297
0001_1167609    -2.427835577    1167609
0001_1222410    52.96447989 1222410
0001_1490205    10.98099565 1490205
0001_1689133    3.75363951  1689133
0001_1746080    3.519987207 1746080
0001_1746450    -2.86666016 1746450
0001_1777011    0.166999413 1777011
0001_2114817    3.266942137 2114817
0001_2232084    50.43561123 2232084
0001_2332903    -0.15022324 2332903
0001_2347062    -1.209000033    2347062
0001_2426273    1.230915683 2426273

其中 SNP = SNP ID,BF = 貝葉斯因子,BP = 基因組上的 position(我已經在其中捏造了幾個 > 50 個值,以使數據適合本示例)。

問題是我沒有每個基因組 position 的 SNP,否則我可以簡單地根據行數拆分感興趣的 windows,然后計算 BF 列中的許多行超過 50。計算基因組位置的不同 windows 內感興趣的 SNP 數量? 最好在 R 中,但如果完成工作,使用 Python 或 Bash 等其他語言沒有問題。

謝謝!

library(slider); library(dplyr)
my_data %>%
  mutate(count = slide_index(BF, BP, ~sum(.x > 50), .before = 999999))

這計算了BP中最后1M的window中有多少BF> 50。

            SNP         BF      BP count
1   0001_107388 11.6281471  107388     0
2   0001_193069  2.3334724  193069     0
3   0001_278038 51.3445233  278038     1
4   0001_328786  5.3219689  328786     1
5   0001_523879 50.0324543  523879     2
6   0001_804477 -0.5177719  804477     2
7   0001_990357  6.2354528  990357     2
8  0001_1033297  3.0820671 1033297     2
9  0001_1167609 -2.4278356 1167609     2
10 0001_1222410 52.9644799 1222410     3
11 0001_1490205 10.9809957 1490205     2
12 0001_1689133  3.7536395 1689133     1
13 0001_1746080  3.5199872 1746080     1
14 0001_1746450 -2.8666602 1746450     1
15 0001_1777011  0.1669994 1777011     1
16 0001_2114817  3.2669421 2114817     1
17 0001_2232084 50.4356112 2232084     1
18 0001_2332903 -0.1502232 2332903     1
19 0001_2347062 -1.2090000 2347062     1
20 0001_2426273  1.2309157 2426273     1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM