Error in insulation_score()
Error in vecseq(f__, len__, if (allow.cartesian || notjoin || !anyDuplicated(f__, : Join results in 772081250 rows; more than 46324875 = nrow(x)+nrow(i). Check for duplicate key values in i each of which join to the same group in x over and over again. If that's ok, try by=.EACHI to run j for each group to avoid the large allocation. If you are sure you wish to proceed, rerun with allow.cartesian=TRUE. Otherwise, please search for this error message in the FAQ, Wiki, Stack Overflow and data.table issue tracker for advice.
I meet the problem above when I run the function insulation_score()
H1 = load_contacts(signal_path = 'H1.cool') H1_insulation = insulation_score(H1, window = 25) r$> H1 A GENOVA contacts object named 'H1.cool' at a resolution of 5 kb. Contains the following slots:
- MAT : Triplet format matrix containing 222128249 informative bins.
- IDX : 617665 genomic indices in BED format.
- CHRS : A vector of 24 chromosome names.
- CENTROMERES: Locations of 24 centromeres. This object is assigned the colour 'black' 0 bins are masked. No chromosomes have been removed. The data have not been Z-score normalised. The original data were loaded in as balanced data.
I have encountered the same error, have you fixed it?
Hi, I am also encountering the same error, has there been any updates for you?
I tried the example data from GENOVA package, however, I got the same error. I think maybe the problem is some of the dependent package has updated so that it has conflict with GENOVA.
exp <- get_test_data("40k")
ins <- insulation_score(exp) Error in vecseq(f__, len__, if (allow.cartesian || notjoin || !anyDuplicated(f__, : Join results in 4476600 rows; more than 223830 = nrow(x)+nrow(i). Check for duplicate key values in i each of which join to the same group in x over and over again. If that's ok, try by=.EACHI to run j for each group to avoid the large allocation. If you are sure you wish to proceed, rerun with allow.cartesian=TRUE. Otherwise, please search for this error message in the FAQ, Wiki, Stack Overflow and data.table issue tracker for advice.
Thank you @Moonriver1988 ! I looked into that and it appears that it may be coming from the data.table() package. I tried running "> options(datatable.allow.cartesian=TRUE)" and then the insulation_score() fonction worked!
For information, although we don't have access to the version loaded in the vignette in the SessionInfo(), in my session it is: packageVersion("data.table") [1] ‘1.16.2’
Best, Sarah
@sarahmnry Thank you very much! It works after running "options(datatable.allow.cartesian=TRUE)".
@teunbrand: can we add this option during startup?
I think globally setting an option without asking is rude package behaviour. I'm fine with locally running the insulation score algo with that option, but we should restore the previous value after that function ends with on.exit().
Ok, is this something easy for you to do?
Is that the solution or ducktape? Happy to apply it if it is the solution, but not if it is ducktape.
@gxygogogo please check with dev-branch if issue is fixed!