分享

怎样用HOMER算出的P-value画出CNS级别的泡泡图?

 萌小芊 2018-03-31

这是小伙伴的命题作文,下面这个数据是曾老湿给出来的,其中header行竟然放在了最后一行,我手工把它挪到了第一行,里面还有一个数据缺失的,会导致读了数据后会有NA值,需要去除。

$ file summary_ATAC_seq_motif.xlsx                                                                                    
summary_ATAC_seq_motif.xlsx: Microsoft Excel 2007+

这是一个Excel文件,我们可以用readxl来读:

require(readxl)
x <->'summary_ATAC_seq_motif.xlsx')

下面是读进来的数据:

> x
# A tibble: 14 x 20
  `2cells`      X__1 X__2  `4cells`      X__3 X__4  `8cells` X__5  X__6  ICM
  chr>        dbl> lgl> chr>        dbl> lgl> chr>    chr> lgl> chr>
1 AP-2gam… 1.00e+  0 NA    AP-2gam… 1.00e-  1 NA    AP-2gam… 9.99NA    CTCF
2 CTCF(Zf… 1.00e-187 NA    CTCF(Zf… 1.00e-151 NA    CTCF(Zf… 9.99NA    CTCF
3 CTCF-Sa… 1.00e- 10 NA    CTCF-Sa… 1.00e-  9 NA    CTCF-Sa… 9.99NA    FOXA
4 FOXA1(F… 1.00e- 52 NA    FOXA1(F… 1.00e- 61 NA    FOXA1(F… 9.99NA    FOXA
5 FOXA1(F… 1.00e- 62 NA    FOXA1(F… 1.00e- 77 NA    FOXA1(F… 1.00NA    FOXA
6 FOXA1:A… 1.00e- 52 NA    FOXA1:A… 1.00e- 63 NA    FOXA1:A… 1E-26 NA    GABP
7 GABPA(E… 1.00e+  0 NA    GABPA(E… 1.00e-  4 NA    GABPA(E… 1E-41 NA    GATA
8 GATA3(Z… 1.00e+  0 NA    GATA3(Z… 1.00e+  0 NA    GATA3(Z… 9.99NA    GATA
9 GATA3(Z… 1.00e- 13 NA    GATA3(Z… 1.00e-  3 NA    GATA3(Z… 9.99NA    GATA
10 GATA3(Z… 1.00e+  0 NA    GATA3(Z… 1.00e-  4 NA    GATA3(Z… 1e-4NA    Gata
11 Gata1(Z… 1.00e+  0 NA    Gata1(Z… 1.00e-  9 NA    Gata1(Z… 1e-4NA    NF1:…
12 NF1:FOX… 1.00e+  0 NA    NF1:FOX… 1.00e-  3 NA    NF1:FOX… 1E-3  NA    OCT4
13 OCT4-SO… 1.00e+  0 NA    OCT4-SO… 1.00e+  0 NA    OCT4-SO… 1.00NA    TEAD
14 TEAD4(T… 1.00e+  0 NA    TEAD4(T… 1.00e- 19 NA    TEAD4(T… 9.99NA    NA
# ... with 10 more variables: X__7 chr>, X__8 lgl>, `1k_mESC` chr>,
#   X__9 chr>, X__10 lgl>, `200_mESC` chr>, X__11 chr>, X__12 lgl>,
#   `50k_mESC` chr>, X__13 chr>

因为有空白的column,所以会有NA的column出现,我们先去掉它们:

> require(purrr)
> x - x[, map_lgl(x, function(y) !all(is.na(y)))]
> x
# A tibble: 14 x 14
  `2cells`       X__1 `4cells`       X__3 `8cells` X__5  ICM   X__7  `1k_mESC`
  chr>         dbl> chr>         dbl> chr>    chr> chr> chr> chr>
1 AP-2gamm… 1.00e+  0 AP-2gamm… 1.00e-  1 AP-2gam… 9.99CTCF… 1e-4AP-2gamm
2 CTCF(Zf)… 1.00e-187 CTCF(Zf)… 1.00e-151 CTCF(Zf… 9.99CTCF… 9.99CTCF(Zf)…
3 CTCF-Sat… 1.00e- 10 CTCF-Sat… 1.00e-  9 CTCF-Sa… 9.99FOXA… 1E-8  CTCF-Sat
4 FOXA1(Fo… 1.00e- 52 FOXA1(Fo… 1.00e- 61 FOXA1(F… 9.99FOXA… 1.00FOXA1(Fo
5 FOXA1(Fo… 1.00e- 62 FOXA1(Fo… 1.00e- 77 FOXA1(F… 1.00FOXA… 1E-4  FOXA1(Fo
6 FOXA1:AR… 1.00e- 52 FOXA1:AR… 1.00e- 63 FOXA1:A… 1E-26 GABP… 9.99FOXA1:AR
7 GABPA(ET… 1.00e+  0 GABPA(ET… 1.00e-  4 GABPA(E… 1E-41 GATA… 1.00GABPA(ET
8 GATA3(Zf… 1.00e+  0 GATA3(Zf… 1.00e+  0 GATA3(Z… 9.99GATA… 1E-4  GATA3(Zf
9 GATA3(Zf… 1.00e- 13 GATA3(Zf… 1.00e-  3 GATA3(Z… 9.99GATA… 1e-5GATA3(Zf
10 GATA3(Zf… 1.00e+  0 GATA3(Zf… 1.00e-  4 GATA3(Z… 1e-4Gata… 1e-7GATA3(Zf
11 Gata1(Zf… 1.00e+  0 Gata1(Zf… 1.00e-  9 Gata1(Z… 1e-4NF1:… 1     Gata1(Zf
12 NF1:FOXA… 1.00e+  0 NF1:FOXA… 1.00e-  3 NF1:FOX… 1E-3  OCT4… 1E-2NF1:FOXA
13 OCT4-SOX… 1.00e+  0 OCT4-SOX… 1.00e+  0 OCT4-SO… 1.00TEAD… 1e-3OCT4-SOX
14 TEAD4(TE… 1.00e+  0 TEAD4(TE… 1.00e- 19 TEAD4(T… 9.99NA    NA    TEAD4(TE
# ... with 5 more variables: X__9 chr>, `200_mESC` chr>, X__11 chr>,
#   `50k_mESC` chr>, X__13 chr>

现在就OK了,那么这个数据长这样子,一列是motif,紧跟着一列是p值,而motif列的名字是相应的实验条件,这些信息我们都是要的。

y <->q(1, length(x), 2), function(i) {
   res <->x[,i:(i+1)]
   names(res) <->'motif', 'pvalue')
   res[[2]] %<>% as.numeric
   res$type = names(x)[i]
   res <->
   res
})
y$type = factor(y$type, levels=names(x)[seq(1, length(x), 2)])

实验条件存在type这个列里,设置了level,这样按照原本excel里的顺序来。现在的数据长这样子:

> y
# A tibble: 97 x 3
  motif                                                           pvalue type
  chr>                                                            
1 AP-2gamma(AP2)/MCF7-TFAP2C-ChIP-Seq(GSE21234)/Homer          1.00e+  0 2cel…
2 CTCF(Zf)/CD4+-CTCF-ChIP-Seq(Barski_et_al.)/Homer             1.00e-187 2cel…
3 CTCF-SatelliteElement(Zf?)/CD4+-CTCF-ChIP-Seq(Barski_et_al.… 1.00e- 10 2cel…
4 FOXA1(Forkhead)
/LNCAP-FOXA1-ChIP-Seq(GSE27824)/Homer         1.00e- 52 2cel…
5 FOXA1(Forkhead)/MCF7-FOXA1-ChIP-Seq(GSE26831)/Homer          1.00e- 62 2cel…
6 FOXA1:AR(Forkhead,NR)/LNCAP-AR-ChIP-Seq(GSE27824)/Homer      1.00e- 52 2cel…
7 GABPA(ETS)/Jurkat-GABPa-ChIP-Seq(GSE17954)/Homer             1.00e+  0 2cel…
8 GATA3(Zf),DR4/iTreg-Gata3-ChIP-Seq(GSE20898)/Homer           1.00e+  0 2cel…
9 GATA3(Zf),DR8/iTreg-Gata3-ChIP-Seq(GSE20898)/Homer           1.00e- 13 2cel…
10 GATA3(Zf)/iTreg-Gata3-ChIP-Seq(GSE20898)/Homer               1.00e+  0 2cel…
# ... with 87 more rows

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多