From b8cb2212be2ea270b51121314e96a2f636795eab Mon Sep 17 00:00:00 2001
From: Willy Kuo <willy.kuo@physiol.uzh.ch>
Date: Mon, 30 Sep 2024 18:54:45 +0200
Subject: [PATCH] Put Publication_page.qmd back

---
 .../Publication_page.qmd                      | 234 ++++++++++++++++++
 1 file changed, 234 insertions(+)
 create mode 100644 webpage_contents/publications/20240901_Marta_GironaAlarcon/Publication_page.qmd

diff --git a/webpage_contents/publications/20240901_Marta_GironaAlarcon/Publication_page.qmd b/webpage_contents/publications/20240901_Marta_GironaAlarcon/Publication_page.qmd
new file mode 100644
index 0000000..0c01917
--- /dev/null
+++ b/webpage_contents/publications/20240901_Marta_GironaAlarcon/Publication_page.qmd
@@ -0,0 +1,234 @@
+---
+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).
+
+![Fig. 1. Ex vivo coronal slices of three different mice injected with (left) Mouse.number 23, Gadolinium-based, (middle) Mouse.number 19, Barium-based and (right) Mouse.number 30, Gold-based contrast agent.](images/post_mortem_overview.png)
+
+```{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".
+
+![Fig. 2. Three dimensional rendering of CSF spaces enclosed in the mouse skull: Infusion of contrast agent in the lateral ventricles during high-resolution synchrotron radiation-based hard X-ray computed tomography imaging allows 3D visualization with virtual slicing in all directions. Lateral ventricles in blue, third ventricle in green, aqueduct in pink and fourth ventricle in yellow.](images/JP26-invivo-2scan-phase3-postinjection-brain-80-90min_web.png){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"}
+![Fig. 3. Visualization of the mouse holder mounted on the imaging rotational stage.](images/holder_1.jpeg){width="650"}
+
+![Fig. 4. Transparent visualization of body mouse holder part containing the water channels to ensure physiological temperature of the mouse.](images/holder_2_holes.jpeg){width="300"}
+:::
+
+Additionally, we assambled a customized mouse stage for two surgical procedures: tracheotomy and cisterna magna infusion (Fig. 5).
+
+![Fig. 5. Customized tracheotomy and cisterna magna stage. Available as a 3D model in the downloads.](images/cisternamagna_stage.jpeg){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")
+```
+:::
-- 
GitLab