Git Product home page Git Product logo

epigen / dea_seurat Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 10.0 342 KB

A Snakemake workflow for performing differential expression analyses (DEA) on (multimodal) sc/snRNA-seq data powered by the R package Seurat.

License: MIT License

Python 32.53% R 67.47%
bioinformatics biomedical-data-science differential-expression-analysis scrna-seq single-cell snakemake snrna-seq visualization volcano-plot workflow

dea_seurat's People

Contributors

sreichl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

roblehmann

dea_seurat's Issues

support test-specific parameters

only implement if a use case is presented.
neg. binomial tests use the following parameters, which are currently hard-coded (to default) or not supported:

  • latent.vars
  • min.cells.feature
  • ...

consider capping heatmaps

  • Get input from the team.
  • cap heatmaps like in enrichment analysis e.g.,
    • simple cap ie LFC>cap_th -> set to cap_th
    • log? (log again the LFC?)
    • scale the heatmaps?

Consider: it is a breaking change as it requires a new config field...

NameError: name 'srcdir' is not defined

Hello,
thanks for the effort to turn the Seurat pipeline into a snakemake.
The following line in the Snakefile gives me an error since the function srcdir is not defined:

SDIR = os.path.realpath(os.path.dirname(srcdir("Snakefile")))

Had to comment it out to get to to run.
cheers

DEA statistics barplot split of up and down by sign

To get a better overview of the number of differential features in each direction(!), up and down, the barplot could go literally up and down from zero. "down" features need a negative sign (-).
plot_df are the DEA statistics.

# plot config
direction_col <- list("up"="red", "down"="blue")

# plot
ggplot(plot_df, aes(x=groups, y=n_features, fill=direction)) + 
        geom_bar(stat="identity", position="identity") +
        scale_fill_manual(values=direction_col) +
        custom_theme +
        theme(legend.position = "none",
             axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)
             )

Error in hclust(d, method = method) : must have n >= 2 objects to cluster

If only two cell groups are provided, there is only one column in the pheatmap plot (heatmap.R) and hclust causes an error.

This fixes it:

clusterCols <- ncol(dea_lfc) > 1

make heatmap

lfc_heatmap <- as.ggplot(pheatmap(dea_lfc,
show_rownames=F,
show_colnames=T,
cluster_cols = clusterCols,
fontsize = 5,
angle_col = 45,
treeheight_row = 25,
treeheight_col = 10,

annotation_col = annot,

           breaks=seq(-max(abs(dea_lfc)), max(abs(dea_lfc)), length.out=200),
           color=colorRampPalette(c("blue", "white", "red"))(200),
           annotation_names_col = F,
           silent = TRUE
          ))

update and extend documentation

  • update current docs (work through current README)
    • rulegraph
    • remove patchwork from env.yamls
    • add package version numbers
  • incorporate changes to latest features
    • restructuring of results and plots
  • add latest features
    • feature lists
    • raw & adj p value volcano plots
    • statistics barplot
    • parallelization
    • example data set
      • provide rds object via Zenodo (3.2GB)
      • LFC heatmap of celltypemarkers
  • update config.yaml

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.