- Single-cell RNA sequencing has become a common approach to trace developmental processes of cells, however, using exogenous barcodes is more direct than predicting from expression profiles recently, based on that, as gene-editing technology matures, combining this technological method with exogenous barcodes can generate more complex dynamic information for single-cell. In this application note, we introduce an R package: LinTInd for reconstructing a tree from alleles generated by the genome-editing tool known as CRISPR for a moderate time period based on the order in which editing occurs, and for sc-RNA seq, ScarLin can also quantify the similarity between each cluster in three ways.
devtools::install_github("mana-W/LinTInd")
- Depends:
- ggplot2
- parallel
- stats
- S4Vectors
- data.tree
- reshape2
- networkD3
- stringdist
- purrr
- ape
- cowplot
- ggnewscale
- stringr
- dplyr
- rlist
- pheatmap
- Biostrings
- IRanges
- BiocGenerics(>= 0.36.1)
- ggtree
- ggplot2
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("LinTInd")
To generate the CB_UMI from fastq files, which will be used in the following.
You can use CB_UMI.sh in: https://github.com/mana-W/chenlab_you.
Input file:
Example files is in LinTInd/inst/extdata
data is from CB_UMI
fa is ref file
cutsite is a file define each sgRNA start and end positon
celltype.tsv is a file include cell barcode and its' annotations, header: Cell.BC Cell.type
library(LinTInd)
data<-paste0(system.file("extdata",package = 'LinTInd'),"/CB_UMI")
fafile<-paste0(system.file("extdata",package = 'LinTInd'),"/V3.fasta")
cutsite<-paste0(system.file("extdata",package = 'LinTInd'),"/V3.cutSites")
celltype<-paste0(system.file("extdata",package = 'LinTInd'),"/celltype.tsv")
data<-read.table(data,sep="\t",header=T)
ref<-ReadFasta(fafile)
cutsite<-read.table(cutsite,col.names = c("indx","start","end"))
celltype<-read.table(celltype,header=T,stringsAsFactors=F)
Or load the example data
data("example_data",package = "LinTInd")
Alignment
scarinfo<-FindIndel(data=data,scarfull=ref,scar=cutsite,indel.coverage="All",type="test",cln=1)
scarinfo<-IndelForm(scarinfo,cln=1)
Define scar pattern for each cell
cellsinfo<-IndelIdents(scarinfo,method.use="umi.num",cln=1)
Pattern visualization
IndelPlot(cellsinfo = cellsinfo)
tag<-TagProcess(cellsinfo$info,Cells=celltype)
treeinfo<-BuildTree(tag)
Similarity of each pair of clusters
tag_dist=TagDist(tag,method = "Jaccard")
Visualization for tree
plotinfo<-PlotTree(treeinfo = treeinfo,data.extract = "TRUE",annotation = "TRUE")
plotinfo$p
Or
plotinfo<-PlotTree(treeinfo = treeinfo,data.extract = "TRUE",annotation = "FALSE")
plotinfo$p