library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
standardSpectra = read.table('A3_0001_A3_25-07-18_16-03_0001.txt', header = FALSE, skip = 8)
expSpectra = read.table('A4_0001_A4_25-07-18_16-04_0001.txt', header = FALSE, skip = 8)
standardSpectra <- standardSpectra[,1:2]
names(standardSpectra) <- c('Mass_Da', 'Intensity_mV')
Sample <- rep('Standard', nrow(standardSpectra))
standardSpectra <- cbind(standardSpectra, Sample)
expSpectra <- expSpectra[,1:2]
cbind(standardSpectra, 'Experimental')
## Mass_Da Intensity_mV Sample "Experimental"
## 1 250.3505 169.826361 Standard Experimental
## 2 282.1554 3.236456 Standard Experimental
## 3 286.9174 3.731892 Standard Experimental
## 4 292.3447 1.439865 Standard Experimental
## 5 299.5394 2.198165 Standard Experimental
## 6 307.7839 63.573688 Standard Experimental
## 7 332.8551 9.758956 Standard Experimental
## 8 348.7301 1.668077 Standard Experimental
## 9 367.0252 1.675146 Standard Experimental
## 10 368.9306 1.523213 Standard Experimental
## 11 370.1869 1.079379 Standard Experimental
## 12 371.9493 1.416240 Standard Experimental
## 13 373.5137 1.018690 Standard Experimental
## 14 376.0946 1.119744 Standard Experimental
## 15 378.0743 1.748127 Standard Experimental
## 16 379.8044 1.203313 Standard Experimental
## 17 394.5137 2.953384 Standard Experimental
## 18 408.1283 2.084832 Standard Experimental
## 19 416.3546 7.852291 Standard Experimental
## 20 427.4146 1.035372 Standard Experimental
## 21 444.9379 6.282712 Standard Experimental
## 22 457.0392 1.368598 Standard Experimental
## 23 473.9008 3.823057 Standard Experimental
## 24 486.6178 1.059800 Standard Experimental
## 25 488.7536 1.327246 Standard Experimental
## 26 491.4735 1.439087 Standard Experimental
## 27 492.9233 1.193289 Standard Experimental
## 28 509.7201 1.136869 Standard Experimental
## 29 525.1797 1.046205 Standard Experimental
## 30 532.8753 1.008098 Standard Experimental
## 31 534.9894 1.309081 Standard Experimental
## 32 536.5625 1.102074 Standard Experimental
## 33 537.5924 1.128333 Standard Experimental
## 34 565.2118 7.593580 Standard Experimental
## 35 573.8203 1.264938 Standard Experimental
## 36 595.5626 2.289672 Standard Experimental
## 37 603.3064 1.451613 Standard Experimental
## 38 604.9126 1.248749 Standard Experimental
## 39 606.0060 1.047002 Standard Experimental
## 40 607.1004 1.074623 Standard Experimental
## 41 609.2922 1.024860 Standard Experimental
## 42 626.2491 1.056720 Standard Experimental
## 43 693.1655 1.813831 Standard Experimental
## 44 723.5664 1.021634 Standard Experimental
## 45 725.3957 1.722458 Standard Experimental
## 46 729.6260 1.029445 Standard Experimental
## 47 760.1590 1.303155 Standard Experimental
## 48 761.8897 1.127192 Standard Experimental
## 49 765.1400 1.196949 Standard Experimental
## 50 860.7199 1.922279 Standard Experimental
## 51 866.7890 1.034975 Standard Experimental
## 52 3497.3805 6.555099 Standard Experimental
names(expSpectra) <- c('Mass_Da', 'Intensity_mV')
Sample <- rep('Experimental', nrow(expSpectra))
expSpectra <- cbind(expSpectra, Sample)
roundStandard <- standardSpectra
roundStandard$Mass_Da <- round(roundStandard$Mass_Da / 2) * 2
roundExp <- expSpectra
roundExp$Mass_Da <- round(expSpectra$Mass_Da / 2) * 2
matches <- merge(roundStandard, roundExp, by='Mass_Da')
Avg_Intensity_mV <- (matches$Intensity_mV.x+matches$Intensity_mV.y)/2
matches <- as.data.frame(cbind(matches$Mass_Da, Avg_Intensity_mV))
names(matches) <- c('Mass_Da', 'Intensity_mV')
Sample <- rep('Matches', nrow(matches))
matches <- cbind(matches, Sample)
dataS <- rbind(standardSpectra, expSpectra, matches)
dataS$Sample <- as.factor(dataS$Sample)
dataS_filtered <- dataS[dataS$Mass_Da < 1000, ]
ggplot(dataS_filtered, aes(x=Mass_Da, y=Intensity_mV, fill=Sample))+
geom_col(width = 3)+
labs(x = "Mass (Da)",
y = "Intensity (mV)",
fill = Sample)+
facet_grid(rows=vars(Sample))+
theme(axis.title = element_text(size = 16),
axis.text = element_text(size = 14),
strip.text = element_text(size = 16),
legend.key = element_blank(),
legend.title = element_text(size = 16),
legend.text = element_text(size = 14),
panel.background = element_rect(fill = "white"),
panel.grid.major = element_line(color = "gray90"),
panel.grid.minor = element_line(color = "gray95"))+
guides(fill = guide_legend(override.aes = list(color = NA)))
## Warning: `position_stack()` requires non-overlapping x intervals.
## `position_stack()` requires non-overlapping x intervals.

library(tidyverse)
library(kableExtra)
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
library(webshot2)
## Warning: package 'webshot2' was built under R version 4.3.3
library(magick)
## Warning: package 'magick' was built under R version 4.3.3
## Linking to ImageMagick 6.9.12.93
## Enabled features: cairo, fontconfig, freetype, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fftw, ghostscript, x11
dataT <- filter(dataS, dataS$Intensity_mV>50)
dataT %>%
kbl(align="c",
col.names = c("Mass (Da)", "Intensity (mV)", "Sample")) %>%
kable_classic() %>%
kable_styling(font_size=20) %>%
save_kable("table2.png", zoom=4)