meichendong / SCDC

SCDC
42 stars 9 forks source link

Segmentation fault in SCDC_qc #2

Closed artgolden closed 4 years ago

artgolden commented 4 years ago

Thanks for the tool! I had little problems with it except for QC step.

When attempting to perform QC with SCDC_qc. single cell eset file and core dump are available upon request.

System specifications: Ubuntu 19.10 Lenovo Thinkpad P1 Intel® Core™ i7-8750H CPU @ 2.20GHz × 6 RAM 30,9 GiB

Log:

.................
Begin iterative weighted estimation...
Converged at iteration 1
Begin iterative weighted estimation...
Converged at iteration 1

 *** caught segfault ***
address 0x7fb1d2ea02d0, cause 'memory not mapped'

Traceback:
 1: hclust(d, method = method)
 2: cluster_mat(mat, distance = clustering_distance_rows, method = clustering_method)
 3: pheatmap(prop.qc, annotation_row = arow, annotation_names_row = FALSE,     show_rownames = F, annotation_names_col = FALSE, cutree_rows = length(ct.sub),     color = cbPalette[2:4], cluster_rows = T, cluster_cols = F)
 4: SCDC_qc(human.sc.new.eset, ct.varname = "Cell_class", sample = "Sample_ID",     scsetname = "macaque_new", ct.sub = unique(human.sc.new.eset$Cell_class),     qcthreshold = 0.7)
artgolden commented 4 years ago

After debugging the issue myself, it looks like pheatmap crashes when the number of elements is too large - 48k in my case. I think the option not to render a heatmap should be added to SCDC_qc function as well as a note about large datasets.

When the heatmap rendering was run externally (not inside the SCDC_qc function) it consumed > 32Gb of RAM, but managed to finish.

meichendong commented 4 years ago

Hi! Thanks for using SCDC! Yes I figured the pheatmap() function would introduce problems when the dataset becomes extremely large. We have added an option in the function and you can set generate.figure = F to avoid creating the pheatmap.

artgolden commented 4 years ago

Thanks for the update, and for a great package! Glad to hear this issue resolved.

Artemiy

On Wed, Feb 5, 2020 at 10:36 PM meichendong notifications@github.com wrote:

Hi! Thanks for using SCDC! Yes I figured the pheatmap() function would introduce problems when the dataset becomes extremely large. We have added an option in the function and you can set generate.figure = F to avoid creating the pheatmap.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/meichendong/SCDC/issues/2?email_source=notifications&email_token=AA5OXZCAJYK46P2NHCFDVCDRBMILTA5CNFSM4KDJO2N2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEK4WJLY#issuecomment-582575279, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA5OXZDFW42EEN3RDK6UDU3RBMILTANCNFSM4KDJO2NQ .