我们经过了四周的分享,把R的整理数据,基础画图,ggplot2 画图以及从分析数据到报告的过程进行了了解。我们现在已经基本可以用到课堂内容进行数据矩阵的整理最后画出能用于文字发表的图
考核的内容也是这一过程的应用:我打算用两个Fig的生成进行考核,第一个是散点图[60%],第二个是折线图(也可以使用散点图展示)[40%]。
我将从结果顺利展示[30%],代码顺利运行[30%],执行效率[15%],和代码规范[25%]四个方面进行评价。
Task.1 Generate a volcano graph for DEG data. (difficulty: ;60%)
- 读取数据到R环境.
提取log2FoldChange列和p.adj列
- 画一个散点图 (log2FoldChange vs -log(p.adj)) :这里面要做个矩阵的数据处理 矩阵中只有padj 但是图上需要-log(p.adj)
- 上色,把 foldchang 为正的 加上红色,绿色表示下降的点,所有padj大于0.05点全部涂上灰色(“gray”)
- 图片名称改为"Figure.1 Volcano Graph"
- (选做) 加上水平线表明padj 0.05点位置
- (选做) 如果可以的话尝试封装你的代码到一个函数中
ggplot(exam,aes(x=log2FoldChange,y=-log10(padj))) +
geom_point(pch=21,color=alpha("black",0),fill=exam$color)+
xlim(c(-3,3)) +
labs(title="volcano graph for RF_vs_RS w/o RS_T4") +
geom_hline(yintercept = 1.3,color="gray") +
geom_vline(xintercept = 0,color="gray") +
theme(title = element_text(face = "bold"))
Task.2 Generate a GC distribution map. (difficulty: ;40%)
- 读取数据到R环境.
2.画一个折线图 (x=pos,y=base%) :这里面要做个矩阵的数据处理 每条PE150 reads到相应位置到碱基分布,也就是300个位置 NATCG到分布情况要实先统计出来。在画ggplot2的时候可能要用到长矩阵和宽矩阵的转化,下面有个例子。
- 题目改为"Figure.2 GC distribution"
- (选做) 如果可以的话尝试封装你的代码到一个函数中
FYI: might need melt() function to change the wide- to long-format matrix, and then use ggplot2 for ploting.
head(original)
## N A C T G pos
## 1 0.00044 0.21212 0.26264 0.05120 0.47360 1
## 2 0.00000 0.18766 0.28970 0.32026 0.20238 2
## 3 0.00000 0.19334 0.32042 0.27598 0.21026 3
## 4 0.00000 0.14242 0.38242 0.32514 0.15002 4
## 5 0.00000 0.33694 0.17736 0.30862 0.17708 5
## ...
## 149 0e+00 0.21234 0.20236 0.30840 0.27690 149
## 150 0e+00 0.21130 0.19410 0.32916 0.26544 150
df <- melt(original,id.vars=c("pos"))
head(df)
## pos variable value
## 1 1 N 0.00044
## 2 2 N 0.00000
## 3 3 N 0.00000
## ...
## 150 150 G 0.24000
## 150 150 T 0.36000
ggplot(df,aes(x=pos,y=value,group=variable,color=variable))
+ geom_line()