内容

0.1简介

条码、UMI、集合(BUS)格式是一种新的表示RNA-seq读取伪对齐的方法。命令行工具可以有效地生成这种格式的文件kallisto总线.与kallisto总线这个包,我们从fastq文件到用于下游分析的稀疏矩阵,比如Seurat,只需要半小时,而Cell Ranger则需要几个小时。

在这个小插图中,我们将一个10x 1:1的小鼠和人体细胞混合数据集从BUS格式转换为稀疏矩阵。要了解如何从fastq文件生成BUS格式,以及更多深入的小插图,请参见这个包的网站

注意,由于历史原因,这个小插图已被弃用,因为它是在何时实现的kallisto | bustools是实验。的功能make_sparse_matrix是否在命令行工具中更有效地实现了bustools.的更新版本,请使用bustools如果你愿意,还有包装纸kb代替。

0.2下载数据集

#数据集包库(TENxBUSData)库(BUSpaRse)库(Matrix)库(zeallot)库(ggplot2)
TENxBUSData(".", dataset = "hgmm100") #> snapshotDate(): 22-04-19 #> see ?TENxBUSData and browseVignettes('TENxBUSData') for documentation #> loading from cache #>下载的文件在/tmp/RtmpnRv5pA/Rbuild2b5c5c7582b9f9/BUSpaRse/vignettes/out_hgmm100 #> [1] "/tmp/RtmpnRv5pA/Rbuild2b5c5c7582b9f9/BUSpaRse/vignettes/out_hgmm100"

0.3转换为稀疏矩阵

首先,我们映射转录本,如kallisto索引,对应的基因。

tr2g <-转录t2gene(species = c("Homo sapiens", "Mus musculus"), type = "脊椎动物",kallisto_out_path = "。/out_hgmm100", ensemble bl_version = 99, write_tr2g = FALSE) #>查询智人转录本和基因id的biomart #>查询小家鼠转录本和基因id的biomart
head(tr2g) #>转录基因gene_name chromosome_name #> 1 ENST00000434970.2 ENSG00000237235.2 TRDD2 14 #> 2 ENST00000415118.1 ENSG00000223997.1 TRDD1 14 #> 3 ENST00000448914.1 ENSG00000228985.1 TRDD3 14 #> 4 ENST00000632684.1 ENSG00000282431.1 TRBD1 7 #> 5 ENST00000390583.1 ENSG00000211923.1 IGHD3-10 14 #> 6 ENST00000431440.2 ENSG00000232543.2 IGHD4-11 14. ENST00000434970.2

这里我们制作了基因计数矩阵和TCC矩阵。

c(gene_count, tcc) %<-% make_sparse_matrix("./out_hgmm100/output.sorted.txt", tr2g = tr2g, est_ncells = 1e5, est_ngenes = nrow(tr2g)) #>读取矩阵。处理ECs,匹配基因到ECs,读取数据,构建基因计数矩阵,构建TCC矩阵

0.4删除空的水滴

这里我们有一个稀疏矩阵,基因排成行,细胞排成列。

Dim (gene_count) #> [1] 26937 151449

这个数据集应该只有大约100个单元格,但这里我们有超过100,000个单元格。事实上,大多数条形码对应的是空液滴;它们可以通过过滤UMI过少的条形码来去除。

tot_counts <- Matrix:: colsum (gene_count) summary(tot_counts) #>最小第1个Qu.中位数平均第3个Qu.最大值#> 1.00 1.00 2.00 24.77 5.00 64041.00
Df1 <- get_knee_df(gene_count) infl1 <- get_inflection(Df1)
knee_plot (infl1 df1)

Gene_count <- Gene_count [, tot_counts > infl1] dim(Gene_count) #> [1] 26937 122

然后这个稀疏矩阵可以在Seurat中用于下游分析。

同样,我们可以从TCC基质中去除空液滴。

Dim (tcc) #> [1] 129371 157659

这个数据集应该只有大约100个单元格,但这里我们有超过100,000个单元格。事实上,大多数条形码对应的是空液滴;它们可以通过过滤UMI过少的条形码来去除。

tot_counts <- Matrix:: colsum (tcc) summary(tot_counts) #>最小第1个Qu.中位数平均第3个Qu.最大值。#> 1.00 1.00 2.00 25.84 5.00 69235.00
Df2 <- get_knee_df(tcc) infl2 <- get_inflection(Df2)
knee_plot (df2 infl2)

