目前有三种常用的转录组/单细胞数据保存方法,分别为Rdata,rds和qs。 1. .Rdata优点:● 多对象保存:可以在一个 .Rdata 文件中保存多个 R 对象(如数据框、列表、模型等)。 ● 加载灵活:加载 .Rdata 文件时,可以选择性地加载其中的某些对象,而不必加载所有对象。缺点:● 文件体积较大:相比其他格式,.Rdata 文件的体积可能较大,特别是当包含多个大型对象时。 ● 文件体积较小:通常比 .Rdata 文件更小,因为 .rds 文件只保存一个对象,并且通过压缩减少文件大小。● 加载速度较快:由于文件体积小,加载速度通常比 .Rdata快。 1、Rdata格式:system.time({save(sce.all,sce,sceList,file = "sce_RAW.Rdata")})# user system elapsed # 22.915
ab <- function(addNum, rdata.path){ a <- c(1,2,3) + addNum b <- c(1,2,3) + addNum save(a, b, file =rdata.path) } ab(10, "~/tmp/test.10.RData") ------------------------------------------------------- ), file = rdata.path) } ab(100, "~/tmp/test.100.RData") --------------------------------------------- > load("~/tmp/test.100.RData") > load("~/tmp/test.10.RData") > a [1] 11 12 13 > b [1] 11 12 13 所以,我们需要改进一下 LoadToEnv <- function(RData, env = new.env()){ load(RData, env) #### 这里将RData加载到新环境里了 return
; /* total length of data in rdata chain */ 【XLogRegisterBufferData 注册数据到这个链表】 XLogRecData *rdata_head XLogRecData *rdata_head; XLogRecData *rdata_tail; ... } registered_buffer; 【初始化:】 【链表初始化把tail指向head 的地址,第一次往TAIL里面写其实就是写HEAD】 【这样可以免去初始化HEAD的动作】 regbuf->rdata_tail = (XLogRecData *) ®buf->rdata_head = &rdatas[num_rdatas++]; 【数据存在数组元素里面】 rdata->data = data; rdata->len = len; 【链表首先把第一个元素的next指向下一个】 【然后把之前】 regbuf->rdata_tail->next = rdata; regbuf->rdata_tail = rdata; regbuf->rdata_len += len; 流程图
') ) }) 得到每个癌症各自的rdata文件大小如下所示: 14M Sep 16 11:39 maftools-ACC.Rdata 167M Sep 16 11:39 maftools-BLCA.Rdata 149M Sep 16 11:40 maftools-BRCA.Rdata 98M Sep 16 11:40 maftools-CESC.Rdata 3.4M Sep 16 11:40 maftools-CHOL.Rdata 81M Sep 16 11:41 maftools-GBM.Rdata 128M Sep 16 11:41 maftools-HNSC.Rdata 3.8M Sep 16 11:41 maftools-KICH.Rdata 51M Sep 16 11:41 maftools-LGG.Rdata 63M Sep 16 11:41 maftools-LIHC.Rdata 235M Sep 16 11:42 maftools-LUAD.Rdata 219M Sep 16 11:42 maftools-LUSC.Rdata 4.4M Sep 16 11:42 maftools-MESO.Rdata 64M Sep 16 11:42 maftools-OV.Rdata
gdb) p *rdata->next $19 = {next = 0x2058120, data = 0x7ffccf66fed0 "\001", len = 5} (gdb) p *rdata->next = NULL) { char *rdata_data = rdata->data; int rdata_len = rdata->len; while (rdata_len > , freespace); rdata_data += freespace; rdata_len -= freespace; written += freespace; CurrPos == 0); memcpy(currpos, rdata_data, rdata_len); currpos += rdata_len; CurrPos += rdata_len; freespace -= rdata_len; written += rdata_len; rdata = rdata->next; } Assert(written == write_len); ..
gdb) p *rdata->next $19 = {next = 0x2058120, data = 0x7ffccf66fed0 "\001", len = 5} (gdb) p *rdata->next = NULL) { char *rdata_data = rdata->data; int rdata_len = rdata->len; while (rdata_len > , freespace); rdata_data += freespace; rdata_len -= freespace; written += freespace; CurrPos == 0); memcpy(currpos, rdata_data, rdata_len); currpos += rdata_len; CurrPos += rdata_len; freespace -= rdata_len; written += rdata_len; rdata = rdata->next; } Assert(written == write_len); ..
; /* total length of data in rdata chain */ 【XLogRegisterBufferData 注册数据到这个链表】 XLogRecData *rdata_head XLogRecData *rdata_head; XLogRecData *rdata_tail; ... } registered_buffer; 【初始化:】 【链表初始化把tail指向head 的地址,第一次往TAIL里面写其实就是写HEAD】 【这样可以免去初始化HEAD的动作】 regbuf->rdata_tail = (XLogRecData *) ®buf->rdata_head = &rdatas[num_rdatas++]; 【数据存在数组元素里面】 rdata->data = data; rdata->len = len; 【链表首先把第一个元素的next指向下一个】 【然后把之前】 regbuf->rdata_tail->next = rdata; regbuf->rdata_tail = rdata; regbuf->rdata_len += len; 流程图
')) } 得到如下所示各个亚群的rdata文件,都存放在 Rdata-celltype/ 文件夹里面 : $ ls -lh Rdata-celltype/|cut -d" " -f 5- 5.6M Aug 22 09:39 Bcells.Rdata 14M Aug 22 09:39 CD4.Rdata 22M Aug 22 09:39 CD8.Rdata 3.2M Aug 22 09:40 NK.Rdata 1.3M Aug 22 09:39 PTGDS.Rdata 2.4M Aug 22 09:40 SMC.Rdata 26K Aug 22 09:39 check_stromal_marker_by_RNA_snn_res .0.8.pdf 5.8M Aug 22 09:40 endo.Rdata 63M Aug 22 09:39 epi.Rdata 13M Aug 22 09:39 fibo.Rdata 41M Aug 22 09:40 myeloid.Rdata 6.8M Aug 22 09:39 plasma.Rdata 7.2M Aug 22 09:39 treg.Rdata 继续降维聚类分群 这里我们拿fibo
') ref <- BlueprintEncodeData() save(ref,file = 'BlueprintEncodeData.<em>Rdata</em>') ref <- MouseRNAseqData( ) save(ref,file = 'MouseRNAseqData.<em>Rdata</em>') ref <- ImmGenData() save(ref,file = 'ImmGenData.<em>Rdata</em>') 292M Apr 14 21:52 DatabaseImmuneCellExpressionData.Rdata 42M Apr 14 21:51 HumanPrimaryCellAtlasData.Rdata 56M Apr 14 21:51 ImmGenData.Rdata 24M Apr 14 21:52 MonacoImmuneData.Rdata 16M Apr 14 21:51 MouseRNAseqData.Rdata 8.6M Apr 14 21:52 NovershternHematopoieticData.Rdata 这些Rdata文件只需要通过网络传递给你,你load
openxlsx 包 install.packages("openxlsx") library(openxlsx) data <- read.xlsx("路径/你的文件.xlsx") # 读取R数据文件(.RData /.rda格式) # 从.RData文件中加载数据 load("路径/你的文件.RData") # 使用readRDS读取.rda文件 data <- readRDS("路径/你的文件.rda") (2 保存的格式是RData。 save.image(file="bioinfoplanet.RData")#保存当前所有变量 save(a,file="test.RData")#保存其中一个变量 load("test.RData" )#再次使用RData时的加载命令 (5)提取元素[] 数据框有行和列,而向量里是元素的位置 save(a,file="test.RData")这句代码如果报错object a not found,是为什么
/gbm_exp.Rdata")exp = gbm#表达矩阵ID转换library(tinyarray)exp = trans_exp_new(exp)exp[1:4,1:4]#查看NKILA基因exp /NKILA_high_low.Rdata")step2:计算logFC,其实添加change列标记基因上调下调这些工作不需要做rm(list = ls())load("Rdata/NKILA_high_low.Rdata file.exists(paste0("Rdata/",paste0(proj,"_dd.Rdata")))){ dds <- DESeqDataSetFromMatrix( countData /",paste0(proj,"_dd.Rdata")))}load(file = paste0("Rdata/",paste0(proj,"_dd.Rdata")))class(dds)res <- )library(org.Hs.eg.db)library(ggplot2)library(stringr)library(enrichplot)library(msigdbr)load("Rdata/
tpm_unstrand ## => fpkm_unstrand ## => fpkm_uq_unstrand ##=> Saving file: output_expr/TCGA-LUSC_expr.rdata output_expr文件夹,里面就是6个表达矩阵和临床信息: 完成后会多出一个文件夹 output_expr文件夹里面就是提取好的信息: 提取好的表达矩阵和临床信息 TCGA-LUSC_expr.rdata :原始的se对象,所有信息都是从这里面提取的; TCGA-LUSC_clinical.rdata:TCGA-LUSC的临床信息; TCGA-LUSC_lncRNA_expr_counts.rdata:lncRNA 的counts矩阵; TCGA-LUSC_lncRNA_expr_fpkm.rdata:lncRNA的fpkm矩阵; TCGA-LUSC_lncRNA_expr_tpm.rdata:lncRNA的tpm 矩阵; TCGA-LUSC_mRNA_expr_counts.rdata:mRNA的counts矩阵; TCGA-LUSC_mRNA_expr_fpkm.rdata:mRNA的fpkm矩阵; TCGA-LUSC_mRNA_expr_tpm.rdata
; /* total length of data in rdata chain */ XLogRecData *rdata_head; /* head of the chain of data registered with this block */ XLogRecData *rdata_tail; /* last entry in the chain, or &rdata_head if empty */ XLogRecData 第一步中,得到如下结果,mainrdata_last保存rdata[0],存储的是xl_heap_insert结构: ? 第二步,得到如下结果,取registered_buffer[0],其rdata_head->next指向rdata[1],存储tuple记录的头信息: ? 接着进入第三步,取rdata[2],将其放到rdata[1]->next中,即加入registered_buffers[0]的rdata_head链表中,存储TUPLE值: ?
/0.survival.Rdata') 因为有na值,所以重新再筛选一下表达矩阵,过滤样本: if(F){ #如果没有na可以跳过 load( file = 'output/rdata /0.lncRNA_target_expression_data.Rdata') #lncRNA和代谢基因的表达矩阵,也就是我们要检查的基因,前几篇有讲 load( file = 'output/rdata /0.expr.all.Rdata') load( file = 'output/rdata/0.survival.Rdata') lnc_dat[1:4, 1:4] # /0.lncRNA_target_expression_data.Rdata') save(n_t_exp,gp,file = 'output/rdata/0.expr.all.Rdata') } 箱线图生存分组差异检查 首先检查数据: load('output/rdata/0.expr.all.Rdata') dim(n_t_exp) #[1] 38953 130 n_t_exp
保存的格式是RData。 save.image(file="bioinfoplanet.RData")#保存当前所有变量save(a,file="test.RData")#保存其中一个变量load("test.RData")#再次使用 RData时的加载命令您提供的R代码中包含了三个与R数据存储和加载相关的函数的使用:(1)save.image(file="bioinfoplanet.RData"):这个命令将保存当前R会话中的所有对象 (2)save(a, file="test.RData"):这个命令仅仅保存名为a的对象到一个名为"test.RData"的文件中。 (3)load("test.RData"):这个命令用于加载之前保存的"test.RData"文件。这会将文件中的对象恢复到当前R会话中。
soft2 <- read.table("soft.txt",header = T,sep = "\t")图片#导出为csvwrite.csv(soft,file = "soft.csv")将soft保存为Rdata save(soft,file = "soft.Rdata")rm(list = ls())load(file = "soft.Rdata")如果要读取/保存的文件在工作目录的下一级:test=read.table ("import/xxx.txt")#其中import为文件夹名称,而xxx.txt为文件名称save(x,file="Rdata/xxx.Rdata")如果要读取/保存的文件为工作目录的同级位置(隔壁文件夹 /load("../1_data_pre/xxx.Rdata")图片图片#使用前需要加载R包"data.table"a=data.table::fread("soft.txt",data.table=F
TCGA-XXX_clinicalSE.rdata: indexed clinical information extracted from the SummarizedExperiment object TCGA-XXX_gene_info.rdata: gene information, including HGNC Gene Symbol, Ensembl ID, gene type, eta. TCGA-XXX_mrna_expr_count.rdata: mRNA count expression matrix TCGA-XXX_mrna_expr_tpm.rdata: mRNA tpm expression matrix TCGA-XXX_mrna_expr_fpkm.rdata: mRNA fpkm expression matrix TCGA-XXX_lncrna_expr_count.rdata: lncRNA count expression matrix TCGA-XXX_lncrna_expr_tpm.rdata: lncRNA tpm expression matrix TCGA-XXX_lncrna_expr_fpkm.rdata
如何删除线粒体基因表达过高的细胞 Part1:加载包并读入Rdata文件 读入Rdata文件并查看Rdata文件保存的变量 查看保存变量名后,读入Rdata文件 Part2:对多样本中的每个样本查看质量并过滤 Part1:加载包并读入Rdata文件 读入Rdata文件并查看Rdata文件保存的变量 load("H:/Scripts_scRNA_seq_2020/seurat_object.small.Rdata ") attach("H:/Scripts_scRNA_seq_2020/seurat_object.small.Rdata") ls("file:H:/Scripts_scRNA_seq_2020/seurat_object.small.Rdata ") ## [1] "object" 查看保存变量名后,读入Rdata文件 library(easypackages) load_packages <- c('Seurat', 'MASS', 'dplyr ', 'ggplot2') libraries(load_packages) load('H:/Scripts_scRNA_seq_2020/seurat_object.small.Rdata
R语言中特有的数据储存格式,无法用其他软件打开 #保存的是变量(向量、矩阵、列表等),不是表格文件 >save() #保存 save只能用于保存Rdata >save(test,file="xxx.Rdata ") >load() #加载 >load("xxx.Rdata") #不需要进行赋值 如x=load("xxx.Rdata") Rdata本身含有变量的不需要再进行赋值 #在当前文件夹( ="Rdata/xxx.Rdata") #当前在一个文件夹中想要调用另一个文件夹的Rdata #方法一 复制路径下载 getwd() [1] "/Users/zhuo/learn /R_02 >save(soft,file = "soft.Rdata") >rm(list = ls()) #将环境中的所有数据清空 为了看保存的文件 >load(file = "soft.Rdata") 练习 ,再加载它 > save(x,file="x.Rdata") > rm(list = ls()) > load("x.Rdata") 6.加载y.Rdata(已保存在工作目录),求gene1列的平均值
以下是富集分析需要用到的R包 rm(list = ls()) load(file = 'step4output.Rdata') library(clusterProfiler) library(ggthemes “存在即跳过,不存在即运行”,可以节省时间,不重复运行 # 初阶版本:手动修改if后面的F,需要运行的时候改成T if(F){ a = 1 #假装是限速步骤 save(a,file = "a.Rdata ") #保存运行结果,下次运行到这里时直接加载结果 } load("a.Rdata") # 高阶版本 f = "a.Rdata" if(! file.exists(f)){ #只有f文件(a.Rdata)在工作目录下不存在时才运行,否则跳过这段代码 a = 1 #假装是限速步骤 print("bye") #如果运行了这个代码,就输出一个 “bye”,起到提示作用 save(a,file = f) } load(f) # 完美版本:只修改q的内容就可,不同的数据对应不同的q q = "124" f = paste0(q,"a.Rdata