1简介

在许多分析中,大量的变量必须针对感兴趣的性状/终点进行独立测试,同时还需要调整协变量和混杂因素。其中的主要瓶颈是完成这些分析所需的时间。

RegParallel,可以同时执行大量的测试。在一个12核系统上,可以同时测试144个变量,通过“嵌套”并行处理在几秒钟内处理1000个变量。

工作逻辑回归,线性回归,条件逻辑回归,考克斯比例风险和生存模型,贝叶斯逻辑回归。也迎合了广义线性模型,利用' survey ' CRAN包创建的调查权重,并利用' survey::svyglm '。

2安装

2.11.从Bioconductor下载软件包

如果requireNamespace“BiocManager”静静地=真正的))install.packages“BiocManager”BiocManager::安装“RegParallel”

注:安装开发版本:

遥控器::install_github“kevinblighe / RegParallel”

2.22.将包加载到R会话中

图书馆(RegParallel)

3.快速启动

为了快速入门,我们将跟随的教程(来自第3.1节)RNA-seq工作流程:基因级探索性分析和差异表达.具体来说,我们将加载“气道”数据,其中不同的气道平滑肌细胞用地塞米松处理。

图书馆(气管)图书馆(magrittr)数据“气道”气道敏捷% < > %relevel“untrt”

将原始计数规范化DESeq2并产生正则化的日志表达级别:

图书馆(DESeq2)dds < -DESeqDataSet(气道,设计=敏捷+细胞)dds < -DESeq(dds,betaPrior =rldexpr < -分析rlog(dds,盲目的=))rlddata < -data.framecolData(气管),t(rldexpr))

3.1进行最基本的逻辑回归分析

在此,我们拟合一个二项逻辑回归模型通过glmParallel,以地塞米松为因变量。

# #没有运行res1 < -RegParalleldata =rlddata (,13000),公式=“敏捷~(*)”有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的)),FUNtype =“漠视”变量=colnames(rlddata) [103000])res1 [订单(res1P,减少=),)
##变量Term Beta standderror Z ## 1: ENSG00000095464 ENSG00000095464 43.27934 2.593463e+01 1.6687854476 ## 2: ENSG00000071859 ENSG00000071859 12.96251 7.89028712 ENSG00000069812 -44.37139 2.704021e+01 -1.6409412536 ## 3: ENSG00000069812 ENSG00000069812 -44.37139 2.704021e+01 -1.6409412536 ## 4: ENSG00000072415 ENSG00000072415 ENSG00000072415 -19.90841 1.227527e+01 -1.6218306224 ## 5: ENSG00000073921 ENSG00000073921 14.59470 8.999831e+00 1.6216635641 ##——## 2817:ENSG00000068831 ENSG00000068831 110.84893 2.729072e+05 0.0004061781 ## 2818:ENSG00000069020 ENSG00000069020 -186.45744 4.603615e+05 -0.0004050239 ## 2819: ENSG00000083642 ENSG00000083642 -789.55666 1.951104e+06 -0.0004046717 ## 2820: ENSG00000104331 ENSG00000104331 394.14700 9.749138e+05 0.0004042891 ## 2821: ensg00000084331 ENSG00000104331 394.14700 9.749138e+05 0.0004028919 ## P或ORlower或upper ## 1: 0.09515991 6.251402e+18 5.252646e-04 7.440065e+40 ## 2: 0.10041536 4.261323e+05 8.190681e-02 2.217017e+12 ## 3:0.10080961 5.367228e-20 5.165170e-43 5.577191e+03 ## 4: 0.10483962 2.258841e-09 8.038113e-20 6.347711e+01 ## 5: 0.10487540 2.179701e+06 4.761313e-02 9.978541e+13 ##——## 2817:0.99967592 1.383811e+48 0.000000e+00 NA ## 2818: 0.99967684 1.053326e-81 0.000000e+00 NA ## 2819: 0.99967712 0.000000e+00 0.000000e+00 NA ## 2820: 0.99967742 1.499222e+171 0.000000e+00 NA ## 2821: 0.99967854 3.514359e-95 0.000000e+00 NA

3.2执行基本的线性回归

在这里,我们将使用两者来执行线性回归glmParallel而且lmParallel.我们将欣赏线性回归使用默认设置的函数是相同的。

正则化的日志表达式级别DESeq2将使用数据。

