代码海洋-你想模仿的这里都有啊

最近看文献:Integrative Pharmacogenomics Analysis of Patient Derived Xenografts  又一次遇到了codeocean ,算是生物信息学数据分析者的一个福音,因为大量的好文章都是把绘图数据及代码一股脑的打包上去了,关键是都是可以重复出来的!(https://codeocean.com/)

每个文章的代码都是一个独立的环境

如下所示,code及其配套的data都是独立的文件夹,而且是可以查看的。

 

可以从中学到其他人的代码技巧,比如判断哪些包没有安装,甚至批量安装R包

cat(sprintf("\n\n##=========== checking if required packages are installed ======\n\n"))

packagesReq <- c("BBmisc", "doParallel", "foreach", "ggplot2", "ggpubr", 
                 "methods", "psych", "reshape2", "Rtsne", "scales", "snow", 
                 "Biobase", "circlize", "ComplexHeatmap", "piano", "PharmacoGx")

packToInst <- setdiff(packagesReq, installed.packages())

if(length(packToInst)>0)
{
  cat(sprintf("\nInstalling required packages:\n%s\n", paste0(packToInst, collapse = "\n")))

}

实际上就是一个个独立的docker

docker我们讲解很多次了,具体大家可以浏览我在在生信技能树上面写过部分docker教程, 目录如下:

再复习几个docker指令:

docker
docker info ## 可以查看目前机器上面的docker里面有多少容器或者镜像。
docker version
sudo docker search ubuntu
sudo docker run hello-world 
## 上面代码下载了一个镜像,启动了一个容器,下面就可以查看它们
sudo docker run ubuntu  ## 默认下载最新版docker
docker ps -a  ## 查看目前所有没有被销毁的容器进程。
docker images -a ## 查看目前所有的本地镜像 
docker volume ls  
docker network ls 

打开这个codeocean的dockerfile,可以很清楚的看到,就是基于codeocean的r-base:3.4.4-ubuntu16.04这个初始化的空白电脑系统,然后安装几个这篇文章绘图需要的R包,就可以啦!

FROM registry.codeocean.com/codeocean/r-base:3.4.4-ubuntu16.04

ARG DEBIAN_FRONTEND=noninteractive

RUN Rscript -e 'devtools::install_version("BBmisc", \
      version = "1.11", \
      dependencies = TRUE)'
RUN Rscript -e 'devtools::install_version("Rtsne", \
      version = "0.13", \
      dependencies = TRUE)'
RUN Rscript -e 'devtools::install_version("doParallel", \
      version = "1.0.11", \
      dependencies = TRUE)'
RUN Rscript -e 'devtools::install_version("doSNOW", \
      version = "1.0.16", \
      dependencies = TRUE)'
RUN Rscript -e 'devtools::install_version("foreach", \
      version = "1.4.4", \
      dependencies = TRUE)'
RUN Rscript -e 'devtools::install_version("ggpubr", \
      version = "0.1.7", \
      dependencies = TRUE)'

RUN Rscript -e ' \
      source("http://bioconductor.org/biocLite.R"); \
      biocLite(c( \
        "Biobase", \
        "ComplexHeatmap", \
        "PharmacoGx", \
        "piano" \
      ), suppressUpdates = TRUE)'

RUN Rscript -e 'devtools::install_github("bhklab/Xeva", \
      dependencies = TRUE, \
      upgrade_dependencies = FALSE, \
      ref = "v1.0.0")'

docker的好处就是,随时启动,任意销毁,不需要有任何的心理负担,哪怕你有心理洁癖!

圈圈图

这篇文章展示了一个药物靶点以及其对应的通路关系的圈圈图,如下:

 

假如你感兴趣绘制这个图的代码,就可以点开看具体的代码实现,如下:

suppressMessages(library(circlize))
library(BBmisc)
library(reshape2)
plot_figure <- function(mat, cirOrd, gap.after, grid.col, colorMat, names2show,
                        txtCol)
{
  paraText <- function(txt, width = 50)
  { paste( strwrap(txt, width = width), collapse = "\n") }

circos.clear()
  circos.par(gap.after = gap.after, start.degree = -100,
             track.margin = c(0.001, 0.002))

chordDiagram(mat, order = cirOrd, grid.col = grid.col, col=colorMat,
               annotationTrack = "grid",
               preAllocateTracks = list(track.height= 0.50),
               transparency = 0.25)

circos.trackPlotRegion(track.index = 1, panel.fun = function(x, y)
  {
    xlim = get.cell.meta.data("xlim")
    ylim = get.cell.meta.data("ylim")
    sector.name = get.cell.meta.data("sector.index")
    if(sector.name %in% names2show)
    {
      circos.text(mean(xlim), ylim[1], sector.name, facing = "clockwise",
                  niceFacing = TRUE,  adj = c(0, 0.5),
                  col = txtCol[sector.name],cex = 1.5)
    }
  }, bg.border = NA)
  circos.clear()
}

主要是 chordDiagram 和 circos.trackPlotRegion两个函数,来自于circlize这个R包。

还有更多更新更好玩的代码,你们自己去探索吧:

你可能会需要:广州专场(全年无休)GEO数据挖掘课,带你飞(1.11-1.12)和 生信入门课全国巡讲2019收官--长沙站

(0)

相关推荐

  • SpringBoot热部署配置

    背景: 因为开发过程中会遇到进场的调试程序代码,进行小部分的修改,但是每次都要自己进行重新启动项目,太麻烦,这里就可以用到SpringBoot自带的热部署机制进行相关的配置,和我之前使用的Go框架Be ...

  • 玩转R包

    很长一段时间,总是被安装一些包所绊住,或许今天也是.往往小阴沟就会翻船.死都不敢相信自己是这么死的.R包就是众多坑沟中的臭名昭著的一个.版本不对,依赖不存在,各种问题简直让一个有强迫症的患者生不如死. ...

  • mongo-express 远程代码执行漏洞分析

    搭建调试环境,调试 CVE-2019-10758 漏洞,学习nodejs 沙箱绕过,以及nodejs 远程调试.目前网上关于该漏洞的基于docker的远程调试分析写的很泛,本文从初学者角度分析调试漏洞 ...

  • 只能原唱才能唱的4首歌,别人想模仿都模仿不来,最后一位大写的服

    众所周知,一些好听的歌曲走红了之后,很多人都会跟风去翻唱,也想去蹭一把热度.对于这种情况,相信大家伙都深有体会.但是,却有这样一种特殊情况,有一些歌曲明明很火,翻唱的人也很多,但是,每个人却仍旧钟情于 ...

  • 这样的镜子照,看了都想模仿!

    对于每个爱臭美的人 出门都会随身带个小镜子吧 而喜欢拍照的人 也钟爱拿镜子作为拍摄道具 包括我也是,上次我就出了一篇春游怎么拿镜子拍照的文章「原来镜子这样拍,真的很好看!」在这个美好春日,相信你也模仿 ...

  • 资源搜索神仙网站!想要的资源都可以找到,你居然还不知道?

    资源搜索神仙网站!想要的资源都可以找到,你居然还不知道?

  • 这些患者能溶栓吗?关于脑梗死静脉溶栓你想知道的真相都在这里!

    脑卒中静脉溶栓治疗 急性缺血性卒中是由于脑组织缺血损伤出现临床症状和体征的急性脑血管病,具有发病率高.致残率高和死亡率高的特点.脑血管闭塞的缺血性卒中若得不到及时的救治,平均每位患者每分钟将丧失 19 ...

  • 关于癌症,你想知道的基本都在这里

    这个视频翻译了好久,断断续续有两个月,这次把中文对照都放上了. 关于癌症,没有哪个视频比这个视频更加权威更加通俗了,外网百万播放,内容也都是业界最权威大佬提供,大家务必要看看,为了自己,也为了家人,如 ...

  • 100多种钩编花样图解,想要钩的都用得上!

    钩编花样100多例图解,平时需要钩的衣服,包包,各类家居用品,贴身用品,每次都能换着花样钩,双色的,镂空的,多色混搭的--样样有,收藏起来,每天学几种,几个月都学不完!

  • ​想要好气质一点都不难,做好这100件小事就够了

    ​想要好气质一点都不难,做好这100件小事就够了 现在很多人都不比外貌,改比气质了. 所以,气质究竟是什么?是先天的还是后天的? 在我看来,气质,其实就是一个人的精神气场. 和成长环境有关,和人生经历 ...

  • 只要想开始,永远都不晚

    文 | 恩弥 ·  摄影 | 蓝猫 · 编辑 | 一白 失败并不可怕,一切都可以从头开始.就算此刻一无所有,只要人在,那就是最好的翻身资本.人就是资本,无价宝,无论有多大的困难,不管你信还是不信,都会 ...

  • 蜜露这么多,还在为松大蚜的防治犯愁吗?用它,虫害想除不干净都难!

    " 当松针油光光的,枝条黑乎乎的,树下蜜露堆积,别怀疑,树上的松大蚜数量一定不会少. " 松大蚜主要危害松柏科植物,如黑松.油松.雪松.白皮松.红松.赤松.樟子松.马尾松等.一年可 ...