TCC <- TCC [, tot_counts > infl2] dim(TCC) #> [1] 129371 121
sessionInfo() #> R version 4.2.0 RC (22-04-19 r82224) #>平台:x86_64-pc-linux-gnu(64位)#>运行在:Ubuntu 20.04.4 LTS #> #> Matrix products: default #> BLAS: /home/biocbuild/bbs-3.15-bio /R/lib/libRblas. #因此#> LAPACK: /home/biocbuild/bbs-3.15-bio /R/lib/libRlapack。so #> #> 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_TELEPHONE= c# > [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION= c# > #>附加的基包:#> [1]stats graphics grDevices utils datasets methods base #> #>其他附加的包:#> [1]ggplot_2 .3.5 zeallot_0.1.0 Matrix_1.4-1 BUSpaRse_1.10.0 #> [5] TENxBUSData_1.9.0 BiocStyle_2.24.0 #> #>通过命名空间加载(并没有附加):#> [1] colorspace_2.0-3 rjson_0.2.21 #> [3] ellipsis_0.3.2 XVector_0.36.0 #> [5] GenomicRanges_1.48.0 farver_2.1.0 #> [9] [9] AnnotationDbi_1.58.0 fansi_1.0.3 #> [11] xml2_1.3.3 cachem_1.0.6 #> [11] [11] xml2_1. 38 jsonlite_1.8.0 #> [15] Rsamtools_2.12.0 dbplyr_2.1.1 #> [17] png_0.1-7 shiny_1.7.1 #> [19] BiocManager_1.30.17 compiler_4.2.0 #> [21] httr_1.4.2 assertthat_0.2.1 #> [23] fastmap_1.1.0 lazyeval_0.2.2 #> [25] cli_3.3.0 later_1.3.0 #> [27]htmltools_0.5.2 prettyunits_1.1.1 # > [29] tools_4.2.0 gtable_0.3.0 # > [31] glue_1.6.2 GenomeInfoDbData_1.2.8 # > [33] dplyr_1.0.8 rappdirs_0.3.3 # > [35] Rcpp_1.0.8.3 Biobase_2.56.0 # > [37] jquerylib_0.1.4 vctrs_0.4.1 # > [39] Biostrings_2.64.0 ExperimentHub_2.4.0 # > [41] rtracklayer_1.56.0 xfun_0.30 # > [43] stringr_1.4.0 plyranges_1.16.0 # > [45] mime_0.12 lifecycle_1.0.1 # > [47] restfulr_0.0.13 ensembldb_2.20.0 # > [49] xml_3.99 - 0.9 AnnotationHub_3.4.0 # > [51] zlibbioc_1.42.0 scales_1.2.0 # > [53]BSgenome_1.64.0 hms_1.1.1 # > [55] promises_1.2.0.1 MatrixGenerics_1.8.0 # > [57] ProtGenerics_1.28.0 parallel_4.2.0 # > [59] SummarizedExperiment_1.26.0 AnnotationFilter_1.20.0 # > [61] yaml_2.3.5 curl_4.3.2 # > [63] memoise_2.0.1 sass_0.4.1 # > [65] biomaRt_2.52.0 stringi_1.7.6 # > [67] RSQLite_2.2.12 BiocVersion_3.15.2 # > [69] highr_0.9 S4Vectors_0.34.0 # > [71] BiocIO_1.6.0 GenomicFeatures_1.48.0 # > [73] BiocGenerics_0.42.0 filelock_1.0.2 # > [75] BiocParallel_1.30.0 GenomeInfoDb_1.32.0 # > [77]rlang_1.0.2 pkgconfig_2.0.3 #> [79] matrixStats_0.62.0 bitops_1.0-7 #> [81] evaluate_0.15 lattice_0.20-45 #> [83] purrr_0.3.4 genomics icaligns_1.32.0 #> [85] bit_4.0.4 tidyselect_1.1.2 #> [87] magrittr_2.0.3 bookdown_0.26 #> [89] R6_2.5.1 IRanges_2.30.0 #> [91] magick_2.7.3 generics_0.1.2 #> [93] DelayedArray_0.22.0 DBI_1.1.2 #> [95] pillar_1.7.0 withr_2.5.0 #> [97] KEGGREST_1.36.0 RCurl_1.98-1.6 #> [99] tibble_1 .1.6 crayon_1.5.1 #> [103] rmarkdown_2.14Progress_1.2.2 #> [105] grid_4.2.0 blob_1.2.3 #> [107] digest_0.6.29 xtable_1.8-4 #> [109] tidyr_1.2.0 httpuv_1.6.5 #> [111] stats4_4.2.0 munsell_0.5.0 #> [113] bslib_0.3.1