diff --git a/webpage_contents/publications/20240901_Marta_GironaAlarcon/Publication_page.qmd b/webpage_contents/publications/20240901_Marta_GironaAlarcon/Publication_page.qmd deleted file mode 100644 index f7d890e9c0ed793acf475b42e19dc3bf19377163..0000000000000000000000000000000000000000 --- a/webpage_contents/publications/20240901_Marta_GironaAlarcon/Publication_page.qmd +++ /dev/null @@ -1,234 +0,0 @@ ---- -title: 'In vivo Imaging of Central Nervous System Fluid Spaces using Synchrotron Radiation Micro-Computed Tomography' -date: '2024-09-01' -First author: 'Marta Girona Alarcón' -Last author: 'Vartan Kurtcuoglu' -author: - - name: 'Marta Girona Alarcón (first author)' - orcid: 0009-0006-2111-2716 - affiliations: - - name: The Interface Group, Institute of Physiology, University of Zurich - - - name: 'Vartan Kurtcuoglu (last author)' - orcid: 0000-0003-2665-0995 - affiliations: - - name: The Interface Group, Institute of Physiology, University of Zurich -format: - html: - grid: - body-width: 1500px ---- - -In this hub, we provide additional materials, methods and results for the publication. - -## Supplemental Results - -In this [DOI](https://doi.org/10.5281/zenodo.13773081), we provide full resolution datasets for download from the publication data and supplemental results: - -### Pilot post mortem experiments - -In a previous beamtime (ESRF, 2020, December), *ex vivo* imaging was performed. The goal of the pilot experiments was to chose a contrast agent for the presented *in vivo* experiments. The list of used contrast agents is available under the Zenodo download entry "tables_exVivo.7z". We considered the Barium-based contrast agent (CA) to be the most promissing one and therefore decided to employ it for the *in vivo* experiments (Fig. 1). - - - -```{r librLoad} -library(dplyr) -library(kableExtra) -# SET options for table rendering in this page -options(DT.options = list(fixedHeader = TRUE, - scrollX = TRUE, - scrollY = "800px", - paging = FALSE, - scrollCollapse = TRUE, - autoWidth = TRUE)) -``` - -```{r} -tbl <- read.csv(file = 'exVivo_Contrast_agent_per_mouse_list.csv') -kable(tbl, format = "markdown") -``` - -Table 1. List of *ex vivo* mouse number, including the injected site and contrast agent. - -### CSF spaces segmentation - -In the publication, we have shown the need of infusing contrast agent to achieve a semi-automatic segmentation. Here, we show a rendering of one segmentation. In the downloads, we have provided a segmentation of a timeseries imaging in the brain ventricles, which can be found under "videos_Reconstructions.7z". - -{width="900"} - -### Timeseries movies - -Movement of contrast agent over time for the presented timeseries can be observed in projections and reconstructions as movies under the folders "videos_Reconstructions.7z" and "videos_Projections.7z" in [Zenodo](https://doi.org/10.5281/zenodo.13773081). - -## Additional materials - -We have additively manufactured the mouse holder, optimized for vertical imaging while ensuring fixation of the mouse skull (Fig. 3). - -::: {layout-ncol="2"} -{width="650"} - -{width="300"} -::: - -Additionally, we assambled a customized mouse stage for two surgical procedures: tracheotomy and cisterna magna infusion (Fig. 5). - -{width="700"} - -## Equipment and consumables - -The following table provides details of consumables, hardware and software that have been employed for this experiments. - -```{r} -tbl <- read.csv(file = 'Equipment_table.csv') -DT::datatable(tbl, extensions = c('FixedHeader'), filter = 'top', rownames = FALSE) -``` - -<!-- Do not edit below this line !! --> - -## Links to protocol pages - -```{r getrepo} -library(dplyr) -library(here) - -# Read repository URL information from _quarto.yml file -vars <- yaml::read_yaml(file.path(here::here(),'_quarto.yml'),) -repo_url <- vars$website$`repo-url` -repo_url_basepath <- file.path(repo_url,'-', 'tree','master','webpage_contents') -``` - -All protocols can be found this website's repository: [`r repo_url`](repo_url) - -```{r protocols} -library(dplyr) -library(here) - -# Read repository URL information from _quarto.yml file -vars <- yaml::read_yaml(file.path(here::here(),'_quarto.yml'),) - -# Retrieve which are data types and facilities relevant to this publication -inputs <- read.csv(file = 'input_mice.csv') - -# Find protocols and files -folders <- unique(cbind(inputs$Data_type,inputs$Facility_name_YYYY_month)) # find table's unique variations of -paths <- dir(path = file.path('..','..','experiments',inputs$Data_type, inputs$Facility_name_YYYY_month, "protocols"), - pattern='*.pdf',full.names = TRUE) - -# Add URL of the repo with additional info about the branch -paths <- as.data.frame(file.path(repo_url_basepath,'experiments', sapply(strsplit(paths,'experiments'),'[[',2))) - -colnames(paths) <- 'Protocols' - -# Add markdown formatting so that it becomes a link -paths$Protocols <- paste0('[', sapply(strsplit(paths$Protocols,'experiments'),'[[',2),'](', paths$Protocols,')') - - -# Render table -kableExtra::kable(paths,format = 'markdown') - - -``` - -## Sample information - -`r getwd()` - -```{r} -library(dplyr) -library(kableExtra) - -# Take the relevant rows from the tables specified in inputs -mice_used <- list() -scans_used <- list() - -# Loop through mice as defined in the mice_input table -inputs <- read.csv(file = 'input_mice.csv') -for (i in 1:nrow(inputs)){ - - # Find experiment table for this mouse - row_filepath <- file.path(here::here(), 'experiments',inputs$Data_type[i], inputs$Facility_name_YYYY_month[i], "metadata_tables",inputs$Metadata_file_mouse[i]) - # Read mice info file - mice_used[[i]] <- read.csv(row_filepath) %>% filter(Subject_ID == inputs$Subject_ID[i]) # read table and filter subject - mice_used[[i]]$Subject_pubID <- inputs$Subject_pubID[i] # Add additional input column - mice_used[[i]]$Correction_factor <- inputs$Correction_factor[i] # Add additional input column - - # Find and read scan lists for that subject - row_filepath_scans <- file.path(here::here(), 'experiments',inputs$Data_type[i], inputs$Facility_name_YYYY_month[i], "metadata_tables",inputs$Metadata_file_scan[i]) - tmp_tbl_scans <- read.csv(row_filepath_scans) %>% filter(Subject_ID == inputs$Subject_ID[i]) - - # Providing the preview images - # ------------------------------------------------ - # Build URL based on the REpo URL (retrieved from _quarto.yml file) - image_url <- file.path(repo_url_basepath,'experiments',inputs$Data_type[i], inputs$Facility_name_YYYY_month[i],'preview_images',tmp_tbl_scans$Preview_Image_LowQuality) - - # Find relative path to image and COPY it into the publication folder - source_images_relativepath <- gsub(repo_url_basepath,file.path('..','..'),image_url) - #copy_image_dir <- file.path(getwd(),'preview_images') - #file.copy(source_images_relativepath,copy_image_dir) - - -"C:/Users/gorka/Gitlab_crs/fdcns/webpage_contents/publications/20240901_Marta_GironaAlarcon/images" -# Add HTML to display images in table and make them clickable link - tmp_tbl_scans$Preview_Image_LowQuality <- paste0('<a href=\'', image_url,'\' target=\'_blank\'>','<img src=\'', source_images_relativepath, '\' height=\'70\'></a>') - - # ------------------------------------------------ - - - # join tables --------------------------------------------- - scans_used[[i]] <- full_join(x=mice_used[[i]], - y = tmp_tbl_scans, - by=join_by("Subject_ID"), - suffix = c('.mice','.scans'), - keep=FALSE) - -} - - -# Gather list elements in a table -mice_used <- do.call(rbind,mice_used) -scans_used <- do.call(rbind,scans_used) - - -#Change position of some columns -mice_used <- relocate(mice_used, Correction_factor, .before = 7) -mice_used <- relocate(mice_used, Subject_pubID, .before = 1) -scans_used <- relocate(scans_used, Correction_factor, .before = 7) -scans_used <- relocate(scans_used, Subject_pubID, .before = 1) -scans_used <- relocate(scans_used, Preview_Image, .before = 1) - -## Gather code assumming there is only one data type -mouse_codebook <- read.csv(file = dir(path = file.path(here::here(), 'experiments',inputs$Data_type[1]), pattern = 'Mouse.*codebook.csv',full.names = TRUE)) -scan_codebook <- read.csv(file = dir(path = file.path(here::here(), 'experiments',inputs$Data_type[1]), pattern = 'Scan.*codebook.csv',full.names = TRUE)) -joint_codebook <- bind_rows(mouse_codebook, scan_codebook) %>% distinct() - - -``` - -::: panel-tabset -## Mice - -```{r} -DT::datatable(mice_used, extensions = c('FixedHeader'), filter = 'top', rownames = FALSE) - -``` - -#### Codebook - -```{r} -kable(joint_codebook, format = "markdown") -``` - -## Mice and scans info - -```{r} -DT::datatable(scans_used, escape = FALSE, extensions = c('FixedHeader'), filter = 'top', rownames = FALSE) -``` - - - -#### Codebook - -```{r} -kable(mouse_codebook, format = "markdown") -``` -:::