构建miso annotation

step1. 安装软件rnaseqlib.

pip install –upgrade pip
pip install git+https://github.com/yarden/rnaseqlib.git
pip install gffutils

step2. 从UCSC下载ensGene.txt, knownGene.txt, refGene.txt到一个目录中,比如http:[……]

Read more

如何使用bioconductor docker来debug程序中的错误

在package的维护过程中,我们常常遇到的一个困难就是无法重复bioconductor build系统中的错误。有些时候我们想方设法把系统做得和bioconductor build系统做得一致,但是过了几个月,因为疏于维护,或者每日更新过于麻烦,有些时候就无法重复bioconductor build中的错误了。

在这个时候,我们可以利用bioconductor docker来对自己的pac[……]

Read more

在R3.3中安装Bioconductor最新安装包

如果你是一名开发人员,你会发现,当你使用R3.3时,bioconductor不能使用biocLite自动更新了,它会显示不支持R3.3。
这是因为通过source(“http:bioconductor.org/biocLite.R”)安装的BiocInstaller不是最新版本的缘故。

所以通过安装最新的BiocInstaller就可以解决问题了。

0f7e81d36437a25186a[……]

Read more

cbioportal的CGDS-R库使用介绍

Read more

tophat library type 应该怎么设置

当我们拿到一个测序结果,实验人员也搞不清楚他的结果的library type怎么运行tophat呢?

依照手册,你可以先访问实验人员,他使用的是什么样的测序手段,是用的illumina还是SOLiD。如果是SOLiD,多半是second strand. 如果是illumina,可能还是分辨一下,主要是分辨unstraned还是firststrand.

这可能需要分三步走:

1 r[……]

Read more

使用R绘制带比例的饼图 Pie Chart with Annotated Percentages

pie1 <- function (x, labels = names(x), edges = 200, radius = 0.8, clockwise = FALSE, 
    init.angle = if (clockwise) 90 else 0, density = NULL, angle = 45, 
    col = NULL, border = NULL, lty = NULL, main = NULL, percentage=T, rawNumber=F, digits=3, cutoff=0.01, 
    legend=F, legendpos="topright", legendcol=2, ...) 
{
    if (!is.numeric(x) || any(is.na(x) | x < 0)) 
        stop("'x' values must be positive.")
    if (is.null(labels)) 
        labels <- as.character(seq_along(x))
    else labels <- as.graphicsAnnot(labels)
    rawX <- x
    x <- c(0, cumsum(x)/sum(x))
    dx <- diff(x)
    nx <- length(dx)
    plot.new()
    pin <- par("pin")
    xlim <- ylim <- c(-1, 1)
    if (pin[1L] > pin[2L]) 
        xlim <- (pin[1L]/pin[2L]) * xlim
    else ylim <- (pin[2L]/pin[1L]) * ylim
    dev.hold()
    on.exit(dev.flush())
    plot.window(xlim, ylim, "", asp = 1)
    if (is.null(col)) 
        col <- if (is.null(density)) 
            c("white", "lightblue", "mistyrose", "lightcyan", 
                "lavender", "cornsilk", "pink")
        else par("fg")
    if (!is.null(col)) 
        col <- rep_len(col, nx)
    if (!is.null(border)) 
        border <- rep_len(border, nx)
    if (!is.null(lty)) 
        lty <- rep_len(lty, nx)
    angle <- rep(angle, nx)
    if (!is.null(density)) 
        density <- rep_len(density, nx)
    twopi <- if (clockwise) 
        -2 * pi
    else 2 * pi
    t2xy <- function(t) {
        t2p <- twopi * t + init.angle * pi/180
        list(x = radius * cos(t2p), y = radius * sin(t2p))
    }
    for (i in 1L:nx) {
        n <- max(2, floor(edges * dx[i]))
        P <- t2xy(seq.int(x[i], x[i + 1], length.out = n))
        polygon(c(P$x, 0), c(P$y, 0), density = density[i], angle = angle[i], 
            border = border[i], col = col[i], lty = lty[i])
        if(!legend){
        	P <- t2xy(mean(x[i + 0:1]))
	        lab <- as.character(labels[i])
	        if (!is.na(lab) && nzchar(lab)) {
	            lines(c(1, 1.05) * P$x, c(1, 1.05) * P$y)
	            text(1.1 * P$x, 1.1 * P$y, labels[i], xpd = TRUE, 
	                adj = ifelse(P$x < 0, 1, 0), ...)
	        }
        }
    }
    if (percentage) {
    	for (i in 1L:nx){
    		if(dx[i]>cutoff){
    			P <- t2xy(mean(x[i + 0:1]))
            	text(.8 * P$x, .8 * P$y, paste(formatC(dx[i]*100, digits=digits), "%", sep=""), xpd = TRUE, 
                	adj = .5, ...)
    		}
        }
    }else{
        if(rawNumber){
		for (i in 1L:nx){
    			if(dx[i]>cutoff){
    				P <- t2xy(mean(x[i + 0:1]))
            		text(.8 * P$x, .8 * P$y, rawX[i], xpd = TRUE, 
                		adj = .5, ...)
    			}
        	}
        }
    }
    if(legend) legend(legendpos, legend=labels, fill=col, border="black", bty="n", ncol = legendcol)
    title(main = main, ...)
    invisible(NULL)
}
 
pie1(1:5)

pie