From https://support.bioconductor.org/p/9138939/.
I made a small change to the filtering expression approach based on
changes to lazy evaluation best practices. There is now no need to
include the ~ in the filter expression. So:
q = files() |>
GenomicDataCommons::filter(
cases.project.project_id == 'TCGA-COAD' &
data_type == 'Aligned Reads' &
experimental_strategy == 'RNA-Seq' &
data_format == 'BAM')And get a count of the results:
## [1] 1188
And the manifest.
## # A tibble: 1,188 × 26
## id proportion_reads_map…¹ access wgs_coverage proportion_base_mism…² acl_1
## <chr> <dbl> <chr> <chr> <dbl> <chr>
## 1 a75a… 0.987 contr… Not Applica… 0.0142 phs0…
## 2 d8e4… 0.988 contr… Not Applica… 0.00858 phs0…
## 3 e754… NA contr… Not Applica… NA phs0…
## 4 2760… 0.987 contr… Not Applica… 0.00289 phs0…
## 5 e9af… NA contr… Not Applica… NA phs0…
## 6 9404… NA contr… Not Applica… NA phs0…
## 7 2e56… 0.979 contr… Not Applica… 0.00251 phs0…
## 8 25c4… NA contr… Not Applica… NA phs0…
## 9 67f3… NA contr… Not Applica… NA phs0…
## 10 0adc… NA contr… Not Applica… NA phs0…
## # ℹ 1,178 more rows
## # ℹ abbreviated names: ¹proportion_reads_mapped, ²proportion_base_mismatch
## # ℹ 20 more variables: type <chr>, platform <chr>, created_datetime <chr>,
## # md5sum <chr>, updated_datetime <chr>, pairs_on_diff_chr <int>, state <chr>,
## # data_format <chr>, total_reads <int>, file_name <chr>,
## # proportion_reads_duplicated <int>, submitter_id <chr>, data_category <chr>,
## # file_size <dbl>, average_base_quality <int>, file_id <chr>, …
Your question about race and ethnicity is a good one.
And we can grep for race or ethnic to get
potential matching fields to look at.
## [1] "cases.demographic.ethnicity"
## [2] "cases.demographic.race"
## [3] "cases.follow_ups.other_clinical_attributes.hormonal_contraceptive_type"
## [4] "cases.follow_ups.other_clinical_attributes.hormonal_contraceptive_use"
## [5] "cases.follow_ups.scan_tracer_used"
Now, we can check available values for each field to determine how to complete our filter expressions.
## [1] "not hispanic or latino" "not reported" "hispanic or latino"
## [4] "unknown" "_missing"
## [1] "white"
## [2] "not reported"
## [3] "black or african american"
## [4] "asian"
## [5] "unknown"
## [6] "american indian or alaska native"
## [7] "native hawaiian or other pacific islander"
## [8] "other"
## [9] "not allowed to collect"
## [10] "_missing"
We can complete our filter expression now to limit to
white race only.
## [1] 695
## # A tibble: 695 × 26
## id data_format access file_name wgs_coverage submitter_id data_category
## <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 e75466a… BAM contr… 17d3d480… Not Applica… 99ae3d5c-00… Sequencing R…
## 2 2760656… BAM contr… 17d3d480… Not Applica… 179e7b3b-d0… Sequencing R…
## 3 e9afc54… BAM contr… 17d3d480… Not Applica… d49458e2-8e… Sequencing R…
## 4 9404c33… BAM contr… d9935be8… Not Applica… ad0f8edd-c2… Sequencing R…
## 5 2e56f8f… BAM contr… d9935be8… Not Applica… eb408eec-21… Sequencing R…
## 6 25c45f1… BAM contr… d9935be8… Not Applica… 6517c0c0-a8… Sequencing R…
## 7 67f3b67… BAM contr… f14f75eb… Not Applica… 6bd35f5c-d9… Sequencing R…
## 8 0adc2e7… BAM contr… f14f75eb… Not Applica… afc69cff-bd… Sequencing R…
## 9 5e64bb5… BAM contr… 131e315e… Not Applica… 02fc858a-fc… Sequencing R…
## 10 a6c1aaa… BAM contr… f14f75eb… Not Applica… 39e85014-52… Sequencing R…
## # ℹ 685 more rows
## # ℹ 19 more variables: acl_1 <chr>, type <chr>, platform <chr>,
## # file_size <dbl>, created_datetime <chr>, md5sum <chr>,
## # updated_datetime <chr>, file_id <chr>, data_type <chr>, state <chr>,
## # experimental_strategy <chr>, proportion_reads_mapped <dbl>,
## # proportion_base_mismatch <dbl>, pairs_on_diff_chr <int>, total_reads <int>,
## # proportion_reads_duplicated <int>, average_base_quality <int>, …
GenomicDataCommons?I would like to get the number of cases added (created, any logical datetime would suffice here) to the TCGA project by experiment type. I attempted to get this data via GenomicDataCommons package, but it is giving me I believe the number of files for a given experiment type rather than number cases. How can I get the number of cases for which there is RNA-Seq data?
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:GenomicDataCommons':
##
## count, filter, select
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(GenomicDataCommons)
cases() |>
GenomicDataCommons::filter(
~ project.program.name=='TCGA' & files.experimental_strategy=='RNA-Seq'
) |>
facet(c("files.created_datetime")) |>
aggregations() |>
unname() |>
unlist(recursive = FALSE) |>
as_tibble() |>
dplyr::arrange(dplyr::desc(key))## # A tibble: 200 × 2
## doc_count key
## <int> <chr>
## 1 271 2024-06-14t14:27:00.916424-05:00
## 2 416 2024-06-14t13:28:10.644120-05:00
## 3 150 2024-03-11t09:00:39.229286-05:00
## 4 151 2023-03-09t00:35:51.387873-06:00
## 5 79 2023-02-19t04:41:11.008116-06:00
## 6 458 2023-02-19t04:36:10.605050-06:00
## 7 80 2023-02-19t04:28:49.400023-06:00
## 8 178 2023-02-19t04:23:49.092629-06:00
## 9 516 2023-02-19t04:18:49.453628-06:00
## 10 179 2023-02-19t04:13:47.877168-06:00
## # ℹ 190 more rows