Giter Site home page Giter Site logo

scmarker's Introduction

SCMarker

SCMarker performs cell-type-specific marker selection from single cell RNA sequencing data. It provides users a tool for selecting features from tens of thousands of genes for further cell-type clustering analysis.

SCMarker is done based on two hypotheses:

  1. The expression of a gene should follow bi/multi-modal distribution in a mixed cell population if it is a marker of a specific cell-type.
  2. Marker genes of a cell type express synergistically in a subset of cells.

Developer

Fang Wang ([email protected])

Marker selection

The three main functions for this package are ModalFilter(), GeneFilter() and getMarker().

ModalFilter() performs the initial filter based on the least expressed number of genes(cells) and whether the gene has unimodal distribution.

GeneFilter() takes the output of ModalFilter() and filters out genes that have unimodal distributed expressions and are expressed in more than maxexp cells.

getMarker() takes the output of GeneFilter() and selects the final markers based on synergistically (co- or mutual-exclusively) expressed gene pairs.

Installation

Download SCMarker_2.0.tar.gz

install.packages("SCMarker_2.0.tar.gz",repos=NULL,type="source")

or install through GitHub

library(devtools)
install_github("KChen-lab/SCMarker")

Usage

library(SCMarker)
data(melanoma)
melanoma1=as.matrix(melanoma[,2:dim(melanoma)[2]])
row.names(melanoma1)=melanoma[,1]
res=ModalFilter(data=melanoma1,geneK=10,cellK=10,width=2)# default width = 1 for UMI data, width =2 for TPM data.
res=GeneFilter(obj=res)
res=getMarker(obj=res,k=300,n=30)
head(res$marker)

An example to show how SCMarker improve identification of NK cell in GBM data.

Publication

Wang, Fang, et al. "SCMarker: ab initio marker selection for single cell transcriptome profiling." PLoS computational biology 15.10 (2019): e1007445.

scmarker's People

Contributors

fang0828 avatar lshh125 avatar pickw avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

scmarker's Issues

Problem installing from github

Hi there,
I'm quite keen to test out SCMarker; however, when I try to install it from github using devtools, it fails with the following error:

Error : (converted from warning) /tmp/RtmpqxidqW/R.INSTALL6a8b4f4b65c4/SCMarker/man/HeatmapCluster.Rd:86: unexpected END_OF_INPUT '}
'
ERROR: installing Rd objects failed for package ‘SCMarker’
* removing ‘/home/common/BioC/R-3.6.0-release_BioC-3.9-release/SCMarker’
Error: Failed to install 'SCMarker' from GitHub:
  (converted from warning) installation of package ‘/tmp/RtmpGawVqT/file2f54df03bb4/SCMarker_2.0.tar.gz’ had non-zero exit status

Looks like a problem with some of the documentation? I also tried download the tar.gz source code, but I got the same error.

Thanks for the help!
Sarah

Seurat and SCMarker compatibility

Dear authors of SCMarker,

I've been trying to run the tutorial with the GMB dataset, where Seurat and SCMarker are used together. However, they require different versions of R (Seurat works with 3.6.3 and SCMarker with 3.5.3). Are you planning to release an upgraded version of SCMarker that works with R 3.6.3? If yes, when?

Kind regards,
Elin

Usage with integrated data?

I was wondering if it is possible to use your package with embedding (integrated data), such as the output from Harmony.

If yes, could you explain how?

Error in installation

Dear Sir,
Can you please fix the issue I encountered in installing your package?
Cheers
Calogero
###########
I tried installing your package:
library(devtools)
Loading required package: usethis

install_github("KChen-lab/SCMarker")
Downloading GitHub repo KChen-lab/SCMarker@master
✔ checking for file ‘/private/var/folders/_b/4rmqysy94j91kb8xjyc551z40000gn/T/Rtmpgv8C6V/remotes15f6348ff42e/KChen-lab-SCMarker-c07d842/DESCRIPTION’ ...
─ preparing ‘SCMarker’:
✔ checking DESCRIPTION meta-information ...
Warning: /private/var/folders/_b/4rmqysy94j91kb8xjyc551z40000gn/T/RtmpeP6Kqc/Rbuild17d32bd5251d/SCMarker/man/HeatmapCluster.Rd:86: unexpected END_OF_INPUT '}
'
─ installing the package to process help pages
─ saving partial Rd database (1.3s)
─ checking for LF line-endings in source and make files and shell scripts
─ checking for empty or unneeded directories
─ looking to see if a ‘data/datalist’ file should be added
─ building ‘SCMarker_2.0.tar.gz’

  • installing source package ‘SCMarker’ ...
    ** using staged installation
    ** R
    ** data
    ** byte-compile and prepare package for lazy loading
    ** help
    Error : (converted from warning) /private/var/folders/_b/4rmqysy94j91kb8xjyc551z40000gn/T/RtmpSdymSM/R.INSTALL17fe3db0335f/SCMarker/man/HeatmapCluster.Rd:86: unexpected END_OF_INPUT '}
    '
    ERROR: installing Rd objects failed for package ‘SCMarker’
  • removing ‘/Library/Frameworks/R.framework/Versions/3.6/Resources/library/SCMarker’
    Error: Failed to install 'SCMarker' from GitHub:
    (converted from warning) installation of package ‘/var/folders/_b/4rmqysy94j91kb8xjyc551z40000gn/T//Rtmpgv8C6V/file15f656e812f7/SCMarker_2.0.tar.gz’ had non-zero exit status

I cloned the repository and I did a build test and I got the following issues:

warning 1

✔ checking DESCRIPTION meta-information ...
Warning: /private/var/folders/_b/4rmqysy94j91kb8xjyc551z40000gn/T/RtmpOtbfSW/Rbuild16401f1c0c3c/SCMarker/man/HeatmapCluster.Rd:86: unexpected END_OF_INPUT '}

error 1:
checking for unstated dependencies in examples ... WARNING
Warning: parse error in file 'SCMarker-Ex.R':
156:5: unexpected symbol
155: topmarker=as.data.frame(feature
156: topmarker
^

Input expression data: log or anti-log?

When using this nice package, I was confused by whether the input expression should be log or anti-log transformed.

The example data are log-transfromed.

data(melanoma)
melanoma1 = as.matrix(melanoma[, 2:dim(melanoma)[2]])
row.names(melanoma1) = melanoma[, 1]
range(melanoma1)
[1]  0.000 15.923

In SCcluster(), NormalizeData() from the Seurat is called, and data are log-transformed again by normalization.method = "LogNormalize".

Then in getClusterGene(), get_marker_genes() from the SC3 package is called. According to its example, get_marker_genes() takes in anti-log transformed data as input, other than the log-transformed data.

range(yan[1:10,])
[1]    0 9225

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.