quick r tips

49
Quick R Tips • How to find out what packages are available – library() • How to find out what packages are actually installed locally – (.packages())

Upload: jenn

Post on 13-Jan-2016

46 views

Category:

Documents


1 download

DESCRIPTION

Quick R Tips. How to find out what packages are available library() How to find out what packages are actually installed locally (.packages()). Biological question Differentially expressed genes Sample class prediction etc. Experimental design. Microarray experiment. Image analysis. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Quick R Tips

Quick R Tips

• How to find out what packages are available– library()

• How to find out what packages are actually installed locally– (.packages())

Page 2: Quick R Tips

Biological questionDifferentially expressed genesSample class prediction etc.

Testing

Biological verification and interpretation

Microarray experiment

Estimation

Experimental design

Image analysis

Normalization

Clustering Discrimination

Page 3: Quick R Tips

Microarray Data FlowMicroarray experiment Image

Analysis

Database

Data Selection & Missing value estimation

Data Matrix

UnsupervisedAnalysis – clustering

Networks & Data Integration

Supervised Analysis

Normalization & Centering

Decomposition techniques

Page 4: Quick R Tips

A note about Affymetrix (1-color) pre-processing

Two “standard” methods– MAS 5.0 (now GCOS/GDAS) by Affymetrix (compares PM and MM

probes)– RMA by Speed group (UC Berkeley) (ignores MM probes)

within-chip cross-chip sequence specific

background correction

within-probe setaggregation of intensity values

Page 5: Quick R Tips

Why normalize?

Microarray data have significant systematic variation both within arrays and between arrays that is not true biological variation Accurate comparison of genes’ relative expression within and across conditions requires normalization of effects Sources of variation:

Spatial location on the array Dye biases which vary with spot intensity Plate origin Printing/spotting quality Experimenter

Page 6: Quick R Tips

Normalization – Thoughts

• There are many different ways to normalize data– Global median, LOWESS, LOESS, RMA etc– By print tip, spatial, etc

• BUT: don’t expect it to fix bad data!– Won’t make up for lack of replicates– Won’t make up for horrible slides

Page 7: Quick R Tips

#Create a boxplot of the normalized databoxplot(mydata[-1], main = "Normalized Intensities", xlab="Array", ylab="Intensities", col="blue")

#To save the boxplot as a jpeg filejpeg("normal_boxplot.jpg")boxplot(mydata[-1], main = "Normalized Intensities", xlab="Array", ylab="Intensities", col="blue")dev.off()

Page 8: Quick R Tips

Microarray Data Analysis

(slides used with permission of Dr. John Quackenbush, Dana Farber –creator of MeV software )

http://www.tm4.org/mev/

Page 9: Quick R Tips

Classification:• Hierarchical clustering• K-means clustering

Coherence:• PCA• Relevance Network

Differential gene expression:• T-test• Analysis of Variance• Significance of Microarray (SAM)

Page 10: Quick R Tips

Hierarchical Clustering

• A type of cluster analysis• There is both “divisive” and “agglomerative”

HC…agglomerative is most commonly used• Group objects that are “close” to one another

based on some distance/similarity metric• Clusters are created and linked based on a

metric that evaluates the cluster-to-cluster distance

• Results are displayed as a dendrogram

Page 11: Quick R Tips

Hierarchical Clustering

g8g1 g2 g3 g4 g5 g6 g7

g7g1 g8 g2 g3 g4 g5 g6

g7g1 g8 g4 g2 g3 g5 g6

g1 is most like g8

g4 is most like {g1, g8}

(HCL-2)

Page 12: Quick R Tips

g7g1 g8 g4 g2 g3 g5 g6

g6g1 g8 g4 g2 g3 g5 g7

g6g1 g8 g4 g5 g7 g2 g3

Hierarchical Clustering

g5 is most like g7

{g5,g7} is most like {g1, g4, g8}

(HCL-3)

Page 13: Quick R Tips

g6g1 g8 g4 g5 g7 g2 g3

Hierarchical Tree

(HCL-4)

Page 14: Quick R Tips

Hierarchical Clustering

During construction of the hierarchy, decisions must be made to determine which clusters should be joined. The distance or similarity between clusters must be calculated. The rules that govern this calculation are linkage methods.

(HCL-5)

Page 15: Quick R Tips

Agglomerative Linkage Methods

Linkage methods are rules or metrics that return a value that can be used to determine which elements (clusters) should be linked.

Three linkage methods that are commonly used are:

• Single Linkage• Average Linkage• Complete Linkage

(HCL-6)

Page 16: Quick R Tips

Comparison of Linkage Methods

