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)