rexposome
.本文档涵盖的领域是:从共同的暴露和表型加载多重imputationdata.frame
S,探索暴露数据,并测试暴露与健康结果之间的关联。rexposome 1.20.1
老鼠
来说明如何使用老鼠
我们开始同时加载rexposome
和老鼠
库。
库(rexposome)库(老鼠)
我们装载三种
文件包含在rexposome
包,这样我们就可以加载曝光,并查看丢失的数据量(检查小插图暴露数据分析以获取更多信息)。
下面的行位于三种
安装文件。
Path <- file. Path (Path .package("rexposome"), "extdata") description <- file. Path ("rexposome")路径(Path, "description.csv")表现型<- file。Path (Path, "phenotypes.csv") exposed <- file. csv . Path。路径(路径,“exposures.csv”)
一旦文件被定位,我们加载他们作为data.frames
:
dd <- read.csv(description, header=TRUE, stringsAsFactors=FALSE) ee <- read.csv(exposure, header=TRUE) pp <- read.csv(phenotype, header=TRUE)
为了加快在本插图中进行的归因过程,我们将删除四个曝光族。
dd < - dd(——(dd家庭美元% % c(“邻苯二甲酸盐”,“多溴二苯醚”、“全氟辛酸及其盐类(pfoa)”,“金属”)),]ee < - ee (c(“idnum”,dd暴露美元))
我们可以检查暴露和表型中缺失的数据量data.frames
:
data.frame(Set=c(" exposure ", "Phenotypes"), Count=c(sum(is.na(ee)), sum(is.na(pp))))
##设置计数## 1曝光304 ## 2表型
在运行之前老鼠
,我们需要将暴露和表型都分解为一个data.frame
.
Rownames (ee) <- ee$idnum Rownames (pp) <- pp$idnum dta <- cbind(ee[, -1], pp[, -1]) dta[1:3, c(1:3, 52:56)]
## DDE DDT HCB出生日期性别年龄cbmi血NA NA NA 2004-12-29男4.2 16.3 120 id002 1.713577 0.6931915 1.270750 2005-01-05男4.2 16.4 121 id003 2.594590 0.7448906 2.205519 2005-01-05男4.2 19.0 120
一旦完成这一步,类每一列的值,所以老鼠
能够区分连续曝光和分类曝光。
对(2 c (1:13, 18:47 55:56)) {dta (ii) < -。Numeric (dta[, ii])} for(ii in c(14:17, 48:54)) {dta[, ii] <- as。因子(dta[, ii])}
用这个data.frame
我们执行imputation调用老鼠
函数(有关此调用的详细信息,请选中老鼠
的小插图)。我们移除了列生日因为它不需要进行归责,并且带有许多类别。
imp <- mouse (dta[, -52], pred = quickpred(dta[, -52], mincor = 0.2, minpuc = 0.4), seed = 38788, m = 5, maxit = 10, printFlag = FALSE)
##警告:记录事件的数量:223
类(imp)
##[1]“中间”
创建的对象小鬼
,那是一个类的对象mids
包含20个数据集,包括估算暴露和表型。为了处理这些信息,我们需要提取这些集合中的每一个,并创建一个包含所有这些集合的新数据集。这个新data.frame
将被传递给rexposome
(请查看下一节的要求)。
老鼠
包包含以下功能完整的
这允许从类的对象中提取单个数据集mids
.我们将使用这个函数来提取集合并将它们连接到一个集合中data.frame
.
如果我们设置参数行动
的完整的
函数0
时,将返回原始数据:
Me <- complete(imp, action = 0) Me[, "。Imp "] <- 0 me[, "。Id "] <- rownames(me) dim(me)
## [1] 109 57
摘要(me[, c(" h_", "苯")])
## h_农药苯## 0:68 Min:-0.47427 ## 1:35 1st Qu.:-0.19877 ## NA's: 6中位数:-0.11975 ##平均值:-0.12995 ## 3 Qu.:-0.06879 ## Max: 0.13086 ## NA的:3
如果行动
数字介于1和米
值时,它将返回所选的集合。
对于(set in 1:5) {im <- complete(imp, action = set) im[, "。Imp "] <- set im[, "。id”)< - rownames (im)我< - rbind(我,im)} < -我[c”。小鬼”、“。id”,colnames(我)(- (97:98))))rownames(我)< - 1:nrow(我)的(我)
## [1] 654 59
格式为多重imputation数据rexposome
需要遵循一些限制:
data.frame
.data.frame
必须有一个列叫做.imp
表示输入的数量。这种imputation被标记为0
是原始曝光(无归因)。data.frame
必须有一个列叫做.id
说明样品名称。这将被转换为字符。data.frame
与描述暴露和家庭之间的关系。imExposomeSet
暴露者data.frame
以及描述data.frame
类的对象imExposomeSet
可以创建。为此,函数loadImputed
使用:
ex_imp <- loadImputed(data = me, description = dd, description. exe)famCol = "家庭",描述。expCol = "曝光")
这个函数loadImputed
有几个论点:
args (loadImputed)
##函数(数据,描述,描述。famCol = "family",描述。expCol = "exposure", ## exposure。asFactor = 5, warnings = TRUE) ## NULL
这个论点数据
是由data.frame
风险敞口。这个论点跟
与data.frame
与曝光的描述。description.famCol
指示描述上与族对应的列。description.expCol
指示说明上与曝光相对应的列。最后,exposures.asFactor
指示在默认情况下,少于五个不同值的曝光被认为是分类曝光,否则为连续曝光。
ex_imp
imExposomeSet类的对象曝光描述:##。分类:4 ##。连续:43 ##。#imputation: 6 (raw detected) ##。assayData: 47曝光109个人##。表型数据:109个人12表型##。featureData: 47曝光3解释
该对象的输出表明我们加载了14个曝光,其中13个连续曝光,1个分类曝光。
类ExposomeSet
有几个访问器来获取存储在其中的数据。有四个基本方法返回个人的名称(sampleNames
)、曝光的名称(exposureNames
)、暴露类别名称(familyNames
)和表型名称(phenotypeNames
)。
头(sampleNames (ex_imp))
##[1]“id001”“id002”“id003”“id004”“id005”“id006”
头(exposureNames (ex_imp))
##[1]“DDE”“DDT”“HCB”“bHCH”“PCB118”“PCB153”
familyNames (ex_imp)
“有机氯”、“双酚A”、“水污染物”、“可代宁”、“家庭环境”、“空气污染物”、“建筑环境”、“噪音”、“温度”
phenotypeNames (ex_imp)
# #[1]“whistling_chest”“流感”“鼻炎”“喘息”# #[5]“性”“年龄”“cbmi”# #[9]“blood_pre .imp。1”“.id.1”
fData
将返回暴露的描述(包括管理它们的内部信息)。
head(fData(ex_imp), n = 3)
##家族曝光名称。type ## <字符> <字符> <字符> <字符> ## DDE有机氯DDE二氯二苯基。数字## DDT有机氯DDT二氯二苯。数字## HCB有机氯HCB六氯苯数字
pData
将返回表型信息。
head(pData(ex_imp), n = 3)
##数据框架与3行和12列## .imp. id whistling_胸部流感鼻炎呼哧呼哧性别## <数字> <字符> <因子> <因子> <因子> <因子> <因子> ## 1 0 id001从来没有没有没有男性## 2 0 id002从来没有没有没有男性## 3 0 id003 7-12 epi没有没有是男性##年龄cbmi blood_pre .imp。1 .id。1## ## 1 4.2 16.3 120 0 id001 ## 2 4.2 16.4 121 0 id002 ## 3 4.2 19.0 120 0 id003
通过imputation过程的曝光行为可以用plotFamily
方法。这种方法将在单个图表中绘制每个imputation集中的曝光行为。
该方法需要一个参数家庭
它会用家庭内部暴露的情节画出马赛克。遵循与使用相同的策略ExposomeSet
,当曝光是连续的箱形图使用。
plotFamily(ex_imp, family = "Organochlorines")
##警告:删除了104行包含非有限值(' stat_boxplot() ')。
对于分类曝光,该方法绘制累积条形图:
plotFamily(ex_imp, family = "Home Environment")
的参数集团
和na.omit
时不可用plotFamily
与imExposomeSet
.
ExposomeSet
从一个imExposomeSet
一旦一个imExposomeSet
创建时,ExposomeSet
可以通过选择一个内部估算集来获得。这是使用方法完成的脚趾
设置参数掉
与输入集的数量一起使用:
ex_1 < -脚趾ex_1 (ex_imp,摆脱= 1)
'ExposomeSet'类的对象(storageMode: environment)曝光描述:##。分类:4 ##。连续:43 ##。曝光转换:##。分类:0 ##。转换:0 ##。标准化:0 ##。Imputed: 0 ##。assayData: 47曝光109个人##。 element names: exp ## . exposures: AbsPM25, ..., Temp ## . individuals: id001, ..., id108 ## . phenoData: 109 individuals 10 phenotypes ## . individuals: id001, ..., id108 ## . phenotypes: whistling_chest, ..., .imp.1 ## . featureData: 47 exposures 8 explanations ## . exposures: AbsPM25, ..., Temp ## . descriptions: Family, ..., .imp ## experimentData: use 'experimentData(object)' ## Annotation:
ex_3 <- toES(ex_imp, rid = 3) ex_3
'ExposomeSet'类的对象(storageMode: environment)曝光描述:##。分类:4 ##。连续:43 ##。曝光转换:##。分类:0 ##。转换:0 ##。标准化:0 ##。Imputed: 0 ##。assayData: 47曝光109个人##。 element names: exp ## . exposures: AbsPM25, ..., Temp ## . individuals: id001, ..., id108 ## . phenoData: 109 individuals 10 phenotypes ## . individuals: id001, ..., id108 ## . phenotypes: whistling_chest, ..., .imp.1 ## . featureData: 47 exposures 8 explanations ## . exposures: AbsPM25, ..., Temp ## . descriptions: Family, ..., .imp ## experimentData: use 'experimentData(object)' ## Annotation:
使用多重imputation的有趣之处在于测试不同版本的暴露与目标表型之间的关联。rexposome
实现方法exwas
与…连用imExposomeSet
.
as_view <- exwas(ex_imp,公式= blood_pre~性别+年龄,家庭= "高斯"
##类对象'ExWAS' ## ## ~血前性别+年龄## ##测试暴露:47 ##有效测试阈值(TEF): 2.43e-03 ##。测试< TEF: 7 ##健壮标准错误:计算
与往常一样,从exwas
方法可以绘制使用plotExwas
:
clr <- rainbow(length(familyNames(ex_imp)) names(clr) <- familyNames(ex_imp) plotExwas(as_view, color = clr)
该方法提取
允许从对象中获取p值表ExWAS
对象。与此同时,微软目前
方法可以获取有效试验阈值计算在exwas
.我们可以把它们结合起来使用,以便创建一个包含曝光p值的表有效测试的阈值.
(thr <- tef(as_view))
## [1] 0.002426352
TBL <- extract(as_view)
(sig <- tbl[tbl$pvalue <= thr,])
## DataFrame与11行4列## pvalue效果X2.5 X97.5 ## <数字> <数字> <数字> <数字> ## AbsPM25 5.26794e-05 20.09668 10.85241 6.69541 19.00941 ## NO 8.27436e-05 10.67213 5.55743 15.78682 ## NO2 9.90808e-05 15.06292 7.77227 22.35356 ## PM25CU 4.00711e-04 11.39992 5.23645 17.56340 ## Temp 1.11891e-03 88.57154 36.30290 140.84017 ## PCB1531.67554e-03 3.99374 1.54289 6.44459 ## PM10Fe 2.07052e-03 13.57084 5.06769 22.07398 ## PCB138 2.21163e-03 4.48011 1.65837 7.30184
## R版本4.2.2(2022-10-31)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.16-bioc/R/lib/libRlapack。所以## ## 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_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats graphics grDevices utils datasets methods base ## ##其他附加包:## [1]mice_3.15.0 ggplot2_3.4.0 rexposome_1.20.1 ## [4] Biobase_2.58.0 BiocGenerics_0.44.0 BiocStyle_2.26.0 ## ##通过命名空间加载(且未附加):[1] TH.data_1.1-1 minqa_1.2.5 colorspace_2.1-0 ## [4] deldir_1. 1- 6 pryr_0.1.6 ggridges_0.5.4 ## [7] estimability_1.4.1 circlize_0.4.15 htmlTable_2.4.1 ## [10] GlobalOptions_0.1.2 base64enc_0.1-3 rstudioapi_0.14 ## [13] farver_1 .1.1 ggrepel_0.9.2 DT_0.27 ## [13] fansi_1.0.4 mvtnorm_1.1-3 codetools_0.2-18 ## [19] splines_4.2.2 leaps_3.1 cachem_1.0.6 ## [25] impute_1.72.3 knitr_1.42 Formula_1.2-4 ## [25] jsonlite_1.8.4 nloptr_2.0.3 lsr_0.5.2 ## [31] broom_1.0.3 cluster_2.1.4 png_0.1-8 ## [31]BiocManager_1.30.19 compiler_4.2.2 emmeans_1.8.4-1 ## [34] backports_1.4.1 assertthat_0.2.1 Matrix_1.5-3 ## [37] fastmap_1.1.0 gmm_1.7 cli_3.6.0 ## [40] formatR_1.14 htmltools_0.5.4 tools_4.2.2 ## [43] coda_0.19-4 gtable_0.3.1 glue_1.6.2 ## [46] reshape2_1.4.4 dplyr_1.0.10 FactoMineR_2.7 ## [49] Rcpp_1.0.10 jquerylib_0.1.4 vctrs_0.5.2 ## [52] nlme_3.1-161 iterators_1.0.14 tmvtnorm_1.5 ## [55] xfun_0.36 string_1 .5.0 lme4_1.1-31 ## [58] lifecycle_1.0.3 gtools_3.9.4 MASS_7.3-58.2 ## [61]zoo1.8 -11 scales_1.2.1 pcaMethods_1.90.0 ## [64] sandwich_3.0-2 RColorBrewer_1.1-3 yaml_2.3.7 ## [67] gridExtra_2.3 sass_0.4.5 rpart_4.1.19 ## [70] latticeExtra_0.6-30 stringi_1.7.12 highr_0.10 ## [73] S4Vectors_0.36.1 corrplot_0.92 foreach_1.5.2 ## [76] checkmate_2.1.0 caTools_1.18.2 boot_1.3-28.1 ## [82] bitops_1.0-7 imputelcmd_1 .2.1 evaluate_0.20 ## [85] lattice_0.20-45 purrr_1.0.1 labeling_0.4.2 ## [88] htmlwidgets_1.6.1 tidyselect_1.2.0norm_1.0-10.0 ## [91] plyr_1.8.8 magrittr_2.0.3 bookdown_0.32 ## [97] generics_0.1.3 multcompView_0.1-8 Hmisc_4.7-2 ## [100] multcomp_1.4-20 DBI_1.1.3 withr_2.5.0 ## [103] pillar_1.8.1 foreign_0.8-84幸存者3.5-0 ## [106]scatterplot3d_0.3-42 nnet_7.3-18 tibble_3.1.8 ## [109] interp_1.1-3 KernSmooth_2.23-20 utf8_1.2.2 ## [112] rmarkdown_2.20 jpeg_0.1-10 grid_4.2.2 ## [115] data.table_1.14.6 digest_0.6.31 flashClust_1.01-2 ## [118] xtable_1. 4. 4Tidyr_1.3.0 stats4_4.2.2 ## [121] munsell_0.5.0 glmnet_1 .1-6 bslib_0.4.2