这个包的目的是方便查询人类细胞图谱数据门户通过他们的数据浏览器API.参观人类细胞图谱有关该项目的更多信息。
评估下面的代码块,以安装本插图所需的包。
pkgs <- c("httr", "dplyr", "LoomExperiment", "hca") pkgs_needed <- pkgs[!pkgs %in% rownames(installed.packages())]
把包裹装进你的R会话。
库(httr)库(dplyr)库(LoomExperiment)库(hca)
为了说明这个包的使用,考虑下载一个“loom”文件的任务,该文件总结了在HCA研究项目中观察到的单细胞基因表达。这可以通过访问HCA数据门户(在https://data.humancellatlas.org/explore),并以交互方式选择项目,但以可重复的、灵活的、程序化的方式实现相同的目标是有价值的。我们将(1)在HCA数据协调中心发现有织机文件的可用项目;(2)从HCA检索文件并将数据导入R作为“LoomExperiment”对象。举例来说,我们专注于“人类胰腺的单细胞转录组分析揭示衰老和体细胞突变模式的转录特征”项目。
使用项目()
检索HCA默认目录中的所有项目。
projects() ## #一个tibble:261×5 # # projectId projectTitle genusSpecies samples.organ specimens.organ # # <空空的> <空空的> <列表> <列表> <列表> # # 74 b6d569-3b11-42ef-b……130万……<空空的[1]> <空空的[1]> <空空的[1]> # # 2 53 c53cd4 - 8127 - 4 - e12汽油- b细胞…<空空的[1]> <空空的[1]> <空空的[1]> # # 3 7027 adc6-c9c9-46f3-8细胞…<空空的[1]> <空空的[1]> <空空的[1]> # # 4 94 e4ee09 - 9 - b4b - 410 - 8…人类丽芙·…<空空的[1]> <空空的[1]> <空空的[1]> # # 5 60 ea42e1-af49-42f5-8协议…<空空的[1]> <空空的[1]> <空空的[1]> # # 6 ef1e3497 - 515 e - 4 -被- 8……Single-Ce…<空空的[1]> <空空的[3]> <空空的[3]> # # 7 f86f1ab4 fbb - 4510 A - 1…Single-Ce…<空空的[2]> <空空的[1]> <空空的[1]> # # 8 602628 d7-c038-48a8-a…Single-Ce…<空空的[1]> <空空的[3]> <空空的[3]> # # 9 c1810dbc-16d2-45c3-b细胞atla…<空空的[2]> <空空的[2]> <空空的[2]> # # 10 c0518445-3b3b-49c6-b细胞…<空空的[1]> <空空的[2]> <杆(2 ]> ## # ... 与251多行
使用过滤器()
将项目限制为包含至少一个“织机”文件的项目。
project_filter <- filters(fileFormat = list(is = "loom")) project_tibble <- projects(project_filter)79×5 # # projectId projectTitle genusSpecies samples.organ specimens.organ # # <空空的> <空空的> <列表> <列表> <列表> # # 1 53 c53cd4 - 8127 - 4 - e12汽油- b细胞…<空空的[1]> <空空的[1]> <空空的[1]> # # 2 7027 adc6-c9c9-46f3-8细胞…<空空的[1]> <空空的[1]> <空空的[1]> # # 3 c1810dbc-16d2-45c3-b细胞atla…<空空的[2]> <空空的[2]> <空空的[2]> # # 4 a9301beb-e9fa-42fe-b…人类玻璃纸…<空空的[1]> <空空的[14]> <空空的[14]> # # 5 996120 f9 e84f - 409 f -一个人类罪恶…<空空的[1]> <空空的[1]> <空空的[1]> # # 6 842605 c7 - 375 - 47 - c5 - 9…一个ce…<空空的[1]> <空空的[1]> <空空的[1]> # # 7 a004b150-1c36-4af6-9…single-ce…<空空的[1]> <空空的[1]> <空空的[1]> # # 8 4 a95101c-9ffc-4f30-a…single-ce…<空空的[1]> <空空[4]> <空空[4]> # # 9 1 cd1f41f f81a - 486 b -…single-ce…<空空的[1]> <空空的[1]> <空空的[1]> # # 10 8185730 f - 4113 - 40 - d3 - 9…single-ce…<空空的[1]> <空空的[1]> <杆(1 ]> ## # ... 与69多行
使用标准R命令进一步筛选项目到我们感兴趣的项目,标题以“Single…”开头。提取独特之处projectId
对于这个标题的第一个项目。
project_tibble %>% filter(startsWith(projectTitle,“Single”))%>% head(1) %>% t() ## [,1] ## projectTitle“0c3b7785-f74d-4091-8616-a68757e4c2a8”## projectTitle“多发性骨髓瘤II”## genusSpecies“智人”## sample .organ“造血系统”##标本。organ“造血系统”projectIds <- project_tibble %>% filter(startsWith(projectTitle,“Single”))%>% dplyr::pull(projectTitle,“Single”)projd <- projectIds[1]
文件()
从人类细胞图谱数据门户检索(前1000个)文件。构造一个过滤器,将文件限制为来自我们感兴趣的项目的织机文件。
file_filter <- filters(projectId = list(is = projectId), fileFormat = list(is = "loom")) #只有两个最小的文件file_tibble <- files(file_filter, size = 2, sort = "fileSize", order = "asc") file_tibble ## #一个tibble:2 × 8 ## fileId name fileFormat size version projectTitle projectId url ## ## 1 fe214fea-cc68-56…bone…loom 4.04e7 2021-0…单细胞…0c3b7785…http…## 2 3014ec47-1399-57…bone…loom 6.35e7 2021-1…单细胞…0c3b7785…
files_download ()
是否下载一个或多个文件(每行一个)file_tibble
.下载比简单地执行url
列的file_tibble
,因此不能简单地将url复制到浏览器中。我们将下载该文件,然后立即将其导入R.
file_locations <- file_tibble %>% files_download() LoomExperiment::import(unname(file_locations[1]), type ="SingleCellLoomExperiment") ## class: SingleCellLoomExperiment ## dim: 58347 3762 ## metadata(15): last_modified CreationDate…# # project.provenance。document_id标本from_有机体.organ ## assays(1):矩阵## rownames: NULL ## rowData names(29):基因antisense_reads…reads_per_molecule ## spliced_reads ## colnames: NULL ## colData names(43): CellID antisense_reads…reads_unmapped ## spliced_reads ## reducedDimNames(0): ## mainExpName: NULL ## altExpNames(0): ## rowGraphs(0): NULL ## colGraphs(0): NULL
请注意,files_download ()
使用[BiocFileCache] [//www.andersvercelli.com/packages/BiocFileCache],因此每个文件只下载一次。
h5ad
文件本例详细介绍了文件发现和检索的过程,使用h5ad
由Python AnnData分析软件创建的文件,可用于默认目录中的一些实验。
第一个挑战是了解HCA提供哪些文件格式。获得一个描述数据“facet”的tibble,每个facet中使用的术语的数量,以及用于描述项目的不同值的数量。
projects_facets() ## # A tibble: 35 × 3 ## facet n_terms n_values ## ## 1 assayType 1 261 ## 2 biologicalSex 5 430 ## 3 cellLineType 6 273 ## 4 contactName 2555 3187 ## 5 contentDescription 46 855 ## 6 developmentStage 139 547 ## 7 donorDisease 229 548 ## 8 effectiveOrgan 118 459 ## 9 fileFormat 56 844 ## 10 fileSource 10 575 ## ##…与25多行
注意fileFormat
面,重复projects_facets ()
以发现有关可用文件格式的详细信息
projects_facets("fileFormat") ## #一个tibble: 56 × 3 ## facet术语计数## ## 1 fileFormat fastq.gz 218 ## 2 fileFormat loom 79 ## 3 fileFormat bam 77 ## 4 fileFormat tar 55 ## 5 fileFormat txt.gz 44 ## 6 fileFormat tsv.gz 43 ## 7 fileFormat mtx.gz 37 ## 8 fileFormat csv 34 ## 9 fileFormat csv.gz 32 ## 10 fileFormat bai 26 ## #…有46多行
的用法有8种h5ad
文件格式。将此作为筛选器来发现相关项目。
filters <- filters(fileFormat = list(is = "h5ad")) projects(filters) ## #18×5 # # projectId projectTitle genusSpecies samples.organ specimens.organ # # <空空的> <空空的> <列表> <列表> <列表> # # 1 c1810dbc-16d2-45c3-b细胞atla…<空空的[2]> <空空的[2]> <空空的[2]> # # 2 c0518445-3b3b-49c6-b细胞…<空空的[1]> <空空的[2]> <空空的[2]> # # 3 2 fe3c60b-ac1a-4c61-9…人类的场效应晶体管…<空空的[1]> <空空的[2]> <空空的[2]> # # 4 73769 e0a-5fcd-41f4-9…一个近端-…<空空的[1]> <空空的[2]> <空空的[2]> # # 5 957261 f7 - 2 bd6 - 4358 A空间m…<空空的[1]> <空空的[1]> <空空的[1]> # # 6 1 dddae6e - 3753 - 48 - af - b细胞类型…<空空的[1]> <空空的[1]> <空空的[2]> # # 7 ad98d3cd-26fb-4ee3-9 th细胞…<空空的[1]> <空空的[1]> <空空的[1]> # # 8 fde199d2-a841-4ed1-a th细胞…<空空的[1]> <空空[4]> <空空[4]> # # 9 83 f5188e - 3 - bf7 - 4956 - 9独特的mi…<空空的[1]> <空空的[2]> <空空的[2]> # # 10 2 f676143 - 80 c2 - 4 - bc6 b综合…<空空的[1]> <空空的[1]> <空空的[1]> # # 11 c4077b3c-5c98-4d26-a缺血性年代…<空空的[1]> <空空的[3]> <空空的[3]> # # 091 cf39b-01bc-42e5-9分析o…<空空的[1]> <空空的[0]> <空空的[1]> # # 13 f83165c5-e2ea-4d15-a重建…<空空的[1]> ## 14 31887183-a72c-4308-9… Single-nucl… ## 15 abe1a013-af7a-45ed-8… Spatio-temp… ## 16 b963bd4b-4bc1-4404-8… The cellula… ## 17 4e6f083b-5b9a-4393-9… The emergen… ## 18 455b46e6-d8ea-4611-8… Transcripto…
所生成的默认tibble项目()
仅包含部分可用信息;信息更加丰富。
若要获得具有展开列集的分页,可以使用作为
参数设置为“tibble_expanded”
.
#一组扩展的列或第一个4项目所有项目(=“tibble_expanded”,大小= 4)# # #一个宠物猫:4×124 # # projectId cellSuspensions cellSuspensions……cellSuspensions cellSuspensions…# # <空空的> <列表> <空空的> <列表> < int > # # 74 b6d569 -…<空空的[1]>大脑<空空的[1]> 1330000 # # 2 53 c53cd4 -…<空空的[2]>前列腺<空空[7]> 108701 # # 3 7027 adc6 -…<空空的[0]>心<空空的[0]> NA # # 4 94 e4ee09 -…<空空的[0]>肝脏<空空的[0]> NA ## # ... 与119多变量:日期。aggregateLastModifiedDate , ## #日期。aggregateSubmissionDate ,日期。aggregateUpdateDate , ## #日期。lastModifiedDate ,日期。submissionDate , ## #日期。updateDate , donorOrganisms。bioicalsex , ## # donorOrganisms. developmentstage , donorOrganisms. bioicalsex , ## #疾病, ## #捐赠者有机体。donorCount , donorOrganisms。genusSpecies , ## # donorOrganisms。id , donorOrganisms.organismAgeRange ,…
在接下来的部分中,我们将介绍作为
参数,以及它们返回的数据格式。
项目()
作为一个R列表
的结果,而不是检索项目()
作为tibble,将其作为“列表的列表”检索
Projects_list <- projects(as = "list")
这是一个复杂的结构。我们将使用长度()
,名称()
,和标准R列表选择操作来导航它一点。在顶层有三个元素。
长度(projects_list) ## pagination termFacets命中## 8 36 261
支安打
将每个项目表示为列表,例如。
长度(projects_list$hits[[1]]) ##协议entryId来源项目## 2 1 1 1 ##样品标本cellLines donorOrganisms ## 1 1 0 1 ## organoids cellSuspensions dates fileTypeSummaries ## 0 1 1 1 2
显示了描述第一个项目的10种不同方式。每个组件本身是一个列表的列表,例如,
长度(projects_list$hits[[1]]$projects[[1]]) ## projectTitle projectShortname实验室## 1 1 1 1 1 # estimatedCellCount projectDescription贡献者的发表## 1 1 1 1 6 1 ## arylinks矩阵contributedAnalyses accessions ## 1 0 1 3 ##可访问## 1 projects_list$hits[[1]]$projects[[1]]$projectTitle ##[1]“130万脑细胞从E18小鼠”
可以使用标准R命令来导航此数据结构,并例如提取projectTitle
每个项目。
项目()
作为一个哈哈
使用As = "lol"
创建一种更方便的方法来从列表的列表中选择、过滤和提取元素项目()
.
lol <- projects(as = "lol") lol ## #类:lol_hca lol ## #不同路径数量:17471 ## #总元素数量:175618 ## #叶路径数量:13279 ## #叶元素数量:136224 ## lol_path(): ## #一个tibble: 17471 × 3 ##路径n is_leaf ## ## 1命中1 FALSE ## 2命中[*]261 FALSE ## 3命中[*]。cellLines 261错误## 4命中[*]。cellLines[*] 43 FALSE ## 5命中[*].cellLines[*]。cellLineType 43 FALSE ## 6命中[*]. celllines[*]。cellLineType[*] 55 TRUE ## 7命中[*]. celllines[*]。id 43 FALSE ## 8命中[*]. celllines[*]。id[*] 459 TRUE ## 9命中[*]. celllines[*]。modelOrgan 43错误## 10命中[*]. celllines[*]。modelOrgan[*] 57 TRUE ## #
使用lol_select ()
来限制哈哈
到特定的路径,和lol_filter ()
将结果筛选为叶路径或具有特定条目数的路径。
lol_select(lol, "hits[*].projects[*]") ## #类:lol_hca lol ## #不同路径数量:17347 ## #总元素数量:113014 ## #叶路径数量:13220 ## #叶元素数量:91944 ## # lol_path(): ## # A tibble: 17347 × 3 ##路径n is_leaf ## ## 1 hits[*]。project[*] 261错误## 2命中[*].projects[*]。261 TRUE ## 3命中[*].projects[*]。261错误## 4命中[*].projects[*]。accessions[*] 722 FALSE ## 5命中[*].projects[*].accessions[*]。add 722 TRUE ## 6命中[*].projects[*].accessions[*].namespace 722 TRUE ## 7命中[*].projects[*]。contributedAnalyses 261假# # 8支安打[*]. project [*] .contributedAnalyses.developmentStage 4假# # 9支安打[*]. project [*] .contributedAnalyses.developmentStage.adult 4假# # 10支安打[*]. project [*] .contributedAnalyses.developmentStage.adult…2假 ## # ... 与17337多行lol_select (lol,“点击[*]. project[*]”)| > lol_filter (n = = 44, is_leaf) # # #类:lol_hca lol # # #的数量不同的道路:12 # # #的元素总数:528 # # #叶路径的数量:12 ## #叶元素数量:528 ## lol_path(): ## #一个tibble:12×3 n is_leaf # # # #路径<空空的> < int > < lgl > # # 1支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 2支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 3支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 4支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 5支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 6支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci……真正44 # # 7支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 8支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 9支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 10支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 11支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci…真正44 # # 12支安打[*]. project [*] .contributedAnalyses.organ.liver.genusSpeci 44…真的
lol_pull ()
对象中提取路径哈哈
作为一个向量;lol_lpull ()
将路径提取为列表。
标题<- lol_pull(lol,“hits[*].projects[*].projectTitle”)长度(标题)##[1]261头(标题,2)##[1]“来自E18小鼠的130万个脑细胞”##[2]“正常成年人前列腺和前列腺尿道的细胞解剖”
项目()
具有特定列的Tibbles路径或其缩写可用于指定要由项目()
查询
在这里,我们通过向命名的字符向量添加适当的路径缩写来检索供体计数和总细胞的其他详细信息。可以使用字符向量上的名称更简洁地重命名路径,但路径必须唯一标识列表中的元素。
columns <- c(projectId = "hits[*]. "entryId", projectTitle = "命中[*].projects[*]。projectTitle", genusSpecies = "hits[*].donorOrganisms[*].genusSpecies[*]", donorCount = "hits[*].donorOrganisms[*].donorCount", cellSuspensions.organ = "hits[*].cellSuspensions[*].organ[*]", totalCells = "hits[*].cellSuspensions[*].totalCells" ) projects <- projects(filters, columns = columns) projects ## # A tibble: 18 × 6 ## projectId projectTitle genusSpecies donorCount cellSuspensions… totalCells ## ## 1 c1810dbc-16… A cell atla… 24 ## 2 c0518445-3b… A cellular … 17 ## 3 2fe3c60b-ac… A human fet… 38 ## 4 73769e0a-5f… A proximal-… 3 ## 5 957261f7-2b… A spatial m… 13 ## 6 1dddae6e-37… Cell Types … 6 ## 7 ad98d3cd-26… Cells of th… 14 ## 8 fde199d2-a8… Cells of th… 12 ## 9 83f5188e-3b… Distinct mi… 6 ## 10 2f676143-80… Integrative… 15 ## 11 c4077b3c-5c… Ischaemic s… 14 ## 12 091cf39b-01… Profiling o… 3 ## 13 f83165c5-e2… Reconstruct… 16 ## 14 31887183-a7… Single-nucl… 16 ## 15 abe1a013-af… Spatio-temp… 8 ## 16 b963bd4b-4b… The cellula… 120 ## 17 4e6f083b-5b… The emergen… 6 ## 18 455b46e6-d8… Transcripto… 4
注意cellSuspensions.organ
而且totalCells
列每个项目有多个条目。
project |> select(projectd, cellsuspentions .organ, totalCells) ## #18×3 # # projectId cellSuspensions.organ totalCells # # <空空的> <列表> <列表> # # 1 c1810dbc-16d2-45c3-b45e-3e675f88d87b <空空的[2]> < int [2] > # # 2 c0518445-3b3b-49c6-b8fc-c41daa4eacba <空空的[2]> < int [2] > # # 3 2 fe3c60b-ac1a-4c61-9b59-f6556c0fce63 <空空的[2]> < int [1] > # # 4 73769 e0a - 5 - fcd - 41 - f4 - 9083 - 41 - ae08bfa4c1 <空空的[2]> < int [0] > # # 5 957261 f7 - 2 - bd6 - 4358 - a6 - 24 - ee080d5cfc <空空的[1]> < int [0] > # # 6 1 dddae6e - 3753 - 48 - af - b20e fa22abad125d <空空的[1]> < int [0] > # # 7 ad98d3cd - 26 - fb - 4 - ee3 - 99 - c9 - 8 a2ab085e737 <空空的[1]>< int [1] > # # 8 fde199d2-a841-4ed1-aa65-b9e0af8969b1 <空空[4]> < int [0] > # # 9 83 f5188e - 3 bf7 - 4956 - 9544 - cea4f8997756 <空空的[2]> < int [2] > # # 10 2 f676143 - 80 c2 - 4 - bc6 b7b4 - 2613 fe0fadf0 <空空的[1]> < int [0] > # # 11 c4077b3c - 5 - c98 4 - d26 a614 - 246 d12c2e5d7 <空空的[3]> < int [3] > # # 12 091 cf39b - 01 - bc - 42 - 9437 e5 f419a66c8a45 <空空的[1]> < int [1] > # # 13 f83165c5-e2ea-4d15-a5cf-33f3550bffde <空空的[3]> < int [0] > # # 14 31887183 - a72c - 4308 - 9 - eac - c6140313f39c <空空[7]> < int [0] > # # 15 abe1a013-af7a-45ed-8c26-f3793c24a1f4 <空空的[1]> ## 16 b963bd4b-4bc1-4404-8425-69d74bc636b8 ## 17 4e6f083b-5b9a-4393-9890-2a83da8188f1 ## 18 455b46e6-d8ea-4611-861e-de720a562ada
在这种情况下,之间的映射cellSuspensions.organ
而且totalCells
是清楚的,但一般更精致的导航哈哈
结构可能是必要的。
项目|>选择(投影,cellsuspentions .organ, totalCells) |>过滤器(长度(totalCells) > 0) |> tidyr::unnest(c(" cellsuspentions .organ", "totalCells")) ## #一个tibble:20×3 # # projectId cellSuspensions.organ totalCells # # <空空的> <空空的> < int > # # 456000 # # 2 c1810dbc-16d2-45c3-b45e-3e675f88d87b胸腺c1810dbc-16d2-45c3-b45e-3e675f88d87b结肠癌16000 # # 3 c0518445-3b3b-49c6-b8fc-c41daa4eacba肺癌40200 # # 4 c0518445-3b3b-49c6-b8fc-c41daa4eacba鼻子7087 # # 5 2 fe3c60b-ac1a-4c61-9b59-f6556c0fce63肺78901 # # 6 2 fe3c60b-ac1a-4c61-9b59-f6556c0fce63心78901 # # 7 ad98d3cd - 26 - fb - 4 - ee3 - 99 - c9 - 8 a2ab085e737心791000 # # 8 83 f5188e - 3 - bf7 - 4956 - 9544 - cea4f8997756免疫器官381 # # 9 83 f5188e - 3 - bf7 - 4956 - 9544 - cea4f8997756大肠1141 # # 10 c4077b3c - 5 - c98 4 - d26 a614 - 246 d12c2e5d7食道93267 # # 11 c4077b3c - 5 - c98 - 4 - d26 a614 - 246 d12c2e5d7脾脏66553 # # 12 c4077b3c - 5 - c98 4 - d26 a614 - 246 d12c2e5d7肺40025 # # 13 091 cf39b - 01 - bc - 42 - 9437 e5 f419a66c8a45骨髓1480000 # # 14 b963bd4b群体bc1 - 4404 - 8425 - 69 - 4 - 800000 # # 15 4 e6f083b d74bc636b8血5 - b9a - 4393 - 9890 - 2 - a83da8188f1胚胎27083 # # 16 4 e6f083b - 5 - b9a - 4393 - 9890 - 2 - 54166 # # 17 a83da8188f1内胚层推测肠道30952 ## 18 455b46e6-d8ea-4611-861e-de720a562ada骨髓87532 ## 19 455b46e6-d8ea-4611-861e-de720a562ada脾脏60043 ## 20 455b46e6-d8ea-4611-861e-de720a562ada血液25016
选择以下条目,扩大筛选器,并查询可用文件
项目%>% filter(startsWith(projectTitle, "重建"))%>% t() ## [,1] ## projectd "f83165c5-e2ea-4d15-a5cf-33f3550bffde" ## projectTitle "重建人类前三个月胎儿-母体接口使用单细胞转录组学" ## genusSpecies "智人" ## donorCount 16 ## cellsuspenons .organ字符,3 ## totalCells integer,0
这种方法可以用来自定义包中其他主要函数返回的tibbles,文件()
,样品()
,包()
.
可以使用第一个示例中的技术选择并下载相关文件。
filters <- filters(projectId = list(is = "f83165c5-e2ea-4d15-a5cf-33f3550bffde"), fileFormat = list(is = "h5ad")) files <- files(filters) %>% head(1) #仅用于第一个文件,用于演示文件%>% t() ## [,1] ## fileId "6d4fedcf-857d-5fbb-9928-8b9605500a69" ## name "vento18_ss2.processed. "h5ad" ## fileFormat "h5ad" ## size "82121633" ## version "2021-02-10T16:56:40.419579Z" ## projectTitle "Reconstructing the human first trimester fetal-maternal interface using single cell transcriptomics" ## projectId "f83165c5-e2ea-4d15-a5cf-33f3550bffde" ## url "https://service.azul.data.humancellatlas.org/repository/files/6d4fedcf-857d-5fbb-9928-8b9605500a69?catalog=dcp17&version=2021-02-10T16%3A56%3A40.419579Z"
File_path <- files_download(files)
“h5ad”
文件可以读取为singlecel实验对象使用zellkonverter包中。
##不希望从磁盘sce读取大量数据<- zellkonverter::readH5AD(file_path, use_hdf5 = TRUE) sce
project_filter <- filters(fileFormat = list(is = "csv")) project_tibble <- projects(project_filter) project_tibble %>% filter(startsWith(projectTitle, "重建人类的前三个月"))## #一个tibble:1 × 5 ##投影d projectTitle genusSpecies样本。organ样本。organ ## ## 1 f83165c5- e2aa -4d15-a5…重建… 投影d <- project_tibble %>% filter(startsWith(projectTitle, " reconstrucconstructhe human first trimester")) %>% pull(投影d) file_filter <- filters(投影d = list(is = projectd), fileFormat = list(is = "csv")) ##前4个文件将返回file_tibble <- files(file_filter,大小= 4)file_tibble % > % files_download () # # 7 f9a181e - 24 - c5 - 5462 b308 7 - fef5b1bda2a - 2021 - 02 - 10 - t16:56:40.419579z # #“/ home / biocbuild / .cache / R / hca / 3 e264966a8b56a_3e264966a8b56a.csv”# # d04c6e3c - b740 - 5586 - 8420 - 4480 - a1b5706c - 2021 - 02 - 10 - t16:56:40.419579z # #“/ home / biocbuild / .cache / R / hca / 3 e264969584155_3e264969584155.csv”# # d30ffc0b - 7 - d6e 5 - b85 aff9 - 21 ec69663a81 - 2021 - 02 - 10 - t16:56:40.419579z # #“/ home / biocbuild / .cache / R / hca / 3 e264972689134_3e264972689134.csv”# #"/home/biocbuild/.cache/R/hca/3e26497b0bf95a_3e26497b0bf95a.csv"
的文件()
,包()
,样品()
都可以返回1000多个结果。有必要“翻页”浏览这些内容以查看所有内容。我们用项目()
,只检索了30个项目。
分页适用于默认值宠物猫
输出
page_1_tbl <- projects(size = 30)30×5 # # projectId projectTitle genusSpecies samples.organ specimens.organ # # <空空的> <空空的> <列表> <列表> <列表> # # 74 b6d569-3b11-42ef-b……130万……<空空的[1]> <空空的[1]> <空空的[1]> # # 2 53 c53cd4 - 8127 - 4 - e12汽油- b细胞…<空空的[1]> <空空的[1]> <空空的[1]> # # 3 7027 adc6-c9c9-46f3-8细胞…<空空的[1]> <空空的[1]> <空空的[1]> # # 4 94 e4ee09 - 9 - b4b - 410 - 8…人类丽芙·…<空空的[1]> <空空的[1]> <空空的[1]> # # 5 60 ea42e1-af49-42f5-8协议…<空空的[1]> <空空的[1]> <空空的[1]> # # 6 ef1e3497 - 515 e - 4 -被- 8……Single-Ce…<空空的[1]> <空空的[3]> <空空的[3]> # # 7 f86f1ab4 fbb - 4510 A - 1…Single-Ce…<空空的[2]> <空空的[1]> <空空的[1]> # # 8 602628 d7-c038-48a8-a…Single-Ce…<空空的[1]> <空空的[3]> <空空的[3]> # # 9 c1810dbc-16d2-45c3-b细胞atla…<空空的[2]> <空空的[2]> <空空的[2]> # # 10 c0518445-3b3b-49c6-b细胞…<空空的[1]> <空空的[2]> <杆(2 ]> ## # ... 有20多行page_2_tbl < - page_1_tbl % > % hca_next () page_2_tbl # # #一个宠物猫:30×5 # # projectId projectTitle genusSpecies samples.organ specimens.organ # # <空空的> <空空的> <空空的> <列表> <列表> # # 1 957261 f7 - 2 - bd6 - 4358 A空间m…智人<空空的[1]> <空空的[1]> # # 2 52 b29aa4-c8d6-42b4-8……的调查智人<空空的[1]> <空空的[1]> # # 3 f0f89c14 - 7460 - 4 -巴布- 9 AIDA飞行员……智人<空空的[1]> <空空的[1]> # # 4 38449 aea - 70 - b5 - 40 - db - 8…改变哼…智人<空空的[1]> <空空的[1]> # # 5 0 fd8f918 - 62 - d6 - 4 - b8b……阿特拉斯的智人<空空的[1]> <空空的[1]> # # 68 ab8726d - 81 - b9 - 4 - bd2…一个瀑样…智人<空空的[5]> <空空的[5]> # # 7 005 d611a-14d5-4fbf-8评估t…智人<空空的[1]> <空空的[3]> # # 8 04 ad400c-58cb-40a5-b血液和我……智人<空空[4]> <空空[4]> # # 9 a29952d9 - 925 e - 40 - f4 - 8骨髓…智人<空空的[1]> <空空的[1]> # # 10 74493 e98-44fc-48b0-a CD27hiCD38h……智人<空空的[1]> <杆(1 ]> ## # ... 20多行# #应该相同page_1_tbl page_2_tbl % > % hca_prev() # # #一个宠物猫:30×5 # # projectId projectTitle genusSpecies samples.organ specimens.organ # # <空空的> <空空的> <列表> <列表> <列表> # # 74 b6d569-3b11-42ef-b……130万……<空空的[1]> <空空的[1]> <空空的[1]> # # 2 53 c53cd4 - 8127 - 4 - e12汽油- b细胞…<空空的[1]> <空空的[1]> <空空的[1]> # # 3 7027 adc6-c9c9-46f3-8细胞…<空空的[1]> <空空的[1]> <空空的[1]> # # 4 94 e4ee09 - 9 - b4b - 410 - 8…人类丽芙·…<空空的[1]> <空空的[1]> <空空的[1]> # # 5 60 ea42e1-af49-42f5-8协议…<空空的[1]> <空空的[1]> <空空的[1]> # # 6 ef1e3497 - 515 e - 4 -被- 8……Single-Ce…<空空的[1]> <空空的[3]> <空空的[3]> # # 7 f86f1ab4 fbb - 4510 A - 1…Single-Ce…<空空的[2]> <空空的[1]> <空空的[1]> # # 8 602628 d7-c038-48a8-a…Single-Ce…<空空的[1]> <空空的[3]> <空空的[3]> # # 9 c1810dbc-16d2-45c3-b细胞atla…<空空的[2]> <空空的[2]> <空空的[2]> # # 10 c0518445-3b3b-49c6-b细胞…<空空的[1]> <空空的[2]> <杆(2 ]> ## # ... 有20多行
分页也适用于哈哈
对象
page_1_lol <- projects(size = 5, as = "lol") page_1_lol %>% lol_pull("hits[*].projects[*]. projecttitle ") ##[1] " 130万个来自E18小鼠的脑细胞" ##[2]"正常成人前列腺和前列腺尿道的细胞解剖" ## [3]" pitx2依赖性心脏发育的细胞图谱"##[4]“人类肝脏细胞图谱揭示异质性和上皮细胞祖细胞”##[5]“通过人类唾液中的单细胞免疫图谱揭示口腔中性粒细胞异质性的方案”page_2_lol <- page_1_lol %>% hca_next() page_2_lol %>% lol_pull(“hits[*].projects[*]. projecttitle”)##[1]“人类健康气道的单细胞图谱”# #[2]”一个单细胞转录组的人类和小鼠胰腺地图揭示了国米,Intra-cell人口结构”# #[3]“人类椎间盘的单细胞转录组图集”# #[4]“人类胸腺的细胞Atlas开发定义T细胞中形成“# #[5]“人类肺细胞普查确定小说细胞在哮喘健康和“# #应该相同page_1_lol page_2_lol % > % hca_prev () % > % lol_pull(“流行[*]. project [*] .projectTitle”)# # [1]“来自E18小鼠的130万个脑细胞”##[2]“正常成人前列腺和前列腺尿道的细胞解剖”##[3]“pitx2依赖心脏发育的细胞图谱。”“人类肝细胞图谱揭示异质性和上皮细胞祖细胞”“通过人类唾液中的单细胞免疫图谱揭示口腔中性粒细胞异质性的方案”
就像项目()
而且文件()
,样品()
而且包()
允许您提供一个过滤器
对象和附加条件分别以样本和包的形式检索数据
heart_filters <- filters(organ = list(is = "heart")) heart_samples <- samples(filters = heart_filters, size = 4)4×6 # # entryId projectTitle genusSpecies疾病格式计算# # <空空的> <空空的> <空空的> <空空的> <列表> < lis > # # 1 012 c52ff - 4770 4 - c0c - 8 c2e c348da细胞……亩肌肉正常<空空的> < int > # # 2 035 db5b9 - a219 4 - df8 bfc9 - 117 cd0细胞……亩肌肉正常<空空的> < int > # # 3 09 e425f7 - 22 - d7 - 487 e - b78b - 78 b449细胞……亩肌肉正常<空空的> < int > # # 4 2273 e44d-9fbc-4c13-8cb3-3caf8a细胞……亩肌肉正常<空空的> < int > heart_bundles < - bundle(过滤器= heart_filters,大小= 4)heart_bundles # # #一个宠物猫:4×6 # # projectTitle genusSpecies样本文件bundleUuid bundleVersion # # <空空的> <空空的> <列表> < lis > <空空的> < >从而向# # 1细胞图谱Pitx2…亩骶<空空的> <科> 0 d391bd1 -…2021 - 02 - 26 - t0…# # 2细胞图谱Pitx2…亩骶<空空的> < >从而向165 a2df1 -…2021 - 02年- 26 t0…# # 3细胞图谱Pitx2…亩骶<空空的> < >从而向166 c1b1a -…2020 - 08 - 04 - t1…# # 4细胞图谱Pitx2…亩骶<空空的> < >从而向18 bad6b1 -…2021 - 02 - 26 - t0……
HCA实验被组织成目录,每一个都可以用目录进行总结总结()
函数
heart_filters <- filters(organ = list(is = "heart")) summary(filters = heart_filters, type = "fileTypeSummaries") ## #15×3 # #格式计算totalSize # # <空空的> < int > <双> # # 1 fastq.gz 28293 6779884300072 # # 2 h5 180 17469586148 # # 3织机169 17469586148 # # 4 164 3284598129743 # # 5的bam zip csv 88 66561822 148 9458395398 # # # # 7 tsv.gz 84 60703654221 8 rds 28 # # 60703654221 # # 9 mtx.gz 24 479611217 # # 10 bed.gz 6 479611217 # # 11 h5ad 5 7174452054 # # 12 . txt 4 7174452054 # # 13 rds 3 301293176 # # 14 rds 3 301293176 # # 15 h5ad.zip 1 15510167649 first_catalog < -目录()[1]总结(type =“概述”,## A tibble: 7 × 2 ## name value ## ## 1 projectCount 2.61e 2 ## 2 specicount 1.24e 4 ## 3 speciesCount 2 e 0 ## 4 fileCount 4.76e 5 ## 5 totalFileSize 1.74e14 ## 6 donorCount 3.79e 3 ## 7 labCount 4.48e 2
每个项目、文件、示例和包都有自己的唯一ID,通过该ID与其目录一起,可以唯一地标识它们。
heart_filters <- filters(organ = list(is = "heart")) heart_projects <- projects(filters = heart_filters, size = 4)4×5 # # projectId projectTitle genusSpecies samples.organ specimens.organ # # <空空的> <空空的> <空空的> <列表> <列表> # # 1 7027 adc6 - c9c9 46 - f3 - 84细胞……亩骶<空空的[1]> <空空的[1]> # # 2 a9301beb-e9fa-42fe-b7……人类玻璃纸智人<空空的[14]> <空空的[14]> # # 3 2 fe3c60b-ac1a-4c61-9b……人类的场效应晶体管智人<空空的[2]> <空空的[2]> # # 4 c31fa434 - c9 - 4263 - a9…single-ce…智人<空空的[18]> <空空的[18]> projectId < - heart_projects % > %过滤器(startsWith (projectTitle,"成人细胞"))%>% dplyr::pull(投影)result <- projects_detail(uuid =投影)
结果是一个包含三个元素的列表,这些元素表示用于下一步或上一页导航的信息(默认情况下按字母顺序排列)(分页
)项目,过滤器(termFacets
),以及有关计划的详情(支安打
).
names(result) ## [1] "pagination" "termFacets" "hits"
如上所述,支安打
是一个复杂的列表的列表结构。直观地探索这个结构的一个非常方便的方法是列表视图::jsonedit(结果)
.控件可以选择单个元素哈哈
接口;另一种选择是cellxgenedp: jmespath ()
.
lol(result) ##类:lol ##不同路径数量:890 ## #总元素数量:26743 ## #叶路径数量:565 ## #叶元素数量:17952 ## lol_path(): ## # A tibble: 890 × 3 ##路径n is_leaf ## ## 1命中1 FALSE ## 2命中[*]10 FALSE ## 3命中[*]。cellLines 10 FALSE ## 4命中[*]。cellSuspensions 10个错误## 5命中[*]。cellSuspensions[*] 16错误## 6命中[*].cellSuspensions[*].organ 16错误## 7命中[*].cellSuspensions[*]. organpart 16错误## 8命中[*].cellSuspensions[*]. organpart[*] 22正确## 9命中[*].cellSuspensions[*].organ[*] 16正确## 10命中[*].cellSuspensions[*]. cellSuspensions[*]. cellSuspensions[*].organ[*]。seltedcelltype 16 FALSE ## #
参见随附的“人类细胞图谱显示”小插图有关的细节使用清单
的端点和进一步注释.loom
文件。
sessionInfo() ## R version 4.2.1(2022-06-23) ##平台:x86_64-pc-linux-gnu (64-bit) ##运行在Ubuntu 20.04.4 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.15-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.15-bioc/R/lib/libRlapack。所以## ## 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 stats graphics grDevices utils datasets methods ##[8]基础## ##其他附加包:[1] httr_1.4.3 hca_1.4.2 ## [3] LoomExperiment_1.14.0 BiocIO_1.6.0 ## [5] rhdf5_2.40.0 singlecelexperiment_1 .18.0 ## [7] SummarizedExperiment_1.26.1 Biobase_2.56.0 ## [9] GenomicRanges_1.48.0 GenomeInfoDb_1.32.2 ## [11] IRanges_2.30.0 S4Vectors_0.34.0 ## [13] BiocGenerics_0.42.0 MatrixGenerics_1.8.1 ## [17] matrixStats_0.62.0 dplyr_1.0.9 ## [17] BiocStyle_2.24.0 ## ##通过命名空间加载(并且没有附加):## [1] tidyr_1.2.0 sass_0.4.2 tzdb_0.3.0 tibble_3.1.7 ## [28] generics_0.1.3 ellipsis_0.3.2 ## [10] blob_1.2.3 genocinfodbdata_1.2.8 yaml_2.3.5 ## [13] pillar_1.7.0 RSQLite_2.2.14 lattice_0.20-45 ## [19] htmltools_0.5.2 Matrix_1.4-1 pkgconfig_2.0.3 ## [22] bookdown_0.27 zlibbioc_1.42.0 purrr_0.3.4 ## [28] generics_0.1.3 ellipsis_0.3.2[34] memoise_2.0.1 evaluate_0.15 fansi_1.0.3 ## [37] tools_4.2.1 hms_1.1.1 formatR_1.12 ## [40] lifecycle_1.0.1 string_1 .4.0 Rhdf5lib_1.18.2 ## [43] DelayedArray_0.22.0 lambda.r_1.2.4 compiler_4.2.1 ## [46] jquerylib_0.1.4 rlang_1.0.4 futil .logger_1.4.3 ## [49] grid_4.2.1 RCurl_1.98-1.7 rhdf5filters_1.8.0 ## [52] rappdirs_0.3.3 bitops_1.0-7 rmarkdown_2.14 ## [55] DBI_1.1.3 curl_4.3.2 R6_2.5.1 ## [58] knitr_1.39 fastmap_1.1.0bit_4.0.4 ## [61] utf8_1.2.2 filelock_1.0.2 futil .options_1.0.1 ## [64] readr_2.1.2 stringi_1.7.8 parallel_4.2.1 ## [67] Rcpp_1.0.9 vctrs_0.4.1 dbplyr_2.2.1 ## [70] tidyselect_1.1.2 xfun_0.31