These exercises are about the factors and data frames sections of Introduction to R.
Exercise 1 - Data frames
Annotation <- data.frame(geneNames=c("Gene_1", "Gene_2", "Gene_3","Gene_4","Gene_5"), ensembl=c("Ens001", "Ens003", "Ens006", "Ens007", "Ens010"),pathway=c("Glycolysis", "TGFb", "Glycolysis", "TGFb", "Glycolysis"),geneLengths=c(100, 3000, 200, 1000,1200))
Sample1 <- data.frame(ensembl=c("Ens001", "Ens003", "Ens006","Ens010"),expression=c(1000, 3000, 10000,5000))
Sample2 <- data.frame(ensembl=c("Ens001", "Ens003", "Ens006","Ens007","Ens010"),expression=c(1500, 1500, 17000,500,10000))
AnnoSample1 <- merge(Annotation,Sample1,by.x=2,by.y=1,all=F)
AnnoSample1And2 <- merge(AnnoSample1,Sample2,by=1,all=F)
AnnoSample1And2
## ensembl geneNames pathway geneLengths expression.x expression.y
## 1 Ens001 Gene_1 Glycolysis 100 1000 1500
## 2 Ens003 Gene_2 TGFb 3000 3000 1500
## 3 Ens006 Gene_3 Glycolysis 200 10000 17000
## 4 Ens010 Gene_5 Glycolysis 1200 5000 10000
Hint see our previous exercises
AnnoSample1And2$Sample1_lne <- AnnoSample1And2$expression.x/AnnoSample1And2$geneLengths
AnnoSample1And2$Sample2_lne <- AnnoSample1And2$expression.y/AnnoSample1And2$geneLengths
AnnoSample1And2
## ensembl geneNames pathway geneLengths expression.x expression.y
## 1 Ens001 Gene_1 Glycolysis 100 1000 1500
## 2 Ens003 Gene_2 TGFb 3000 3000 1500
## 3 Ens006 Gene_3 Glycolysis 200 10000 17000
## 4 Ens010 Gene_5 Glycolysis 1200 5000 10000
## Sample1_lne Sample2_lne
## 1 10.000000 15.000000
## 2 1.000000 0.500000
## 3 50.000000 85.000000
## 4 4.166667 8.333333
rownames(AnnoSample1And2) <- AnnoSample1And2$ensembl
mean(AnnoSample1And2["Ens006","Sample1_lne"],AnnoSample1And2["Ens006","Sample2_lne"])
## [1] 50
log2FoldChange <- log2(AnnoSample1And2$Sample2_lne) - log2(AnnoSample1And2$Sample1_lne)
names(log2FoldChange) <- AnnoSample1And2$geneNames
log2FoldChange
## Gene_1 Gene_2 Gene_3 Gene_5
## 0.5849625 -1.0000000 0.7655347 1.0000000
## [1] 1500