Git Product home page Git Product logo

echodata's People

Contributors

bschilder avatar

Watchers

 avatar  avatar

echodata's Issues

Fix `portal_query`

local_finemap <- portal_query(
    dataset_types = "GWAS",
    phenotypes = c("schizophrenia", "parkinson"),
    file_types = "multi_finemap",
    loci = c("BST1", "CHRNB1", "LRRK2"),
    LD_panels = "1KGphase3"
)
Fetching echolocatoR Fine-mapping Portal study metadata.
+ 2 datasets remain after filtering.
+ Searching for multi_finemap files...
OK (HTTP 200).+ 0 unique files identified.
+ Downloading 0 files...
+ Returning local file paths.

`ggtree`/`orthogene` failing on Bioc 3.17

These depends are currently failing on Bioc devel (3.17):

ggtree    (NA -> 3.7.0) [CRAN]
orthogene (NA -> 1.5.0) [CRAN]

I can fix the latter but will have to wait for the former to be fixed.

Bug BP import_topSNPs

import_topSNPs doesn't seem to like if you change the positional column name from BP even if you change the input too:

Nalls_top_SNPs
setnames(Nalls_top_SNPs,"BP","SNP_pos")

top_SNPs <- import_topSNPs(
  # topSS = "~/Desktop/Fine_Mapping/Data/GWAS/Nalls23andMe_2019/Nalls2019_TableS2.xlsx",
  topSS = Nalls_top_SNPs,
  chrom_col = "CHR", 
  position_col = "SNP_pos", 
  snp_col="SNP",
  pval_col="P, all studies", 
  effect_col="Beta, all studies", 
  gene_col="Nearest Gene", 
  locus_col = "Nearest Gene",
  grouping_vars = c("Locus"),
  remove_variants = "rs34637584")

I think this is down to the munge functionality, where you over ride the position_col variable's value (line 73)

`gene_locus_list`: add to echoverse

This function got lost at some point, but it's used in the QTL vignette

#' Generate a named list of [e]gene-locus pairs
#'
#' @export
gene_locus_list <- function(top_SNPs){
  setNames(top_SNPs$Locus, top_SNPs$Gene)
}

Get topSS from input GWAS using import_topSNPs

I find a bit painful having to generate the Gene Locus columns from the input GWAS every time.
I would like to see import_topSNPs being able to generate that for me rather than passing Gene Locus, or a function called make_topSNPs that does it for you.

I came up with a function to do this, basically wrapping the function here https://github.com/oyhel/vautils

This is the approach I used

make_topSNPs = function(data,
                        build = "hg19",
                        write.out = T,
                        custom_gene = NULL,
                        .metadata_file = metadata) {
  # I need to do this in advance to enter vautils function
  data = data %>%
    dplyr::rename(rsid = `#SNP`,
                  chromosome = CHR,
                  position = POS)

  snps_mapped = vautils::find_nearest_gene(as.data.frame(data),
                                           build=build,
                                           collapse=F,
                                           snp = "rsid",
                                           flanking=1000)


  if(any(snps_mapped$distance == "intergenic")) {
    snps_mapped = snps_mapped %>%
      mutate(distance = recode(distance, "intergenic" = "0"))
  }

  snps_mapped_filt = snps_mapped %>%
    mutate(distance = abs(as.numeric(distance))) %>%
    arrange(distance) %>%
    group_by(rsid) %>%
    filter(row_number() == 1) %>%
    ungroup()

  if (!is.null(custom_gene)) {
     custom_gene_filt = snps_mapped %>%
       dplyr::filter(GENE %in% custom_gene)
     # Remove the picked gene from vautils
     snps_mapped_filt = snps_mapped_filt %>%
       dplyr::filter(!((chromosome == custom_gene_filt$chromosome) & (position == custom_gene_filt$position)))

     snps_mapped_filt = rbind(snps_mapped_filt, custom_gene_filt)
  }

  snps_mapped_filt = data.frame(Locus = snps_mapped_filt$GENE,
                     Gene = snps_mapped_filt$GENE,
                     CHR = snps_mapped_filt$chromosome,
                     POS = snps_mapped_filt$position,
                     SNP = snps_mapped_filt$rsid)


  tmp_2 = data %>%
    dplyr::filter(rsid %in% snps_mapped_filt$SNP) %>%
    dplyr::select(SNP = rsid, Effect, P = Pval)
  mydf = snps_mapped_filt %>% inner_join(tmp_2)


  if (write.out) {
    fwrite(mydf, paste(.metadata_file[1],"top_SNPs.txt", sep = "/"),
           col.names = T,
           row.names = F,
           sep ="\t",
           quote = F)
  }
  return(mydf)
}

Add dataset: Microglia_all_regions_Kunkle_2019_COLOC.snp-level_select.tsv.gz

Add dataset used in QTL vignette:

fullSS_path <- file.path(tempdir(),
                         "Microglia_all_regions_Kunkle_2019_COLOC.snp-level_select.tsv.gz")
# ## Download example data 
if(!file.exists(fullSS_path)){
  download.file("https://github.com/RajLabMSSM/Fine_Mapping_Shiny/raw/master/www/Microglia_all_regions_Kunkle_2019_COLOC.snp-level_select.tsv.gz", fullSS_path)
}

Bug standardise_gene_locus_cols() doesn't inherit column names for SNP CHR

There is a bug in standardise_gene_locus_cols(), it assumes that the snp and chromosome column names are always SNP and CHR even though those names are inputted to the parent function so it should inherit from there.

Lines of code with issue in standardise_gene_locus_cols() [lines 169-170, 176-178]

    top_SNPs <- dplyr::mutate(top_SNPs,
                              Locus=paste0("locus_chr",CHR,"_",SNP),
                              Gene=paste0("locus_chr",CHR,"_",SNP))

parquet functions causing segfault

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.

rstudio/reticulate#1470

3. Session info

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 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.