Single Ave. Complete(HCL-10)

Page 17: Quick R Tips

Bootstrapping (ST)

Bootstrapping – resampling with replacement

Original expression matrix:

Exp 1 Exp 2 Exp 3 Exp 4 Exp 5 Exp 6

Gene 1

Gene 2

Gene 3

Gene 4

Gene 5

Gene 6

Various bootstrapped matrices (by experiments):

Exp 2 Exp 3 Exp 4

Gene 1

Gene 2

Gene 3

Gene 4

Gene 5

Gene 6

Exp 2 Exp 4 Exp 4 Exp 1 Exp 3 Exp 5 Exp 6

Gene 1

Gene 2

Gene 3

Gene 4

Gene 5

Gene 6

Exp 1 Exp 5

Page 18: Quick R Tips

Jackknifing (ST)Jackknifing – resampling without replacement

Original expression matrix:

Exp 1 Exp 2 Exp 3 Exp 4 Exp 5 Exp 6

Gene 1

Gene 2

Gene 3

Gene 4

Gene 5

Gene 6

Various jackknifed matrices (by experiments):

Exp 1 Exp 3 Exp 4 Exp 5 Exp 6

Gene 1

Gene 2

Gene 3

Gene 4

Gene 5

Gene 6

Exp 1 Exp 2 Exp 3 Exp 4 Exp 6

Gene 1

Gene 2

Gene 3

Gene 4

Gene 5

Gene 6

Page 19: Quick R Tips

Analysis of Bootstrapped and Jackknifed Support Trees

• Bootstrapped or jackknifed expression matrices are created many times by randomly resampling the original expression matrix, using either the bootstrap or jackknife procedure.

• Each time, hierarchical trees are created from the resampled matrices.

• The trees are compared to the tree obtained from the original data set.

• The more frequently a given cluster from the original tree is found in the resampled trees, the stronger the support for the cluster.

• As each resampled matrix lacks some of the original data, high support for a cluster means that the clustering is not biased by a small subset of the data.

Page 20: Quick R Tips

Hierarchical Clustering in R

Page 21: Quick R Tips

Step 1: Data matrix• First you need a numeric matrix

– Typical array data set will have samples as columns and genes as rows

– We want to be sure our data are in the form of an expression matrix

• Use Biobase library/package• See

http://www.bioconductor.org/packages/2.2/bioc/vignettes/Biobase/inst/doc/ExpressionSetIntroduction.pdf

> exprs<-as.matrix(data, header=TRUE, sep="\t", row.names=1, as.is=TRUE)

Page 22: Quick R Tips

Step 2: Calculate Distance Matrix

• Default dist() method in R uses rows as the vectors..but we want the distance between samples….i.e., the columns of our matrix.

• There is a handy package to help us at MD Anderson called oompaBase

source("http://bioinformatics.mdanderson.org/OOMPA/oompaLite.R")oompaLite()oompainstall(groupName="all")

• Once installed, be sure to locally activate the librarieslibrary(oompaBase)library(ClassDiscovery)library(ClassComparison)

• oompaBase also requires the mclust and cobs packages…download these from CRAN

Page 23: Quick R Tips

• Use the function distanceMatrix() to create a distance matrix of your samples….– Uses the expression set created in Step 1 as input– Remember that there are many different types of

distance metrics to choose from!– See help(distanceMatrix)

x<- distanceMatrix(exprs,'pearson')

Page 24: Quick R Tips

Step 3: Cluster

• Use the hclust() function to create a hierarchical cluster based on your distance matrix, x, created in Step 2.

> y<-hclust(x,method="complete")

> plot(y)

Page 25: Quick R Tips

Testing for Differential Gene Expression with the T-test

Page 26: Quick R Tips

• Get the multtest package from CRAN

• Package contains data from the Golub leukemia microarray data set (ALL v AML)– 38 arrays

• 27 from lymphoblastic

• 11 from myeloid

http://people.cryst.bbk.ac.uk/wernisch/macourse/

Page 27: Quick R Tips

• library(multtest)• data(golub)• golub.cl• Generate the T statistic

– teststat <-mt.teststat(golub, golub.cl)• Convert into P-values

– rawp0 <-2*pt(abs(teststat),lower.tail=F, df=38-2)• Correct for multiple testing and show the ten most

significant genes– procs <-c(“Bonferroni”, “BH”)– res<-mt.rawp2adjp((rawp0), procs)– res$adjp[1:10,]

http://people.cryst.bbk.ac.uk/wernisch/macourse/

Page 28: Quick R Tips

1. Specify number of clusters, e.g., 5.

