回顾单细胞RNA-seq分析介绍 单细胞RNA-seq的设计和方法 从原始数据到计数矩阵 学习目标了解R言语使用的各种数据类型和数据结构 在R中使用函数并了解如何获取有关参数的帮助 使用dplyr包中的管道(%>%) 了解ggplot2用于绘图的语法
配置创建一个新的项目目录
加载库并读入数据,同时并思考以下问题
1library(tidyverse) 2counts <- read.csv("data/raw_counts_mouseKO.txt") 3class(counts) 4str(counts)
创建向量/因子和数据框我们正在对p53野生型(WT)和敲除(KO)基因型的癌症样本进行RNA-seq。有8个样本,每个样本4个重复。编写R代码构建,如下所述。 1sex <- rep(c("M","F"),4) 2stage <- rep(c(1,2),4) 3genotype <- c(rep("KO",4),rep("WT",4)) 4myc <- c(23,4,45,90,34,35,9, 10) 5meta <- data.frame(sex=sex, 6 stage=stage, 7 genotype=genotype, 8 myc=myc) 9rownames(meta) <- c(paste0(rep("KO",4),1:4),paste0(rep("WT",4),1:4))
探索数据既然我们已经创建了元数据数据框,在执行任何分析之前获取一些关于数据的描述性统计数据通常是一个好习惯。 1str(meta) 2all(rownames(meta) %in% colnames(counts)) 3all(rownames(meta) == colnames(counts)) 4 5meta$stage <- factor(meta$stage) 6str(meta)
提取数据使用上一个问题中创建的meta 数据框,执行以下练习(问题之间不是相互依赖): 使用[] 仅返回genotype 和sex 列 使用[] 返回样本1、7和8的genotype 值 用于filter() 返回基因型为WT的样本的所有数据 使用filter() / select() 仅返回myc> 50的那些样本的stage 和genotype 列 在数据框的开头添加一个名为pre_treatment 的列,其值为T、F、T、F、T、F、T、F 使用%>%创建meta 对象的tibble 并将其命名为meta_tb (确保不会丢失行名!) 将列的名称更改为:“ A”,“ B”,“ C”,“ D”,“ E”
1meta[,c(2,3)] 2#or 3meta[,c("stage","genotype")] 4 5meta[c(1,7,8),"genotype"] 6 7filter(meta, genotype == "WT") 8 9meta %>% filter(myc > 50) %>% select(stage, genotype) 10#or 11select(filter(meta, myc > 50), stage, genotype) 12 13pretreatment <- c(T, F, T, F, T, F, T, F) 14meta <- cbind(pretreatment, meta) 15###思考一下这样为什么会有问题 16 17meta_tb <- meta %>% rownames_to_column(var="sampleIDs") %>%as_tibble() 18 19colnames(meta_tb)[2:6] <- LETTERS[1:5]
可视化数据通常,当我们使用各种图形进行可视化探索时,更容易看到数据的模式或性质。让我们使用ggplot2来探索基于基因型的Myc基因表达的差异。 1ggplot(meta) + 2 geom_boxplot(aes(x = genotype, y = myc)) + 3 theme_minimal() + 4 ggtitle("Myc expression") + 5 ylab("Myc level") + 6 xlab("Genotype") + 7 theme(plot.title = element_text(hjust=0.5, size = rel(2)))
为下游分析做准备许多不同的统计工具或分析包都希望作为输入的所有数据都在列表结构中。让我们创建一个包含count和metadata的数据列表,为后续分析做准备。 1project1 <- list(meta, counts, rownames(meta)) 2project1
注:以上内容来自哈佛大学生物信息中心(HBC)的教学团队的生物信息学培训课程。原文链接:https://hbctraining./scRNA-seq/schedule/
|