rlddata < -rlddata (,12000它< -RegParalleldata =rlddata,公式=“[*]~细胞”有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,方法=“glm.fit”),FUNtype =“漠视”变量=colnames(rlddata) [10ncol(rlddata)),p.adjust =“没有”res3 < -RegParalleldata =rlddata,公式=“[*]~细胞”有趣的=函数(公式,数据)lm公式=公式,data =数据),FUNtype =“lm”变量=colnames(rlddata) [10ncol(rlddata)),p.adjust =“没有”子集(它,<0.05
##变量术语Beta标准错误t ## 1: ENSG00000001461 cellN061011 -0.46859875 0.10526111 -4.451775 ## 2: ENSG00000001461 cellN080611 -0.84020922 0.10526111 -7.982143 ## 3: ENSG00000001461 cellN61311 -0.87778101 0.10526111 -8.339082 ## 4: ENSG00000001461 cellN080611 -1.71802758 0.13649920 -12.586357 ## 5: ENSG00000001561 cellN61311 -1.05328889 0.13649920 -7.716448 ##——## 519:ENSG00000001461 cellN061011 -0.12721659 0.01564082 -8.133625 ## 520:ENSG00000092108 cellN61311 -0.12451203 0.01564082 -7.960708 ## 521: ENSG00000092148 cellN080611 -0.34988071 0.10313461 -3.392467 ## 522: ENSG00000092200 cellN080611 0.05906656 0.01521063 3.883241 ## 523: ENSG00000092200 cellN080611 -0.28587683 0.08506716 -3.360602 # P或ORlower ORupper ## 1: 0.0112313246 0.6258787 0.5092039 0.7692873 ## 2: 0.0013351958 0.4316202 0.3511543 0.3382098 0.5109554 ## 4: 0.0002293465 0.1794197 0.1373036 0.2344544 ## 5:0.0015182960 0.3487887 0.2669157 0.4557753 ##——## 519:0.0012429963 0.8805429 0.8539591 0.9079544 ## 520:0.0013489163 0.8829276 0.8562718 0.9104133 ## 521:0.0274674209 0.7047722 0.5757851 0.8626549 ## 522:0.0177922771 1.0608458 1.0296864 1.0929482 ## 523:0.0282890537 0.7513552 0.6359690 0.8876762
子集(res3, P<0.05
##变量术语Beta标准错误t ## 1: ENSG00000001461 cellN061011 -0.46859875 0.10526111 -4.451775 ## 2: ENSG00000001461 cellN080611 -0.84020922 0.10526111 -7.982143 ## 3: ENSG00000001461 cellN61311 -0.87778101 0.10526111 -8.339082 ## 4: ENSG00000001461 cellN080611 -1.71802758 0.13649920 -12.586357 ## 5: ENSG00000001561 cellN61311 -1.05328889 0.13649920 -7.716448 ##——## 519:ENSG00000001461 cellN061011 -0.12721659 0.01564082 -8.133625 ## 520:ENSG00000092108 cellN61311 -0.12451203 0.01564082 -7.960708 ## 521: ENSG00000092148 cellN080611 -0.34988071 0.10313461 -3.392467 ## 522: ENSG00000092200 cellN080611 0.05906656 0.01521063 3.883241 ## 523: ENSG00000092200 cellN080611 -0.28587683 0.08506716 -3.360602 # P或ORlower ORupper ## 1: 0.0112313246 0.6258787 0.5092039 0.7692873 ## 2: 0.0013351958 0.4316202 0.3511543 0.3382098 0.5109554 ## 4: 0.0002293465 0.1794197 0.1373036 0.2344544 ## 5:0.0015182960 0.3487887 0.2669157 0.4557753 ##——## 519:0.0012429963 0.8805429 0.8539591 0.9079544 ## 520:0.0013489163 0.8829276 0.8562718 0.9104133 ## 521:0.0274674209 0.7047722 0.5757851 0.8626549 ## 522:0.0177922771 1.0608458 1.0296864 1.0929482 ## 523:0.0282890537 0.7513552 0.6359690 0.8876762

3.3通过Cox比例风险回归进行生存分析

对于这个例子,我们将加载乳腺癌基因表达数据与无复发生存期(RFS)乳腺癌基因表达谱:了解组织学分级的分子基础以改善预后.具体来说,我们将根据z评分将每个基因的表达编码为Low|Mid|High,并将其与RFS进行比较,同时在Cox比例风险模型中调整肿瘤级别。

首先,让我们读入并准备数据:

图书馆(Biobase)图书馆(GEOquery)#从GEO加载系列和平台数据gset < -getGEO“GSE2990”GSEMatrix =真正的getGPL =x < -exprs(gset [[1]])#删除Affymetrix控制探头x < -x (-grep“^ AFFX”rownames(x)))#将表达式数据转换为Z分数x < -t规模t(x)))#从表型数据中提取感兴趣的信息(pdata)idx < -哪一个colnamespData(gset [[1]]))%, %c“年龄:ch1”“遥远的rfs: ch1”“呃:ch1”“ggi: ch1”“评级:ch1”“节点:ch1”“大小:ch1”“时间rfs: ch1”))元数据< -data.framepData(gset [[1]]) [idx],row.names =rownamespData(gset [[1]])))#删除pdata中任何NA值的样本丢弃< -应用(元数据,1函数(x)任何is.na(x)))元数据< -元数据(丢弃,)#筛选Z-scores表达式数据,以匹配pdata中的样本x < -x (,哪一个colnames(x)%, %rownames(元数据)))#检查样本名称在pdata和z分数之间完全匹配所有((colnames(x)= =rownames(元数据))= =真正的
# # [1]
#创建一个合并的pdata和z分数对象coxdata < -data.frame(元数据,t(x))#整洁的列名colnames(coxdata) [18) < -c“年龄”的遥远。RFS”“呃”“GGI”“年级”“节点”“大小”的时间。RFS”#准备某些表现型coxdata年龄< -as.numericgsub“KJ ^”, coxdata年龄)coxdata遥远。RFS < -as.numeric(coxdataDistant.RFS)coxdataER < -因素(coxdata呃,水平=c01))coxdata年级< -因素(coxdata年级的时候,水平=c123.))coxdata时间。RFS < -as.numericgsub“^ KJX | ^ KJ的, coxdataTime.RFS))

有了准备好的数据,我们现在可以针对RFS对数据集中的每个探测独立应用考克斯比例风险模型。

在这里,我们还将默认块大小增加到2000,以加快分析速度。

图书馆(生存)res5 < -RegParalleldata =coxdata,公式=Surv(时间。RFS ~ [*]'有趣的=函数(公式,数据)coxph公式=公式,data =数据,关系=‘‘健康’单数。好吧=真正的),FUNtype =“coxph”变量=colnames(coxdata) [9ncol(coxdata)),blocksize =2000p.adjust =“黑洞”res5 < -res5 [is.na(res5P))res5
##变量Term Beta standderror Z ## 1: X1007_s_at X1007_s_at 0.3780639987 0.3535022 1.0694811914 ## 2: X1053_at X1053_at 0.1177398813 0.2275041 0.5175285346 ## 3: X117_at X117_at 0.6265036787 0.6763106 0.9263549892 ## 4: X121_at X121_at -0.6138126274 0.6166626 -0.9953783151 ## 5: X1255_g_at X1255_g_at -0.2043297829 0.3983930 -0.5128849375 ##——## 22211:X91703_at X91703_at -0.4124539527 0.4883759 -0.8445419981 ## 22212:X91816_f_at X91816_f_at 0.0482030943 0.3899180 0.1236236554 ## 22214: X91920_at X91920_at -0.6452125945 0.8534623 -0.7559942684 ## 22215: X91952_at X91920_at -0.0001396044 0.7377681 -0.0001892254 ## P LRT Wald LogRank HR HRlower HRupper ## 1: 0.2848529 0.2826716 0.2848529 0.2848400 1.4594563 0.72994385 2.918050 ## 2: 0.6047873 0.6085603 0.6047873 0.1249515 0.72024775 1.757056 ## 3:0.3542615 0.3652989 0.3542615 0.3541855 1.8710573 0.49706191 7.043097 ## 4: 0.3195523 0.3188303 0.3195523 0.3186921 0.5412832 0.16162940 1.812712 ## 5: 0.6080318 0.6084157 0.6080318 0.6077573 0.8151935 0.37337733 1.779809 ##——## 22211:0.3983666 0.3949865 0.3983666 0.3981244 0.6620237 0.25419512 1.724169 ## 22212:0.9016133 0.9015048 0.9016133 0.9016144 1.0493838 0.48869230 2.253373 ## 22213:0.8691759 0.8691994 0.8691759 0.8691733 1.0561974 0.55103934 2.024453 ## 22214:0.4496526 0.44478541 0.4496526 0.4498007 0.5245510 0.09847349 2.794191 ## 22215: 0.9998490 0.9998490 0.9998490 0.9998490 0.9998604 0.23547784 4.245498 ## p .调整LRT。调整瓦尔德。LogRank调整。调整## 1:0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 ## 3:0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 ## 4:0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 ##——## 22211:0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 ## ## 22211:0.9999969 0.9999969 0.9999969 0.9999969 ## 22213:0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 ## 22214:0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 0.9999969 ## 22215:0.9999969 0.9999969 0.9999969 0.9999969 0.9999969

我们现在根据Log Rank p-value从模型中提取顶部探测并使用biomaRt查找相应的基因符号。

没有运行

res5 < -res5 [订单(res5LogRank,减少=),)最后< -子集(res5 LogRank<0.01探针< -gsub“X ^”,最终变量)图书馆(biomaRt)集市< -useMart“ENSEMBL_MART_ENSEMBL”主机=“useast.ensembl.org”集市< -useDataset“hsapiens_gene_ensembl”集市)annotLookup < -getBM集市=集市,属性=c“affy_hg_u133a”“ensembl_gene_id”“gene_biotype”“external_gene_name”),过滤器=“affy_hg_u133a”值=探针,uniqueRows =真正的

最热门的两个词条包括CXCL12而且MMP10.高表达的CXCL12既往与良好的乳腺癌无进展和总生存率相关(doi: 10.1016/ j.a ca.2018.05.041.)[https://www.ncbi.nlm.nih.gov/pubmed/29800557的高度表达MMP10与结肠癌预后不良相关(doi: 10.1186/s12885-016-2515-7)[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4950722/]。

我们可以通过将这些基因表达z分数按低、中、高表达分组来进一步探索这些基因对RFS的作用:

#提取RFS和探针数据用于下游分析survplotdata < -coxdata (,c的时间。RFS”的遥远。RFS”“X203666_at”“X205680_at”)]colnames(survplotdata) < -c的时间。RFS”的遥远。RFS”“CXCL12”“MMP10”#设置高、低表达式的z刻度截断highExpr < -1.0lowExpr < -1.0#将CXCL12和MMP10的表达式编码为low、mid和highsurvplotdataCXCL12 < -ifelse(survplotdataCXCL12> =highExpr,“高”ifelse(x< =lowExpr,“低”“中期”))survplotdataMMP10 < -ifelse(survplotdataMMP10> =highExpr,“高”ifelse(x< =lowExpr,“低”“中期”))#重新调整因素的水平,以中间作为参考水平survplotdataCXCL12 < -因素(survplotdataCXCL12,水平=c“中期”“低”“高”))survplotdataMMP10 < -因素(survplotdataMMP10,水平=c“中期”“低”“高”))

绘制生存曲线,并在图中放置Log Rank p值:

图书馆(survminer)ggsurvplotsurvfitSurv(时间。RFS Distant.RFS)CXCL12,data =survplotdata),data =survplotdata,风险。table =真正的pval =真正的break.time.by =500ggtheme =theme_minimal(),risk.table.y.text.col =真正的risk.table.y.text =
通过Cox比例风险回归进行生存分析。

通过Cox比例风险回归进行生存分析。

ggsurvplotsurvfitSurv(时间。RFS Distant.RFS)MMP10,data =survplotdata),data =survplotdata,风险。table =真正的pval =真正的break.time.by =500ggtheme =theme_minimal(),risk.table.y.text.col =真正的risk.table.y.text =
通过Cox比例风险回归进行生存分析。

