Repository navigation
Expand file tree
/
Copy pathHandleiding.Rmd
More file actions
133 lines (83 loc) · 8.64 KB
/
Copy pathHandleiding.Rmd
File metadata and controls
133 lines (83 loc) · 8.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
---
title: "Handleiding ‘Hack the VITEK' Rshiny app"
author: "Philine van Bekkum, Yusra Kunduzi & Manuel Leeuwerik"
date: "2025-01-23"
output: word_document
---
# Handleiding ‘Hack the VITEK’ Rshiny app
## RStudio Installeren
### R downloaden
- Ga naar de officiële [R-project website](https://cran.r-project.org/).
- Download en installeer R voor je besturingssysteem.
### RStudio downloaden
- Ga naar de officiële [RStudio website](https://posit.co/download/rstudio-desktop/).
- Download en installeer RStudio.
## Git Installeren
### Git downloaden
- Ga naar de officiële [Git-website](https://git-scm.com/downloads/win).
- Download en installeer Git.
## GitHub Account Aanmaken
- Ga naar [GitHub](https://github.com/).
- Maak een nieuw account aan als je er nog geen hebt.
## Repository Klonen
1. Ga naar de GitHub-pagina van de repository die je wilt klonen: [https://github.com/ProjecticumDataScience/Research_project_MPY](https://github.com/ProjecticumDataScience/Research_project_MPY)
2. Kopieer de HTTPS-URL door op de groene **Code**-knop te klikken.
3. Open RStudio en ga naar **File > New Project > Version Control > Git**.
4. Plak de gekopieerde HTTPS-URL in het veld **Repository URL**.
5. Selecteer een lokale map waar je de repository wilt opslaan.
6. Geef de directory een naam (indien nodig).
7. Klik op **Create Project** om de repository te klonen.
```{r, echo=FALSE, out.width='100%'}
knitr::include_graphics("Git_repository_instructie.png")
```
# Benodigde Packages Installeren
Open de console in RStudio en voer de volgende code uit om de benodigde packages te installeren:
```{r, eval=FALSE}
install.packages(c("shiny", "shinyFiles", "dplyr", "readr", "here", "ggplot2", "plotly" "webshot2", "DT", "tidyverse", "shinydashboard", "pheatmap", "scales", "tidyr"))
```
# De App Uitvoeren
1. Open het bestand `app.R` (Rshiny > `app.R`).
2. Klik op **Run App** om de applicatie te starten.
## Introductie
In deze RShiny-app kunnen gebruikers bestanden uploaden om data te analyseren. Het uploadproces begint met het selecteren van de hoofdmap die de benodigde .log-bestanden bevat. Na het maken van de selectie klikt u op "Klaar". Zodra de bestanden zijn verwerkt, verschijnt de melding: "VITEK bestanden succesvol verwerkt". Hiermee is de data gereed voor verdere analyse en visualisatie binnen de app. Momenteel is de app gelimiteerd tot data input afkomstig van GP-kaarten.
De hoofdmap mag alleen subfolders bevatten, waarbij in elke subfolder de bestanden `NIDresults.log`, `readings.log`, en `results.log` aanwezig moeten zijn. Een eventuele pdf afkomstig van de VITEK maakt hierbij niet uit. Zie als voorbeeld de folderstructuren in folder "vitek_ruw_extinctie". Waarbij bijvoorbeeld "06-12-24" de hoofdfolder is en "Gordonii Twan" één van de subfolders.
Er wordt bij het uploaden van eigen te testen data, automatisch ATCC data ingeladen. Deze data zijn te vinden in de folder genaamd ATCC. Het is ook mogelijk om eigen ATCC data hieraan toe te voegen. Dit door een mapje met de volgende naam "ATCC_Bacterienaam_n" toe te voegen. Waarbij n staat voor de hoeveelste ATCC folder van deze bacterie het is. Het mapje moet natuurlijk wel de log-bestanden bevatten.
Alle ATCC mappen worden vervolgens hetzelfde verwerkt als de te testen data. Met enkel het verschil dat de ATCC *ook* wordt samengevat per bacterie stam. Bijvoorbeeld van Oralis_1, Oralis_2 etc. wordt het gemiddelde genomen en maakt vervolgens een nieuwe dataset genaamd ATCC_Oralis_gemiddelde.
## Dashboard
Het dashboard biedt een interactieve lijngrafiek die de extinctie in de tijd weergeeft. Gebruikers hebben de mogelijkheid om verschillende parameters te selecteren en te filteren, zoals:
- Identifier (bacterie)
- Biochemische testen (opgedeeld in categorieën of individuele testen)
- Tijd (één tijdstip of een bepaalde periode)
- Extinctie type
Voor extinctietypen zijn verschillende opties beschikbaar. U kunt de ruwe extinctiewaarden gebruiken zoals deze uit de VITEK-resultaten komen, of kiezen voor de log-transformaties, zoals log10, log2 of de natuurlijke log.
Een extra functionaliteit is de split-optie, waarmee de lijngrafiek kan worden opgedeeld. Zo kunnen meerdere grafieken naast elkaar worden weergegeven, bijvoorbeeld om identifiers of biochemische testen met elkaar te vergelijken.
## Boxplot
De boxplot geeft de ranges van de verschillende biochemische testen per bacterie weer. Met op de y-as de extinctie en op de x-as de biochemische test. De gebruikers kunnen hierbij filters toepassen, zoals identifier, biochemische testen en extinctie type. Voordat de data wordt geplot, worden uitschieters verwijderd op basis van het interkwartielbereik (IQR). De grenzen voor het verwijderen van uitschieters worden als volgt berekend:
-Het eerste kwartiel (Q1) en het derde kwartiel (Q3) worden bepaald.
-Het interkwartielbereik (IQR) is het verschil tussen Q3 en Q1.
-Waarden die kleiner zijn dan Q1 - 1,5 * IQR of groter dan Q3 + 1,5 * IQR worden als uitschieters beschouwd en niet meegenomen in de plot.
De significante biochemische testen worden bepaald op basis van verschillen tussen identifiers. Bij twee identifiers wordt een t-test uitgevoerd, en bij drie of meer identifiers wordt een ANOVA gebruikt.
De p-waarde wordt zowel ongecorrigeerd als gecorrigeerd weergegeven. Voor de correctie wordt de Bonferroni-methode toegepast, waarbij de p-waarden worden aangepast aan het aantal uitgevoerde vergelijkingen.
## PCA en Heatmap
### Principal Component Analysis (PCA)
De Principal Component Analysis (PCA) is een krachtige statistische methode die wordt gebruikt voor dimensiereductie en patroonherkenning. Deze techniek vereenvoudigt complexe datasets door de belangrijkste variaties te identificeren en visueel te presenteren. PCA transformeert mogelijk gecorreleerde variabelen in een nieuwe set ongecorreleerde variabelen, de zogenaamde hoofdcomponenten.
De hoofdcomponenten worden gerangschikt op basis van hun bijdrage aan de variantie in de data:
- PC1 (Principal Component 1) verklaart de grootste variantie en wordt meestal weergegeven op de X-as.
- PC2 (Principal Component 2) verklaart de op één na grootste variantie en staat vaak op de Y-as.
De percentages op de assen geven aan welk deel van de totale variantie door elke hoofdcomponent wordt verklaard. Door PCA kunnen groeperingen, correlaties of belangrijke patronen in de data gemakkelijk worden geïdentificeerd. Gebruikers kunnen hierbij filters toepassen, zoals identifier, biochemische testen en extinctie type.
De Top features zijn de features (biochemische testen) die het meest bijdragen aan de bijbehorende PC. De features verklaren dus de variatie die de PC vastlegt.
### Heatmap
De heatmap is een visuele weergave van gegevens waarbij kleuren de intensiteit van waarden aangeven. Dit maakt het eenvoudig om patronen en relaties in de data te herkennen.
- X-as: toont de verschillende bacteriële stammen.
- Y-as: toont de biochemische testen.
- Kleurenschaal: rood staat voor hogere of sterkere waarden, terwijl blauw lagere of zwakkere waarden representeert.
Clustering wordt toegepast om zowel de stammen (X-as) als de biochemische testen (Y-as) te groeperen. Deze groeperingen worden weergegeven met dendrogrammen, waardoor clusters ontstaan van stammen met vergelijkbare biochemische profielen of testen met soortgelijke reacties. Dit helpt bij het ontdekken van onderliggende structuren in de dataset.
Net als bij PCA kunnen gebruikers selecties maken op identifier, biochemische testen en extinctie type.
## Data Tabellen
De data tabellen geven de gegevens weer afkomstig van het NIDresults.log bestand. Het NIDresults.log genereert waarschijnlijk het pdf met het VITEK resultaat.
# Streptococcus mitis/oralis Checker
Voor elke test en tijdstip zijn er ranges vastgesteld op basis van de VITEK-data. Deze ranges zijn beoordeeld op hoe onderscheidend ze zijn, en op basis daarvan is aan elke test een specifieke weegfactor toegekend. De checker analyseert elk sample door het langs alle tests en bijbehorende tijdstippen te itereren. Voor elk sample wordt de volgende formule toegepast:
\[
\text{Percentage overeenkomst} = \frac{\text{Positieve resultaten (met weegfactor)}}{\text{Alle resultaten (positief en negatief, met weegfactor)}} \times 100
\]
Op deze manier wordt berekend in hoeverre het onbekende sample overeenkomt met Streptococcus mitis of Streptococcus oralis. Het is ook mogelijk om identifiers te testen waarbij de VITEK geen specifieke koppeling aan een organisme kan maken of waarbij de VITEK mogelijk een verkeerde naam heeft toegewezen. In zulke gevallen wordt alsnog een schatting gegeven op basis van de beschikbare data. Als het verschil tussen de percentages voor mitis en oralis kleiner is dan 10%, wordt aangegeven dat er geen duidelijke uitkomst is.