-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
bugSomething isn't workingSomething isn't working
Description
1. Bug description
Any parquet functions cause a segfault error when running unit tests with "Test" or "Check" buttons in Rstudio, but not when running manually or with "Run test" button.
Expected behaviour
Functions work in all conditions.
2. Reproducible example
Code
## devtools::test()
dat <- echodata::BST1
path <- echodata::write_parquet(dat)
#### Read the parquet file back into R ####
dat2 <- echodata::read_parquet(path=path)Console output
==> devtools::test()
ℹ Testing echodata
✔ | F W S OK | Context
⠏ | 0 | assign_lead_SNP + leadSNP missing. Assigning new one by min p-value.
✔ | 4 | assign_lead_SNP
✔ | 1 | column_dictionary
⠏ | 0 | construct_colmap Assuming fullSS_path summary stats have already been processed with MungeSumstats.
Assuming fullSS_path summary stats have already been processed with MungeSumstats.
✔ | 3 | construct_colmap
⠏ | 0 | coords_to_rsids Searching for RSIDs using: hg19
Loading required namespace: SNPlocs.Hsapiens.dbSNP144.GRCh37
5 / 5 SNPs annotated with RSIDs.
✔ | 5 | coords_to_rsids [6.6s]
✔ | 3 | createDT
⠏ | 0 | dt_to_granges Converting dat to GRanges object.
dat is already a GRanges object.
✔ | 6 | dt_to_granges
⠏ | 0 | example_fullSS Writing file to ==> /var/folders/rd/rbc_wrdj4k3djf3brk6z0_dc0000gp/T//RtmpgfuhvU/nalls2019.fullSS_subset.tsv
Writing file to ==> /var/folders/rd/rbc_wrdj4k3djf3brk6z0_dc0000gp/T//RtmpgfuhvU/kunkle2019.fullSS_subset.tsv
✔ | 4 | example_fullSS
⠏ | 0 | extract_loci + Mapping colnames from MungeSumstats ==> echolocatoR
BIN1
CLU
CR1*
EPHA1
MS4A2
PICALM
PTK2B
SPI1*
Locus SNPs
1 BIN1 55
2 CLU 17
3 CR1* 22
4 EPHA1 5
5 MS4A2 210
6 PICALM 61
7 PTK2B 17
8 SPI1* 149
✔ | 2 | extract_loci
⠏ | 0 | fillNA_CS_PP + Filling NAs in CS cols with 0.
+ Filling NAs in PP cols with 0.
✔ | 4 | fillNA_CS_PP
⠏ | 0 | filter_snps FILTER:: Filtering by SNP features.
+ FILTER:: Post-filtered data: 2913 x 26
FILTER:: Filtering by SNP features.
+ FILTER:: Post-filtered data: 6216 x 26
FILTER:: Filtering by SNP features.
+ FILTER:: Removing specified variants: rs4541502,rs34559912,rs4389574,rs35519415,rs3756246
+ FILTER:: Post-filtered data: 2908 x 26
FILTER:: Filtering by SNP features.
+ FILTER:: Post-filtered data: 2913 x 26
FILTER:: Filtering by SNP features.
BIOMART:: Trimming data to only include SNPs within gene coordinates.
BIOMART:: 3154 SNPs left after trimming.
+ leadSNP missing. Assigning new one by min p-value.
+ FILTER:: Post-filtered data: 1610 x 26
⠼ | 5 | filter_snps FILTER:: Filtering by SNP features.
BIOMART:: Trimming data to only include SNPs within gene coordinates.
BIOMART:: 0 SNPs left after trimming.
+ leadSNP missing. Assigning new one by min p-value.
+ FILTER:: Post-filtered data: 0 x 26
⠴ | 6 | filter_snps FILTER:: Filtering by SNP features.
BIOMART:: Trimming data to only include SNPs within gene coordinates.
BIOMART:: 3313 SNPs left after trimming.
+ FILTER:: Post-filtered data: 1727 x 26
✔ | 7 | filter_snps [1.3s]
⠏ | 0 | find_consensus_snps_no_polyfun Identifying UCS and Consensus SNPs without PolyFun
Identifying Consensus SNPs...
+ support_thresh = 2
+ Calculating mean Posterior Probability (mean.PP)...
+ 3 fine-mapping methods used.
+ 7 Credible Set SNPs identified.
+ 1 Consensus SNPs identified.
✔ | 3 | find_consensus_snps_no_polyfun
⠏ | 0 | find_consensus_snps Identifying Consensus SNPs...
+ support_thresh = 2
+ Calculating mean Posterior Probability (mean.PP)...
+ 4 fine-mapping methods used.
+ 7 Credible Set SNPs identified.
+ 3 Consensus SNPs identified.
✔ | 2 | find_consensus_snps
✔ | 4 | find_top_consensus
⠏ | 0 | gene_locus_list WARNING: Dropping 97 loci not present in topSNPs:
- ASXL3_ASXL3
- BAG3_BAG3
- BIN3_BIN3
- BRIP1_BRIP1
- BST1_BST1
- C5orf24_C5orf24
- CAB39L_CAB39L
- CAMK2D_CAMK2D
- CASC16_CASC16
- CD19_CD19
- CHD9_CHD9
- CHRNB1_CHRNB1
- CLCN3_CLCN3
- CNTN1_CNTN1
- CRHR1_CRHR1
- CRLS1_CRLS1
- CTSB_CTSB
- DDRGK1_DDRGK1
- DLG2_DLG2
- DNAH17_DNAH17
- DYRK1A_DYRK1A
- ELOVL7_ELOVL7
- FAM171A2_FAM171A2
- FAM47E_FAM47E
- FAM47E-STBD1_FAM47E-STBD1
- FAM49B_FAM49B
- FBRSL1_FBRSL1
- FCGR2A_FCGR2A
- FGD4_FGD4
- FGF20_FGF20
- FYN_FYN
- GAK_GAK
- GALC_GALC
- GBAP1_GBAP1
- GBF1_GBF1
- GCH1_GCH1
- GPNMB_GPNMB
- GS1-124K5.11_GS1-124K5.11
- GXYLT1_GXYLT1
- HIP1R_HIP1R
- HLA-DRB5_HLA-DRB5
- IGSF9B_IGSF9B
- INPP5F_INPP5F
- IP6K2_IP6K2
- ITGA8_ITGA8
- ITPKB_ITPKB
- KANSL1_KANSL1
- KCNIP3_KCNIP3
- KCNS3_KCNS3
- KPNA1_KPNA1
- KRTCAP2_KRTCAP2
- LCORL_LCORL
- LINC00693_LINC00693
- LOC100131289_LOC100131289
- LRRK2_LRRK2
- MAP3K14_MAP3K14
- MAP4K4_MAP4K4
- MAPT-AS1_MAPT-AS1
- MBNL2_MBNL2
- MCCC1_MCCC1
- MED12L_MED12L
- MEX3C_MEX3C
- MIPOL1_MIPOL1
- NOD2_NOD2
- NSF_NSF
- NUCKS1_NUCKS1
- PAM_PAM
- PMVK_PMVK
- RAB29_RAB29
- RETREG3_RETREG3
- RIMS1_RIMS1
- RIT2_RIT2
- RNF141_RNF141
- RPS12_RPS12
- RPS6KL1_RPS6KL1
- SATB1_SATB1
- SCAF11_SCAF11
- SCARB2_SCARB2
- SEMA4A_SEMA4A
- SETD1A_SETD1A
- SH3GL2_SH3GL2
- SIPA1L2_SIPA1L2
- SLC44A4_SLC44A4
- SNCA_SNCA
- SPPL2B_SPPL2B
- SPTSSB_SPTSSB
- STK39_STK39
- SYT17_SYT17
- TMEM163_TMEM163
- TMEM175_TMEM175
- TRIM40_TRIM40
- UBAP2_UBAP2
- UBTF_UBTF
- VAMP4_VAMP4
- VPS13C_VPS13C
- WNT3_WNT3
- ZNF608_ZNF608
Reassigning gene-specific locus names.
Reassigning gene-specific locus names.
✔ | 3 | gene_locus_list
✔ | 1 | get_data
✔ | 3 | get_header
⠏ | 0 | get_Nalls2019_loci Writing fine-mapped locus data ==> /var/folders/rd/rbc_wrdj4k3djf3brk6z0_dc0000gp/T//RtmpgfuhvU/Nalls23andMe_2019/BST1.multi_finemap.csv.gz
Writing fine-mapped locus data ==> /var/folders/rd/rbc_wrdj4k3djf3brk6z0_dc0000gp/T//RtmpgfuhvU/Nalls23andMe_2019/LRRK2.multi_finemap.csv.gz
Writing fine-mapped locus data ==> /var/folders/rd/rbc_wrdj4k3djf3brk6z0_dc0000gp/T//RtmpgfuhvU/Nalls23andMe_2019/MEX3C.multi_finemap.csv.gz
✔ | 2 | get_Nalls2019_loci
⠏ | 0 | get_sample_size Preparing sample size column (N).
Computing effective sample size using the LDSC method:
Neff = (N_CAS+N_CON) * (N_CAS/(N_CAS+N_CON)) / mean((N_CAS/(N_CAS+N_CON))[(N_CAS+N_CON)==max(N_CAS+N_CON)]))
+ Mapping colnames from MungeSumstats ==> echolocatoR
Preparing sample size column (N).
Computing effective sample size using the LDSC method:
Neff = (N_CAS+N_CON) * (N_CAS/(N_CAS+N_CON)) / mean((N_CAS/(N_CAS+N_CON))[(N_CAS+N_CON)==max(N_CAS+N_CON)]))
+ Mapping colnames from MungeSumstats ==> echolocatoR
Preparing sample size column (N).
Computing effective sample size using the LDSC method:
Neff = (N_CAS+N_CON) * (N_CAS/(N_CAS+N_CON)) / mean((N_CAS/(N_CAS+N_CON))[(N_CAS+N_CON)==max(N_CAS+N_CON)]))
+ Mapping colnames from MungeSumstats ==> echolocatoR
Preparing sample size column (N).
Computing effective sample size using the LDSC method:
Neff = (N_CAS+N_CON) * (N_CAS/(N_CAS+N_CON)) / mean((N_CAS/(N_CAS+N_CON))[(N_CAS+N_CON)==max(N_CAS+N_CON)]))
+ Mapping colnames from MungeSumstats ==> echolocatoR
Preparing sample size column (N).
Computing effective sample size using the LDSC method:
Neff = (N_CAS+N_CON) * (N_CAS/(N_CAS+N_CON)) / mean((N_CAS/(N_CAS+N_CON))[(N_CAS+N_CON)==max(N_CAS+N_CON)]))
+ Mapping colnames from MungeSumstats ==> echolocatoR
Preparing sample size column (N).
Computing effective sample size using the GIANT method:
Neff = 2 / (1/N_CAS + 1/N_CON)
+ Mapping colnames from MungeSumstats ==> echolocatoR
Preparing sample size column (N).
Computing effective sample size using the METAL method:
Neff = 4 / (1/N_CAS + 1/N_CON)
+ Mapping colnames from MungeSumstats ==> echolocatoR
Preparing sample size column (N).
Computing sample size using the sum method:
N = N_CAS + N_CON
+ Mapping colnames from MungeSumstats ==> echolocatoR
Preparing sample size column (N).
Assigning N=10000 for all SNPs.
+ Mapping colnames from MungeSumstats ==> echolocatoR
Preparing sample size column (N).
Numeric vector supplied to compute_n.
Preparing sample size column (N).
Numeric vector supplied to compute_n.
✔ | 13 | get_sample_size
⠏ | 0 | get_SNPgroup_counts All loci (75) :
Total.SNPs nom.sig.GWAS sig.GWAS
4948.16 924.68 82.36
CS Consensus topConsensus
7.88 2.69 1.47
topConsensus.leadGWAS
0.41
Loci with at least one Consensus SNP (69) :
Total.SNPs nom.sig.GWAS sig.GWAS
5019.07 911.41 84.28
CS Consensus topConsensus
7.77 2.93 1.59
topConsensus.leadGWAS
0.45
✔ | 1 | get_SNPgroup_counts
⠏ | 0 | granges_to_bed Converting dat to GRanges object.
Converting 1 GRanges object to separate BED files.
Saving BED file ==> /var/folders/rd/rbc_wrdj4k3djf3brk6z0_dc0000gp/T//RtmpgfuhvU/granges1.bed.txt
✔ | 1 | granges_to_bed
⠏ | 0 | import_topSNPs Renaming column: BP ==> POS
Renaming column: P, all studies ==> P
Renaming column: Beta, all studies ==> Effect
Renaming column: Nearest Gene ==> Locus
Renaming column: QTL Nominated Gene (nearest QTL) ==> Gene
[1] "+ Assigning Gene and Locus independently."
Standardising column headers.
First line of summary statistics file:
SNP CHR POS Locus Gene Effect allele Other allele Effect allele frequency Effect SE, all studies P P, COJO, all studies P, random effects, all studies P, Conditional 23AndMe only P, 23AndMe only I2, all studies Freq1, previous studies Beta, previous studies StdErr, previous studies P, previous studies I2, previous studies Freq1, new studies Beta, new studies StdErr, new studies P, new studies I2, new studies Passes pooled 23andMe QC Known GWAS locus within 1MB Failed final filtering and QC Locus within 250KB Locus Number
Returning unmapped column names without making them uppercase.
+ Mapping colnames from MungeSumstats ==> echolocatoR
⠋ | 1 | import_topSNPs Renaming column: BP ==> POS
Renaming column: P, all studies ==> P
Renaming column: Beta, all studies ==> Effect
Renaming column: Nearest Gene ==> Locus
Renaming column: QTL Nominated Gene (nearest QTL) ==> Gene
[1] "+ Assigning Gene and Locus independently."
Standardising column headers.
First line of summary statistics file:
SNP CHR POS Locus Gene Effect allele Other allele Effect allele frequency Effect SE, all studies P P, COJO, all studies P, random effects, all studies P, Conditional 23AndMe only P, 23AndMe only I2, all studies Freq1, previous studies Beta, previous studies StdErr, previous studies P, previous studies I2, previous studies Freq1, new studies Beta, new studies StdErr, new studies P, new studies I2, new studies Passes pooled 23andMe QC Known GWAS locus within 1MB Failed final filtering and QC Locus within 250KB Locus Number
Returning unmapped column names without making them uppercase.
+ Mapping colnames from MungeSumstats ==> echolocatoR
✔ | 6 | import_topSNPs [1.6s]
⠏ | 0 | is_empty Subset file looks good.
No SNPs identified within the summary stats file that met your criterion. :o
✔ | 6 | is_empty
✔ | 2 | is_ggbio
✔ | 2 | is_ggplot
✔ | 2 | is_url
⠏ | 0 | limit_snps Limiting to only 500 SNPs.
+ Reduced number of SNPs: 6,216 ==> 500
✔ | 2 | limit_snps
⠏ | 0 | melt_finemapping_results Melting PP and CS from 5 fine-mapping methods.
✔ | 4 | melt_finemapping_results
⠏ | 0 | merge_finemapping_results + Gathering all fine-mapping results from storage...
+ 3 multi-finemap files found.
+ Removing duplicate Multi-finemap files per locus.
+ Importing results... RtmpgfuhvU
+ Importing results... RtmpgfuhvU
+ Importing results... RtmpgfuhvU
Identifying Consensus SNPs...
+ support_thresh = 2
+ Calculating mean Posterior Probability (mean.PP)...
+ 4 fine-mapping methods used.
+ 20 Credible Set SNPs identified.
+ 9 Consensus SNPs identified.
+ Saving merged results ==> /var/folders/rd/rbc_wrdj4k3djf3brk6z0_dc0000gp/T//RtmpgfuhvU/file13a997e13e3bdmerged_results.csv.gz
✔ | 4 | merge_finemapping_results
✔ | 5 | merge_robust
⠏ | 0 | mungesumstats + Mapping colnames from MungeSumstats ==> echolocatoR
✔ | 5 | mungesumstats
⠏ | 0 | parquet Loading required namespace: arrow
Failed with error: 'bad value'
Writing parquet file ==> /var/folders/rd/rbc_wrdj4k3djf3brk6z0_dc0000gp/T//RtmpgfuhvU/file13a994bcccdf5.parquet
*** caught segfault ***
address 0x0, cause 'invalid permissions'
Traceback:
1: compute__GetFunctionNames()
2: list_compute_functions()
3: create_binding_cache()
4: fun(libname, pkgname)
5: doTryCatch(return(expr), name, parentenv, handler)
6: tryCatchOne(expr, names, parentenv, handlers[[1L]])
7: tryCatchList(expr, classes, parentenv, handlers)
8: tryCatch(fun(libname, pkgname), error = identity)
9: runHook(".onLoad", env, package.lib, package)
10: loadNamespace(x)
11: echodata::write_parquet(dat)
12: eval(code, test_env)
13: eval(code, test_env)
14: withCallingHandlers({ eval(code, test_env) if (!handled && !is.null(test)) { skip_empty() }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error)
15: doTryCatch(return(expr), name, parentenv, handler)
16: tryCatchOne(expr, names, parentenv, handlers[[1L]])
17: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
18: doTryCatch(return(expr), name, parentenv, handler)
19: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
20: tryCatchList(expr, classes, parentenv, handlers)
21: tryCatch(withCallingHandlers({ eval(code, test_env) if (!handled && !is.null(test)) { skip_empty() }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error), error = handle_fatal, skip = function(e) { })
22: test_code(desc, code, env = parent.frame(), default_reporter = local_interactive_reporter())
23: test_that("read/write_parquet works", { dat <- echodata::BST1 path <- echodata::write_parquet(dat) dat2 <- echodata::read_parquet(path = path)})
24: eval(code, test_env)
25: eval(code, test_env)
26: withCallingHandlers({ eval(code, test_env) if (!handled && !is.null(test)) { skip_empty() }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error)
27: doTryCatch(return(expr), name, parentenv, handler)
28: tryCatchOne(expr, names, parentenv, handlers[[1L]])
29: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
30: doTryCatch(return(expr), name, parentenv, handler)
31: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
32: tryCatchList(expr, classes, parentenv, handlers)
33: tryCatch(withCallingHandlers({ eval(code, test_env) if (!handled && !is.null(test)) { skip_empty() }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error), error = handle_fatal, skip = function(e) { })
34: test_code(test = NULL, code = exprs, env = env, default_reporter = StopReporter$new())
35: source_file(path, env = env(env), desc = desc, error_call = error_call)
36: FUN(X[[i]], ...)
37: lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call)
38: doTryCatch(return(expr), name, parentenv, handler)
39: tryCatchOne(expr, names, parentenv, handlers[[1L]])
40: tryCatchList(expr, classes, parentenv, handlers)
41: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL})
42: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call))
43: test_files_serial(test_dir = test_dir, test_package = test_package, test_paths = test_paths, load_helpers = load_helpers, reporter = reporter, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, desc = desc, load_package = load_package, error_call = error_call)
44: test_files(test_dir = path, test_paths = test_paths, test_package = package, reporter = reporter, load_helpers = load_helpers, env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning, load_package = load_package, parallel = parallel)
45: test_dir(test_path, package = package, reporter = reporter, ..., load_package = load_package)
46: testthat::test_local(pkg$path, filter = filter, stop_on_failure = stop_on_failure, load_package = load_package, ...)
47: devtools::test()
An irrecoverable exception occurred. R is aborting now ...
Exited with status 139.
3. Session info
Details
R version 4.3.1 (2023-06-16)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Ventura 13.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.11.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
time zone: Europe/London
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] echodata_0.99.17
loaded via a namespace (and not attached):
[1] DBI_1.1.3 piggyback_0.1.5 bitops_1.0-7 testthat_3.2.0
[5] rlang_1.1.1 magrittr_2.0.3 matrixStats_1.0.0 compiler_4.3.1
[9] vctrs_0.6.4 echogithub_0.99.2 stringr_1.5.0 pkgconfig_2.0.3
[13] crayon_1.5.2 fastmap_1.1.1 dbplyr_2.3.4 XVector_0.41.1
[17] utf8_1.2.3 Rsamtools_2.17.0 rmarkdown_2.25 tzdb_0.4.0
[21] bit_4.0.5 waldo_0.5.1 purrr_1.0.2 xfun_0.40
[25] rvcheck_0.2.1 zlibbioc_1.47.0 cachem_1.0.8 badger_0.2.3
[29] GenomeInfoDb_1.37.6 jsonlite_1.8.7 DelayedArray_0.27.10 BiocParallel_1.35.4
[33] parallel_4.3.1 R6_2.5.1 stringi_1.7.12 RColorBrewer_1.1-3
[37] rtracklayer_1.61.1 pkgload_1.3.3 brio_1.1.3 GenomicRanges_1.53.2
[41] assertthat_0.2.1 Rcpp_1.0.11 SummarizedExperiment_1.31.1 knitr_1.44
[45] R.utils_2.12.2 readr_2.1.4 IRanges_2.35.3 dlstats_0.1.7
[49] Matrix_1.6-1.1 tidyselect_1.2.0 rstudioapi_0.15.0 abind_1.4-5
[53] yaml_2.3.7 codetools_0.2-19 lattice_0.21-9 tibble_3.2.1
[57] Biobase_2.61.0 evaluate_0.22 desc_1.4.2 zip_2.3.0
[61] Biostrings_2.69.2 pillar_1.9.0 BiocManager_1.30.22 MatrixGenerics_1.13.1
[65] renv_1.0.3 DT_0.30 stats4_4.3.1 generics_0.1.3
[69] rprojroot_2.0.3 RCurl_1.98-1.12 S4Vectors_0.39.3 hms_1.1.3
[73] ggplot2_3.4.4 munsell_0.5.0 scales_1.2.1 BiocStyle_2.29.2
[77] glue_1.6.2 tools_4.3.1 BiocIO_1.11.0 data.table_1.14.8
[81] openxlsx_4.2.5.2 BSgenome_1.69.0 GenomicAlignments_1.37.0 fs_1.6.3
[85] XML_3.99-0.14 grid_4.3.1 tidyr_1.3.0 gh_1.4.0
[89] colorspace_2.1-0 GenomeInfoDbData_1.2.11 restfulr_0.0.15 cli_3.6.1
[93] rworkflows_0.99.14 fansi_1.0.5 S4Arrays_1.1.6 arrow_13.0.0.1
[97] dplyr_1.1.3 gtable_0.3.4 R.methodsS3_1.8.2 yulab.utils_0.1.0
[101] digest_0.6.33 BiocGenerics_0.47.0 SparseArray_1.1.12 rjson_0.2.21
[105] htmlwidgets_1.6.2 memoise_2.0.1.9000 htmltools_0.5.6.1 R.oo_1.25.0
[109] lifecycle_1.0.3 here_1.0.1 bit64_4.0.5
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
In Progress