GithubHelp home page GithubHelp logo

jefworks / mudan Goto Github PK

View Code? Open in Web Editor NEW
70.0 6.0 12.0 61.54 MB

Multi-sample Unified Discriminant ANalysis

Home Page: http://jef.works/MUDAN/

License: GNU General Public License v3.0

R 100.00%
single-cell linear-discriminant-analysis subpopulation visualization transcriptomics

mudan's Introduction

MUDAN

Multi-sample Unified Discriminant ANalysis

Build Status

(Fun fact: mudan 牡丹 means peony in Chinese)

Please note that MUDAN is still in active development and will likely see substantial changes in terms of its algorithms, data structure, and otherwise general functionalities in ways that may not be backwards compatible.


Motivation

To analyze multiple single-cell RNA-seq samples in a coherent manner in order to acheive joint annotation of cell types across patients, time-points, and batches.


Benefits and Capabilities

Enhanced visualizations

  • Detected clusters are artificially separated for visualization purposes only

Fast subpopulation detection and characterization

  • Graph-based community detection to identify subpopulations
  • Stability analysis to ensure transcriptionally distinct subpopulations
  • Differential gene expression and marker selection functionalities

Multi-sample clustering

  • Preserves variation observed in each sample
  • Ideal for when samples may differ in cell type composition

Please see the vignettes for more information


Install

require(devtools)
devtools::install_github("JEFworks/MUDAN")

Contributing

I welcome any bug reports, enhancement requests, and other contributions. To submit a bug report or enhancement request, please use the MUDAN GitHub issues tracker. For more substantial contributions, please fork this repo, push your changes to your fork, and submit a pull request with a good commit message.

mudan's People

Contributors

dependabot[bot] avatar evanbiederstedt avatar jefworks avatar slowkow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mudan's Issues

consider adding set.seed() in the vignette

Hi,

I'm recently following this tutorial to get familiar with the functions in the MUDAN package.

However the embeddings from Rtsne:: Rtsne could not be reproduced very well: if it is run respectively at two time points, the number of the clusters is consistent but the shape and/or the locations of the clusters/cells might be different. It might make the tutorial a little bit confusing, especially for the learners.

To address this and to make the results more 'reproducible', adding 'set.seed()' might be an efficient way. (e.g., https://satijalab.org/seurat/v3.1/interaction_vignette.html) In this case, the coordinates of each cell will be constant between different sessions.

Thanks,
JY

Documentation error

I have a matrix of data (dat.mat) with features in rows and cells in columns. Per the documentation for the getComMembership function, clustering this matrix should give labels over the cells. However, in order to actually cluster the cells, the matrix must be transposed, as shown below:

res <- MUDAN::getComMembership(t(dat.mat), k = k, method = igraph::cluster_infomap, verbose = FALSE)

This seems to indicate that the documentation is incorrect. getComMembership takes a matrix with samples in rows rather than columns.

PC calculation

Hi,
I was wondering that why the PC calculation for the expression matrix in the MUDAN is
a <- irlba::irlba(crossprod(m)/(nrow(m)-1), nu=0, nv=nPcs, tol=tol, ...)
a$l <- m %*% a$v
m <- t(a$l)
If I understand right, in the Pagoda2 or the Seurat setting, the PC calculation is just a SVD decomposition on the expression matrix using irlba package to get the U matrix.
What is the difference between MUDAN's PCs and others and is there any idea in that ?
Thanks for let me know.

Yao

Release tag for packaging

Hi @JEFworks! I'd love to package this up to be hosted on bioconda - an official release tag on the repo would greatly help by creating a source that can be linked to as a static artifact. Thanks!

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.