通过Cox比例风险回归进行生存分析。

3.4执行条件逻辑回归

在本例中,我们将重新使用Cox数据,以肿瘤等级作为分组/匹配因子进行条件逻辑回归。对于本例,我们将使用ER状态作为因变量,并根据年龄进行调整。

x < -exprs(gset [[1]])x < -x (-grep“^ AFFX”rownames(x)))x < -规模(x)x < -x (,哪一个colnames(x)%, %rownames(元数据)))coxdata < -data.frame(元数据,t(x))colnames(coxdata) [18) < -c“年龄”的遥远。RFS”“呃”“GGI”“年级”“节点”“大小”的时间。RFS”coxdata年龄< -as.numericgsub“KJ ^”, coxdata年龄)coxdata年级< -因素(coxdata年级的时候,水平=c123.))coxdataER < -as.numeric(coxdataER)coxdata < -coxdata [is.na(coxdataER),)res6 < -RegParalleldata =coxdata,公式='ER ~[*] +年龄+地层(年级)'有趣的=函数(公式,数据)clogit公式=公式,data =数据,方法=‘‘健康’),FUNtype =“clogit”变量=colnames(coxdata) [9ncol(coxdata)),blocksize =2000子集(res6, P<0.01
##变量术语Beta标准标准Z P ## 1: X204667_at X204667_at 0.9940504 0.3628087 2.739875 0.006146252 ## 2: X205225_at X205225_at 0.4444556 0.1633857 2.720285 0.006522559 ## 3: X207813_s_at X207813_s_at 0.8218501 0.3050777 2.693904 0.007062046 ## 4: X212108_at X212108_at 1.9610211 0.7607284 2.577820 0.009942574 ## 5: X219497_s_at X219497_s_at -1.0249671 0.3541401 -2.894242 0.003800756 ## LRT LogRank HR HRlower HRupper ## 1:0.006808415 0.02212540 0.02104525 2.7021573 1.3270501 5.502169 ## 2: 0.010783544 0.01941078 0.01701248 1.5596409 1.1322713 2.148319 ## 3: 0.037459927 0.02449358 0.02424809 2.2747043 1.2509569 4.136257 ## 4: 0.033447973 0.03356050 0.03384960 7.1065797 1.6000274 31.564132 ## 5: 0.005153233 0.01387183 0.01183245 0.1792329 0.718302

没有运行

getBM集市=集市,属性=c“affy_hg_u133a”“ensembl_gene_id”“gene_biotype”“external_gene_name”),过滤器=“affy_hg_u133a”值=c“204667 _at”“205225 _at”“207813 _s_at”“212108 _at”“219497 _s_at”),uniqueRows =真正的

