新手小白!!!请多批评指正!!!
某天分析384板数据觉得有点耗时,恰逢R语言刚入门1周,觉得可行,于是行动
在此感谢生信技能树和小洁老师!
个人习惯每次做两个复孔,上下为同一孔,每个引物占两行
每次可运行8个引物,每个引物总样本量最大为24
数据示例:
rm(list = ls())
#!!!修改参数!!!
dat <- read.csv(file = "ct_value_2.csv",header = F) #文件名
gene_list <- c("ACTIN","A","B","C","D","E","F","G") #基因名
neican <- "ACTIN" #内参是哪个基因
n_group <- 3 #分组个数
name_sample <- c("CTRL","TREAT","THERAPY") #组名
n_sample <- c(5,7,12) #每组样本数量
#!!!修改结束!!!
以上内容为不同数据修改参数
如果样本量不满24,引物不满8个,可如下放置数据
# 计算均值
b <- (1:16)[c(T,F)]
for(i in b){
dat[(((i+1)/2)+16),] <- apply(dat[i:(i+1),],2,mean)
}
dat_aver <- dat[17:24,]
#计算dCT值
library(stringr)
neican_n <- which(str_detect(gene_list,neican) == T)
for (i in 1:8) {
dat_aver[i+8,] <- dat_aver[i,]-dat_aver[neican_n,]
}
dat_dCT <- dat_aver[9:16,]
dat_dCT <- dat_dCT[-neican_n,]
#计算ddCT
con_aver <- apply(dat_dCT[,1:n_sample[1]], 1, mean)
for (i in 1:7) {
dat_dCT[i+7,] <- dat_dCT[i,] - con_aver[[i]]
}
dat_ddCT <- dat_dCT[8:14,]
##计算foldchange
dat_foldchange <- 2^(-dat_ddCT)
dat_foldchange
##命名
name <- rep(name_sample[1],n_sample[1])
for (i in 2:n_group) {
name=c(name,rep(name_sample[i],n_sample[i]))
}
library(tidyr)
library(tibble)
library(dplyr)
gene_name <- gene_list[-neican_n]
gene_name2 <- paste0("gene_",gene_name)
dat_1 = t(dat_foldchange) %>%
as.data.frame()
round(dat_1,2)
colnames(dat_1) = gene_name2
dat_2 = rownames_to_column(dat_1) %>%
mutate(group = name)
pdat = dat_2%>%
pivot_longer(cols = starts_with("gene"),
names_to = "gene",
values_to = "count") #宽变长
library(ggplot2)
pdat$group2 <- factor(pdat$group,levels = name_sample)
p = ggplot(pdat,aes(gene,count))+
geom_boxplot(aes(fill= group2))+
theme_bw()
p
p + facet_wrap(~gene,scales = "free")
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。