R studio - "the previous R session was abnormally terminated due to an unexpected crash" - package EACON / ASCAT @team.r

Chère team.r,

Je travaille sur des données de CNV (Oncoscan) en fichiers CEL.

Je cherche à utiliser le package EACON (GitHub - gustaveroussy/EaCoN: Easy Copy Number !).

J'avais réalisé une première analyse il y a environ 1 mois et tout mon script (/shared/mfs/data/home/gbeinse/HRD/HRD_EACON.R roulait pour le même échantillon.

Lorsque j'essaie de nouveau aujourd'hui, un message d'erreur apparait systématique en utilisant la fonction Segment.ff() (L2R & BAF Segmentation par ASCAT).

Ci dessous la capture d'écran de la scène de crime :

Auriez vous une solution ou une idée sur l'origine de cette erreur et les moyens de la corriger ?

Un grand merci par avance !

Bien cordialement

Guillaume Beinse

@team.r
erratum de mon message précédent : voici la capture d'écran

Bonjour Guillaume,

Difficile de dire ce qui ne va pas exactement.

Fin avril la version de R utilisé sur RStudio a été mis à jour (Mise à jour de R sur le serveur RStudio - #19 par Francois), passant de R 3.5 à 3.6 (et les packages ont suivi).
Peut-être que le package EACON ou ASCAT a un problème sur cette nouvelle version ?

Peut-être pouvez-vous essayer en utilisant l'ancienne version de R sur le cluster (RStudio utilise la version r/3.6.1 mais plusieurs versions de R sont disponibles sur le cluster: r/3.5.1 r/3.6.3 r/4.0) ?
Depuis core.cluster.france-bioinformatique.fr:

module load r/3.5.1

Sinon, toujours sur le cluster, vous pouvez peut-être tester directement le module r-eacon disponible:

module load r-eacon/0.3.4_1 

En ligne de commande, on aura peut-être aussi plus d'info (le "unexpected crash" ne nous aide pas beaucoup :slight_smile: ).

Dites-nous ce que vous en pensez ou si vous avez pu tester.

Bonne journée

Merci @team.ifbcorecluster !

Je vais essayer de suivre vos instructions (je suis bloqué depuis hier par des problèmes de connexions, mais je crois avoir compris que vous êtes sur le coup! :slight_smile: )

Bon courage!

Bien cordialement

GB

ReBonjour @team.ifbcorecluster @dbenaben,

J'ai donc pu faire tourner mon script avec l'ensemble des packages installés.

Le "unexpected crash" de R donne donc ceci dans le .Rout de la commande
$ R CMD BATCH script.R :

Dans le terminal :
/shared/mfs/data/software/miniconda/envs/r-3.6.3/lib/R/bin/BATCH: line 60: 175624 Segmentation fault ${R_HOME}/bin/R -f ${in} ${opts} ${R_BATCH_OPTIONS} > ${out} 2>&1

dans le .Rout :
Après la fonction :
Segment.ff(RDS.file = paste(T0005,"/",T0005,"_OncoScan_hg38_processed.RDS",sep = ""),

  •        segmenter = "ASCAT")
    

*** caught segfault ***
address (nil), cause 'memory not mapped'

Traceback:
1: runmed(x, k = filtWidth, endrule = "median")
2: runmed(x, k = filtWidth, endrule = "median")
3: medianFilter(x, k)
4: madWins(use.y, tau = tau, k = k, digits = digits)
5: copynumber::winsorize(data = cndf, pos.unit = "bp", method = "mad", k = 5, tau = 1, verbose = FALSE)
6: Segment.ASCAT(data = list(data = list(Tumor_LogR.ori = list(T0005 = c(0.174520790576935, 0.349083930253983, [...] 1145753L, 1145762L, 1145766L, 1145772L, 1145794L, 1145813L ), masked = NULL))), out.dir = "T0005")
7: do.call(paste0("Segment.", toupper(segmenter)), list(data = my.data, out.dir = dirname(RDS.file), ...))
8: Segment.ff(RDS.file = paste(sample_list[i], "/", sample_list[i], "_OncoScan_hg38_processed.RDS", sep = ""), segmenter = "ASCAT")
An irrecoverable exception occurred. R is aborting now ...

Quelques recherches semblent m'indiquer qu'il s'agit d'un problème de version ? (https://stackoverflow.com/questions/49190251/caught-segfault-memory-not-mapped-error-in-r)

Auriez vous des suggestions pour avancer ?

Merci encore de votre soutien !

Bien cordialement

Guillaume Beinse

Bonjour,

Peut-être que pour commencer vous pourriez tester avec un plus petit jeu de données. Et surtout en utilisant srun.
https://ifb-elixirfr.gitlab.io/cluster/doc/slurm_user_guide/

Dans une deuxième temps, si vous le souhaitez, on peux essayer de mettre à jour un des composants que vous utilisez, pour cela il faudra être un peu plus précis et nous dire quel composant exactement est a passer de quel version à quel version.

Enfin si vous avez un petit script R (quelques lignes),genre le plus court possible, le minimum qui permettrai de reproduire facilement l'erreur, alors nous pourrons peut-être essayer de regarder de notre coté.

Bonjour @team.ifbcorecluster,

J'avais reçu ce message sur ma boite mail mais je vous remet ma réponse car pas sûr que vous l'ayez vue !

Malheureusement je ne peux pas essayer sur un plus petit jeu de données car je n'analyse déja avec mon script que les données d'un seul échantillon (deux fichiers .CEL issus d'une analyse de CNV par OncoScan)

J'ai tenté de relancer mon script avec la commande suivante :
$ sbatch HRD_EACON_job.sh

avec
$ vim HRD_EACON_job.sh

#!/bin/bash

Requirements

#SBATCH --job-name=HRD_EACON
#SBATCH --mem=60GB
#SBATCH --nodes=2
#SBATCH --cpus-per-task=8
#SBATCH --mem-per-cpu=8GB
#SBATCH --mincpus=4

Rscript HRD_EACON.R

Pour le wd :
dans le dossier GSE111711_RAW/ figurent n fichiers *.CEL

Pour T0005 les fichiers pour reproduire exactement ce script sont les suivants:
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM3037868
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM3037869

Pour le script :
Dans HRD_EACON.R tous les packages se chargent bien sans message d'erreur. L'erreur survient après la fonction Segment.ff( ):

first identify a working directory

setwd("GSE111711_RAW/")

identify samples

sample_sheet <- data.frame(File = Sys.glob("*.CEL"))

identify sample names

sample_sheet$Sample <- str_extract(sample_sheet$File, "T[:digit:]{4}")
sample_list <- levels(factor(sample_sheet$Sample))

Raw data processing for Affymetrix OncoScan / OncoScan_CNV data for the sample

i = 1
sample_sheet_i <- sample_sheet %>% filter(Sample == as.character(sample_list[i])) %>% droplevels()
print(sample_list[i])
OS.Process(ATChannelCel = as.character(sample_sheet_i[1,1]),
GCChannelCel = as.character(sample_sheet_i[2,1]),
apt.version = "2.4.0",
samplename = sample_list[i],
genome.pkg = "BSgenome.Hsapiens.UCSC.hg38",
apt.build = "na36.r1",
force = TRUE)

L2R & BAF Segmentation

Segment.ff(RDS.file = paste(sample_list[i],"/",sample_list[i],"_OncoScan_hg38_processed.RDS",sep = ""),
segmenter = "ASCAT")

Message :
[cpu-node-20.ifb.local:172961] Loading data from T0005/T0005_OncoScan_hg38_processed.RDS ...
[cpu-node-20.ifb.local:172961] Sample : T0005
[cpu-node-20.ifb.local:172961] Loading BSgenome.Hsapiens.UCSC.hg38 ...
[cpu-node-20.ifb.local:172961] Filtering BAF...
[cpu-node-20.ifb.local:172961] ASPCF segmentation ...
[1] Sample T0005 (1/1)
[cpu-node-20.ifb.local:172961] Recentering ...
[cpu-node-20.ifb.local:172961] ... using the most centered of populated peaks.
[cpu-node-20.ifb.local:172961] Smoothing L2R (for plots)...

*** caught segfault ***
address (nil), cause 'memory not mapped'

Traceback:
1: runmed(x, k = filtWidth, endrule = "median")
2: runmed(x, k = filtWidth, endrule = "median")
3: medianFilter(x, k)
4: madWins(use.y, tau = tau, k = k, digits = digits)
5: copynumber::winsorize(data = cndf, pos.unit = "bp", method = "mad", k = 5, tau = 1, verbose = FALSE)
6: Segment.ASCAT(data = list(data = list(Tumor_LogR.ori = list(T0005 = c(0.174520790576935, 0.349083930253983, [ ... longue liste jusqu'à ... ] ,1145772L, 1145794L, 1145813L ), masked = NULL))), out.dir = "T0005")
7: do.call(paste0("Segment.", toupper(segmenter)), list(data = my.data, out.dir = dirname(RDS.file), ...))
8: Segment.ff(RDS.file = paste(sample_list[i], "/", sample_list[i], "_OncoScan_hg38_processed.RDS", sep = ""), segmenter = "ASCAT")
An irrecoverable exception occurred. R is aborting now ...
/var/spool/slurm/slurmd/job9715588/slurm_script: line 10: 172961 Segmentation fault (core dumped) Rscript HRD_EACON.R

Encore un grand merci pour votre aide !! Je reste très intrigué car en lançant ces commandes il y a un mois sur le https://rstudio.cluster.france-bioinformatique.fr/ ça marchait bien !!

Bon courage et bonne fin de journée

Cordialement

Guillaume

@AoumessBJ
Bastien, haut toi, grand créateur du bien nommé package EaCoN, as-tu une idée ?

Bonjour!
Je suis le papa d'EaCoN, et merci d'avoir fait remonter ce problème. Je n'ai malheureusement pas de moyen d'action direct, le bug étant dans une dépendance de dépendance de dépendance... C'est effectivement à l'étape de lissage par winsorization du vecteur de log2ratios que le bug a lieu : j'ai retracé sur google le suivi de ce segfault dans la façon d'appeler la commande stats::runmed(), et normalement depuis R3.6.2 c'est un bug qui aurait du être corrigé, sous réserve d'utiliser un nouveau paramètre pour gérer les NA/NaN (ref : CHANGES IN R 3.6.2 NEW FEATURES, en date du 02/12/2019).

Dans l'exécution du code, cette fonction runmed est appelée par medianFilter, et il existe pas mal de packages contenant une fonction nommée ainsi... Je vais tenter de retracer quel package est effectivement utilisé, pour voir si une version plus récente ou de développement est mise à jour quant à l'utilisation de ce nouveau paramètre pour gérer les NA/NaN. C'est en tout cas ma seule hypothèse à l'heure actuelle...

1 « J'aime »

Re,

Je viens de publier une nouvelle release d'EaCoN pour fixer ce bug de dépendance.
EaCoN 0.3.5

@gildaslecorguille Pourras-tu m'aider en me montrant comment faire pour répercuter la mise à jour sur bioconda stp :smiley: ?

Bonjour @AoumessBJ @gildaslecorguille

Avant tout merci pour ce beau package d'analyse des CNV beaucoup plus "user friendly" que les scripts apt...

Dans l'attente j'ai finalement bricolé un truc en faisant tourner OS.process sur le cluster, et les fonctions suivantes sur mon R, sans difficultés. Ci dessous le r.session si ça peut aider.

Top si maintenant on peut tout passer sur le cluster. Je vais essayer.

Encore un grand merci pour EACON (que je citerais (au moins le github, je n'ai pas trové la publi))

Et encore un grand merci pour le cluster !!! ressource inestimable !

Amicalement

Guillaume

session info pour OS.process
R version 3.6.3 (2020-02-29)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

Matrix products: default
BLAS/LAPACK: /shared/mfs/data/software/miniconda/envs/r-3.6.3/lib/libopenblasp-r0.3.9.so

locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8
[6] LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats4 parallel stats graphics grDevices utils datasets methods base

other attached packages:
[1] BSgenome.Hsapiens.UCSC.hg19_1.4.0 BSgenome.Hsapiens.UCSC.hg38_1.4.1 OncoScanCNV.na36.r1_0.1.0 OncoScan.na36.r1_0.1.0
[5] affy.CN.norm.data_0.1.3 apt.oncoscan.2.4.0_0.1.6 EaCoN_0.3.4-1 dplyr_0.8.5
[9] stringr_1.4.0 sequenza_3.0.0 rhdf5_2.30.1 limma_3.42.2
[13] copynumber_1.26.0 BSgenome_1.54.0 rtracklayer_1.46.0 GenomicRanges_1.38.0
[17] GenomeInfoDb_1.22.0 aroma.light_3.16.0 Biostrings_2.54.0 XVector_0.26.0
[21] IRanges_2.20.0 S4Vectors_0.24.0 BiocGenerics_0.32.0 affxparser_1.58.0
[25] facets_0.6.1 pctGCdata_0.3.0 ASCAT_2.5.2 RColorBrewer_1.1-2
[29] devtools_2.3.0 usethis_1.6.1 data.table_1.12.8

loaded via a namespace (and not attached):
[1] bitops_1.0-6 matrixStats_0.56.0 fs_1.4.1 bit64_0.9-7 doParallel_1.0.15
[6] rprojroot_1.3-2 tools_3.6.3 backports_1.1.7 DT_0.13 R6_2.4.1
[11] DBI_1.1.0 ade4_1.7-15 withr_2.2.0 tidyselect_1.1.0 prettyunits_1.1.1
[16] processx_3.4.2 bit_1.1-15.2 compiler_3.6.3 cli_2.0.2 iotools_0.3-1
[21] Biobase_2.46.0 desc_1.2.0 DelayedArray_0.12.0 readr_1.3.1 callr_3.4.3
[26] pbapply_1.4-2 digest_0.6.25 Rsamtools_2.2.3 R.utils_2.9.2 htmltools_0.4.0
[31] pkgconfig_2.0.3 changepoint_2.2.2 sessioninfo_1.1.1 htmlwidgets_1.5.1 rlang_0.4.6
[36] RSQLite_2.2.0 rstudioapi_0.11 zoo_1.8-8 mclust_5.4.6 BiocParallel_1.20.0
[41] R.oo_1.23.0 RCurl_1.98-1.2 magrittr_1.5 GenomeInfoDbData_1.2.2 Matrix_1.2-18
[46] Rcpp_1.0.4.6 Rhdf5lib_1.8.0 fansi_0.4.1 lifecycle_0.2.0 R.methodsS3_1.8.0
[51] stringi_1.4.6 MASS_7.3-51.6 SummarizedExperiment_1.16.0 zlibbioc_1.32.0 pkgbuild_1.0.8
[56] blob_1.2.1 grid_3.6.3 crayon_1.3.4 lattice_0.20-41 hms_0.5.3
[61] seqminer_8.0 ps_1.3.3 pillar_1.4.4 seqinr_3.6-1 codetools_0.2-16
[66] pkgload_1.0.2 XML_3.99-0.3 glue_1.4.1 squash_1.0.9 remotes_2.1.1
[71] vctrs_0.3.0 foreach_1.5.0 testthat_2.3.2 purrr_0.3.4 assertthat_0.2.1
[76] tibble_3.0.1 iterators_1.0.12 GenomicAlignments_1.22.1 memoise_1.1.0 ellipsis_0.3.1

session info pour > OS.process

## R version 4.0.2 (2020-06-22)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 19041)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=French_France.1252  LC_CTYPE=French_France.1252    LC_MONETARY=French_France.1252 LC_NUMERIC=C                  
## [5] LC_TIME=French_France.1252    
## 
## attached base packages:
## [1] stats4    parallel  stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] BSgenome.Hsapiens.UCSC.hg38_1.4.3 OncoScanCNV.na36.r1_0.1.0         OncoScan.na36.r1_0.1.0            affy.CN.norm.data_0.1.3          
##  [5] apt.oncoscan.2.4.0_0.1.6          EaCoN_0.3.4-1                     dplyr_1.0.0                       stringr_1.4.0                    
##  [9] sequenza_3.0.0                    rhdf5_2.32.1                      limma_3.44.3                      copynumber_1.28.0                
## [13] BSgenome_1.56.0                   rtracklayer_1.48.0                GenomicRanges_1.40.0              GenomeInfoDb_1.24.2              
## [17] aroma.light_3.18.0                Biostrings_2.56.0                 XVector_0.28.0                    IRanges_2.22.2                   
## [21] S4Vectors_0.26.1                  BiocGenerics_0.34.0               affxparser_1.60.0                 facets_0.6.1                     
## [25] pctGCdata_0.3.0                   ASCAT_2.5.2                       RColorBrewer_1.1-2                devtools_2.3.0                   
## [29] usethis_1.6.1                     data.table_1.12.8                
## 
## loaded via a namespace (and not attached):
##  [1] seqinr_3.6-1                ellipsis_0.3.1              mclust_5.4.6                rprojroot_1.3-2            
##  [5] fs_1.4.1                    rstudioapi_0.11             remotes_2.1.1               DT_0.14                    
##  [9] bit64_0.9-7                 fansi_0.4.1                 codetools_0.2-16            R.methodsS3_1.8.0          
## [13] doParallel_1.0.15           knitr_1.29                  pkgload_1.1.0               ade4_1.7-15                
## [17] jsonlite_1.7.0              Rsamtools_2.4.0             R.oo_1.23.0                 readr_1.3.1                
## [21] compiler_4.0.2              backports_1.1.8             assertthat_0.2.1            Matrix_1.2-18              
## [25] cli_2.0.2                   htmltools_0.5.0             prettyunits_1.1.1           tools_4.0.2                
## [29] glue_1.4.1                  GenomeInfoDbData_1.2.3      tinytex_0.24                Rcpp_1.0.4.6               
## [33] Biobase_2.48.0              vctrs_0.3.1                 crosstalk_1.1.0.1           iterators_1.0.12           
## [37] changepoint_2.2.2           xfun_0.15                   ps_1.3.3                    testthat_2.3.2             
## [41] lifecycle_0.2.0             XML_3.99-0.3                zlibbioc_1.34.0             MASS_7.3-51.6              
## [45] zoo_1.8-8                   hms_0.5.3                   SummarizedExperiment_1.18.1 yaml_2.2.1                 
## [49] memoise_1.1.0               pbapply_1.4-2               stringi_1.4.6               RSQLite_2.2.0              
## [53] desc_1.2.0                  foreach_1.5.0               pkgbuild_1.0.8              BiocParallel_1.22.0        
## [57] rlang_0.4.6                 pkgconfig_2.0.3             matrixStats_0.56.0          bitops_1.0-6               
## [61] evaluate_0.14               lattice_0.20-41             purrr_0.3.4                 Rhdf5lib_1.10.0            
## [65] GenomicAlignments_1.24.0    htmlwidgets_1.5.1           bit_1.1-15.2                processx_3.4.2             
## [69] tidyselect_1.1.0            magrittr_1.5                R6_2.4.1                    generics_0.0.2             
## [73] squash_1.0.9                DelayedArray_0.14.0         DBI_1.1.0                   pillar_1.4.4               
## [77] withr_2.2.0                 RCurl_1.98-1.2              tibble_3.0.1                seqminer_8.0               
## [81] crayon_1.3.4                rmarkdown_2.3               grid_4.0.2                  blob_1.2.1                 
## [85] callr_3.4.3                 digest_0.6.25               R.utils_2.9.2               sessioninfo_1.1.1          
## [89] iotools_0.3-1

Merci pour tes encouragements ^^
Effectivement EaCoN n'est pas publié... Ca fait ~ 4 ans que le draft est commencé, mais plein d'autres choses plus intéressantes à faire :stuck_out_tongue: Un jour, peut-être !

C'est ici que ça se passe : bioconda-recipes/recipes/r-eacon/meta.yaml at master · bioconda/bioconda-recipes · GitHub

:rocket:

Dis-moi quand tu veux que je mettes à jour sur l'IFB !