单细胞RNA测序已成为追踪细胞发育过程的常用方法,但近年来,使用外源条形码比从表达谱预测更为直接,基于此,随着基因编辑技术的成熟,将该技术方法与外源条形码相结合,可以生成更复杂的单细胞动态信息。在本应用笔记中,我们介绍了一个R包:LinTInd,用于根据编辑发生的顺序,从被称为CRISPR的基因组编辑工具生成的等位基因重建树,对于sc-RNA序列,ScarLin还可以用三种方式量化每个簇之间的相似性。
通过GitHub
devtools: install_github(“mana-W / LinTInd”)
通过Bioconductor
如果(!requireNamespace("BiocManager", quiet = TRUE)) install.packages("BiocManager")
库(LinTInd)
LinTInd的输入包含三个必需的文件:
和一个可选文件:
数据< -paste0(系统。file("extdata",package = 'LinTInd'),"/CB_UMI") fafile<-paste0(system. txt)file("extdata",package = 'LinTInd'),"/V3.fasta")file("extdata",package = 'LinTInd'),"/V3.cutSites")file("extdata",package = 'LinTInd'),"/celltype.tsv") data<-read.table(data,sep="\t",header=TRUE) ref<-ReadFasta(fafile) cutsite<-read.table(cutsite,col.names = c("indx","start","end")) celltype<-read.table(celltype,header=TRUE,stringsAsFactors=FALSE)
对于序列文件,只有包含reads字符串的列是必需的,单元格条形码和UMIs都是可选的。
头(数据,3)
# #阅读。ID ## 1 @A01045:289:HM7K3DRXX: 2:21001:9896:1031 ## 2 @A01045:289:HM7K3DRXX: 2:21001:13367:1031 ## 3 @A01045:289:HM7K3DRXX: 2:21001:9959:1047 ##读取。Seq GAACGCGTAGGATAACATGGCCATCATCAAGGAGTTCTCATGCGCTTCAAGGTGCACATGGTTTATTGGAGCCGTACATGAACTGAGGTTAAGGACAGGATGTCCCAGGCGTAGGTAATTGGCCCCCTGCCCTTCGCCTGGGTTATAAGCTTCGGGTTTAAACGGGCCCTGGGGGTGGCATCCCTGTGACCCCTCCCCAGTGCCTCTCCTGGCCCTGGAAGTTGCCACTCCAGTGCCCACCAGCCTTGTC # # 1 # # 2GAACGCGTAGGATAACATGGCCATCATCAAGGAGTTCTCATGCGCTTCAAGGTGCACATGGTTTATTGGAGCCGTACATGAACTGAGGTTAAGGACAGGATGTCCCAGGCGTAGGTAATTGGCCCCCTGCCCTTCGCCTGGGTTATAAGCTTCGGGTTTAAACGGGCCCTGGGGGTGGCATCCCTGTGACCCCTCCCCAGTGCCTCTCCTGGCCCTGGAAGTTGCCACTCCAGTGCCCACCAGCCTTGTC # # 3gaacggtaggataacatggccatcatcaaggagttctcatgcgcttcaaggtgcacatggttagccgtacatgaactgttaagaggacaggatgccccttccccttcgcctgttataagcttgccccctgggggccccccccagtgccccagtgccccagtgccccagtgccccagtgccactccagtgccactccagtgccccccag# #单元格。BC umi ## 1 gaagggtagcctcagc cttctcccga ## 2 accctcacaagactgg tgtaattttt ## 3 gaagggtagcctcagc cttctcccga
裁判
##字符DNAString对象## seq: GAACGCGTAGGATAACATGGCCATCATCAAGGAGTT
cutsite
##索引开始结束## 10 39 267 ## 2 1 1 23 ## 3 2 28 50 ## 4 3 55 77 ## 5 4 82 104 ## 6 5 109 131 ## 7 6 136 158 ## 8 7 163 185
头(celltype, 3)
# #细胞。公元前细胞。输入## 1 AAGCGAGTCTTCTGTA A ## 2 AATCGACTCGTAGTGT A ## 3 ACATGCAGTCCACACG A
在第一步,我们应该使用FindIndel ()
以对齐和查找索引,和函数IndelForm ()
将帮助我们为每次读取生成数组形式的字符串。
scarinfo < -FindIndel (data =数据,scarfull = ref,疤痕= cutsite indel.coverage =“所有”,类型=“测试”,cln = 1) scarinfo < -IndelForm (scarinfo cln = 1)
然后,对于单细胞测序,我们应该为每个细胞使用定义一个最终版本的数组形式字符串IndelIdents ()
,有三种方法提供:
对于批量测序,在这一步中,我们将为每次读取生成一个“细胞条形码”。
cellsinfo < -IndelIdents (scarinfo method.use =“umi.num cln = 1)
在为每个单元定义了indels之后,我们可以使用IndelPlot ()
把它们形象化。
IndelPlot(cellsinfo = cellsinfo)
我们可以用这个函数TagProcess ()
提取单元格/读取的索引。的参数细胞是可选的。
细胞标记< -TagProcess (cellsinfo信息,美元= celltype)
如果提供了每个单元格的注释,我们也可以使用TagDist ()
用三种方法计算各组之间的关系:
此结果的热图将保存为pdf文件。
tag_dist=TagDist(标签,方法= "Jaccard")
##使用Cell。类型为值列:使用值。Var重写。
##聚合函数缺失:默认为长度
tag_dist
## a b c d e ## a 1.0000000 0.4925373 0.2794118 0.2985075 0.2058824 ## b 0.4925373 1.0000000 0.5588235 0.6060606 0.4117647 ## c 0.2794118 0.5588235 1.0000000 0.9047619 0.500000 ## d 0.2985075 0.6060606 0.9047619 1.0000000 0.6666667 1.0000000 e 0.2058824 0.4117647 0.6666667 1.0000000
在最后一部分,我们可以使用BuildTree ()
生成一个数组生成树。
treeinfo < -BuildTree(标签)
##使用Cell。Num作为值列:使用值。Var重写。
最后,我们可以使用函数PlotTree ()
为了可视化之前创建的树。
plotinfo<-PlotTree(treeinfo = treeinfo,data. exe)extract = "TRUE",annotation = "TRUE")
##使用标签作为id变量
plotinfo $ p
sessionInfo ()
## R正在开发中(不稳定)(2022-10-25 r83175) ##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 22.04.1 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.17-bioc/R/lib/libRblas。so ## LAPACK: /usr/lib/x86_64-linux-gnu/ LAPACK /liblapack.so.3.10.0 ## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_GB LC_COLLATE= c# # [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# # [9] LC_ADDRESS=C lc_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基础包:## [1]stats4并行统计图形grDevices utils datasets ##[8]方法基础## ##其他附加包:## [1]LinTInd_1.3.0 S4Vectors_0.37.0 BiocGenerics_0.45.0 ## [4] ggplot2_3.3.6 ## ##通过命名空间加载(且未附加):## [4] Biostrings_2.67.0 bitops_1.0-7 fastmap_1.1.0 ## [7] RCurl_1.98-1.9 lazyeval_0.2.2 digest_0.6.30 ## [10] lifecycle_1.0.3 tidytree_0.4.1 magrittr_2.0.3 ## [13] compiler_4.3.0 rlang_1.0.6 sass_0.4.2 ## [19] tools_4.3.0 igraph_1.3.5 utf8_1.2.2 ## [19] yaml_2.3.6 data.table_1.14.4 knitr_1.40 ## [22] labeling_0.4.2 htmlwidgets_1.5.4 plyr_1.8.7 ## [25] RColorBrewer_1.1-3 aplot_0.1.8 withr_2.5.0 ## [28] purrr_0.3.5 grid_4.3.0 fansi_1.0.3 ## [31]colorspace_2.0-3 data.tree_1.0.0 scales_1.2.1 # # [34] cli_3.4.1 rmarkdown_2.17 crayon_1.5.2 # # [37] treeio_1.23.0 generics_0.1.3 rlist_0.4.6.2 # # [40] stringdist_0.9.9 ggtree_3.7.0 reshape2_1.4.4 # # [43] DBI_1.1.3 ape_5.6-2 cachem_1.0.6 # # [46] stringr_1.4.1 zlibbioc_1.45.0 assertthat_0.2.1 # # [49] ggplotify_0.1.0 XVector_0.39.0 vctrs_0.5.0 # # [52] yulab.utils_0.0.5 jsonlite_1.8.3 gridGraphics_0.5-1 # # [55] IRanges_2.33.0 patchwork_1.1.2 ggnewscale_0.4.8 # # [58] jquerylib_0.1.4 tidyr_1.2.1glue_1.6.2 ## [61] cowplot_1.1.1 stringi_1.7.8 gtable_0.3.1 ## [64] GenomeInfoDb_1.35.0 munsell_0.5.0 tibble_3.1.8 ## [67] pillar_1.8.1 htmltools_0.5.3 GenomeInfoDbData_1.2.9 ## [70] R6_2.5.1 networkD3_0.4 evaluate_0.17 ## [73] lattice_0.20-45 highr_0.9 pheatmap_1.0.12 ## [76] ggfun_0.0.7 bslib_0.4.0 Rcpp_1.0.9 ## [79] nlme_1 .3.1 -160 xfun_0.34 pkgconfig_2.0.3