Skip to content

Instantly share code, notes, and snippets.

View gu-mi's full-sized avatar

Gu Mi gu-mi

  • Sanofi
  • Cambridge, MA
View GitHub Profile
@gu-mi
gu-mi / deseq-vs-edger.R
Created September 20, 2012 01:51 — forked from stephenturner/deseq-vs-edger.R
DESeq vs edgeR comparison
# Note: using the devel versions of both packages!
library(DESeq) # version 1.9.11
library(edgeR) # version 2.99.8
library(VennDiagram)
# Read in data ------------------------------------------------------------
## Use pasilla data
datafile = system.file( "extdata/pasilla_gene_counts.tsv", package="pasilla" )
datafile
@gu-mi
gu-mi / rej-sim.R
Created September 20, 2012 02:08
Reject the first 37% ?
## I came across a Chinese science blog which discusses an interesting stuff that girls should reject
## the first 37% (for 1/e = 36.79%) pursuers in her life. A little R simulation as outlined in the
## gist is shown below just for fun. In the snippet, m is the total number of boys you can choose.
## In other words, they are potential husband for you. Larger number means high "quality" but these
## numbers are randomly sampled, i.e., you don’t know whether the one who just walks into your life
## is your Mr. Right or not. You reject the first m/e people (probably without any reason...), where
## e is the Euler’s number, and choose from the rest of the m people. If you find any one of the
## remaning boys better than the best boy you saw earlier in the first m/e ones, then you choose that
## guy; otherwise, you have to make do with the last guy for the rest of your life...
@gu-mi
gu-mi / Visually-weighted regression.R
Created September 24, 2012 23:47 — forked from dsparks/Visually-weighted regression.R
Visually-weighted regression plot
# A simple approach to visually-weighted regression plots
doInstall <- TRUE # Change to FALSE if you don't want packages installed.
toInstall <- c("ggplot2", "reshape2", "MASS")
if(doInstall){install.packages(toInstall, repos = "http://cran.us.r-project.org")}
lapply(toInstall, library, character.only = TRUE)
# Generate some data:
nn <- 1000
myData <- data.frame(X = rnorm(nn),
@gu-mi
gu-mi / Heatmap.R
Created September 27, 2012 16:25 — forked from dsparks/Heatmap.R
ggplot2 heatmap with "spectral" palette
# Simple ggplot2 heatmap
# with colorBrewer "spectral" palette
doInstall <- TRUE # Change to FALSE if you don't want packages installed.
toInstall <- c("ggplot2", "reshape2", "RColorBrewer")
if(doInstall){install.packages(toInstall, repos = "http://cran.us.r-project.org")}
lapply(toInstall, library, character.only = TRUE)
# Generate a random matrix
# This can be any type of numeric matrix,
@gu-mi
gu-mi / Making k-folds.R
Created October 1, 2012 17:29 — forked from dsparks/Making k-folds.R
Random, equally-sized partitions
# Randomly allocating observations into groups, for, e.g. cross-validation
kk <- 10 # Number of partitions, as in "kk-fold cross-validation."
# Here is a data.frame full of good data:
nn <- 1003
myData <- data.frame(matrix(rnorm(nn * 3), ncol = 3))
colnames(myData) <- LETTERS[1:3]
# This does not work:
whichK <- sample(LETTERS[1:kk], nrow(myData), replace = T)
@gu-mi
gu-mi / EmailClass.R
Created October 24, 2012 21:16 — forked from jbryer/EmailClass.R
Example of object oriented programming in R
#' Constructor
EmailClass <- function(name, email) {
nc = list(
name = name,
email = email,
get = function(x) nc[[x]],
set = function(x, value) nc[[x]] <<- value,
props = list(),
history = list(),
getHistory = function() return(nc$history),
@gu-mi
gu-mi / seriation.R
Created October 25, 2012 22:56 — forked from dsparks/seriation.R
Optimal matrix seriation
# Simple ggplot2 heatmap, with optimal seriation
doInstall <- TRUE # Change to FALSE if you don't want packages installed.
toInstall <- c("ggplot2", "reshape2", "RColorBrewer", "seriation")
if(doInstall){install.packages(toInstall, repos = "http://cran.us.r-project.org")}
lapply(toInstall, library, character.only = TRUE)
# Using U.S. Judge Rating Data
myData <- as.matrix(USJudgeRatings)
@gu-mi
gu-mi / heatmap3.R
Created October 26, 2012 04:46 — forked from nachocab/heatmap3.R
heatmap 3 revised
heatmap.3=function (x, Rowv = TRUE, Colv = if (symm) "Rowv" else TRUE,
distfun = dist, hclustfun = hclust, dendrogram = c("both",
"row", "column", "none"), symm = FALSE, scale = c("none",
"row", "column"), na.rm = TRUE, revC = identical(Colv,
"Rowv"), add.expr, breaks, symbreaks = max(x < 0, na.rm = TRUE) ||
scale != "none", col = "heat.colors", colsep, rowsep,
sepcolor = "white", sepwidth = c(0.05, 0.05), cellnote, notecex = 1,
notecol = "cyan", na.color = par("bg"), trace = c("column",
"row", "both", "none"), tracecol = "cyan", hline = median(breaks),
vline = median(breaks), linecol = tracecol, margins = c(5,
@gu-mi
gu-mi / Pearson_Fisher.R
Created October 30, 2012 06:32
What's the power cost of using the exact test instead of the Chi-square for 2-by-2 table?
# http://www.r-bloggers.com/example-10-7-fisher-vs-pearson/
# Author: Ken Kleinman
# In R, we'll simulate observations from a multinomial distribution
# with the desired cell probabilities, and assemble the result into
# a table to calculate the p-values. This will make it easier to simulate
# tables under the alternative, as we need to do to assess power.
# If there are empty rows or columns, the chisq.test() function produces
# a p-value of "NaN", which will create problems later. To avoid this,
# we'll put the table generation inside a while() function. This operates
@gu-mi
gu-mi / kmeans_palette.R
Created November 27, 2012 16:24 — forked from dsparks/kmeans_palette.R
Image Manipulation, Part 2
doInstall <- TRUE # Change to FALSE if you don't want packages installed.
toInstall <- c("ReadImages", "reshape", "ggplot2")
if(doInstall){install.packages(toInstall, repos = "http://cran.r-project.org")}
lapply(toInstall, library, character.only = TRUE)
# Image URL:
allImageURLs <- c("http://media.charlesleifer.com/blog/photos/thumbnails/akira_940x700.jpg",
"http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/402px-Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg",
"http://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Official_portrait_of_Barack_Obama.jpg/441px-Official_portrait_of_Barack_Obama.jpg",
"http://cache.boston.com/universal/site_graphics/blogs/bigpicture/obama_11_05/obama22_16604051.jpg",