oligo和affy这两个包都能够处理CEL结尾的芯片数据,但是适用性存在一定的差别。让大模型帮忙整理了一下。
感觉回答的还挺好。
选择一个适合oligo包的CEL数据
提供一个解压缩并且移动文件的思路代码
# 解压缩
library(R.utils)
# 设置原始目录(包含 .gz 文件)
input_dir <- "~/Desktop/GSE76250/GSE76250_RAW/"
# 设置解压后的目标目录(确保已存在)
output_dir <- "~/Desktop/GSE76250/GSE76250_new/"
dir.create(output_dir, showWarnings = FALSE)
# 获取所有 .gz 文件路径
gz_files <- list.files(input_dir, pattern = "\\.gz$", full.names = TRUE)
# 解压到新的文件夹中
for (f in gz_files) {
gunzip(filename = f,
destname = file.path(output_dir, sub("\\.gz$", "", basename(f))),
overwrite = FALSE,
remove = FALSE) # 设置为 FALSE 不删除原文件
}
正式流程
library(oligo)
# 设置路径
dir_cels='/Users/zaneflying/Desktop/GSE76250/GSE76250_new/'
cel_files <- list.celfiles(dir_cels, full.names = TRUE)
affy_data <- read.celfiles(cel_files)
expr_matrix <- exprs(eset) # 获取表达量数据
选择一个适合affy包的CEL数据
library(affy)
getwd()
dir_cels='~/Desktop/GSE76250/GSE76250_RAW/'
#affy_data = ReadAffy(celfile.path=dir_cels)
eSet = rma(affy_data) #rma函数去normalization
##要进行过滤
calls = mas5calls(affy_data) # get PMA calls
calls = exprs(calls)
absent = rowSums(calls == 'A') # how may samples are each gene 'absent' in all samples
absent = which(absent == ncol(calls)) # which genes are 'absent' in all samples
eSet = eSet[-absent,] # filters out the genes 'absent' in all samples
save(eSet,file = "GSE38832_afterCEL.Rdata")
注:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多相关内容可关注公众号:生信方舟 。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。