CONICS: COpy-Number analysis In single-Cell RNA-Sequencing
CONICS works with either full transcript (e.g. Fluidigm C1) or 5'/3' tagged (e.g. 10X Genomics) data!
The CONICS paper has been accepted for publication in Bioinformatics. Check it out here !
CONICSmat is an R package that can be used to identify CNVs in single cell RNA-seq data from a gene expression table, without the need of an explicit normal control dataset. CONICSmat works with either full transcript (e.g. Fluidigm C1) or 5'/3' tagged (e.g. 10X Genomics) data. A tutorial on how to use CONICSmat, and a Smart-Seq2 dataset, can be found on the CONICSmat Wiki page [CLICK here].
Visualizations of scRNA-seq data from Oligodendroglioma (Tirosh et al., 2016) generated with CONICSmat.
Adjust CONICS.cfg to customize the following:
A set of tumor cells from three glioblastoma patients and a normal brain control, as well as a file with genomic coordinate of large-scale CNVs are available here.
bash run_CONICS.sh [directory for tumor] [directory for normal] [.bed file for CNV segments] [base name]
[directory for tumor]: path to directory containing aligned bam files to be tested. Example glioblastoma data, used in the manuscript, can be obtained here.
[directory for normal]: path to directory containing aligned bam files to be used as a control. Example nonmalignant brain data, used in the manuscript, can be obtained here was used as an examples for the journal
[BED file for CNV segments]: tab-delimited bed file of CNV segments to be quantified.
[chromosome] [start] [end] [chromosome:start:end:CNV]
Note: the 4th column of the file must have the exact format shown here:(Amp: amplification, Del: deletion)
7 19533 157408385 7:19533:157408385:Amp
9 19116859 32405639 9:19116859:32405639:Del
[base name] : base name for output directory
All output files will be located in the directory _output[base name]__.
Regions of copy-number alteration will show a drop in the frequency of reads quantifying the minor allele. Averaged over large regions of copy-number alteration, this provides an additional metric to increase confidence in single-cell CNV-calls.
Adjust CONICS.cfg to customize the following:
bash run_BAf_analysis.sh [directory for tumor] [VCF file for normal exome-seq] [VCF file for tumor exome-seq] [BED file for CNV segments] [base name]
[directory for tumor]: path to directory containing aligned bam files to be tested. Example glioblastoma data, used in the manuscript, can be obtained here.
[VCF file for normal exome-seq]: Vcf file containing mutations for a control exome-seq, e.g. from blood of the patient. This file can be generated with tools like GATK toolkit.
[VCF file for tumor exome-seq]: Vcf file containing mutations detected in exome-seq of the tumor. This file can be generated with tools like GATK toolkit.
[base name] : base name for output directory
All output files will be located in the directory _output[base name]__
CONICS can generate a phylogenetic tree from the CNV incidence matrix, using the Fitch-Margoliash algorithm. Other phylogenetic reconstruction algorithms can be applied, using the incidence matrix as a starting point.
Adjust Tree.cfg to change the following.
bash run_Tree.sh [CNV presence/absence matrix][number of genotypes] [base name for output file]
cluster.pdf (phylogenetic trees) and cluster.txt will be generated in the output directory. Each leaf corresponds to a clusters of cells with a common genotype. Cluster assignments for each cell will be in cluster.txt.
cluster_1 D12,E10,F9,G3,A12,C8,C9,A3,A5,A6,C3,C2,C1,C7,H12,C4,D8,D9,A9,E4,E7,E3,F1,E1,B5,B7,E9,B3,D7,D1
cluster_2 E8,G7,G9,A7,G2,B6,E2
cluster_3 H3,A2,A4,H8,G11,F2,F3,H1,H7
cluster_4 A10,B2
cluster_5 C5
cluster_6 F8,B1
CONICS can construct the local co-expression network of a given gene, based on correlations across single cells.
Adjust CorrelationNetwork.cfg to configure the following:
bash run_CorrelationNetwork.sh [input matrix] [centered gene] [base name]
All the output files will be located in output.
Adjust CompareExomeSeq_vs_ScRNAseq.cfg to set the following:
bash run_compareExomeSeq_vs_ScRNAseq.sh [matrix for read counts] [base name for output file]
[matrix for read counts]: tab-delimited file of the number of mapped reads to each gene in the DNA sequencing and in scRNA-seq. Genes on each chromosome should be ordered by their chromosomal position.
[gene] [chromosome] [start] [#read in DNA-seq(normal)] [#read in DNA-seq(tumor)] [#read in scRNA-seq(normal)] [#read in scRNA-seq(tumor)]
DDX11L1 1 11874 538 199 5 0 WASH7P 1 14362 4263 6541 223 45
* __[base name]__ : base name for output directory
### Output
__Compare_[window_size].pdf__ (Box plot) will be generated in the output directory.
![compare](images/Compare_200.jpg?raw=true "compare" )
## <a id="10x"></a> False discovery rate estimation: Cross validation
CONICS can estimate false discovery rate via 10-fold cross-validation, using the user-supplied control scRNA-seq dataset. For example, in the manuscript cross validation was performed using [normal brain controls](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE67835).
### Requirements
* [beanplot](https://www.jstatsoft.org/article/view/v028c01)(R package)
* [samtools](http://www.htslib.org)
* [bedtools](http://bedtools.readthedocs.io/en/latest)
### Config file
Adjust __10X_cross_validation.cfg__ to set the following:
* Paths to python/samtools/bedtools/Rscript
* Thresholds for mapping-quality and read-count.
* FDR for CNV calling
### Running
bash run_10X_cross_validation.sh [directory for control scRNA-seq] [.bed file containing CNV segments] [base name]
* __[directory for test]__: path to directory containing the aligned BAM files of the scRNA-seq control data.
* __[.bed file for CNV segments], [base name]__ : same as described in run_CONICS.sh
;
### Output
Box plot of 10 FDRs resulting from each pooled sample would be generated (__boxplot.pdf__) in the output directory.
![10X](images/10X_boxplot.jpg?raw=true "10Xval_Test" )
## <a id="Empirical"></a> False discovery rate estimation: Empirical testing
FDRs can also be estimated by empirical testing. In the manuscript, the number of false positive CNV calls was calculated using a non-malignant [fetal brain dataset](http://dx.doi.org/10.1016/j.cell.2015.09.004). These data are independent from the [training set](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE67835)
### Requirements
* [beanplot](https://www.jstatsoft.org/article/view/v028c01)
* [samtools](http://www.htslib.org)
* [bedtools](http://bedtools.readthedocs.io/en/latest)
### Config file
Adjust __Empirical_validation.cfg__ to change the following:
* Paths to python/samtools/bedtools/Rscript
* Thresholds for mapping-quality and read count
* FDR for CNV calling
### Running
bash run_empirical_validation.sh [directory for train] [directory for test] [.bed files for CNV segments] [base name]
* __[directory for train]__: path to directory containing aligned bam files of scRNA-seq data used as a control to call CNVs
* __[directory for test]__: path to directory containing aligned bam files of scRNA-seq data known not to have CNVs, used as a gold standard.
* __[BED file for CNV segments]__ : same as described in run_CONICS.sh
### Output
Box plot of FDRs will be generated (__boxplot.pdf__) in the output directory.
![empirical](images/Empirical_boxplot.jpg?raw=true "empirical_Test" )