December 20, 2018
You can use other computer languages besides R, such as python
Just write the language at the beginning ```{python}
This calculates the \(e\) number in Python
x=10**50 e=x for i in range(30): x //= (i+1) e += x print(e)
271828182845904523536028747135266237222570213098336
You can draw networks from their text description
digraph { size="4,4"; rankdir=LR; bgcolor="transparent";
A->B; A->C; B->C; B->D; D->E; C->E;}
dim(volcano)
[1] 87 61
volcano[1:10,1:10]
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
 [1,]  100  100  101  101  101  101  101  100  100
 [2,]  101  101  102  102  102  102  102  101  101
 [3,]  102  102  103  103  103  103  103  102  102
 [4,]  103  103  104  104  104  104  104  103  103
 [5,]  104  104  105  105  105  105  105  104  104
 [6,]  105  105  105  106  106  106  106  105  105
 [7,]  105  106  106  107  107  107  107  106  106
 [8,]  106  107  107  108  108  108  108  107  107
 [9,]  107  108  108  109  109  109  109  108  108
[10,]  108  109  109  110  110  110  110  109  109
      [,10]
 [1,]   100
 [2,]   101
 [3,]   102
 [4,]   103
 [5,]   103
 [6,]   104
 [7,]   105
 [8,]   106
 [9,]   107
[10,]   108
Here lower values are red, higher values are white. Like heating metal
image(volcano)

image(volcano, col=heat.colors(100))

image(volcano, col=gray.colors(100))

image(volcano, col=terrain.colors(100))

image(volcano, col=topo.colors(100))

image(volcano, col=cm.colors(100))

contour(volcano)

image(volcano, col=terrain.colors(100)) contour(volcano, add=TRUE)

persp(volcano)

persp(volcano, theta=40, phi=30)

persp(volcano, theta=40, phi=30, expand=0.5)

persp(volcano, theta=40, phi=30, expand=0.5, col=color[facetcol])

persp(volcano, theta=40, phi=30, expand=0.5, col=color[facetcol], border=NA)

persp(volcano, theta=40, phi=30, expand=0.5, col=color[facetcol], border=NA,
      shade=0.5, ltheta=-40, lphi=40)

lib <- read.delim("libraries.txt", header=TRUE)
The data frame can have any name
Can be different from the file name
I choose to have a short name: lib
The caption says
Read mapping percentages of blood and MBD-enriched fecal samples in three libraries
This means PctReadsMappingBaboon, Type and Library
plot() is not barplot()plot(PctReadsMappingBaboon ~ ID, data=lib)

These are not bars. We need barplot
barplot() is not plot()barplot(PctReadsMappingBaboon ~ ID, data=lib)
Error in barplot.default(PctReadsMappingBaboon ~ ID, data = lib): 'height' must be a vector or a matrix
barplot() does not work wit formulas
It only works with vector, like in the first classes
barplot(lib$PctReadsMappingBaboon)
 Good. We need to separate Libraries, put names, and paint colors
barplot(lib$PctReadsMappingBaboon[lib$Library=="A"])
 This looks right for the first library
barplot(lib$PctReadsMappingBaboon[lib$Library=="A"],
    names.arg = lib$ID[lib$Library=="A"])

barplot(lib$PctReadsMappingBaboon[lib$Library=="A"],
    names.arg = lib$ID[lib$Library=="A"], las=2)

barplot(lib$PctReadsMappingBaboon[lib$Library=="A"],
    names.arg = lib$ID[lib$Library=="A"], las=2,
    col=ifelse(lib$Type[lib$Library=="A"]=="blood",
                "red", "brown"))

part <- lib[lib$Library=="A",]
barplot(part$PctReadsMappingBaboon,
    names.arg = part$ID, las=2, 
    col=ifelse(part$Type=="blood", "red", "#835923"))

barplot(part$PctReadsMappingBaboon, names.arg = part$ID, 
    col=ifelse(part$Type=="blood", "red", "#835923"),
     ylim=c(0,100), las=2)

Type=="blood"red_l <- mean(lib$PctReadsMappingBaboon[lib$Type=="blood"]) red_l
[1] 85.52833
part <- lib[lib$Library=="A",]
barplot(part$PctReadsMappingBaboon, names.arg = part$ID, 
    col=ifelse(part$Type=="blood", "red", "#835923"),
     ylim=c(0,100), las=2, main="Library A")
abline(h=red_l, col="red", lty=2, lwd=2)

part <- lib[lib$Library=="B",]
barplot(part$PctReadsMappingBaboon, names.arg = part$ID, 
    col=ifelse(part$Type=="blood", "red", "#835923"),
     ylim=c(0,100), las=2, main="Library B")
abline(h=red_l, col="red", lty=2, lwd=2)

part <- lib[lib$Library=="C",]
barplot(part$PctReadsMappingBaboon, names.arg = part$ID, 
    col=ifelse(part$Type=="blood", "red", "#835923"),
     ylim=c(0,100), las=2, main="Library C")
abline(h=red_l, col="red", lty=2, lwd=2)

par(mfrow=c(3,1))
part <- lib[lib$Library=="A",]
barplot(part$PctReadsMappingBaboon, names.arg = part$ID,
    las=2, ylim=c(0,100), 
    col=ifelse(part$Type=="blood","red","#835923"))
abline(h=red_l, col="red", lty=2, lwd=2)
part <- lib[lib$Library=="B",]
barplot(part$PctReadsMappingBaboon, names.arg = part$ID,
    las=2, ylim=c(0,100), 
    col=ifelse(part$Type=="blood","red","#835923"))
abline(h=red_l, col="red", lty=2, lwd=2)
part <- lib[lib$Library=="C",]
barplot(part$PctReadsMappingBaboon, names.arg = part$ID,
    las=2, ylim=c(0,100), 
    col=ifelse(part$Type=="blood","red","#835923"))
abline(h=red_l, col="red", lty=2, lwd=2)
par(mfrow=c(1,1))
plot(PctReadsMappingBaboon ~ PctEndogenous_fDNA, data=lib, 
     subset=Type=="feces" & Library=="B", pch=19, col="blue")

model_B <- lm(PctReadsMappingBaboon ~ PctEndogenous_fDNA,
    data=lib, subset=Type=="feces" & Library=="B")
use the same formula, data and subset as in plot()
x_B <- 0:10
y_B <- predict(model_B,
    newdata = data.frame(PctEndogenous_fDNA=x_B))
plot(PctReadsMappingBaboon ~ PctEndogenous_fDNA,
     data=lib, subset=Type=="feces" & Library=="B",
     pch=19, col="blue", ylim=c(0,90))
lines(y_B ~ x_B, col="blue", lwd=3)

plot(PctReadsMappingBaboon ~ PctEndogenous_fDNA,
     data=lib, subset=Type=="feces" & Library=="B",
     pch=19, col="blue", ylim=c(0,90))
lines(y_B ~ x_B, col="blue", lwd=3)
points(PctReadsMappingBaboon ~ PctEndogenous_fDNA,
     data=lib, subset=Type=="feces" & Library=="A",
     pch=19, col="red")

model_A <- lm(PctReadsMappingBaboon ~ PctEndogenous_fDNA,
    data=lib, subset=Type=="feces" & Library=="A")
x_A <- 0:6
y_A <- predict(model_A,
    newdata=data.frame(PctEndogenous_fDNA=x_A))
plot(PctReadsMappingBaboon ~ PctEndogenous_fDNA,
     data=lib, subset=Type=="feces" & Library=="B",
     pch=19, col="blue", ylim=c(0,90))
lines(y_B ~ x_B, col="blue", lwd=3)
points(PctReadsMappingBaboon ~ PctEndogenous_fDNA,
     data=lib, subset=Type=="feces" & Library=="A",
     pch=19, col="red")
lines(y_A ~ x_A, col="red", lwd=3)