2. Randomly assign genes to clusters.

G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12 G13

K-Means / K-Medians Clustering (KMC)– 1

Page 29: Quick R Tips

K-Means Clustering – 2

3. Calculate mean / median expression profile of each cluster.

4. Shuffle genes among clusters such that each gene is now in the cluster whose mean / median expression profile (calculated in step 3) is the closest to that gene’s expression profile.

G1 G2G3 G4 G5G6

G7

G8 G9G10

G11

G12

G13

5. Repeat steps 3 and 4 until genes cannot be shuffled around any more, OR a user-specified number of iterations has been reached.

K-Means / K-Medians is most useful when the user has an a-priori hypothesis about the number of clusters the genes should group into.

Page 30: Quick R Tips

Principal Components (PCAG and PCAE) – 1

1. PCA simplifies the “views” of the data.

2. Suppose we have measurements for each gene on multiple experiments.

3. Suppose some of the experiments are correlated.

4. PCA will ignore the redundant experiments, and will take aweighted average of some of the experiments, thus possibly making the trends in the data more interpretable.

5. The components can be thought of as axes in n-dimensional space, where n is the number of components. Each axis represents adifferent trend in the data.

Page 31: Quick R Tips

PCAG and PCAE - 2

“Cloud” of data points (e.g., genes) in 3-dimensional space

x

y

z

Data points resolved along 3 principalcomponent axes.In this example,

x-axis could mean a continuum from over-to under-expression (“blue” and “green”genes over-expressed, yellow genes under-expressed)

y-axis could mean that “gray” genes are over-expressed in first five expts and under expressed in The remaining expts, while “brown” genes are under-expressed in the first five expts, and over-expressed in the remaining expts.

z-axis might represent different cyclic patterns, e.g., “red” genes might be over-expressed in odd-numbered expts and under-expressed in even-numbered ones, whereas the opposite is true for “purple” genes.

Interpretation of components is somewhat subjective.

Page 32: Quick R Tips

Relevance Networks

Set of genes whose expression profiles are predictive of one another.

Genes with low entropy (least variable across experiments)are excluded from analysis.

H = -p(x)log2(p(x))x=1

10

Can be used to identify negative correlations between genes

Page 33: Quick R Tips

Relevance Networks

Correlation coefficients outside the boundaries defined by the minimum and maximum thresholds are eliminated.

A

D

E B

C

.28

.75

.15.37

.40

.02

.51

.11

.63

.92A

D

E B

C

Tmin = 0.50The expression pattern of each gene compared to that of every other gene.

The ability of each gene to predict the expression of each other gene is assigned a correlation coefficient

Tmax = 0.90

The remaining relationships between genes define the subnets

Page 34: Quick R Tips

1. Assign experiments to two groups, e.g., in the expression matrix below, assign Experiments 1, 2 and 5 to group A, and experiments 3, 4 and 6 to group B.

Exp 1 Exp 2 Exp 3 Exp 4 Exp 5 Exp 6

Gene 1

Gene 2

Gene 3

Gene 4

Gene 5

Gene 6

2. Question: Is mean expression level of a gene in group A significantly different from mean expression level in group B?

Exp 1 Exp 2 Exp 3 Exp 4Exp 5 Exp 6

Gene 1

Gene 2

Gene 3

Gene 4

Gene 5

Gene 6

Group A Group B

T-Tests (TTEST) – Between subjects (or unpaired) - 1

Page 35: Quick R Tips

3. Calculate t-statistic for each gene

4. Calculate probability value of the t-statistic for each gene either from:

A. Theoretical t-distribution

OR

B. Permutation tests.

TTEST – Between subjects - 2

Page 36: Quick R Tips

Permutation tests

i) For each gene, compute t-statistic

ii) Randomly shuffle the values of the gene between groups A and B,such that the reshuffled groups A and B respectively have the same number of elements as the original groups A and B.

Exp 1 Exp 2 Exp 3 Exp 4Exp 5 Exp 6

Gene 1

Group A Group B

Exp 1Exp 4 Exp 5Exp 2Exp 3 Exp 6

Gene 1

Group A Group B

Original grouping

Randomized grouping

TTEST - Between subjects - 3

Page 37: Quick R Tips

Permutation tests - continued

iii) Compute t-statistic for the randomized gene

iv) Repeat steps i-iii n times (where n is specified by the user).

v) Let x = the number of times the absolute value of the original t-statistic exceeds the absolute values of the randomized t-statistic over n randomizations.

vi) Then, the p-value associated with the gene = 1 – (x/n)

TTEST - Between subjects - 4

Page 38: Quick R Tips