雌激素受体(ESR1)出来了——有道理!另外,尽管204667_at没有列在biomaRt的外显子重叠FOXA1,这也与雌激素信号有关。

##使用(Mb) gc触发器(Mb)最大使用(Mb) ## Ncells 7917847 422.9 12532660 669.4 12532660 669.4 ## Vcells 16276504 124.2 52065173 397.3 52065137 397.3

4先进的功能

高级功能包括修改块大小、选择不同数量的核心、启用“嵌套”并行处理、修改置信区间的限制以及从输出中排除某些模型项的能力。

4.1加快处理

首先为基准测试创建一些测试数据:

选项scipen =10选项数字=6#创建一个20 x 60000(行x cols)随机数的数据矩阵坳< -60000行< -20.垫< -矩阵rexp(坳行,率=.1),ncol =上校)#添加假基因和样本名称colnames(垫)< -paste0“基因”1ncol(垫))rownames(垫)< -paste0“样本”1nrow(垫))#添加一些假元数据造型< -data.frame细胞=代表c“B”“T”),nrow(垫)/2),组=c代表c“治疗”),nrow(垫)/2),代表c“控制”),nrow(垫)/2)),剂量=tdata.frame矩阵rexp(行,率=1),ncol =行))),垫,row.names =rownames(垫))

