hhcho / densvis Goto Github PK
View Code? Open in Web Editor NEWDensity-preserving data visualization tools den-SNE and densMAP
Home Page: http://densvis.csail.mit.edu
License: MIT License
Density-preserving data visualization tools den-SNE and densMAP
Home Page: http://densvis.csail.mit.edu
License: MIT License
I'm wondering whether the cluster information of cells be changed after densvis processing,in other words,how can I get that ? The mapping of colors is required when drawing.
Thanks for all your work -- this looks like a great addition/advancement over the standard UMAP approach. I was wondering if you would consider integrating densmap into the Python UMAP repository? I am currently adding new features in the 0.5dev branch, and I feel like DensMAP support would be a very valuable option to have for many users. If you do not have the time I certainly understand, and I can endeavour to add the feature myself, but I would certainly appreciate PRs from the original authors if possible.
If you do wish to make PRs please make sure to update READMEs and documentation to include citations/references to your paper to ensure proper credit.
I"m running densMAP in the development version of Seurat, and it seems to work (hallelujah!) but the clustering is not reproducible. If I run the same pipeline twice over, the clustering is similar yet different. Is there a way to make it reproducible?
setting the seed doesn't help. Is this intrinsic to the densMAP algorithm? Or is there a way to make it reproducible?
thanks,
Nicolaas
ps command I run is:
RunUMAP(MySeuratObject, dims = 1:UMAP.dimensions, densmap=TRUE)
Hi,
I'm trying to fit the model on a dataset with densmap.fit()
and then to evaluate the embedding on a new dataset with different number of rows with densmap.transform()
but I get an error of "index out of bound" for the row index. Is it a bug or the algorithm, by definition, is not allowed to do out-of-sample prediction?
Thanks
Unless my input (data) has equal row and column numbers, I receive this error. Am I doing something wrong?
dim(data)
[1] 8910 41
traceback()
4: stop(structure(list(message = "ValueError: Buffer has wrong number of dimensions (expected 1, got 2)",
call = py_call_impl(callable, dots$args, dots$keywords),
cppstack = structure(list(file = "", line = -1L, stack = c("/d0/home/rasmusr/R/x86_64-pc-linux-gnu-library/4.0/reticulate/libs/reticulate.so(Rcpp::exception::exception(char const*, bool)+0x78) [0x7f66e414eea8]",
"/d0/home/rasmusr/R/x86_64-pc-linux-gnu-library/4.0/reticulate/libs/reticulate.so(Rcpp::stop(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)+0x27) [0x7f66e414ef17]",
"/d0/home/rasmusr/R/x86_64-pc-linux-gnu-library/4.0/reticulate/libs/reticulate.so(py_call_impl(PyObjectRef, Rcpp::Vector<19, Rcpp::PreserveStorage>, Rcpp::Vector<19, Rcpp::PreserveStorage>)+0x52d) [0x7f66e416109d]",
"/d0/home/rasmusr/R/x86_64-pc-linux-gnu-library/4.0/reticulate/libs/reticulate.so(_reticulate_py_call_impl+0x95) [0x7f66e4149f15]",
"/usr/lib/R/lib/libR.so(+0xf9290) [0x7f6715177290]", "/usr/lib/R/lib/libR.so(+0x13940c) [0x7f67151b740c]",
"/usr/lib/R/lib/libR.so(Rf_eval+0x180) [0x7f67151c1670]",
"/usr/lib/R/lib/libR.so(+0x14548f) [0x7f67151c348f]", "/usr/lib/R/lib/libR.so(Rf_applyClosure+0x1c7) [0x7f67151c4257]",
"/usr/lib/R/lib/libR.so(+0x13a909) [0x7f67151b8909]", "/usr/lib/R/lib/libR.so(Rf_eval+0x180) [0x7f67151c1670]",
"/usr/lib/R/lib/libR.so(+0x14548f) [0x7f67151c348f]", "/usr/lib/R/lib/libR.so(Rf_applyClosure+0x1c7) [0x7f67151c4257]",
"/usr/lib/R/lib/libR.so(+0x13a909) [0x7f67151b8909]", "/usr/lib/R/lib/libR.so(Rf_eval+0x180) [0x7f67151c1670]",
"/usr/lib/R/lib/libR.so(+0x14548f) [0x7f67151c348f]", "/usr/lib/R/lib/libR.so(Rf_applyClosure+0x1c7) [0x7f67151c4257]",
"/usr/lib/R/lib/libR.so(Rf_eval+0x353) [0x7f67151c1843]",
"/usr/lib/R/lib/libR.so(+0x148613) [0x7f67151c6613]", "/usr/lib/R/lib/libR.so(Rf_eval+0x572) [0x7f67151c1a62]",
"/usr/lib/R/lib/libR.so(Rf_ReplIteration+0x23a) [0x7f67151f539a]",
"/usr/lib/R/lib/libR.so(+0x177761) [0x7f67151f5761]", "/usr/lib/R/lib/libR.so(run_Rmainloop+0x48) [0x7f67151f5818]",
"/usr/lib/rstudio-server/bin/rsession(+0x887166) [0x557db1872166]",
"/usr/lib/rstudio-server/bin/rsession(+0x8632ad) [0x557db184e2ad]",
"/usr/lib/rstudio-server/bin/rsession(+0x7c666) [0x557db1067666]",
"/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f6713456b97]",
"/usr/lib/rstudio-server/bin/rsession(+0x9fe4a) [0x557db108ae4a]"
)), class = "Rcpp_stack_trace")), class = c("Rcpp::exception",
"C++Error", "error", "condition")))
3: py_call_impl(callable, dots$args, dots$keywords)
2: densMAP$fit_transform(data) at densmap.R#54
1: densMAP(data, verbose = T)
sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.4 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1
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] stats graphics grDevices utils datasets methods base
other attached packages:
[1] magrittr_1.5 optparse_1.6.6 reticulate_1.16-9000
loaded via a namespace (and not attached):
[1] fastmatch_1.1-0 plyr_1.8.6 igraph_1.2.5 splines_4.0.2 BiocParallel_1.22.0
[6] GenomeInfoDb_1.24.2 ggplot2_3.3.2 scater_1.16.2 urltools_1.7.3 digest_0.6.25
[11] htmltools_0.5.0 GOSemSim_2.14.0 viridis_0.5.1 GO.db_3.11.4 memoise_1.1.0
[16] limma_3.44.3 annotate_1.66.0 graphlayouts_0.7.0 matrixStats_0.56.0 sccore_0.1
[21] enrichplot_1.8.1 prettyunits_1.1.1 colorspace_1.4-1 blob_1.2.1 rappdirs_0.3.1
[26] ggrepel_0.8.2 pagoda2_0.1.1 xfun_0.15 dplyr_1.0.0 crayon_1.3.4
[31] RCurl_1.98-1.2 jsonlite_1.7.0 scatterpie_0.1.4 genefilter_1.70.0 brew_1.0-6
[36] survival_3.2-3 glue_1.4.1 polyclip_1.10-0 gtable_0.3.0 zlibbioc_1.34.0
[41] XVector_0.28.0 DelayedArray_0.14.0 BiocSingular_1.4.0 Rook_1.1-1 SingleCellExperiment_1.10.1
[46] BiocGenerics_0.34.0 scales_1.1.1 DOSE_3.14.0 DBI_1.1.0 edgeR_3.30.3
[51] Rcpp_1.0.5 viridisLite_0.3.0 xtable_1.8-4 progress_1.2.2 gridGraphics_0.5-0
[56] dqrng_0.2.1 bit_1.1-15.2 europepmc_0.4 rsvd_1.0.3 stats4_4.0.2
[61] httr_1.4.1 getopt_1.20.3 fgsea_1.14.0 RColorBrewer_1.1-2 ellipsis_0.3.1
[66] pkgconfig_2.0.3 XML_3.99-0.4 farver_2.0.3 locfit_1.5-9.4 ggplotify_0.0.5
[71] tidyselect_1.1.0 rlang_0.4.7 reshape2_1.4.4 later_1.1.0.1 AnnotationDbi_1.50.1
[76] munsell_0.5.0 tools_4.0.2 downloader_0.4 generics_0.0.2 RSQLite_2.2.0
[81] ggridges_0.5.2 stringr_1.4.0 fastmap_1.0.1 yaml_2.2.1 knitr_1.29
[86] bit64_0.9-7 tidygraph_1.2.0 purrr_0.3.4 dendextend_1.13.4 ggraph_2.0.3
[91] mime_0.9 scran_1.16.0 DO.db_2.9 xml2_1.3.2 compiler_4.0.2
[96] rstudioapi_0.11 beeswarm_0.2.3 tibble_3.0.3 statmod_1.4.34 tweenr_1.0.1
[101] geneplotter_1.66.0 stringi_1.4.6 lattice_0.20-41 Matrix_1.2-18 vctrs_0.3.1
[106] pillar_1.4.6 lifecycle_0.2.0 BiocManager_1.30.10 triebeard_0.3.0 BiocNeighbors_1.6.0
[111] data.table_1.12.8 cowplot_1.0.0 bitops_1.0-6 irlba_2.3.3 httpuv_1.5.4
[116] conos_1.3.0 GenomicRanges_1.40.0 qvalue_2.20.0 R6_2.4.1 promises_1.1.1
[121] gridExtra_2.3 vipor_0.4.5 IRanges_2.22.2 MASS_7.3-51.6 SummarizedExperiment_1.18.1
[126] rjson_0.2.20 DESeq2_1.28.1 cacoa_0.1 S4Vectors_0.26.1 GenomeInfoDbData_1.2.3
[131] parallel_4.0.2 hms_0.5.3 clusterProfiler_3.16.0 grid_4.0.2 tidyr_1.1.0
[136] DelayedMatrixStats_1.10.1 rvcheck_0.1.8 ggforce_0.3.2 base64enc_0.1-3 Biobase_2.48.0
[141] shiny_1.5.0 tinytex_0.24 ggbeeswarm_0.6.0
Dear densmap tool,
Any plan for further supporting the newest version of Numba? There are known issues for Numba when running on ARM64/aarch64 CPU structure. Both umap and trimap are now supporting the newest Numba.
Thanks,
Jianshu
Hi,
How did you generate the synthetic data? I only find a "trial.txt" file here but not the process of generating it. Could you let me know the process of it?
I have an issue installing densvis (and the parent package scater) on M1 apple silicon.
It appears another user has an identical issue, so Id don't see the need to produce a working example.
Probably related to fortran, macOS, homerbrew etc.
I read the paper and wondering how to compute the correlation between the log local radii in the original dataset. Could you let me know which file descripts it?
I met a ZeroDivisionError. It is very confusing.
Traceback (most recent call last):
File "/Users/uqyyao4/Documents/Project/03_GNN_for_visualization/code/densvis-master/densmap/trial_densmap.py", line 17, in
emb, ro, re = densmap.densMAP(verbose=True, n_components=2,
File "/Users/uqyyao4/Documents/Project/03_GNN_for_visualization/code/densvis-master/densmap/densmap/densmap_.py", line 2086, in fit_transform
self.fit(X, y)
File "/Users/uqyyao4/Documents/Project/03_GNN_for_visualization/code/densvis-master/densmap/densmap/densmap_.py", line 1967, in fit
self.embedding_ = simplicial_set_embedding(
File "/Users/uqyyao4/Documents/Project/03_GNN_for_visualization/code/densvis-master/densmap/densmap/densmap_.py", line 1295, in simplicial_set_embedding
embedding = optimize_layout(
ZeroDivisionError: division by zero
Would you have any objections if I package a (possibly slightly modified) version of this repository in an R package to submit to CRAN? Of course with appropriate credit and citation.
Dear,
I tried to install the package with pip command.
But I couldn't find requirements.txt. Where is the file to install the package?
Thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.