diff --git a/NEON_ph_by_time/R/NEON_data_exploration.Rmd b/NEON_ph_by_time/R/NEON_data_exploration.Rmd index c2c2b442..2454d365 100644 --- a/NEON_ph_by_time/R/NEON_data_exploration.Rmd +++ b/NEON_ph_by_time/R/NEON_data_exploration.Rmd @@ -1,54 +1,34 @@ --- -title: "example_nmdc_api_interactions" +title: "NEON pH data exploration" output: rmarkdown::github_document date: "2023-10-11" --- -Rshiny app to plot pH measurements for soil samples as a function of time by NEON site - ```{r setup, include=FALSE} +# Load essential libraries knitr::opts_chunk$set(echo = TRUE) library(tidyverse) library(jsonlite) -``` +library(lubridate) +library("rnaturalearth") +library("rnaturalearthdata") +``` -# Get samples associated with NEON sites -name.search:National Ecological Observatory Network -request url -https://api.microbiomedata.org/studies?filter=name.search%3ANational%20Ecological%20Observatory%20Network&per_page=25 +## Get study IDs associated with NEON sites using API ```{r} base_url = "https://api.microbiomedata.org" -# meta_count = 0 -# page_chunk = 100 -# while (meta_count < page_chunk){ -# url = paste0( -# base_url, "/studies?filter=name.search%3ANational%20Ecological%20Observatory%20Network&per_page=", page_chunk) -# } -# - url = paste0(base_url, "/studies?filter=name.search%3ANational%20Ecological%20Observatory%20Network&per_page=50") -#TODO: check pagination response = fromJSON(url) study_ids = response[["results"]][["id"]] +print(study_ids) ``` -# M -```{r} -bio_samps = list() -ph = list() -for (i in 1:length(study_ids)){ - study_id = study_ids[i] - filt = paste0("part_of:", study_id) - url = paste0(base_url, "/biosamples?filter=", filt) - resp = fromJSON(url) - bio_samps[i] = resp[['results']]['id'] - ph[i] = resp[['results']]['ph'] -} -``` +## Using the study ids, pull out bio sample IDs +Note that we are pulling 100 records at a time until we have retrieved all biosamples for the three study ids above, place the data retrieved for each bio sample into a tibble ```{r} per_page = 100 @@ -68,7 +48,6 @@ for (i in 1:length(study_ids)){ per_page, "&page=", page) - print(url) data = fromJSON(url) data_results = data[['results']] %>% as.data.frame() dat_all = bind_rows(dat_all, data_results) @@ -78,11 +57,11 @@ for (i in 1:length(study_ids)){ } } +glimpse(dat_all) ``` - +## Clean up results for more usability +Pull out collection date, ph, geo_loc_name, lat_lon; unnest as needed; and convert collection_date into date object ```{r} -library(lubridate) -my_theme <- theme_bw() df <- dat_all %>% select( collection_date, ph, geo_loc_name, lat_lon @@ -94,66 +73,70 @@ df <- dat_all %>% lat_lon ), names_sep = "_") %>% rename(collection_date = collection_date_has_raw_value , - geo_loc = geo_loc_name_has_raw_value) - -df2 <- df %>% - mutate(collection_date2 = as.Date(collection_date)) - -df3 <- df2 %>% - mutate(geo_loc_grouped = geo_loc %>% - factor() %>% - fct_lump(n = 6) - ) %>% - filter(geo_loc_grouped != "Other") - - -g <- ggplot(data = df2) + - geom_point(aes(x=collection_date, y = ph)) + - my_theme + - facet_wrap(facets = vars(geo_loc)) - -g <- ggplot(data = df3) + - geom_point(aes(x=collection_date2, y = ph)) + - my_theme + - scale_x_date()+ - facet_wrap(facets = vars(geo_loc_grouped), - labeller = label_wrap_gen(width=30)) -g - + geo_loc = geo_loc_name_has_raw_value) %>% + mutate(collection_date = as.Date(collection_date)) +glimpse(df) ``` +## Plot locations of geo_loc scaled by number of samples with ph +Get median lat long for each geo_loc and count of samples with pH ```{r} -library("rnaturalearth") -library("rnaturalearthdata") - -locs_with_ph <- df2 %>% +# Prepare location df data +loc_sum_df <- df %>% + filter(!(is.na(ph))) %>% group_by( geo_loc ) %>% mutate( - count_with_ph = n() + count_with_ph = n(), + lat_med = median(lat_lon_latitude), + long_med = median(lat_lon_longitude), ) %>% select( geo_loc, - lat_lon_longitude, - lat_lon_latitude, + lat_med, + long_med, count_with_ph ) %>% distinct() +# Plot summary data +my_theme <- theme_bw() world <- ne_countries(scale = "medium", returnclass = "sf") -class(world) g2 <- ggplot(data = world) + geom_sf() + geom_point( - data = locs_with_ph, - aes(x = lat_lon_longitude, y = lat_lon_latitude, + data = loc_sum_df, + aes(x = long_med, y = lat_med, size = count_with_ph)) + my_theme + - labs(x = "Longitude", y = "Latitude", size = "Samples with \n pH measurements")+ + labs(x = "Longitude", y = "Latitude", size = "# of biosamples with \n pH measurements")+ theme()+ - coord_sf(xlim = c(-165, -66), ylim = c(17, 72), expand = FALSE) + coord_sf(xlim = c(-165, -65), ylim = c(15, 72), expand = FALSE) g2 -```` \ No newline at end of file +``` + +## Plot full time series of pH at the six sites with the most biosamples + +```{r, warning=FALSE} +# Prep dataframe with new column of factored sites +df2 <- df %>% + mutate(geo_loc_grouped = geo_loc %>% + factor() %>% + fct_lump(n = 6) + ) %>% + filter(geo_loc_grouped != "Other") + + +# Plot data +g <- ggplot(data = df2) + + geom_point(aes(x=collection_date, y = ph)) + + my_theme + + scale_x_date()+ + labs(x = "Collection Date", y = "pH")+ + facet_wrap(facets = vars(geo_loc_grouped), + labeller = label_wrap_gen(width=30)) +g +``` \ No newline at end of file diff --git a/NEON_ph_by_time/R/NEON_data_exploration.md b/NEON_ph_by_time/R/NEON_data_exploration.md index dbad0591..3733b3e7 100644 --- a/NEON_ph_by_time/R/NEON_data_exploration.md +++ b/NEON_ph_by_time/R/NEON_data_exploration.md @@ -1,46 +1,25 @@ -example_nmdc_api_interactions +NEON pH data exploration ================ 2023-10-11 -Rshiny app to plot pH measurements for soil samples as a function of -time by NEON site - -# Get samples associated with NEON sites - -name.search:National Ecological Observatory Network request url - +## Get study IDs associated with NEON sites using API ``` r base_url = "https://api.microbiomedata.org" -# meta_count = 0 -# page_chunk = 100 -# while (meta_count < page_chunk){ -# url = paste0( -# base_url, "/studies?filter=name.search%3ANational%20Ecological%20Observatory%20Network&per_page=", page_chunk) -# } -# - url = paste0(base_url, "/studies?filter=name.search%3ANational%20Ecological%20Observatory%20Network&per_page=50") -#TODO: check pagination response = fromJSON(url) study_ids = response[["results"]][["id"]] +print(study_ids) ``` -# M + ## [1] "nmdc:sty-11-34xj1150" "nmdc:sty-11-hht5sb92" "nmdc:sty-11-pzmd0x14" -``` r -bio_samps = list() -ph = list() -for (i in 1:length(study_ids)){ - study_id = study_ids[i] - filt = paste0("part_of:", study_id) - url = paste0(base_url, "/biosamples?filter=", filt) - resp = fromJSON(url) - bio_samps[i] = resp[['results']]['id'] - ph[i] = resp[['results']]['ph'] -} -``` +## Using the study ids, pull out bio sample IDs + +Note that we are pulling 100 records at a time until we have retrieved +all biosamples for the three study ids above, place the data retrieved +for each bio sample into a tibble ``` r per_page = 100 @@ -60,7 +39,6 @@ for (i in 1:length(study_ids)){ per_page, "&page=", page) - print(url) data = fromJSON(url) data_results = data[['results']] %>% as.data.frame() dat_all = bind_rows(dat_all, data_results) @@ -69,59 +47,52 @@ for (i in 1:length(study_ids)){ } else { get_more = FALSE} } } + +glimpse(dat_all) ``` - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=1" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=2" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=3" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=4" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=5" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=6" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=7" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=8" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=9" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=10" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=11" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=12" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=13" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=14" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=15" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=16" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=17" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=18" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=19" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=20" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=21" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=22" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=23" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=24" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=25" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=26" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=27" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=28" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=29" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=30" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=31" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=32" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=33" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=34" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=35" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=36" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=37" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=38" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=39" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=40" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=41" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=42" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=43" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=44" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-34xj1150&per_page=100&page=45" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-hht5sb92&per_page=100&page=1" - ## [1] "https://api.microbiomedata.org/biosamples?filter=part_of:nmdc:sty-11-pzmd0x14&per_page=100&page=1" + ## Rows: 4,443 + ## Columns: 33 + ## $ analysis_type "metagenomics", "metagenomics", "metagenom… + ## $ collection_date + ## $ depth + ## $ elev 586.1, 586.1, 586.1, 534.2, 534.2, 534.2… + ## $ env_broad_scale + ## $ env_local_scale + ## $ env_medium + ## $ id "nmdc:bsm-11-06qrej20", "nmdc:bsm-11-ftr… + ## $ name "ABBY_004-M-0.5-8-20170605", "ABBY_004-M-32… + ## $ part_of "nmdc:sty-11-34xj1150", "nmdc:sty-11-34x… + ## $ ph 5.51, 5.58, 5.53, 5.59, 4.70, 4.74, 4.95… + ## $ samp_collec_device "corer", "corer", "corer", "corer", "bro… + ## $ soil_horizon "M horizon", "M horizon", "M horizon", "M h… + ## $ temp + ## $ type "nmdc:Biosample", "nmdc:Biosample", "nmdc:B… + ## $ water_content "0.465 g of water/g of dry soil", "0.346 g… + ## $ geo_loc_name + ## $ biosample_categories "NEON", "NEON", "NEON", "NEON", "NEON", "NE… + ## $ lat_lon + ## $ gold_biosample_identifiers "gold:Gb0255529", "gold:Gb0255529", "gold:G… + ## $ ecosystem "Environmental", "Environmental", "Environm… + ## $ ecosystem_category "Terrestrial", "Terrestrial", "Terrestri… + ## $ ecosystem_type "Soil", "Soil", "Soil", "Soil", "Soil", "So… + ## $ ecosystem_subtype "Unclassified", "Unclassified", "Unclassif… + ## $ ammonium_nitrogen + ## $ env_package + ## $ org_carb + ## $ tot_nitro_content + ## $ carb_nitro_ratio + ## $ nitro + ## $ img_identifiers , , , , , … + ## $ specific_ecosystem NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… + ## $ samp_taxon_id + +## Clean up results for more usability + +Pull out collection date, ph, geo_loc_name, lat_lon; unnest as needed; +and convert collection_date into date object ``` r -library(lubridate) -my_theme <- theme_bw() df <- dat_all %>% select( collection_date, ph, geo_loc_name, lat_lon @@ -133,95 +104,82 @@ df <- dat_all %>% lat_lon ), names_sep = "_") %>% rename(collection_date = collection_date_has_raw_value , - geo_loc = geo_loc_name_has_raw_value) - -df2 <- df %>% - mutate(collection_date2 = as.Date(collection_date)) - -df3 <- df2 %>% - mutate(geo_loc_grouped = geo_loc %>% - factor() %>% - fct_lump(n = 6) - ) %>% - filter(geo_loc_grouped != "Other") - - -g <- ggplot(data = df2) + - geom_point(aes(x=collection_date, y = ph)) + - my_theme + - facet_wrap(facets = vars(geo_loc)) - -g <- ggplot(data = df3) + - geom_point(aes(x=collection_date2, y = ph)) + - my_theme + - scale_x_date()+ - facet_wrap(facets = vars(geo_loc_grouped), - labeller = label_wrap_gen(width=30)) -g + geo_loc = geo_loc_name_has_raw_value) %>% + mutate(collection_date = as.Date(collection_date)) +glimpse(df) ``` - ## Warning: Removed 60 rows containing missing values (`geom_point()`). + ## Rows: 4,443 + ## Columns: 5 + ## $ collection_date 2017-06-05, 2017-06-05, 2017-06-05, 2017-06-05, 201… + ## $ ph 5.51, 5.58, 5.53, 5.59, 4.70, 4.74, 4.95, 4.28, 5.15… + ## $ geo_loc "USA: Washington, Abby Road", "USA: Washington, Abby… + ## $ lat_lon_latitude 45.76858, 45.76858, 45.76858, 45.75405, 45.75405, 45… + ## $ lat_lon_longitude -122.2987, -122.2987, -122.2987, -122.2985, -122.298… -![](NEON_data_exploration_files/figure-gfm/unnamed-chunk-4-1.png) - -``` r -library("rnaturalearth") -``` +## Plot locations of geo_loc scaled by number of samples with ph - ## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package, - ## which was just loaded, were retired in October 2023. - ## Please refer to R-spatial evolution reports for details, especially - ## https://r-spatial.org/r/2023/05/15/evolution4.html. - ## It may be desirable to make the sf package available; - ## package maintainers should consider adding sf to Suggests:. - - ## Support for Spatial objects (`sp`) will be deprecated in {rnaturalearth} and will be removed in a future release of the package. Please use `sf` objects with {rnaturalearth}. For example: `ne_download(returnclass = 'sf')` - -``` r -library("rnaturalearthdata") -``` - - ## - ## Attaching package: 'rnaturalearthdata' - - ## The following object is masked from 'package:rnaturalearth': - ## - ## countries110 +Get median lat long for each geo_loc and count of samples with pH ``` r -locs_with_ph <- df2 %>% +# Prepare location df data +loc_sum_df <- df %>% + filter(!(is.na(ph))) %>% group_by( geo_loc ) %>% mutate( - count_with_ph = n() + count_with_ph = n(), + lat_med = median(lat_lon_latitude), + long_med = median(lat_lon_longitude), ) %>% select( geo_loc, - lat_lon_longitude, - lat_lon_latitude, + lat_med, + long_med, count_with_ph ) %>% distinct() +# Plot summary data +my_theme <- theme_bw() world <- ne_countries(scale = "medium", returnclass = "sf") -class(world) -``` - - ## [1] "sf" "data.frame" - -``` r g2 <- ggplot(data = world) + geom_sf() + geom_point( - data = locs_with_ph, - aes(x = lat_lon_longitude, y = lat_lon_latitude, + data = loc_sum_df, + aes(x = long_med, y = lat_med, size = count_with_ph)) + my_theme + - labs(x = "Longitude", y = "Latitude", size = "Samples with \n pH measurements")+ + labs(x = "Longitude", y = "Latitude", size = "# of biosamples with \n pH measurements")+ theme()+ - coord_sf(xlim = c(-165, -66), ylim = c(17, 72), expand = FALSE) + coord_sf(xlim = c(-165, -65), ylim = c(15, 72), expand = FALSE) g2 ``` +![](NEON_data_exploration_files/figure-gfm/unnamed-chunk-4-1.png) + +## Plot full time series of pH at the six sites with the most biosamples + +``` r +# Prep dataframe with new column of factored sites +df2 <- df %>% + mutate(geo_loc_grouped = geo_loc %>% + factor() %>% + fct_lump(n = 6) + ) %>% + filter(geo_loc_grouped != "Other") + + +# Plot data +g <- ggplot(data = df2) + + geom_point(aes(x=collection_date, y = ph)) + + my_theme + + scale_x_date()+ + labs(x = "Collection Date", y = "pH")+ + facet_wrap(facets = vars(geo_loc_grouped), + labeller = label_wrap_gen(width=30)) +g +``` + ![](NEON_data_exploration_files/figure-gfm/unnamed-chunk-5-1.png) diff --git a/NEON_ph_by_time/R/NEON_data_exploration_files/figure-gfm/unnamed-chunk-4-1.png b/NEON_ph_by_time/R/NEON_data_exploration_files/figure-gfm/unnamed-chunk-4-1.png index 5a384021..67b858e8 100644 Binary files a/NEON_ph_by_time/R/NEON_data_exploration_files/figure-gfm/unnamed-chunk-4-1.png and b/NEON_ph_by_time/R/NEON_data_exploration_files/figure-gfm/unnamed-chunk-4-1.png differ diff --git a/NEON_ph_by_time/R/NEON_data_exploration_files/figure-gfm/unnamed-chunk-5-1.png b/NEON_ph_by_time/R/NEON_data_exploration_files/figure-gfm/unnamed-chunk-5-1.png index 4f982215..2334eb65 100644 Binary files a/NEON_ph_by_time/R/NEON_data_exploration_files/figure-gfm/unnamed-chunk-5-1.png and b/NEON_ph_by_time/R/NEON_data_exploration_files/figure-gfm/unnamed-chunk-5-1.png differ diff --git a/NEON_ph_by_time/R/NEON_data_exploration_files/figure-html/unnamed-chunk-4-1.png b/NEON_ph_by_time/R/NEON_data_exploration_files/figure-html/unnamed-chunk-4-1.png new file mode 100644 index 00000000..5a384021 Binary files /dev/null and b/NEON_ph_by_time/R/NEON_data_exploration_files/figure-html/unnamed-chunk-4-1.png differ diff --git a/NEON_ph_by_time/R/NEON_data_exploration_files/figure-html/unnamed-chunk-5-1.png b/NEON_ph_by_time/R/NEON_data_exploration_files/figure-html/unnamed-chunk-5-1.png new file mode 100644 index 00000000..4f982215 Binary files /dev/null and b/NEON_ph_by_time/R/NEON_data_exploration_files/figure-html/unnamed-chunk-5-1.png differ diff --git a/NEON_ph_by_time/README.md b/NEON_ph_by_time/README.md index 80317655..ad1d0680 100644 --- a/NEON_ph_by_time/README.md +++ b/NEON_ph_by_time/README.md @@ -1,6 +1,7 @@ # Interactive application exploring NEON sites of pH vs. time -This folder includes two notebooks, in R and Python, that looks at how soil pH changes over time for the various NEON sites. +This folder includes two notebooks, in R and Python, that how soil pH changes over time for the various NEON sites. - [Changes in soil pH over time (in R)](https://github.com/microbiomedata/notebook_hackathons/blob/main/NEON_ph_by_time/R/NEON_data_exploration.md) - [Changes in soil pH over time (in Python)](https://nbviewer.org/github/microbiomedata/notebook_hackathons/blob/main/NEON_ph_by_time/python/neon_time_series_data_with_map.ipynb) + diff --git a/README.md b/README.md index 34be7a1a..3d28345f 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ This project uses `renv` for package management. After cloning the github repos ### Python -Python's pip is used to manage dependencies. +This project uses pip paired with venv to manage dependencies. #### To install the dependencies: diff --git a/renv.lock b/renv.lock index 1f4a2e08..53fc0a0b 100644 --- a/renv.lock +++ b/renv.lock @@ -300,13 +300,6 @@ ], "Hash": "f20c47fd52fae58b4e377c37bb8c335b" }, - "commonmark": { - "Package": "commonmark", - "Version": "1.9.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "d691c61bff84bd63c383874d2d0c3307" - }, "conflicted": { "Package": "conflicted", "Version": "1.2.0", @@ -747,21 +740,6 @@ ], "Hash": "1e12fe667316a76508898839ecfb2d00" }, - "httpuv": { - "Package": "httpuv", - "Version": "1.6.11", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "R6", - "Rcpp", - "later", - "promises", - "utils" - ], - "Hash": "838602f54e32c1a0f8cc80708cefcefa" - }, "httr": { "Package": "httr", "Version": "1.4.7", @@ -846,17 +824,6 @@ ], "Hash": "b64ec208ac5bc1852b285f665d6368b3" }, - "later": { - "Package": "later", - "Version": "1.3.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "Rcpp", - "rlang" - ], - "Hash": "40401c9cf2bc2259dfe83311c9384710" - }, "lattice": { "Package": "lattice", "Version": "0.21-8", @@ -1062,22 +1029,6 @@ ], "Hash": "14dc9f7a3c91ebb14ec5bb9208a07061" }, - "promises": { - "Package": "promises", - "Version": "1.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R6", - "Rcpp", - "fastmap", - "later", - "magrittr", - "rlang", - "stats" - ], - "Hash": "0d8a15c9d000970ada1ab21405387dee" - }, "proxy": { "Package": "proxy", "Version": "0.4-27", @@ -1393,50 +1344,6 @@ ], "Hash": "e2111252a76984ca50bf8d6314348681" }, - "shiny": { - "Package": "shiny", - "Version": "1.7.5", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "R6", - "bslib", - "cachem", - "commonmark", - "crayon", - "ellipsis", - "fastmap", - "fontawesome", - "glue", - "grDevices", - "htmltools", - "httpuv", - "jsonlite", - "later", - "lifecycle", - "methods", - "mime", - "promises", - "rlang", - "sourcetools", - "tools", - "utils", - "withr", - "xtable" - ], - "Hash": "438b99792adbe82a8329ad8697d45afe" - }, - "sourcetools": { - "Package": "sourcetools", - "Version": "0.1.7-1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "5f5a7629f956619d519205ec475fe647" - }, "sp": { "Package": "sp", "Version": "2.1-0", @@ -1782,18 +1689,6 @@ ], "Hash": "6c40e5cfcc6aefd88110666e18c31f40" }, - "xtable": { - "Package": "xtable", - "Version": "1.8-4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "stats", - "utils" - ], - "Hash": "b8acdf8af494d9ec19ccb2481a9b11c2" - }, "yaml": { "Package": "yaml", "Version": "2.3.7",