以下4.4.1~ 2000测试;blocksize, 500;核心,2;nestedParallel,真

使用2个内核而不是默认的3个内核,再加上启用了nestedParallel,总共将使用2 x 2 = 4个线程。

df < -造型(,12000变量< -colnames(df) [4ncol(df)]天车< -proc.time()res < -RegParalleldata =df,公式='因子(组)~[*]+(单元:剂量)^ 2'有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的),方法=“glm.fit”),FUNtype =“漠视”变量=变量,blocksize =500核=2nestedParallel =真正的p.adjust =“通过”proc.time()-天车
##用户系统运行## 3.416 1.922 2.764

4.1.2~ 2000测试;blocksize, 500;核心,2;nestedParallel,假

df < -造型(,12000变量< -colnames(df) [4ncol(df)]天车< -proc.time()res < -RegParalleldata =df,公式='因子(组)~[*]+(单元:剂量)^ 2'有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的),方法=“glm.fit”),FUNtype =“漠视”变量=变量,blocksize =500核=2nestedParallel =p.adjust =“通过”proc.time()-天车
##用户系统运行## 3.156 0.439 3.580

关注运行时间(因为系统时间只报告完成的最后一个核心的时间),我们可以看到嵌套处理的改进微不足道,或者在对少量变量进行测试时,在某些条件下可能会更慢。这可能是由于简单地管理大量线程导致系统变慢。只有在处理大量变量时才能获得嵌套处理的好处:

4.1.3~ 40000测试;blocksize, 2000;核心,2;nestedParallel,真

df < -造型(,140000变量< -colnames(df) [4ncol(df)]system.timeRegParalleldata =df,公式='因子(组)~[*]+(单元:剂量)^ 2'有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的),方法=“glm.fit”),FUNtype =“漠视”变量=变量,blocksize =2000核=2nestedParallel =真正的))
##用户系统运行## 85.054 17.535 52.417

4.1.4~ 40000测试;blocksize, 2000;核心,2;nestedParallel,假

df < -造型(,140000变量< -colnames(df) [4ncol(df)]system.timeRegParalleldata =df,公式='因子(组)~[*]+(单元:剂量)^ 2'有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的),方法=“glm.fit”),FUNtype =“漠视”变量=变量,blocksize =2000核=2nestedParallel =))
##用户系统运行了## 76.152 1.088 77.760