5. Determine whether a gene’s expression levels are significantly different between the two groups by one of three methods:

A) Just alpha: If the calculated p-value for a gene is less than or equal to the user-input alpha (critical p-value), the gene isconsidered significant.

ORUse Bonferroni corrections to reduce the probability of erroneously classifying non-significant genes as significant.

B) Standard Bonferroni correction: The user-input alpha is divided by the total number of genes to give a critical p-value that is usedas above.

TTEST - Between subjects - 5

Page 39: Quick R Tips

5C) Adjusted Bonferroni:

i) The t-values for all the genes are ranked in descending order.

ii) For the gene with the highest t-value, the critical p-value becomes (alpha / N), where N is the total number of genes; for the gene with the second-highest t-value, the critical p-value will be (alpha/ N-1), and so on.

TTEST - Between subjects – 6

Page 40: Quick R Tips

The problem of multiple testing(adapted from presentation by Anja von Heydebreck, Max–Planck–Institute for Molecular Genetics,Dept. Computational Molecular Biology, Berlin, Germanyhttp://www.bioconductor.org/workshops/Heidelberg02/mult.pdf)

• Let’s imagine there are 10,000 genes on a chip, AND

• None of them is differentially expressed.

• Suppose we use a statistical test for differential expression, where we consider a gene to be differentially expressed if it meets the criterion at a p-value of p < 0.05.

Page 41: Quick R Tips

The problem of multiple testing – 2

• Let’s say that applying this test to gene “G1” yields a p-value of p = 0.01

• Remember that a p-value of 0.01 means that there is a 1% chance that the gene is not differentially expressed, i.e.,

• Even though we conclude that the gene is differentially expressed (because p < 0.05), there is a 1% chance that our conclusion is wrong.

• We might be willing to live with such a low probabilityof being wrong

BUT .....

Page 42: Quick R Tips

The problem of multiple testing – 3

• We are testing 10,000 genes, not just one!!!

• Even though none of the genes is differentially expressed, about 5% of the genes (i.e., 500 genes) will be erroneously concluded to be differentially expressed, because we have decided to “live with” a p-value of 0.05

• If only one gene were being studied, a 5% margin of error might not be a big deal, but 500 false conclusions in one study? That doesn’t sound too good.

Page 43: Quick R Tips

The problem of multiple testing - 4

• There are “tricks” we can use to reduce the severity of this problem.

• They all involve “slashing” the p-value for each test (i.e., gene), so that while the critical p-value for the entiredata set might still equal 0.05, each gene will be evaluated at a lower p-value.

Page 44: Quick R Tips

• Don’t get too hung up on p-values.

• Ultimately, what matters is biological relevance. P-values should help you evaluate the strength of the evidence, rather than being used as an absolute yardstick of significance. Statistical significance is not necessarily the same as biological significance.

Page 45: Quick R Tips

Significance analysis of microarrays (SAM)

• SAM can be used to pick out significant genes based on differential expression between sets of samples.

Page 46: Quick R Tips

SAM -2• SAM gives estimates of the False Discovery Rate (FDR),

which is the proportion of genes likely to have been wrongly identified by chance as being significant.

• It is a very interactive algorithm – allows users to dynamically change thresholds for significance (through the tuning parameter delta) after looking at the distribution of the test statistic.

• The ability to dynamically alter the input parameters based on immediate visual feedback, even before completing the analysis, should make the data-mining process more sensitive.

Page 47: Quick R Tips

Two-class unpaired: to pick out genes whose mean expression level is significantly different between two groups of samples (analogous to between subjects t-test).

Two-class paired: samples are split into two groups, and there is a 1-to-1 correspondence between an sample in group A and one in group B (analogous to paired t-test).

SAM designs

Page 48: Quick R Tips

SAM designs - 2

Multi-class: picks up genes whose mean expression is different across > 2 groups of samples (analogous to one-way ANOVA)

Censored survival: picks up genes whose expression levels are correlated with duration of survival.

One-class: picks up genes whose mean expression across experiments is different from a user-specified mean.

Page 49: Quick R Tips

SAM Two-Class Unpaired– 4 Significant positive genes (i.e., mean expression of group B >mean expression of group A) in red

Significant negative genes (i.e., mean expression of group A > mean expression of group B) in green

“Observed d = expected d” line

Tuning parameter“delta” limits, can be dynamically changed by using the slider bar or entering a value in the text field.

The more a gene deviates from the “observed = expected” line, the more likely it is to be significant. Any gene beyond the first gene in the +ve or –ve direction on the x-axis (including the first gene), whose observed exceeds the expected by at least delta, is considered significant.