性能是依赖于系统的,即使增加核心也可能不会在时间上带来巨大的收益。性能是核心、分叉线程、块大小和每个模型中的术语数量之间的权衡。

4.1.5~ 40000测试;blocksize, 5000;核心,3;nestedParallel,真

在这个例子中,我们选择了一个大的块大小和3个核心。启用nestedParallel后,这转换为9个并发线程。

df < -造型(,140000变量< -colnames(df) [4ncol(df)]system.timeRegParalleldata =df,公式='因子(组)~[*]+(单元:剂量)^ 2'有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的),方法=“glm.fit”),FUNtype =“漠视”变量=变量,blocksize =5000核=3.nestedParallel =真正的))
##用户系统运行了## 157.844 15.493 37.463

4.2修改的置信区间

df < -造型(,1500变量< -colnames(df) [4ncol(df)]# 99%自信间隔RegParalleldata =df,公式='因子(组)~[*]+(单元:剂量)^ 2'有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的),方法=“glm.fit”),FUNtype =“漠视”变量=变量,blocksize =150核=3.nestedParallel =真正的conflevel =99
##变量术语Beta标准标准Z P ## 1: gene1 gene1 0.1176202 0.0903205 1.302253 0.192830 ## 2: gene1 cellB:剂量-0.5677228 0.6789195 -0.836215 0.403034 ## # 3:gene1 cellT:剂量-0.5509290 0.7119414 - 0.7719414 - 0.439025 ## # 4:gene2 gene2 -0.0652196 0.0632302 - 1.032362 0.302324 ## # 5: gene2 cellB:剂量-0.3051338 0.6068014 -0.502856 0.615065 ##——## 1487:gene496 cellB:剂量-0.4089077 0.6207126 -0.658771 0.510043 ## 1488:gene496 cellT:剂量-0.2494197 0.6207470 -0.401806 0.687827 ## 1489:gene497 gene497 cellB:剂量-0.4773341 0.6285318 -0.759443 0.447588 ## 1491:gene497 cellT:剂量-0.2083487 0.6204013 -0.335829 0.737000 ##或ORlower ORupper ## 1: 1.124817 0.8913394 1.41945 # 2: 0.566815 0.0986178 3.25782 ## 3: 0.576414 0.0921103 3.10258 ## 5: 0.737025 0.1544090 3.51797 ##——## 1487:0.664376 0.1342895 3.28689 ## 1488: 0.779253 0.1574955 3.85557 ## 1489: 0.911671 0.7476111 1.11173 ## 1490: 0.620435 0.1229073 3.13195 ## 1491: 0.811924 0.1642449 4.01364
# 95%信任间隔(默认)RegParalleldata =df,公式='因子(组)~[*]+(单元:剂量)^ 2'有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的),方法=“glm.fit”),FUNtype =“漠视”变量=变量,blocksize =150核=3.nestedParallel =真正的conflevel =95
##变量术语Beta标准标准Z P ## 1: gene1 gene1 0.1176202 0.0903205 1.302253 0.192830 ## 2: gene1 cellB:剂量-0.5677228 0.6789195 -0.836215 0.403034 ## # 3:gene1 cellT:剂量-0.5509290 0.7119414 - 0.7719414 - 0.439025 ## # 4:gene2 gene2 -0.0652196 0.0632302 - 1.032362 0.302324 ## # 5: gene2 cellB:剂量-0.3051338 0.6068014 -0.502856 0.615065 ##——## 1487:gene496 cellB:剂量-0.4089077 0.6207126 -0.658771 0.510043 ## 1488:gene496 cellT:剂量-0.2494197 0.6207470 -0.401806 0.687827 ## 1489:gene497 gene497 cellB:剂量-0.4773341 0.6285318 -0.759443 0.447588 ## 1491:gene497 cellT:剂量-0.2083487 0.6204013 -0.335829 0.737000 ##或ORlower ORupper ## 1: 1.124817 0.942325 1.34265 ## 2: 0.566815 0.149811 2.14456 ## 3: 0.576414 0.142800 2.32670 ## 4: 0.737025 0.224374 2.42099 ##——## 1487:0.664376 0.196817 2.24267 ## 1488:0.779253 0.230833 2.63063 ## 1489: 0.911671 0.783929 1.06023 ## 1490: 0.620435 0.181004 2.12669 ## 1491: 0.811924 0.240674 2.73906

4.3从输出中删除一些术语/包含拦截

#删除条款,但保留拦截RegParalleldata =df,公式='因子(组)~[*]+(单元:剂量)^ 2'有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的),方法=“glm.fit”),FUNtype =“漠视”变量=变量,blocksize =150核=3.nestedParallel =真正的conflevel =95excludeTerms =c“细胞”“剂量”),excludeIntercept =
##变量术语Beta标准ror Z P OR ## 1: gene1(拦截)-0.4136226 0.8159398 -0.506928 0.612205 0.661250 ## 2:gene1 gene1 0.1176202 0.0903205 1.302253 0.192830 1.124817 ## 3: gene2(拦截)0.8598918 0.9047306 0.950440 0.341889 2.362905 ## 4:gene2 gene2 -0.0652196 0.0632302 -1.031462 0.302324 0.936862 ## # 5: gene3(拦截)0.7064557 0.8517147 0.829451 2.026795 ##——## 990:gene495 gene495 -0.0421575 0.0541220 -0.778936 0.436018 0.958719 ## 991:gene496(拦截)0.7759207 0.8901732 0.871651 0.383399 2.172591 ## 992:gene496 gene496 -0.0365614 0.0383417 -0.953569 0.340302 0.964099 ## 993: gene497(拦截)1.2147756 1.0377630 1.170571 0.241771 3.369538 ## 994:gene497 gene497 -0.0924761 0.0770223 -1.200642 0.229890 0.911671 ## ORlower或upper ## 1: 0.133609 3.27262 ## 2: 0.942325 1.34265 ## 3: 0.401179 13.91729 ## 5: 0.381764 1.075946 ##——## # 990:0.379543 12.43641 ## 992:0.894304 1.03934 ## 993: 0.440783 25.75822 ## 994: 0.783929 1.06023
#删除除被测试变量外的所有内容RegParalleldata =df,公式='因子(组)~[*]+(单元:剂量)^ 2'有趣的=函数(公式,数据)全球语言监测机构公式=公式,data =数据,家庭=二项链接=分对数的),方法=“glm.fit”),FUNtype =“漠视”变量=变量,blocksize =150核=3.nestedParallel =真正的conflevel =95excludeTerms =c“细胞”“剂量”),excludeIntercept =真正的
##变量Term Beta standderror Z P ## 1: gene1 gene1 0.11762017101 0.0903205 1.302253345 0.192830 ## 2: gene2 gene2 -0.06521955820 0.0632302 -1.031462071 0.302324 ## 3: gene3 gene3 -0.05996119887 0.0649535 -0.923140520 0.355934 ## 4: gene4 gene4 -0.02618569521 0.0761778 -0.343744622 0.731038 ## # 5: gene5 gene5 0.00570135449 0.0444996 0.128121524 0.898053 ##——## 493:gene493 gene493 -0.00000705509 0.0483715 -0.000145852 0.999884 ## 494:gene494 gene494 -0.05445835415 0.0537627 -1.012938587 0.311089 ## 495: gene495 gene495 -0.04215751980 0.0541220 -0.778935708 0.436018 ## 496: gene496 gene496 -0.03656141827 0.0383417 -0.953569030 0.340302 ## 497: gene497 gene497 -0.09247614686 0.0770223 -1.200641778 0.229890 ##或ORlower ORupper ## 1: 1.124817 0.942325 1.34265 ## 2: 0.936862 0.827664 1.06947 ## 3: 0.941801 0.829222 1.06966 ## 4: 0.974154 0.839045 1.13102 ## 5: 1.005718 0.921718 1.09737 ##——## 493:0.999993 0.909543 1.09944 ## 494: 0.946998 0.852287 1.05223 ## 495: 0.958719 0.862229 1.06601 ## 496: 0.964099 0.894304 1.03934 ## 497: 0.911671 0.783929 1.06023

5致谢

感谢Horácio Montenegro和genome对跨平台差异的测试,以及Wolfgang Huber提供了需要实施FDR校正的提示。

感谢伦敦的Michael Barnes向我介绍了R中的并行处理。

最后,感谢匹兹堡儿童医院的Juan Celedón。

Sarega Gurudas,她的建议导致通过svyglm实现调查权重。

6会话信息

sessionInfo()
## R正在开发中(不稳定)(22-10-25 r83175) ##平台:x86_64-pc-linux-gnu(64位)##运行在:Ubuntu 22.04.1 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.17-bio /R/lib/libRblas。因此## LAPACK: /usr/lib/x86_64-linux-gnu/ LAPACK /liblapack.so.3.10.0 ## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# [3] LC_TIME=en_GB LC_COLLATE= c# [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# [9] LC_ADDRESS=C LC_TELEPHONE= c# [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats4 parallel stats graphics grDevices utils datasets ## [8] methods base ## ##其他附加的包:# # # # [1] survminer_0.4.9 ggpubr_0.4.0 [3] ggplot2_3.3.6 GEOquery_2.67.0 # # [5] DESeq2_1.39.0 magrittr_2.0.3 # # [7] airway_1.19.0 SummarizedExperiment_1.29.0 # # [9] Biobase_2.59.0 GenomicRanges_1.51.0 # # [11] GenomeInfoDb_1.35.0 IRanges_2.33.0 # # [13] S4Vectors_0.37.0 BiocGenerics_0.45.0 # # [15] MatrixGenerics_1.11.0 matrixStats_0.62.0 # # [17] RegParallel_1.17.0 arm_1.13-1 # # [19] lme4_1.1-31 Matrix_1.5-1 # # [21] mass_7.3 - 58.1 survival_3.4-0 # # [23] stringr_1.4.1 data.table_1.14.4 # # [25]doParallel_1.0.17 iterators_1.0.14 ## [27] foreach_1.5.2 knitr_1.40 ## ##通过命名空间加载(并且没有附加):## [1] RColorBrewer_1.1-3 jsonlite_1.8.3 farver_2.1.1 ## [4] nloptr_2.0.3 rmarkdown_2.17 zlibbioc_1.45.0 ## [7] vctrs_0.5.0 memoise_2.0.1 minqa_1.2.5 ## [10] RCurl_1.98-1.9 rstatix_0.7.0 htmltools_0.5.3 ## [13] curl_1 .3.3 broom_1.0.1 sass_0.4.2 ## [13] bslib_0.4.0 zoo_1.8-11 cachem_1.0.6 ## [16] bslib_0.4.0 lifecycle_1.0.3 pkgconfig_2.0.3 ## [22] R6_2.5.1 fastmap_1.1.0 GenomeInfoDbData_1.2.9 ## [25] digest_0.6.30 colorspace_2.0-3 annotationdbi_1 .77.0 ## [4] vctrs_0.0 .3 ## [7] vctrs_0.5.0 memoise_2.0.1 minqa_1.2.5 ## [10] rcurl_1 .3.3 brom_1 .0.1RSQLite_2.2.18 labeling_0.4.2 ## [31] fansi_1.0.3 km.ci_0.5-6 httr_1.4.4 ## [34] abind_1.4-5 compiler_4.3.0 bit64_1 .0.5 ## [37] withr_2.5.0 backports_1.4.1 BiocParallel_1.33.0 ## [40] carData_3.0-5 DBI_1.1.3 highr_0.9 ## [43] R.utils_2.12.1 ggsignif_0.6.4 DelayedArray_0.25.0 ## [46] tools_4.3.0 R.oo_1.25.0 glue_1.6.2 ## [49] nlme_1 .1-160 gridtext_0.1.3 gtable_0.3.1 tzdb_0.3.0 ## [55] KMsurv_0.1-5 R.methodsS3_1.8.2 tidyr_1.2.1 ## [58] hms_1.1.2 xml2_1.3.3car_1 .1-1 ## [61] utf8_1.2.2 XVector_0.39.0 markdown_1.3 ## [64] pillar_1.8.1 limma_1 .55.0 genefilter_1.81.0 ## [67] splines_4.3.0 dplyr_1.0.10 ggtext_0.1.2 ## [70] lattice_0.20-45 bit_4.0.4 annotate_1.77.0 ## [73] tidyselect_1.2.0 locfit_1.5-9.6 Biostrings_2.67.0 ## [76] gridExtra_2.3 xfun_0.34 stringi_1.7.8 ## [79] yaml_2.3.6 boot_1.3-28 evaluate_0.17 ## [82] xtable_1.8-4 munsel_0.5.0 jquerylib_0.1.4 ## [88] survMisc_0.5.6 Rcpp_1.0.9 coda_0.19-4## [91] png_0.1-7 XML_3.99-0.12 ellipsis_0.3.2 ## [94] readr_2.1.3 assertthat_0.2.1 blob_1.2.3 ## [97] bitops_1.0-7 scales_1.2.1 purrr_0.3.5 ## [100] crayon_1.5.2 rlang_1.0.6 KEGGREST_1.39.0

7参考文献

Blighe和Lasky-Su (2018)

Blighe, K,和J Lasky-Su。2018.RegParallel: R中的标准回归函数,支持对大数据帧进行并行处理。https://github.com/kevinblighe/RegParallel。